     $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