$FA60/64096:   Store Tape Characters

Jump from $F966:

FA60: 20 97 FB  JSR $FB97     ; New Character Setup
FA63: 85 9C     STA $9C       ; Flag: Byte received from Tape
FA65: A2 DA     LDX #$DA
FA67: 20 E2 F8  JSR $F8E2     ; Set Read Timing
FA6A: A5 BE     LDA $BE       ; Tape Input/Output Block count
FA6C: F0 02     BEQ $FA70
FA6E: 85 A7     STA $A7       ; Tape temporary

Jump from $FA6C:

FA70: A9 0F     LDA #$0F
FA72: 24 AA     BIT $AA       ; RS232 Input Byte Buffer/Tape temporary
FA74: 10 17     BPL $FA8D
FA76: A5 B5     LDA $B5       ; RS232 Next Bit to send/Tape Read - End of Tape
FA78: D0 0C     BNE $FA86
FA7A: A6 BE     LDX $BE       ; Tape Input/Output Block count
FA7C: CA        DEX
FA7D: D0 0B     BNE $FA8A
FA7F: A9 08     LDA #$08
FA81: 20 1C FE  JSR $FE1C     ; Control OS Messages
FA84: D0 04     BNE $FA8A

Jump from $FA78:

FA86: A9 00     LDA #$00
FA88: 85 AA     STA $AA       ; RS232 Input Byte Buffer/Tape temporary

Jump from $FA7D, $FA84, $FA93, $FA97, $FAAB, $FAB8, $FABE:

FA8A: 4C BC FE  JMP $FEBC     ; Exit Interrupt

Jump from $FA74:

FA8D: 70 31     BVS $FAC0
FA8F: D0 18     BNE $FAA9
FA91: A5 B5     LDA $B5       ; RS232 Next Bit to send/Tape Read - End of Tape
FA93: D0 F5     BNE $FA8A
FA95: A5 B6     LDA $B6       ; RS232 Output Byte Buffer/Tape Read Error Flag
FA97: D0 F1     BNE $FA8A
FA99: A5 A7     LDA $A7       ; Tape temporary
FA9B: 4A        LSR
FA9C: A5 BD     LDA $BD       ; RS232 Output Parity/Tape Byte temporary
FA9E: 30 03     BMI $FAA3
FAA0: 90 18     BCC $FABA
FAA2: 18        CLC

Jump from $FA9E:

FAA3: B0 15     BCS $FABA
FAA5: 29 0F     AND #$0F
FAA7: 85 AA     STA $AA       ; RS232 Input Byte Buffer/Tape temporary

Jump from $FA8F:

FAA9: C6 AA     DEC $AA       ; RS232 Input Byte Buffer/Tape temporary
FAAB: D0 DD     BNE $FA8A
FAAD: A9 40     LDA #$40
FAAF: 85 AA     STA $AA       ; RS232 Input Byte Buffer/Tape temporary
FAB1: 20 8E FB  JSR $FB8E     ; Reset Tape Pointer
FAB4: A9 00     LDA #$00
FAB6: 85 AB     STA $AB       ; RS232 Input parity/Tape temporary
FAB8: F0 D0     BEQ $FA8A

Jump from $FAA0, $FAA3:

FABA: A9 80     LDA #$80
FABC: 85 AA     STA $AA       ; RS232 Input Byte Buffer/Tape temporary
FABE: D0 CA     BNE $FA8A

Jump from $FA8D:

FAC0: A5 B5     LDA $B5       ; RS232 Next Bit to send/Tape Read - End of Tape
FAC2: F0 0A     BEQ $FACE
FAC4: A9 04     LDA #$04
FAC6: 20 1C FE  JSR $FE1C     ; Control OS Messages
FAC9: A9 00     LDA #$00
FACB: 4C 4A FB  JMP $FB4A

Jump from $FAC2:

FACE: 20 D1 FC  JSR $FCD1     ; Check Read / Write Pointer
FAD1: 90 03     BCC $FAD6
FAD3: 4C 48 FB  JMP $FB48

Jump from $FAD1:

FAD6: A6 A7     LDX $A7       ; Tape temporary
FAD8: CA        DEX
FAD9: F0 2D     BEQ $FB08
FADB: A5 93     LDA $93       ; Flag: 0 = Load, 1 = Verify
FADD: F0 0C     BEQ $FAEB
FADF: A0 00     LDY #$00
FAE1: A5 BD     LDA $BD       ; RS232 Output Parity/Tape Byte temporary
FAE3: D1 AC     CMP ($AC),Y   ; Pointer: Tape Buffer/Screen scrolling
FAE5: F0 04     BEQ $FAEB
FAE7: A9 01     LDA #$01
FAE9: 85 B6     STA $B6       ; RS232 Output Byte Buffer/Tape Read Error Flag

Jump from $FADD, $FAE5:

FAEB: A5 B6     LDA $B6       ; RS232 Output Byte Buffer/Tape Read Error Flag
FAED: F0 4B     BEQ $FB3A
FAEF: A2 3D     LDX #$3D
FAF1: E4 9E     CPX $9E       ; Tape Error log pass 1
FAF3: 90 3E     BCC $FB33
FAF5: A6 9E     LDX $9E       ; Tape Error log pass 1
FAF7: A5 AD     LDA $AD       ; Pointer: Tape Buffer/Screen scrolling
FAF9: 9D 01 01  STA $0101,X   ; 6510 Hardware Stack Area
FAFC: A5 AC     LDA $AC       ; Pointer: Tape Buffer/Screen scrolling
FAFE: 9D 00 01  STA $0100,X   ; 6510 Hardware Stack Area
FB01: E8        INX
FB02: E8        INX
FB03: 86 9E     STX $9E       ; Tape Error log pass 1
FB05: 4C 3A FB  JMP $FB3A

Jump from $FAD9:

FB08: A6 9F     LDX $9F       ; Tape Error log pass 2
FB0A: E4 9E     CPX $9E       ; Tape Error log pass 1
FB0C: F0 35     BEQ $FB43
FB0E: A5 AC     LDA $AC       ; Pointer: Tape Buffer/Screen scrolling
FB10: DD 00 01  CMP $0100,X   ; 6510 Hardware Stack Area
FB13: D0 2E     BNE $FB43
FB15: A5 AD     LDA $AD       ; Pointer: Tape Buffer/Screen scrolling
FB17: DD 01 01  CMP $0101,X   ; 6510 Hardware Stack Area
FB1A: D0 27     BNE $FB43
FB1C: E6 9F     INC $9F       ; Tape Error log pass 2
FB1E: E6 9F     INC $9F       ; Tape Error log pass 2
FB20: A5 93     LDA $93       ; Flag: 0 = Load, 1 = Verify
FB22: F0 0B     BEQ $FB2F
FB24: A5 BD     LDA $BD       ; RS232 Output Parity/Tape Byte temporary
FB26: A0 00     LDY #$00
FB28: D1 AC     CMP ($AC),Y   ; Pointer: Tape Buffer/Screen scrolling
FB2A: F0 17     BEQ $FB43
FB2C: C8        INY
FB2D: 84 B6     STY $B6       ; RS232 Output Byte Buffer/Tape Read Error Flag

Jump from $FB22:

FB2F: A5 B6     LDA $B6       ; RS232 Output Byte Buffer/Tape Read Error Flag
FB31: F0 07     BEQ $FB3A

Jump from $FAF3:

FB33: A9 10     LDA #$10
FB35: 20 1C FE  JSR $FE1C     ; Control OS Messages
FB38: D0 09     BNE $FB43

Jump from $FAED, $FB05, $FB31:

FB3A: A5 93     LDA $93       ; Flag: 0 = Load, 1 = Verify
FB3C: D0 05     BNE $FB43
FB3E: A8        TAY
FB3F: A5 BD     LDA $BD       ; RS232 Output Parity/Tape Byte temporary
FB41: 91 AC     STA ($AC),Y   ; Pointer: Tape Buffer/Screen scrolling

Jump from $FB0C, $FB13, $FB1A, $FB2A, $FB38, $FB3C:

FB43: 20 DB FC  JSR $FCDB     ; Bump Read / Write Pointer
FB46: D0 43     BNE $FB8B

Jump from $FAD3:

FB48: A9 80     LDA #$80

Jump from $FACB:

FB4A: 85 AA     STA $AA       ; RS232 Input Byte Buffer/Tape temporary
FB4C: 78        SEI
FB4D: A2 01     LDX #$01
FB4F: 8E 0D DC  STX $DC0D     ; CIA1: Interrupt (IRQ) Control Register
FB52: AE 0D DC  LDX $DC0D     ; CIA1: Interrupt (IRQ) Control Register
FB55: A6 BE     LDX $BE       ; Tape Input/Output Block count
FB57: CA        DEX
FB58: 30 02     BMI $FB5C
FB5A: 86 BE     STX $BE       ; Tape Input/Output Block count

Jump from $FB58:

FB5C: C6 A7     DEC $A7       ; Tape temporary
FB5E: F0 08     BEQ $FB68
FB60: A5 9E     LDA $9E       ; Tape Error log pass 1
FB62: D0 27     BNE $FB8B
FB64: 85 BE     STA $BE       ; Tape Input/Output Block count
FB66: F0 23     BEQ $FB8B

Jump from $FB5E:

FB68: 20 93 FC  JSR $FC93     ; Restore Normal IRQ
FB6B: 20 8E FB  JSR $FB8E     ; Reset Tape Pointer
FB6E: A0 00     LDY #$00
FB70: 84 AB     STY $AB       ; RS232 Input parity/Tape temporary

Jump from $FB7E:

FB72: B1 AC     LDA ($AC),Y   ; Pointer: Tape Buffer/Screen scrolling
FB74: 45 AB     EOR $AB       ; RS232 Input parity/Tape temporary
FB76: 85 AB     STA $AB       ; RS232 Input parity/Tape temporary
FB78: 20 DB FC  JSR $FCDB     ; Bump Read / Write Pointer
FB7B: 20 D1 FC  JSR $FCD1     ; Check Read / Write Pointer
FB7E: 90 F2     BCC $FB72
FB80: A5 AB     LDA $AB       ; RS232 Input parity/Tape temporary
FB82: 45 BD     EOR $BD       ; RS232 Output Parity/Tape Byte temporary
FB84: F0 05     BEQ $FB8B
FB86: A9 20     LDA #$20
FB88: 20 1C FE  JSR $FE1C     ; Control OS Messages

Jump from $FB46, $FB62, $FB66, $FB84:

FB8B: 4C BC FE  JMP $FEBC     ; Exit Interrupt

    Previous Page / Next Page