mirror of
https://github.com/cc65/cc65.git
synced 2025-01-11 11:30:13 +00:00
Changed the startup module and the linker config for the Commodore PET to use
the common loadaddr and exehdr modules. git-svn-id: svn://svn.cc65.org/cc65/trunk@4873 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
7252f071a2
commit
9a9cea5a61
@ -14,22 +14,6 @@
|
|||||||
.include "pet.inc"
|
.include "pet.inc"
|
||||||
.include "../cbm/cbm.inc"
|
.include "../cbm/cbm.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
|
; Startup code
|
||||||
|
|
||||||
|
@ -1,22 +1,26 @@
|
|||||||
SYMBOLS {
|
SYMBOLS {
|
||||||
|
__LOADADDR__: type = import;
|
||||||
|
__EXEHDR__: type = import;
|
||||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||||
}
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: file = "", define = yes, start = $0055, size = $001A;
|
ZP: file = "", define = yes, start = $0055, size = $001A;
|
||||||
HEADER: file = %O, start = $03FF, size = $000E;
|
LOADADDR: file = %O, start = $03FF, size = $0002;
|
||||||
RAM: file = %O, start = $040D, size = $7BF3 - __STACKSIZE__;
|
HEADER: file = %O, start = $0401, size = $000C;
|
||||||
|
RAM: file = %O, start = $040D, size = $7BF3 - __STACKSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
EXEHDR: load = HEADER, type = ro;
|
LOADADDR: load = LOADADDR, type = ro;
|
||||||
STARTUP: load = RAM, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
LOWCODE: load = RAM, type = ro, optional = yes;
|
STARTUP: load = RAM, type = ro;
|
||||||
INIT: load = RAM, type = ro, define = yes, optional = yes;
|
LOWCODE: load = RAM, type = ro, optional = yes;
|
||||||
CODE: load = RAM, type = ro;
|
INIT: load = RAM, type = ro, define = yes, optional = yes;
|
||||||
RODATA: load = RAM, type = ro;
|
CODE: load = RAM, type = ro;
|
||||||
DATA: load = RAM, type = rw;
|
RODATA: load = RAM, type = ro;
|
||||||
ZPSAVE: load = RAM, type = bss;
|
DATA: load = RAM, type = rw;
|
||||||
BSS: load = RAM, type = bss, define = yes;
|
ZPSAVE: load = RAM, type = bss;
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
BSS: load = RAM, type = bss, define = yes;
|
||||||
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
CONDES: segment = INIT,
|
CONDES: segment = INIT,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user