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