]> git.sur5r.net Git - cc65/commitdiff
Exclude (small) stack from RAM memory area (like on most other targets) to make expli...
authorol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Oct 2010 10:20:00 +0000 (10:20 +0000)
committerol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 2 Oct 2010 10:20:00 +0000 (10:20 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4820 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/supervision/crt0.s
src/ld65/cfg/supervision-128k.cfg
src/ld65/cfg/supervision-16k.cfg
src/ld65/cfg/supervision-64k.cfg

index 6a3614476f3f25b376861f40aef4ea8e061b98c2..bb82de3ee08a29e06a02d7e81fb2515de676c1e7 100644 (file)
@@ -9,6 +9,7 @@
         .import         initlib, donelib, copydata
         .import         zerobss
        .import         __RAM_START__, __RAM_SIZE__     ; Linker generated
+       .import         __STACKSIZE__                   ; Linker generated
 
        .include "zeropage.inc"
        .include "supervision.inc"
@@ -30,9 +31,9 @@ reset:
        ; 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
index 7f3ee51ccb489a46c5f69218f747467c698a15b9..0c2d1b36bd7638a05a5c7498cfd4230948818c26 100644 (file)
@@ -4,8 +4,11 @@
 # 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;
index 5ec5db54e54d22e3b69bdcf7e3361f8cad85b2f0..791133e7b2cff287d7f6a2b19e4d951ccc420d8e 100644 (file)
@@ -2,14 +2,17 @@
 
 # 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;
index 4cafdecae986acdc257eb1ffefd2ab5ebd427fdd..6ae5872966f3b2e32a3e405be3e2243313b85a86 100644 (file)
@@ -4,8 +4,11 @@
 # 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;