Burst-Befehle $06,$07,$16,$17: Format (bei der 1571: $84b7) BD12: AD 02 02 LDA $0202 N-Flag (b0): Laufwerksnummer BD15: 29 01 AND #$01 BD17: D0 F1 BNE $BD0A N=1: Laufwerk n. v., ==> BD19: AD 02 02 LDA $0202 M-Flag (b7): Modus-Flag BD1C: 10 40 BPL $BD5E M=0: 1581-Format mit Verzeichnis, ==> (bei der 1571: $8c67) BD1E: A5 29 LDA $29 BD20: 38 SEC BD21: E9 03 SBC #$03 Laenge der Kommandozeile = 3 ? BD23: A8 TAY ('U0.') BD24: F0 56 BEQ $BD7C Ja, Defaultwerte benutzen BD26: AD 03 02 LDA $0203 Sektorgroesse setzen BD29: 85 91 STA $91 BD2B: 88 DEY Anzahl der angegebenen Parameter: BD2C: F0 52 BEQ $BD80 1, ==> BD2E: 88 DEY Nummer der letzten Spur BD2F: F0 54 BEQ $BD85 2, ==> BD31: 88 DEY Anzahl der Sektoren BD32: F0 59 BEQ $BD8D 3, ==> BD34: 88 DEY Startspur BD35: F0 5B BEQ $BD92 4, ==> BD37: 88 DEY Fuellbyte BD38: F0 5D BEQ $BD97 5, ==> BD3A: AD 08 02 LDA $0208 1. Sektornummer BD3D: 85 94 STA $94 BD3F: 88 DEY BD40: F0 59 BEQ $BD9B 6, ==> BD42: AD 09 02 LDA $0209 Groesse der Luecke zwischen zwei Sektoren BD45: 85 9A STA $9A BD47: 4C A2 BD JMP $BDA2 >= 7, ==> Diskette im 1581-Format formatieren BD4A: 4E 30 3A 43 4F 50 59 52 n0:copyr BD52: 49 47 48 54 20 43 42 4D ight cbm BD5A: 2C 38 36 0D ,86 Einsprung von $BD1C: BD5E: A0 13 LDY #$13 Kommandostring in Kommandozeile kopieren Einsprung von $BD67: BD60: B9 4A BD LDA $BD4A,Y BD63: 99 00 02 STA $0200,Y Name: 'copyright cbm', ID:'86' BD66: 88 DEY BD67: 10 F7 BPL $BD60 BD69: A9 14 LDA #$14 Laenge der Befehlszeile BD6B: 85 29 STA $29 BD6D: A9 11 LDA #$11 Position des Kommas BD6F: 8D 92 02 STA $0292 BD72: A9 01 LDA #$01 Position der Drivenummer BD74: 8D 91 02 STA $0291 BD77: A2 00 LDX #$00 (nutzlos) BD79: 4C 2A FF JMP $FF2A JNEW: Diskette formatieren Spezialformat anfertigen (bei der 1571: $8c90) Einsprung von $BD24: BD7C: A9 02 LDA #$02 Sektorgroesse auf 512 Bytes setzen BD7E: 85 91 STA $91 Einsprung von $BD2C: BD80: A9 4F LDA #$4F letzte Spur = 79 BD82: 8D 04 02 STA $0204 Einsprung von $BD2F: BD85: A6 91 LDX $91 Sektorgroesse holen BD87: BD 06 BD LDA $BD06,X Anzahl der Sektoren pro Spur BD8A: 8D 05 02 STA $0205 Einsprung von $BD32: BD8D: A9 00 LDA #$00 Startspur = 0 BD8F: 8D 06 02 STA $0206 Einsprung von $BD35: BD92: A9 E5 LDA #$E5 Fuellbyte = 229 BD94: 8D 07 02 STA $0207 Einsprung von $BD38: BD97: A9 01 LDA #$01 1. Sektornummer = 1 BD99: 85 94 STA $94 Einsprung von $BD40: BD9B: A6 91 LDX $91 Sektorgroesse holen BD9D: BD F8 BD LDA $BDF8,X Groesse der Luecke zwischen zwei Sektoren BDA0: 85 9A STA $9A Einsprung von $BD47: BDA2: A5 90 LDA $90 Starttrack der aktuellen Partition merken BDA4: 48 PHA BDA5: A5 9B LDA $9B Fuellbyte fuer Datenbloecke merken BDA7: 48 PHA BDA8: A5 8F LDA $8F Nummer der letzten physikalischen Spur BDAA: 48 PHA BDAB: AD 04 02 LDA $0204 letzte physikalische Spur festlegen BDAE: 85 8F STA $8F BDB0: AD 05 02 LDA $0205 Anzahl der Sektoren festlegen BDB3: 85 92 STA $92 BDB5: 18 CLC BDB6: 65 94 ADC $94 + '1. Sektornummer' BDB8: 38 SEC BDB9: E9 01 SBC #$01 - 1 BDBB: 85 93 STA $93 = letzte Sektornummer BDBD: 8D F0 01 STA $01F0 = groesste Sektornummer der Spur BDC0: AC 06 02 LDY $0206 Starttrack fuer Formatieren festlegen BDC3: C8 INY +1 (logisches Format) BDC4: 84 90 STY $90 Start der Partition merken BDC6: AD 07 02 LDA $0207 Fuellbyte fuer Datenbloecke festlegen BDC9: 85 9B STA $9B BDCB: A5 90 LDA $90 Starttrack als aktuellen Track setzen BDCD: 85 4D STA $4D BDCF: A9 00 LDA #$00 Job0 benutzen BDD1: 85 4E STA $4E Sektornummer = 0 BDD3: 20 88 95 JSR $9588 T&S in Jobspeicher schreiben BDD6: A9 C0 LDA #$C0 Job-Befehl $c0: RESTORE_DV BDD8: 20 9D 95 JSR $959D Controller aufrufen BDDB: A9 F0 LDA #$F0 Job-Befehl $f0: FORMATDK_DV BDDD: 20 9D 95 JSR $959D Controller aufrufen BDE0: C9 02 CMP #$02 Fehler ? BDE2: B0 03 BCS $BDE7 Ja, ==> BDE4: A9 00 LDA #$00 Ok. Meldung merken BDE6: 2C B $2C Einsprung von $BDE2: BDE7: A9 06 LDA #$06 Format-Error merken BDE9: 20 66 BF JSR $BF66 Burst-Status setzen BDEC: 68 PLA BDED: 85 8F STA $8F letzte physikalische Spur zurueckholen BDEF: 68 PLA BDF0: 85 9B STA $9B Fuellbyte zurueckholen BDF2: 68 PLA BDF3: 85 90 STA $90 Starttrack der Partition zurueckholen BDF5: 4C 02 BB JMP $BB02 Fehler im Klartext ausgeben BDF8: 0E 16 26 44 Anzahl Bytes zwischen zwei Sektoren Previous Page / Next Page |