$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