$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