JOB $a4: SP_READ C800: 20 A6 CF JSR $CFA6 Blockheader lesen C803: A5 88 LDA $88 befindet sich der Kopf auf der C805: C5 1F CMP $1F richtigen Spur ? C807: F0 03 BEQ $C80C ja, ==> C809: 4C 88 CB JMP $CB88 02, MISHD_DV_ER Einsprung von $C807: C80C: A6 83 LDX $83 Jobnummer holen [Dies ist der Index fuer 1-Byte Tabellen !!! C80E: B5 0B LDA $0B,X Das Holen der T&S funktioniert daher nur C810: 8D 01 60 STA $6001 bei Job 0. Da die Pufferadresse aber C813: B5 0C LDA $0C,X sowieso immer $0300 ist, laesst sich dieser C815: 8D 02 60 STA $6002 Fehler verschmerzen.] C818: A9 00 LDA #$00 $0300: Pufferadresse C81A: 85 4A STA $4A Pufferzeiger setzen C81C: A9 03 LDA #$03 C81E: 85 4B STA $4B C820: EA .... NOP [19 NOPS] C832: .... EA NOP C833: AD DF 01 LDA $01DF Controller-Befehl: 'Read Sector' C836: 20 F4 CB JSR $CBF4 Kommando an Controller uebergeben C839: A4 91 LDY $91 Blockgroesse holen C83B: C0 03 CPY #$03 Anzahl der einzulesenden Speicherseiten C83D: D0 02 BNE $C841 ermitteln C83F: C8 INY C840: EA NOP Einsprung von $C83D, $C849, $C858, $C85D: C841: AD 00 60 LDA $6000 Controllestatus abfragen C844: 29 03 AND #$03 C846: 4A LSR C847: 90 16 BCC $C85F 'Controller ready', (Fehler) ==> C849: F0 F6 BEQ $C841 noch nicht 'Byte ready', (warten) ==> C84B: 84 82 STY $82 C84D: A0 00 LDY #$00 C84F: AD 03 60 LDA $6003 Byte von Diskette C852: 91 4A STA ($4A),Y in Puffer schreiben C854: A4 82 LDY $82 C856: E6 4A INC $4A Pufferzeiger erhoehen C858: D0 E7 BNE $C841 C85A: E6 4B INC $4B C85C: 88 DEY noch eine Seite einlesen ? C85D: D0 E2 BNE $C841 ja, ==> Einsprung von $C847: C85F: 20 3F CD JSR $CD3F Controller-Status pruefen C862: 4C CC CD JMP $CDCC Jobauftrag beenden C865: FF .... C8FF: .... FF Previous Page / Next Page |