mirror of
https://github.com/nippur72/apple1-videocard-lib.git
synced 2024-06-13 01:29:29 +00:00
111 lines
2.2 KiB
Plaintext
111 lines
2.2 KiB
Plaintext
|
processor 6502
|
||
|
|
||
|
#ifdef C64 then include "c64.lm"
|
||
|
#ifdef C64 then org 2049
|
||
|
|
||
|
#ifdef APPLE1 then include "apple1.lm"
|
||
|
#ifdef APPLE1 then org $280
|
||
|
|
||
|
include "macros.lm"
|
||
|
include "macros_16.lm"
|
||
|
|
||
|
dim ptr as word at 254 ; useful zero page pointer
|
||
|
|
||
|
#ifdef C64
|
||
|
basic start
|
||
|
10 sys {main}
|
||
|
basic end
|
||
|
#endif
|
||
|
|
||
|
main:
|
||
|
PRINTMSG #MSG_OK
|
||
|
|
||
|
call save_file
|
||
|
PRINTMSG #MSG_OK
|
||
|
|
||
|
; clears file content at absolute address
|
||
|
ld16 ptr, #file_content
|
||
|
lda #88 ;'X'
|
||
|
for y=#0 to #15
|
||
|
sta (ptr),y
|
||
|
next
|
||
|
|
||
|
; clears file content at relative address
|
||
|
ld16 ptr, #relative_buffer
|
||
|
lda #88 ;'X'
|
||
|
for y=#0 to #15
|
||
|
sta (ptr),y
|
||
|
next
|
||
|
|
||
|
; do not perform VERIFY when loading
|
||
|
ld VERCK, #0
|
||
|
|
||
|
; prints file content loaded at relative address
|
||
|
PRINTMSG #MSG_RELATIVE_IS
|
||
|
PRINTMSG #relative_buffer
|
||
|
PRINTMSG #MSG_ABSOLUTE_IS
|
||
|
PRINTMSG #file_content
|
||
|
|
||
|
call load_file_relative
|
||
|
PRINTMSG #MSG_OK
|
||
|
call load_file_absolute
|
||
|
PRINTMSG #MSG_OK
|
||
|
|
||
|
; prints file content loaded at relative address
|
||
|
PRINTMSG #MSG_RELATIVE_IS
|
||
|
PRINTMSG #relative_buffer
|
||
|
PRINTMSG #MSG_ABSOLUTE_IS
|
||
|
PRINTMSG #file_content
|
||
|
rts
|
||
|
|
||
|
save_file:
|
||
|
JSR InitPia
|
||
|
ld16 FNADR, #file_name_test
|
||
|
call CalcFileNameLength
|
||
|
ld16 STAL, #file_content
|
||
|
ld16 EAL, #file_content_end
|
||
|
ld FA, #8
|
||
|
ld SA, #1
|
||
|
call SAVE
|
||
|
rts
|
||
|
|
||
|
load_file_relative:
|
||
|
JSR InitPia
|
||
|
ld16 FNADR, #file_name_test
|
||
|
call CalcFileNameLength
|
||
|
ld16 MEMUSS, #relative_buffer
|
||
|
ld FA, #8
|
||
|
ld SA, #0
|
||
|
call LOAD
|
||
|
rts
|
||
|
|
||
|
load_file_absolute:
|
||
|
JSR InitPia
|
||
|
ld16 FNADR, #file_name_test
|
||
|
call CalcFileNameLength
|
||
|
ld FA, #8
|
||
|
ld SA, #1
|
||
|
call LOAD
|
||
|
rts
|
||
|
|
||
|
include "kernal.lm"
|
||
|
|
||
|
#ifdef APPLE1 then include "apple1_code.lm"
|
||
|
|
||
|
file_name_test:
|
||
|
byte "prova",0
|
||
|
|
||
|
file_content:
|
||
|
byte "0123456789ABCDEF"
|
||
|
file_content_end:
|
||
|
byte 13,0 ; filler that allows print as string
|
||
|
|
||
|
relative_buffer:
|
||
|
byte "----------------"
|
||
|
relative_buffer_end:
|
||
|
byte 13,0 ; filler that allows print as string
|
||
|
|
||
|
MSG_OK: byte "OK", 13, 13, 0
|
||
|
MSG_RELATIVE_IS: byte "RELATIVE IS: ",0
|
||
|
MSG_ABSOLUTE_IS: byte "ABSOLUTE IS: ",0
|