$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