]> git.sur5r.net Git - cc65/commitdiff
Interruptor support for all systems.
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 21 Apr 2005 02:10:56 +0000 (02:10 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 21 Apr 2005 02:10:56 +0000 (02:10 +0000)
New HEAP segment.
Both changes by Greg King.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3481 b7a2c559-68d2-44c3-8de9-860c34a00d81

23 files changed:
src/ld65/cfg/apple2-tgi.cfg
src/ld65/cfg/apple2.cfg
src/ld65/cfg/atari.cfg
src/ld65/cfg/atmos.cfg
src/ld65/cfg/bbc.cfg
src/ld65/cfg/c128.cfg
src/ld65/cfg/c16.cfg
src/ld65/cfg/c64.cfg
src/ld65/cfg/cbm510.cfg
src/ld65/cfg/cbm610.cfg
src/ld65/cfg/geos.cfg
src/ld65/cfg/lunix.cfg
src/ld65/cfg/lynx.cfg
src/ld65/cfg/nes.cfg
src/ld65/cfg/none.cfg
src/ld65/cfg/osa65.cfg
src/ld65/cfg/pet.cfg
src/ld65/cfg/plus4.cfg
src/ld65/cfg/supervision.cfg
src/ld65/cfg/supervision128.cfg
src/ld65/cfg/supervision16.cfg
src/ld65/cfg/supervision64.cfg
src/ld65/cfg/vic20.cfg

index 63f0cdbbf15deaead93321df63869bd7da854398..22d1233b4206f3daca96e324b52f771b17f4f2e1 100644 (file)
@@ -12,6 +12,7 @@ SEGMENTS {
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
+    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
@@ -23,6 +24,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 0aeb52aa212abc4548261d73166c4c2cca0573b4..fef2b4e79cc8d261774efae1a25401d1cca68e57 100644 (file)
@@ -12,6 +12,7 @@ SEGMENTS {
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
+    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
@@ -23,6 +24,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 4b90adb48bd4b8b15cf71ea4ac5f6a2da2471ad9..37a0c443116bfcd7242ebd9bb448c583cf11f00a 100644 (file)
@@ -11,6 +11,7 @@ SEGMENTS {
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
+    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
     AUTOSTRT: load = RAM,    type = ro;
 }
@@ -23,6 +24,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 76db35cf4fe541eb78f1422da0e82e20edd95e0d..15ef471d54beffa32f69194796f55745135b5e6e 100644 (file)
@@ -12,6 +12,7 @@ SEGMENTS {
     RODATA:   load = RAM,     type = ro;
     DATA:     load = RAM,     type = rw;
     BSS:      load = RAM,     type = bss, define = yes;
+    HEAP:     load = RAM,     type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,      type = zp;
 }
 FEATURES {
@@ -23,6 +24,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 1965d55e6314c56595d6da43c68131eea95c17b6..e1b2f771f6bd32c3c6e9f07c60310db691d5ecbf 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,6 +22,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 6e3afe5590d44806d8f0196accd26c84df5b2741..295c0b1c5afd72d335037286e8ce9fb164852936 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,7 +22,6 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
-    # condes functions with type 2 are called in the interrupt
     CONDES: segment = RODATA,
            type = interruptor,
            label = __INTERRUPTOR_TABLE__,
index f19f3de075e5130126df896c5b4122558d37d53b..0f1b35d5b56d48e7c77e9c42e6e4d248d415ce62 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,6 +22,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index c77de05974799ef1e098e953ef5e03055cb1553a..2ed1ede15ae8ac4faf23431376cef8901cc0181c 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,7 +22,6 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
-    # condes functions with type 2 are called in the interrupt
     CONDES: segment = RODATA,
            type = interruptor,
            label = __INTERRUPTOR_TABLE__,
index 153b10f03fda129218a63d05b38647ef62256fee..2b15bb926861a49c621df280208eb2ac68097309 100644 (file)
@@ -19,6 +19,7 @@ SEGMENTS {
     RODATA:   load = RAM,      type = ro;
     DATA:     load = RAM,      type = rw;
     BSS:      load = RAM,      type = bss, define = yes;
+    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,       type = zp;
     EXTZP:    load = ZP,       type = rw,  define = yes;
 }
index a4a2519af5d612816613547f5f53d95e81531ea4..497969e1e90c408a322b272ef7fdca99da551cbd 100644 (file)
@@ -17,6 +17,7 @@ SEGMENTS {
     RODATA:   load = RAM,      type = ro;
     DATA:     load = RAM,      type = rw;
     BSS:      load = RAM,      type = bss, define = yes;
+    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,       type = zp;
     EXTZP:    load = ZP,       type = rw,  define = yes;
 }
@@ -29,7 +30,6 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
-    # condes functions with type 2 are called in the interrupt
     CONDES: segment = RODATA,
            type = interruptor,
            label = __INTERRUPTOR_TABLE__,
index ec2081ad840d2f5e9453b1b6cd41b2a649c81789..53e4e09f6ddf4d8167497c3dda3bff491126fdb2 100644 (file)
@@ -12,6 +12,7 @@ SEGMENTS {
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
+    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
     EXTZP:    load = ZP,     type = zp;
 }
@@ -24,6 +25,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $400;      # 1K stack
index ebbf17c9cdb1962fc707b69a272687bd96015fdb..84b721d88c68e47ce22d911cb6e18483c92b4d23 100644 (file)
@@ -22,6 +22,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 FILES {
     %O: format = o65;
index 86b68cc9bede2f0010c2aa3b214982cef55e8cb4..6c087c141f65b54ec63cc3694c6f94d5c60007f2 100644 (file)
@@ -12,6 +12,7 @@ SEGMENTS {
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
+    HEAP:     load = RAM,    type = bss,              optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
     EXTZP:    load = ZP,     type = zp,               optional = yes;
     APPZP:    load = ZP,     type = zp,               optional = yes;
index 9d2fe8f86dc49b5c833c6916abd371740012abab..ebbc32bc72620431ba93772903ed5c1a8cd35ef1 100644 (file)
@@ -43,6 +43,7 @@ SEGMENTS {
     VECTORS:  load = ROMV,            type = rw;
     CHARS:    load = ROM2,            type = rw;
     BSS:      load = RAM,             type = bss, define = yes;
+    HEAP:     load = RAM,             type = bss, optional = yes;
     ZEROPAGE: load = ZP,              type = zp;
 }
 
@@ -55,6 +56,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 
 SYMBOLS {
index f4864c151ce1ef111b6bc0c94cea9490c7e79e46..79b3d4f88164b250a046148e371a53c8a6f539ad 100644 (file)
@@ -9,6 +9,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = rw;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -20,6 +21,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index ee4d2e9483f3bff9b73063af1dbb98faf6917427..c926591c3101dc7b393d87f9217ce2f7d8acdf01 100644 (file)
@@ -9,6 +9,7 @@ SEGMENTS {
     RODATA:   load = COMBINED, type = ro;
     DATA:     load = COMBINED, type = rw,  define = yes;
     BSS:      load = COMBINED, type = bss, define = yes;
+    HEAP:     load = COMBINED, type = bss,               optional = yes;
     ZEROPAGE: load = ZEROPAGE, type = zp;
 }
 FEATURES {
@@ -20,12 +21,18 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 FILES {
     %O: format = o65;
 }
 FORMATS {
-    o65: os = osa65, type = small, extsym = "OSA2KERNAL", extsym = "LIB6502";
+    o65: os = osa65, type = small,
+        import = OSA2KERNAL,
+        import = LIB6502;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index b02fc45ea9e51f59a6755d9ac9380fa965aa8b9f..45727dcbaec20fc94ee5f39b551f781d25d2c626 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,6 +22,10 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 SYMBOLS {
     __STACKSIZE__ = $800;      # 2K stack
index 0f41a05aea1cf2550ee0aee80c6c3870225d3a71..9c434b714d8a13b3c8945eb98a4c6244893717f7 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,7 +22,6 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
-    # condes functions with type 2 are called in the interrupt
     CONDES: segment = RODATA,
            type = interruptor,
            label = __INTERRUPTOR_TABLE__,
index 4037d76299ee7fdf96b5f88b42150f245fa9f071..19c5572ff4eddd5ea3e0b552548a95901121370a 100644 (file)
@@ -19,6 +19,7 @@ SEGMENTS {
     FFF0:     load = ROM,            type = ro,  offset = $7FF0;
     VECTOR:   load = ROM,            type = ro,  offset = $7FFA;
     BSS:      load = RAM,            type = bss, define = yes;
+    HEAP:     load = RAM,            type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,             type = zp,  define = yes;
 }
 
@@ -31,4 +32,8 @@ FEATURES {
             type = destructor,
             label = __DESTRUCTOR_TABLE__,
             count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
index f22aacdaa1834cb5eb34237430124a1efba01eed..fe0b4e39c390270cffe4e6546d0ad3a7dd49b4d2 100644 (file)
@@ -31,5 +31,6 @@ SEGMENTS {
     ZEROPAGE: load = RAM,      type = bss, define = yes;
     DATA:     load = RAM,      type = bss, offset = $0200, define = yes;
     BSS:      load = RAM,      type = bss, define = yes;
+    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
     VECTOR:   load = ROM,      type = ro,  offset = $3FFA;
 }
index 1947b8e55226bc69f16a427b2d725b9cf9e0216d..1dbb8b5201fc0cf3c6a3f6f51ebd50f8bdbeb92b 100644 (file)
@@ -19,6 +19,7 @@ SEGMENTS {
     FFF0:     load = ROM,            type = ro,  offset = $3FF0;
     VECTOR:   load = ROM,            type = ro,  offset = $3FFA;
     BSS:      load = RAM,            type = bss, define = yes;
+    HEAP:     load = RAM,            type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,             type = zp,  define = yes;
 }
 FEATURES {
@@ -30,5 +31,9 @@ FEATURES {
             type = destructor,
             label = __DESTRUCTOR_TABLE__,
             count = __DESTRUCTOR_COUNT__;
+    CONDES: type = interruptor,
+           segment = RODATA,
+           label = __INTERRUPTOR_TABLE__,
+           count = __INTERRUPTOR_COUNT__;
 }
 
index 3628ad969f1c8ce02a6fc45ebf239fbb96487f8e..d8eadb693047ac66dd55d0e04bbc2d5992525fcf 100644 (file)
@@ -6,7 +6,7 @@
 
 MEMORY {
     RAM:      start = $0000, size = $2000;
-    VRAM:     start = $4000, size = $2000;                       
+    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;
     BANKROM3: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
@@ -24,5 +24,6 @@ SEGMENTS {
     ZEROPAGE: load = RAM,      type = bss, define = yes;
     DATA:     load = RAM,      type = bss, offset = $0200, define = yes;
     BSS:      load = RAM,      type = bss, define = yes;
+    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
     VECTOR:   load = ROM,      type = ro,  offset = $3FFA;
 }
index c8398197436c614621ffe747efe8ca56aeb92451..a31f936b9737fa89a37f7ec395ae1296937fe270 100644 (file)
@@ -10,6 +10,7 @@ SEGMENTS {
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
+    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
@@ -21,7 +22,6 @@ FEATURES {
            type = destructor,
            label = __DESTRUCTOR_TABLE__,
            count = __DESTRUCTOR_COUNT__;
-    # condes functions with type 2 are called in the interrupt
     CONDES: segment = RODATA,
            type = interruptor,
            label = __INTERRUPTOR_TABLE__,