.include "zeropage.inc"
.include "atari.inc"
+ .include "save_area.inc"
; ------------------------------------------------------------------------
; EXE header
.segment "EXEHDR"
.word $FFFF
+
+.if .defined(__ATARIXL__)
+.segment "MAINHDR"
+.endif
+
.word __STARTUP_LOAD__
.word __ZPSAVE_LOAD__ - 1
tsx
stx spsave
+.if .not .defined(__ATARIXL__)
+
; Report memory usage
lda APPMHI
sta APPMHI+1
sta sp+1 ; setup runtime stack part 2
+.else
+
+ ; for now... needs to use value from linker script later
+ lda MEMTOP
+ sta sp
+ lda MEMTOP+1
+ sta sp+1
+
+.endif
+
; Call module constructors
jsr initlib
lda old_shflok
sta SHFLOK
+.if .not .defined(__ATARIXL__)
+
; Restore APPMHI
lda appmsav
lda appmsav+1
sta APPMHI+1
+.else
+
+; Atari XL target stuff...
+
+ lda PORTB_save
+ sta PORTB
+ lda MEMTOP_save
+ sta MEMTOP
+ lda MEMTOP_save+1
+ sta MEMTOP+1
+ lda APPMHI_save
+ sta APPMHI
+ lda APPMHI_save+1
+ sta APPMHI+1
+.endif
+
+
; Copy back the zero page stuff
ldx #zpspace-1