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