1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00

Merge pull request #56 from groessler/something_to_pull

atari-asm.cfg
This commit is contained in:
Oliver Schmidt 2013-10-18 06:51:53 -07:00
commit 9a3ca6769a
10 changed files with 69 additions and 27 deletions

29
cfg/atari-asm.cfg Normal file
View File

@ -0,0 +1,29 @@
FEATURES {
STARTADDRESS: default = $2E00;
}
SYMBOLS {
__EXEHDR__: 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;
}

View File

@ -2,11 +2,13 @@ FEATURES {
STARTADDRESS: default = $2000;
}
SYMBOLS {
__EXEHDR__: type = import;
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
__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;
syschk: type = import; # force inclusion of SYSCHK
}
MEMORY {
ZP: file = "", define = yes, start = $0082, size = $007E;

View File

@ -2,10 +2,12 @@ FEATURES {
STARTADDRESS: default = $2000;
}
SYMBOLS {
__EXEHDR__: type = import;
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
__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;
syschk: type = import; # force inclusion of SYSCHK
}
MEMORY {
ZP: file = "", define = yes, start = $0082, size = $007E;

View File

@ -8,9 +8,11 @@ FEATURES {
}
SYMBOLS {
__EXEHDR__: type = import;
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
__STACKSIZE__: type = weak, value = $0800; # 2k stack
__STARTADDRESS__: type = export, value = %S;
syschk: type = import; # force inclusion of SYSCHK
sramprep: type = import; # force inclusion of SRPREP
}

View File

@ -3,10 +3,12 @@ FEATURES {
}
SYMBOLS {
__EXEHDR__: type = import;
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
__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;
syschk: type = import; # force inclusion of SYSCHK
sramprep: type = import; # force inclusion of SRPREP
}

View File

@ -3,9 +3,11 @@ FEATURES {
}
SYMBOLS {
__EXEHDR__: type = import;
__SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
__AUTOSTART__: type = import; # force inclusion of autostart "trailer"
__STACKSIZE__: type = weak, value = $0800; # 2k stack
__STARTADDRESS__: type = export, value = %S;
syschk: type = import; # force inclusion of SYSCHK
sramprep: type = import; # force inclusion of SRPREP
}

View File

@ -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

11
libsrc/atari/exehdr.s Normal file
View File

@ -0,0 +1,11 @@
; This file defines the EXE header and main chunk load header for Atari executables
.export __EXEHDR__: absolute = 1
.import __RAM_START__, __BSS_LOAD__
.segment "EXEHDR"
.word $FFFF
.segment "MAINHDR"
.word __RAM_START__
.word __BSS_LOAD__ - 1

12
libsrc/atari/exetrailer.s Normal file
View 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

View File

@ -16,7 +16,7 @@
;DEBUG = 1
.export syschk
.export __SYSTEM_CHECK__: absolute = 1
.import __SYSCHK_LOAD__
.import __STARTADDRESS__