.import initlib, donelib, copydata
.import zerobss
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
+ .import __STACKSIZE__ ; Linker generated
.include "zeropage.inc"
.include "supervision.inc"
; initialize data
jsr copydata
- lda #>(__RAM_START__ + __RAM_SIZE__)
+ lda #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
sta sp+1 ; Set argument stack ptr
- stz sp ; #<(__RAM_START__ + __RAM_SIZE__)
+ stz sp ; #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
jsr initlib
jsr _main
_exit: jsr donelib
# ld65 config file
# ld65 --config supervision.cfg -o <prog>.bin <prog>.o
+SYMBOLS {
+ __STACKSIZE__: value = $0100, weak = yes; # 1 page stack
+}
MEMORY {
- RAM: start = $0000, size = $2000;
+ RAM: start = $0000, size = $2000 - __STACKSIZE__;
VRAM: start = $4000, size = $2000;
BANKROM1: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
BANKROM2: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
# ld65 config file
# ld65 --config supervision16.cfg -o <prog>.bin <prog>.o
+
+SYMBOLS {
+ __STACKSIZE__: value = $0100, weak = yes; # 1 page stack
+}
MEMORY {
ZP: start = $0000, size = $0100;
CPUSTACK: start = $0100, size = $0100;
- RAM: start = $0200, size = $1E00;
+ RAM: start = $0200, size = $1E00 - __STACKSIZE__;
VRAM: start = $4000, size = $2000;
ROM: start = $C000, size = $4000, fill = yes, fillval = $ff, file=%O, define=yes;
}
-
SEGMENTS {
LOWCODE: load = ROM, type = ro, optional = yes;
INIT: load = ROM, type = ro, define = yes, optional = yes;
# ld65 config file
# ld65 --config supervision.cfg -o <prog>.bin <prog>.o
+SYMBOLS {
+ __STACKSIZE__: value = $0100, weak = yes; # 1 page stack
+}
MEMORY {
- RAM: start = $0000, size = $2000;
+ RAM: start = $0000, size = $2000 - __STACKSIZE__;
VRAM: start = $4000, size = $2000;
BANKROM1: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
BANKROM2: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;