Makefile and main() function that makes a stand-alone IRC/DHCP binary
diff --git a/contiki-c64/Makefile.c64-wget b/contiki-c64/Makefile.c64-wget
index ed778c0..8dc6ca8 100644
--- a/contiki-c64/Makefile.c64-wget
+++ b/contiki-c64/Makefile.c64-wget
@@ -30,25 +30,30 @@
#
# This file is part of the Contiki desktop environment
#
-# $Id: Makefile.c64-wget,v 1.1 2003/09/04 22:00:19 adamdunkels Exp $
+# $Id: Makefile.c64-wget,v 1.2 2004/09/18 20:52:10 adamdunkels Exp $
#
-all: contiki
+all: contiki-exo
include $(CONTIKICC65)/Makefile.common
SYS=c64
CFLAGS:=$(CFLAGSCOMMON) -t $(SYS) \
-DCTK_HIRES \
- -DWITH_UIP -DWITH_RRNET -DWITH_ETHERNET
+ -DWITH_UIP -DWITH_RRNET -DWITH_ETHERNET \
+ -DCONTIKI_VERSION_STRING='"Contiki 1.2-devel1 IRC/DHCP edition"'
contiki: main-rrnet.o petsciiconv.o \
- ctk.o ek.o dispatcher.o arg.o \
+ ctk.o ek.o ek.o ek-service.o arg.o timer.o \
program-handler.o \
- ctk-hires.o ctk-hires-asm.o ctk-hires-theme-default.o \
- ctk-mouse.o ctk-mouse-asm.o ctk-mouse-joy.o \
$(UIP) uip_arp.o cs8900a.o rrnet-drv.o rrnet-drv-asm.o \
+ ctk-80col.o ctk-80col-asm.o ctk-draw.o \
netconf.o netconf-dsc.o \
- $(WGET) wget-dsc.o c64-dio.o c64-dio-asm.o
+ dhcp-dsc.o dhcp.o dhcpc.o lc-asm.o \
+ irc.o ircc.o ircc-strings.o socket.o uipbuf.o irc-dsc.o \
+# $(WGET) wget-dsc.o c64-dio.o c64-dio-asm.o
cl65 -Ln labels -o contiki -t $(SYS) $^
+contiki-exo: contiki
+ exomizer -s sys -o contiki-exo contiki
+
\ No newline at end of file
diff --git a/contiki-c64/main-rrnet.c b/contiki-c64/main-rrnet.c
index 329a98c..ec72c8a 100644
--- a/contiki-c64/main-rrnet.c
+++ b/contiki-c64/main-rrnet.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, Adam Dunkels.
+ * Copyright (c) 2002-2004, Adam Dunkels.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -27,115 +27,140 @@
* 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
+ * This file is part of the Contiki operating system
*
- * $Id: main-rrnet.c,v 1.3 2004/09/12 14:07:30 adamdunkels Exp $
+ * $Id: main-rrnet.c,v 1.4 2004/09/18 20:52:10 adamdunkels Exp $
*
*/
+#include "contiki.h"
+
#include "ctk.h"
#include "ctk-draw.h"
-#include "dispatcher.h"
+#include "ek.h"
#include "program-handler.h"
-#include "uip_main.h"
-#include "uip-signal.h"
+
#include "uip.h"
#include "uip_arp.h"
-#if WITH_TFE
-void tfe_drv_init(void);
-#endif /* WITH_TFE */
-#if WITH_RRNET
-void rrnet_drv_init(void);
-#endif /* WITH_RRNET */
+
#include "resolv.h"
-#include "rs232dev.h"
-#include "about-dsc.h"
#include "netconf-dsc.h"
-#include "processes-dsc.h"
-#include "memstat-dsc.h"
-#include "directory-dsc.h"
-#include "wget-dsc.h"
-#include "www-dsc.h"
+#include "irc-dsc.h"
+#include "dhcp-dsc.h"
+#include "cfs-cbm.h"
-#include "webserver.h"
+#include "clock.h"
+#include <cbm.h>
+
+unsigned char
+uip_fw_forward(void)
+{
+ return 0;
+}
+void
+uip_fw_periodic(void)
+{
+ return;
+}
/*-----------------------------------------------------------------------------------*/
-int
-main(int argc, char **argv)
+EK_EVENTHANDLER(eventhandler, ev, data)
{
u16_t addr[2];
-
- c64_dio_init(8);
-
- dispatcher_init();
+ switch(ev) {
+ case EK_EVENT_INIT:
+ uip_ipaddr(addr, 192,168,3,2);
+ uip_sethostaddr(addr);
+
+ uip_ipaddr(addr, 192,168,3,1);
+ uip_setdraddr(addr);
+
+ uip_ipaddr(addr, 255,255,255,0);
+ uip_setnetmask(addr);
+
+ uip_ipaddr(addr, 195,54,122,204);
+ resolv_conf(addr);
+
+ /* program_handler_load("config.prg", NULL);*/
+ break;
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+EK_PROCESS(init, "Init", EK_PRIO_LOWEST,
+ eventhandler, NULL, NULL);
+/*-----------------------------------------------------------------------------------*/
+void
+log_message(char *part1, char *part2)
+{
+ while(*part1 != 0) {
+ cbm_k_bsout(*part1++);
+ }
+
+ while(*part2 != 0) {
+ cbm_k_bsout(*part2++);
+ }
+
+
+ cbm_k_bsout('\n');
+}
+/*-----------------------------------------------------------------------------------*/
+clock_time_t
+clock_time(void)
+{
+ return clock();
+}
+/*-----------------------------------------------------------------------------------*/
+#pragma optimize(push, off)
+static void
+setup_curunit(void)
+{
+ asm("lda $ba");
+ asm("sta %v", _curunit);
+}
+#pragma optimize(pop)
+/*-----------------------------------------------------------------------------------*/
+void
+main(void)
+{
+
+ setup_curunit();
+
+ log_message("Starting ", CONTIKI_VERSION_STRING);
+
+ ek_init();
+
+ ek_start(&init);
+
+ log_message(": TCP/IP", "");
+
+ tcpip_init(NULL);
+
+ resolv_init(NULL);
+
+ log_message(": CTK GUI", "");
ctk_init();
- uip_init();
- uip_signal_init();
- resolv_init();
+ /* log_message(": Initial filesystem", "");
+ cfs_init_init(NULL);*/
- /* XXX: just for making it easier to test. */
-#if 0
- uip_ipaddr(addr, 193,10,67,150);
- uip_sethostaddr(addr);
-
- uip_ipaddr(addr, 193,10,64,1);
- uip_setdraddr(addr);
-
- uip_ipaddr(addr, 255,255,252,0);
- uip_setnetmask(addr);
-
- uip_ipaddr(addr, 193,10,66,195);
- resolv_conf(addr);
-
-#else
- uip_ipaddr(addr, 192,168,254,2);
- uip_sethostaddr(addr);
-
- uip_ipaddr(addr, 192,168,254,1);
- uip_setdraddr(addr);
-
- uip_ipaddr(addr, 255,255,255,0);
- uip_setnetmask(addr);
-
- uip_ipaddr(addr, 195,54,122,204);
- resolv_conf(addr);
-#endif
-
- rrnet_drv_init();
-
program_handler_init();
-
-
- /*program_handler_add(&directory_dsc, "Directory", 1);*/
- program_handler_add(&netconf_dsc, "Network setup", 1);
- /* program_handler_add(&processes_dsc, "Processes", 1);
-
- program_handler_add(&memstat_dsc, "Memory stats", 1);*/
- program_handler_add(&wget_dsc, "Web downloader", 1);
- /* program_handler_add(&about_dsc, "About", 0);*/
-
- /* program_handler_add(&vnc_dsc, "VNC viewer", 1);
- program_handler_add(&www_dsc, "Web browser", 1);*/
+
+ program_handler_add(&netconf_dsc, "Network config", 1);
+ program_handler_add(&dhcp_dsc, "DHCP", 1);
+ program_handler_add(&irc_dsc, "IRC", 1);
-
- /* webserver_init();*/
- /* netconf_init();*/
- wget_init();
- /* processes_init();*/
+ ctk_80col_service_init(NULL);
+ rrnet_drv_init(NULL);
- dispatcher_run();
+ log_message("Starting process scheduling", "");
- clrscr();
-
- return 0;
-
- argv = argv;
- argc = argc;
+ while(1) {
+ ek_run();
+ }
}
/*-----------------------------------------------------------------------------------*/