1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-29 13:31:59 +00:00

Moved Apple EXEHDR to separate module (similiar to CBMs).

git-svn-id: svn://svn.cc65.org/cc65/trunk@5708 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
ol.sc 2012-06-10 21:05:51 +00:00
parent cf509a775d
commit 9cc99876b2
14 changed files with 37 additions and 16 deletions

View File

@ -72,6 +72,7 @@ S_OBJS= _scrsize.o \
dosdetect.o \ dosdetect.o \
drives.o \ drives.o \
exec.o \ exec.o \
exehdr.o \
filedes.o \ filedes.o \
filename.o \ filename.o \
get_ostype.o \ get_ostype.o \

View File

@ -1,5 +1,5 @@
; ;
; Oliver Schmidt, 15.09.2009 ; Oliver Schmidt, 2009-09-15
; ;
; Startup code for cc65 (Apple2 version) ; Startup code for cc65 (Apple2 version)
; ;
@ -9,25 +9,14 @@
.import zerobss .import zerobss
.import initlib, donelib .import initlib, donelib
.import callmain, callirq .import callmain, callirq
.import __RAM_START__ , __RAM_LAST__ ; Linker generated .import __RAM_LAST__, __ZPSAVE_RUN__ ; Linker generated
.import __MOVE_START__, __MOVE_LAST__ ; Linker generated .import __LC_START__, __LC_LAST__ ; Linker generated
.import __LC_START__ , __LC_LAST__ ; Linker generated .import __INIT_SIZE__ ; Linker generated
.import __ZPSAVE_RUN__, __INIT_SIZE__ ; Linker generated
.import __INTERRUPTOR_COUNT__ ; Linker generated .import __INTERRUPTOR_COUNT__ ; Linker generated
.include "zeropage.inc" .include "zeropage.inc"
.include "apple2.inc" .include "apple2.inc"
.linecont +
; ------------------------------------------------------------------------
.segment "EXEHDR"
.addr __RAM_START__ ; Start address
.word __ZPSAVE_RUN__ - __RAM_START__ + \
__MOVE_LAST__ - __MOVE_START__ ; Size
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
.segment "STARTUP" .segment "STARTUP"

20
libsrc/apple2/exehdr.s Normal file
View File

@ -0,0 +1,20 @@
;
; Oliver Schmidt, 2012-06-10
;
; This module supplies a 4 byte DOS 3.3 header
; containing the load address and load length.
;
.export __EXEHDR__ : absolute = 1 ; Linker referenced
.import __RAM_START__, __ZPSAVE_RUN__ ; Linker generated
.import __MOVE_START__, __MOVE_LAST__ ; Linker generated
.linecont +
; ------------------------------------------------------------------------
.segment "EXEHDR"
.addr __RAM_START__ ; Start address
.word __ZPSAVE_RUN__ - __RAM_START__ + \
__MOVE_LAST__ - __MOVE_START__ ; Size

View File

@ -75,6 +75,7 @@ S_OBJS= _scrsize.o \
dosdetect.o \ dosdetect.o \
drives.o \ drives.o \
exec.o \ exec.o \
exehdr.o \
filedes.o \ filedes.o \
filename.o \ filename.o \
get_ostype.o \ get_ostype.o \

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0803; STARTADDRESS: default = $0803;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0800; STARTADDRESS: default = $0800;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -5,6 +5,7 @@ FEATURES {
STARTADDRESS: default = $0800; STARTADDRESS: default = $0800;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -1,6 +1,7 @@
# Configuration for ProDOS 8 system programs (without the header) # Configuration for ProDOS 8 system programs (without the header)
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0803; STARTADDRESS: default = $0803;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0803; STARTADDRESS: default = $0803;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0800; STARTADDRESS: default = $0800;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -5,6 +5,7 @@ FEATURES {
STARTADDRESS: default = $0800; STARTADDRESS: default = $0800;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -1,6 +1,7 @@
# Configuration for ProDOS 8 system programs (without the header) # Configuration for ProDOS 8 system programs (without the header)
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {

View File

@ -4,6 +4,7 @@ FEATURES {
STARTADDRESS: default = $0803; STARTADDRESS: default = $0803;
} }
SYMBOLS { SYMBOLS {
__EXEHDR__: type = import;
__STACKSIZE__: type = weak, value = $0800; # 2k stack __STACKSIZE__: type = weak, value = $0800; # 2k stack
} }
MEMORY { MEMORY {