$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