$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