$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