    letzten Dateiblock abspeichern ($db62)

    Einsprung von $99BC:

    9A2A: A6 50     LDX $50          Kanalnummer holen
    9A2C: BD 49 02  LDA $0249,X      aktuelle Programmlaenge > 0 ?
    9A2F: 1D 50 02  ORA $0250,X
    9A32: D0 0C     BNE $9A40        ja, ==>
    9A34: 20 42 94  JSR $9442        aktuellen Pufferzeiger holen
    9A37: C9 02     CMP #$02         = Beginn des Datenbereichs (Block leer) ?
    9A39: D0 05     BNE $9A40        nein, ==>

    [Die Datei ist absolut leer !!! Da die Mindest-Dateilaenge aber 1 Byte ist,
     wird die Datei um ein CR 'erweitert'.]

    9A3B: A9 0D     LDA #$0D         ja: CR in Puffer schreiben
    9A3D: 20 B1 8E  JSR $8EB1        [Pufferzeiger = $03 !]

    Einsprung von $9A32, $9A39:

    9A40: 20 42 94  JSR $9442        Pufferzeiger holen
    9A43: C9 02     CMP #$02         Ist der Puffer noch leer ?
    9A45: D0 12     BNE $9A59        nein, ==>

    [Der letzte Block wurde genau gefuellt. Deshalb muss der aktuelle Block
     wieder von der Datei 'abgezogen' werden.]

    9A47: 20 7D 8D  JSR $8D7D        Puffer wechseln
    9A4A: A6 50     LDX $50
    9A4C: BD 49 02  LDA $0249,X      Dateilaenge -1
    9A4F: D0 03     BNE $9A54        [Eigentlich, so meint man, muesste der Block
    9A51: DE 50 02  DEC $0250,X       in der BAM auch freigegeben werden !?]

    Einsprung von $9A4F:

    9A54: DE 49 02  DEC $0249,X
    9A57: A9 00     LDA #$00         Pufferzeiger auf 256 setzen

    Einsprung von $9A45:

    9A59: 38        SEC              Pufferzeiger -1 (zeigt nun auf das letzte
    9A5A: E9 01     SBC #$01         Datenbyte)
    9A5C: 48        PHA              merken
    9A5D: A9 00     LDA #$00         Pufferzeiger auf die Blockverkettung setzen
    9A5F: 20 22 94  JSR $9422
    9A62: 20 B1 8E  JSR $8EB1        $00: letzter Dateiblock in Puffer schreiben
    9A65: 68        PLA              Blocklaenge
    9A66: 20 B1 8E  JSR $8EB1        in Puffer schreiben
    9A69: 20 02 90  JSR $9002        Block auf Diskette schreiben
    9A6C: 20 ED 94  JSR $94ED        Jobausfuehrung ueberwachen
    9A6F: 4C 7D 8D  JMP $8D7D        Puffer wechseln

        Previous Page / Next Page