Burst-Befehle $04,$14: Inquire Disk (bei der 1571: $848b) Einsprung von $BE06: BCB2: AD 02 02 LDA $0202 Burst-Befehl holen BCB5: 29 01 AND #$01 N-Flag (b0) testen (Laufwerksnummer) BCB7: D0 2E BNE $BCE7 Laufwerk 1 angesprochen ? ja, ==> BCB9: A2 00 LDX #$00 Burst-Status loeschen BCBB: 86 80 STX $80 (bei der 1571: $8a09) BCBD: A9 C0 LDA #$C0 RESTORE_DV: Kopf auf Spur 0 setzen BCBF: 20 B0 BF JSR $BFB0 BCC2: 08 PHP i-Flag merken BCC3: 58 CLI i-Flag loeschen BCC4: A9 80 LDA #$80 DOS-Fehlermeldungen unterdruecken BCC6: 85 81 STA $81 BCC8: 20 F1 BE JSR $BEF1 Standard-1581-Format setzen BCCB: 20 03 8F JSR $8F03 Diskette initialisieren BCCE: 06 81 ASL $81 DOS-Fehlermeldungen wieder zulassen BCD0: 28 PLP i-Flag zurueckholen BCD1: A5 7C LDA $7C Burst-Kommandobyte holen BCD3: 29 10 AND #$10 S-Flag (b4) holen (Seitenauswahl) BCD5: 4A LSR BCD6: 4A LSR BCD7: 4A LSR BCD8: 4A LSR BCD9: 9D CE 01 STA $01CE,X und in Job-Seitenspeicher (SIDS) schreiben BCDC: A9 9C LDA #$9C SIDE_DV: Diskettenseite auswaehlen BCDE: 20 9D 95 JSR $959D Job aufrufen BCE1: A9 B0 LDA #$B0 SEEKHD_DV: beliebigen Blockheader suchen BCE3: 20 B0 BF JSR $BFB0 Job aufrufen BCE6: 2C B $2C Einsprung von $BCB7: BCE7: A9 4F LDA #$4F b6=1: Laufwerk 1; b0-3=$0f: Laufwerk n.v. Einsprung von $BD04: BCE9: 20 FC BA JSR $BAFC Status ausgeben BCEC: A9 01 LDA #$01 BCEE: 8D EF 01 STA $01EF kleinste Sektornummer setzen BCF1: 85 94 STA $94 1. Sektornummer auf der Spur BCF3: A6 22 LDX $22 Sektorgroesse aus Blockheader holen BCF5: BD 06 BD LDA $BD06,X Anzahl Sektoren pro Spur holen BCF8: F0 08 BEQ $BD02 = 0 (128-Byte-Sektoren) ? ja, => BCFA: 85 92 STA $92 Anzahl Sektoren der Spur setzen BCFC: 85 93 STA $93 letzter Sektor auf der Spur BCFE: 8D F0 01 STA $01F0 groesste Sektornummer der Spur BD01: 60 RTS Einsprung von $BCF8: BD02: A9 0E LDA #$0E Syntax-Fehler (gemeint ist: Format wird BD04: D0 E3 BNE $BCE9 nicht unterstuetzt) ==> Anzahl der Sektoren pro Spur bei verschiedenen Sektorgroessen. 128-Byte-Sektoren werden nicht unterstuetzt BD06: 00 10 0A 05 Previous Page / Next Page |