Reactivated Contiki for the Apple ][
- Adjusted Makefile, main.c and conf files to the current style found in contiki-c64
- Added custom linker config and custom startup for a memory layout that makes most exsisting memory available to Contiki
diff --git a/contiki-apple2/Makefile b/contiki-apple2/Makefile
index 7ede143..33b1874 100644
--- a/contiki-apple2/Makefile
+++ b/contiki-apple2/Makefile
@@ -30,106 +30,30 @@
#
# This file is part of the Contiki desktop environment
#
-# $Id: Makefile,v 1.2 2004/03/02 20:53:20 adamdunkels Exp $
+# $Id: Makefile,v 1.3 2004/06/08 20:28:33 oliverschmidt Exp $
#
-all: contiki
-
CONTIKI=../contiki
-SYS=apple2
+CONTIKICC65=../contiki-cc65
-CC=cc65
-AS=ca65
-CFLAGS=-I ctk -I loader -I uip -I conf -I lib \
- -I $(CONTIKI)/apps -I $(CONTIKI)/ctk -I $(CONTIKI)/ek \
- -I $(CONTIKI)/lib -I $(CONTIKI)/uip \
- -t $(SYS) --add-source
-OPT=-Or
+usage:
+ @echo "Make sure the Contiki sources is in the directory $(CONTIKI)"
+ @echo 'To compile Contiki, use "'$(MAKE)' target" where target'
+ @echo 'is one of the following:'
+ @echo all
+ @echo apple2
+ @echo apple2enh
+ @echo '(Also check the Makefile for more targets to try...)'
-%.o: %.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
+all: clean apple2enh
-%.o: apps/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
+apple2:
+ $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.apple2 SYS=apple2
-%.o: ctk/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
+apple2enh:
+ $(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.apple2 SYS=apple2enh
-%.o: lib/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
+CCDEPFLAGS=
-%.o: loader/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
+include $(CONTIKICC65)/Makefile.common
-%.o: uip/%.c
- $(CC) $(CFLAGS) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-%.o: $(CONTIKI)/apps/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-%.o: $(CONTIKI)/ctk/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-%.o: $(CONTIKI)/ek/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-%.o: $(CONTIKI)/lib/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-%.o: $(CONTIKI)/uip/%.c
- $(CC) $(CFLAGS) $(OPT) -o $(patsubst %c, %s, $(notdir $<)) $<
- $(AS) -o $@ $(AFLAGS) $(*).s
-
-
-%.o: ctk/%.S
- $(AS) -o $@ $(AFLAGS) $<
-
-%.o: loader/%.S
- $(AS) -o $@ $(AFLAGS) $<
-
-%.prg: %.o contiki-labels.o
- cl65 --module -t $(SYS) -o $@ loader-arch-module.o $^
-
-
-UIP=uip.o uip_arch.o uiplib.o resolv.o
-
-WWW=www.o webclient.o http-strings.o htmlparser.o html-strings.o
-EMAIL=email.o smtp.o smtp-strings.o
-WEBSERVER=webserver.o http-strings.o
-TELNET=simpletelnet.o telnet.o
-
-contiki-labels.o: contiki-labels.s
- ca65 -o contiki-labels.o contiki-labels.s
-contiki-labels.s: contiki
- ./make-labels
-
-contiki: contiki-main.o strncasecmp.o petsciiconv.o \
- ctk-conio.o ctk.o ek.o dispatcher.o \
- program-handler.o clock.o \
- about.o netconf.o processes.o arg.o
- cl65 -Ln contiki-labels -o contiki -t $(SYS) $^
-
-
-clean:
- rm -f *.o *~ *core contiki *.s *.prg
-
-depend:
- gcc -MM -Iapps -Ictk -Iuip -Iconf -Ilib \
- -I$(CONTIKI)/lib -I$(CONTIKI)/ek \
- -I$(CONTIKI)/ctk -I$(CONTIKI)/apps -I$(CONTIKI)/uip \
- *.c */*.c $(CONTIKI)/*/*.c > Makefile.depend
-
-include Makefile.depend
-
-codesize:
- od65 --dump-segsize *.o | egrep '\.o|CODE'
diff --git a/contiki-apple2/Makefile.apple2 b/contiki-apple2/Makefile.apple2
new file mode 100644
index 0000000..91b3999
--- /dev/null
+++ b/contiki-apple2/Makefile.apple2
@@ -0,0 +1,55 @@
+# Copyright (c) 2002, Adam Dunkels.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Adam Dunkels.
+# 4. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior
+# written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# This file is part of the Contiki desktop environment
+#
+# $Id: Makefile.apple2,v 1.1 2004/06/08 20:28:33 oliverschmidt Exp $
+#
+
+all: contiki
+
+SYS=apple2enh
+
+include $(CONTIKICC65)/Makefile.common
+
+AFLAGS:=-t $(SYS)
+
+CFLAGS:=$(CFLAGSCOMMON) \
+ -DWITH_ASCII -DWITH_UIP -DWITH_ETHERNET
+
+CTK=ctk.o ctk-conio.o
+
+contiki:crt0.o main.o clock.o dispatcher.o program-handler.o arg.o $(CTK) $(UIP) \
+ netconf.o netconf-dsc.o \
+ $(WWW) www-dsc.o \
+ $(TELNET) telnet-dsc.o \
+ processes.o processes-dsc.o \
+ about.o about-dsc.o
+ $(LD) -C apple2.cfg -m contiki.map $^ $(SYS).lib
diff --git a/contiki-apple2/Makefile.depend b/contiki-apple2/Makefile.depend
deleted file mode 100644
index 5f9434c..0000000
--- a/contiki-apple2/Makefile.depend
+++ /dev/null
@@ -1,142 +0,0 @@
-contiki-main.o: contiki-main.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h \
- conf/cc-conf.h ../contiki/ctk/ctk-draw.h ctk/ctk-arch.h \
- ../contiki/ctk/ctk-conio.h ../contiki/ek/dispatcher.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/uip/uip_main.h ../contiki/uip/uip_arp.h \
- ../contiki/uip/resolv.h ../contiki/apps/program-handler.h
-clock.o: lib/clock.c lib/clock.h
-about.o: ../contiki/apps/about.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h \
- conf/cc-conf.h ../contiki/ek/dispatcher.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/lib/petsciiconv.h \
- ../contiki/ek/loader.h
-calc.o: ../contiki/apps/calc.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h \
- conf/cc-conf.h ../contiki/ek/dispatcher.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/loader.h
-contiki.o: ../contiki/apps/contiki.c ../contiki/uip/uip_main.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/uip/uip_arp.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/uip/resolv.h ../contiki/apps/email.h \
- ../contiki/lib/petsciiconv.h
-email.o: ../contiki/apps/email.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h \
- conf/cc-conf.h ../contiki/ek/dispatcher.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/apps/smtp.h \
- ../contiki/uip/uip_main.h ../contiki/lib/petsciiconv.h \
- ../contiki/ek/loader.h
-html-strings.o: ../contiki/apps/html-strings.c
-htmlparser.o: ../contiki/apps/htmlparser.c \
- ../contiki/apps/htmlparser.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/apps/html-strings.h conf/www-conf.h
-http-strings.o: ../contiki/apps/http-strings.c
-netconf.o: ../contiki/apps/netconf.c ../contiki/uip/uip_main.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/uip/uip_arp.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/loader.h
-processes.o: ../contiki/apps/processes.c ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h \
- ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/dispatcher.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h ../contiki/ek/loader.h
-program-handler.o: ../contiki/apps/program-handler.c \
- ../contiki/lib/petsciiconv.h ../contiki/uip/uip_main.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/ctk/ctk-draw.h ctk/ctk-arch.h \
- ../contiki/ctk/ctk-conio.h ../contiki/uip/resolv.h \
- ../contiki/apps/telnet.h ../contiki/ek/loader.h
-programs.o: ../contiki/apps/programs.c ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h \
- ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/dispatcher.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/apps/webserver.h ../contiki/apps/www.h \
- ../contiki/apps/email.h ../contiki/apps/simpletelnet.h
-simpletelnet.o: ../contiki/apps/simpletelnet.c \
- ../contiki/lib/petsciiconv.h ../contiki/uip/uip_main.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/uip/resolv.h ../contiki/apps/telnet.h \
- ../contiki/apps/simpletelnet.h ../contiki/ek/loader.h
-smtp-strings.o: ../contiki/apps/smtp-strings.c
-smtp.o: ../contiki/apps/smtp.c ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/apps/smtp.h ../contiki/apps/smtp-strings.h
-telnet.o: ../contiki/apps/telnet.c ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/apps/telnet.h
-vnc-viewer.o: ../contiki/apps/vnc-viewer.c ../contiki/apps/vnc-draw.h \
- uip/uip_arch.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/apps/vnc-viewer.h
-vnc.o: ../contiki/apps/vnc.c ../contiki/lib/petsciiconv.h \
- ../contiki/uip/uip_main.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/ctk/ctk.h conf/ctk-conf.h ../contiki/uip/resolv.h \
- ../contiki/apps/telnet.h ../contiki/apps/vnc.h \
- ../contiki/apps/vnc-draw.h uip/uip_arch.h \
- ../contiki/apps/vnc-viewer.h conf/vnc-conf.h ../contiki/ek/loader.h
-webclient.o: ../contiki/apps/webclient.c ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/apps/webclient.h ../contiki/apps/http-strings.h \
- ../contiki/uip/resolv.h ../contiki/uip/uip_main.h
-webserver.o: ../contiki/apps/webserver.c ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h \
- ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/dispatcher.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/apps/http-strings.h ../contiki/uip/uip_main.h \
- ../contiki/lib/petsciiconv.h ../contiki/ek/loader.h
-www.o: ../contiki/apps/www.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h \
- conf/cc-conf.h ../contiki/ek/dispatcher.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/apps/webclient.h \
- ../contiki/apps/http-strings.h ../contiki/apps/htmlparser.h \
- ../contiki/uip/resolv.h ../contiki/lib/petsciiconv.h \
- ../contiki/ek/loader.h conf/www-conf.h
-ctk-conio.o: ../contiki/ctk/ctk-conio.c ../contiki/ctk/ctk.h \
- conf/ctk-conf.h ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h \
- ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ctk/ctk-draw.h \
- ctk/ctk-arch.h ../contiki/ctk/ctk-conio.h ctk/ctk-conio-conf.h
-ctk.o: ../contiki/ctk/ctk.c ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h \
- ../contiki/ek/dispatcher.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
- ../contiki/ctk/ctk-draw.h ctk/ctk-arch.h ../contiki/ctk/ctk-conio.h \
- ../contiki/ctk/ctk-mouse.h
-dispatcher.o: ../contiki/ek/dispatcher.c ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/ek/dispatcher.h \
- ../contiki/lib/cc.h conf/cc-conf.h ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h
-ek.o: ../contiki/ek/ek.c ../contiki/ek/ek.h conf/ek-conf.h lib/clock.h
-libconio.o: ../contiki/lib/libconio.c ../contiki/lib/libconio.h
-petsciiconv.o: ../contiki/lib/petsciiconv.c
-strncasecmp.o: ../contiki/lib/strncasecmp.c
-resolv.o: ../contiki/uip/resolv.c ../contiki/uip/resolv.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h
-uip.o: ../contiki/uip/uip.c ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- uip/uip_arch.h
-uip_arp.o: ../contiki/uip/uip_arp.c ../contiki/uip/uip_arp.h \
- ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
- ../contiki/ek/dispatcher.h ../contiki/ek/ek.h conf/ek-conf.h \
- lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h
-uip_main.o: ../contiki/uip/uip_main.c ../contiki/uip/uip.h \
- ../contiki/uip/uipopt.h ../contiki/ek/dispatcher.h ../contiki/ek/ek.h \
- conf/ek-conf.h lib/clock.h ../contiki/lib/cc.h conf/cc-conf.h \
- ../contiki/uip/uip_arp.h
diff --git a/contiki-apple2/apple2.cfg b/contiki-apple2/apple2.cfg
new file mode 100644
index 0000000..7ac3a7a
--- /dev/null
+++ b/contiki-apple2/apple2.cfg
@@ -0,0 +1,40 @@
+#
+# Custom linker configuration for Contiki on the Apple ][ (Oliver Schmidt)
+#
+
+MEMORY {
+ ZEROPAGE: start = $0000, size = $001A, file = "";
+ CODE_HDR: start = $0000, size = $0004, file = "contiki.cod";
+ CODE_MEM: start = $0800, size = $B000, file = "contiki.cod", define = yes;
+ DATA_HDR: start = $0000, size = $0004, file = "contiki.dat";
+ DATA_MEM: start = $1000, size = $1000, file = "contiki.dat", define = yes;
+ DATA_RUN: start = $D000, size = $2FFC, file = "";
+}
+
+SYMBOLS {
+ __STACKSIZE__ = $0800;
+ __STACKLAST__ = $C000;
+}
+
+SEGMENTS {
+ ZEROPAGE: load = ZEROPAGE, type = zp;
+ CODE_HDR: load = CODE_HDR, type = ro;
+ CODE_1ST: load = CODE_MEM, type = ro;
+ CODE: load = CODE_MEM, type = ro;
+ DATA_HDR: load = DATA_HDR, type = ro;
+ DATA_1ST: load = DATA_MEM, type = ro;
+ RODATA: load = DATA_MEM, run = DATA_RUN, type = ro, define = yes;
+ DATA: load = DATA_MEM, run = DATA_RUN, type = rw, define = yes;
+ BSS: load = DATA_RUN, type = bss, define = yes;
+}
+
+FEATURES {
+ CONDES: segment = RODATA,
+ type = constructor,
+ label = __CONSTRUCTOR_TABLE__,
+ count = __CONSTRUCTOR_COUNT__;
+ CONDES: segment = RODATA,
+ type = destructor,
+ label = __DESTRUCTOR_TABLE__,
+ count = __DESTRUCTOR_COUNT__;
+}
diff --git a/contiki-apple2/conf/ctk-conf.h b/contiki-apple2/conf/ctk-conf.h
index fce261d..0a19568 100644
--- a/contiki-apple2/conf/ctk-conf.h
+++ b/contiki-apple2/conf/ctk-conf.h
@@ -32,7 +32,7 @@
*
* This file is part of the "ctk" console GUI toolkit for cc65
*
- * $Id: ctk-conf.h,v 1.1 2003/04/10 07:25:27 adamdunkels Exp $
+ * $Id: ctk-conf.h,v 1.2 2004/06/08 20:28:33 oliverschmidt Exp $
*
*/
@@ -45,11 +45,23 @@
*/
/* Defines which key that is to be used for activating the menus */
-#define CTK_CONF_MENU_KEY CH_F1
+#define CTK_CONF_MENU_KEY CH_ESC
/* Defines which key that is to be used for switching the frontmost
window. */
-#define CTK_CONF_WINDOWSWITCH_KEY CH_F3
+#define CTK_CONF_WINDOWSWITCH_KEY 0x17 /* Ctrl-W */
+
+/* Defines which key that is to be used for switching to the prevoius
+ widget. */
+#define CTK_CONF_WIDGETUP_KEY 0x01 /* Ctrl-A */
+
+/* Defines which key that is to be used for switching to the next
+ widget. */
+#define CTK_CONF_WIDGETDOWN_KEY '\t' /* Tab or Ctrl-I */
+
+/* Toggles mouse support (must have support functions in the
+architecture specific files to work). */
+#define CTK_CONF_MOUSE_SUPPORT 0 /* 1342 bytes */
/* Toggles support for desktop icons. */
#define CTK_CONF_ICONS 1 /* 107 bytes */
@@ -71,4 +83,7 @@
/* The maximum number of menu items in each menu. */
#define CTK_CONF_MAXMENUITEMS 10
+/* Toggles support for screen savers. */
+#define CTK_CONF_SCREENSAVER 0
+
#endif /* __CTK_CONF_H__ */
diff --git a/contiki-apple2/conf/ek-conf.h b/contiki-apple2/conf/ek-conf.h
index e61221a..4de9d62 100644
--- a/contiki-apple2/conf/ek-conf.h
+++ b/contiki-apple2/conf/ek-conf.h
@@ -32,7 +32,7 @@
*
* This file is part of the "ek" event kernel.
*
- * $Id: ek-conf.h,v 1.1 2003/04/10 07:25:27 adamdunkels Exp $
+ * $Id: ek-conf.h,v 1.2 2004/06/08 20:28:33 oliverschmidt Exp $
*
*/
@@ -67,6 +67,4 @@
#define EK_CONF_NUMLISTENERS 32 /* Must be 2^n */
typedef unsigned char ek_num_listeners_t;
-#define EK_CONF_UNLISTEN 0
-
#endif /* __EK_CONF_H__ */
diff --git a/contiki-apple2/conf/vnc-conf.h b/contiki-apple2/conf/vnc-conf.h
deleted file mode 100644
index e69de29..0000000
--- a/contiki-apple2/conf/vnc-conf.h
+++ /dev/null
diff --git a/contiki-apple2/conf/www-conf.h b/contiki-apple2/conf/www-conf.h
index 4aa0e05..b994455 100644
--- a/contiki-apple2/conf/www-conf.h
+++ b/contiki-apple2/conf/www-conf.h
@@ -32,7 +32,7 @@
*
* This file is part of the Contiki desktop environment
*
- * $Id: www-conf.h,v 1.1 2003/04/10 07:25:27 adamdunkels Exp $
+ * $Id: www-conf.h,v 1.2 2004/06/08 20:28:33 oliverschmidt Exp $
*
*/
#ifndef __WWW_CONF_H__
@@ -40,17 +40,17 @@
/* The size of the HTML viewing area. */
#define WWW_CONF_WEBPAGE_WIDTH 36
-#define WWW_CONF_WEBPAGE_HEIGHT 17
+#define WWW_CONF_WEBPAGE_HEIGHT 16
/* The size of the "Back" history. */
#define WWW_CONF_HISTORY_SIZE 4
/* Defines the maximum length of an URL */
-#define WWW_CONF_MAX_URLLEN 100
+#define WWW_CONF_MAX_URLLEN 65
/* The maxiumum number of widgets (i.e., hyperlinks, form elements) on
a page. */
-#define WWW_CONF_MAX_NUMPAGEWIDGETS 20
+#define WWW_CONF_MAX_NUMPAGEWIDGETS 26
/* Turns <center> support on or off; must be on for forms to work. */
#define WWW_CONF_RENDERSTATE 1
@@ -59,7 +59,7 @@
#define WWW_CONF_FORMS 1
/* Maximum lengths for various HTML form parameters. */
-#define WWW_CONF_MAX_FORMACTIONLEN 40
+#define WWW_CONF_MAX_FORMACTIONLEN 30
#define WWW_CONF_MAX_FORMNAMELEN 20
#define WWW_CONF_MAX_INPUTNAMELEN 20
#define WWW_CONF_MAX_INPUTVALUELEN 34
diff --git a/contiki-apple2/contiki.txt b/contiki-apple2/contiki.txt
new file mode 100644
index 0000000..ff5b13f
--- /dev/null
+++ b/contiki-apple2/contiki.txt
@@ -0,0 +1,25 @@
+
+ 10 REM LOADER FOR CONTIKI ON THE APPLE ][ (OLIVER SCHMIDT)
+ 20 IF PEEK(116)>=184 GOTO 50
+ 30 PRINT :PRINT "Error: Contiki requires DOS to be in LC"
+ 40 END
+ 50 HOME :VTAB 2:HTAB 12
+ 60 PRINT "Welcome to Contiki"
+ 70 VTAB 3:HTAB 12
+ 80 PRINT "=================="
+ 90 VTAB 10:HTAB 11
+ 100 PRINT "1: 40 Column Display"
+ 110 VTAB 12:HTAB 11
+ 120 PRINT "2: 80 Column Display"
+ 130 VTAB 14:HTAB 11
+ 140 GET A$
+ 150 IF A$<"1" OR A$>"2" GOTO 140
+ 160 IF A$="2" GOTO 190
+ 170 VTAB 19:HTAB 12
+ 180 GOTO 210
+ 190 PRINT :PRINT CHR$(4)"PR#3":PRINT
+ 200 VTAB 19:HTAB 32
+ 210 PRINT "Loading Contiki..."
+ 220 PRINT CHR$(4)"BRUN CONTIKI.DATA"
+ 230 PRINT CHR$(4)"BRUN CONTIKI.CODE"
+
diff --git a/contiki-apple2/ctk/ctk-arch.h b/contiki-apple2/ctk/ctk-arch.h
index 0620877..ef0e36e 100644
--- a/contiki-apple2/ctk/ctk-arch.h
+++ b/contiki-apple2/ctk/ctk-arch.h
@@ -32,7 +32,7 @@
*
* This file is part of the "ctk" console GUI toolkit for cc65
*
- * $Id: ctk-arch.h,v 1.1 2003/04/10 07:25:27 adamdunkels Exp $
+ * $Id: ctk-arch.h,v 1.2 2004/06/08 20:28:33 oliverschmidt Exp $
*
*/
#ifndef __CTK_ARCH_H__
@@ -40,7 +40,16 @@
#include "ctk-conio.h"
-#undef CH_ENTER
-#define CH_ENTER 0x0d
+#ifndef CH_CURS_UP
+#define CH_CURS_UP 0x0B /* Ctrl-K */
+#endif /* CH_CURS_UP */
+
+#ifndef CH_CURS_DOWN
+#define CH_CURS_DOWN 0x0A /* Ctrl-J */
+#endif /* CH_CURS_DOWN */
+
+#ifndef CH_DEL
+#define CH_DEL 0x04 /* Ctrl-D */
+#endif /* CH_DEL */
#endif /* __CTK_ARCH_H__ */
diff --git a/contiki-apple2/lib/crt0.S b/contiki-apple2/lib/crt0.S
new file mode 100644
index 0000000..2bc4727
--- /dev/null
+++ b/contiki-apple2/lib/crt0.S
@@ -0,0 +1,208 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; Custom startup code for Contiki on the Apple ][ (Oliver Schmidt)
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+.export _exit, SETWND, BASCALC
+.importzp sp
+.import zerobss, initlib, callmain, donelib
+.import __CODE_MEM_START__, __CODE_MEM_LAST__
+.import __DATA_MEM_START__, __DATA_MEM_LAST__
+.import __RODATA_LOAD__, __RODATA_RUN__, __RODATA_SIZE__
+.import __DATA_SIZE__, __BSS_SIZE__, __STACKLAST__
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+.segment "CODE_HDR"
+
+ .word __CODE_MEM_START__
+ .word __CODE_MEM_LAST__ - __CODE_MEM_START__
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+.segment "CODE_1ST"
+
+ ; Reset CPU stack
+ ldx #$FF
+ txs
+
+ ; Init operand stack
+ lda #<__STACKLAST__
+ ldx #>__STACKLAST__
+ sta sp
+ stx sp + 1
+
+ ; Make RESET reboot
+ lda $03F3
+ sta $03F4
+
+.ifdef __APPLE2__
+
+ ; Switch in LC bank 1 for R/W
+ bit $C08B
+ bit $C08B
+
+ ; Get addr of RESET handler
+ lda #<reset
+ ldx #>reset
+
+ ; Set RESET vector into LC
+ sta $FFFC
+ stx $FFFD
+
+ ; Get addr of IRQ handler
+ lda #<irq_init
+ ldx #>irq_init
+
+.else
+
+ ; Get IRQ vector from ROM
+ lda $FFFE
+ ldx $FFFF
+
+ ; Switch in LC bank 1 for R/W
+ bit $C08B
+ bit $C08B
+
+.endif
+
+ ; Set IRQ vector into LC
+ sta $FFFE
+ stx $FFFF
+
+ ; Set BBS to zero
+ jsr zerobss
+
+ ; Go for it ...
+ jsr initlib
+ jsr callmain
+_exit: jsr donelib
+
+ ; Switch in ROM and do RESET
+reset: bit $C08A
+ jmp ($FFFC)
+
+
+SETWND:
+
+.ifdef __APPLE2__
+ sei
+.endif
+ ; Switch in ROM and call SETWND
+ bit $C08A
+ jsr $FB4B
+
+ ; Switch in LC bank 1 for R/W
+ bit $C08B
+ bit $C08B
+
+.ifdef __APPLE2__
+ cli
+.endif
+ rts
+
+
+BASCALC:
+
+.ifdef __APPLE2__
+ sei
+.endif
+ ; Switch in ROM and call BASCALC
+ bit $C08A
+ jsr $FBC1
+
+ ; Switch in LC bank 1 for R/W
+ bit $C08B
+ bit $C08B
+
+.ifdef __APPLE2__
+ cli
+.endif
+ rts
+
+
+.ifref irq_init
+irq_init:
+ ; Save registers on CPU stack
+ pha
+ txa
+ pha
+ tya
+ pha
+
+ ; Create another interrupt frame
+ lda #>irq_exit
+ pha
+ lda #<irq_exit
+ pha
+ php
+
+ ; Execute user IRQ handler
+ jmp ($03FE)
+.endif
+
+
+.ifref irq_exit
+irq_exit:
+ ; Restore registers and return
+ pla
+ tay
+ pla
+ tax
+ pla
+ rti
+.endif
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+.segment "DATA_HDR"
+
+ .word __DATA_MEM_START__
+ .word __DATA_MEM_LAST__ - __DATA_MEM_START__
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+
+.segment "DATA_1ST"
+
+ ; Switch in LC bank 1 for W/O
+ bit $C089
+ bit $C089
+
+ ; Set source start
+ lda #<__RODATA_LOAD__
+ ldx #>__RODATA_LOAD__
+ sta $3C
+ stx $3D
+
+ ; Set source end
+ lda #<(__RODATA_LOAD__ + __RODATA_SIZE__ + __DATA_SIZE__)
+ ldx #>(__RODATA_LOAD__ + __RODATA_SIZE__ + __DATA_SIZE__)
+ sta $3E
+ stx $3F
+
+ ; Set destination
+ lda #<__RODATA_RUN__
+ ldx #>__RODATA_RUN__
+ sta $42
+ stx $43
+
+ ; Reset index and call MOVE
+ ldy #$00
+ jsr $FE2C
+
+ ; Switch in ROM and return
+ bit $C08A
+ rts
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/contiki-apple2/contiki-main.c b/contiki-apple2/main.c
similarity index 75%
rename from contiki-apple2/contiki-main.c
rename to contiki-apple2/main.c
index 64f87d0..6536180 100644
--- a/contiki-apple2/contiki-main.c
+++ b/contiki-apple2/main.c
@@ -32,7 +32,7 @@
*
* This file is part of the Contiki desktop environment
*
- * $Id: contiki-main.c,v 1.2 2003/08/05 14:37:49 adamdunkels Exp $
+ * $Id: main.c,v 1.1 2004/06/08 20:28:33 oliverschmidt Exp $
*
*/
@@ -40,44 +40,48 @@
#include "ctk-draw.h"
#include "dispatcher.h"
-
-#include "uip_main.h"
-#include "uip.h"
-#include "uip_arp.h"
-#if WITH_TFE
-#include "cs8900a.h"
-#endif /* WITH_TFE */
-#include "resolv.h"
-
#include "program-handler.h"
+
+#include "uip-signal.h"
+#include "uip.h"
+#include "uip_arp.h"
+
+#include "resolv.h"
+
+#include "netconf-dsc.h"
+#include "www-dsc.h"
+#include "telnet-dsc.h"
+#include "processes-dsc.h"
+#include "about-dsc.h"
+
/*-----------------------------------------------------------------------------------*/
-int
-main(int argc, char **argv)
+ek_clock_t
+ek_clock(void)
{
-
-#ifdef WITH_UIP
- uip_init();
- uip_main_init();
- resolv_init();
-
-#ifdef WITH_RS232
- rs232dev_init();
-#endif /* WITH_RS232 */
-
-#endif /* WITH_UIP */
-
- ek_init();
+ return clock();
+}
+/*-----------------------------------------------------------------------------------*/
+void
+main(void)
+{
dispatcher_init();
+ uip_init();
+
ctk_init();
+
+ resolv_init(NULL);
+
+ uip_signal_init();
program_handler_init();
-
- ek_run();
- return 0;
+ program_handler_add(&netconf_dsc, "Network setup", 1);
+ program_handler_add(&www_dsc, "Web browser", 1);
+ program_handler_add(&telnet_dsc, "Telnet", 1);
+ program_handler_add(&processes_dsc, "Processes", 1);
+ program_handler_add(&about_dsc, "About Contiki", 0);
- argv = argv;
- argc = argc;
+ dispatcher_run();
}
/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-apple2/readme.txt b/contiki-apple2/readme.txt
new file mode 100644
index 0000000..6b51021
--- /dev/null
+++ b/contiki-apple2/readme.txt
@@ -0,0 +1,37 @@
+
+Contiki on the Apple ][ (Oliver Schmidt)
+========================================
+
+To make as much as possible memory available to Contiki the DOS 3.3 (clone)
+used for loading Contiki into memory will be overwritten on Contiki startup.
+
+Contiki requires DOS to be moved into language card (bank 2). It has been
+successfully tested with:
+
+- DavidDOS with HIDOS
+- DavidDOS II with HIDOS
+- DiversiDOS with DDMOVER
+- 64k DiversiDOS
+
+With the 'a2tools by Terry Kyriacopoulos' you use the following commands to
+insert Contiki into an (already existing) DOS 3.3 (clone) dsk image file:
+
+a2tools in t contiki.dsk CONTIKI.TEXT contiki.txt
+a2tools in -r b contiki.dsk CONTIKI.CODE contiki.cod
+a2tools in -r b contiki.dsk CONTIKI.DATA contiki.dat
+
+On the Apple ][ enter the following commands on the Applesoft prompt (']') to
+create the Contiki startup program.
+
+NEW
+EXEC CONTIKI.TEXT
+SAVE CONTIKI
+
+Contiki uses the follwoing keys:
+
+toggle menu: ESC
+next widget: TAB
+prev widget: CONTROL-A
+next window: CONTROL-W
+
+eof
\ No newline at end of file