$DFD0/57296: Get next record iin REL file
Jump from $E153:
DFD0: A9 20 LDA #$20
DFD2: 20 9D DD JSR $DD9D ; erase bit 5
DFD5: A9 80 LDA #$80
DFD7: 20 A6 DD JSR $DDA6 ; test bit 7
DFDA: D0 41 BNE $E01D ; set?
DFDC: A6 82 LDX $82 ; channel number
DFDE: F6 B5 INC $B5,X ; increment record number
DFE0: D0 02 BNE $DFE4
DFE2: F6 BB INC $BB,X ; record number hi
Jump from $DFE0:
DFE4: A6 82 LDX $82 ; channel number
DFE6: B5 C1 LDA $C1,X ; write pointer
DFE8: F0 2E BEQ $E018 ; zero?
DFEA: 20 E8 D4 JSR $D4E8 ; set buffer pointer
DFED: A6 82 LDX $82 ; channel number
DFEF: D5 C1 CMP $C1,X ; buffer pointer smaller than write pointer
DFF1: 90 03 BCC $DFF6 ; yes
DFF3: 20 3C E0 JSR $E03C ; write block, read next block
Jump from $DFF1:
DFF6: A6 82 LDX $82 ; channel number
DFF8: B5 C1 LDA $C1,X ; write pointer
DFFA: 20 C8 D4 JSR $D4C8 ; set buffer pointer = write pointer
DFFD: A1 99 LDA ($99,X) ; byte from buffer
DFFF: 85 85 STA $85 ; put in output register
E001: A9 20 LDA #$20
E003: 20 9D DD JSR $DD9D ; erase bit 5
E006: 20 04 E3 JSR $E304 ; add record length to write pointer
Jump from $E291:
E009: 48 PHA ; and save
E00A: 90 28 BCC $E034 ; not yet in last block?
E00C: A9 00 LDA #$00
E00E: 20 F6 D4 JSR $D4F6 ; get track number
E011: D0 21 BNE $E034 ; does block exist?
E013: 68 PLA ; pointer
E014: C9 02 CMP #$02 ; = 2
E016: F0 12 BEQ $E02A ; yes
Jump from $DFE8:
E018: A9 80 LDA #$80
E01A: 20 97 DD JSR $DD97 ; set bit 7
Jump from $DFDA:
E01D: 20 2F D1 JSR $D12F ; get byte from buffer
E020: B5 99 LDA $99,X ; buffer pointer
E022: 99 44 02 STA $0244,Y ; as end pointer
E025: A9 0D LDA #$0D ; CR
E027: 85 85 STA $85 ; in output register
E029: 60 RTS
Jump from $E016:
E02A: 20 35 E0 JSR $E035
E02D: A6 82 LDX $82 ; channel number
E02F: A9 00 LDA #$00
E031: 95 C1 STA $C1,X ; write pointer to zero
E033: 60 RTS
Jump from $E00A, $E011:
E034: 68 PLA
Jump from $E02A:
E035: A6 82 LDX $82 ; channel number
E037: 95 C1 STA $C1,X ; set write pointer
E039: 4C 6E E1 JMP $E16E
Previous Page / Next Page