From 9cc99876b23274f73d58b2aa0e519799ba49e049 Mon Sep 17 00:00:00 2001 From: "ol.sc" Date: Sun, 10 Jun 2012 21:05:51 +0000 Subject: [PATCH] Moved Apple EXEHDR to separate module (similiar to CBMs). git-svn-id: svn://svn.cc65.org/cc65/trunk@5708 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/apple2/Makefile | 1 + libsrc/apple2/crt0.s | 21 +++++---------------- libsrc/apple2/exehdr.s | 20 ++++++++++++++++++++ libsrc/apple2enh/Makefile | 1 + src/ld65/cfg/apple2-dos33.cfg | 1 + src/ld65/cfg/apple2-loader.cfg | 1 + src/ld65/cfg/apple2-reboot.cfg | 1 + src/ld65/cfg/apple2-system.cfg | 1 + src/ld65/cfg/apple2.cfg | 1 + src/ld65/cfg/apple2enh-dos33.cfg | 1 + src/ld65/cfg/apple2enh-loader.cfg | 1 + src/ld65/cfg/apple2enh-reboot.cfg | 1 + src/ld65/cfg/apple2enh-system.cfg | 1 + src/ld65/cfg/apple2enh.cfg | 1 + 14 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 libsrc/apple2/exehdr.s diff --git a/libsrc/apple2/Makefile b/libsrc/apple2/Makefile index 242893d1e..9b0a4938e 100644 --- a/libsrc/apple2/Makefile +++ b/libsrc/apple2/Makefile @@ -72,6 +72,7 @@ S_OBJS= _scrsize.o \ dosdetect.o \ drives.o \ exec.o \ + exehdr.o \ filedes.o \ filename.o \ get_ostype.o \ diff --git a/libsrc/apple2/crt0.s b/libsrc/apple2/crt0.s index 83daf0740..9bc8ac68b 100644 --- a/libsrc/apple2/crt0.s +++ b/libsrc/apple2/crt0.s @@ -1,33 +1,22 @@ ; -; Oliver Schmidt, 15.09.2009 +; Oliver Schmidt, 2009-09-15 ; ; Startup code for cc65 (Apple2 version) ; .export _exit, done, return - .export __STARTUP__ : absolute = 1 ; Mark as startup + .export __STARTUP__ : absolute = 1 ; Mark as startup .import zerobss .import initlib, donelib .import callmain, callirq - .import __RAM_START__ , __RAM_LAST__ ; Linker generated - .import __MOVE_START__, __MOVE_LAST__ ; Linker generated - .import __LC_START__ , __LC_LAST__ ; Linker generated - .import __ZPSAVE_RUN__, __INIT_SIZE__ ; Linker generated + .import __RAM_LAST__, __ZPSAVE_RUN__ ; Linker generated + .import __LC_START__, __LC_LAST__ ; Linker generated + .import __INIT_SIZE__ ; Linker generated .import __INTERRUPTOR_COUNT__ ; Linker generated .include "zeropage.inc" .include "apple2.inc" - .linecont + - -; ------------------------------------------------------------------------ - - .segment "EXEHDR" - - .addr __RAM_START__ ; Start address - .word __ZPSAVE_RUN__ - __RAM_START__ + \ - __MOVE_LAST__ - __MOVE_START__ ; Size - ; ------------------------------------------------------------------------ .segment "STARTUP" diff --git a/libsrc/apple2/exehdr.s b/libsrc/apple2/exehdr.s new file mode 100644 index 000000000..5ebd6f7f1 --- /dev/null +++ b/libsrc/apple2/exehdr.s @@ -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 diff --git a/libsrc/apple2enh/Makefile b/libsrc/apple2enh/Makefile index 746bc1bc5..4d984901f 100644 --- a/libsrc/apple2enh/Makefile +++ b/libsrc/apple2enh/Makefile @@ -75,6 +75,7 @@ S_OBJS= _scrsize.o \ dosdetect.o \ drives.o \ exec.o \ + exehdr.o \ filedes.o \ filename.o \ get_ostype.o \ diff --git a/src/ld65/cfg/apple2-dos33.cfg b/src/ld65/cfg/apple2-dos33.cfg index a8155e492..091406e5c 100644 --- a/src/ld65/cfg/apple2-dos33.cfg +++ b/src/ld65/cfg/apple2-dos33.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0803; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2-loader.cfg b/src/ld65/cfg/apple2-loader.cfg index c1eb81fd4..68556a277 100644 --- a/src/ld65/cfg/apple2-loader.cfg +++ b/src/ld65/cfg/apple2-loader.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0800; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2-reboot.cfg b/src/ld65/cfg/apple2-reboot.cfg index e24eff04a..82b2ea59b 100644 --- a/src/ld65/cfg/apple2-reboot.cfg +++ b/src/ld65/cfg/apple2-reboot.cfg @@ -5,6 +5,7 @@ FEATURES { STARTADDRESS: default = $0800; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2-system.cfg b/src/ld65/cfg/apple2-system.cfg index f888f3bcb..187cc7907 100644 --- a/src/ld65/cfg/apple2-system.cfg +++ b/src/ld65/cfg/apple2-system.cfg @@ -1,6 +1,7 @@ # Configuration for ProDOS 8 system programs (without the header) SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2.cfg b/src/ld65/cfg/apple2.cfg index 64a1b4f63..00d615644 100644 --- a/src/ld65/cfg/apple2.cfg +++ b/src/ld65/cfg/apple2.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0803; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2enh-dos33.cfg b/src/ld65/cfg/apple2enh-dos33.cfg index a8155e492..091406e5c 100644 --- a/src/ld65/cfg/apple2enh-dos33.cfg +++ b/src/ld65/cfg/apple2enh-dos33.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0803; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2enh-loader.cfg b/src/ld65/cfg/apple2enh-loader.cfg index c1eb81fd4..68556a277 100644 --- a/src/ld65/cfg/apple2enh-loader.cfg +++ b/src/ld65/cfg/apple2enh-loader.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0800; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2enh-reboot.cfg b/src/ld65/cfg/apple2enh-reboot.cfg index e24eff04a..82b2ea59b 100644 --- a/src/ld65/cfg/apple2enh-reboot.cfg +++ b/src/ld65/cfg/apple2enh-reboot.cfg @@ -5,6 +5,7 @@ FEATURES { STARTADDRESS: default = $0800; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2enh-system.cfg b/src/ld65/cfg/apple2enh-system.cfg index f888f3bcb..187cc7907 100644 --- a/src/ld65/cfg/apple2enh-system.cfg +++ b/src/ld65/cfg/apple2enh-system.cfg @@ -1,6 +1,7 @@ # Configuration for ProDOS 8 system programs (without the header) SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { diff --git a/src/ld65/cfg/apple2enh.cfg b/src/ld65/cfg/apple2enh.cfg index 64a1b4f63..00d615644 100644 --- a/src/ld65/cfg/apple2enh.cfg +++ b/src/ld65/cfg/apple2enh.cfg @@ -4,6 +4,7 @@ FEATURES { STARTADDRESS: default = $0803; } SYMBOLS { + __EXEHDR__: type = import; __STACKSIZE__: type = weak, value = $0800; # 2k stack } MEMORY { -- 2.39.5