$F92C/63788: Read Tape Bits
Jump from $F938:
F92C: AE 07 DC LDX $DC07 ; CIA1: Timer B High-Byte (Tape, Serial Port)
F92F: A0 FF LDY #$FF
F931: 98 TYA
F932: ED 06 DC SBC $DC06 ; CIA1: Timer B Low-Byte (Tape, Serial Port)
F935: EC 07 DC CPX $DC07 ; CIA1: Timer B High-Byte (Tape, Serial Port)
F938: D0 F2 BNE $F92C
F93A: 86 B1 STX $B1 ; Tape timing Constants
F93C: AA TAX
F93D: 8C 06 DC STY $DC06 ; CIA1: Timer B Low-Byte (Tape, Serial Port)
F940: 8C 07 DC STY $DC07 ; CIA1: Timer B High-Byte (Tape, Serial Port)
F943: A9 19 LDA #$19
F945: 8D 0F DC STA $DC0F ; CIA1: Control Register B
F948: AD 0D DC LDA $DC0D ; CIA1: Interrupt (IRQ) Control Register
F94B: 8D A3 02 STA $02A3 ; Temporary storage during Tape READ
F94E: 98 TYA
F94F: E5 B1 SBC $B1 ; Tape timing Constants
F951: 86 B1 STX $B1 ; Tape timing Constants
F953: 4A LSR
F954: 66 B1 ROR $B1 ; Tape timing Constants
F956: 4A LSR
F957: 66 B1 ROR $B1 ; Tape timing Constants
F959: A5 B0 LDA $B0 ; Tape timing Constants
F95B: 18 CLC
F95C: 69 3C ADC #$3C
F95E: C5 B1 CMP $B1 ; Tape timing Constants
F960: B0 4A BCS $F9AC
F962: A6 9C LDX $9C ; Flag: Byte received from Tape
F964: F0 03 BEQ $F969
F966: 4C 60 FA JMP $FA60 ; Store Tape Characters
Jump from $F964:
F969: A6 A3 LDX $A3 ; Serial Bus EOI (End Of Input) Flag
F96B: 30 1B BMI $F988
F96D: A2 00 LDX #$00
F96F: 69 30 ADC #$30
F971: 65 B0 ADC $B0 ; Tape timing Constants
F973: C5 B1 CMP $B1 ; Tape timing Constants
F975: B0 1C BCS $F993
F977: E8 INX
F978: 69 26 ADC #$26
F97A: 65 B0 ADC $B0 ; Tape timing Constants
F97C: C5 B1 CMP $B1 ; Tape timing Constants
F97E: B0 17 BCS $F997
F980: 69 2C ADC #$2C
F982: 65 B0 ADC $B0 ; Tape timing Constants
F984: C5 B1 CMP $B1 ; Tape timing Constants
F986: 90 03 BCC $F98B
Jump from $F96B, $F9C7:
F988: 4C 10 FA JMP $FA10
Jump from $F986, $F9D0, $F9E9:
F98B: A5 B4 LDA $B4 ; RS232 Write bit count/Tape Read timing Flag
F98D: F0 1D BEQ $F9AC
F98F: 85 A8 STA $A8 ; RS232 Input Bit count/Tape temporary
F991: D0 19 BNE $F9AC
Jump from $F975:
F993: E6 A9 INC $A9 ; RS232 Flag: Start Bit check/Tape temporary
F995: B0 02 BCS $F999
Jump from $F97E, $FA1C:
F997: C6 A9 DEC $A9 ; RS232 Flag: Start Bit check/Tape temporary
Jump from $F995:
F999: 38 SEC
F99A: E9 13 SBC #$13
F99C: E5 B1 SBC $B1 ; Tape timing Constants
F99E: 65 92 ADC $92 ; Timing Constant for Tape
F9A0: 85 92 STA $92 ; Timing Constant for Tape
F9A2: A5 A4 LDA $A4 ; Serial Bus shift Counter
F9A4: 49 01 EOR #$01
F9A6: 85 A4 STA $A4 ; Serial Bus shift Counter
F9A8: F0 2B BEQ $F9D5
F9AA: 86 D7 STX $D7 ; Current Input Character/Last Character Output
Jump from $F960, $F98D, $F991, $F9ED, $F9F1, $F9F5:
F9AC: A5 B4 LDA $B4 ; RS232 Write bit count/Tape Read timing Flag
F9AE: F0 22 BEQ $F9D2
F9B0: AD A3 02 LDA $02A3 ; Temporary storage during Tape READ
F9B3: 29 01 AND #$01
F9B5: D0 05 BNE $F9BC
F9B7: AD A4 02 LDA $02A4 ; Temporary D1IRQ Indicator during Tape READ
F9BA: D0 16 BNE $F9D2
Jump from $F9B5:
F9BC: A9 00 LDA #$00
F9BE: 85 A4 STA $A4 ; Serial Bus shift Counter
F9C0: 8D A4 02 STA $02A4 ; Temporary D1IRQ Indicator during Tape READ
F9C3: A5 A3 LDA $A3 ; Serial Bus EOI (End Of Input) Flag
F9C5: 10 30 BPL $F9F7
F9C7: 30 BF BMI $F988
Jump from $FA02:
F9C9: A2 A6 LDX #$A6
F9CB: 20 E2 F8 JSR $F8E2 ; Set Read Timing
F9CE: A5 9B LDA $9B ; Parity of Byte Output to Tape
F9D0: D0 B9 BNE $F98B
Jump from $F9AE, $F9BA, $F9FE:
F9D2: 4C BC FE JMP $FEBC ; Exit Interrupt
Jump from $F9A8:
F9D5: A5 92 LDA $92 ; Timing Constant for Tape
F9D7: F0 07 BEQ $F9E0
F9D9: 30 03 BMI $F9DE
F9DB: C6 B0 DEC $B0 ; Tape timing Constants
F9DD: 2C .BYTE $2C
Jump from $F9D9:
F9DE: E6 B0 INC $B0 ; Tape timing Constants
Jump from $F9D7:
F9E0: A9 00 LDA #$00
F9E2: 85 92 STA $92 ; Timing Constant for Tape
F9E4: E4 D7 CPX $D7 ; Current Input Character/Last Character Output
F9E6: D0 0F BNE $F9F7
F9E8: 8A TXA
F9E9: D0 A0 BNE $F98B
F9EB: A5 A9 LDA $A9 ; RS232 Flag: Start Bit check/Tape temporary
F9ED: 30 BD BMI $F9AC
F9EF: C9 10 CMP #$10
F9F1: 90 B9 BCC $F9AC
F9F3: 85 96 STA $96 ; Cassette Sync number
F9F5: B0 B5 BCS $F9AC
Jump from $F9C5, $F9E6:
F9F7: 8A TXA
F9F8: 45 9B EOR $9B ; Parity of Byte Output to Tape
F9FA: 85 9B STA $9B ; Parity of Byte Output to Tape
F9FC: A5 B4 LDA $B4 ; RS232 Write bit count/Tape Read timing Flag
F9FE: F0 D2 BEQ $F9D2
FA00: C6 A3 DEC $A3 ; Serial Bus EOI (End Of Input) Flag
FA02: 30 C5 BMI $F9C9
FA04: 46 D7 LSR $D7 ; Current Input Character/Last Character Output
FA06: 66 BF ROR $BF ; Serial Word Buffer
FA08: A2 DA LDX #$DA
FA0A: 20 E2 F8 JSR $F8E2 ; Set Read Timing
FA0D: 4C BC FE JMP $FEBC ; Exit Interrupt
Jump from $F988:
FA10: A5 96 LDA $96 ; Cassette Sync number
FA12: F0 04 BEQ $FA18
FA14: A5 B4 LDA $B4 ; RS232 Write bit count/Tape Read timing Flag
FA16: F0 07 BEQ $FA1F
Jump from $FA12:
FA18: A5 A3 LDA $A3 ; Serial Bus EOI (End Of Input) Flag
FA1A: 30 03 BMI $FA1F
FA1C: 4C 97 F9 JMP $F997
Jump from $FA16, $FA1A:
FA1F: 46 B1 LSR $B1 ; Tape timing Constants
FA21: A9 93 LDA #$93
FA23: 38 SEC
FA24: E5 B1 SBC $B1 ; Tape timing Constants
FA26: 65 B0 ADC $B0 ; Tape timing Constants
FA28: 0A ASL
FA29: AA TAX
FA2A: 20 E2 F8 JSR $F8E2 ; Set Read Timing
FA2D: E6 9C INC $9C ; Flag: Byte received from Tape
FA2F: A5 B4 LDA $B4 ; RS232 Write bit count/Tape Read timing Flag
FA31: D0 11 BNE $FA44
FA33: A5 96 LDA $96 ; Cassette Sync number
FA35: F0 26 BEQ $FA5D
FA37: 85 A8 STA $A8 ; RS232 Input Bit count/Tape temporary
FA39: A9 00 LDA #$00
FA3B: 85 96 STA $96 ; Cassette Sync number
FA3D: A9 81 LDA #$81
FA3F: 8D 0D DC STA $DC0D ; CIA1: Interrupt (IRQ) Control Register
FA42: 85 B4 STA $B4 ; RS232 Write bit count/Tape Read timing Flag
Jump from $FA31:
FA44: A5 96 LDA $96 ; Cassette Sync number
FA46: 85 B5 STA $B5 ; RS232 Next Bit to send/Tape Read - End of Tape
FA48: F0 09 BEQ $FA53
FA4A: A9 00 LDA #$00
FA4C: 85 B4 STA $B4 ; RS232 Write bit count/Tape Read timing Flag
FA4E: A9 01 LDA #$01
FA50: 8D 0D DC STA $DC0D ; CIA1: Interrupt (IRQ) Control Register
Jump from $FA48:
FA53: A5 BF LDA $BF ; Serial Word Buffer
FA55: 85 BD STA $BD ; RS232 Output Parity/Tape Byte temporary
FA57: A5 A8 LDA $A8 ; RS232 Input Bit count/Tape temporary
FA59: 05 A9 ORA $A9 ; RS232 Flag: Start Bit check/Tape temporary
FA5B: 85 B6 STA $B6 ; RS232 Output Byte Buffer/Tape Read Error Flag
Jump from $FA35:
FA5D: 4C BC FE JMP $FEBC ; Exit Interrupt
Previous Page / Next Page