.import initlib, donelib
.import zerobss, push0
.import _main
- .import __RAM_START__, __RAM_SIZE__ ; Linker generated
+ .import __RAM_START__, __RAM_SIZE__ ; Linker generated
.include "zeropage.inc"
- .include "vic20.inc"
- .include "../cbm/cbm.inc"
-
-.code
+ .include "vic20.inc"
+ .include "../cbm/cbm.inc"
; ------------------------------------------------------------------------
; BASIC header with a SYS call
- .org $FFF
+.segment "EXEHDR"
.word Head ; Load address
Head: .word @Next
.word 1000 ; Line number
- .byte $9E,"4109" ; SYS 4109
+ .byte $9E ; SYS token
+ .byte <(((@Start / 1000) .mod 10) + $30)
+ .byte <(((@Start / 100) .mod 10) + $30)
+ .byte <(((@Start / 10) .mod 10) + $30)
+ .byte <(((@Start / 1) .mod 10) + $30)
.byte $00 ; End of BASIC line
@Next: .word 0 ; BASIC end marker
- .reloc
+@Start:
; ------------------------------------------------------------------------
; Actual code
+.code
+
ldx #zpspace-1
L1: lda sp,x
sta zpsave,x ; Save the zero page locations we need
RAM: start = $FFF, size = $0E01, define = yes, file = %O;
}
SEGMENTS {
+ EXEHDR: load = RAM , type = wprot;
CODE: load = RAM, type = wprot;
RODATA: load = RAM, type = wprot;
DATA: load = RAM, type = rw;