    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