$F34A/62282: Open File
F34A: A6 B8 LDX $B8 ; Current File - Logical File number
F34C: D0 03 BNE $F351
F34E: 4C 0A F7 JMP $F70A ; Output I/O Error Messages: 'NOT INPUT FILE'
Jump from $F34C:
F351: 20 0F F3 JSR $F30F ; Find File
F354: D0 03 BNE $F359
F356: 4C FE F6 JMP $F6FE ; Output I/O Error Messages: 'FILE OPEN'
Jump from $F354:
F359: A6 98 LDX $98 ; Number of Open Files/Index to File Table
F35B: E0 0A CPX #$0A
F35D: 90 03 BCC $F362
F35F: 4C FB F6 JMP $F6FB ; Output I/O Error Messages: 'TOO MANY FILES'
Jump from $F35D:
F362: E6 98 INC $98 ; Number of Open Files/Index to File Table
F364: A5 B8 LDA $B8 ; Current File - Logical File number
F366: 9D 59 02 STA $0259,X ; Active logical File numbers
F369: A5 B9 LDA $B9 ; Current File - Secondary Address
F36B: 09 60 ORA #$60
F36D: 85 B9 STA $B9 ; Current File - Secondary Address
F36F: 9D 6D 02 STA $026D,X ; Active File Secondary Addresses
F372: A5 BA LDA $BA ; Current File - First Address (Device number)
F374: 9D 63 02 STA $0263,X ; Active File First Addresses (Device numbers)
F377: F0 5A BEQ $F3D3
F379: C9 03 CMP #$03
F37B: F0 56 BEQ $F3D3
F37D: 90 05 BCC $F384
F37F: 20 D5 F3 JSR $F3D5 ; Send Secondary Address
F382: 90 4F BCC $F3D3
Jump from $F37D:
F384: C9 02 CMP #$02
F386: D0 03 BNE $F38B
* SX64:
F386: D0 08 BNE $F390
F388: 4C 09 F4 JMP $F409 ; Open RS232
Jump from $F386:
F38B: 20 D0 F7 JSR $F7D0 ; Get Buffer Address
F38E: B0 03 BCS $F393
Jump from $F386 (SX64):
F390: 4C 13 F7 JMP $F713 ; Output I/O Error Messages: 'ILLEGAL DEVICE NUMBER'
Jump from $F38E:
F393: A5 B9 LDA $B9 ; Current File - Secondary Address
F395: 29 0F AND #$0F
F397: D0 1F BNE $F3B8
F399: 20 17 F8 JSR $F817 ; Print "PRESS PLAY ON TAPE"
F39C: B0 36 BCS $F3D4
F39E: 20 AF F5 JSR $F5AF ; Print "SEARCHING"
F3A1: A5 B7 LDA $B7 ; Number of Characters in Filename
F3A3: F0 0A BEQ $F3AF
F3A5: 20 EA F7 JSR $F7EA ; Find Specific Tape Header
F3A8: 90 18 BCC $F3C2
F3AA: F0 28 BEQ $F3D4
Jump from $F3B6:
F3AC: 4C 04 F7 JMP $F704 ; Output I/O Error Messages: 'FILE NOT FOUND'
Jump from $F3A3:
F3AF: 20 2C F7 JSR $F72C ; Find Any Tape Header
F3B2: F0 20 BEQ $F3D4
F3B4: 90 0C BCC $F3C2
F3B6: B0 F4 BCS $F3AC
Jump from $F397:
F3B8: 20 38 F8 JSR $F838 ; Print "PRESS RECORD..."
F3BB: B0 17 BCS $F3D4
F3BD: A9 04 LDA #$04
F3BF: 20 6A F7 JSR $F76A ; Write Tape Header
Jump from $F3A8, $F3B4:
F3C2: A9 BF LDA #$BF
F3C4: A4 B9 LDY $B9 ; Current File - Secondary Address
F3C6: C0 60 CPY #$60
F3C8: F0 07 BEQ $F3D1
F3CA: A0 00 LDY #$00
F3CC: A9 02 LDA #$02
F3CE: 91 B2 STA ($B2),Y ; Pointer: Start Address of Tape Buffer
F3D0: 98 TYA
Jump from $F3C8:
F3D1: 85 A6 STA $A6 ; Pointer: Tape I/O buffer
Jump from $F377, $F37B, $F382, $F3D7, $F3DB:
F3D3: 18 CLC
Jump from $F39C, $F3AA, $F3B2, $F3BB:
F3D4: 60 RTS
Previous Page / Next Page