# make sure the halves are mirrored in the 64kbyte cartridge image
 # or reset from code >0xc000 and switch bank to the 3rd bank
 
+SYMBOLS {
+    __STACKSIZE__: type = weak, value = $0100; # 1 page stack
+}
 MEMORY {
     ZP:       file = "", start = $0000, size = $0100;
     CPUSTACK: file = "", start = $0100, size = $0100;
-    RAM:      file = "", start = $0200, size = $1E00, define = yes;
+    RAM:      file = "", start = $0200, size = $1E00 - __STACKSIZE__;
     VRAM:     file = "", start = $4000, size = $2000;
     ROM:      file = %O, start = $8000, size = $8000, fill = yes, fillval = $FF, define = yes;
 }