]> git.sur5r.net Git - cc65/blobdiff - cfg/atmos.cfg
Add a goto indirect jump from pointer
[cc65] / cfg / atmos.cfg
index 137c0e9a9d617aeb83bb74f2d08d5371484ce754..35f184f4f9b09f0e6af43075d31eae96e63e42ed 100644 (file)
@@ -1,28 +1,38 @@
 SYMBOLS {
-    __STACKSIZE__: type = weak, value = $0800; # 2k stack
+    __TAPEHDR__:   type = import;
+    __BASHDR__:    type = import;
+    __PROGFLAG__:  type = weak, value = $00; # $00=BASIC, $80=machine code
+    __AUTORUN__:   type = weak, value = $00; # $00=only load, $C7=run
+    __STACKSIZE__: type = weak, value = $0800; # 2K stack
+    __GRAB__:      type = weak, value = 0; # 0=don't grab graphics RAM, 1=grab graphics RAM
+    __RAMEND__:    type = weak, value = $9800 + $1C00 * __GRAB__;
 }
 MEMORY {
-    ZP:      file = "", define = yes, start = $00E2, size = $001A;
-    TAPEHDR: file = %O, type   = ro,  start = $0000, size = $0011;
-    RAM:     file = %O, define = yes, start = $0500, size = $9300 - __STACKSIZE__;
+    ZP:      file = "", define = yes, start = $00E2,            size = $001A;
+    TAPEHDR: file = %O, type   = ro,  start = $0000,            size = $001F;
+    BASHEAD: file = %O, define = yes, start = $0501,            size = $000D;
+    MAIN:    file = %O, define = yes, start = __BASHEAD_LAST__, size = __RAMEND__ - __MAIN_START__;
+    BSS:     file = "",               start = __ONCE_RUN__,     size = __RAMEND__ - __STACKSIZE__ - __ONCE_RUN__;
 }
 SEGMENTS {
-    TAPEHDR:  load = TAPEHDR, type = ro;
-    STARTUP:  load = RAM,     type = ro;
-    LOWCODE:  load = RAM,     type = ro,                optional = yes;
-    INIT:     load = RAM,     type = ro,  define = yes, optional = yes;
-    CODE:     load = RAM,     type = ro;
-    RODATA:   load = RAM,     type = ro;
-    DATA:     load = RAM,     type = rw;
-    ZPSAVE:   load = RAM,     type = bss, define = yes;
-    BSS:      load = RAM,     type = bss, define = yes;
     ZEROPAGE: load = ZP,      type = zp;
+    TAPEHDR:  load = TAPEHDR, type = ro;
+    BASHDR:   load = BASHEAD, type = ro,  optional = yes;
+    STARTUP:  load = MAIN,    type = ro;
+    LOWCODE:  load = MAIN,    type = ro,  optional = yes;
+    CODE:     load = MAIN,    type = ro;
+    RODATA:   load = MAIN,    type = ro;
+    DATA:     load = MAIN,    type = rw;
+    INIT:     load = MAIN,    type = rw;
+    ONCE:     load = MAIN,    type = ro,  define   = yes;
+    BASTAIL:  load = MAIN,    type = ro,  optional = yes;
+    BSS:      load = BSS,     type = bss, define   = yes;
 }
 FEATURES {
     CONDES: type    = constructor,
             label   = __CONSTRUCTOR_TABLE__,
             count   = __CONSTRUCTOR_COUNT__,
-            segment = INIT;
+            segment = ONCE;
     CONDES: type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__,