apple1-videocard-lib/demos/iec/iec.lm

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