diff -udrN contiki-2.x-20061211/core/sys/lc.h contiki-2.x-20061211-c64/core/sys/lc.h
--- contiki-2.x-20061211/core/sys/lc.h	2006-06-17 15:41:20.000000000 -0700
+++ contiki-2.x-20061211-c64/core/sys/lc.h	2006-12-12 07:31:16.000000000 -0800
@@ -119,11 +119,14 @@
 #ifndef __LC_H__
 #define __LC_H__
 
-#ifdef LC_CONF_INCLUDE
-#include LC_CONF_INCLUDE
-#else /* LC_CONF_INCLUDE */
-#include "sys/lc-switch.h"
-#endif /* LC_CONF_INCLUDE */
+/* Working around bug in cc65 for now */
+#include "lib/lc-cc65.h"
+
+//#ifdef LC_CONF_INCLUDE
+//#include LC_CONF_INCLUDE
+//#else /* LC_CONF_INCLUDE */
+//#include "sys/lc-switch.h"
+//#endif /* LC_CONF_INCLUDE */
 
 #endif /* __LC_H__ */
 
diff -udrN contiki-2.x-20061211/core/sys/loader.h contiki-2.x-20061211-c64/core/sys/loader.h
--- contiki-2.x-20061211/core/sys/loader.h	2006-06-17 15:41:20.000000000 -0700
+++ contiki-2.x-20061211-c64/core/sys/loader.h	2006-12-12 16:04:22.000000000 -0800
@@ -69,7 +69,9 @@
 #define LOADER_ERR_NOLOADER      9       /**< Program loading not supported. */
 
 #ifdef LOADER_CONF_ARCH
-#include LOADER_CONF_ARCH
+/* XXX working around cc65 bug */
+#include "loader/loader-arch.h"
+//#include LOADER_CONF_ARCH
 #endif /* LOADER_CONF_ARCH */
 
 /**
diff -udrN contiki-2.x-20061211/core/sys/process.c contiki-2.x-20061211-c64/core/sys/process.c
--- contiki-2.x-20061211/core/sys/process.c	2006-08-17 08:39:24.000000000 -0700
+++ contiki-2.x-20061211-c64/core/sys/process.c	2006-12-15 20:19:51.000000000 -0800
@@ -46,6 +46,7 @@
 
 #include <stdio.h>
 
+#include "contiki.h"
 #include "sys/process.h"
 #include "sys/arg.h"
 
@@ -274,6 +275,7 @@
 #endif
   }
 }
+
 /*---------------------------------------------------------------------------*/
 /*
  * Process the next event in the event queue and deliver it to
@@ -287,6 +289,7 @@
   static process_data_t data;
   static struct process *receiver;
   static struct process *p;
+
   
   /*
    * If there are any events in the queue, take the first one and walk
diff -udrN contiki-2.x-20061211/cpu/6502/Makefile.cc65 contiki-2.x-20061211-c64/cpu/6502/Makefile.cc65
--- contiki-2.x-20061211/cpu/6502/Makefile.cc65	2006-06-17 15:41:20.000000000 -0700
+++ contiki-2.x-20061211-c64/cpu/6502/Makefile.cc65	2006-12-15 20:17:41.000000000 -0800
@@ -6,16 +6,20 @@
 
 INCLUDES=-I. -I$(CONTIKI_CPU) \
            ${addprefix -I$(CONTIKI)/platform/$(TARGET)/, . apps ctk lib loader net} \
-           ${addprefix -I,$(APPDIRS)} -I$(CONTIKI)/core
+           ${addprefix -I$(CONTIKI_CPU)/, . apps lib loader net} \
+           ${addprefix -I,$(APPDIRS)} -I$(CONTIKI)/core -I$(CONTIKI)/core/net \
+           -I$(CONTIKI)/core/ctk -I$(CONTIKI_CPU)/loader
 
 
 CCDEP=gcc
 CDEPFLAGS=$(INCLUDES)
 
-CC=cc65
+CC=cl65
 AS=ca65
 LD=ld65
 CL=cl65
+AR=ar65
+AROPTS=a
 
 PORTDIRS=apps conf ctk lib loader net
 CONTIKICC65DIRS=${addprefix $(CONTIKI_CPU)/, apps lib loader net}
@@ -23,48 +27,43 @@
 CFLAGSCC65=$(INCLUDES) \
 	  -DWITH_PETSCII \
           -t $(SYS) --add-source --create-dep
+CFLAGS+=$(CFLAGSCC65)
 
 CLFLAGS=-Ln contiki-labels
 
 OPT=-Or
 
-#%.o: %.c
-
-#%.s: %.c
-#	$(CC) $(CFLAGS) $(OPT) -o $(notdir $@) $<
-
-#%.o: %.s
-#	$(AS) $(AFLAGS) -o $@ $<
-
-#%.o: %.S
-#	$(AS) $(AFLAGS) -o $@ $<
-
+CUSTOM_RULE_C_TO_OBJECTDIR_O=1
 $(OBJECTDIR)/%.o: %.c
-	$(CC) $(CFLAGS) $< -o $@
+	$(CC) $(CFLAGS) -o $@ -c $< 
+$(OBJECTDIR)/%.o: %.S
+	$(AS) $(AFLAGS) -o $@ $<
+$(OBJECTDIR)/%.o: %.s
+	$(AS) $(AFLAGS) -o $@ $<
 
 CONTIKI_TARGET_DIRS_CONCAT = ${addprefix $(CONTIKI)/platform/$(TARGET)/, \
                                $(CONTIKI_TARGET_DIRS)}
 
-vpath %.c $(PROJECTDIRS) \
-	  $(CONTIKIDIRS) $(APPDIRS) $(CONTIKI_TARGET_DIRS_CONCAT) \
-	  $(CONTIKI_CPU)
+vpath %.c $(CONTIKI_TARGET_DIRS_CONCAT) $(PROJECTDIRS) \
+	  $(CONTIKIDIRS) $(APPDIRS) \
+	  $(CONTIKI_CPU) $(CONTIKICC65DIRS) 
 
 vpath %.S $(PORTDIRS) $(CONTIKICC65DIRS) $(CONTIKIDIRS)
 
 %.sav:  %.o contiki-labels.o
 	cl65 --module -t $(SYS) -o $@ loader-arch-module.o $^
 
-%.prg:  %.o contiki-labels.o
-	cl65 --module -t $(SYS) -o $@ loader-arch-module.o $^
+%.prg:  $(OBJECTDIR)/%.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t $(SYS) -o $@ $^
 
-%.drv:  %-drv.o contiki-labels.o
-	cl65 --module -t $(SYS) -o $@ loader-arch-module.o $^
+%.drv:  $(OBJECTDIR)/%-drv.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t $(SYS) -o $@ $^
 
-%.drv:  %.o contiki-labels.o
-	cl65 --module -t $(SYS) -o $@ loader-arch-module.o $^
+%.drv:  $(OBJECTDIR)/%.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t $(SYS) -o $@ $^
 
-%.dsc:  %-dsc.o contiki-labels.o
-	cl65 --module -t $(SYS) -o $@ loader-arch-module-dsc.o $^
+%.dsc:  $(OBJECTDIR)/%-dsc.o contiki-labels.o $(OBJECTDIR)/loader-arch-module-dsc.o
+	cl65 --module -t $(SYS) -o $@ $^
 
 contiki-labels.s: contiki
 	./$(CONTIKI)/tools/cc65-make-labels
Binary files contiki-2.x-20061211/cpu/6502/.Makefile.cc65.swp and contiki-2.x-20061211-c64/cpu/6502/.Makefile.cc65.swp differ
Binary files contiki-2.x-20061211/.Makefile.include.swp and contiki-2.x-20061211-c64/.Makefile.include.swp differ
diff -udrN contiki-2.x-20061211/platform/c64/apps/config.c contiki-2.x-20061211-c64/platform/c64/apps/config.c
--- contiki-2.x-20061211/platform/c64/apps/config.c	2006-06-17 15:41:25.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/apps/config.c	2006-12-15 08:33:16.000000000 -0800
@@ -129,15 +129,16 @@
   return nt + 1;
 }
 /*-----------------------------------------------------------------------------------*/
-static u16_t addr[2];
+//static u16_t addr[2];
+static uip_ipaddr_t addr;
 static char *
 ipaddrconf(char *str)
 {
   char *nt;
   
   nt = nullterminate(str);
-  if(uiplib_ipaddrconv(str, (unsigned char *)addr)) {
-    uip_sethostaddr(addr);
+  if(uiplib_ipaddrconv(str, (unsigned char *)&addr)) {
+    uip_sethostaddr(&addr);
   }
 
   return nt + 1;
@@ -149,8 +150,8 @@
   char *nt;
   
   nt = nullterminate(str);
-  if(uiplib_ipaddrconv(str, (unsigned char *)addr)) {
-    uip_setnetmask(addr);
+  if(uiplib_ipaddrconv(str, (unsigned char *)&addr)) {
+    uip_setnetmask(&addr);
   }
 
   return nt + 1;
@@ -162,8 +163,8 @@
   char *nt;
   
   nt = nullterminate(str);
-  if(uiplib_ipaddrconv(str, (unsigned char *)addr)) {
-    uip_setdraddr(addr);
+  if(uiplib_ipaddrconv(str, (unsigned char *)&addr)) {
+    uip_setdraddr(&addr);
   }
 
   return nt + 1;
@@ -175,8 +176,8 @@
   char *nt;
   
   nt = nullterminate(str);
-  if(uiplib_ipaddrconv(str, (unsigned char *)addr)) {
-    resolv_conf(addr);
+  if(uiplib_ipaddrconv(str, (unsigned char *)&addr)) {
+    resolv_conf(&addr);
   }
 
   return nt + 1;
diff -udrN contiki-2.x-20061211/platform/c64/contiki-c64-main.c contiki-2.x-20061211-c64/platform/c64/contiki-c64-main.c
--- contiki-2.x-20061211/platform/c64/contiki-c64-main.c	1969-12-31 16:00:00.000000000 -0800
+++ contiki-2.x-20061211-c64/platform/c64/contiki-c64-main.c	2006-12-15 20:36:07.000000000 -0800
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2002-2004, 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. 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 operating system
+ *
+ * $Id: main.c,v 1.1 2006/06/17 22:41:25 adamdunkels Exp $
+ *
+ */
+
+#include "contiki.h"
+
+#include "ctk/ctk.h"
+#include "ctk/ctk-draw.h"
+
+#include "program-handler.h"
+
+#include "contiki-net.h"
+
+/*
+#include "configedit-dsc.h"
+#include "directory-dsc.h"
+#include "processes-dsc.h"
+*/
+
+#include "cfs-cbm.h"
+#include "cfs-init.h"
+
+#include <cbm.h>
+
+PROCESS_NAME(ctk_hires_service_process);
+PROCESS_NAME(cfs_cbm_process);
+
+PROCINIT(&tcpip_process, &resolv_process, &cfs_cbm_process,
+	 &ctk_process, &ctk_hires_service_process, &etimer_process, &program_handler_process);
+
+/*---------------------------------------------------------------------------*/
+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();
+}
+/*---------------------------------------------------------------------------*/
+void
+main(void)
+{
+  
+  log_message("Starting ", CONTIKI_VERSION_STRING);
+  
+  log_message(":  process_init", "");
+  process_init();
+
+  log_message(":  procinit_init", "");
+  procinit_init();
+
+  log_message("Starting process scheduling", "");  
+
+  while(1) {
+    if( process_run() <= 1 ) {
+log_message("Loading welcome.prg", "");
+      program_handler_load("welcome.prg", NULL);
+      break;
+    }
+log_message("still looping", "");
+  }
+
+log_message("Welcome done", "");
+    
+  
+  while(1) {
+    process_run();
+  }
+}
+/*---------------------------------------------------------------------------*/
+void
+reset(void)
+{
+  asm("lda #$36");
+  asm("sta $01");
+  asm("jmp $fce2");
+}
+/*---------------------------------------------------------------------------*/
diff -udrN contiki-2.x-20061211/platform/c64/contiki-conf.h contiki-2.x-20061211-c64/platform/c64/contiki-conf.h
--- contiki-2.x-20061211/platform/c64/contiki-conf.h	2006-08-15 07:46:33.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/contiki-conf.h	2006-12-12 19:47:52.000000000 -0800
@@ -3,6 +3,9 @@
 
 #define LC_CONF_INCLUDE "lib/lc-cc65.h"
 
+#define WITH_LOADER_ARCH 1
+#define LOADER_CONF_ARCH "loader/loader-arch.h"
+
 /*#pragma charmap(0, 0);
 #pragma charmap(1, 1);
 #pragma charmap(2, 2);
diff -udrN contiki-2.x-20061211/platform/c64/ctk/ctk-hires-service.c contiki-2.x-20061211-c64/platform/c64/ctk/ctk-hires-service.c
--- contiki-2.x-20061211/platform/c64/ctk/ctk-hires-service.c	2006-06-17 15:41:26.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/ctk/ctk-hires-service.c	2006-12-15 19:52:42.000000000 -0800
@@ -903,6 +903,7 @@
 PROCESS_THREAD(ctk_hires_service_process, ev, data) {
   PROCESS_BEGIN();
 
+log_message("hires started", "");
   s_ctk_draw_init();
   ctk_restore();
   
diff -udrN contiki-2.x-20061211/platform/c64/loader/cfs-cbm.c contiki-2.x-20061211-c64/platform/c64/loader/cfs-cbm.c
--- contiki-2.x-20061211/platform/c64/loader/cfs-cbm.c	2006-06-17 15:41:26.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/loader/cfs-cbm.c	2006-12-15 08:06:51.000000000 -0800
@@ -49,7 +49,7 @@
 static int  s_closedir(struct cfs_dir *p);
 
 SERVICE(cfs_cbm_service, cfs_service,
-{ s_open, s_close, s_read, s_write, s_opendir, s_readdir, s_closedir });
+{ s_open, s_close, s_read, s_write, NULL, s_opendir, s_readdir, s_closedir });
 
 
 PROCESS(cfs_cbm_process, "CFS KERNAL service");
diff -udrN contiki-2.x-20061211/platform/c64/loader/cfs-init.c contiki-2.x-20061211-c64/platform/c64/loader/cfs-init.c
--- contiki-2.x-20061211/platform/c64/loader/cfs-init.c	2006-06-17 15:41:26.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/loader/cfs-init.c	2006-12-15 08:06:15.000000000 -0800
@@ -48,21 +48,21 @@
 static int  s_readdir(struct cfs_dir *p, struct cfs_dirent *e) {return -1;}
 static int  s_closedir(struct cfs_dir *p) {return -1;}
 
-SERVICE(cfs_posix_service, cfs_service,
-{ s_open, s_close, s_read, s_write, s_opendir, s_readdir, s_closedir });
+SERVICE(cfs_init_service, cfs_service,
+{ s_open, s_close, s_read, s_write, NULL, s_opendir, s_readdir, s_closedir });
 
-PROCESS(cfs_posix_process, "CFS POSIX service");
-PROCESS_THREAD(cfs_posix_process, ev, data) {
+PROCESS(cfs_init_process, "CFS INIT service");
+PROCESS_THREAD(cfs_init_process, ev, data) {
   PROCESS_BEGIN();
 
-  SERVICE_REGISTER(cfs_posix_service);
+  SERVICE_REGISTER(cfs_init_service);
 
   while(ev != PROCESS_EVENT_SERVICE_REMOVED &&
 	ev != PROCESS_EVENT_EXIT) {
     PROCESS_WAIT_EVENT();
   }
 
-  SERVICE_REMOVE(cfs_posix_service);
+  SERVICE_REMOVE(cfs_init_service);
   
   PROCESS_END();
 }
diff -udrN contiki-2.x-20061211/platform/c64/main.c contiki-2.x-20061211-c64/platform/c64/main.c
--- contiki-2.x-20061211/platform/c64/main.c	2006-06-17 15:41:25.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/main.c	1969-12-31 16:00:00.000000000 -0800
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 2002-2004, 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. 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 operating system
- *
- * $Id: main.c,v 1.1 2006/06/17 22:41:25 adamdunkels Exp $
- *
- */
-
-#include "contiki.h"
-
-#include "ctk/ctk.h"
-#include "ctk/ctk-draw.h"
-
-#include "program-handler.h"
-
-
-#include "contiki-net.h"
-
-#include "configedit-dsc.h"
-#include "directory-dsc.h"
-#include "processes-dsc.h"
-
-#include "cfs-cbm.h"
-#include "cfs-init.h"
-
-
-#include <cbm.h>
-
-PROCINIT(&tcpip_process, &resolv_process, /*&cfs_init_process,*/
-	 &ctk_process, &etimer_process, &program_handler_process);
-
-unsigned char
-uip_fw_forward(void)
-{
-  return 0;
-}
-void
-uip_fw_periodic(void)
-{
-  return;
-}
-/*---------------------------------------------------------------------------*/
-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();
-}
-/*---------------------------------------------------------------------------*/
-void
-main(void)
-{
-  
-  log_message("Starting ", CONTIKI_VERSION_STRING);
-  
-  process_init();
-
-  log_message(": TCP/IP", "");
-
-  procinit_init();
-  
-  /*  tcpip_init(NULL);
-
-  resolv_init(NULL); */
-
-  log_message(": CTK GUI", "");
-  /*  ctk_init();*/
-
-  log_message(": Initial filesystem", "");
-  /*  cfs_init_init(NULL);*/
-
-  /*  program_handler_init();*/
-
-  /*
-  program_handler_add(&directory_dsc, "Directory", 1);
-  program_handler_add(&configedit_dsc, "Configuration", 1);
-  program_handler_add(&processes_dsc, "Processes", 1);  */
-  
-  
-  log_message("Starting process scheduling", "");  
-
-  while(1) {
-    if(process_run() == 0) {
-      program_handler_load("welcome.prg", NULL);
-      break;
-    }
-  }
-    
-  
-  while(1) {
-    process_run();
-  }
-}
-/*---------------------------------------------------------------------------*/
-void
-reset(void)
-{
-  asm("lda #$36");
-  asm("sta $01");
-  asm("jmp $fce2");
-}
-/*---------------------------------------------------------------------------*/
diff -udrN contiki-2.x-20061211/platform/c64/Makefile contiki-2.x-20061211-c64/platform/c64/Makefile
--- contiki-2.x-20061211/platform/c64/Makefile	2006-06-17 15:41:25.000000000 -0700
+++ contiki-2.x-20061211-c64/platform/c64/Makefile	2006-12-15 08:39:22.000000000 -0800
@@ -30,48 +30,45 @@
 # $Id: Makefile,v 1.1 2006/06/17 22:41:25 adamdunkels Exp $
 #
 
-CONTIKI=../..
-CONTIKICC65=../../cpu/6502
-
-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 c64
-	@echo programs
-	@echo d64
-	@echo programs
-	@echo '(Also check the Makefile for more targets to try...)'
-
-all: clean c64 programs
-
-programs:
-	$(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.programs
-c64:
-	$(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64
-
-c64-exo:
-	$(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64 contiki-exo
-
-wget:
-	$(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.c64-wget
+all: contiki
 
-installer: clean
-	$(MAKE) CONTIKI=$(CONTIKI) CONTIKICC65=$(CONTIKICC65) -f Makefile.installer
+d64: contiki config.cfg welcome.prg cfs-cbm.drv ctk-text.drv ctk-80col.drv \
+     ctk-default.drv rrnet.drv config.prg configedit.prg configedit.dsc
+	c1541 -format contiki,00 d64 contiki-c64.d64
+	c1541 -attach contiki-c64.d64 -write contiki
+	c1541 -attach contiki-c64.d64 -write welcome.prg
+	c1541 -attach contiki-c64.d64 -write cfs-cbm.drv
+	c1541 -attach contiki-c64.d64 -write ctk-text.drv
+	c1541 -attach contiki-c64.d64 -write ctk-80col.drv
+	c1541 -attach contiki-c64.d64 -write ctk-default.drv
+	c1541 -attach contiki-c64.d64 -write rrnet.drv
+	c1541 -attach contiki-c64.d64 -write configedit.prg
+	c1541 -attach contiki-c64.d64 -write configedit.dsc
+	c1541 -attach contiki-c64.d64 -write config.prg
+	c1541 -attach contiki-c64.d64 -write config.cfg
+	c1541 -attach contiki-c64.d64 -list
 
+config.cfg:
+	echo C CFS-CBM.DRV > config.cfg
+	echo T CTK-80COL.DRV >> config.cfg
+	echo . >> config.cfg
 
-CCDEPFLAGS=-D__CBM__ -D__C64__ -DCTK_HIRES -DWITH_UIP -DWITH_LOADER_ARCH -I/usr/local/lib/cc65/include
+vice: d64
+	x64 -sound -warp -truedrive -drive8type 1541 -drive8idle 0 -autostart contiki-c64.d64
 
-include $(CONTIKICC65)/Makefile.cc65
+CONTIKI=../..
+TARGET=c64
+SYS=$(TARGET)
+APPS+=program-handler process-list directory
+include $(CONTIKI)/Makefile.include
 
-d64:	
-	c1541 -format contiki,00 d64 contiki.d64
-	c1541 -attach contiki.d64 -write contiki
-	c1541 -attach contiki.d64 -write config.cfg
-	c1541 -attach contiki.d64 $(foreach dsc, $(wildcard *.dsc), -write $(dsc))
-	c1541 -attach contiki.d64 $(foreach prg, $(wildcard *.prg), -write $(prg))
-	c1541 -attach contiki.d64 $(foreach sav, $(wildcard *.sav), -write $(sav))
-	c1541 -attach contiki.d64 $(foreach drv, $(wildcard *.drv), -write $(drv))
-	c1541 -attach contiki.d64 $(foreach ser, $(wildcard *.ser), -write $(ser))
-	c1541 -attach contiki.d64 -list
+ctk-text.drv: $(OBJECTDIR)/ctk-conio-service.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t c64 -o $@ $^
+ctk-80col.drv: $(OBJECTDIR)/ctk-80col.o $(OBJECTDIR)/ctk-80col-asm.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t c64 -o $@ $^
+ctk-default.drv: $(OBJECTDIR)/ctk-hires-service.o $(OBJECTDIR)/ctk-hires-asm.o $(OBJECTDIR)/ctk-hires-theme-default.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t c64 -o $@ $^
+rrnet.drv: $(OBJECTDIR)/rrnet-drv.o $(OBJECTDIR)/cs8900a.o $(OBJECTDIR)/rrnet-drv-asm.o $(OBJECTDIR)/uip_arp.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
+	cl65 --module -t $(SYS) -o $@ $^
+	
+config.prg: $(OBJECTDIR)/config.o $(OBJECTDIR)/uiplib.o $(OBJECTDIR)/arg.o contiki-labels.o $(OBJECTDIR)/loader-arch-module.o
diff -udrN contiki-2.x-20061211/platform/c64/Makefile.c64 contiki-2.x-20061211-c64/platform/c64/Makefile.c64
--- contiki-2.x-20061211/platform/c64/Makefile.c64	1969-12-31 16:00:00.000000000 -0800
+++ contiki-2.x-20061211-c64/platform/c64/Makefile.c64	2006-12-15 20:36:19.000000000 -0800
@@ -0,0 +1,19 @@
+CONTIKI_TARGET_DIRS = . apps ctk lib loader net 
+
+CONTIKI_TARGET_MAIN = contiki-c64-main.c
+
+CTKC64 = $(CTK) ctk-draw.c ctk-hires-service.c ctk-hires-theme-default.c
+
+CONTIKI_TARGET_SOURCEFILES += loader-arch.c petsciiconv.c \
+                              configedit-dsc.c \
+                              cfs-cbm.c uip_arch.c $(CONTIKI_TARGET_MAIN) 
+CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) $(CTKC64)
+PROJECT_OBJECTFILES += $(OBJECTDIR)/contiki-c64-main.o $(OBJECTDIR)/lc-asm.o $(OBJECTDIR)/ctk-hires-asm.o
+
+CFLAGS += -DCTK_HIRES -DWITH_UIP -DWITH_LOADER_ARCH -DWITH_ETHERNET 
+
+SYS=c64
+include $(CONTIKI)/cpu/6502/Makefile.cc65
+
+contiki: $(PROJECT_OBJECTFILES) contiki-$(TARGET).a 
+	cl65 -C c64.cfg -Ln contiki-labels -o $@ -t $(SYS) $^ 
