From b30fef755e216bb4da8fe1d5227a5065f55d96b2 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Fri, 24 Jul 2009 20:44:12 -0400 Subject: [PATCH] Fixed a couple more things for Hi-Tech C. --- makefile | 7 +++++-- picobit-vm.h | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/makefile b/makefile index fc6583e..6a8ebbd 100644 --- a/makefile +++ b/makefile @@ -3,7 +3,7 @@ all: picobit-vm picobit-vm: picobit-vm.o gc.o bignums.o debug.o primitives.o dispatch.o - cc -o picobit-vm picobit-vm.o gc.o bignums.o debug.o primitives.o dispatch.o -lpcap + cc -o picobit-vm picobit-vm.o gc.o bignums.o debug.o primitives.o dispatch.o # -lpcap .c.o: $(CC) -O -c $*.c @@ -27,10 +27,13 @@ debug-gc: cc -O -c -g -DDEBUG -DDEBUG_GC dispatch.c make picobit-vm -mcc: picoboard2.c picobit-vm.c gc.c bignums.c debug.c primitives.c dispatch.c +mcc: picoboard2.c picobit-vm.c gc.c bignums.c debug.c primitives.c dispatch.c picobit-vm.h cpp -DPICOBOARD2 picobit-vm.c | /bin/grep -v '^#' > picobit-vm.mcc.c wine ~/.wine/drive_c/MCC18/bin/mcc18.exe -I=C:/MCC18/h -p=18f4550 picoboard2.c wine ~/.wine/drive_c/MCC18/bin/mplink.exe -lC:/MCC18/lib -mpicoboard2.map picoboard2.lkr picoboard2.o -o picoboard2.hex +hi_tech_c: picobit-vm.c gc.c bignums.c debug.c primitives.c dispatch.c picobit-vm.h + picc18 -DHI_TECH_C --chip=18F4550 picobit-vm.c + clean: rm -f *.o *~ picobit-vm diff --git a/picobit-vm.h b/picobit-vm.h index 4919d32..25a3b9f 100644 --- a/picobit-vm.h +++ b/picobit-vm.h @@ -133,6 +133,10 @@ char buf [MAX_PACKET_SIZE]; // buffer for writing // error handling +#ifdef HI_TECH_C +void halt_with_error () {while(1);} +#endif + #ifdef WORKSTATION #define ERROR(prim, msg) error (prim, msg) #define TYPE_ERROR(prim, type) type_error (prim, type) @@ -175,6 +179,18 @@ void type_error (char *prim, char *type); #define ram_set(a,x) *(uint8*)(a+0x200) = (x) #endif +#ifdef HI_TECH_C +// cannot be a macro +uint8 ram_get(uint16 a) { + uint8 *p = a+0x200; + return *p; +} +void ram_set(uint16 a, uint8 x) { + uint8 *p = a+0x200; + *p = x; +} +#endif + #ifdef WORKSTATION uint8 ram_mem[RAM_BYTES + VEC_BYTES]; #define ram_get(a) ram_mem[a] -- 2.11.4.GIT