]> git.sur5r.net Git - cc65/commitdiff
Changed the startup module and the linker config for the Commodore VIC to use
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 17 Nov 2010 13:35:43 +0000 (13:35 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 17 Nov 2010 13:35:43 +0000 (13:35 +0000)
the common loadaddr and exehdr modules.

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

libsrc/vic20/crt0.s
src/ld65/cfg/vic20-32k.cfg
src/ld65/cfg/vic20.cfg

index 4b1673780c27d79e54bf08eb974a5dcbb3a83511..f2b01c9e860230ecac3a817a47223c67d7750498 100644 (file)
         .include        "zeropage.inc"
        .include        "vic20.inc"
 
-; ------------------------------------------------------------------------
-; BASIC header with a SYS call
-
-.segment               "EXEHDR"
-
-        .word   Head            ; Load address
-Head:   .word   @Next
-        .word   .version        ; Line number
-        .byte   $9E             ; SYS token
-        .byte   <(((Start /  1000) .mod 10) + '0')
-        .byte   <(((Start /   100) .mod 10) + '0')
-        .byte   <(((Start /    10) .mod 10) + '0')
-        .byte   <(((Start /     1) .mod 10) + '0')
-        .byte   $00             ; End of BASIC line
-@Next:  .word   0               ; BASIC end marker
-
 ; ------------------------------------------------------------------------
 ; Startup code
 
index de75900cdbdba78c3e8e3323d3ad1a51bb3bd17c..8672fef6aa86de0b00acb58df5f454ef2e69c966 100644 (file)
@@ -1,25 +1,28 @@
 # Memory configuration for the VIC-20 with 32K RAM Cartridge
 # Contributed by Stefan Haubenthal
-
 SYMBOLS {
+    __LOADADDR__:  type = import;
+    __EXEHDR__:    type = import;
     __STACKSIZE__: type = weak, value = $0400; # 1k stack
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0002, size = $001A;
-    HEADER: file = %O,               start = $11FF, size = $000E;
-    RAM:    file = %O, define = yes, start = $120D, size = $6DF3 - __STACKSIZE__;
+    ZP:       file = "", define = yes, start = $0002, size = $001A;
+    LOADADDR: file = %O,               start = $11FF, size = $0002;
+    HEADER:   file = %O,               start = $1201, size = $000C;
+    RAM:      file = %O, define = yes, start = $120D, size = $6DF3 - __STACKSIZE__;
 }
 SEGMENTS {
-    EXEHDR:   load = HEADER, 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;
-    BSS:      load = RAM,    type = bss, define = yes;
-    ZEROPAGE: load = ZP,     type = zp;
+    LOADADDR: load = LOADADDR, type = ro;
+    EXEHDR:   load = HEADER,   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;
+    BSS:      load = RAM,      type = bss, define = yes;
+    ZEROPAGE: load = ZP,       type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
index dd8ecbcab90445e346cb14d8b6916f04978a2628..4c8776e9d97f98b02b37dc738c0f8e77a31074a7 100644 (file)
@@ -1,22 +1,26 @@
 SYMBOLS {
+    __LOADADDR__:  type = import;
+    __EXEHDR__:    type = import;
     __STACKSIZE__: type = weak, value = $0400; # 1k stack
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0002, size = $001A;
-    HEADER: file = %O,               start = $0FFF, size = $000E;
-    RAM:    file = %O, define = yes, start = $100D, size = $0DF3 - __STACKSIZE__;
+    ZP:       file = "", define = yes, start = $0002, size = $001A;
+    LOADADDR: file = %O,               start = $0FFF, size = $0002;
+    HEADER:   file = %O,               start = $1001, size = $000C;
+    RAM:      file = %O, define = yes, start = $100D, size = $0DF3 - __STACKSIZE__;
 }
 SEGMENTS {
-    EXEHDR:   load = HEADER, 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;
-    BSS:      load = RAM,    type = bss, define = yes;
-    ZEROPAGE: load = ZP,     type = zp;
+    LOADADDR: load = LOADADDR, type = ro;
+    EXEHDR:   load = HEADER,   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;
+    BSS:      load = RAM,      type = bss, define = yes;
+    ZEROPAGE: load = ZP,       type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,