Makefile and main() function that makes a stand-alone IRC/DHCP binary
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();
+  }
 }
 /*-----------------------------------------------------------------------------------*/