ER 5˙” ‰.IN"D:OSV24EQU.BIB‰.OR$C000‰.OF"D:TEAC.ROM(*2CHKROMƒ.HXFFFF<‰.AS"EP HDI Version 2.8"F*PROMTSTƒLDA#$02Z‰STABUFADR d‰LDA#$C0n‰STABUFADR+1 x‰LDA#$FF‚‰STABUFENDŒ‰STABUFEND+1–‰STZCHKROMZ ‰STZCHKROMZ+1Ş.01†LDA(BUFADR)´‰CLCž‰ADCCHKROMZȉSTACHKROMZ ҉BCC.02܉INCCHKROMZ+1ć.02†JSRBUFINC đ‰BCC.01ú‰LDACHKROM‰ANDCHKROM+1 ‰CMP#$FF ‰BEQ.99"‰LDACHKROMZ,‰CMPCHKROM6.03†BNE.03@‰LDACHKROMZ+1J‰CMPCHKROM+1T.04†BNE.04 ^.99†RTSh- rSETX…SEC|‰LDABUFEND+1†‰SBCBUFADR+1‰TAXš‰RTS¤-ŽRAMSETƒLDY#$00 ¸‰JSRSETXÂ.01†LDABUFADR+1Ě.02†STA(BUFADR),YÖ‰INY ŕ‰BNE.02ę‰INCBUFADR+1ô‰DEX ţ‰BNE.01‰RTS*RAMCHKƒLDY#$00 &‰JSRSETX0.01†LDABUFADR+1:‰EOR(BUFADR),YD.02†BNE.02N‰STA(BUFADR),YX‰INY b‰BNE.01l‰INCBUFADR+1v‰DEX €‰BNE.01Š‰RTS”*žRAMTSTƒSTZBUFADR ¨‰LDA#$02˛‰STABUFADR+1 ź‰LDA#$40ƉSTABUFEND+1ЉJSRRAMSET Ú‰LDA#$80ä‰STABUFADR+1 î‰LDA#$C0ř‰STABUFEND+1‰JSRRAMSET ‰LDA#$02‰STABUFADR+1 ‰LDA#$40*‰STABUFEND+14‰JSRRAMCHK >‰LDA#$80H‰STABUFADR+1 R‰LDA#$C0\‰STABUFEND+1f‰JMPRAMCHKp-zMOVTABƒLDX#$5F„.01†LDACMDTAB,XŽ‰STARRAM,X˜‰DEX ˘‰BPL.01Ź‰RTSś- ŔCALC…SECʉLDADAUX1 Ô‰SBC#$01 މSTADIVč‰LDADAUX2 ň‰SBC#$00ü‰STADIV+1‰LDAPSEKLO,Y‚;#SecLO ‰STADOR ‰LDX#$00 $‰STXZSP.‰STXZSP+18‰STXDOR+1BSHIFT„BITDOR+1L‰BMISCHLEIF V‰ASLDOR`‰ROLDOR+1j‰INXt‰BNESHIFT~SCHLEIF‚SEC ˆ‰LDADIV ’‰SBCDOR œ‰STAZSPŚ‰LDADIV+1°‰SBCDOR+1ş‰STAZSP+1ĉPHP ΉROLCYL؉PLP â‰BCCNEG ě‰LDAZSP ö‰STADIV‰LDAZSP+1 ‰STADIV+1NEG†LSRDOR+1 ‰RORDOR(‰DEX2‰BPLSCHLEIF <‰LDXDIVF‰INX P‰STXRECZ‰LDX#$00†;HEAd‰LDAPMT,Yƒ;MT?n‰BPL.01‡;Nein-> x‰LDACYL‚‰LSR Œ‰STACYL –‰BCC.01 ‰INX‹;HEA=1Ş.01†LDACYL´‰CMPPTRACK,Yž‰BCCNSIDE1ȉSBCPTRACK,Y ҉STACYL܉INX‹;HEA=1ćNSIDE1ƒSTXHEAđ‰RTSú-LENTABƒ.HX00010204081020;SECBFLƒLDAPBYTLO,Y"‰STABUFLEN,‰LDAPBYTHI,Y6‰TAX@‰LDALENTAB,XJ‰STABUFLEN+1T;^SSECBFƒLDA/SECBUFh‰STABUFADR+1r‰LDA#SECBUF|‰STABUFADR†SBFENDƒCLC‰LDABUFADRš‰ADCBUFLEN¤‰STABUFENDŽ‰LDABUFADR+1¸‰ADCBUFLEN+1‰STABUFEND+1̉RTSÖ-ŕSSIOBFƒLDA/SIOBUFę‰STABUFADR+1ô‰LDA#SIOBUFţ‰STABUFADR‰JMPSBFEND-BUFINCƒINCBUFADR„C=1if&‰BNE.01‡endof0‰INCBUFADR+1‚Buffer:.01†LDABUFADR+1D‰CMPBUFEND+1 N‰BCC.02X‰LDABUFADRb‰CMPBUFEND l.02†RTSv-€PBYTE„BITFDCSTŠ‰BPLPBYTE”‰STAFDCDATž‰RTS¨-˛GBYTE„BITFDCSTź‰BPLGBYTEƉLDAFDCDATЉRTSÚ-äRESULTS‚PHAî‰LDA#$02„;Terminalř‰TSBPORTAƒ;CountSet‰TRBPORTAƒ;Cleared ‰PHX‰LDYACTDRV„Get7 ‰JSRGBYTE…Result*‰STAST0TAB,Y‚Bytes4‰JSRGBYTE…fromFDC>‰STAST1TAB,YH‰JSRGBYTER‰STAST2TAB,Y \‰LDX#$00f.01†JSRGBYTEp‰STACYL,Xz‰INX „‰CPX#$04 Ž‰BNE.01˜*˘‰LDAST0TAB,Y‚C=1beiŹ‰ASL‹Errorś‰ORAST0TAB,YŔ‰ASLʉPLXÔ‰PLAމRTSč- ňSPEC…PHXü‰LDX#$02„;verm.ND ‰LDAPSEKLO,Y;Beimehr ‰CMP#19…;als18 ‰BCC.01…;Sektoren$ ‰LDX#0†;=HD . .01†TXA 8 ‰STACRB ‰STAPHD,YL ‰LDA#$03†;CMDV ‰JSRPBYTE` ‰LDAPSTEPR,Y‚;Stepr. j ‰AND#$0F t ‰BEQ.02~ ‰DEAˆ .02†EOR#$0F’ ‰ASLœ ‰ASLŚ ‰ASL° ‰ASL ş ‰BPL.03Ä ‰CPX#$00†BeiHDÎ ‰BNE.03‡SRTx2Ř ‰ASLâ .03†ORA#$0F†;SRT/HUTě ‰JSRPBYTEö ‰LDA#$1F†;HLT ‰ASL ‰CPX#$00  ‰BNE.04 ‰ASL( .04†ORA#$01†NoDMA2 ‰JSRPBYTE< ‰PLXF ‰RTSP - Z DSTAT„PHAd ‰LDA#$04†;CMDn ‰JSRPBYTE x ‰TYA‹;D#‚ ‰JSRPBYTEŒ .01†BITFDCST – ‰BPL.01  ‰LDAPORTA…;DChange Ş ‰AND#$80´ ‰ORAFDCDATž ‰STAST3TAB,YČ ‰PLAŇ ‰RTSÜ - ć ISTAT„PHAđ ‰PHXú .04†LDAFDCST…;FDCRQM  ‰BPL.04  ‰AND#$70  ‰BNE.04" ‰LDAFDCST, ‰AND#$0F†;Busy?6 ‰BEQ.03‡;Nein->@ ‰LDA#$08†;WIRQJ .01†BITPORTB T ‰BEQ.01^ .03†LDA#$08†;CMDh ‰JSRPBYTEr ‰JSRGBYTE | ‰CMP#$80 † ‰BEQ.02 ‰PHA š ‰AND#$03¤ ‰TAXŽ ‰PLA¸ ‰STAST0TAB,X ‰JSRGBYTEĚ ‰STAPCNTAB,X Ö .02†PLXŕ ‰PLAę ‰RTSô -ţ TR00…LDA#$07†;CMD ‰JSRPBYTE  ‰TYA‹;D# ‰JSRPBYTE& ‰JSRISTAT0 ‰JMPDSTAT: -D STEPINƒLDA#$01N ‰BNESEEK1X STEPOUT‚LDA#$FF b SEEK1„CLCl ‰ADCPCNTAB,Yv SEEK…CMPPTRACK,Y€ ‰BCSSEEKXŠ ‰PHA” ‰LDA#$0F†;CMDž ‰JSRPBYTE¨ ‰TYA˛ ‰JSRPBYTE…;D#ź ‰PLAĆ ‰JSRPBYTE…;NCNĐ ‰JSRISTATÚ ‰JSRDSTATä ‰CLC î SEEKX„RTSř - XMTCMDƒPHA‹;CMD ‰PHX ‰PHP ‰LDAPMF,Y* ‰ASL4 ‰ASL> ‰ASLH ‰ASL R ‰AND#$40\ ‰TSXf ‰ORA$0103,Xp ‰JSRPBYTE z ‰LDAHEA„ ‰ASLŽ ‰ASL˜ ‰ORAACTDRV˘ ‰JSRPBYTEŹ ‰PLP ś ‰BCC.02 Ŕ ‰LDX#$00Ę .01†LDACYL,XÔ ‰JSRPBYTEŢ ‰INX č ‰CPX#$07 ň ‰BNE.01 ü .02†PLX‰PLA‰RTS- $RESET„CLD.‰LDX#$FF„Ca.130ms8‰TXS‰Verz|ge-B‰LDY#$FF„rungzumL.01†DEY‰Einschwin-V‰BNE.01…gender`‰DEX‰Betriebs-j‰BNE.01…spannung.t*~‰STXPACTLƒEing{ngeˆ‰STXPBCTL’*œ‰STX$00…65C02CPU?Ś‰.HX8700„SB0$00 °‰LDA$00ş.02†BEQ.02…Nein->Ä*Î.03†TXA‰Ramtest؉STA$00,XƒSeiten â‰EOR#$FFě‰STA$0100,X0und1ö‰INX ‰BNE.03 .31†TXA‰CMP$00,X.32†BNE.32 (‰EOR#$FF2‰CMP$0100,X<.33†BNE.33F‰INX P‰BNE.31Z*d‰LDA#$FD„Motorann‰STAPORTAƒTCzur}ck-x‰LDA#$5B„setzen‚‰STAPACTLŒ*–‰LDA#$FC„/Resetf}r ‰STAPORTBƒFDCundމLDA#$37„SIO´‰STAPBCTLž*ȉJSRROMTST҉JSRRAMTST܉JSRMOVTABć* đ‰LDA#$FFú‰STAT1024D‚65msPause.13†BITIFLG„nachReset ‰BPL.13*"‰LDA#$4D„SIO:8/N/1,‰STASIOCMD‚asynchron 6‰LDA#$37@‰STASIOCMDJ*T‰LDAFDCSTƒFDC:Base^‰LDA#$08„Warteaufh.14†BITPORTBƒFDCIRQr‰BEQ.14…nachReset|*†‰LDX#$02„ND ‰STXCRš*¤‰LDY#$03„EinResetŽ.15†JSRISTATƒbedingt¸‰DEY‰denNicht-‰BPL.15…RDY-StatusĚ*”allerFDDÖ*”u.erzeugtŕ*”einenIRQę*ô‰LDA#$03„2msSRTţ‰JSRPBYTE ‰LDA#$EF‰JSRPBYTE‰JSRPBYTE&*0‰LDY#$03„AlleLauf-:.16†LDA#$07„werkenachD‰JSRPBYTEƒTrack0N‰TYAX‰JSRPBYTEb‰DEY l‰BPL.16v*€.17†JSRISTATƒEssindŠ‰LDAFDCSTƒnochnicht”‰AND#$0F„allež‰BNE.17…fertig->¨*˛‰LDA#$31„Vorhandeneź‰PHA‰FloppiesƉLDY#$00„eintragenĐ.18†STYACTDRV‚undkonfi-Ú‰LDA#40…gurierenä‰STAPTRACK,Y î‰LDA#$02ř‰STAPSTEPR,Y‰STAPHD,Y ‰LDA#$00‰STAPSEKHI,Y ‰STAPSIDE,Y*‰STAPMF,Y4‰STAPBYTHI,Y>‰STAPMT,YH‰STADRVTAB,YR‰STAHPYFLG,Y \‰LDA#$12f‰STAPSEKLO,Y p‰LDA#$80z‰STAPBYTLO,Y „‰LDA#$FFŽ‰STAPONLIN,Y ˜‰LDA#$0A˘‰STAPBAUD,YŹ‰LDA#$D0„Max#ofś‰STAPMAXLO,YSectors Ŕ‰LDA#$02ʉSTAPMAXHI,YÔ‰JSRDSTATމLDAST0TAB,Y‚;Fehler=č‰AND#$D0†;keineň‰BNE.19‡;Floppyü‰PLA‰STADRVTAB,Y‰INA‰PHA$‰JSRCFGDRV ..19†INY 8‰CPY#$04 B‰BCC.18L‰PLAV‰LDA#$08„Motoraus`‰TRBPORTAj‰LDA#$25„19200Bdt‰STABAUD„Sendetakt~‰LDA#$FA„3Sekundenˆ‰STAOFFDEL‚Nachlauf’‰JMPWAITCMDœ-ŚCFGDRVƒJSRIFDISK°‰BMI.00‡;Ja->ş‰RTSÄ.00†JSRMOTON ΉLDA#$50؉STAPTRACK,Yâ‰LDA#$02†;SD/DD ě‰STACRö‰STAPHD,Y‰LDA#$00†;FM ‰STAPMF,Y ‰STAHEA‰JSRREADID (‰BCC.012‰LDA#$04†;MFM<‰STAPMF,Y F‰LDA#$00 P‰STAHEAZ‰JSRREADID d‰BCC.01n‰LDA#$00†;HD/MFM x‰STACR‚‰STAPHD,Y Œ‰STAHEA–‰JSRREADID  ‰BCC.01މLDA#$00†;HD/FM´‰STAPMF,Y ž‰STAHEAȉJSRREADID ҉BCC.01܉LDA#$02†;Defaultć‰STAPHD,Yƒ;ND/FMđ‰LDA#$00†;80Byteú‰STAPBYTHI,Y ‰LDA#$80‰STAPBYTLO,Y‰BNELASTSEC".01†LDAST02EB,Y ,‰ORA#$406‰STAST02EB,Y@‰LDANUM‡;SetzeJ‰STAPBYTHI,Y‚;Disk-T‰LDA#$00†;Sektor-^‰CMPNUM‡;L{nge.h‰RORr‰STAPBYTLO,Y|‰JSRNUMSEC†‰JSRSE01BF‰LDAST02EB,Yreadsec.š‰ORA#$40…forces¤‰STAST02EB,Yunprot.Ž‰JSRSRDST¸‰LDA#$01†Seite1? ‰STAHEẢJSRREADID Ö‰BCS.03 ŕ‰CMPHEA ę‰BEQ.10ô.03†LDA#$00ţ.10†STAPSIDE,Y ‰LDA#$00 ‰STAHEA ‰JSRSPEC &‰LDA#40 0‰JSRSEEK:‰JSRREADID D‰BCS.04 N‰LDA#77 X‰JSRSEEKb‰JSRREADID l‰BCS.04 v‰LDA#80€.04†STAPTRACK,YŠ.05†JSRTR00 ”LASTSEC‚LDAPTRACK,Y‚;T*H*S=ž‰STADIV‡;maxSec¨‰LDXPSIDE,Y˛‰LDAPSEKLO,Yź‰DEX ƉBMI.06ЉASLÚ.06†STADOR ä‰LDA#$00î‰STAPMAXLO,Yř‰STAPMAXHI,Y‰STADOR+1 .07†LDADIV ‰BNE.08 ‰RTS*.08†AND#$01 4‰BEQ.09>‰CLCH‰LDAPMAXLO,Y R‰ADCDOR\‰STAPMAXLO,Yf‰LDAPMAXHI,Yp‰ADCDOR+1z‰STAPMAXHI,Y„.09†LSRDIV Ž‰ASLDOR˜‰ROLDOR+1 ˘‰JMP.07Ź-śSE01BFƒLDADAUX1Ŕ‰PHAʉLDADAUX2Ô‰PHA މLDA#1č‰STADAUX1ň‰STZDAUX2 ü‰JSRRSEC‰PLA‰STADAUX2‰PLA$‰STADAUX1.‰JSRSBTBF 8‰LDY#$7FB.01†LDASECBUF,YL‰STA(BUFADR),YV‰DEY `‰BPL.01j‰LDYACTDRVt‰RTS~- ˆSBTBF„TYA’‰LSRœ‰PHAŚ‰ROR°‰CLCş‰ADC#BOOTBFĉSTABUFADRΉPLA؉ADC/BOOTBFâ‰STABUFADR+1ě‰RTSö-READIDƒPHA ‰LDA#$0A†;CMD‰CLC‰JSRXMTCMD(‰JSRRESULTS2‰PLA<‰RTSF-PNUMSECƒLDX#$23„L|scheZ.00†STZSKEW,X‚Tabelled‰DEX n‰BPL.00x*”DriveSel.‚‰JSRREADID‚durchHUTŒ‰LDA#4†Warteauf–.01†BITPORTAƒIDX: ‰BEQ.01…LO-HIŞ.02†BITPORTAƒHI-LO ´‰BNE.02ž* ȉLDX#0Ň.03†JSRREADID‚Startedas܉LDAREC…Lesenderć‰CMPSKEW„Headermitđ‰BEQ.04…d.fallen-ú‰STASKEW,X‚denFlanke‰INX‰desIndex-‰CPX#$24„impulses. ‰BCC.03"* ,.04†TXA6‰STAPSEKLO,Y @‰LDX#0 J‰JSRY40T.05†LDASKEW,X^‰STASKWADR,Yh‰INYr‰INX |‰CPX#$24 †‰BNE.05‰LDYACTDRVš‰RTS¤-ŽY40†TYA‰Y=Y*40¸‰ASL‰ASL̉ASL Ö‰STADIVŕ‰ASLę‰ASL ô‰ADCDIVţ‰TAY‰RTS-RSEC…LDYACTDRV &‰JSRCALC 0‰LDACYL :‰JSRSEEKD‰LDAPBYTLO,Y N‰STADTLX‰LDAPBYTHI,Y b‰STANUMl‰LDAPSEKLO,Y v‰STAEOT€;Š‰JSRSECBFL”;ž‰LDA#$06†;CMD¨‰SEC˛‰JSRXMTCMDź; ƉLDY#$00Đ.04†LDA#$20†;FDCEXMÚ.05†BITFDCST ä‰BPL.05 î‰BEQ.06ř‰LDAFDCDAT ‰EOR#$FF ‰STA(BUFADR),Y; ‰INY *‰BNE.074‰INCBUFADR+1>‰DECBUFLEN+1H.07†CPYBUFLEN R‰BNE.04\‰LDABUFLEN+1 f‰BNE.04p;z.06†JMPRESULTS„-ŽWSEC…LDYACTDRV ˜‰JSRCALC ˘‰LDACYL Ź‰JSRSEEKś‰LDAPBYTLO,Y Ŕ‰STADTLʉLDAPBYTHI,Y Ô‰STANUMމLDAPSEKLO,Y č‰STAEOTň;ü‰JSRSECBFL; ‰LDA#$05‰SEC$‰JSRXMTCMD.; 8‰LDY#$00B.01†LDA#$20L.02†BITFDCST V‰BPL.02 `‰BEQ.04j‰LDA(BUFADR),Y t‰EOR#$FF~‰STAFDCDATˆ;’‰INY œ‰BNE.03Ś‰INCBUFADR+1°‰DECBUFLEN+1ş.03†CPYBUFLEN ĉBNE.01ΉLDABUFLEN+1 ؉BNE.01â;ě.04†JMPRESULTSö-FODISKƒLDYACTDRV ‰JSRTR00‰LDAPBYTHI,Y‰STAFOTABƒ;NUM(‰LDAPSEKLO,Y2‰STAFOTAB+1;EOT <‰LDA#$0AF‰LDXPMF,Yƒ;MFM?P‰BEQ.01…;Nein->Z‰ASLd.01†STAFOTAB+2;GPL n‰LDA#$FFx‰STAFOTAB+3;FILLER‚FOTRK„LDAPCNTAB,YŒ‰STAIDTABƒ;CYL–‰LDAPSIDE,Y ‰STAIDTAB+1;HEAŞFOSIDEƒLDAIDTAB+1 ´‰STAHEAž‰LDA#$0D„;FormatȉCLC҉JSRXMTCMD ܉LDX#$00ć.01†LDAFOTAB,Xđ.02†BITFDCST ú‰BPL.02‰BVSFOERR‰STAFDCDAT‰INX "‰CPX#$04 ,‰BCC.01 6‰LDY#$00@WRID…LDASKEW,YJ‰STAIDTAB+2;REC T‰LDX#$00^.01†LDAIDTAB,Xh.02†BITFDCST r‰BPL.02|‰BVSFOERR†‰STAFDCDAT‰INX š‰CPX#$04 ¤‰BCC.01Ž‰INY¸‰CPYFOTAB+1;EOT ‰BNEWRID ̉LDA#$08Ö.03†BITPORTB ŕ‰BEQ.03ęFOERR„LDYACTDRVô‰JSRRESULTS ţ‰BCSFOX ‰DECIDTAB+1;HEA ‰BPLFOSIDE ‰JSRSTEPIN& ‰BCCFOTRK 0 ‰JSRTR00: ‰CLC D FOX†RTSN -X SETSKEW‚LDX#$05„Interleaveb ‰LDAPHD,YƒistesHD?l ‰BNE.00…Nein-> v ‰LDX#$0B€ .00†LDAPMF,Y Š ‰BEQ.01” ‰INX‰>128Bytež ‰INX‰jeSektor¨ .01†STXINTRLV˛ ;ź ‰LDAPSEKLO,YL|scheĆ ‰TAXŠSektor-Đ ‰DEXÚ .02†STZSKEW,Xƒtabelleä ‰DEX î ‰BPL.02ř ; !‰LDX#$01 !‰STXSKWSEC!‰DEX !‰STXSKEWPT*!.03†LDASKEW,X 4!‰BEQ.04>!‰INCSKEWPT H!‰JSR.07 R!‰BCC.03\!.04†LDASKWSECf!‰STASKEW,Xp!‰INCSKWSECz!‰LDAPSEKLO,Y„!‰CMPSKWSEC Ž!‰BCC.05 ˜!‰JSR.06 ˘!‰BCC.03 Ź!.05†RTSś!;Ŕ!.06†CLC‰AddiereĘ!‰LDASKEWPT‚InterleaveÔ!‰ADCINTRLVŢ!‰STASKEWPTč!;ň!.07†LDASKEWPT0<=PTö"‰AND#$10†;TR0?#‰BEQ.02‡;Nein-> #‰JSRSTEPIN#.02†JSRTR00#‰JSRDSTAT(#‰LDAST3TAB,Y 2#.01†RTS<#‰.BL$4B,$FFF#-P#SIOGETƒLDASIOSTƒSchonwasZ#‰AND#$3A„empfangen?d#‰LSRn#‰LSRx#‰BCCSIOGET‚Nein->‚#‰BNE.01…Fehler->Œ#‰CLC–#.01†ORASTATUS #‰STASTATUSŞ#‰LDASIODAT‚BeiFehler´#‰RTS‰istC=1ž#-Č#SIOPUTƒPHAŇ#‰STASIODATÜ#.01†LDAPORTA ć#‰AND#$FEđ#‰STAPORTA ú#‰ORA#$01$‰STAPORTA $‰LDABAUD $.02†DEA "$‰BNE.02 ,$‰LDA#$046$‰BITSIOST @$‰BEQ.01J$‰PLAT$‰RTS^$-h$CHKSUMƒCLCr$‰ADCPSUMME |$‰ADC#$00†$‰STAPSUMME$‰RTSš$-¤$BOOTSEC‚LDADAUX2ƒ;IstesŽ$‰BNE.01…;einBoot-¸$‰LDADAUX1ƒ;sektor? Â$‰CMP#$04 Ě$‰BCS.01 Ö$‰LDA#$80ŕ$‰STABUFLENę$‰STZBUFLEN+1ô$‰JMPSSECBF‚;Jaţ$.01†JMPSECBFL‚;Nein%-%RECV…JSRSIOGETƒLeseByte%‰BCS.02†Fehler->&%‰STA(BUFADR)Schleife0%‰JSRCHKSUMƒbis:%‰JSRBUFINCƒPufferD%‰BCCRECV…voll->N%‰JSRSIOGETX%‰CMPPSUMMEb%‰PHP l%‰LDA#$30v%‰STAT0064D€%.01†BITIFLG Š%‰BPL.01”%‰PLP ž%‰BNEPOP ¨%‰LDA#ACK˛%‰JMPSIOPUT‚;ok,Ret.ź%;Ć%.02†LDA#3†TimeoutĐ%‰STAT1024D‚768usÚ%.03†LDASIOSTä%‰LSRî%‰LSR ř%‰BITIFLG &‰BMIPOP &‰BCC.03&‰LDASIODAT &‰BCS.02*&; 4&POP†PLA>&‰PLAH&;R&DATNACK‚LDAST02EA,Y \&‰ORA#$02f&‰STAST02EA,Yp&‰LDA#NACKz&‰JMPXIT…;Err,POP„&-Ž&XMIT…LDA(BUFADR)˜&‰STASIODAT˘&‰JSRCHKSUMŹ&.01†LDAPORTAƒTxCLKLO ś&‰AND#$FEŔ&‰STAPORTAĘ&‰ORA#$01„TxCLKHIÔ&‰STAPORTAŢ&‰LDABAUD„Verz|ge-č&.02†DEA‰rung,gem.ň&‰BNE.02…Baudrateü&‰LDA#$01„Warteauf'‰BITSIOSTƒT_Ready '‰BEQ.01'‰JSRBUFINC $'‰BCCXMIT.'‰LDAPSUMME8'‰JMPSIOPUTB'-L'MOTON„LDA#$08„MotoranV'‰TSBPORTA`'‰BNE.03…waran->j'‰PHXt'‰LDX#8†500ms~'.01†LDA#$FF„Motorhoch-ˆ'‰STAT1024D‚laufzeit’'.02†BITIFLG œ'‰BPL.02Ś'‰DEX °'‰BNE.01ş'‰PLXÄ'.03†LDAOFFDEL‚Motornach-Î'‰STAMOTIM+2laufzeitŘ'‰STZMOTIM+1â'‰STZMOTIMě'‰RTSö'-(WAITCMD‚BITSIOSTƒWait'til (‰BPLWAITCMDCMDend (‰LDY#$00(‰STYSTATUS((‰STYPSUMME2(.03†LDASIODAT‚ClrBugs<(‰JSRMOTOR0‚3sdelayF(‰BITSIOSTƒCMDset?P(‰BMI.03…No->Z(‰BITPORTBƒHoston?d(‰BVSWAITCMDNo->n(‰LDA#$37„SIOanx(‰STASIOCMD‚(‰JSRSIOGETŒ(‰BCSWAITCMD–(‰STADRIVE (‰STAPSUMMEŞ(‰LDA#$FF„Baudrate´(‰STAT0064D‚ermittelnž(‰INYČ(.01†JSRSIOGETŇ(‰BCSWAITCMDÜ(‰STADRIVE,Yć(‰JSRCHKSUMđ(‰INY ú(‰CPY#$05 )‰BNE.01 )‰BITIFLG)‰BMIWAITCMD")‰LDYRTIMID,)‰STYRTIMIDZ6).04†BITSIOST @)‰BPL.04J)‰CMPPSUMMET)‰BNEWAITCMD^);h)DRVCHKƒLDY#$03r).01†LDADRVTAB,Y |)‰BMI.02†)‰BITPORTB )‰BPL.02š)‰INA¤).02†AND#$7FŽ)‰CMPDRIVE¸)‰BEQDRVFNDÂ)‰DEY Ě)‰BPL.01Ö)‰BMIWAITCMDŕ);ę)DRVFNDƒSTYACTDRV ô)‰LDA#$25ţ)‰LDXRTIMIDZ *‰CPX#$80 *‰BCC.01*‰LDAPBAUD,Y&*.01†STABAUD0*;:*CMDCHKƒLDX#$1FD*‰LDACOMANDN*.01†CMPRRAM,XX*‰BEQCMDJMPb*‰DEX l*‰BPL.01v*;€*CMDNACK‚LDAST02EA,Y Š*‰ORA#$01”*‰STAST02EA,Yž*‰LDA#NACK ¨*‰JMPXIT˛*;ź*CMDJMPƒCPX#$05…Ext.CMD?Ć*‰BCC.01†Nein->Đ*‰LDAHPYFLG,YHappyistÚ*‰BMICMDNACK‚aus->ä*.01†CPX#$03…R/WSEC?î*‰BCS.04†No->ř*;+‰LDADAUX2„Sektor# +‰BPL.02†negativ?+‰LDAHPYFLG,YRam/Rom +‰BMICMDNACK‚Adr.wenn*+‰BPL.04†Happyan.4+;>+‰LDADAUX2„EsgibtH+.02†ORADAUX1„keinenR+‰BEQCMDNACK‚Sektor0!\+;f+‰SECŠSektor-p+‰LDAPMAXLO,Ynummerzuz+‰SBCDAUX1„gro~?„+‰LDAPMAXHI,YŽ+‰SBCDAUX2˜+‰BCCCMDNACK‚Ja->˘+;Ź+.04†JSRSPEC ś+‰LDA#ACKŔ+‰JSRSIOPUTĘ+‰STZPSUMMEÔ+‰LDARRAM+$20,X Ţ+‰STADIVč+‰LDARRAM+$40,Xň+‰STADIV+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 ---RWMEM„JSRSECBFL-‰LDACOMAND (-‰CMP#'R 2-‰BEQ.04<-; F-‰JSRRECVP-‰BITDAUX2 Z-‰BVC.01 d-‰JMPXERRn-;x-.01†JSRSSECBF‚-.02†LDA(BUFADR)Œ-‰STA(DAUX1)–-‰INCDAUX1  -‰BNE.03Ş-‰INCDAUX2´-.03†JSRBUFINC ž-‰BCC.02 Č-‰JMPXWOKŇ-;Ü-.04†LDADAUX1ć-‰STABUFADRđ-‰LDADAUX2ú-‰STABUFADR+1.‰LDA#COMPLT.‰JSRSIOPUT.‰JSRSBFEND ".‰JSRXMIT,.‰JMPWAITCMD6.- @.WRSECJ.PTSEC„LDADAUX2ƒRAMAdr.? T.‰BPL.00^.‰JMPRWMEMh.;r..00†JSRBOOTSEC |.‰JSRRECV†.‰JSRDSTAT.‰LDAST3TAB,Y š.‰BMI.01¤.‰JSRCFGDRV Ž.‰BPL.02¸..01†LDAHPYFLG,YÂ.‰LSR Ě.‰BCS.03Ö.‰JSRMOTONŕ.‰JSRSSECBF ę.‰JSRWSECô.‰LDAST2TAB,Y ţ.‰AND#$10 /‰BEQ.03 /‰JSRTR00 /‰JSRWSEC &/.03†PHP0/‰JSRSRDST:/‰PLP D/‰BCS.02N/‰LDADAUX2 X/‰BNE.04b/‰LDADAUX1 l/‰CMP#1 v/‰BNE.04€/‰JSRSE01BFŠ/.04†JMPXWOK”/.02†JMPXERRž/-¨/RDSEC„LDADAUX2 ˛/‰BPL.00ź/‰JMPRWMEMĆ/;Đ/.00†JSRDSTATÚ/‰LDAST02EB,Y ä/‰ORA#$40î/‰STAST02EB,Yř/‰LDAST3TAB,Y;Dskstill0‰BMI.01…;inDrive 0‰JSRCFGDRV0‰LDAST3TAB,Y 0‰BPL.03…;NoDisk*0.01†LDADAUX2 40‰BNE.02>0‰LDADAUX1 H0‰CMP#1 R0‰BNE.02\0‰JMPRSECRAMf0.02†JSRMOTON p0‰JSRRSEC z0‰BCC.04„0‰LDAST2TAB,Y Ž0‰AND#$10 ˜0‰BEQ.03 ˘0‰JSRTR00 Ź0‰JSRRSEC ś0‰BCC.04Ŕ0.03†LDA#ERROR Ę0‰.HX2CÔ0.04†LDA#COMPLT;SektorokŢ0‰JSRSIOPUTč0‰JSRBOOTSEC ň0‰JSRXMITü0‰JSRSRDST1‰JMPWAITCMD1;1RSECRAM‚JSRSBTBF $1‰LDA#$80.1‰STABUFLEN81‰STZBUFLEN+1B1‰JSRSBFENDL1‰LDA#COMPLTV1‰JSRSIOPUT `1‰JSRXMITj1‰JSRSRDSTt1‰JMPWAITCMD~1-ˆ1FORMT„JSRIFDISK’1‰SEC œ1‰BPL.07Ś1‰LDAHPYFLG,Y°1‰LSR ş1‰BCS.07Ä1‰JSRMOTONÎ1‰JSRSETSKEWŘ1‰JSRFODISK â1‰LDA#$FF ě1‰BCC.04ö1.07†LDA#$002.04†LDX#$00 2.05†STASIOBUF,X2‰INX 2‰BNE.05 (2‰BCS.0622‰JSRLASTSEC<2‰LDA#COMPLT F2‰.HX2CP2.06†LDA#ERRORZ2‰JSRSIOPUTd2‰LDAPBYTLO,Yn2‰STABUFLENx2‰LDAPBYTHI,Y‚2‰STABUFLEN+1Œ2‰JSRSSIOBF –2‰JSRXMIT 2‰JSRSRDSTŞ2‰JMPWAITCMD´2-ž2‰.IN"D:STATS.BIBČ2-Ň2AUTOF„JSRIFDISKÜ2‰BPL.01…NoDiskć2‰ASLđ2‰BMI.01…Writeprotú2‰LDAHPYFLG,Y3‰LSR 3‰BCS.013‰LDA#COMPLT"3‰JSRSIOPUT,3‰JSRMOTON63‰JSRSETSKEW@3‰JSRFODISKJ3‰JMPWAITCMDT3;^3.01†JMPXERRh3-r3GETBD„LDA#COMPLT|3‰JSRSIOPUT†3‰LDAPBAUD,Y3‰JSRSIOPUT š3‰JMPXIT¤3-Ž3CHCMD„LDA#3ˆLese3¸3‰STABUFLEN„BytesÂ3‰STZBUFLEN+1Ě3‰JSRSSIOBF Ö3‰JSRRECVŕ3‰LDASIOBUF ę3‰AND#$7Fô3‰STASIOBUF+3 ţ3‰LDX#04.01†LDARRAM,X„Eintrag4‰BEQ.02‡frei 4‰AND#$7F&4‰CMPSIOBUF+3‚Eintrag04‰BEQ.02†vorhanden:4‰INX D4‰CPX#$20 N4‰BCC.01 X4‰JMPXERRb4;l4.02†LDASIOBUF+1v4‰ORASIOBUF+2 €4‰BNE.04Š4.03†LDARRAM+1,X”4‰STARRAM,Xž4‰LDARRAM+$21,X¨4‰STARRAM+$20,X˛4‰LDARRAM+$41,Xź4‰STARRAM+$40,XĆ4‰INX Đ4‰CPX#$1F Ú4‰BCC.03ä4‰STZRRAM,Xî4‰STZRRAM+$20,Xř4‰STZRRAM+$40,X5‰JMPXWOK†gel|scht 5;5.04†LDASIOBUF 5‰STARRAM,X*5‰LDASIOBUF+145‰STARRAM+$20,X>5‰LDASIOBUF+2H5‰STARRAM+$40,XR5‰JMPXWOKƒeingetragen\5;f5-p5HAPPY„LDX#$0Fz5.01†LDAHAPTAB,X„5‰CMPDAUX1 Ž5‰BEQ.02˜5‰DEX ˘5‰BPL.01 Ź5‰JMPXERRś5;Ŕ5.02†LDAHAPTAB+$10,X Ę5‰STADIVÔ5‰LDAHAPTAB+$20,XŢ5‰STADIV+1č5‰JMP(DIV)ň5;ü5HAPTABƒ.HX000102036‰.HX182060E06‰.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,/OFFDˆ6‰.DA/NDVN,/IDRV’6‰.DA/WRPE,/FAWRœ6‰.DA/SLOW,/HOFFŚ6‰.DA/XERR,/XERR°6‰.DA/XERR,/XERRş6‰.DA/XERR,/XERRÄ6‰.DA/XERR,/XERRÎ6;Ř6HPY1…LDADAUX2 â6‰CMP#$80 ě6‰BNE.01 ö6‰JMPXWOK7.01†JMPCMDNACK 7;7OFFD…LDADAUX27‰LSR(7‰LSR27‰LSR<7‰LSRF7‰LSRP7‰CLC Z7‰ADC#$F8d7‰STAOFFDEL n7‰JMPXWOKx7;‚7NDVN…LDXACTDRVŒ7‰LDADAUX2ƒBefehlok?–7‰BPL.03…Fehler->  7‰AND#$7FŞ7‰CMP#$3A„Nummer´7‰BCS.03…1...9ž7‰CMP#$31„erlaubt Č7‰BCC.03Ň7‰LDYDRVTAB,XAlteNr.Ü7‰STYDIV†rettenu.ć7‰LDY#$00…Eintragđ7‰STZDRVTAB,Xl|schen.ú7‰BITPORTB 8‰BPL.018‰DEA8.01†CMPDRVTAB,YGibtes"8‰BEQ.02†schon->,8‰INY 68‰CPY#4 @8‰BCC.01J8‰LDADAUX2„SetzeT8‰STADRVTAB,XKennung ^8‰JMPXWOKh8;r8.02†LDADIV|8‰STADRVTAB,X†8.03†JMPCMDNACK8;š8IDRV…LDADAUX2 ¤8‰BNE.01Ž8‰STAHPYFLG,Y¸8‰CLCÂ8‰TYA Ě8‰ADC#$31Ö8‰STADRVTAB,Y ŕ8‰LDA#$FAę8‰STAOFFDELô8‰JSRMOTONţ8‰JSRCFGDRV 9‰JMPXWOK9.01†JMPCMDNACK9;&9WRPE…LDAHPYFLG,Y09‰LDXDAUX2 :9‰CPX#$10 D9‰BNE.01 N9‰ORA#$01 X9‰BNE.02b9.01†CPX#$08 l9‰BNE.03 v9‰AND#$FE€9.02†STAHPYFLG,Y Š9‰JMPXWOK”9.03†JMPCMDNACKž9;¨9FAWR…LDADAUX2 ˛9‰BNE.01ź9‰LDAHPYFLG,Y Ć9‰ORA#$02Đ9‰STAHPYFLG,Y Ú9‰JMPXWOKä9.01†JMPCMDNACKî9;ř9SLOW…LDADAUX2 :‰CMP#$60 :‰BNE.01:‰LDAHPYFLG,Y :‰ORA#$4*:‰STAHPYFLG,Y 4:‰JMPXWOK>:.01†JMPCMDNACKH:;R:HOFF…LDADAUX2 \:‰CMP#$E0 f:‰BNE.01p:‰LDAHPYFLG,Y z:‰ORA#$80„:‰STAHPYFLG,Y Ž:‰JMPXWOK˜:.01†JMPCMDNACK˘:-Ź:RPERC„LDA#COMPLTś:‰JSRSIOPUTŔ:.01†LDAPTRACK,YĘ:‰JSRSIOPUTÔ:‰JSRCHKSUMŢ:‰INYč:‰INYň:‰INYü:‰INY ;‰CPY#$30 ;‰BCC.01 ;‰BCSXRD$;- .;CUSTM8;WPERC„LDA#12B;‰LDXCOMAND L;‰CPX#'f V;‰BNE.00 `;‰LDA#128j;.00†STABUFLEN t;‰LDA#0~;‰STABUFLEN+1ˆ;‰TAX’;‰JSRSSIOBF œ;‰JSRRECVŚ;.01†LDASIOBUF,X°;‰STAPTRACK,Yş;‰INXÄ;‰INYÎ;‰INYŘ;‰INYâ;‰INY ě;‰CPY#$30 ö;‰BCC.01<; <‰LDYACTDRV<‰LDAPSTEPR,YSteprate<‰CMP#$02…minimal(<‰BCS.04†2ms 2<‰LDA#$02<<‰STAPSTEPR,YF<;P<.04†JSRSPEC…HD?Z<‰LDACOMAND d<‰CMP#'f n<‰BNE.03 x<‰LDY#0‚<.02†LDASIOBUF,XŒ<‰STASKEW,Y–<‰INX <‰INYŞ<‰CPYSIOBUF+3 ´<‰BCC.02ž<‰LDYACTDRVČ<‰JSRIFDISK Ň<‰BPLXERRÜ<‰JSRMOTONć<‰JSRFODISK đ<‰BCSXERRú<‰JSRLASTSEC=.03†JMPXWOK=-=QQQQQ„LDA#$08"=‰TRBPORTA,=‰LDA#COMPLT6=‰JSRSIOPUT@=‰JMPWAITCMDJ=-T=XRD†LDAPSUMME ^=‰.HX2Ch=XWOK…LDA#COMPLT r=‰.HX2C|=XERR…LDA#ERROR†=XIT†JSRSIOPUT=‰JMPWAITCMDš=-¤=RDRAM„LDADAUX1Ž=‰STABUFADR¸=‰LDADAUX2Â=‰STABUFADR+1Ě=‰STZBUFLEN Ö=‰LDA#$01ŕ=‰STABUFLEN+1ę=‰LDA#COMPLTô=‰JSRSIOPUTţ=‰JSRSBFEND >‰JSRXMIT>‰JMPWAITCMD>-&>RSIOL„LDA#COMPLT0>‰JSRSIOPUT :>‰LDA#$02D>‰STABUFLENN>‰STZBUFLEN+1X>‰LDA#USIOLb>‰STABUFADRl>‰LDA/USIOLv>‰STABUFADR+1€>‰JSRSBFEND Š>‰JSRXMIT”>‰JMPWAITCMDž>USIOL„.DAUSIOE-USIOA¨>-˛>RSIOD„LDAUSIOLƒPufferf}rź>‰STABUFLEN‚SIOsetzenĆ>‰LDAUSIOL+1Đ>‰STABUFLEN+1Ú>‰JSRSSIOBFä>‰LDA#USIOA‚Errechneî>‰STADIV…Differenzř>‰SEC‰zurZiel-?‰SBCDAUX1ƒadresse ?‰STADAUX1?‰LDA/USIOA‚DIVzeigt ?‰STADIV+1ƒaufdie*?‰SBCDAUX2ƒAdresseim4?‰STADAUX2ƒROM>?;H?‰LDX#$00…Zuver-R?.01†LDAABSTBL,Xlegende\?‰CMPDIV†Adresse? f?‰BNE.02p?‰LDAABSTBL+1,Xz?‰CMPDIV+1 „?‰BNE.02Ž?‰JSR.04†Byteaus ˜?‰SECŠROM˘?‰SBCDAUX1„umrechnenŹ?‰PHP ś?‰JSR.06 Ŕ?‰JSR.04Ę?‰PLPÔ?‰SBCDAUX2 Ţ?‰JSR.06č?‰INXŠZeigerň?‰INXŠaufnaechsteü?‰BNE.03†Adresse@.02†JSR.04 @‰JSR.06@.03†LDADIV†Ende$@‰CMP#USIOEƒerreicht? .@‰BNE.018@‰LDADIV+1B@‰CMP/USIOE L@‰BNE.01V@‰LDA#COMPLT‚Ja.`@‰JSRSIOPUTƒPufferj@‰JSRSSIOBFƒsenden t@‰JSRXMIT~@‰JMPWAITCMDˆ@;’@.04†LDA(DIV)„Byteœ@‰INCDIV†lesen,Ś@‰BNE.05†Zeiger°@‰INCDIV+1„erh|hen. ş@.05†RTSÄ@;Î@.06†STA(BUFADR)Ř@‰JMPBUFINCâ@-ě@‰.IN"D:EPSIO.BIBö@-A‰.OR$FFF9 AIRQ ANMI†RTI A‰.DANMI(A‰.DARESET 2A‰.DAIRQ