Added an apple2enh specific linker configuration file and made use of it in the apple2enh build.
The new linker configuration file:
- Defines interruptors
- Uses language card bank2 memory from D000-D3FFF. This overwrites the ProDOS 8 quit code. Thus quitting Contiki via Ctrl-Reset now chrashes! I'll take care of that with subsequent changes...
diff --git a/contiki-apple2/Makefile.apple2 b/contiki-apple2/Makefile.apple2
index 5500955..9910674 100644
--- a/contiki-apple2/Makefile.apple2
+++ b/contiki-apple2/Makefile.apple2
@@ -30,7 +30,7 @@
#
# This file is part of the Contiki desktop environment
#
-# $Id: Makefile.apple2,v 1.17 2006/04/09 16:24:36 oliverschmidt Exp $
+# $Id: Makefile.apple2,v 1.18 2006/04/09 16:32:44 oliverschmidt Exp $
#
all: contiki
@@ -57,4 +57,4 @@
email-dsc.o \
ftp-dsc.o \
directory-dsc.o
- $(LD) -C apple.cfg -Ln contiki-labels -m contiki.map $^ $(SYS).lib
+ $(LD) -C $(SYS).cfg -Ln contiki-labels -m contiki.map $^ $(SYS).lib
diff --git a/contiki-apple2/apple2enh.cfg b/contiki-apple2/apple2enh.cfg
new file mode 100644
index 0000000..0286a5a
--- /dev/null
+++ b/contiki-apple2/apple2enh.cfg
@@ -0,0 +1,39 @@
+MEMORY {
+ ZP: start = $0080, size = $001A, file = "", define = yes;
+ BUFFER: start = $0800, size = $0400, file = "";
+ HEADER: start = $0000, size = $0004, file = "contiki";
+ RAM: start = $0C00, size = $8A00, file = "contiki";
+ PIC: start = $0000, size = $FFFF, file = "contiki";
+ TMP: start = $0000, size = $FFFF, file = "contiki";
+ LC: start = $D000, size = $1000, file = "contiki";
+}
+SEGMENTS {
+ ZEROPAGE: load = ZP, type = zp;
+ UIPBUF: load = BUFFER, type = bss;
+ EXEHDR: load = HEADER, type = ro;
+ STARTUP: load = RAM, type = ro, define = yes;
+ CONTIKI: load = RAM, type = ro;
+ RODATA: load = RAM, type = ro;
+ DATA: load = RAM, type = rw;
+ BSS: load = RAM, type = bss, define = yes;
+ BOOT: load = PIC, type = ro, define = yes;
+ INIT: load = TMP, run = RAM, type = ro, define = yes;
+ CODE: load = LC, type = ro, define = yes;
+}
+FEATURES {
+ CONDES: segment = INIT,
+ type = constructor,
+ label = __CONSTRUCTOR_TABLE__,
+ count = __CONSTRUCTOR_COUNT__;
+ CONDES: segment = RODATA,
+ type = destructor,
+ label = __DESTRUCTOR_TABLE__,
+ count = __DESTRUCTOR_COUNT__;
+ CONDES: segment = RODATA,
+ type = interruptor,
+ label = __INTERRUPTOR_TABLE__,
+ count = __INTERRUPTOR_COUNT__;
+}
+SYMBOLS {
+ __STACKSIZE__ = $200;
+}