mirror of
https://github.com/cc65/cc65.git
synced 2024-12-28 06:30:16 +00:00
atari-asm.cfg linker config file
This commit is contained in:
parent
bf3a23c34c
commit
b153ec8896
30
cfg/atari-asm.cfg
Normal file
30
cfg/atari-asm.cfg
Normal file
@ -0,0 +1,30 @@
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $2E00;
|
||||
}
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", define = yes, start = $0082, size = $007E;
|
||||
|
||||
# file header, just $FFFF
|
||||
HEADER: file = %O, start = $0000, size = $0002;
|
||||
|
||||
# "main program" load chunk
|
||||
MAINHDR: file = %O, start = $0000, size = $0004;
|
||||
RAM: file = %O, define = yes, start = %S, size = $BC20 - %S;
|
||||
TRAILER: file = %O, start = $0000, size = $0006;
|
||||
}
|
||||
SEGMENTS {
|
||||
EXEHDR: load = HEADER, type = ro, optional = yes;
|
||||
MAINHDR: load = MAINHDR, type = ro, optional = yes;
|
||||
CODE: load = RAM, type = ro, define = yes, optional = yes;
|
||||
RODATA: load = RAM, type = ro optional = yes;
|
||||
DATA: load = RAM, type = rw optional = yes;
|
||||
BSS: load = RAM, type = bss, define = yes, optional = yes;
|
||||
ZEROPAGE: load = ZP, type = zp;
|
||||
AUTOSTRT: load = TRAILER, type = ro, optional = yes;
|
||||
}
|
@ -2,11 +2,14 @@ FEATURES {
|
||||
STARTADDRESS: default = $2000;
|
||||
}
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__OVERLAYSIZE__: type = weak, value = $1000; # 4k overlay
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__RESERVED_MEMORY__: type = weak, value = $0000;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", define = yes, start = $0082, size = $007E;
|
||||
|
@ -2,10 +2,13 @@ FEATURES {
|
||||
STARTADDRESS: default = $2000;
|
||||
}
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__RESERVED_MEMORY__: type = weak, value = $0000;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", define = yes, start = $0082, size = $007E;
|
||||
|
@ -8,9 +8,12 @@ FEATURES {
|
||||
}
|
||||
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
sramprep: type = import; # force inclusion of SRPREP
|
||||
}
|
||||
|
||||
|
@ -3,10 +3,13 @@ FEATURES {
|
||||
}
|
||||
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__OVERLAYSIZE__: type = weak, value = $1000; # 4k overlay
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
sramprep: type = import; # force inclusion of SRPREP
|
||||
}
|
||||
|
||||
|
@ -3,9 +3,12 @@ FEATURES {
|
||||
}
|
||||
|
||||
SYMBOLS {
|
||||
__EXEHDR__: type = import;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
__MAINCHNKHDR__: type = import;
|
||||
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
|
||||
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
||||
__STARTADDRESS__: type = export, value = %S;
|
||||
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
|
||||
sramprep: type = import; # force inclusion of SRPREP
|
||||
}
|
||||
|
||||
|
@ -8,12 +8,11 @@
|
||||
; Stefan Haubenthal
|
||||
;
|
||||
|
||||
.export _exit
|
||||
.export __STARTUP__ : absolute = 1 ; Mark as startup
|
||||
.export _exit, start
|
||||
|
||||
.import initlib, donelib
|
||||
.import callmain, zerobss
|
||||
.import __STARTUP_LOAD__, __BSS_LOAD__
|
||||
.import __RESERVED_MEMORY__
|
||||
.import __RAM_START__, __RAM_SIZE__
|
||||
.ifdef __ATARIXL__
|
||||
@ -28,19 +27,6 @@
|
||||
.include "atari.inc"
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; EXE header
|
||||
|
||||
.segment "EXEHDR"
|
||||
|
||||
.word $FFFF
|
||||
|
||||
.segment "MAINHDR"
|
||||
|
||||
.word __STARTUP_LOAD__
|
||||
.word __BSS_LOAD__ - 1
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; Actual code
|
||||
|
||||
.segment "STARTUP"
|
||||
|
||||
@ -212,9 +198,3 @@ LMARGN_save: .res 1
|
||||
.ifndef __ATARIXL__
|
||||
APPMHI_save: .res 2
|
||||
.endif
|
||||
|
||||
|
||||
.segment "AUTOSTRT"
|
||||
.word RUNAD ; defined in atari.inc
|
||||
.word RUNAD+1
|
||||
.word start
|
||||
|
8
libsrc/atari/exehdr.s
Normal file
8
libsrc/atari/exehdr.s
Normal file
@ -0,0 +1,8 @@
|
||||
; This file defines the EXE header for Atari executables
|
||||
|
||||
.export __EXEHDR__: absolute = 1
|
||||
|
||||
.segment "EXEHDR"
|
||||
|
||||
.word $FFFF
|
||||
|
12
libsrc/atari/exetrailer.s
Normal file
12
libsrc/atari/exetrailer.s
Normal file
@ -0,0 +1,12 @@
|
||||
; This file defines the EXE file "trailer" which sets the entry point
|
||||
|
||||
.export __AUTOSTART__: absolute = 1
|
||||
.import start
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
.segment "AUTOSTRT"
|
||||
.word RUNAD ; defined in atari.inc
|
||||
.word RUNAD+1
|
||||
.word start
|
||||
|
9
libsrc/atari/mainhdr.s
Normal file
9
libsrc/atari/mainhdr.s
Normal file
@ -0,0 +1,9 @@
|
||||
; This file defines the chunk header for the main program load chunk
|
||||
|
||||
.export __MAINCHNKHDR__: absolute = 1
|
||||
.import __RAM_START__, __BSS_LOAD__
|
||||
|
||||
.segment "MAINHDR"
|
||||
|
||||
.word __RAM_START__
|
||||
.word __BSS_LOAD__ - 1
|
Loading…
Reference in New Issue
Block a user