gS0L0 HDIOSV28 YED0EI B VӠ롛/ / ` U0 / 1`lRP (0/)0/ / {0 J1 1 1%5 18咅 1(哅 1擥ƕƔL0l d0 1ƕǤ d0. 1.`@   YL+0`z0`Ӡ(sMain Z2X32D DOSV ( V28   ,(3X33A DOS _*XD23E DOS U !1 V28   ,BI BAT ^ ('BIBOASS COMT;CLR_500 COM[, OSV24EQUBIBT;3EPSIO BIB[STATS BIB[ ,_OS V28[0 ----------- PLAIN TEXT -----------xOSV28 ASM $ OSV24EQUASM &$BEPSIO ASM 'a STATS ASM ';mXBW130 DOS _+TEAC ROMT;~S28$HHH өH*HHllhhh@HHLH|)ӝtI)MӍ|hh`HH||)thh(`44DEPH BLV `)`` '4 4 4Ȣ4 4LI4 4 w4 4x '4 44X 4) ~`8 '4 4 4L4L4Error: Not an XL/XE Computer.4.4t5} SpartaDOS Ver 3.2d 17-Feb-86 Copyright (C) 1986 by ICD, Inc. 4.4 4 4G)@}҅  EEF E x4 d5 d5" #   c5  M c5 , W5 4LL4 L LLHEi ȱEi `|40 `` 7 YL\ 2BHG H-G H ةHhJ \hBL\`@B 442@3Y45245324 `L1( (ҩmi:; < =x:23454 Μ ,  w ,P lνе X0`234 5` P21 ,350 2 9 4 2 9 LD1 9)ҢL1,350 &2 4 2 1`08` S< ACE,0ɋ8` `ύ&'0`e1i1`,07 ,ߍҩҭҍ )  `_ҩҩ,,,8`H)ҩh `#,ҍ ҩ(ҥA,ҩҩ`jj)?j)`Ң`H?ʎ @  0h ``@@B,~-32@3452453c24` ɔ FNot SpartaDOS disketteLɢ FDisk fullLɪ FFile not foundLɣ FIllegal wildcard in nameLɘ FNot binary fileLɤ FFile erase protectedLɕ FNot version II disketteLɩ FDisk write lockedLɖ FDirectory not foundLɀ FBreak AbortLɐ% FWrite protected or bad sectorLɥ FFile name errorLɨ FFunction not supportedLɧ FCan't delete fileLɗ FFile existsL` w  w(0   0a Y©ÍYh   N Y©  NΟ`L 8L`@D , ̍̍)̝BJJJJJ ̝D̝E0 KJ)̝JJJ)̝H̝I D@   Ϭ,0),~  FError -- L`(),! *+  -"#$./0_@ @CA똩)*K HJJJJ 9h) 0:iLhWhXWXͭ LNͭXHWH`, Nnn ͠H͎͌͢ͽ `Mܩ,0 N ͭO` P..*N  . 0PH0  ʩ `$%` Π vAG) ..ܭ` 7`  7`L @ ύ  ύ 乀` Ω* #* Z 0DLϠ ̠ ̭0L0f 0  LϮ Lϭ  /A ̠ LL~υCυD. yϠC  y 婛蝀`ȹ  ` ̢0 8̽ H̽I̠0 (ʢ 0L *)L* *M @ L ( `L(= # , 魗  筙`( L#() LLL I0   䍠 e , ʎi 0L CL] 0G   KQ;`) x뭤B L  ,  ,)ߍ "LLL  ,] 0 # K ح)  "L  밻) 멀 "L` ,L  Ld͙Lj魗  Lj$H0Ld88A e , s eECFD8  8  9L H ,C]Dah LꭖCD L譔  魙8L LL$H0 s ,LxECFD  鬙 9L謓CCC)` L_CC C`C`C`  EFL뭔 K`8mi` /L9 Z"C X `L ꭔ C8 CDC}TCȱC}UC`  eCCD`  _C``Ipi ͟? x0,)C) `II  08` CL # , 魗 `1@R H0>h0   * HH 0hh`hh,L L { P*)0 0*`*)& K9:*$+0;QG` {!*B sﭟͻͼ/ P {0*)((a,,,L ) *)  I0 , *)  I  0 I  K 䍝 ,) *I *c 0L U*) 0 @`L,0 K) MﭝI $ 0 zz  G L  Z v #(> sL L,0`H hɛ ,'L0,L P*H * {0h*L04*  0 )L Lq * { M {0Y) *LJ, -* { M {0 ,  ,) LkL, LLLL: * {, (] 0 # K M {0 LL8*  * 0I LL,H ) ") čɍҍ)*LB 0 ͠E 0)  0  63# ͌;QL   ͩ: ͭ ͩ: ͭ ͩa p ͩmLͭ ͩ- ͭ ͩ- ͭ L͢$ ` 6(ȭ(Ȣ(((ȭ(ȭ(` ȱCL,~LL # wL ʈ`1N@ 1!@1S@@8` v P  > Ȣ L >(ȩ(` (H(h `*$/ȱ$Aȩ *$$ `2Kd}j #H 0K 08}  )L ,08J mHh 8Jm , 3m L  8 L iL?EF,L譞)  #T 0N 0   Q 0` >$H s L)L  CȭC _ 1 /͓ hL\ s)H   EF 묓 hL\ KL\FА֐#eCCD$H0CELWEC$H _8m䍖L ``H譞=L `   hC̓ _`LK8EmEF8m䍚 W 0`8`8`CȱC`CȱC`  hCD ` / ?䭒,06/O)͒/?}` &O`)8O,0, } ,0} 8,0 8JHjmChmD`H)h)/ ?  &CD8 ` ` i͓ L?CC, CȭC CȭC _L 3 `),)   C&̓ͬ L,L   X,}T}U` .C   I1CC`   CC,0  L4L@ٯ` N j  ,0 z` _)8j`m K`, HJjhj`, H**hJ`_/]^/` 0 `y"U a ې;ݒ- ;m ; - ;  ]!K`Z6<` 2 @ ɛ  `  8)ɀɛ ȹ`COPLOASAVAPPENCWERASRENAMCREDIDELDICARUPRINTYPDIDIRMEPAUSVERIFBOOCHKDSPROTECUNPROTECLOCUNLOCXDIAINI?DIBASITIMDATTKE,,,,L̩` FFormat: Are you sure? )_H hY L W,P` 7l FNo cartridge` ̭8 F Volume:  ͭ   0ͩ   0 F͛Bytes/sector: 0 F͛ Total bytes:  l F͛ Bytes free:  lͭ ( F͛ Write lock: ,!0 FOFFL FONL  , ̠ 0  BLL `LX  ΍ 7 PL\l FPress any key to continue L FMemlo: $ 0ͭ 0 F Memhi: $ 0ͭ 0ͩL ̠ ̠L M)MӍӌj E L ̭O NF FParameter ErrorL` *L *L  FCurrent date is   F͛Enter new date: - 3_ɛX KJLL  FCurrent time is  F͛Enter new time: : 3 ɛ F`ɛ )_PAϩ, mJ  J JLO WMJ`:8`M {)pM mM iM {`ȹ 0:`8`L ` 7 VL\ 7 L\%H$H`LPLI L2 X  UD1:autorun.sysstartup.batQ*.*.COM.BATD1:Volume: Directory: FREE SECTORS LI z)͒}`CLR_500BIBOASS A   {  $ L= t ϘA(X  u u LL (LRl hL`L Ř ☢ ͘+-, ) ☬` ͘$*'a*O%f0:G ΍L uuL8L핢 ☢ ͘/ ͘02 )j&뢒М LLԕ Ζ Ζ` ͘I0 i ☢` &&8` ٕ { Y { )L7ȹ @0'7 } ŧ娰 ` y LZѦ ȹ, }LZ 9  ܗ ܗ ܗ )ą - `$0 חܩ-L±`H"I$hLh) © `HH` l l7њ ". ėei`e n`` ͘I0 襡` ☩ ͘I0 eHehƢ􅠆ܢ` ͘`ȹȄ ` `Hh``6`#R'S`DU Ϙ  L L\  ☤ȹ-<蝀 ͘1H"Ih$(Lm)(ݽ0iЩˢ蝀Ǝ  v8Ǖŀ偐Zť妰qƌ /` 9`摥Ō`LL0 ţ夰ƤƣƨƧ१`  L`ņ凰.e,0$ȱȱ,0` ѥЪﱥө 08刍`L { Y ח Y חL ח Y { Y ח YL&` L ݛL0` L*$ΰ`Lݛ u~ ņ凰&Hȥeȥehe` L LNL L0 u  8𲥄ŀ偐 ť妰1ͦ8ƍƌŊ勐 /ƍƌ 9 9 9 9`  vL0  ʆ` ņ凰V ܗ ܗ ܗ ,… ¥ L۝`͈ ``LŒ Ř D Ϙ͈٩@ D? mņ凰 ܗ ܗ ܗ ,… ¥ ܗ ܗ ܗ… 闝撦9@. H  hN  ]8ƅ L`Ţ {Aȱ )?ȱ ·0 Hh6Ы`)?i)H· LS . hH +- hȱeHi ^h ^б ٕLP ٕ LP ٕLS.< ͘0::6 /d) !  ͘.0 :A{ ☎`8.f@ iiȱ&)?Ȱ u8`)?ȱ`.)?iȱqȱi`L" {L  L f$`Lǟ L& {L  {ōʅ@ )ņ凰 ܗ ܗ ܗ$0    Ϙl*f;b-^ ͘V=9;L ͘ ͘t W  * LLtLH ͘ ͘ h  L&LL  ٕ0ꤸ廅ȘLgL ͘A ͘:# /( ᕥ#./&(U ͘/, ͘X/Y6LLܢ Lܢ h ] נ R ͘),д ͘XЭ ͘)Ц , ͘,4 ͘Y- #l Lܢ  LܢLL0`GH$0   ,0a,00ŅŃ ŇcŁ]h$0 ^ b`hLG$# Y( Y) ח`P$ 1h LGL$0 Y: `$0ݤ `   LL `L.Die惥ń兰 `LN0 ƃƂ8ȥУLLߢ ͘FNfL&Lâ ٕ H ҥ hLߢLF` ٕ릷Lߢ Řy- ͘k͈ LLߢ ŘR- ͘D͈****))K L(@ ` Ř Ζ Ζ LW ͘LߢLL. L ٕ LߢȥLߢLF Řč# /"* ٕ#/   ͘,LߢLԦ ͈͘ L ٕЪ ͘,F beeee,ƸƷP L/Lߢ ٕ'#Ƥƣ L`LߢLL@) @``ű Ų`?  8屑ȥ岑 Y(  Y) `ʩ`% fΆ΅P LߢL& P eeƬƫ `P `JMPLl|JSR LDALDXLDYSTASTXSTYADCimeaqu}yrAND)-%!15=92ASL BIT,$4<CMPCPXCPYDECEORIMEAQU]YRINCLSRNFJV^ORA ROL.&*6>RORnfjv~SBCSTZdtTRBTSB BRKCLCCLDCLIXCLVDEA:DEXDEYINAINXINYNOPPHAHPHPPHXPHYZPLAhPLP(PLXPLYzRTI@RTS`SEC8SEDSEIxTAXTAYTSXTXATXSTYABCCBCSBEQBMI0BNEBPLBRABVCPBVSp.LI.OR.TAޥ.AS.AT.HXN.EQs.DA.BL.EN.INp.OF.DF9.OB.NO`BgDE" m%ȝDE ͘:Ƞg`J ݬ`BDEHI V0  L8LD:*.* Ϙſ`8`0 #00DEJB ݬ`P:HH BHI ݬhh`@  R LH " m0 ͘DEhJKBLݬL L ER x L8`  BLݬDEHI B ݬDEHI B V0`L :E7R0 x8ŀ偐 NLLLDEHIBLݬ0  L& L :4/, m ٕ 䭥Lޭ NL x`L , m, ٕȩ, q ٕ LL :ХР 䭥, beemm  Lߢ  BHI ݬ   LxǍXe,,K,mi ) ǭ ɛ`8fL` DEHIB V  LtL HǠ^I^`  ` ` , 010)  聰` Ld@^I^L0ɛ ɀ)  LHH`HH`%H$H`0H8OHT hhihh ` d' ^HJJJJ ih) ii0L  {`  `H hH  {hH {hɀ { +  { L { 0 ѤLdFMSZ`ɱر)5EKScϲ)޲Edit>Inc>Ed.2>Mon>}* BIBO-ASSEMBLER V1.0 13/12/86 ** (c)1986 E.Reuss / Compy-Shop **** Error ***SyntaxMemory fullSource Data: Symbol Data: ED2 already usedCan't mergeOut of rangeI/O - Error #File typeBad addressUndefined labelHEX=$ DEZ=Bad local labelSymbol table:-------------Bad instructionBad labelDuplicate labelLocal out of rangeBranch too longMemory storagePass: 1Pass: 2Label not foundNested includeASM stopped*** BREAK ***LdR t  ȅ0I0i La L= HHĠ`:;.+-,<>?="GLMQRSTVW WWWWW_J׵2Oܳⶂa ߶峭Ld hh:LR; LR`W:;ĥ揤ȹ `JSJJ HL>eHe GhL︥ReDžU =Lȹ`iiLz  Ǵ ^ ޴ ) LzU ɛ ` :L摥Ō` ش`` ޴`ѐ Ǵ ^ ( ^) ش`ȹɛ ` Ō卐ȹɛW"d Hh4ƿو!Ŀ Ǵ ^  拥Ő呐 L=ɛ𷦿𫮞 L=   ^L,lHҥҩMBhhhhXh)H(# { Lص ෩ BH h(h`H(X`X`l &&I0 i` `, af   L Ō印EeeL5拭   iLeeLL=ȹ15)S S0) `LطR@P1    Y0` L=` ෩H  u h8`  ¨J J") J JJJJ)݀+d)) JJJ Ȉ`) `H ^ ĦȐ hι&*i?  豣 ^s y ` Ș ^L^ :L `8e`@E@ 0"E3@ @E3@ @E@ "D3ЌD"D3ЌD"D3@ "D3@ bx!YMJIZ,),#($YX$$ 24:H?I#]#)i#$S#$S[[i$$)|mi)S4i#S)bZH&bTDThDt(ntJrtttrDh2"&&rr&HDDĄtvtrr ȥPL= ෥$ hhO0 Q`4@+LRlO)I L + L=hhh8  HHHH8U L 8 n8LJL<LISDIRINC'SIZOED2MERϛREN3NUMNEWRETCOPMOVFINϝDELULSTիENT:SAVILOAVALREPdSYMƟASMPONPOF}HIMLOMDOSBIBȕBLOBSAMON-RUN `ER*" *********************************Betriebssystemf}rdas*(*3.5" Interface *2*f}rdenAtariXL/XE*<**F*Hersteller:ErhardP}tz*P*OS-Code:ErhardP}tz*Z**d*(c)1989,1990,1991*n**x*Version:2.0****UltraSpeed:Ja**HD-Modus:Ja**Sektoranordnung:Calc.**Bootsektorpuffer:Nein**Trackpufferread:Nein**Trackpufferwrite:Nein**ROM-Boot:Nein***"****************************** *.LIOF.NO"*********************************DefinitionvonMacros**von65C02-Befehlen,*"*diedieserbloede*,*Assemblernichtkann.*6**"@******************************J;TRBO=$07;ClearBiton^RB1=$17;Page0Adr. hRB2=$27 rRB3=$37 |RB4=$47 RB5=$57 RB6=$67 RB7=$77;SB0=$87;SetBitonSB1=$97;Page0Adr. SB2=$A7 SB3=$B7 SB4=$C7 SB5=$D7 SB6=$E7 SB7=$F7;BR0=$0F;BranchonBR1=$1F;Bitreset BR2=$2F &BR3=$3F 0BR4=$4F :BR5=$5F DBR6=$6F NBR7=$7FX;bBS0=$8F;BranchonlBS1=$9F;Bitset vBS2=$AF BS3=$BF BS4=$CF BS5=$DF BS6=$EF BS7=$FF-";RIOTPorts(Ram:$4000-$407F)-RRAM=$4000PORTA=$4080Bit;0oTxC ;1oTC;2i/IDX;3oHDL ;4nc ;5nc ;6oPCVal*;7i/DC4PACTL=$4081>PORTB=$4082H;0oRSTSIOR;1oRSTFDC\;2oDRVFDCf;3iIRQFDCp;4oA14Romz;5oA15Rom;6i/RDY ;7iD#PBCTL=$4083-;RIOTTimer- RTIMID=$4084;%10000100R RTIMIE=$408C;%10001100RIFLG=$4085;%10000101R T0001D=$4094;%10010100W T0008D=$4095;%10010101W T0064D=$4096;%10010110W T1024D=$4097;%10010111W T0001E=$409C;%10011100W T0008E=$409D;%10011101W T0064E=$409E;%10011110W $T1024E=$409F;%10011111W.-8;SIOAdressenB-LSIODAT=$4100VSIOCMD=$4101`SIOST=$4101j-t;FloppyControllerAdressen~-FDCST=$4200;FDCStatusR FDCDAT=$4201;FDCDataR/WOR=$4300CR=$4400- ACK='A NACK='NCOMPLT='CERROR='E- ;Seite0-.OR$0000 BUFADR.HX0000BUFLEN.HX0000BUFEND.HX0000(DIV.HX00002DOR.HX0000<ZSP.HX0000FD0PB.DA$2A00PD1PB.DA$2B80ZD2PB.DA$2D00dD3PB.DA$2E80nD0PT.HX0000xD1PT.HX0000D2PT.HX0000D3PT.HX0000-;Variablenf}rSIO-PSUMME.HX00DRIVE.HX00COMAND.HX00DAUX1.HX00DAUX2.HX00.HX00empf.PSUMMESTATUS.HX00BAUD.HX00Zaehlerf}r;Sendetakt-;Variablenf}rFDC"-,OFFDEL.HX00MotTimeout6MOTIM.HX000000@ACTDRV.HX00JCYL.HX00THEA.HX00^REC.HX00;$04hNUM.HX00rEOT.HX12|GPL.HX01DTL.HX00;$08STM.HX00.HX000000;$0CIDTAB.HX00;CYL.HX00;HEA.HX00;RECFOTAB.HX00;NUM.HX00;EOT.HX00;GPL.HX00;DTLCHKROMZ.HX0000RTIMIDZ.HX00-;Prozessorstapel(STACK)-.OR$0100&STACK.BL$0100,$000- :;TabellenD-N.OR$0200XDRVTAB.HXFFFFFFFFbST0TAB.HXFFFFFFFFlST1TAB.HXFFFFFFFFvST2TAB.HXFFFFFFFFST3TAB.HXFFFFFFFFPCNTAB.HXFFFFFFFF- PTRACK.HX50505050#Tracks PSTEPR.HX02020202Steprate!PSEKHI.HX00000000#Sektors!PSEKLO.HX12121212perTrackPSIDE.HX00000000(00/01)PMF.HX00000000(00/04) PBYTHI.HX0000000000/1/2/3 PBYTLO.HX8080808080/0/0/0PONLIN.HXFFFFFFFF.HX00000000unused.HX00000000unused .HX00000000unused PBAUD.HX0A0A0A0Aser.Clock PHD.HXFFFFFFFF2ND/0HD*PMT.HX00000000MT=$80!4PMAXLO.HX00000000#Sektors >PMAXHI.HX00000000perDiskH- RST02EA.HX00000000;->$02EA \ST02EB.HX00000000;->$02EB fST02EC.HX00000000;->$02EC pST02ED.HX00000000;->$02EDz-HPYFLG.HX00000000RDFLAG.HX00000000-SKEW.BL$24,$00SKWSEC.HX00SKEWPT.HX00INTRLV.HX00-.OR$0300SKWADR.BL$90,$00- ;Puffer- .OR$0400 BOOTBF.BL$0200,$00 -$ SIOBUF.BL$0100,$00. SECBUF.BL$0100,$008 -     ER҂"*High-SpeedSIO-Routine,wird!*andieZieladresseangepa~t *undzumComputergesendet.;USIOALDA$0301;DUNIT BNESIO2 $LDX#$08 .DLWTBLLSTALWTBL-1,X;$F6148DEXBBNEDLWTBLLLRTS VSIO2TAX`REL01LDALWTBL-1,X;$F614 jBNESIO3 tLDA#$28~REL02STALWTBL-1,X;$F614 LDY#$07SIOCLLDA$0302,Y;DCOMNDPHAREL03LDAC3F,Y;$F60DSTA$0302,Y;DCOMNDDEYBPLSIOCLREL04JSRSIO3;$F450LDX$0301;DUNITLDY$0303;DSTATSBMISIO21 LDA$01REL05STALWTBL-1,X;$F614 SIO21LDY#$00SIO21CLPLASTA$0302,Y;DCOMND(INY 2CPY#$08<BCCSIO21CL FSIO3SEIPTXA ZORA#$30dSTA$023A;CDEVICnLDA$0302;DCOMNDxSTA$023B;CCOMNDLDA$030A;DAUX1STA$023C;CAUX1LDA$030B;DAUX2STA$023D;CAUX2REL06LDALWTBL-1,X;$F614STA$D204;AUDF3TSXSTX$3F;FEOF LDA#$02STA$37;DRETRYIO11LDA#$07STA$36;CRETRYIO12LDA#$34STA$D303 LDA#$00STA$30;STATUS"STA$3E;FTYPE,STA$35;BUFEND+16STA$D206;AUDF4 @LDA#$3AJSTA$32;BUFADR TLDA#$02^STA$33;BUFADR+1hASLrSTA$34;BUFEND|REL07JSRSEND1;$F4DCLDA$0304;DBUFLOSTA$32;BUFADRLDA$0305;DBUFHISTA$33;BUFADR+1LDA$0308;DBYTLOSTA$34;BUFENDLDA$0309;DBYTHISTA$35;BUFEND+1LDA$0303;DSTATS BPLIO2REL08JSRSEND1;$F4DCIO2DEC$3E;FTYPEREL09JSRSETTI1;$F544BIT$0303;DSTATS BVCIO3REL10JSRGETA1;$F521&IO3LDA#$A00STA$D207;AUDC4 :LDA$10DSTA$D20E;IRQENNREL11JSRCLRTI1;$F576XLDA$30;STATUS bBEQIO4lDEC$37;DRETRY vBNEIO11 IO4TAY BNEIO5INYIO5STY$0303;DSTATSCLIRTSSEND1LDY#$00 SE1INY BNESE1 LDA#$23REL12JSRPOKEY;$F5F7LDA($32),Y;BUFADRSTA$31;CHKSUMSTA$D20D;SEROUT INY BNESE3 SE2LDA($32),Y;BUFADR*REL13JSRPUTBYTE;$F5D44INY >BNESE3HINC$33;BUFADR+1RDEC$35;BUFEND+1 \LDX#$E0 fSEWLINX pBNESEWLzSE3CPY$34;BUFEND BNESE2LDA$35;BUFEND+1 BNESE2LDA$31;CHKSUMREL14JSRPUTBYTE;$F5D4SEO1LDA$D20E;IRQST AND#$08 BNESEO1 LDY#$03REL15JSRSTOUTX0;$F578 LDA#$C0STA$D20E;IRQENBNERDQUIT GETA1LDY#$00 STY$31;CHKSUM GE1JSRGETBYTE;$F5B1$ STA($32),Y;BUFADR. REL16JSRADDSUM;$F5EF8 INY B BNEGE2L INC$33;BUFADR+1V DEC$35;BUFEND+1` GE2CPY$34;BUFEND j BNEGE1t LDA$35;BUFEND+1 ~ BNEGE1 REL17JSRGETBYTE;$F5B1 CMP$31;CHKSUM BNEERR8F RTS SETTI1LDA$0306;DTIMLO ROR ROR TAY AND#$3F TAX TYA ROR AND#$C0 TAY REL18JSRSTOUT;$F57A RDQUITLDA#$3C( STA$D303 2 LDA#$13< REL19JSRPOKEY;$F5F7F REL20JSRGETBYTE;$F5B1 P CMP#$41Z BEQCLRTI1 d CMP#$43n BEQCLRTI1 x CMP#$45 BEQERR90 LDA#$8B BNEERR ERR90LDA#$90 STA$30;STATUS CLRTI1LDY#$00 STOUTX0LDX#$00 STOUTLDAERRABS;$F STA$0226;CDTMA1 STOU2LDAERRABS+1;$F STA$0227;CDTMA1+1 LDA#$01 JMP$E45C;SetzeCDTMV1 ERRABS.DAERR8A;$F IOER80LDX$3F;FEOF TXS " LDA#$80, STA$30;STATUS6 BNEEABS3@ ERR8FLDA#$8F J .HX2CT ERR8ALDA#$8A;Timeout^ ERRSTA$30;STATUSh LDX$3F;FEOFr TXS| LDA$3E;FTYPE BMIERRA DEC$36;CRETRY BEQERRA REL21JMPIO12;$F47A ERRALDA#$28 STA$D204;AUDF3 EABS3JMPIO3;$F4C1 GETBYTELDA$D20E;IRQST BPLIOER80 AND#$20 BNEGETBYTE LDA#$DF STA$D20E;IRQEN  LDA#$E0 STA$D20E;IRQEN LDA$D20F;SKSTAT& STA$D20A;SKRES0 BPLERR8A : AND#$20D BEQERR8AN LDA$D20D;SERINX RTSb PUTBYTETAXl PUTA1LDA$D20E;IRQST v AND#$10 BNEPUTA1 LDA#$EF STA$D20E;IRQEN LDA#$D0 STA$D20E;IRQEN TXA STA$D20D;SEROUT LDX$D20E;IRQST BPLIOER80 ADDSUMCLC ADC$31;CHKSUM ADC#$00 STA$31;CHKSUM RTS POKEYSTA$D20F;SKCTL STA$D20A;SKRES LDA#$28* STA$D208;AUDCTL 4 LDA#$A8> STA$D207;AUDC4 H LDA#$F8R STA$D20E;IRQEN\ RTSf C3F.HX3F40p .DA$0001z .DA$0001 .DA$0001 LWTBL.BL8,0 USIOEH ABSTBL.DADLWTBLL+1,REL01+1,REL02+1,REL03+1,REL04+1,REL05+1,REL06+1@ .DAREL07+1,REL08+1,REL09+1,REL10+1,REL11+1,REL12+1,REL13+1> .DAREL14+1,REL15+1,GE1+1,REL16+1,REL17+1,REL18+1,REL19+17 .DAREL20+1,STOUT+1,STOU2+1,ERRABS,REL21+1,EABS3+1ER STATSJSRDSTAT *-02EA-*LDAST02EA,Y0,1 (AND#$03 2STADIV<LDAST1TAB,Y2(WE)FASL PAND#4 ZTSBDIVdLDAST3TAB,Y3(WP) nAND#8 xTSBDIVLDAPORTA4(MOT)ASL AND#$10 TSBDIVLDAPBYTHI,Y5(DD) CMP#$01 BCC.01.DA#SB5,#DIV.01LDAPSEKLO,Y7(MD)CMP#$13;>18=MDLDAPBYTHI,Y;ifnotBEQ.02;>128CLC;By/Sec.02BCC.03.DA#SB7,#DIV.03LDADIV"STAST02EA,Y,STASIOBUF 6*-02EB-*@LDAST02EB,Y(2-6) JAND#$7C TSTADIV^LDAST3TAB,Y7(DC) hAND#$80 rTSBDIV|LDAFDCST0,1 AND#$50ASLASLASLASL CMP#2 BCC.04 EOR#6.04EOR#3 ORADIVSTAST02EB,YSTASIOBUF+1 *-02EC-*LDA#$E0TimeoutSTAST02EC,YSTASIOBUF+2 &*-02ED-*0LDAFDCST:STAST02ED,YDSTASIOBUF+3N;XLDA#COMPLTSendenbJSRSIOPUT lLDA#4vSTABUFLENSTZBUFLEN+1JSRSSIOBF JSRXMIT;LDAST02EA,Y AND#$FCSTAST02EA,Y;LDAST02EB,Y AND#$83 ORA#$18 STADIVLDAST3TAB,Y AND#$40 EOR#$40 TSBDIV LDAST3TAB,Y *AND#$104LSR>LSR HORADIVRSTAST02EB,Y\JMPWAITCMDf-pSRDSTLDYACTDRVzLDAST02EB,YResetORA#$3C2,3,4,5 STADIVLDAST2TAB,Y5(CM) AND#$40LSR TRBDIVLDAST1TAB,Y5,4,?,2AND#$34->LSR2,5,4LSRLSR BCC.01 ORA#8 .01ASL EOR#$FF ANDDIV$STAST02EB,Y.RTS8- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwER 5 .IN"D:OSV24EQU.BIB.OR$C000.OF"D:TEAC.ROM(*2CHKROM.HXFFFF<.AS"EP HDI Version 2.8"F*PROMTSTLDA#$02ZSTABUFADR dLDA#$C0nSTABUFADR+1 xLDA#$FFSTABUFENDSTABUFEND+1STZCHKROMZSTZCHKROMZ+1.01LDA(BUFADR)CLCADCCHKROMZSTACHKROMZ BCC.02INCCHKROMZ+1.02JSRBUFINC BCC.01LDACHKROMANDCHKROM+1 CMP#$FF BEQ.99"LDACHKROMZ,CMPCHKROM6.03BNE.03@LDACHKROMZ+1JCMPCHKROM+1T.04BNE.04 ^.99RTSh- rSETXSEC|LDABUFEND+1SBCBUFADR+1TAXRTS-RAMSETLDY#$00 JSRSETX.01LDABUFADR+1.02STA(BUFADR),YINY BNE.02INCBUFADR+1DEX BNE.01RTS*RAMCHKLDY#$00 &JSRSETX0.01LDABUFADR+1:EOR(BUFADR),YD.02BNE.02NSTA(BUFADR),YXINY bBNE.01lINCBUFADR+1vDEX BNE.01RTS*RAMTSTSTZBUFADR LDA#$02STABUFADR+1 LDA#$40STABUFEND+1JSRRAMSET LDA#$80STABUFADR+1 LDA#$C0STABUFEND+1JSRRAMSET LDA#$02STABUFADR+1 LDA#$40*STABUFEND+14JSRRAMCHK >LDA#$80HSTABUFADR+1 RLDA#$C0\STABUFEND+1fJMPRAMCHKp-zMOVTABLDX#$5F.01LDACMDTAB,XSTARRAM,XDEX BPL.01RTS- CALCSECLDADAUX1 SBC#$01 STADIVLDADAUX2 SBC#$00STADIV+1LDAPSEKLO,Y;#SecLO STADOR LDX#$00 $STXZSP.STXZSP+18STXDOR+1BSHIFTBITDOR+1LBMISCHLEIF VASLDOR`ROLDOR+1jINXtBNESHIFT~SCHLEIFSEC LDADIV SBCDOR STAZSPLDADIV+1SBCDOR+1STAZSP+1PHP ROLCYLPLP BCCNEG LDAZSP STADIVLDAZSP+1 STADIV+1NEGLSRDOR+1 RORDOR(DEX2BPLSCHLEIF <LDXDIVFINX PSTXRECZLDX#$00;HEAdLDAPMT,Y;MT?nBPL.01;Nein-> xLDACYLLSR STACYL BCC.01INX;HEA=1.01LDACYLCMPPTRACK,YBCCNSIDE1SBCPTRACK,Y STACYLINX;HEA=1NSIDE1STXHEARTS-LENTAB.HX00010204081020;SECBFLLDAPBYTLO,Y"STABUFLEN,LDAPBYTHI,Y6TAX@LDALENTAB,XJSTABUFLEN+1T;^SSECBFLDA/SECBUFhSTABUFADR+1rLDA#SECBUF|STABUFADRSBFENDCLCLDABUFADRADCBUFLENSTABUFENDLDABUFADR+1ADCBUFLEN+1STABUFEND+1RTS-SSIOBFLDA/SIOBUFSTABUFADR+1LDA#SIOBUFSTABUFADRJMPSBFEND-BUFINCINCBUFADRC=1if&BNE.01endof0INCBUFADR+1Buffer:.01LDABUFADR+1DCMPBUFEND+1 NBCC.02XLDABUFADRbCMPBUFEND l.02RTSv-PBYTEBITFDCSTBPLPBYTESTAFDCDATRTS-GBYTEBITFDCSTBPLGBYTELDAFDCDATRTS-RESULTSPHALDA#$02;TerminalTSBPORTA;CountSetTRBPORTA;Cleared PHXLDYACTDRVGet7 JSRGBYTEResult*STAST0TAB,YBytes4JSRGBYTEfromFDC>STAST1TAB,YHJSRGBYTERSTAST2TAB,Y \LDX#$00f.01JSRGBYTEpSTACYL,XzINX CPX#$04 BNE.01*LDAST0TAB,YC=1beiASLErrorORAST0TAB,YASLPLXPLARTS- SPECPHXLDX#$02;verm.ND LDAPSEKLO,Y;Beimehr CMP#19;als18 BCC.01;Sektoren$ LDX#0;=HD . .01TXA 8 STACRB STAPHD,YL LDA#$03;CMDV JSRPBYTE` LDAPSTEPR,Y;Stepr. j AND#$0F t BEQ.02~ DEA .02EOR#$0F ASL ASL ASL ASL BPL.03 CPX#$00BeiHD BNE.03SRTx2 ASL .03ORA#$0F;SRT/HUT JSRPBYTE LDA#$1F;HLT ASL CPX#$00  BNE.04 ASL( .04ORA#$01NoDMA2 JSRPBYTE< PLXF RTSP - Z DSTATPHAd LDA#$04;CMDn JSRPBYTE x TYA;D# JSRPBYTE .01BITFDCST BPL.01 LDAPORTA;DChange AND#$80 ORAFDCDAT STAST3TAB,Y PLA RTS - ISTATPHA PHX .04LDAFDCST;FDCRQM  BPL.04  AND#$70  BNE.04" LDAFDCST, AND#$0F;Busy?6 BEQ.03;Nein->@ LDA#$08;WIRQJ .01BITPORTB T BEQ.01^ .03LDA#$08;CMDh JSRPBYTEr JSRGBYTE | CMP#$80 BEQ.02 PHA AND#$03 TAX PLA STAST0TAB,X JSRGBYTE STAPCNTAB,X .02PLX PLA RTS - TR00LDA#$07;CMD JSRPBYTE  TYA;D# JSRPBYTE& JSRISTAT0 JMPDSTAT: -D STEPINLDA#$01N BNESEEK1X STEPOUTLDA#$FF b SEEK1CLCl ADCPCNTAB,Yv SEEKCMPPTRACK,Y BCSSEEKX PHA LDA#$0F;CMD JSRPBYTE TYA JSRPBYTE;D# PLA JSRPBYTE;NCN JSRISTAT JSRDSTAT CLC SEEKXRTS - XMTCMDPHA;CMD PHX PHP LDAPMF,Y* ASL4 ASL> ASLH ASL R AND#$40\ TSXf ORA$0103,Xp JSRPBYTE z LDAHEA ASL ASL ORAACTDRV JSRPBYTE PLP BCC.02 LDX#$00 .01LDACYL,X JSRPBYTE INX CPX#$07 BNE.01 .02PLXPLARTS- $RESETCLD.LDX#$FFCa.130ms8TXSVerz|ge-BLDY#$FFrungzumL.01DEYEinschwin-VBNE.01gender`DEXBetriebs-jBNE.01spannung.t*~STXPACTLEing{ngeSTXPBCTL*STX$0065C02CPU?.HX8700SB0$00 LDA$00.02BEQ.02Nein->*.03TXARamtestSTA$00,XSeiten EOR#$FFSTA$0100,X0und1INX BNE.03 .31TXACMP$00,X.32BNE.32 (EOR#$FF2CMP$0100,X<.33BNE.33FINX PBNE.31Z*dLDA#$FDMotorannSTAPORTATCzur}ck-xLDA#$5BsetzenSTAPACTL*LDA#$FC/Resetf}rSTAPORTBFDCundLDA#$37SIOSTAPBCTL*JSRROMTSTJSRRAMTSTJSRMOVTAB* LDA#$FFSTAT1024D65msPause.13BITIFLGnachReset BPL.13*"LDA#$4DSIO:8/N/1,STASIOCMDasynchron 6LDA#$37@STASIOCMDJ*TLDAFDCSTFDC:Base^LDA#$08Warteaufh.14BITPORTBFDCIRQrBEQ.14nachReset|*LDX#$02ND STXCR*LDY#$03EinReset.15JSRISTATbedingtDEYdenNicht-BPL.15RDY-Status*allerFDD*u.erzeugt*einenIRQ*LDA#$032msSRTJSRPBYTE LDA#$EFJSRPBYTEJSRPBYTE&*0LDY#$03AlleLauf-:.16LDA#$07werkenachDJSRPBYTETrack0NTYAXJSRPBYTEbDEY lBPL.16v*.17JSRISTATEssindLDAFDCSTnochnichtAND#$0FalleBNE.17fertig->*LDA#$31VorhandenePHAFloppiesLDY#$00eintragen.18STYACTDRVundkonfi-LDA#40gurierenSTAPTRACK,Y LDA#$02STAPSTEPR,YSTAPHD,Y LDA#$00STAPSEKHI,Y STAPSIDE,Y*STAPMF,Y4STAPBYTHI,Y>STAPMT,YHSTADRVTAB,YRSTAHPYFLG,Y \LDA#$12fSTAPSEKLO,Y pLDA#$80zSTAPBYTLO,Y LDA#$FFSTAPONLIN,Y LDA#$0ASTAPBAUD,YLDA#$D0Max#ofSTAPMAXLO,YSectors LDA#$02STAPMAXHI,YJSRDSTATLDAST0TAB,Y;Fehler=AND#$D0;keineBNE.19;FloppyPLASTADRVTAB,YINAPHA$JSRCFGDRV ..19INY 8CPY#$04 BBCC.18LPLAVLDA#$08Motoraus`TRBPORTAjLDA#$2519200BdtSTABAUDSendetakt~LDA#$FA3SekundenSTAOFFDELNachlaufJMPWAITCMD-CFGDRVJSRIFDISKBMI.00;Ja->RTS.00JSRMOTON LDA#$50STAPTRACK,YLDA#$02;SD/DD STACRSTAPHD,YLDA#$00;FM STAPMF,Y STAHEAJSRREADID (BCC.012LDA#$04;MFM<STAPMF,Y FLDA#$00 PSTAHEAZJSRREADID dBCC.01nLDA#$00;HD/MFM xSTACRSTAPHD,Y STAHEAJSRREADID BCC.01LDA#$00;HD/FMSTAPMF,Y STAHEAJSRREADID BCC.01LDA#$02;DefaultSTAPHD,Y;ND/FMLDA#$00;80ByteSTAPBYTHI,Y LDA#$80STAPBYTLO,YBNELASTSEC".01LDAST02EB,Y ,ORA#$406STAST02EB,Y@LDANUM;SetzeJSTAPBYTHI,Y;Disk-TLDA#$00;Sektor-^CMPNUM;L{nge.hRORrSTAPBYTLO,Y|JSRNUMSECJSRSE01BFLDAST02EB,Yreadsec.ORA#$40forcesSTAST02EB,Yunprot.JSRSRDSTLDA#$01Seite1? STAHEAJSRREADID BCS.03 CMPHEA BEQ.10.03LDA#$00.10STAPSIDE,Y LDA#$00 STAHEA JSRSPEC &LDA#40 0JSRSEEK:JSRREADID DBCS.04 NLDA#77 XJSRSEEKbJSRREADID lBCS.04 vLDA#80.04STAPTRACK,Y.05JSRTR00 LASTSECLDAPTRACK,Y;T*H*S=STADIV;maxSecLDXPSIDE,YLDAPSEKLO,YDEX BMI.06ASL.06STADOR LDA#$00STAPMAXLO,YSTAPMAXHI,YSTADOR+1 .07LDADIV BNE.08 RTS*.08AND#$01 4BEQ.09>CLCHLDAPMAXLO,Y RADCDOR\STAPMAXLO,YfLDAPMAXHI,YpADCDOR+1zSTAPMAXHI,Y.09LSRDIV ASLDORROLDOR+1 JMP.07-SE01BFLDADAUX1PHALDADAUX2PHA LDA#1STADAUX1STZDAUX2 JSRRSECPLASTADAUX2PLA$STADAUX1.JSRSBTBF 8LDY#$7FB.01LDASECBUF,YLSTA(BUFADR),YVDEY `BPL.01jLDYACTDRVtRTS~- SBTBFTYALSRPHARORCLCADC#BOOTBFSTABUFADRPLAADC/BOOTBFSTABUFADR+1RTS-READIDPHA LDA#$0A;CMDCLCJSRXMTCMD(JSRRESULTS2PLA<RTSF-PNUMSECLDX#$23L|scheZ.00STZSKEW,XTabelledDEX nBPL.00x*DriveSel.JSRREADIDdurchHUTLDA#4Warteauf.01BITPORTAIDX:BEQ.01LO-HI.02BITPORTAHI-LO BNE.02* LDX#0.03JSRREADIDStartedasLDARECLesenderCMPSKEWHeadermitBEQ.04d.fallen-STASKEW,XdenFlankeINXdesIndex-CPX#$24impulses. BCC.03"* ,.04TXA6STAPSEKLO,Y @LDX#0 JJSRY40T.05LDASKEW,X^STASKWADR,YhINYrINX |CPX#$24 BNE.05LDYACTDRVRTS-Y40TYAY=Y*40ASLASLASL STADIVASLASL ADCDIVTAYRTS-RSECLDYACTDRV &JSRCALC 0LDACYL :JSRSEEKDLDAPBYTLO,Y NSTADTLXLDAPBYTHI,Y bSTANUMlLDAPSEKLO,Y vSTAEOT;JSRSECBFL;LDA#$06;CMDSECJSRXMTCMD; LDY#$00.04LDA#$20;FDCEXM.05BITFDCST BPL.05 BEQ.06LDAFDCDAT EOR#$FF STA(BUFADR),Y; INY *BNE.074INCBUFADR+1>DECBUFLEN+1H.07CPYBUFLEN RBNE.04\LDABUFLEN+1 fBNE.04p;z.06JMPRESULTS-WSECLDYACTDRV JSRCALC LDACYL JSRSEEKLDAPBYTLO,Y STADTLLDAPBYTHI,Y STANUMLDAPSEKLO,Y STAEOT;JSRSECBFL; LDA#$05SEC$JSRXMTCMD.; 8LDY#$00B.01LDA#$20L.02BITFDCST VBPL.02 `BEQ.04jLDA(BUFADR),Y tEOR#$FF~STAFDCDAT;INY BNE.03INCBUFADR+1DECBUFLEN+1.03CPYBUFLEN BNE.01LDABUFLEN+1 BNE.01;.04JMPRESULTS-FODISKLDYACTDRV JSRTR00LDAPBYTHI,YSTAFOTAB;NUM(LDAPSEKLO,Y2STAFOTAB+1;EOT <LDA#$0AFLDXPMF,Y;MFM?PBEQ.01;Nein->ZASLd.01STAFOTAB+2;GPL nLDA#$FFxSTAFOTAB+3;FILLERFOTRKLDAPCNTAB,YSTAIDTAB;CYLLDAPSIDE,YSTAIDTAB+1;HEAFOSIDELDAIDTAB+1 STAHEALDA#$0D;FormatCLCJSRXMTCMD LDX#$00.01LDAFOTAB,X.02BITFDCST BPL.02BVSFOERRSTAFDCDATINX "CPX#$04 ,BCC.01 6LDY#$00@WRIDLDASKEW,YJSTAIDTAB+2;REC TLDX#$00^.01LDAIDTAB,Xh.02BITFDCST rBPL.02|BVSFOERRSTAFDCDATINX CPX#$04 BCC.01INYCPYFOTAB+1;EOT BNEWRID LDA#$08.03BITPORTB BEQ.03FOERRLDYACTDRVJSRRESULTS BCSFOX DECIDTAB+1;HEA BPLFOSIDE JSRSTEPIN& BCCFOTRK 0 JSRTR00: CLC D FOXRTSN -X SETSKEWLDX#$05Interleaveb LDAPHD,YistesHD?l BNE.00Nein-> v LDX#$0B .00LDAPMF,Y BEQ.01 INX>128Byte INXjeSektor .01STXINTRLV ; LDAPSEKLO,YL|sche TAXSektor- DEX .02STZSKEW,Xtabelle DEX BPL.02 ; !LDX#$01 !STXSKWSEC!DEX !STXSKEWPT*!.03LDASKEW,X 4!BEQ.04>!INCSKEWPT H!JSR.07 R!BCC.03\!.04LDASKWSECf!STASKEW,Xp!INCSKWSECz!LDAPSEKLO,Y!CMPSKWSEC !BCC.05 !JSR.06 !BCC.03 !.05RTS!;!.06CLCAddiere!LDASKEWPTInterleave!ADCINTRLV!STASKEWPT!;!.07LDASKEWPT0<=PT"AND#$10;TR0?#BEQ.02;Nein-> #JSRSTEPIN#.02JSRTR00#JSRDSTAT(#LDAST3TAB,Y 2#.01RTS<#.BL$4B,$FFF#-P#SIOGETLDASIOSTSchonwasZ#AND#$3Aempfangen?d#LSRn#LSRx#BCCSIOGETNein->#BNE.01Fehler->#CLC#.01ORASTATUS#STASTATUS#LDASIODATBeiFehler#RTSistC=1#-#SIOPUTPHA#STASIODAT#.01LDAPORTA #AND#$FE#STAPORTA #ORA#$01$STAPORTA $LDABAUD $.02DEA "$BNE.02 ,$LDA#$046$BITSIOST @$BEQ.01J$PLAT$RTS^$-h$CHKSUMCLCr$ADCPSUMME |$ADC#$00$STAPSUMME$RTS$-$BOOTSECLDADAUX2;Istes$BNE.01;einBoot-$LDADAUX1;sektor? $CMP#$04 $BCS.01 $LDA#$80$STABUFLEN$STZBUFLEN+1$JMPSSECBF;Ja$.01JMPSECBFL;Nein%-%RECVJSRSIOGETLeseByte%BCS.02Fehler->&%STA(BUFADR)Schleife0%JSRCHKSUMbis:%JSRBUFINCPufferD%BCCRECVvoll->N%JSRSIOGETX%CMPPSUMMEb%PHP l%LDA#$30v%STAT0064D%.01BITIFLG %BPL.01%PLP %BNEPOP %LDA#ACK%JMPSIOPUT;ok,Ret.%;%.02LDA#3Timeout%STAT1024D768us%.03LDASIOST%LSR%LSR %BITIFLG &BMIPOP &BCC.03&LDASIODAT &BCS.02*&; 4&POPPLA>&PLAH&;R&DATNACKLDAST02EA,Y \&ORA#$02f&STAST02EA,Yp&LDA#NACKz&JMPXIT;Err,POP&-&XMITLDA(BUFADR)&STASIODAT&JSRCHKSUM&.01LDAPORTATxCLKLO &AND#$FE&STAPORTA&ORA#$01TxCLKHI&STAPORTA&LDABAUDVerz|ge-&.02DEArung,gem.&BNE.02Baudrate&LDA#$01Warteauf'BITSIOSTT_Ready 'BEQ.01'JSRBUFINC $'BCCXMIT.'LDAPSUMME8'JMPSIOPUTB'-L'MOTONLDA#$08MotoranV'TSBPORTA`'BNE.03waran->j'PHXt'LDX#8500ms~'.01LDA#$FFMotorhoch-'STAT1024Dlaufzeit'.02BITIFLG 'BPL.02'DEX 'BNE.01'PLX'.03LDAOFFDELMotornach-'STAMOTIM+2laufzeit'STZMOTIM+1'STZMOTIM'RTS'-(WAITCMDBITSIOSTWait'til (BPLWAITCMDCMDend (LDY#$00(STYSTATUS((STYPSUMME2(.03LDASIODATClrBugs<(JSRMOTOR03sdelayF(BITSIOSTCMDset?P(BMI.03No->Z(BITPORTBHoston?d(BVSWAITCMDNo->n(LDA#$37SIOanx(STASIOCMD(JSRSIOGET(BCSWAITCMD(STADRIVE(STAPSUMME(LDA#$FFBaudrate(STAT0064Dermitteln(INY(.01JSRSIOGET(BCSWAITCMD(STADRIVE,Y(JSRCHKSUM(INY (CPY#$05 )BNE.01 )BITIFLG)BMIWAITCMD")LDYRTIMID,)STYRTIMIDZ6).04BITSIOST @)BPL.04J)CMPPSUMMET)BNEWAITCMD^);h)DRVCHKLDY#$03r).01LDADRVTAB,Y |)BMI.02)BITPORTB )BPL.02)INA).02AND#$7F)CMPDRIVE)BEQDRVFND)DEY )BPL.01)BMIWAITCMD);)DRVFNDSTYACTDRV )LDA#$25)LDXRTIMIDZ *CPX#$80 *BCC.01*LDAPBAUD,Y&*.01STABAUD0*;:*CMDCHKLDX#$1FD*LDACOMANDN*.01CMPRRAM,XX*BEQCMDJMPb*DEX l*BPL.01v*;*CMDNACKLDAST02EA,Y *ORA#$01*STAST02EA,Y*LDA#NACK *JMPXIT*;*CMDJMPCPX#$05Ext.CMD?*BCC.01Nein->*LDAHPYFLG,YHappyist*BMICMDNACKaus->*.01CPX#$03R/WSEC?*BCS.04No->*;+LDADAUX2Sektor# +BPL.02negativ?+LDAHPYFLG,YRam/Rom +BMICMDNACKAdr.wenn*+BPL.04Happyan.4+;>+LDADAUX2EsgibtH+.02ORADAUX1keinenR+BEQCMDNACKSektor0!\+;f+SECSektor-p+LDAPMAXLO,Ynummerzuz+SBCDAUX1gro~?+LDAPMAXHI,Y+SBCDAUX2+BCCCMDNACKJa->+;+.04JSRSPEC +LDA#ACK+JSRSIOPUT+STZPSUMME+LDARRAM+$20,X +STADIV+LDARRAM+$40,X+STADIV+1+JMP(DIV),;,CMDTAB.AS"PWR!S";$97A0,.AS" ?AHNOQThif"$,.BL$10,$00.,;8,.DA#PTSEC,#WRSECB,.DA#RDSEC,#FORMTL,.DA#STATSV,.DA#AUTOF,#GETBD`,.DA#CHCMD,#HAPPYj,.DA#RPERC,#WPERCt,.DA#QQQQQ,#RDRAM~,.DA#RSIOL,#RSIOD,.DA#CUSTM,.BL$10,$00,;,.DA/PTSEC,/WRSEC,.DA/RDSEC,/FORMT,.DA/STATS,.DA/AUTOF,/GETBD,.DA/CHCMD,/HAPPY,.DA/RPERC,/WPERC,.DA/QQQQQ,/RDRAM,.DA/RSIOL,/RSIOD,.DA/CUSTM-.BL$10,$00 ---RWMEMJSRSECBFL-LDACOMAND (-CMP#'R 2-BEQ.04<-; F-JSRRECVP-BITDAUX2 Z-BVC.01 d-JMPXERRn-;x-.01JSRSSECBF-.02LDA(BUFADR)-STA(DAUX1)-INCDAUX1 -BNE.03-INCDAUX2-.03JSRBUFINC -BCC.02 -JMPXWOK-;-.04LDADAUX1-STABUFADR-LDADAUX2-STABUFADR+1.LDA#COMPLT.JSRSIOPUT.JSRSBFEND ".JSRXMIT,.JMPWAITCMD6.- @.WRSECJ.PTSECLDADAUX2RAMAdr.? T.BPL.00^.JMPRWMEMh.;r..00JSRBOOTSEC |.JSRRECV.JSRDSTAT.LDAST3TAB,Y .BMI.01.JSRCFGDRV .BPL.02..01LDAHPYFLG,Y.LSR .BCS.03.JSRMOTON.JSRSSECBF .JSRWSEC.LDAST2TAB,Y .AND#$10 /BEQ.03 /JSRTR00 /JSRWSEC &/.03PHP0/JSRSRDST:/PLP D/BCS.02N/LDADAUX2 X/BNE.04b/LDADAUX1 l/CMP#1 v/BNE.04/JSRSE01BF/.04JMPXWOK/.02JMPXERR/-/RDSECLDADAUX2 /BPL.00/JMPRWMEM/;/.00JSRDSTAT/LDAST02EB,Y /ORA#$40/STAST02EB,Y/LDAST3TAB,Y;Dskstill0BMI.01;inDrive 0JSRCFGDRV0LDAST3TAB,Y 0BPL.03;NoDisk*0.01LDADAUX2 40BNE.02>0LDADAUX1 H0CMP#1 R0BNE.02\0JMPRSECRAMf0.02JSRMOTON p0JSRRSEC z0BCC.040LDAST2TAB,Y 0AND#$10 0BEQ.03 0JSRTR00 0JSRRSEC 0BCC.040.03LDA#ERROR 0.HX2C0.04LDA#COMPLT;Sektorok0JSRSIOPUT0JSRBOOTSEC 0JSRXMIT0JSRSRDST1JMPWAITCMD1;1RSECRAMJSRSBTBF $1LDA#$80.1STABUFLEN81STZBUFLEN+1B1JSRSBFENDL1LDA#COMPLTV1JSRSIOPUT `1JSRXMITj1JSRSRDSTt1JMPWAITCMD~1-1FORMTJSRIFDISK1SEC 1BPL.071LDAHPYFLG,Y1LSR 1BCS.071JSRMOTON1JSRSETSKEW1JSRFODISK 1LDA#$FF 1BCC.041.07LDA#$002.04LDX#$00 2.05STASIOBUF,X2INX 2BNE.05 (2BCS.0622JSRLASTSEC<2LDA#COMPLT F2.HX2CP2.06LDA#ERRORZ2JSRSIOPUTd2LDAPBYTLO,Yn2STABUFLENx2LDAPBYTHI,Y2STABUFLEN+12JSRSSIOBF 2JSRXMIT2JSRSRDST2JMPWAITCMD2-2.IN"D:STATS.BIB2-2AUTOFJSRIFDISK2BPL.01NoDisk2ASL2BMI.01Writeprot2LDAHPYFLG,Y3LSR 3BCS.013LDA#COMPLT"3JSRSIOPUT,3JSRMOTON63JSRSETSKEW@3JSRFODISKJ3JMPWAITCMDT3;^3.01JMPXERRh3-r3GETBDLDA#COMPLT|3JSRSIOPUT3LDAPBAUD,Y3JSRSIOPUT 3JMPXIT3-3CHCMDLDA#3Lese33STABUFLENBytes3STZBUFLEN+13JSRSSIOBF 3JSRRECV3LDASIOBUF 3AND#$7F3STASIOBUF+3 3LDX#04.01LDARRAM,XEintrag4BEQ.02frei 4AND#$7F&4CMPSIOBUF+3Eintrag04BEQ.02vorhanden:4INX D4CPX#$20 N4BCC.01 X4JMPXERRb4;l4.02LDASIOBUF+1v4ORASIOBUF+2 4BNE.044.03LDARRAM+1,X4STARRAM,X4LDARRAM+$21,X4STARRAM+$20,X4LDARRAM+$41,X4STARRAM+$40,X4INX 4CPX#$1F 4BCC.034STZRRAM,X4STZRRAM+$20,X4STZRRAM+$40,X5JMPXWOKgel|scht 5;5.04LDASIOBUF 5STARRAM,X*5LDASIOBUF+145STARRAM+$20,X>5LDASIOBUF+2H5STARRAM+$40,XR5JMPXWOKeingetragen\5;f5-p5HAPPYLDX#$0Fz5.01LDAHAPTAB,X5CMPDAUX1 5BEQ.025DEX 5BPL.01 5JMPXERR5;5.02LDAHAPTAB+$10,X 5STADIV5LDAHAPTAB+$20,X5STADIV+15JMP(DIV)5;5HAPTAB.HX000102036.HX182060E06.BL$08,$FF6;$6.DA#HPY1,#OFFD.6.DA#NDVN,#IDRV86.DA#WRPE,#FAWRB6.DA#SLOW,#HOFFL6.DA#XERR,#XERRV6.DA#XERR,#XERR`6.DA#XERR,#XERRj6.DA#XERR,#XERRt6;~6.DA/HPY1,/OFFD6.DA/NDVN,/IDRV6.DA/WRPE,/FAWR6.DA/SLOW,/HOFF6.DA/XERR,/XERR6.DA/XERR,/XERR6.DA/XERR,/XERR6.DA/XERR,/XERR6;6HPY1LDADAUX2 6CMP#$80 6BNE.01 6JMPXWOK7.01JMPCMDNACK 7;7OFFDLDADAUX27LSR(7LSR27LSR<7LSRF7LSRP7CLC Z7ADC#$F8d7STAOFFDEL n7JMPXWOKx7;7NDVNLDXACTDRV7LDADAUX2Befehlok?7BPL.03Fehler-> 7AND#$7F7CMP#$3ANummer7BCS.031...97CMP#$31erlaubt 7BCC.037LDYDRVTAB,XAlteNr.7STYDIVrettenu.7LDY#$00Eintrag7STZDRVTAB,Xl|schen.7BITPORTB 8BPL.018DEA8.01CMPDRVTAB,YGibtes"8BEQ.02schon->,8INY 68CPY#4 @8BCC.01J8LDADAUX2SetzeT8STADRVTAB,XKennung ^8JMPXWOKh8;r8.02LDADIV|8STADRVTAB,X8.03JMPCMDNACK8;8IDRVLDADAUX2 8BNE.018STAHPYFLG,Y8CLC8TYA 8ADC#$318STADRVTAB,Y 8LDA#$FA8STAOFFDEL8JSRMOTON8JSRCFGDRV 9JMPXWOK9.01JMPCMDNACK9;&9WRPELDAHPYFLG,Y09LDXDAUX2 :9CPX#$10 D9BNE.01 N9ORA#$01 X9BNE.02b9.01CPX#$08 l9BNE.03 v9AND#$FE9.02STAHPYFLG,Y 9JMPXWOK9.03JMPCMDNACK9;9FAWRLDADAUX2 9BNE.019LDAHPYFLG,Y 9ORA#$029STAHPYFLG,Y 9JMPXWOK9.01JMPCMDNACK9;9SLOWLDADAUX2 :CMP#$60 :BNE.01:LDAHPYFLG,Y :ORA#$4*:STAHPYFLG,Y 4:JMPXWOK>:.01JMPCMDNACKH:;R:HOFFLDADAUX2 \:CMP#$E0 f:BNE.01p:LDAHPYFLG,Y z:ORA#$80:STAHPYFLG,Y :JMPXWOK:.01JMPCMDNACK:-:RPERCLDA#COMPLT:JSRSIOPUT:.01LDAPTRACK,Y:JSRSIOPUT:JSRCHKSUM:INY:INY:INY:INY ;CPY#$30 ;BCC.01 ;BCSXRD$;- .;CUSTM8;WPERCLDA#12B;LDXCOMAND L;CPX#'f V;BNE.00 `;LDA#128j;.00STABUFLEN t;LDA#0~;STABUFLEN+1;TAX;JSRSSIOBF ;JSRRECV;.01LDASIOBUF,X;STAPTRACK,Y;INX;INY;INY;INY;INY ;CPY#$30 ;BCC.01<; JSRXMIT>JMPWAITCMD>-&>RSIOLLDA#COMPLT0>JSRSIOPUT :>LDA#$02D>STABUFLENN>STZBUFLEN+1X>LDA#USIOLb>STABUFADRl>LDA/USIOLv>STABUFADR+1>JSRSBFEND >JSRXMIT>JMPWAITCMD>USIOL.DAUSIOE-USIOA>->RSIODLDAUSIOLPufferf}r>STABUFLENSIOsetzen>LDAUSIOL+1>STABUFLEN+1>JSRSSIOBF>LDA#USIOAErrechne>STADIVDifferenz>SECzurZiel-?SBCDAUX1adresse ?STADAUX1?LDA/USIOADIVzeigt ?STADIV+1aufdie*?SBCDAUX2Adresseim4?STADAUX2ROM>?;H?LDX#$00Zuver-R?.01LDAABSTBL,Xlegende\?CMPDIVAdresse? f?BNE.02p?LDAABSTBL+1,Xz?CMPDIV+1 ?BNE.02?JSR.04Byteaus ?SECROM?SBCDAUX1umrechnen?PHP ?JSR.06 ?JSR.04?PLP?SBCDAUX2 ?JSR.06?INXZeiger?INXaufnaechste?BNE.03Adresse@.02JSR.04 @JSR.06@.03LDADIVEnde$@CMP#USIOEerreicht? .@BNE.018@LDADIV+1B@CMP/USIOE L@BNE.01V@LDA#COMPLTJa.`@JSRSIOPUTPufferj@JSRSSIOBFsenden t@JSRXMIT~@JMPWAITCMD@;@.04LDA(DIV)Byte@INCDIVlesen,@BNE.05Zeiger@INCDIV+1erh|hen. @.05RTS@;@.06STA(BUFADR)@JMPBUFINC@-@.IN"D:EPSIO.BIB@-A.OR$FFF9 AIRQ ANMIRTI A.DANMI(A.DARESET 2A.DAIRQ01400 LDA CYL01410 LSR01420 STA CYL01430 BCC .0101440 INX ;HEA=101450 .01 LDA CYL01460 CMP PTRACK,Y01470 BCC NSIDE101480 SBC PTRACK,Y01490 STA CYL01500 INX ;HEA=101510 NSIDE1 STX HEA01520 RTS01530 ------------------------------01540 LENTAB .HX 0001020408102001550 ;01560 SECBFL LDA PBYTLO,Y01570 STA BUFLEN01580 LDA PBYTHI,Y01590 TAX01600 LDA LENTAB,X01610 STA BUFLEN+101620 ;01630 SSECBF LDA /SECBUF01640 STA BUFADR+101650 LDA #SECBUF01660 STA BUFADR01670 SBFEND CLC01680 LDA BUFADR01690 ADC BUFLEN01700 STA BUFEND01710 LDA BUFADR+101720 ADC BUFLEN+101730 STA BUFEND+101740 RTS01750 ------------------------------01760 SSIOBF LDA /SIOBUF01770 STA BUFADR+101780 LDA #SIOBUF01790 STA BUFADR01800 JMP SBFEND01810 ------------------------------01820 BUFINC INC BUFADR C=1 if01830 BNE .01 end of01840 INC BUFADR+1 Buffer01850 .01 LDA BUFADR+101860 CMP BUFEND+101870 BCC .0201880 LDA BUFADR01890 CMP BUFEND01900 .02 RTS01910 ------------------------------01920 PBYTE BIT FDCST01930 BPL PBYTE01940 STA FDCDAT01950 RTS01960 ------------------------------01970 GBYTE BIT FDCST01980 BPL GBYTE01990 LDA FDCDAT02000 RTS02010 ------------------------------02020 RESULTS PHA02030 LDA #$02 ;Terminal02040 TSB PORTA ;Count Set02050 TRB PORTA ;Cleared02060 PHX02070 LDY ACTDRV Get 702080 JSR GBYTE Result02090 STA ST0TAB,Y Bytes02100 JSR GBYTE from FDC02110 STA ST1TAB,Y02120 JSR GBYTE02130 STA ST2TAB,Y02140 LDX #$0002150 .01 JSR GBYTE02160 STA CYL,X02170 INX02180 CPX #$0402190 BNE .0102200 *02210 LDA ST0TAB,Y C=1 bei02220 ASL Error02230 ORA ST0TAB,Y02240 ASL02250 PLX02260 PLA02270 RTS02280 ------------------------------02290 SPEC PHX02300 LDX #$02 ;verm. ND02310 LDA PSEKLO,Y ;Bei mehr02320 CMP #19 ;als 1802330 BCC .01 ;Sektoren02340 LDX #0 ;=HD02350 .01 TXA02360 STA CR02370 STA PHD,Y02380 LDA #$03 ;CMD02390 JSR PBYTE02400 LDA PSTEPR,Y ;Stepr.02410 AND #$0F02420 BEQ .0202430 DEA02440 .02 EOR #$0F02450 ASL02460 ASL02470 ASL02480 ASL02490 BPL .0302500 CPX #$00 Bei HD02510 BNE .03 SRT x 202520 ASL02530 .03 ORA #$0F ;SRT/HUT02540 JSR PBYTE02550 LDA #$1F ;HLT02560 ASL02570 CPX #$0002580 BNE .0402590 ASL02600 .04 ORA #$01 No DMA02610 JSR PBYTE02620 PLX02630 RTS02640 ------------------------------02650 DSTAT PHA02660 LDA #$04 ;CMD02670 JSR PBYTE02680 TYA ;D#02690 JSR PBYTE02700 .01 BIT FDCST02710 BPL .0102720 LDA PORTA ;DChange02730 AND #$8002740 ORA FDCDAT02750 STA ST3TAB,Y02760 PLA02770 RTS02780 ------------------------------02790 ISTAT PHA02800 PHX02810 .04 LDA FDCST ;FDC RQM02820 BPL .0402830 AND #$7002840 BNE .0402850 LDA FDCST02860 AND #$0F ;Busy ?02870 BEQ .03 ;Nein ->02880 LDA #$08 ;W IRQ02890 .01 BIT PORTB02900 BEQ .0102910 .03 LDA #$08 ;CMD02920 JSR PBYTE02930 JSR GBYTE02940 CMP #$8002950 BEQ .0202960 PHA02970 AND #$0302980 TAX02990 PLA03000 STA ST0TAB,X03010 JSR GBYTE03020 STA PCNTAB,X03030 .02 PLX03040 PLA03050 RTS03060 ------------------------------03070 TR00 LDA #$07 ;CMD03080 JSR PBYTE03090 TYA ;D#03100 JSR PBYTE03110 JSR ISTAT03120 JMP DSTAT03130 ------------------------------03140 STEPIN LDA #$0103150 BNE SEEK103160 STEPOUT LDA #$FF03170 SEEK1 CLC03180 ADC PCNTAB,Y03190 SEEK CMP PTRACK,Y03200 BCS SEEKX03210 PHA03220 LDA #$0F ;CMD03230 JSR PBYTE03240 TYA03250 JSR PBYTE ;D#03260 PLA03270 JSR PBYTE ;NCN03280 JSR ISTAT03290 JSR DSTAT03300 CLC03310 SEEKX RTS03320 ------------------------------03330 XMTCMD PHA ;CMD03340 PHX03350 PHP03360 LDA PMF,Y03370 ASL03380 ASL03390 ASL03400 ASL03410 AND #$4003420 TSX03430 ORA $0103,X03440 JSR PBYTE03450 LDA HEA03460 ASL03470 ASL03480 ORA ACTDRV03490 JSR PBYTE03500 PLP03510 BCC .0203520 LDX #$0003530 .01 LDA CYL,X03540 JSR PBYTE03550 INX03560 CPX #$0703570 BNE .0103580 .02 PLX03590 PLA03600 RTS03610 ------------------------------03620 RESET CLD03630 LDX #$FF Ca. 130ms03640 TXS Verz|ge-03650 LDY #$FF rung zum03660 .01 DEY Einschwin-03670 BNE .01 gen der03680 DEX Betriebs-03690 BNE .01 spannung.03700 *03710 STX PACTL Eing{nge03720 STX PBCTL03730 *03740 STX $00 65C02 CPU?03750 .HX 8700 SB0 $0003760 LDA $0003770 .02 BEQ .02 Nein ->03780 *03790 .03 TXA Ramtest03800 STA $00,X Seiten03810 EOR #$FF03820 STA $0100,X 0 und 103830 INX03840 BNE .0303850 .31 TXA03860 CMP $00,X03870 .32 BNE .3203880 EOR #$FF03890 CMP $0100,X03900 .33 BNE .3303910 INX03920 BNE .3103930 *03940 LDA #$FD Motor an03950 STA PORTA TC zur}ck-03960 LDA #$5B setzen03970 STA PACTL03980 *03990 LDA #$FC /Reset f}r04000 STA PORTB FDC und04010 LDA #$37 SIO04020 STA PBCTL04030 *04040 JSR ROMTST04050 JSR RAMTST04060 JSR MOVTAB04070 *04080 LDA #$FF04090 STA T1024D 65ms Pause04100 .13 BIT IFLG nach Reset04110 BPL .1304120 *04130 LDA #$4D SIO:8/N/104140 STA SIOCMD asynchron04150 LDA #$3704160 STA SIOCMD04170 *04180 LDA FDCST FDC: Base04190 LDA #$08 Warte auf04200 .14 BIT PORTB FDC IRQ04210 BEQ .14 nach Reset04220 *04230 LDX #$02 ND04240 STX CR04250 *04260 LDY #$03 Ein Reset04270 .15 JSR ISTAT bedingt04280 DEY den Nicht-04290 BPL .15 RDY-Status04300 * aller FDD04310 * u. erzeugt04320 * einen IRQ04330 *04340 LDA #$03 2ms SRT04350 JSR PBYTE04360 LDA #$EF04370 JSR PBYTE04380 JSR PBYTE04390 *04400 LDY #$03 Alle Lauf-04410 .16 LDA #$07 werke nach04420 JSR PBYTE Track 004430 TYA04440 JSR PBYTE04450 DEY04460 BPL .1604470 *04480 .17 JSR ISTAT Es sind04490 LDA FDCST noch nicht04500 AND #$0F alle04510 BNE .17 fertig ->04520 *04530 LDA #$31 Vorhandene04540 PHA Floppies04550 LDY #$00 eintragen04560 .18 STY ACTDRV und konfi-04570 LDA #40 gurieren04580 STA PTRACK,Y04590 LDA #$0204600 STA PSTEPR,Y04610 STA PHD,Y04620 LDA #$0004630 STA PSEKHI,Y04640 STA PSIDE,Y04650 STA PMF,Y04660 STA PBYTHI,Y04670 STA PMT,Y04680 STA DRVTAB,Y04690 STA HPYFLG,Y04700 LDA #$1204710 STA PSEKLO,Y04720 LDA #$8004730 STA PBYTLO,Y04740 LDA #$FF04750 STA PONLIN,Y04760 LDA #$0A04770 STA PBAUD,Y04780 LDA #$D0 Max # of04790 STA PMAXLO,Y Sectors04800 LDA #$0204810 STA PMAXHI,Y04820 JSR DSTAT04830 LDA ST0TAB,Y ;Fehler=04840 AND #$D0 ;keine04850 BNE .19 ;Floppy04860 PLA04870 STA DRVTAB,Y04880 INA04890 PHA04900 JSR CFGDRV04910 .19 INY04920 CPY #$0404930 BCC .1804940 PLA04950 LDA #$08 Motor aus04960 TRB PORTA04970 LDA #$25 19200 Bd04980 STA BAUD Sendetakt04990 LDA #$FA 3 Sekunden05000 STA OFFDEL Nachlauf05010 JMP WAITCMD05020 ------------------------------05030 CFGDRV JSR IFDISK05040 BMI .00 ;Ja ->05050 RTS05060 .00 JSR MOTON05070 LDA #$5005080 STA PTRACK,Y05090 LDA #$02 ;SD/DD05100 STA CR05110 STA PHD,Y05120 LDA #$00 ;FM05130 STA PMF,Y05140 STA HEA05150 JSR READID05160 BCC .0105170 LDA #$04 ;MFM05180 STA PMF,Y05190 LDA #$0005200 STA HEA05210 JSR READID05220 BCC .0105230 LDA #$00 ;HD/MFM05240 STA CR05250 STA PHD,Y05260 STA HEA05270 JSR READID05280 BCC .0105290 LDA #$00 ;HD/FM05300 STA PMF,Y05310 STA HEA05320 JSR READID05330 BCC .0105340 LDA #$02 ;Default05350 STA PHD,Y ;ND/FM05360 LDA #$00 ;80 Byte05370 STA PBYTHI,Y05380 LDA #$8005390 STA PBYTLO,Y05400 BNE LASTSEC05410 .01 LDA ST02EB,Y05420 ORA #$4005430 STA ST02EB,Y05440 LDA NUM ;Setze05450 STA PBYTHI,Y ;Disk-05460 LDA #$00 ;Sektor-05470 CMP NUM ;L{nge.05480 ROR05490 STA PBYTLO,Y05500 JSR NUMSEC05510 JSR SE01BF05520 LDA ST02EB,Y read sec.05530 ORA #$40 forces05540 STA ST02EB,Y unprot.05550 JSR SRDST05560 LDA #$01 Seite 1?05570 STA HEA05580 JSR READID05590 BCS .0305600 CMP HEA05610 BEQ .1005620 .03 LDA #$0005630 .10 STA PSIDE,Y05640 LDA #$0005650 STA HEA05660 JSR SPEC05670 LDA #4005680 JSR SEEK05690 JSR READID05700 BCS .0405710 LDA #7705720 JSR SEEK05730 JSR READID05740 BCS .0405750 LDA #8005760 .04 STA PTRACK,Y05770 .05 JSR TR0005780 LASTSEC LDA PTRACK,Y ;T*H*S=05790 STA DIV ;max Sec05800 LDX PSIDE,Y05810 LDA PSEKLO,Y05820 DEX05830 BMI .0605840 ASL05850 .06 STA DOR05860 LDA #$0005870 STA PMAXLO,Y05880 STA PMAXHI,Y05890 STA DOR+105900 .07 LDA DIV05910 BNE .0805920 RTS05930 .08 AND #$0105940 BEQ .0905950 CLC05960 LDA PMAXLO,Y05970 ADC DOR05980 STA PMAXLO,Y05990 LDA PMAXHI,Y06000 ADC DOR+106010 STA PMAXHI,Y06020 .09 LSR DIV06030 ASL DOR06040 ROL DOR+106050 JMP .0706060 ------------------------------06070 SE01BF LDA DAUX106080 PHA06090 LDA DAUX206100 PHA06110 LDA #106120 STA DAUX106130 STZ DAUX206140 JSR RSEC06150 PLA06160 STA DAUX206170 PLA06180 STA DAUX106190 JSR SBTBF06200 LDY #$7F06210 .01 LDA SECBUF,Y06220 STA (BUFADR),Y06230 DEY06240 BPL .0106250 LDY ACTDRV06260 RTS06270 ------------------------------06280 SBTBF TYA06290 LSR06300 PHA06310 ROR06320 CLC06330 ADC #BOOTBF06340 STA BUFADR06350 PLA06360 ADC /BOOTBF06370 STA BUFADR+106380 RTS06390 ------------------------------06400 READID PHA06410 LDA #$0A ;CMD06420 CLC06430 JSR XMTCMD06440 JSR RESULTS06450 PLA06460 RTS06470 ------------------------------06480 NUMSEC LDX #$23 L|sche06490 .00 STZ SKEW,X Tabelle06500 DEX06510 BPL .0006520 * Drive Sel.06530 JSR READID durch HUT06540 LDA #4 Warte auf06550 .01 BIT PORTA IDX:06560 BEQ .01 LO-HI06570 .02 BIT PORTA HI-LO06580 BNE .0206590 *06600 LDX #006610 .03 JSR READID Starte das06620 LDA REC Lesen der06630 CMP SKEW Header mit06640 BEQ .04 d. fallen-06650 STA SKEW,X den Flanke06660 INX des Index-06670 CPX #$24 impulses.06680 BCC .0306690 *06700 .04 TXA06710 STA PSEKLO,Y06720 LDX #006730 JSR Y4006740 .05 LDA SKEW,X06750 STA SKWADR,Y06760 INY06770 INX06780 CPX #$2406790 BNE .0506800 LDY ACTDRV06810 RTS06820 ------------------------------06830 Y40 TYA Y=Y*4006840 ASL06850 ASL06860 ASL06870 STA DIV06880 ASL06890 ASL06900 ADC DIV06910 TAY06920 RTS06930 ------------------------------06940 RSEC LDY ACTDRV06950 JSR CALC06960 LDA CYL06970 JSR SEEK06980 LDA PBYTLO,Y06990 STA DTL07000 LDA PBYTHI,Y07010 STA NUM07020 LDA PSEKLO,Y07030 STA EOT07040 ;07050 JSR SECBFL07060 ;07070 LDA #$06 ;CMD07080 SEC07090 JSR XMTCMD07100 ;07110 LDY #$0007120 .04 LDA #$20 ;FDC EXM07130 .05 BIT FDCST07140 BPL .0507150 BEQ .0607160 LDA FDCDAT07170 EOR #$FF07180 STA (BUFADR),Y07190 ;07200 INY07210 BNE .0707220 INC BUFADR+107230 DEC BUFLEN+107240 .07 CPY BUFLEN07250 BNE .0407260 LDA BUFLEN+107270 BNE .0407280 ;07290 .06 JMP RESULTS07300 ------------------------------07310 WSEC LDY ACTDRV07320 JSR CALC07330 LDA CYL07340 JSR SEEK07350 LDA PBYTLO,Y07360 STA DTL07370 LDA PBYTHI,Y07380 STA NUM07390 LDA PSEKLO,Y07400 STA EOT07410 ;07420 JSR SECBFL07430 ;07440 LDA #$0507450 SEC07460 JSR XMTCMD07470 ;07480 LDY #$0007490 .01 LDA #$2007500 .02 BIT FDCST07510 BPL .0207520 BEQ .0407530 LDA (BUFADR),Y07540 EOR #$FF07550 STA FDCDAT07560 ;07570 INY07580 BNE .0307590 INC BUFADR+107600 DEC BUFLEN+107610 .03 CPY BUFLEN07620 BNE .0107630 LDA BUFLEN+107640 BNE .0107650 ;07660 .04 JMP RESULTS07670 ------------------------------07680 FODISK LDY ACTDRV07690 JSR TR0007700 LDA PBYTHI,Y07710 STA FOTAB ;NUM07720 LDA PSEKLO,Y07730 STA FOTAB+1 ;EOT07740 LDA #$0A07750 LDX PMF,Y ;MFM?07760 BEQ .01 ;Nein ->07770 ASL07780 .01 STA FOTAB+2 ;GPL07790 LDA #$FF07800 STA FOTAB+3 ;FILLER07810 FOTRK LDA PCNTAB,Y07820 STA IDTAB ;CYL07830 LDA PSIDE,Y07840 STA IDTAB+1 ;HEA07850 FOSIDE LDA IDTAB+107860 STA HEA07870 LDA #$0D ;Format07880 CLC07890 JSR XMTCMD07900 LDX #$0007910 .01 LDA FOTAB,X07920 .02 BIT FDCST07930 BPL .0207940 BVS FOERR07950 STA FDCDAT07960 INX07970 CPX #$0407980 BCC .0107990 LDY #$0008000 WRID LDA SKEW,Y08010 STA IDTAB+2 ;REC08020 LDX #$0008030 .01 LDA IDTAB,X08040 .02 BIT FDCST08050 BPL .0208060 BVS FOERR08070 STA FDCDAT08080 INX08090 CPX #$0408100 BCC .0108110 INY08120 CPY FOTAB+1 ;EOT08130 BNE WRID08140 LDA #$0808150 .03 BIT PORTB08160 BEQ .0308170 FOERR LDY ACTDRV08180 JSR RESULTS08190 BCS FOX08200 DEC IDTAB+1 ;HEA08210 BPL FOSIDE08220 JSR STEPIN08230 BCC FOTRK08240 JSR TR0008250 CLC08260 FOX RTS08270 ------------------------------08280 SETSKEW LDX #$05 Interleave08290 LDA PHD,Y ist es HD?08300 BNE .00 Nein->08310 LDX #$0B08320 .00 LDA PMF,Y08330 BEQ .0108340 INX > 128 Byte08350 INX je Sektor08360 .01 STX INTRLV08370 ;08380 LDA PSEKLO,Y L|sche08390 TAX Sektor-08400 DEX08410 .02 STZ SKEW,X tabelle08420 DEX08430 BPL .0208440 ;08450 LDX #$0108460 STX SKWSEC08470 DEX08480 STX SKEWPT08490 .03 LDA SKEW,X08500 BEQ .0408510 INC SKEWPT08520 JSR .0708530 BCC .0308540 .04 LDA SKWSEC08550 STA SKEW,X08560 INC SKWSEC08570 LDA PSEKLO,Y08580 CMP SKWSEC08590 BCC .0508600 JSR .0608610 BCC .0308620 .05 RTS08630 ;08640 .06 CLC Addiere08650 LDA SKEWPT Interleave08660 ADC INTRLV08670 STA SKEWPT08680 ;08690 .07 LDA SKEWPT 0<=PT08950 AND #$10 ;TR0?08960 BEQ .02 ;Nein ->08970 JSR STEPIN08980 .02 JSR TR0008990 JSR DSTAT09000 LDA ST3TAB,Y09010 .01 RTS09020 .BL $4B,$FF09030 ------------------------------09040 SIOGET LDA SIOST Schon was09050 AND #$3A empfangen?09060 LSR09070 LSR09080 BCC SIOGET Nein ->09090 BNE .01 Fehler ->09100 CLC09110 .01 ORA STATUS09120 STA STATUS09130 LDA SIODAT Bei Fehler09140 RTS ist C=109150 ------------------------------09160 SIOPUT PHA09170 STA SIODAT09180 .01 LDA PORTA09190 AND #$FE09200 STA PORTA09210 ORA #$0109220 STA PORTA09230 LDA BAUD09240 .02 DEA09250 BNE .0209260 LDA #$0409270 BIT SIOST09280 BEQ .0109290 PLA09300 RTS09310 ------------------------------09320 CHKSUM CLC09330 ADC PSUMME09340 ADC #$0009350 STA PSUMME09360 RTS09370 ------------------------------09380 BOOTSEC LDA DAUX2 ;Ist es09390 BNE .01 ;ein Boot-09400 LDA DAUX1 ;sektor ?09410 CMP #$0409420 BCS .0109430 LDA #$8009440 STA BUFLEN09450 STZ BUFLEN+109460 JMP SSECBF ;Ja09470 .01 JMP SECBFL ;Nein09480 ------------------------------09490 RECV JSR SIOGET Lese Byte09500 BCS .02 Fehler ->09510 STA (BUFADR) Schleife09520 JSR CHKSUM bis09530 JSR BUFINC Puffer09540 BCC RECV voll ->09550 JSR SIOGET09560 CMP PSUMME09570 PHP09580 LDA #$3009590 STA T0064D09600 .01 BIT IFLG09610 BPL .0109620 PLP09630 BNE POP09640 LDA #ACK09650 JMP SIOPUT ;ok, Ret.09660 ;09670 .02 LDA #3 Timeout09680 STA T1024D 768 us09690 .03 LDA SIOST09700 LSR09710 LSR09720 BIT IFLG09730 BMI POP09740 BCC .0309750 LDA SIODAT09760 BCS .0209770 ;09780 POP PLA09790 PLA09800 ;09810 DATNACK LDA ST02EA,Y09820 ORA #$0209830 STA ST02EA,Y09840 LDA #NACK09850 JMP XIT ;Err, POP09860 ------------------------------09870 XMIT LDA (BUFADR)09880 STA SIODAT09890 JSR CHKSUM09900 .01 LDA PORTA TxCLK LO09910 AND #$FE09920 STA PORTA09930 ORA #$01 TxCLK HI09940 STA PORTA09950 LDA BAUD Verz|ge-09960 .02 DEA rung, gem.09970 BNE .02 Baudrate09980 LDA #$01 Warte auf09990 BIT SIOST T_Ready10000 BEQ .0110010 JSR BUFINC10020 BCC XMIT10030 LDA PSUMME10040 JMP SIOPUT10050 ------------------------------10060 MOTON LDA #$08 Motor an10070 TSB PORTA10080 BNE .03 war an ->10090 PHX10100 LDX #8 500 ms10110 .01 LDA #$FF Motorhoch-10120 STA T1024D laufzeit10130 .02 BIT IFLG10140 BPL .0210150 DEX10160 BNE .0110170 PLX10180 .03 LDA OFFDEL Motornach-10190 STA MOTIM+2 laufzeit10200 STZ MOTIM+110210 STZ MOTIM10220 RTS10230 ------------------------------10240 WAITCMD BIT SIOST Wait 'til10250 BPL WAITCMD CMD end10260 LDY #$0010270 STY STATUS10280 STY PSUMME10290 .03 LDA SIODAT Clr Bugs10300 JSR MOTOR0 3s delay10310 BIT SIOST CMD set?10320 BMI .03 No ->10330 BIT PORTB Host on?10340 BVS WAITCMD No ->10350 LDA #$37 SIO an10360 STA SIOCMD10370 JSR SIOGET10380 BCS WAITCMD10390 STA DRIVE10400 STA PSUMME10410 LDA #$FF Baudrate10420 STA T0064D ermitteln10430 INY10440 .01 JSR SIOGET10450 BCS WAITCMD10460 STA DRIVE,Y10470 JSR CHKSUM10480 INY10490 CPY #$0510500 BNE .0110510 BIT IFLG10520 BMI WAITCMD10530 LDY RTIMID10540 STY RTIMIDZ10550 .04 BIT SIOST10560 BPL .0410570 CMP PSUMME10580 BNE WAITCMD10590 ;10600 DRVCHK LDY #$0310610 .01 LDA DRVTAB,Y10620 BMI .0210630 BIT PORTB10640 BPL .0210650 INA10660 .02 AND #$7F10670 CMP DRIVE10680 BEQ DRVFND10690 DEY10700 BPL .0110710 BMI WAITCMD10720 ;10730 DRVFND STY ACTDRV10740 LDA #$2510750 LDX RTIMIDZ10760 CPX #$8010770 BCC .0110780 LDA PBAUD,Y10790 .01 STA BAUD10800 ;10810 CMDCHK LDX #$1F10820 LDA COMAND10830 .01 CMP RRAM,X10840 BEQ CMDJMP10850 DEX10860 BPL .0110870 ;10880 CMDNACK LDA ST02EA,Y10890 ORA #$0110900 STA ST02EA,Y10910 LDA #NACK10920 JMP XIT10930 ;10940 CMDJMP CPX #$05 Ext. CMD?10950 BCC .01 Nein ->10960 LDA HPYFLG,Y Happy ist10970 BMI CMDNACK aus ->10980 .01 CPX #$03 R/W SEC?10990 BCS .04 No ->11000 ;11010 LDA DAUX2 Sektor #11020 BPL .02 negativ?11030 LDA HPYFLG,Y Ram/Rom11040 BMI CMDNACK Adr. wenn11050 BPL .04 Happy an.11060 ;11070 LDA DAUX2 Es gibt11080 .02 ORA DAUX1 keinen11090 BEQ CMDNACK Sektor 0!11100 ;11110 SEC Sektor -11120 LDA PMAXLO,Y nummer zu11130 SBC DAUX1 gro~?11140 LDA PMAXHI,Y11150 SBC DAUX211160 BCC CMDNACK Ja ->11170 ;11180 .04 JSR SPEC11190 LDA #ACK11200 JSR SIOPUT11210 STZ PSUMME11220 LDA RRAM+$20,X11230 STA DIV11240 LDA RRAM+$40,X11250 STA DIV+111260 JMP (DIV)11270 ;11280 CMDTAB .AS "PWR!S" ;$97A011290 .AS " ?AHNOQThif"11300 .BL $10,$0011310 ;11320 .DA #PTSEC,#WRSEC11330 .DA #RDSEC,#FORMT11340 .DA #STATS11350 .DA #AUTOF,#GETBD11360 .DA #CHCMD,#HAPPY11370 .DA #RPERC,#WPERC11380 .DA #QQQQQ,#RDRAM11390 .DA #RSIOL,#RSIOD11400 .DA #CUSTM11410 .BL $10,$0011420 ;11430 .DA /PTSEC,/WRSEC11440 .DA /RDSEC,/FORMT11450 .DA /STATS11460 .DA /AUTOF,/GETBD11470 .DA /CHCMD,/HAPPY11480 .DA /RPERC,/WPERC11490 .DA /QQQQQ,/RDRAM11500 .DA /RSIOL,/RSIOD11510 .DA /CUSTM11520 .BL $10,$0011530 ------------------------------11540 RWMEM JSR SECBFL11550 LDA COMAND11560 CMP #'R11570 BEQ .0411580 ;11590 JSR RECV11600 BIT DAUX211610 BVC .0111620 JMP XERR11630 ;11640 .01 JSR SSECBF11650 .02 LDA (BUFADR)11660 STA (DAUX1)11670 INC DAUX111680 BNE .0311690 INC DAUX211700 .03 JSR BUFINC11710 BCC .0211720 JMP XWOK11730 ;11740 .04 LDA DAUX111750 STA BUFADR11760 LDA DAUX211770 STA BUFADR+111780 LDA #COMPLT11790 JSR SIOPUT11800 JSR SBFEND11810 JSR XMIT11820 JMP WAITCMD11830 ------------------------------11840 WRSEC11850 PTSEC LDA DAUX2 RAM Adr.?11860 BPL .0011870 JMP RWMEM11880 ;11890 .00 JSR BOOTSEC11900 JSR RECV11910 JSR DSTAT11920 LDA ST3TAB,Y11930 BMI .0111940 JSR CFGDRV11950 BPL .0211960 .01 LDA HPYFLG,Y11970 LSR11980 BCS .0311990 JSR MOTON12000 JSR SSECBF12010 JSR WSEC12020 LDA ST2TAB,Y12030 AND #$1012040 BEQ .0312050 JSR TR0012060 JSR WSEC12070 .03 PHP12080 JSR SRDST12090 PLP12100 BCS .0212110 LDA DAUX212120 BNE .0412130 LDA DAUX112140 CMP #112150 BNE .0412160 JSR SE01BF12170 .04 JMP XWOK12180 .02 JMP XERR12190 ------------------------------12200 RDSEC LDA DAUX212210 BPL .0012220 JMP RWMEM12230 ;12240 .00 JSR DSTAT12250 LDA ST02EB,Y12260 ORA #$4012270 STA ST02EB,Y12280 LDA ST3TAB,Y;Dsk still12290 BMI .01 ;in Drive12300 JSR CFGDRV12310 LDA ST3TAB,Y12320 BPL .03 ;No Disk12330 .01 LDA DAUX212340 BNE .0212350 LDA DAUX112360 CMP #112370 BNE .021x      !"#2380 JMP RSECRAM12390 .02 JSR MOTON12400 JSR RSEC12410 BCC .0412420 LDA ST2TAB,Y12430 AND #$1012440 BEQ .0312450 JSR TR0012460 JSR RSEC12470 BCC .0412480 .03 LDA #ERROR12490 .HX 2C12500 .04 LDA #COMPLT ;Sektor ok12510 JSR SIOPUT12520 JSR BOOTSEC12530 JSR XMIT12540 JSR SRDST12550 JMP WAITCMD12560 ;12570 RSECRAM JSR SBTBF12580 LDA #$8012590 STA BUFLEN12600 STZ BUFLEN+112610 JSR SBFEND12620 LDA #COMPLT12630 JSR SIOPUT12640 JSR XMIT12650 JSR SRDST12660 JMP WAITCMD12670 ------------------------------12680 FORMT JSR IFDISK12690 SEC12700 BPL .0712710 LDA HPYFLG,Y12720 LSR12730 BCS .0712740 JSR MOTON12750 JSR SETSKEW12760 JSR FODISK12770 LDA #$FF12780 BCC .0412790 .07 LDA #$0012800 .04 LDX #$0012810 .05 STA SIOBUF,X12820 INX12830 BNE .0512840 BCS .0612850 JSR LASTSEC12860 LDA #COMPLT12870 .HX 2C12880 .06 LDA #ERROR12890 JSR SIOPUT12900 LDA PBYTLO,Y12910 STA BUFLEN12920 LDA PBYTHI,Y12930 STA BUFLEN+112940 JSR SSIOBF12950 JSR XMIT12960 JSR SRDST12970 JMP WAITCMD12980 ------------------------------12990 .IN "D:STATS.BIB13000 ------------------------------13010 AUTOF JSR IFDISK13020 BPL .01 No Disk13030 ASL13040 BMI .01 Write prot13050 LDA HPYFLG,Y13060 LSR13070 BCS .0113080 LDA #COMPLT13090 JSR SIOPUT13100 JSR MOTON13110 JSR SETSKEW13120 JSR FODISK13130 JMP WAITCMD13140 ;13150 .01 JMP XERR13160 ------------------------------13170 GETBD LDA #COMPLT13180 JSR SIOPUT13190 LDA PBAUD,Y13200 JSR SIOPUT13210 JMP XIT13220 ------------------------------13230 CHCMD LDA #3 Lese 313240 STA BUFLEN Bytes13250 STZ BUFLEN+113260 JSR SSIOBF13270 JSR RECV13280 LDA SIOBUF13290 AND #$7F13300 STA SIOBUF+313310 LDX #013320 .01 LDA RRAM,X Eintrag13330 BEQ .02 frei13340 AND #$7F13350 CMP SIOBUF+3 Eintrag13360 BEQ .02 vorhanden13370 INX13380 CPX #$2013390 BCC .0113400 JMP XERR13410 ;13420 .02 LDA SIOBUF+113430 ORA SIOBUF+213440 BNE .0413450 .03 LDA RRAM+1,X13460 STA RRAM,X13470 LDA RRAM+$21,X13480 STA RRAM+$20,X13490 LDA RRAM+$41,X13500 STA RRAM+$40,X13510 INX13520 CPX #$1F13530 BCC .0313540 STZ RRAM,X13550 STZ RRAM+$20,X13560 STZ RRAM+$40,X13570 JMP XWOK gel|scht13580 ;13590 .04 LDA SIOBUF13600 STA RRAM,X13610 LDA SIOBUF+113620 STA RRAM+$20,X13630 LDA SIOBUF+213640 STA RRAM+$40,X13650 JMP XWOK eingetragen13660 ;13670 ------------------------------13680 HAPPY LDX #$0F13690 .01 LDA HAPTAB,X13700 CMP DAUX113710 BEQ .0213720 DEX13730 BPL .0113740 JMP XERR13750 ;13760 .02 LDA HAPTAB+$10,X13770 STA DIV13780 LDA HAPTAB+$20,X13790 STA DIV+113800 JMP (DIV)13810 ;13820 HAPTAB .HX 0001020313830 .HX 182060E013840 .BL $08,$FF13850 ;13860 .DA #HPY1,#OFFD13870 .DA #NDVN,#IDRV13880 .DA #WRPE,#FAWR13890 .DA #SLOW,#HOFF13900 .DA #XERR,#XERR13910 .DA #XERR,#XERR13920 .DA #XERR,#XERR13930 .DA #XERR,#XERR13940 ;13950 .DA /HPY1,/OFFD13960 .DA /NDVN,/IDRV13970 .DA /WRPE,/FAWR13980 .DA /SLOW,/HOFF13990 .DA /XERR,/XERR14000 .DA /XERR,/XERR14010 .DA /XERR,/XERR14020 .DA /XERR,/XERR14030 ;14040 HPY1 LDA DAUX214050 CMP #$8014060 BNE .0114070 JMP XWOK14080 .01 JMP CMDNACK14090 ;14100 OFFD LDA DAUX214110 LSR14120 LSR14130 LSR14140 LSR14150 LSR14160 CLC14170 ADC #$F814180 STA OFFDEL14190 JMP XWOK14200 ;14210 NDVN LDX ACTDRV14220 LDA DAUX2 Befehl ok?14230 BPL .03 Fehler ->14240 AND #$7F14250 CMP #$3A Nummer14260 BCS .03 1...914270 CMP #$31 erlaubt14280 BCC .0314290 LDY DRVTAB,X Alte Nr.14300 STY DIV retten u.14310 LDY #$00 Eintrag14320 STZ DRVTAB,X l|schen.14330 BIT PORTB14340 BPL .0114350 DEA14360 .01 CMP DRVTAB,Y Gibt es14370 BEQ .02 schon ->14380 INY14390 CPY #414400 BCC .0114410 LDA DAUX2 Setze14420 STA DRVTAB,X Kennung14430 JMP XWOK14440 ;14450 .02 LDA DIV14460 STA DRVTAB,X14470 .03 JMP CMDNACK14480 ;14490 IDRV LDA DAUX214500 BNE .0114510 STA HPYFLG,Y14520 CLC14530 TYA14540 ADC #$3114550 STA DRVTAB,Y14560 LDA #$FA14570 STA OFFDEL14580 JSR MOTON14590 JSR CFGDRV14600 JMP XWOK14610 .01 JMP CMDNACK14620 ;14630 WRPE LDA HPYFLG,Y14640 LDX DAUX214650 CPX #$1014660 BNE .0114670 ORA #$0114680 BNE .0214690 .01 CPX #$0814700 BNE .0314710 AND #$FE14720 .02 STA HPYFLG,Y14730 JMP XWOK14740 .03 JMP CMDNACK14750 ;14760 FAWR LDA DAUX214770 BNE .0114780 LDA HPYFLG,Y14790 ORA #$0214800 STA HPYFLG,Y14810 JMP XWOK14820 .01 JMP CMDNACK14830 ;14840 SLOW LDA DAUX214850 CMP #$6014860 BNE .0114870 LDA HPYFLG,Y14880 ORA #$414890 STA HPYFLG,Y14900 JMP XWOK14910 .01 JMP CMDNACK14920 ;14930 HOFF LDA DAUX214940 CMP #$E014950 BNE .0114960 LDA HPYFLG,Y14970 ORA #$8014980 STA HPYFLG,Y14990 JMP XWOK15000 .01 JMP CMDNACK15010 ------------------------------15020 RPERC LDA #COMPLT15030 JSR SIOPUT15040 .01 LDA PTRACK,Y15050 JSR SIOPUT15060 JSR CHKSUM15070 INY15080 INY15090 INY15100 INY15110 CPY #$3015120 BCC .0115130 BCS XRD15140 ------------------------------15150 CUSTM15160 WPERC LDA #1215170 LDX COMAND15180 CPX #'f15190 BNE .0015200 LDA #12815210 .00 STA BUFLEN15220 LDA #015230 STA BUFLEN+115240 TAX15250 JSR SSIOBF15260 JSR RECV15270 .01 LDA SIOBUF,X15280 STA PTRACK,Y15290 INX15300 INY15310 INY15320 INY15330 INY15340 CPY #$3015350 BCC .0115360 ;15370 LDY ACTDRV15380 LDA PSTEPR,Y Steprate15390 CMP #$02 minimal15400 BCS .04 2 ms15410 LDA #$0215420 STA PSTEPR,Y15430 ;15440 .04 JSR SPEC HD ?15450 LDA COMAND15460 CMP #'f15470 BNE .0315480 LDY #015490 .02 LDA SIOBUF,X15500 STA SKEW,Y15510 INX15520 INY15530 CPY SIOBUF+315540 BCC .0215550 LDY ACTDRV15560 JSR IFDISK15570 BPL XERR15580 JSR MOTON15590 JSR FODISK15600 BCS XERR15610 JSR LASTSEC15620 .03 JMP XWOK15630 ------------------------------15640 QQQQQ LDA #$0815650 TRB PORTA15660 LDA #COMPLT15670 JSR SIOPUT15680 JMP WAITCMD15690 ------------------------------15700 XRD LDA PSUMME15710 .HX 2C15720 XWOK LDA #COMPLT15730 .HX 2C15740 XERR LDA #ERROR15750 XIT JSR SIOPUT15760 JMP WAITCMD15770 ------------------------------15780 RDRAM LDA DAUX115790 STA BUFADR15800 LDA DAUX215810 STA BUFADR+115820 STZ BUFLEN15830 LDA #$0115840 STA BUFLEN+115850 LDA #COMPLT15860 JSR SIOPUT15870 JSR SBFEND15880 JSR XMIT15890 JMP WAITCMD15900 ------------------------------15910 RSIOL LDA #COMPLT15920 JSR SIOPUT15930 LDA #$0215940 STA BUFLEN15950 STZ BUFLEN+115960 LDA #USIOL15970 STA BUFADR15980 LDA /USIOL15990 STA BUFADR+116000 JSR SBFEND16010 JSR XMIT16020 JMP WAITCMD16030 USIOL .DA USIOE-USIOA16040 ------------------------------16050 RSIOD LDA USIOL Puffer f}r16060 STA BUFLEN SIO setzen16070 LDA USIOL+116080 STA BUFLEN+116090 JSR SSIOBF16100 LDA #USIOA Errechne16110 STA DIV Differenz16120 SEC zur Ziel -16130 SBC DAUX1 adresse16140 STA DAUX116150 LDA /USIOA DIV zeigt16160 STA DIV+1 auf die16170 SBC DAUX2 Adresse im16180 STA DAUX2 ROM16190 ;16200 LDX #$00 Zu ver -16210 .01 LDA ABSTBL,X legende16220 CMP DIV Adresse?16230 BNE .0216240 LDA ABSTBL+1,X16250 CMP DIV+116260 BNE .0216270 JSR .04 Byte aus16280 SEC ROM16290 SBC DAUX1 umrechnen16300 PHP16310 JSR .0616320 JSR .0416330 PLP16340 SBC DAUX216350 JSR .0616360 INX Zeiger16370 INX auf naechste16380 BNE .03 Adresse16390 .02 JSR .0416400 JSR .0616410 .03 LDA DIV Ende16420 CMP #USIOE erreicht?16430 BNE .0116440 LDA DIV+116450 CMP /USIOE16460 BNE .0116470 LDA #COMPLT Ja.16480 JSR SIOPUT Puffer16490 JSR SSIOBF senden16500 JSR XMIT16510 JMP WAITCMD16520 ;16530 .04 LDA (DIV) Byte16540 INC DIV lesen,16550 BNE .05 Zeiger16560 INC DIV+1 erh|hen.16570 .05 RTS16580 ;16590 .06 STA (BUFADR)16600 JMP BUFINC16610 ------------------------------16620 .IN "D:EPSIO.BIB16630 ------------------------------16640 .OR $FFF916650 IRQ16660 NMI RTI16670 .DA NMI16680 .DA RESET16690 .DA IRQ16700 ------------------------------%&'()*+,-./0123456789:;<=>?@A00010 ******************************00020 * *00030 * Betriebssystem f}r das *00040 * 3.5" Interface *00050 * f}r den Atari XL/XE *00060 * *00070 * Hersteller: Erhard P}tz *00080 * OS-Code : Erhard P}tz *00090 * *00100 * (c) 1989, 1990, 1991 *00110 * *00120 * Version : 2.0 *00130 * *00140 * UltraSpeed : Ja *00150 * HD-Modus : Ja *00160 * Sektoranordnung : Calc. *00170 * Bootsektorpuffer : Nein *00180 * Trackpuffer read : Nein *00190 * Trackpuffer write: Nein *00200 * ROM-Boot : Nein *00210 * *00220 ******************************00230 .LI OF00240 .NO00250 ******************************00260 * *00270 * Definition von Macros *00280 * von 65C02 - Befehlen, *00290 * die dieser bloede *00300 * Assembler nicht kann. *00310 * *00320 ******************************00330 ;00340 RBO = $07 ;Clear Bit on00350 RB1 = $17 ;Page 0 Adr.00360 RB2 = $2700370 RB3 = $3700380 RB4 = $4700390 RB5 = $5700400 RB6 = $6700410 RB7 = $7700420 ;00430 SB0 = $87 ;Set Bit on00440 SB1 = $97 ;Page 0 Adr.00450 SB2 = $A700460 SB3 = $B700470 SB4 = $C700480 SB5 = $D700490 SB6 = $E700500 SB7 = $F700510 ;00520 BR0 = $0F ;Branch on00530 BR1 = $1F ;Bit reset00540 BR2 = $2F00550 BR3 = $3F00560 BR4 = $4F00570 BR5 = $5F00580 BR6 = $6F00590 BR7 = $7F00600 ;00610 BS0 = $8F ;Branch on00620 BS1 = $9F ;Bit set00630 BS2 = $AF00640 BS3 = $BF00650 BS4 = $CF00660 BS5 = $DF00670 BS6 = $EF00680 BS7 = $FF00690 ------------------------------00700 ;RIOT Ports (Ram: $4000-$407F)00710 ------------------------------00720 RRAM = $400000730 PORTA = $4080 Bit00740 ; 0 o TxC00750 ; 1 o TC00760 ; 2 i /IDX00770 ; 3 o HDL00780 ; 4 nc00790 ; 5 nc00800 ; 6 o PCVal00810 ; 7 i /DC00820 PACTL = $408100830 PORTB = $408200840 ; 0 o RST SIO00850 ; 1 o RST FDC00860 ; 2 o DRV FDC00870 ; 3 i IRQ FDC00880 ; 4 o A14 Rom00890 ; 5 o A15 Rom00900 ; 6 i /RDY00910 ; 7 i D#00920 PBCTL = $408300930 ------------------------------00940 ;RIOT Timer00950 ------------------------------00960 RTIMID = $4084 ;%1000 0100 R00970 RTIMIE = $408C ;%1000 1100 R00980 IFLG = $4085 ;%1000 0101 R00990 T0001D = $4094 ;%1001 0100 W01000 T0008D = $4095 ;%1001 0101 W01010 T0064D = $4096 ;%1001 0110 W01020 T1024D = $4097 ;%1001 0111 W01030 T0001E = $409C ;%1001 1100 W01040 T0008E = $409D ;%1001 1101 W01050 T0064E = $409E ;%1001 1110 W01060 T1024E = $409F ;%1001 1111 W01070 ------------------------------01080 ;SIO Adressen01090 ------------------------------01100 SIODAT = $410001110 SIOCMD = $410101120 SIOST = $410101130 ------------------------------01140 ;Floppy Controller Adressen01150 ------------------------------01160 FDCST = $4200 ;FDC Status R01170 FDCDAT = $4201 ;FDC Data R/W01180 OR = $430001190 CR = $440001200 ------------------------------01210 ACK = 'A01220 NACK = 'N01230 COMPLT = 'C01240 ERROR = 'E01250 ------------------------------01260 ;Seite 001270 ------------------------------01280 .OR $000001290 BUFADR .HX 000001300 BUFLEN .HX 000001310 BUFEND .HX 000001320 DIV .HX 000001330 DOR .HX 000001340 ZSP .HX 000001350 D0PB .DA $2A0001360 D1PB .DA $2B8001370 D2PB .DA $2D0001380 D3PB .DA $2E8001390 D0PT .HX 000001400 D1PT .HX 000001410 D2PT .HX 000001420 D3PT .HX 000001430 ------------------------------01440 ;Variablen f}r SIO01450 ------------------------------01460 PSUMME .HX 0001470 DRIVE .HX 0001480 COMAND .HX 0001490 DAUX1 .HX 0001500 DAUX2 .HX 0001510 .HX 00 empf.PSUMME01520 STATUS .HX 0001530 BAUD .HX 00 Zaehler f}r01540 ;Sendetakt01550 ------------------------------01560 ;Variablen f}r FDC01570 ------------------------------01580 OFFDEL .HX 00 MotTimeout01590 MOTIM .HX 00000001600 ACTDRV .HX 0001610 CYL .HX 0001620 HEA .HX 0001630 REC .HX 00 ;$0401640 NUM .HX 0001650 EOT .HX 1201660 GPL .HX 0101670 DTL .HX 00 ;$0801680 STM .HX 0001690 .HX 000000 ;$0C01700 IDTAB .HX 00 ;CYL01710 .HX 00 ;HEA01720 .HX 00 ;REC01730 FOTAB .HX 00 ;NUM01740 .HX 00 ;EOT01750 .HX 00 ;GPL01760 .HX 00 ;DTL01770 CHKROMZ .HX 000001780 RTIMIDZ .HX 0001790 ------------------------------01800 ;Prozessorstapel (STACK)01810 ------------------------------01820 .OR $010001830 STACK .BL $0100,$0001840 ------------------------------01850 ;Tabellen01860 ------------------------------01870 .OR $020001880 DRVTAB .HX FFFFFFFF01890 ST0TAB .HX FFFFFFFF01900 ST1TAB .HX FFFFFFFF01910 ST2TAB .HX FFFFFFFF01920 ST3TAB .HX FFFFFFFF01930 PCNTAB .HX FFFFFFFF01940 ------------------------------01950 PTRACK .HX 50505050 # Tracks01960 PSTEPR .HX 02020202 Steprate01970 PSEKHI .HX 00000000 # Sektors01980 PSEKLO .HX 12121212 per Track01990 PSIDE .HX 00000000 (00/01)02000 PMF .HX 00000000 (00/04)02010 PBYTHI .HX 00000000 00/1/2/302020 PBYTLO .HX 80808080 80/0/0/002030 PONLIN .HX FFFFFFFF02040 .HX 00000000 unused02050 .HX 00000000 unused02060 .HX 00000000 unused02070 PBAUD .HX 0A0A0A0A ser.Clock02080 PHD .HX FFFFFFFF 2ND/0HD02090 PMT .HX 00000000 MT=$8002100 PMAXLO .HX 00000000 # Sektors02110 PMAXHI .HX 00000000 per Disk02120 ------------------------------02130 ST02EA .HX 00000000 ;->$02EA02140 ST02EB .HX 00000000 ;->$02EB02150 ST02EC .HX 00000000 ;->$02EC02160 ST02ED .HX 00000000 ;->$02ED02170 ------------------------------02180 HPYFLG .HX 0000000002190 RDFLAG .HX 0000000002200 ------------------------------02210 SKEW .BL $24,$0002220 SKWSEC .HX 0002230 SKEWPT .HX 0002240 INTRLV .HX 0002250 ------------------------------02260 .OR $030002270 SKWADR .BL $90,$0002280 ------------------------------02290 ;Puffer02300 ------------------------------02310 .OR $040002320 BOOTBF .BL $0200,$0002330 ------------------------------02340 SIOBUF .BL $0100,$0002350 SECBUF .BL $0100,$0002360 ------------------------------CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`01000 * High-Speed SIO-Routine, wird01010 * an die Zieladresse angepa~t01020 * und zum Computer gesendet.01030 ;01040 USIOA LDA $0301 ;DUNIT01050 BNE SIO201060 LDX #$0801070 DLWTBLL STA LWTBL-1,X ;$F61401080 DEX01090 BNE DLWTBLL01100 RTS01110 SIO2 TAX01120 REL01 LDA LWTBL-1,X ;$F61401130 BNE SIO301140 LDA #$2801150 REL02 STA LWTBL-1,X ;$F61401160 LDY #$0701170 SIOCL LDA $0302,Y ;DCOMND01180 PHA01190 REL03 LDA C3F,Y ;$F60D01200 STA $0302,Y ;DCOMND01210 DEY01220 BPL SIOCL01230 REL04 JSR SIO3 ;$F45001240 LDX $0301 ;DUNIT01250 LDY $0303 ;DSTATS01260 BMI SIO2101270 LDA $0101280 REL05 STA LWTBL-1,X ;$F61401290 SIO21 LDY #$0001300 SIO21CL PLA01310 STA $0302,Y ;DCOMND01320 INY01330 CPY #$0801340 BCC SIO21CL01350 SIO3 SEI01360 TXA01370 ORA #$3001380 STA $023A ;CDEVIC01390 LDA $0302 ;DCOMND01400 STA $023B ;CCOMND01410 LDA $030A ;DAUX101420 STA $023C ;CAUX101430 LDA $030B ;DAUX201440 STA $023D ;CAUX201450 REL06 LDA LWTBL-1,X ;$F61401460 STA $D204 ;AUDF301470 TSX01480 STX $3F ;FEOF01490 LDA #$0201500 STA $37 ;DRETRY01510 IO11 LDA #$0701520 STA $36 ;CRETRY01530 IO12 LDA #$3401540 STA $D30301550 LDA #$0001560 STA $30 ;STATUS01570 STA $3E ;FTYPE01580 STA $35 ;BUFEND+101590 STA $D206 ;AUDF401600 LDA #$3A01610 STA $32 ;BUFADR01620 LDA #$0201630 STA $33 ;BUFADR+101640 ASL01650 STA $34 ;BUFEND01660 REL07 JSR SEND1 ;$F4DC01670 LDA $0304 ;DBUFLO01680 STA $32 ;BUFADR01690 LDA $0305 ;DBUFHI01700 STA $33 ;BUFADR+101710 LDA $0308 ;DBYTLO01720 STA $34 ;BUFEND01730 LDA $0309 ;DBYTHI01740 STA $35 ;BUFEND+101750 LDA $0303 ;DSTATS01760 BPL IO201770 REL08 JSR SEND1 ;$F4DC01780 IO2 DEC $3E ;FTYPE01790 REL09 JSR SETTI1 ;$F54401800 BIT $0303 ;DSTATS01810 BVC IO301820 REL10 JSR GETA1 ;$F52101830 IO3 LDA #$A001840 STA $D207 ;AUDC401850 LDA $1001860 STA $D20E ;IRQEN01870 REL11 JSR CLRTI1 ;$F57601880 LDA $30 ;STATUS01890 BEQ IO401900 DEC $37 ;DRETRY01910 BNE IO1101920 IO4 TAY01930 BNE IO501940 INY01950 IO5 STY $0303 ;DSTATS01960 CLI01970 RTS01980 SEND1 LDY #$0001990 SE1 INY02000 BNE SE102010 LDA #$2302020 REL12 JSR POKEY ;$F5F702030 LDA ($32),Y ;BUFADR02040 STA $31 ;CHKSUM02050 STA $D20D ;SEROUT02060 INY02070 BNE SE302080 SE2 LDA ($32),Y ;BUFADR02090 REL13 JSR PUTBYTE ;$F5D402100 INY02110 BNE SE302120 INC $33 ;BUFADR+102130 DEC $35 ;BUFEND+102140 LDX #$E002150 SEWL INX02160 BNE SEWL02170 SE3 CPY $34 ;BUFEND02180 BNE SE202190 LDA $35 ;BUFEND+102200 BNE SE202210 LDA $31 ;CHKSUM02220 REL14 JSR PUTBYTE ;$F5D402230 SEO1 LDA $D20E ;IRQST02240 AND #$0802250 BNE SEO102260 LDY #$0302270 REL15 JSR STOUTX0 ;$F57802280 LDA #$C002290 STA $D20E ;IRQEN02300 BNE RDQUIT02310 GETA1 LDY #$0002320 STY $31 ;CHKSUM02330 GE1 JSR GETBYTE ;$F5B102340 STA ($32),Y ;BUFADR02350 REL16 JSR ADDSUM ;$F5EF02360 INY02370 BNE GE202380 INC $33 ;BUFADR+102390 DEC $35 ;BUFEND+102400 GE2 CPY $34 ;BUFEND02410 BNE GE102420 LDA $35 ;BUFEND+102430 BNE GE102440 REL17 JSR GETBYTE ;$F5B102450 CMP $31 ;CHKSUM02460 BNE ERR8F02470 RTS02480 SETTI1 LDA $0306 ;DTIMLO02490 ROR02500 ROR02510 TAY02520 AND #$3F02530 TAX02540 TYA02550 ROR02560 AND #$C002570 TAY02580 REL18 JSR STOUT ;$F57A02590 RDQUIT LDA #$3C02600 STA $D30302610 LDA #$1302620 REL19 JSR POKEY ;$F5F702630 REL20 JSR GETBYTE ;$F5B102640 CMP #$4102650 BEQ CLRTI102660 CMP #$4302670 BEQ CLRTI102680 CMP #$4502690 BEQ ERR9002700 LDA #$8B02710 BNE ERR02720 ERR90 LDA #$9002730 STA $30 ;STATUS02740 CLRTI1 LDY #$0002750 STOUTX0 LDX #$0002760 STOUT LDA ERRABS ;$F02770 STA $0226 ;CDTMA102780 STOU2 LDA ERRABS+1 ;$F02790 STA $0227 ;CDTMA1+102800 LDA #$0102810 JMP $E45C ;Setze CDTMV102820 ERRABS .DA ERR8A ;$F02830 IOER80 LDX $3F ;FEOF02840 TXS02850 LDA #$8002860 STA $30 ;STATUS02870 BNE EABS302880 ERR8F LDA #$8F02890 .HX 2C02900 ERR8A LDA #$8A ;Timeout02910 ERR STA $30 ;STATUS02920 LDX $3F ;FEOF02930 TXS02940 LDA $3E ;FTYPE02950 BMI ERRA02960 DEC $36 ;CRETRY02970 BEQ ERRA02980 REL21 JMP IO12 ;$F47A02990 ERRA LDA #$2803000 STA $D204 ;AUDF303010 EABS3 JMP IO3 ;$F4C103020 GETBYTE LDA $D20E ;IRQST03030 BPL IOER8003040 AND #$2003050 BNE GETBYTE03060 LDA #$DF03070 STA $D20E ;IRQEN03080 LDA #$E003090 STA $D20E ;IRQEN03100 LDA $D20F ;SKSTAT03110 STA $D20A ;SKRES03120 BPL ERR8A03130 AND #$2003140 BEQ ERR8A03150 LDA $D20D ;SERIN03160 RTS03170 PUTBYTE TAX03180 PUTA1 LDA $D20E ;IRQST03190 AND #$1003200 BNE PUTA103210 LDA #$EF03220 STA $D20E ;IRQEN03230 LDA #$D003240 STA $D20E ;IRQEN03250 TXA03260 STA $D20D ;SEROUT03270 LDX $D20E ;IRQST03280 BPL IOER8003290 ADDSUM CLC03300 ADC $31 ;CHKSUM03310 ADC #$0003320 STA $31 ;CHKSUM03330 RTS03340 POKEY STA $D20F ;SKCTL03350 STA $D20A ;SKRES03360 LDA #$2803370 STA $D208 ;AUDCTL03380 LDA #$A803390 STA $D207 ;AUDC403400 LDA #$F803410 STA $D20E ;IRQEN03420 RTS03430 C3F .HX 3F4003440 .DA $000103450 .DA $000103460 .DA $000103470 LWTBL .BL 8,003480 USIOE03490 ABSTBL .DA DLWTBLL+1,REL01+1,REL02+1,REL03+1,REL04+1,REL05+1,REL06+103500 .DA REL07+1,REL08+1,REL09+1,REL10+1,REL11+1,REL12+1,REL13+103510 .DA REL14+1,REL15+1,GE1+1,REL16+1,REL17+1,REL18+1,REL19+103520 .DA REL20+1,STOUT+1,STOU2+1,ERRABS,REL21+1,EABS3+1bcdefghijkl00010 STATS JSR DSTAT00020 *-02EA-*00030 LDA ST02EA,Y 0,100040 AND #$0300050 STA DIV00060 LDA ST1TAB,Y 2 (WE)00070 ASL00080 AND #400090 TSB DIV00100 LDA ST3TAB,Y 3 (WP)00110 AND #800120 TSB DIV00130 LDA PORTA 4 (MOT)00140 ASL00150 AND #$1000160 TSB DIV00170 LDA PBYTHI,Y 5 (DD)00180 CMP #$0100190 BCC .0100200 .DA #SB5,#DIV00210 .01 LDA PSEKLO,Y 7 (MD)00220 CMP #$13 ;>18=MD00230 LDA PBYTHI,Y ;if not00240 BEQ .02 ;>12800250 CLC ;By/Sec00260 .02 BCC .0300270 .DA #SB7,#DIV00280 .03 LDA DIV00290 STA ST02EA,Y00300 STA SIOBUF00310 *-02EB-*00320 LDA ST02EB,Y (2-6)00330 AND #$7C00340 STA DIV00350 LDA ST3TAB,Y 7 (DC)00360 AND #$8000370 TSB DIV00380 LDA FDCST 0,100390 AND #$5000400 ASL00410 ASL00420 ASL00430 ASL00440 CMP #200450 BCC .0400460 EOR #600470 .04 EOR #300480 ORA DIV00490 STA ST02EB,Y00500 STA SIOBUF+100510 *-02EC-*00520 LDA #$E0 Timeout00530 STA ST02EC,Y00540 STA SIOBUF+200550 *-02ED-*00560 LDA FDCST00570 STA ST02ED,Y00580 STA SIOBUF+300590 ;00600 LDA #COMPLT Senden00610 JSR SIOPUT00620 LDA #400630 STA BUFLEN00640 STZ BUFLEN+100650 JSR SSIOBF00660 JSR XMIT00670 ;00680 LDA ST02EA,Y00690 AND #$FC00700 STA ST02EA,Y00710 ;00720 LDA ST02EB,Y00730 AND #$8300740 ORA #$1800750 STA DIV00760 LDA ST3TAB,Y00770 AND #$4000780 EOR #$4000790 TSB DIV00800 LDA ST3TAB,Y00810 AND #$1000820 LSR00830 LSR00840 ORA DIV00850 STA ST02EB,Y00860 JMP WAITCMD00870 ------------------------------00880 SRDST LDY ACTDRV00890 LDA ST02EB,Y Reset00900 ORA #$3C 2,3,4,500910 STA DIV00920 LDA ST2TAB,Y 5 (CM)00930 AND #$4000940 LSR00950 TRB DIV00960 LDA ST1TAB,Y 5,4,?,200970 AND #$34 ->00980 LSR 2,5,400990 LSR01000 LSR01010 BCC .0101020 ORA #801030 .01 ASL01040 EOR #$FF01050 AND DIV01060 STA ST02EB,Y01070 RTS01080 ------------------------------nopqrstuvwxyz{|}~6>آ 766L S2BWWP*L n~  L . . *  0 0M Ω  ,  8 9 ɛ :: :A   `   1  ,8 ɛ 驛 `إG G,  GL  MBG@ LL@,ȘUiD0 G`Dl  _  J  J`,i鍋  i`l6  M6 80   .6 .7 ݎ` ,H) hJJJJJ  ʽ0O v  )(0; : H B H v hکH(`F e   F ` ,,D JJjKgC BCDH VhɈHH) t hh` o h  o  o  | (   ʎ k o x  k @8 @ L to  ʎ l o @Pjj(**ӢΊ8DQCCQCj k  F hC ` O  FIN𠩜HL l l | ,  ` 0H h, 0H  y h`  K9CoCF ~ : t  0٩ < @ @ +  K9   JJJo c c - 0  KFREE SECTORS DOS !-E ;Lq3 h )  b@ =YdH o hL8 !"#$%&'67*I[ J@C1Dvf;6&6**; !?b f`qb{fl ~\D^{_IR\MZ+hcdef 9k%>n.p 617%=y*)3:,> ACdL?G=> ?`X)HFHF`Ж1!|S466>S") 9X`",-,0,1,)؆F( Y,LX)F ! ,֩4 !ɥF!M hU98 -ЕLo HUo hU,K CɀC MC&EC( 1ȱC9  "9 E Y,P 8M  H  hF`9L^L  +k 10  @M9 ` @T8`I;&CEC( CMC`  (Q    &  ,Cȝ`  ,9 0 `   LmOa  NZL%   L͝OD   !J* )  G$%& Ȏ  %m]  +Г, $  (#%J !)!,2!)  N$l*H7  h ΄ x` dLHjIjH) I"=7)(.  @$T'@(NQj  T'@$Q@((0! i$#( `  RT'~ j멋I` LȌ?EC LCC& l;C L C  +[C>= L?C:ȱC; :`8H C   `H$HJ)ELHNS)  #" ,H  "d!vf>h,,H  QT'|ǥE8<RQ   : ;%H) `  l"[L Cȭ C +:;  'T<$H0]C]L 0  !y"#dTH) <  _ i C + kQ _' _@B T<mE <L8H C $H0 `  J x `͉ߍ$E H**hJ`, HH  #vd>h  !|`  +#v2,   2IH) !`,S0kI  + *  ((+<'38nS`( *) ,*)?,) )I)JJE,,,L ?lF  ++j"̹ 4  +" %L hjjnI)m  gI)   M,L0  .l"[!{"]"v#"]I)   "]".!|"]" L,@L)`,IiDC`JN ,H  `$H ?  ȱ$*?_.0 :A[8nH nHͱ$/ ȱ$An$$n$(`  $:  N  "㹚#3>  ̹"  C D # 0N  0  `@)@ FHCh8  R@   *I   [p#G#@CC0w`H,H_   i 1C QCC + iZ c X Y i hh8h _ 𖠢L8inII 0Ci'FnB (EC@8~@`ȎHW@IHW W 9@CF(iL+  "[CC  +"yעՠN`n_ cZ98~L` ?'`8$N!(.!`4ƻ)H  h  +#+ <   ` -!`$  ?    !J ,,L!   ""y  |E?  "|LCC  " L HJhj m]m^  )8j`,I,   h  ],A0> 09!4) ,L ݩ0M!) Ң ?&H  ]h`,L0`+" 00 @ }0!nJ }0 NJ  цB @H- h#  BMM6E  ^T'0 -`  ]B\T'08 S cQ  QT'0ѩ ؠ`  yǠ.HL0l6~S38$HHH өH*HHllhhh@HHLH|)ӝtI)MӍ|hh`HH||)thh(`44DEPH BLV `)`` '4 4 4Ȣ4 4LI4 4 w4 4x '4 44X 4) ~`8 '4 4 4L4L4Error: Not an XL/XE Computer.4.4s5} SpartaDOS Pro Ver 3.3a 3-Nov-94 Copyright (C) 1994 by FTe 4.4 4 4G)@}  EEF Ew4 c5 c5" #   b5  M b5 , V5 4LL4 L LLHEi ȱEi `{40 `` 7 YL\ 2BHL H-G H ةHhJ \hBL\`@B 442@3Y45245324 `L LI=>8=>'= L L 嘪==>'`LH  Yh`21 ,350 2 9 4 2 9 LD1 9)ҢL1,350 &2 4 2 1`08` S< ACE,0ɋ8` `ύ&'0`e1i1`,07 ,ߍҩҭҍ )  `_ҩҩ,,,8`H)ҩh `#,ҍ ҩ(ҥA,ҩҩ`jj)?j)`Ң`H?ʎ @  0h ``@@B,~-32@3452453c24` nɔ FNot SpartaDOS disketteLɢ FDisk fullLɪ FFile not foundLɣ FIllegal wildcard in nameLɘ FNot binary fileLɤ FFile erase protectedLɕ FNot version II disketteLɩ FDisk write lockedLɖ FDirectory not foundLɀ FBreak AbortLɐ% FWrite protected or bad sectorLɥ FFile name errorLɨ FFunction not supportedLɧ FCan't delete fileLɗ FFile existsL` w  w(0   0a} Y©}Í~Yh   N Y©n  Nn`L a}8L}`@D , ̍̍)̝BJJJJJ ̝D̝E0 KJ)̝JJJ)̝H̝I gD@   Ϭ,0),~  FError -- nL`(),! *+  -"#$./0.@ @CA똩)*K HJJJJ 9h) 0:iLphWhXWXͭ pLNͭXHWH`, Nnn ͎͌͢͠ͽ p`ܩ,0  ͭ`..*N  . 00  ʩ `…$%` Π vAG) ..ܭ` aau` aa r|u`L @ ύ  ύ 乀` Ω* #*Z 0DLϠ ̠ ̭0L0f 0  LϮ Lϭ /A ̠ LL~υCυD. yϠC  y 婛蝀`ȹ 뭫` ̢0 8̽ H̽I̠0 (ʢ 0L *m)L* *M @ L ( ꭼfg`L(= # , f g he`( L#() LLL I0n  l o eꍼ , ʎi 0L lCstL] 0   KQ `m) xstB L  ,  ,)ߍ "LLL  ,] 0 # K ح)  "L  밻) 멀 "Lcidjek`cde ,L  LdehLjf g Lj$H0Ldb88hA e , s eECFDb8h  8  9L H ,C]Dah LehCD Lcd  h8eL LL$H0 s ,LxECFD  he 9LbChCfC)g` L_bhCfCg lC`bC`bC`c d EFaLcd K`8mi`ͤ /L9st Z"C X ꭱfg`L cd C8 CDC}TCȱC}UC`  eCCD`  _oC`fcgdfgeh`Inpooi nn?o x뭹0,)C) `InIo  䭹08` oCL # , f g`1@R Hj0>h0   * HH 0hh`hh,L L { P*)0l 0*m`*)& K m*$+0 Q` {!*B sn͊o͋/ P {0*)((a,,,L ) *)  I0 , m*)  I  0 I  K l ,) *I *c 0L U*) 0 @`L,|0 Km) MlI $ 0 abb u G L  Z v #(> sL L,0`H hɛ ,'L0,L P*H * {0h*L04*  0 )L Lq * { M {0Y) *LJ, -* { M {0 䭸,  ,) LkL, LLLL: * {, (] 0 # K M {0 LL8*  * 0I LL,H ) ") čɍҍ)*LB 0 ͠E 0)  0  # ͌ QL   ͩ: ͭ ͩ: ͭ ͩa p ͩmLͭ ͩ- ͭ ͩ- ͭ L͢$ ` 6(ȭb(Ȣ(((ȭ(ȭ(` ȱCL,~LL # wL ʈa`1N@} 1!@}1S@ 8` v P o n> Ȣ L >(ȩ(` (H(h `*$/ȱ$Aȩ *$$ `{rkij #H 0hK 0e8ii}i  m)L ,k0b8JmeHh e8hJm , 3mL 8ΪL ihL?EF䍦,|Lm)  #T 0N 0   Q 0`c d>$H s Lm)L cd hcCȭdC _cd 1beΤͤ /eb heL\ s)H c d EFa b hL\cd KL\FА֐#eeCCD$H0CELWEC$H _8emeLe b``Hm=L `   hCb _`fgLK䍤Υ8EmEF8imijk W 0`8pi`8`CfȱCg`CcȱCd`  haCD ` / ?a,b06/O)a/?}` &O`)8O,b0, } ,0} 8,b0 8JHjmChmD`H)h)/ ?  &CD8 ` ` hihb hL?CC, fCȭgC CfȭCg _L 3 h`m),~)   C&b{ L,L   X,~y}Tyz}Uz` .C   I1CC`   CC,|0  L4L@~` N j  ,|0 ab` _)8j`m| K`,b HJjhj`,b H**hJ`_/]^/` 0 `y"U a ې;ݒ- ;m ; - ;  ]!K`Z6 @P 莺 8 I Ln κL ̭-; /0` I L *  9ݭLM O,"! 1 *   ,,,,L \LwL}LuL| 9LΩ` "H!H`;w_ F}` F͛ SpartaDOS Pro v3.3a` ,  :O  ` 1(`:><`  @ɛ `8_)ɀɛȹ^_`COPLOASAVAPPENCWERASRENAMCREDIDELDIDEREVECLCOLECHCCHDIMMKDIRRMDICARUPRINTYPDIDIRMEPAUSVERIFBOOCHKDSPROTECUNPROTECLOCUNLOC?DIBASITIMDATTKE,,,,L\>a {8 ` $A`. A`.<>A` //`//` W,P` 7l FNo cartridge` ̭LH  YhӘ`o ͭ  p 0ͩ p 0 F͛Bytes/sector: 0莯 F͛ Total bytes:  l F͛ Bytes free:  lͭ ( F͛ Write lock: ,0 FOFFL FONLn  , ̠ 0  BLgL /LZ  ΍ 7 L\l FPress any key to continue pLn FMemlo: $ 0ͭ 0 F Memhi: $ 0ͭ 0ͩL ̠ ̠L M)MӍӌj 9 E L ̭O NF FParameter ErrorL` *L *L X FCurrent date is  Q F͛Enter new date: - _ɛX L X FCurrent time is Q F͛Enter new time: :  ɛ F`ɛ )_PAϩ, m   L `:8` @)5 m i @`ȹ 0:`8`L ` 7 VL\ 7 yL\%H$H`2Kd}LPLI L Z  ^ D1:autorun.sysstartup.bat `*.*.COM.BATD1:Volume: Directory: FREE SECTORS }}LI ab)a}`44DEPH BLV `)`` '4 4, 4 a4 x4 x4 x4 x4 x4 4` 44 4Lu48 '4 4 4L4L4Error: Not an XL/XE Computer.4.44 } SpartaDOS Ver 2.3e 1-Nov-85 D Copyright (C) 1985 by ICD, INC. 424 4 4 , EEF E .4  4 4   LEiȱEi`z4@B12@3q45245324 ```1( (ҩmi:; < =x:23454 =Μ (, = ,P νе X0`234 5` o21 ,350 2 X 4 2 X Lc1 X)ҢL1,350 &2 4 2  1`08` r< ACE,0ɋ8` ` &'0L\`e1i1`,07 ,ߍҩҭҍ )  `_ҩҩ,,,8`H)ҩh `#,ҍ ҩ(ҩҩ`jj)?j)`Ң`H?ʎ @  0h ``@Bˠ ʢ:,  ` 0!H h, 0  ʭ `LL EF*ʬ L 0 ʬ *ʹ,ʨ *ʽ@ @F G` 0 L@P 1@R H 0>h 0   * HH 0hh`hh,LʅGʹʨ G`. ʮ `y"U a ې;ݒ/ ;m ; / ;  ]!K`Z6 AȢ ALϬ >(ȩ(` YύNϱ(H(h `*$/ȱ$Aȩ *$$ `2Kd} L Ϣ HsHL[ O NF Parameter ErrorL`ؒ @ ؍ ؍ ` * * Z ʭDLؠ  0L 0f خ  ح /A   LHL\؅C؅D. ؠC  婛蝀` ȹ   뭶 ` 0 8 HI0 (ʢ ^0L^t j  ܐH ʩs K ʍp 8 t t } t ۰ x )L,v 0m 8J  mp Hh ߍp 8s Jm  ,  + m L٭   x8 ε L٭ is L7܅EF , L{x )  ܰT N ۭ Q ʮ `n o >$H k ݭ Lڭx )L ۍn o ۬s n Cȭo C Uݭn o ܎ 1m p ί ͯ  1ۭp m  ^p L^ k)H n o EFl .ʬm ^L^ڭn o C܎ L^p eCCD $H0CELO۱EC$H U8p m p Lۭp  m  ``Hx =L` ݭ ܐ `ܠCm Uݭ `q r LC ΰ 8Em EF8t m t u v ܰW `8{ t `8 `Cq ȱCr `Cn ȱCo ` ܐ ܎ `ܬl CD .ʮ `   l ,m 06 /- )l   , ` ݭ-  ` ) 8 - ,m 0,  ,   , 0, .,m 0 .ݮ JHjiChiÅD` H) h)   ݥCD8 .` ` s is m  xݬs L7ܠCC, ۠q Cȭr C ۠ Cq ȭ Cr ULݠ + ۩s ` x ) , )   ެ C&m ͆  L, L ߎ Nޢ,   }Jލ }Kލ ` . C  I1CC`   ެ CC, 0 ސ ްL*L6ޭ ى ` N j  ߍ , 0 ެl ` Uݭ )8j`m C܎ `,m  HJjhj`,m  H**hJ` DD,0   Dʝ ʝ/ ʝ ʎ 멾   `; *x )L *M @ L( q r `L(= gq r zs p `( zL( ) $LWLL I0y z   ʎ i Lz w C ~  L] ʩ# 3  `x ) ~  B L   ,  ,)ߍ  LLL  ,]  ۭ )   L  谾 ) $驀  Ln t o u p v ` n o p Lg ۭ Lfڭp s q r  L$H0 Lfڭm 88s A   k ECFDm 8s 8 LH h p s C)C Ln o ܎  gs 8p L$H0 k L&ECFD gs p Lm Cs Cq C)r ` LUݬm s Cq Cr w C`m  C`m C `n o EFl L.ʭn o C܎ `8 m i ` ͯ  1L~  rZ"C Nޢ Y譼 q r `L rn o wޢC)CC}JޑCȱC}KޑC` CC` Uݬz C`q n r o q r p s `Iy pz z i y y 6z  0 ) `Iy Iz 08` z C L E gq r `L j ?*)0w  ʥ*x `*)& ʩ  x *$+0  # ` j!*? by ͕ z ͖ , ? j0*)((\,,L ) *)  ۍ x I*)  I  I  ʭ w ) *I *c L D*) B`L, 0 ʭx )  bL L, 0`H hɛ , 'Lʩ,L ?*H * j0h*Lʩ4*  0 )L L. * j < j0Y ) *L9, -* j < j0 ,  ,) LZL, L;LL * j, (]  < j0 LL8*   * ʩI L;,H +h l L8* j + ? j0 LL 6`L `,x ʢI B٭x )H} I-,0,3Lʩ I 0* %) ,  *0M ) ֥I ` 0 ? ` JJm `8$ ʎ  l L. `L ɀ! l έ) I8Lo, 0" ٍ  6A ͘  ͗ 1  6 ,l b l m `l , )l - .ݮ , `  H â L+ڢ eI LB٩imy LCܩhLC  `L  c'* ? P. Pn L[8n L4 PL ,  ` `$0:?[ {_)_`8`$: ` ? `i `,  ʈ` ?ݙ `L   6  Cܬ m C ȱC Ȍ wLCHȱCH whhда`) H $0+C-D! C D $+0 " `L) $0=C-D $0,8EC=FD>=> $0 $+0 % `` HCD$+0 $ CD EF L9 : ?@L+CE L , 0LBLc, 0 L,  P  t Lζ `x )L") ʎ +L)(㺽Аۥ( ) $% +0 ΰ ί 8( () )$m $%m %$ ` 0  `,# 0 6 ,  f+L C ȱC +L]* j.9 #  $+0l ʠ 0 ,L$+0 $+ $+L6,  L ߎ *,m  *im   ' 0 ,  ) " ) č ɍ ҍ )* LB E ʭ )  ʠ - -  0.   : a p #   L$ `莫 $ -; 6" : ; L 6I  L  L L  0` ,   :  O ` o 1 (` :><` 6 @ ɛ  `   8ɀ ɛ ȹ`COPLOASAVAPPENCWERASRENAMCREDIDELDICARUPRINTYPDIDIRMEPAUSVERIFBOOCHKDSPROTECUNPROTECLOCUNLOCXDIAINI?DIBASI  9 L Lة ` HH`yeHB; 'ϏϠ,,,L߬ ` Format: Are you sure? ;)_H hY L 8  Volume:  n  Bytes/sector: 0莺  Total bytes: L  Bytes free: L (  Write lock: , 0 OFFL ONL ϐW,P `L  L No cartridge`  ,  0  BLLɭ : L L Press any key to continue ;L Memlo: $   Memhi: $  LD , )B JJJJJ DE 0 KJ)J JJ)HI <8  ^ \ 8, 0! ̩ Error -- L`(),! *+  -"#$./0 9 @  @CA똩)*K HJJJJ h) 0:iLh&h'&' L'H&H` HvH%H$HL[ ,  N n n $ }~ `' ܩ,0 ( ) ` *  . . *N  . 0* $ 0 ʩ `ͅ$ %`  cAG) . . ܭ ` l / l }Ϣ ` / l l   }Ϣ `L ,)Bc ^. L   , w `,H   `L ^  j ? j L  L"81 HH``0BK' 9T ^ L p GL p oL p cL ^ L ? L ? 6Lw  ? %Lw ^ L ^ L ^ L ^ cL ^ L ^ L ^ VL ^ L ^ L ^ L ^ >L ^ AL ^ L ? !/  ? ]@ hh` ? . LR 9 =,.  ; w ` [ l [ Lw l [ VLw [ Lw EHEH ` [ Lw [ Lw ? Lw ? Lw ? Lw ? Lw ,4 [ HvHl ? YLw HH )ӝ )莗 hh`HH )ӝ 莗 hh`HHΗ ) hh(`L6 PLL  T;D1:startup.bat+ k *.*.COM.BATD1:Volume: Directory: FREE SECTORS EP HDI Version 2.8d;d<e;;< Y-;<`8` O` OQ`d@ V V@ hLh_ȝ@`8 $ $ 0& 8  &)(  F fަ+P)J)))*` 40#ee`L@`,BB`,BB`H @@ڤ( s s s  s)  h`ڢ$DL j):I   j   j`H j j,B@) Bh`HڭB)pB),@ j sɀH)h sh` j j LyH j jh j  `H, )@ j* ( j( ) jh`آ@@II@[@@7@  ~ @,@MA7AB,@D ˆ j j j j j ­B)1H((L (,0Pl$48 HЙTX ) hH h@%#$L 0` ǩPDL,* Đ:,* Đ,DL* Đ,* ĐL04[` @`,0,j4 Ĺ` @` C˩* İ*(* ( ] İ M ] İP D¹($0 TX `)TeTXe XF& LĥH Hd =h h Ġ(`JHjihi`H  x |h`#t ĩ,@,@ ĥ+tt$$ 1Žt$(`  e`( ) ]¹4/0,$- *8 x  ,BBIL|( ) ]¹4/0,$- *8 x  ,BIBL|( D¹07$8 , 9:4(55*  x¢7,Bp.Bt64,BpB8,@( | 5 S D`L ,莚$ʞtʎt Ɛt$͘ Ɛ`m$$`'%& '@)@` 0) S D `A):JJ""A`HA@)@ @#:,Ah`ei`  dL8L* .ǰ" a Y .0@,@(ALBǩ@AJJ,@0Ahh\ \NLͲA aǭ@)@ @#:,A YڥLBǩ @ڢ@,@$'d&d%`,A"A ,A0,@p7A .ǰۅ@ .ǰ̙ a,@0@=,AЮ0,@)0(%=H#@\ \NLl0  l0 8TX A Bd @@@lPWR!S ?AHNOQThifJi00 *R $ PL 8 YLͥ C B @ Lȥ LK i  0 3lJ 8 Ź ) D  C(  LLͥ LK ` @`0 ù$ L0 =Ő ) D =ŐE,C B i CL ĩd @C B CL 8lJ H ũ pĩC,E Bǹ40 N CL \) ))@ )0$0\`)|)B)P II`dBhC Bǩd N ǹ\)\`) )@I@)JJ`LȤ(` < )@J)4JJJ  I%``  0lJC B H LLͩC BǹH BLͩd N ǭ)@) Lͭ #@@!@ @A@@@@ @@@Lͭ@ @@@L͢Lͽ/̅?̅l `O[jͥ ɀLLȥ JJJJJi$Lͦ( 1):+1',@:  LͥLȥ li1$ LLȹl  )lLLȥ l lLLȥ ` l lLLȥ l lLLȩC Bǹ B a0n f N ǽ0( f!t( ! Ű pLͩ@C BLȥ,C,E BLȥ dC B @ LȩC Bǩdͅ @ Lͅͅ NY8΅ no K8 T K( T K TΥnϥɩC B N LȲ`LY e`e/(eРH^Й ή0eРhx 0:; < =eЍҺ?764ө0>5ҩ:23 4 +ϭ234 5 +> ,P pϩҥ ϥ07РȌX`# Hб21 2 % 35451 %Э) ϩ41 Б2 @3545 1S`jj)?j) ϩ<ө H AC E)0ύ&ύ'L\Ϧ?0,0?>06LΩ(L ϭ) ߍҩҭҍ ) ǭ `)ҩЍҊ Үe1i1`ҍ ҩ(ҩҩ`?@aipy΂Ώζ 3B[guzόϢϬϯ@