====== Loading a file to memory at address stored in file ====== BASIC code: LOAD "JUST A FILENAME",8,1 Assembler code: LDA #fname_end-fname LDX #fname JSR $FFBD ; call SETNAM LDA #$01 LDX $BA ; last used device number BNE .skip LDX #$08 ; default to device 8 .skip LDY #$01 ; not $01 means: load to address stored in file JSR $FFBA ; call SETLFS LDA #$00 ; $00 means: load to memory (not verify) JSR $FFD5 ; call LOAD BCS .error ; if carry set, a load error has happened RTS .error ; Accumulator contains BASIC error code ; most likely errors: ; A = $05 (DEVICE NOT PRESENT) ; A = $04 (FILE NOT FOUND) ; A = $1D (LOAD ERROR) ; A = $00 (BREAK, RUN/STOP has been pressed during loading) ... error handling ... RTS fname: .TEXT "JUST A FILENAME" fname_end: ====== Loading a file to memory at a specified address====== BASIC code: LOAD "JUST A FILENAME",8 Assembler code: load_address = $2000 ; just an example LDA #fname_end-fname LDX #fname JSR $FFBD ; call SETNAM LDA #$01 LDX $BA ; last used device number BNE .skip LDX #$08 ; default to device 8 .skip LDY #$00 ; $00 means: load to new address JSR $FFBA ; call SETLFS LDX #load_address LDA #$00 ; $00 means: load to memory (not verify) JSR $FFD5 ; call LOAD BCS .error ; if carry set, a load error has happened RTS .error ; Accumulator contains BASIC error code ; most likely errors: ; A = $05 (DEVICE NOT PRESENT) ; A = $04 (FILE NOT FOUND) ; A = $1D (LOAD ERROR) ; A = $00 (BREAK, RUN/STOP has been pressed during loading) ... error handling ... RTS fname: .TEXT "JUST A FILENAME" fname_end: