     $DB62/56162:   Write last block

    Jump from $DB20:

    DB62: A6 82     LDX $82         ; channel number
    DB64: B5 B5     LDA $B5,X       ; record number lo
    DB66: 15 BB     ORA $BB,X       ; record number hi
    DB68: D0 0C     BNE $DB76       ; not zero?
    DB6A: 20 E8 D4  JSR $D4E8       ; set buffer pointer
    DB6D: C9 02     CMP #$02
    DB6F: D0 05     BNE $DB76       ; not 2
    DB71: A9 0D     LDA #$0D        ; CR
    DB73: 20 F1 CF  JSR $CFF1       ; in buffer

    Jump from $DB68, $DB6F:

    DB76: 20 E8 D4  JSR $D4E8       ; set buffer pointer
    DB79: C9 02     CMP #$02        ; now equal to 2?
    DB7B: D0 0F     BNE $DB8C       ; no
    DB7D: 20 1E CF  JSR $CF1E       ; change buffer
    DB80: A6 82     LDX $82         ; channel number
    DB82: B5 B5     LDA $B5,X       ; record number lo
    DB84: D0 02     BNE $DB88
    DB86: D6 BB     DEC $BB,X       ; decrement block number hi

    Jump from $DB84:

    DB88: D6 B5     DEC $B5,X       ; and block number lo
    DB8A: A9 00     LDA #$00

    Jump from $DB7B:

    DB8C: 38        SEC
    DB8D: E9 01     SBC #$01        ; set pointer
    DB8F: 48        PHA
    DB90: A9 00     LDA #$00
    DB92: 20 C8 D4  JSR $D4C8       ; buffer pointer to zero
    DB95: 20 F1 CF  JSR $CFF1       ; write zero in buffer
    DB98: 68        PLA             ; second byte = pointer to end
    DB99: 20 F1 CF  JSR $CFF1       ; write in buffer
    DB9C: 20 C7 D0  JSR $D0C7       ; write block to disk
    DB9F: 20 99 D5  JSR $D599       ; and verify
    DBA2: 4C 1E CF  JMP $CF1E       ; change buffer

        Previous Page / Next Page