Menu

#207 Opus Discovery emulation

closed-accepted
nobody
None
5
2009-08-14
2009-07-19
No

This patch is a not quite working patch to add support for the Opus Discovery. To try the patch out, you will also need the opus-22 rom file from http://www.shadowmagic.org.uk/spectrum/roms.html in the roms directory, it should be named "opus.rom".

It was cobbled together based on the +D code in Fuse mixed with some of the Opus emulation code from EightyOne, and is only enabled for the 48k machine for now.

At the moment, when an opus disk is inserted and a CAT "m";1 command is issued, the drive spins up and there is disk activity, but the CAT never terminates and I am not sure why.

I am putting the patch up in the hope that someone else can have a look to see if they can take it further.

Discussion

  • Fredrick Meunier

     
  • Gergely Szasz

    Gergely Szasz - 2009-07-20

    This patch fix some problems, so with this, CAT works.
    1. Opus count sectors from 0 not 1 (disk.c)
    2. There is a bug in wd_fdc.c about SEEK if spinup already done...
    3. There is a bug in wd_fdc.c around status register RECORD TYPE/SPINUP bit
    4. Opus need datarq (DRQ) for every transfered data byte

    Here is the gzipped and uuencoded patch:

    M'XL("'5+9$H``V9U<V4N;W!U<U\P,2YD:69F`,P\:W?;MI*?XU^!N+>.9-&2
    M2+_MVHUBRZTV?AU);IIM>W@ID;)X+9%:DHKCWN3^]IT9`"3XT,M.]FS.B24!
    MF,%@7I@9@&QYMO/YB`VFH5/U)].P1M_Z:R<O_[>VM;650_RJ%#B?W-#U/;93
    MW]DMKU4JE8)!CW[PX'KWK.]/GLIK;]^R+5W7M3U6P8]]]O;M&HN>)H[M#%@8
    M!=-^!!]6$)D#=^2$9L3^O<;6&`-P+XQ8?V@%;--VPP=S,IJ&V\=KE8(NG/]X
    M)I!=W-5S(BO?X_<?CHEH8_\`B3;V#P71C+F#$@O^_FRZGAN5RJS,`B>:!A[3
    MCV7O)+R?TXLS%G57>#>N8AYN7,J<_H'->TWGD^-%8?&@T!U/1HYK.T6(<-D[
    M!]NX[)V#7;'L$+HGIB*B4D9>F\I/5EY#^3%UR-9I(CYV@O@B4(_0[$^#``BM
    M4@<-P>'$C3PT\J8(&-L5V)DSV[-FMA=!H]"*@+%]'BPH4A&8W9<0R.W=/=2N
    MRNZ^H>EU8C<B`I6T0H==MMYU;IMGW?;=E7EVV>ATS/-6Y[UY>WG7V3[BX^8Q
    M&ML\:^P<LU[@6*#56VN5']P!JR.'YT]Q<WO7.>+#Y@@C-T'E!\&gt;SW<%R2SA?
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
    MFH<BPI4@1$R[$LQ@.AHYP5R0G!*123_:YL#N?Q<%2N%?H#R9L07!Y.$^YJW\ M`U6'LBX0(G.)&X.M4TQW31?/Y?1C3#MYSDQG")`*C_U/CHEW#_"PO,_/R94:
    M&,"[-F2P`62^)^S#N7EQ?F8VKLSKF^MFDN,]#NG0B2;[1,U4&C5(J_%C7SF2
    MQ#1_&O:L`-PPA,@`EQ3LQ5$<T4WE`!9/VNDVNDWS-Q#DQ4?EU(IF1?HY??K^
    M?AVSTVRC`51M;*RQ5Z]+$C?5%.[=$/0=4E`Y2]N\NNG>M&^N63E9'RN"^7*2
    M!Q(GV-LZ'EU7=K<-]1`23PI&%N:Q>VR3&?5Z?)2YA#"289`VFX]N-*0DHY24
    M39AN`-I7KVJ;@!_DX(^FF$+)R5B-Z77XV*RA$C`8R%AR\":2>.":.\:LO@J>
    MO0_)N1^8X+<<FZ"UM<JSH&"N5_%Z-%$OY$M23DM0^EO+R)Y`N5&`F3L/YB<P
    M^<&3*$1FT<I"_?[^OF9LL\K^_J%F)/J8U\9Z,9;8<HJU;CNC=1?0>+@MM$[^
    M@_[A*#*!6PX[952=P28T4#R4Q=^O^1AYU"Y^G?#:<SS[:EJ_]6HEI?_R!>2\ M`@10#0#)\(2$6'AW';/[\;:I<^R"&RNS,2$JB[]I=IK-]X3[%9L_R#QO7C8^
    M2HPI]BL6O\C>.[>MZ[O;(M50/&Z,3;07$\75.KE;D==L4R`L*:83%^?F8&XW
    M&^>"G\4#/K1;W29G1>657#>ZE>!_DEL92=,)JVL)>9')FU6[BZEZ,4T9;J`^
    MF*Y+7%E]PM8Y*Z=N,M23L]C,%`GRQ:C3DIOID2K?25HY62TOJ6\MI[245IVG
    MVVZ<O6=HO10+'QK\;*VNRPM@9$9B#G[TOTGWC+9.Q0[$6Y6C".@:C*S[4+BL
    MR\8O=(&+\VZ!9WMWU_DH6;IH9U;-?@XC5;^"LC!Y$;Q2.8:M$7?LOC\%A&CG
    M#&O>(6[3'`!V>S)_RK?$GK]AP_)L6P/W>"XF.&;]H(^Q06F@,1M^`E)"9S%>
    M1*^)DTM^A5.O'^K)4;`BPL`IMNROW-55E/VOD,%"/1=N'YS)R!A<_J/#/(P7
    M+/CX'#&AQ4"S(H29<<]V7<8]\&T:BB@+@5_Q<&75B(7^:2IX0?1"#!$'5%*J
    M<J7'R?T`7=\]U';PHB\P/A4,?EN&+\?N!<RNU>83]O]:&E]GI')T:OK=$CF.
    M74GCZH4Y7-$P5(^Z!GF"KNW7=U$S*L`U/O*(M7T(WSU@Z<`/V-#R[!%F?M'0
    M895S%F?I))(S2`<#]WX8L5*_S/3#P\,M"/CW62>:6D&$I17["7Q%X("7[#^P
    M*V?JN4Z@L5M(V]P)>^]XMC4::83K?.Q&P1/K6)X5N)[&SBT4$?P>1?P:`/M'
    MRSX25$+."CX$YCK<JN]LZ7N0@ASM&$?ZSG_CQ2)[S/XA8+I#-\2JTGU@C1E\ MQ6M'+/0'T:,5.,?LR9^RON6!.0&SHL#M3<%CN50KK,'JQ[X-NRDA@L8I2#D@
    M1@`/QB'S!_3CE^L[]HOC.8$U8K?3WLCMLTNW[WBP`5DP-[:$0P?=*R%"D`ND
    MHB.H8!?@@D&903C'S`'-ADE@&R=A&7(2@5%C?D!82E:$Q`>,'U>5@>(G-K*B
    M!+8Z@P/)0FV0)B$?^A#S1D-`":M\=$<CUG/`@IS!5,@&1C,\*;NYZ[+&]4?V
    MH=%N-ZZ['X\96B+H"]DFX<(K[2Z@AI4%EA<]P0((Q56S??8KP#3>M2Y;W8^P
    M#G;1ZEXW.QUV<=-F#7;;:'=;9W>7C3:[O6O?WG2:5<8Z#A+&E6T.GP<D*V`E
    MKVR'<NT?0;PAT#>R09%A\PZ<O@/;-7H@K&0L(\&1[]T3+EPIC$Z8>0S^D7E^
    M)*^01?Y<V6JLY?6KG)^[.@RSO`>P++`5```D%^X`)K@8^3X8R#L?RVX:NVJP
    MNJ'K]2U]NZZSNTY#KJPQ!;X'>.TGLOH@-P]8,*9YCL0(;F-';$*?6^@6WH9#
    MR_8?Q]:]VZ_ZP7UU^B`&<X,]8J'=0YM]ZT6C1S\8V=6^/\8AZ$656R$_T0VE
    M^^KP--VLG*#G^E#KO!S(.DPPL:+,I1/AIK.MOCT=91OEU12EB>Y8\NLM2JN\ M-I!IGKJUJ9MI$W6O[$1T+@RMN,7@/@9ZA(IW[T0@AW'/%[9((90"^/=!O0;_
    M"1VTV\X`EL;HZGVW_=$$P_BE6<)<,"RSDL!A.MYT#/J(@1=X<7DF3;>?(KS9
    MX03W3JF,,9^!P?*?M$N]>@:XCEDTS<Y_E3$`7:M@(8_?\?@$!D57+R"T/U8[
    M^.4/WKI6P6T8[";N=G%+-"=3B,.S_;R+]M%CE25TP>[Z[HI?O^HP0X'C(F&;
    MA!N^'6=Z1'3.+^WAU_"/'+Z_5$)RESWX71]K_`?>8,%Z56HX71\3UX%`DTJT
    MD*$5V/PW!0.YH<DU''G_K&B40R<HMAEZU@2<%>!6:<-6MDE_"Z$'@3]^)FCD
    M/Q.0!V(DQC2@3?=L1E88F2(NTXA1F+^D`BG"M0DN*:`P3ESU$Q-Q.S?1IYE"
    MFY0FT+A_<Z^5B$.+?R8L3]JR#$YZ4LQ+FA7&:#C55Z(.:5ZKT`"\!92YTYBV
    M"?X<62[:!/6JPI3]</8016?BRXW*S%-OX=SUQ7//&%(TMR)\04)>JP49F"Z\ M3CU?$Q<R25ZYFW!@8WBW*G=9+==.=%/[<2$B?0:B7+M`I!.B&>M3DP_Q3*3T
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
    M3[/#5?HZ+-Y7\X!HF)&::?\&lt;L7GZYIS#W>/*NI%A1N$EAU7MMNR?589GLW.N
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
    M;PJJ&S=SG"`J1!SK3_G;F,Y&O&]WCT)5C63SMBU2OK,TB\&gt;'K;?@5=8Z/!.Z
    M$-3YUI"5L'O0:8X#/5KTJ5/Z;4A7::-$-`S>^_AIE>%@7Y<$:9\^$7K^256$
    M=<$)@<U9D+B;%[ZR$QBI/[]F=#UFV#+P-5+2J[U0FD@W5J&2AC\0W2?TQ2N#
    ML$Y\^D5!%HFK5VY56`G$BS'R4>WMXFED;[\6U&HX%E#"\%*3ZS*O]R@G/#7Q
    M0"H"H.DC,UN,%G?Q[XVJO!R2%<O#NHBF(KMMA5O-M)^K=4%,PT8)6!F(0T/\ M:$'(.\$092:^7]ZA8JPW[?/?)140;RS\::DS`6M4(<(%!V'/&:VV\H#SGCT;
    MR#AP.L:P/*3CK6\X&^-M</E8H#5=6,S0+TG:0$=#U.G+498'7.H&MN-^%RBW
    M2X['OJ;\&lt;0.@2[24F.V*)RYNH;4AGUM2QQZ5,(:O"&LX_ICH<XY!-FCZ.+2'
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
    M-KPRN'<B5<+"7EFS[)6*`(^SLJPI8H?HBO3`[>`LZA2WI#<M"HM:5'6M>QV\ M"9VS53D-6@.5-^%^-0AWA8R3Z36@?<<*0&K'JP+`AO]3ILM#'@!?"_-!#`>X
    M59P6B[L.YCCQY8,4I3!:@4(]R.[W`>Y>_B+3M:L05._X\/RB\T[VY'\&lt;UI<*
    $?KD`````
    `
    end

     
  • Fredrick Meunier

    Updated with Gergeley's fixes

     
  • Fredrick Meunier

    Thanks very much for having a look at this. I've freshened the patch with your changes, but am not having any luck reproducing your success with CAT. This is what I have tried, what process is working for you?:
    1) ./fuse --opus
    2) Media->Disk->Opus->Disk 1->Insert New...
    3) CAT 1
    4) g Disk I/O error, 0:1

    and
    1) ./fuse --opus
    2) Media->Disk->Opus>Disk 1->Insert... select sdcnlco.opd (from http://web.tiscali.it/spectrumnostalgia/sdcnl/sdcnlco.zip\)
    3) CAT 1
    4) g Disk I/O error, 0:1

     
  • Gergely Szasz

    Gergely Szasz - 2009-07-20

    Hmmm... CAT seems to work only first time. After some disk activity, it hangs up...

     
  • Fredrick Meunier

    Corrected version of Gergely's fixed patch

     
  • Fredrick Meunier

    I reapplied your patch and can get the same results as you - CAT works (for some files) and a lock up occurs.

    Seems like we can get stuck in wd_fdc_event(), see stack trace below where we seem to be stuck with last_tstates == 41615 towards the end of a CAT of a big directory:

    0x0004b272 in crc_fdc (crc=65535, data=195 '?') at crc.c:69
    69 return ( ( crc << 8 ) ^ crc_fdc_table[( ( crc >> 8 ) ^ data ) & 0xff] ) &
    (gdb) bt
    #0 0x0004b272 in crc_fdc (crc=65535, data=195 '?') at crc.c:69
    #1 0x0005b6d5 in crc_add (f=0x1f8c280, d=0xcfcb80) at wd_fdc.c:209
    #2 0x0005b779 in read_id (f=0x1f8c280) at wd_fdc.c:232
    #3 0x0005bf63 in wd_fdc_seek_verify_read_id (f=0x1f8c280) at wd_fdc.c:406
    #4 0x0005c1ce in wd_fdc_seek_verify (f=0x1f8c280) at wd_fdc.c:458
    #5 0x0005d251 in wd_fdc_event (last_tstates=41615, event=11, user_data=0x1f8c280) at wd_fdc.c:810
    #6 0x00005f47 in event_do_events () at event.c:147
    #7 0x000063b5 in main (argc=1, argv=0xbffff440) at fuse.c:171
    (gdb) c
    Continuing.
    ^C
    Program received signal SIGINT, Interrupt.
    0x00053fc8 in fdd_read_write_data (d=0xcfcb80, write=FDD_READ) at fdd.c:302
    302 if( d->loaded && d->motoron ) { /* spin the disk */
    (gdb) bt
    #0 0x00053fc8 in fdd_read_write_data (d=0xcfcb80, write=FDD_READ) at fdd.c:302
    #1 0x0005b74e in read_id (f=0x1f8c280) at wd_fdc.c:230
    #2 0x0005bf63 in wd_fdc_seek_verify_read_id (f=0x1f8c280) at wd_fdc.c:406
    #3 0x0005c1ce in wd_fdc_seek_verify (f=0x1f8c280) at wd_fdc.c:458
    #4 0x0005d251 in wd_fdc_event (last_tstates=41615, event=11, user_data=0x1f8c280) at wd_fdc.c:810
    #5 0x00005f47 in event_do_events () at event.c:147
    #6 0x000063b5 in main (argc=1, argv=0xbffff440) at fuse.c:171
    (gdb)

     
  • Fredrick Meunier

    Version from the Opus development branch committed in revision 4060.

     
  • Fredrick Meunier

    • status: open --> pending-accepted
     
  • SourceForge Robot

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).

     
  • SourceForge Robot

    • status: pending-accepted --> closed-accepted
     

Log in to post a comment.