59 lines
763 B
ArmAsm
59 lines
763 B
ArmAsm
// #LAYOUT# STD * #TAKE
|
|
// #LAYOUT# * BASIC_0 #TAKE
|
|
// #LAYOUT# * * #IGNORE
|
|
|
|
//
|
|
// Fetches file name, Carry set if not found
|
|
//
|
|
|
|
|
|
fetch_filename:
|
|
|
|
// Check if end of statement
|
|
|
|
jsr end_of_statement_check
|
|
bcs fetch_filename_done
|
|
|
|
// Search for opening quote
|
|
|
|
jsr fetch_character
|
|
cmp #$22
|
|
bne_16 do_SYNTAX_error
|
|
|
|
// Filename starts here so set pointer
|
|
|
|
lda TXTPTR+0
|
|
sta FNADDR+0
|
|
lda TXTPTR+1
|
|
sta FNADDR+1
|
|
|
|
// Now search for end of line or closing quote
|
|
// so that we know the length of the filename
|
|
|
|
lda #$00
|
|
sta FNLEN
|
|
!:
|
|
jsr fetch_character
|
|
cmp #$22
|
|
beq fetch_filename_fail
|
|
cmp #$00
|
|
beq !+
|
|
|
|
inc FNLEN
|
|
bne !-
|
|
|
|
!:
|
|
jsr unconsume_character
|
|
|
|
// FALLTROUGH
|
|
|
|
fetch_filename_fail:
|
|
|
|
clc
|
|
|
|
// FALLTROUGH
|
|
|
|
fetch_filename_done:
|
|
|
|
rts
|