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