Directory formatieren und in Ausgabepuffer schreiben ($ec9e)
[Der Directory-Zeilen-Puffer wird in den Ausgabepuffer kopiert, dann wird
 eine neue Zeile formatiert. Dieser Vorgang wiederholt sich, bis der
 Ausgabepuffer voll ist. Beim ersten Aufruf muss sich der Diskname in dem
 Dir-Zeilen-Puffer befinden (s. $8627) und der erste Filename mit JSR $82ed
 gefunden worden sein. 8-Basiczeilen muessen den Ausgabepuffer genau fuellen,
 deshalb ist jede Zeile 32-Bytes lang, bis auf den Disknamen: Er ist nur 30
 Bytes lang, damit noch 2 Bytes Basic-Startadresse in den Puffer passen.
 Ist der ganze Puffer ausgegeben worden, kann die Formatierung mit
 JSR $b1c8 fortgesetzt werden.]

Einsprung von $9948:

B17C: A9 00     LDA #$00
B17E: 85 52     STA $52          Aktuelle SA=0
B180: A9 01     LDA #$01
B182: 20 5A 91  JSR $915A        Lesekanal suchen 1 Puffer belegen
B185: A9 00     LDA #$00         Pufferzeiger auf 0 setzen
B187: 20 22 94  JSR $9422
B18A: A6 50     LDX $50          Kanalnummer holen
B18C: A9 00     LDA #$00
B18E: 9D 42 02  STA $0242,X      EOI-Flag loeschen
B191: 20 11 9F  JSR $9F11        Pufferzeiger auf 0 setzen
B194: AA        TAX              [alle 256 Bytes werden genutzt]
B195: A9 00     LDA #$00         letzten Jobcode loeschen
B197: 9D 72 02  STA $0272,X      (Drivenummer 0 )
B19A: A9 01     LDA #$01         Startadersse = $0401
B19C: 20 B1 8E  JSR $8EB1        Byte in Puffer schreiben
B19F: A9 04     LDA #$04         [diese Adresse stammt noch aus der Zeit der
B1A1: 20 B1 8E  JSR $8EB1         alten CBM-Rechner / VC-20.]
B1A4: A9 01     LDA #$01         Platzhalter fuer den Basic-Verkettungszeiger
B1A6: 20 B1 8E  JSR $8EB1        in den Puffer schreiben
B1A9: 20 B1 8E  JSR $8EB1
B1AC: AD 8D 02  LDA $028D        Drivenummer als Basiczeilennummer
B1AF: 20 B1 8E  JSR $8EB1        in Puffer schreiben (Lo)
B1B2: A9 00     LDA #$00
B1B4: 20 B1 8E  JSR $8EB1        (Hi)
B1B7: 20 37 B2  JSR $B237        Disk-Namen in den Puffer kopieren
B1BA: 20 11 9F  JSR $9F11        aktiven Puffer holen
B1BD: 0A        ASL
B1BE: AA        TAX
B1BF: D6 BB     DEC $BB,X        Pufferzeiger -2 (=32)
B1C1: D6 BB     DEC $BB,X
B1C3: A9 00     LDA #$00         Basic-Zeilenende-Kennzeichen in Puffer
B1C5: 20 B1 8E  JSR $8EB1        schreiben
Puffer mit Directoryzeilen fuellen

Einsprung von $B1E9, $B25D:

B1C8: A9 01     LDA #$01         <-- (Einsprung)
B1CA: 20 B1 8E  JSR $8EB1        Platzhalter fuer den Basic-Verkettungszeiger
B1CD: 20 B1 8E  JSR $8EB1
B1D0: 20 4D 85  JSR $854D        Directory-Zeile erzeugen
B1D3: 90 2C     BCC $B201        kein File mehr auszugeben ?, ==>
B1D5: AD 8D 02  LDA $028D        Programmlaenge als Basic-Zeilennummer
B1D8: 20 B1 8E  JSR $8EB1        verwenden (LO)
B1DB: AD 8E 02  LDA $028E        (Hi)
B1DE: 20 B1 8E  JSR $8EB1
B1E1: 20 37 B2  JSR $B237        Directoryzeile in Puffer kopieren
B1E4: A9 00     LDA #$00         Basic-Zeilenende-Kennzeichen
B1E6: 20 B1 8E  JSR $8EB1        in Puffer schreiben
B1E9: D0 DD     BNE $B1C8        Puffer noch nicht voll, ==>

Einsprung von $B234:

B1EB: 20 11 9F  JSR $9F11        aktiven Puffer holen
B1EE: 0A        ASL
B1EF: AA        TAX
B1F0: A9 00     LDA #$00         Pufferzeiger auf 0 setzen
B1F2: 95 BB     STA $BB,X
B1F4: A9 88     LDA #$88
B1F6: A4 50     LDY $50          Flag:
B1F8: 8D 6E 02  STA $026E        'Directory wird auf SA 0 ausgegeben' setzen
B1FB: 99 34 02  STA $0234,Y      b7=1: 'Daten ausgeben'; b3=1: kein EOI
B1FE: A5 54     LDA $54          aktuelles Datenbyte zurueckholen
B200: 60        RTS

'Blocks free'-Meldung in den Puffer schreiben

Einsprung von $B1D3:

B201: AD 8D 02  LDA $028D        'Blocks free' als Basic-Zeilennummer merken
B204: 20 B1 8E  JSR $8EB1        (Lo)
B207: AD 8E 02  LDA $028E
B20A: 20 B1 8E  JSR $8EB1        (Hi)
B20D: 20 37 B2  JSR $B237        Directoryzeile in Puffer kopieren
B210: 20 11 9F  JSR $9F11
B213: 0A        ASL              Pufferzeiger -2
B214: AA        TAX              [Die Zeile darf incl. Basic-Ende-Zeichen
B215: D6 BB     DEC $BB,X         nicht laenger als 32 Bytes sein.]
B217: D6 BB     DEC $BB,X
B219: A9 00     LDA #$00         Zeichen fuer Basic-Ende in Puffer schreiben
B21B: 20 B1 8E  JSR $8EB1        (3 x $00)
B21E: 20 B1 8E  JSR $8EB1
B221: 20 B1 8E  JSR $8EB1
B224: 20 11 9F  JSR $9F11        aktuellen Pufferzeiger holen
B227: 0A        ASL
B228: A8        TAY
B229: B9 BB 00  LDA $00BB,Y
B22C: A6 50     LDX $50
B22E: 9D 42 02  STA $0242,X      und als Puffer-Ende merken
B231: DE 42 02  DEC $0242,X      -1 (letztes benutztes Zeichen merken)
B234: 4C EB B1  JMP $B1EB

    Previous Page / Next Page