    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