    Verzeichnis-Header und BAM anlegen ($ee56)

    Verzeichnis-Header anlegen

    Einsprung von $B37D, $B38B:

    B390: A5 6C     LDA $6C          letzte Jobnummer
    B392: A8        TAY
    B393: 0A        ASL              *2
    B394: AA        TAX
    B395: AD 77 DB  LDA $DB77        Position des Verzeichnisnamens
    B398: 95 BB     STA $BB,X        Pufferzeiger setzen
    B39A: AE 91 02  LDX $0291
    B39D: A9 1B     LDA #$1B
    B39F: 20 EE 84  JSR $84EE        Diskettennamen kopieren
    B3A2: A0 00     LDY #$00
    B3A4: 84 64     STY $64          Pufferzeiger auf 0 setzen
    B3A6: AD 2B 02  LDA $022B        Verzeichnis-Track
    B3A9: 91 64     STA ($64),Y      als Zeiger auf naechsten Block
    B3AB: C8        INY
    B3AC: A9 03     LDA #$03         1. Verzeichnis-Sektor
    B3AE: 8D E5 01  STA $01E5
    B3B1: 91 64     STA ($64),Y      als Zeiger auf naechsten Block
    B3B3: C8        INY
    B3B4: AD EB 01  LDA $01EB        Formatkennzeichen
    B3B7: 85 6F     STA $6F          = aktuelles Formatkennzeichen
    B3B9: 91 64     STA ($64),Y      im Block merken
    B3BB: C8        INY
    B3BC: A9 00     LDA #$00         $00
    B3BE: 91 64     STA ($64),Y

    B3C0: A0 16     LDY #$16         Weiter bei Position 22
    B3C2: A5 1D     LDA $1D          ID1
    B3C4: 91 64     STA ($64),Y
    B3C6: C8        INY
    B3C7: A5 1E     LDA $1E          ID2
    B3C9: 91 64     STA ($64),Y
    B3CB: C8        INY
    B3CC: A9 A0     LDA #$A0         $a0
    B3CE: 91 64     STA ($64),Y
    B3D0: C8        INY
    B3D1: AD EC 01  LDA $01EC        DOS-Versionsnummer
    B3D4: 91 64     STA ($64),Y
    B3D6: C8        INY
    B3D7: A5 6F     LDA $6F          Diskettenversionsnummer
    B3D9: 91 64     STA ($64),Y
    B3DB: C8        INY
    B3DC: A9 A0     LDA #$A0         $a0
    B3DE: 91 64     STA ($64),Y
    B3E0: C8        INY
    B3E1: 91 64     STA ($64),Y      $a0
    B3E3: C8        INY
    B3E4: A9 00     LDA #$00         Rest vom Block mit $00 fuellen

    Einsprung von $B3E9:

    B3E6: 91 64     STA ($64),Y
    B3E8: C8        INY
    B3E9: D0 FB     BNE $B3E6
    B3EB: A9 00     LDA #$00         Sektornummer = 0
    B3ED: 20 35 B4  JSR $B435        T&S des 1. Directory-Sektors setzen
    B3F0: 20 C1 93  JSR $93C1        Puffer schreiben

    1. Directory-Sektor anlegen

    B3F3: A9 00     LDA #$00
    B3F5: 85 64     STA $64          Pufferzeiger auf 0
    B3F7: A8        TAY

    Einsprung von $B3FB:

    B3F8: 91 64     STA ($64),Y      Puffer mit $00 fuellen
    B3FA: C8        INY
    B3FB: D0 FB     BNE $B3F8
    B3FD: C8        INY              y=1
    B3FE: A9 FF     LDA #$FF         $00, $ff an Blockanfang schreiben
    B400: 91 64     STA ($64),Y      (Zeichen fuer letzten Dir-Block)
    B402: AD E5 01  LDA $01E5        Nummer des 1. Dir-Sektors holen
    B405: 20 35 B4  JSR $B435        und als aktuelle T&S setzen
    B408: 20 C1 93  JSR $93C1        Puffer schreiben

    BAM anlegen

    B40B: 20 4A B4  JSR $B44A        neue BAM anlegen
    B40E: AD 2B 02  LDA $022B
    B411: 85 4D     STA $4D          Verzeichnis-Header in BAM belegen
    B413: A9 00     LDA #$00
    B415: 85 4E     STA $4E
    B417: 20 72 B5  JSR $B572        Block belegen
    B41A: E6 4E     INC $4E
    B41C: 20 72 B5  JSR $B572        1. BAM-Block belegen
    B41F: E6 4E     INC $4E
    B421: 20 72 B5  JSR $B572        2. BAM-Block belegen
    B424: AD E5 01  LDA $01E5
    B427: 85 4E     STA $4E          1. Verzeichnis-Block belegen
    B429: 20 72 B5  JSR $B572
    B42C: 20 12 B6  JSR $B612        BAM auf Diskette schreiben
    B42F: 20 03 8F  JSR $8F03        Partition initialisieren
    B432: 4C 4C 80  JMP $804C        Ok. Ende

    T&S eines Blocks des Verzeichnisses setzen

    Einsprung von $B3ED, $B405:

    B435: 85 4E     STA $4E          Sektornummer in a
    B437: AD 2B 02  LDA $022B        Directory-Track
    B43A: 85 4D     STA $4D
    B43C: 60        RTS

        Previous Page / Next Page