$D156/53590: Get byte and read next block
Jump from $C899, $C89E, $D400, $D45C, $DCA9:
D156: 20 37 D1 JSR $D137 ; get byte from buffer
D159: D0 36 BNE $D191 ; not last character?
D15B: 85 85 STA $85 ; save data byte
D15D: B9 44 02 LDA $0244,Y ; end pointer
D160: F0 08 BEQ $D16A ; yes
D162: A9 80 LDA #$80
D164: 99 F2 00 STA $F2,Y ; READ-flag
D167: A5 85 LDA $85 ; data byte
D169: 60 RTS
Jump from $D160:
D16A: 20 1E CF JSR $CF1E ; change buffer and read next block
D16D: A9 00 LDA #$00
D16F: 20 C8 D4 JSR $D4C8 ; set buffer pointer to zero
D172: 20 37 D1 JSR $D137 ; get first byte from buffer
D175: C9 00 CMP #$00 ; track number zero
D177: F0 19 BEQ $D192 ; yes, then last block
D179: 85 80 STA $80 ; save last track number
D17B: 20 37 D1 JSR $D137 ; get next byte
D17E: 85 81 STA $81 ; save as following track
D180: 20 1E CF JSR $CF1E ; change buffer and read next block
D183: 20 D3 D1 JSR $D1D3 ; save drive number
D186: 20 D0 D6 JSR $D6D0 ; parameter to disk controller
D189: 20 C3 D0 JSR $D0C3 ; transmit read command
D18C: 20 1E CF JSR $CF1E ; change buffer and read block
D18F: A5 85 LDA $85 ; get data byte
Jump from $D159:
D191: 60 RTS
Jump from $D177:
D192: 20 37 D1 JSR $D137 ; get next byte from buffer
D195: A4 82 LDY $82
D197: 99 44 02 STA $0244,Y ; save as end pointer
D19A: A5 85 LDA $85 ; get data byte back
D19C: 60 RTS
Previous Page / Next Page