diff --git a/Makefile b/Makefile index 19c49e5..62fcd78 100644 --- a/Makefile +++ b/Makefile @@ -8,32 +8,63 @@ windows: bin/c2d.exe bin/text2page.exe bin/page2text.exe dist: all windows -c2d.h: c2d.h.0 asm/loader.s asm/bar.s makeheader +cc65-sources-2.13.3.tar.bz2: + curl -sLO https://github.com/mrdudz/cc65-old/raw/master/cc65-sources-2.13.3.tar.bz2 + +cc65-2.13.3/bin/cl65: cc65-sources-2.13.3.tar.bz2 + tar zxf cc65-sources-2.13.3.tar.bz2 + (cd cc65-2.13.3; /usr/bin/sed 's!/usr/local!'${PWD}'/cc65-2.13.3!' Makefile; make -j4 bins || make bins && make install || true) + +c2d.h: c2d.h.0 asm/loader.s asm/bar.s makeheader cc65-2.13.3/bin/cl65 ./makeheader -bin/c2d: c2d.c c2d.h - gcc -Wall -Wno-missing-braces -I. -O3 -o $@ $< -lm +bin/c2d_arm: c2d.c c2d.h + gcc -Wall -Wno-missing-braces -I. -O3 -target arm64-apple-macos11 -o $@ $< -lm + +bin/text2page_arm: text2page.c + gcc -Wall -O3 -target arm64-apple-macos11 -o $@ $< -lm + +bin/page2text_arm: page2text.c + gcc -Wall -O3 -target arm64-apple-macos11 -o $@ $< -lm + +bin/mandelbrotgr_arm: mandelbrotgr.c + gcc -Wall -O3 -target arm64-apple-macos11 -o $@ $< -lm + +bin/c2d_x86: c2d.c c2d.h + gcc -Wall -Wno-missing-braces -I. -O3 -target x86_64-apple-macos10.12 -o $@ $< -lm + +bin/text2page_x86: text2page.c + gcc -Wall -O3 -target -x86_64-apple-macos10.12 -o $@ $< -lm + +bin/page2text_x86: page2text.c + gcc -Wall -O3 -target x86_64-apple-macos10.12 -o $@ $< -lm + +bin/mandelbrotgr_x86: mandelbrotgr.c + gcc -Wall -O3 -target x86_64-apple-macos10.12 -o $@ $< -lm + +bin/c2d: bin/c2d_x86 bin/c2d_arm + lipo -create -output $@ $< + +bin/text2page: bin/text2page_x86 bin/text2page_arm + lipo -create -output $@ $< + +bin/page2text: bin/page2text_x86 bin/page2text_arm + lipo -create -output $@ $< + +bin/mandelbrotgr: bin/mandelbrotgr_x86 bin/mandelbrotgr_arm + lipo -create -output $@ $< bin/c2d.exe: c2d.c c2d.h $(WIN32GCC) -Wall -Wno-missing-braces -I. -O3 -o $@ $< -bin/text2page: text2page.c - gcc -Wall -O3 -o $@ $< -lm - bin/text2page.exe: text2page.c $(WIN32GCC) -Wall -O3 -o $@ $< -bin/page2text: page2text.c - gcc -Wall -O3 -o $@ $< -lm - bin/page2text.exe: page2text.c $(WIN32GCC) -Wall -O3 -o $@ $< -bin/mandelbrotgr: mandelbrotgr.c - gcc -Wall -O3 -o $@ $< -lm - clean: - rm -f bin/* *.dsk c2d.h c2d.h.1 + rm -rf bin/* *.dsk c2d.h c2d.h.1 cc65-sources-2.13.3.tar.bz2 cc65-2.13.3 (cd asm; make clean) gameserverclient.text: Makefile diff --git a/asm/Makefile b/asm/Makefile index 14559cc..eef9cfc 100644 --- a/asm/Makefile +++ b/asm/Makefile @@ -1,9 +1,6 @@ + CL = cl65 CL_FLAGS = -t none --listing --list-bytes 100 -#CL_FLAGS = -t apple1 -C apple1-16k.cfg --listing --list-bytes 100 -CC = cl65 -CC_FLAGS = --static-locals -t apple1 -C apple1-16k.cfg -C2T = c2t ASRC = $(shell echo *.s) AOBJ = $(ASRC:%.s=%.o) @@ -17,11 +14,4 @@ clean: -rm -f $(ABIN) $(AOBJ) $(ALST) $(AMON) %: %.s - $(CL) $(CL_FLAGS) $< - -%: %.c - $(CC) $(CC_FLAGS) $< - -%.mon: % - $(C2T) $< $@ - + $(CL) $(CL_FLAGS) $< diff --git a/bin/c2d b/bin/c2d index c477f2b..97d3dbc 100755 Binary files a/bin/c2d and b/bin/c2d differ diff --git a/bin/c2d.exe b/bin/c2d.exe index 320f88c..8393615 100755 Binary files a/bin/c2d.exe and b/bin/c2d.exe differ diff --git a/bin/page2text b/bin/page2text index 7ec06b0..7e92f2a 100755 Binary files a/bin/page2text and b/bin/page2text differ diff --git a/bin/page2text.exe b/bin/page2text.exe index 9d10902..c9ddf7f 100755 Binary files a/bin/page2text.exe and b/bin/page2text.exe differ diff --git a/bin/text2page b/bin/text2page index 102331f..0266d17 100755 Binary files a/bin/text2page and b/bin/text2page differ diff --git a/bin/text2page.exe b/bin/text2page.exe index da87893..2d128e6 100755 Binary files a/bin/text2page.exe and b/bin/text2page.exe differ diff --git a/c2d.c b/c2d.c index 91655aa..dd1a733 100644 --- a/c2d.c +++ b/c2d.c @@ -336,7 +336,8 @@ char *getext(char *filename) if (sp == strlen(filename) || sp == 0) return (NULL); - if ((rval = (char *) malloc(sp * sizeof(char))) == NULL); //do error code + if ((rval = (char *) malloc(sp * sizeof(char))) == NULL) + ; //do error code rval[sp] = '\0'; for (i = 0; i < sp + i; i++) diff --git a/c2d.h b/c2d.h index 28f501e..7f870ce 100644 --- a/c2d.h +++ b/c2d.h @@ -9171,31 +9171,24 @@ gr: end: */ unsigned char loadercode[] = { - 0xAD,0xBE,0x0C,0xF0,0x08,0xA9,0x00,0x8D, - 0x50,0xC0,0x8D,0x53,0xC0,0xA2,0x00,0xBD, - 0x00,0x08,0x9D,0x00,0x04,0xBD,0x80,0x08, - 0x9D,0x80,0x04,0xBD,0x00,0x09,0x9D,0x00, - 0x05,0xBD,0x80,0x09,0x9D,0x80,0x05,0xBD, - 0x00,0x0A,0x9D,0x00,0x06,0xBD,0x80,0x0A, - 0x9D,0x80,0x06,0xBD,0x00,0x0B,0x9D,0x00, - 0x07,0xBD,0x80,0x0B,0x9D,0x80,0x07,0xE8, - 0xE0,0x78,0xD0,0xCB,0xA9,0x01,0xA0,0x0C, - 0x99,0xE8,0xB7,0xA9,0x00,0xA0,0x08,0x99, - 0xE8,0xB7,0xA9,0x02,0x85,0x04,0xA2,0x00, - 0xBD,0x64,0x0C,0x9D,0x00,0x03,0xE8,0x10, - 0xF7,0x4C,0x00,0x03,0xAD,0x57,0x03,0x85, - 0x02,0xAE,0x55,0x03,0xCA,0xCA,0x86,0x00, - 0xA5,0x04,0xA0,0x04,0x99,0xE8,0xB7,0xA5, - 0x00,0xD0,0x05,0xAD,0x56,0x03,0x10,0x02, - 0xA9,0x0F,0x85,0x03,0xA5,0x03,0xA0,0x05, - 0x99,0xE8,0xB7,0xA5,0x02,0x18,0x65,0x03, - 0xA0,0x09,0x99,0xE8,0xB7,0xA0,0xE8,0xA9, - 0xB7,0x20,0xB5,0xB7,0xB0,0x18,0xA9,0x00, - 0x85,0x48,0xC6,0x03,0x10,0xDE,0xA5,0x02, - 0x18,0x69,0x10,0x85,0x02,0xE6,0x04,0xC6, - 0x00,0x10,0xBD,0x6C,0x58,0x03,0x4C,0x69, - 0xFF + 0xad, 0xbe, 0x0c, 0xf0, 0x08, 0xa9, 0x00, 0x8d, 0x50, 0xc0, 0x8d, 0x53, + 0xc0, 0xa2, 0x00, 0xbd, 0x00, 0x08, 0x9d, 0x00, 0x04, 0xbd, 0x80, 0x08, + 0x9d, 0x80, 0x04, 0xbd, 0x00, 0x09, 0x9d, 0x00, 0x05, 0xbd, 0x80, 0x09, + 0x9d, 0x80, 0x05, 0xbd, 0x00, 0x0a, 0x9d, 0x00, 0x06, 0xbd, 0x80, 0x0a, + 0x9d, 0x80, 0x06, 0xbd, 0x00, 0x0b, 0x9d, 0x00, 0x07, 0xbd, 0x80, 0x0b, + 0x9d, 0x80, 0x07, 0xe8, 0xe0, 0x78, 0xd0, 0xcb, 0xa9, 0x01, 0xa0, 0x0c, + 0x99, 0xe8, 0xb7, 0xa9, 0x00, 0xa0, 0x08, 0x99, 0xe8, 0xb7, 0xa9, 0x02, + 0x85, 0x04, 0xa2, 0x00, 0xbd, 0x64, 0x0c, 0x9d, 0x00, 0x03, 0xe8, 0x10, + 0xf7, 0x4c, 0x00, 0x03, 0xad, 0x57, 0x03, 0x85, 0x02, 0xae, 0x55, 0x03, + 0xca, 0xca, 0x86, 0x00, 0xa5, 0x04, 0xa0, 0x04, 0x99, 0xe8, 0xb7, 0xa5, + 0x00, 0xd0, 0x05, 0xad, 0x56, 0x03, 0x10, 0x02, 0xa9, 0x0f, 0x85, 0x03, + 0xa5, 0x03, 0xa0, 0x05, 0x99, 0xe8, 0xb7, 0xa5, 0x02, 0x18, 0x65, 0x03, + 0xa0, 0x09, 0x99, 0xe8, 0xb7, 0xa0, 0xe8, 0xa9, 0xb7, 0x20, 0xb5, 0xb7, + 0xb0, 0x18, 0xa9, 0x00, 0x85, 0x48, 0xc6, 0x03, 0x10, 0xde, 0xa5, 0x02, + 0x18, 0x69, 0x10, 0x85, 0x02, 0xe6, 0x04, 0xc6, 0x00, 0x10, 0xbd, 0x6c, + 0x58, 0x03, 0x4c, 0x69, 0xff }; +unsigned int loadercode_len = 185; /* ;bar.s ; @@ -9405,33 +9398,24 @@ bar: end: */ unsigned char barcode[] = { - 0xAD,0xE7,0x0C,0xF0,0x08,0xA9,0x00,0x8D, - 0x50,0xC0,0x8D,0x53,0xC0,0xA2,0x00,0xBD, - 0x00,0x08,0x9D,0x00,0x04,0xBD,0x80,0x08, - 0x9D,0x80,0x04,0xBD,0x00,0x09,0x9D,0x00, - 0x05,0xBD,0x80,0x09,0x9D,0x80,0x05,0xBD, - 0x00,0x0A,0x9D,0x00,0x06,0xBD,0x80,0x0A, - 0x9D,0x80,0x06,0xBD,0x00,0x0B,0x9D,0x00, - 0x07,0xBD,0x80,0x0B,0x9D,0x80,0x07,0xE8, - 0xE0,0x78,0xD0,0xCB,0xA9,0x00,0x85,0x05, - 0x85,0x06,0xA9,0x01,0xA0,0x0C,0x99,0xE8, - 0xB7,0xA9,0x00,0xA0,0x08,0x99,0xE8,0xB7, - 0xA9,0x02,0x85,0x04,0xA2,0x00,0xBD,0x6C, - 0x0C,0x9D,0x00,0x03,0xE8,0xE0,0xD0,0xD0, - 0xF5,0x4C,0x00,0x03,0xAD,0x78,0x03,0x85, - 0x02,0xAE,0x76,0x03,0xCA,0xCA,0x86,0x00, - 0xA5,0x04,0xA0,0x04,0x99,0xE8,0xB7,0xA5, - 0x00,0xD0,0x05,0xAD,0x77,0x03,0x10,0x02, - 0xA9,0x0F,0x85,0x03,0xA5,0x03,0xA0,0x05, - 0x99,0xE8,0xB7,0xA5,0x02,0x18,0x65,0x03, - 0xA0,0x09,0x99,0xE8,0xB7,0xA0,0xE8,0xA9, - 0xB7,0x20,0xB5,0xB7,0xB0,0x39,0xA9,0x00, - 0x85,0x48,0xE6,0x05,0xA6,0x06,0xBD,0x7F, - 0x03,0xC5,0x05,0xD0,0x16,0xA5,0x06,0x18, - 0x6D,0x7D,0x03,0x8D,0x5B,0x03,0xAD,0x7E, - 0x03,0x8D,0x5C,0x03,0xA9,0x20,0x8D,0x00, - 0x04,0xE6,0x06,0xC6,0x03,0x10,0xBD,0xA5, - 0x02,0x18,0x69,0x10,0x85,0x02,0xE6,0x04, - 0xC6,0x00,0x10,0x9C,0x6C,0x79,0x03,0x4C, - 0x69,0xFF + 0xad, 0xe7, 0x0c, 0xf0, 0x08, 0xa9, 0x00, 0x8d, 0x50, 0xc0, 0x8d, 0x53, + 0xc0, 0xa2, 0x00, 0xbd, 0x00, 0x08, 0x9d, 0x00, 0x04, 0xbd, 0x80, 0x08, + 0x9d, 0x80, 0x04, 0xbd, 0x00, 0x09, 0x9d, 0x00, 0x05, 0xbd, 0x80, 0x09, + 0x9d, 0x80, 0x05, 0xbd, 0x00, 0x0a, 0x9d, 0x00, 0x06, 0xbd, 0x80, 0x0a, + 0x9d, 0x80, 0x06, 0xbd, 0x00, 0x0b, 0x9d, 0x00, 0x07, 0xbd, 0x80, 0x0b, + 0x9d, 0x80, 0x07, 0xe8, 0xe0, 0x78, 0xd0, 0xcb, 0xa9, 0x00, 0x85, 0x05, + 0x85, 0x06, 0xa9, 0x01, 0xa0, 0x0c, 0x99, 0xe8, 0xb7, 0xa9, 0x00, 0xa0, + 0x08, 0x99, 0xe8, 0xb7, 0xa9, 0x02, 0x85, 0x04, 0xa2, 0x00, 0xbd, 0x6c, + 0x0c, 0x9d, 0x00, 0x03, 0xe8, 0xe0, 0xd0, 0xd0, 0xf5, 0x4c, 0x00, 0x03, + 0xad, 0x78, 0x03, 0x85, 0x02, 0xae, 0x76, 0x03, 0xca, 0xca, 0x86, 0x00, + 0xa5, 0x04, 0xa0, 0x04, 0x99, 0xe8, 0xb7, 0xa5, 0x00, 0xd0, 0x05, 0xad, + 0x77, 0x03, 0x10, 0x02, 0xa9, 0x0f, 0x85, 0x03, 0xa5, 0x03, 0xa0, 0x05, + 0x99, 0xe8, 0xb7, 0xa5, 0x02, 0x18, 0x65, 0x03, 0xa0, 0x09, 0x99, 0xe8, + 0xb7, 0xa0, 0xe8, 0xa9, 0xb7, 0x20, 0xb5, 0xb7, 0xb0, 0x39, 0xa9, 0x00, + 0x85, 0x48, 0xe6, 0x05, 0xa6, 0x06, 0xbd, 0x7f, 0x03, 0xc5, 0x05, 0xd0, + 0x16, 0xa5, 0x06, 0x18, 0x6d, 0x7d, 0x03, 0x8d, 0x5b, 0x03, 0xad, 0x7e, + 0x03, 0x8d, 0x5c, 0x03, 0xa9, 0x20, 0x8d, 0x00, 0x04, 0xe6, 0x06, 0xc6, + 0x03, 0x10, 0xbd, 0xa5, 0x02, 0x18, 0x69, 0x10, 0x85, 0x02, 0xe6, 0x04, + 0xc6, 0x00, 0x10, 0x9c, 0x6c, 0x79, 0x03, 0x4c, 0x69, 0xff }; +unsigned int barcode_len = 226; diff --git a/makeheader b/makeheader index 5cc45c8..0505a58 100755 --- a/makeheader +++ b/makeheader @@ -1,44 +1,19 @@ #!/bin/bash -header() -{ - FILE=$1 - VAR=$2 - EOL=$3 - BYTES=$(hexdump -v $FILE | sed 's/^.......//' | wc -w | awk '{print $1}'); - - echo "/*" - expand ${FILE}.s - echo "*/" - - printf "unsigned char $VAR[] = {\n\t" - - for i in $(hexdump -v $FILE | sed 's/^.......//'); - do - printf "0x%02X" 0x$i - BYTES=$((BYTES - 1)) - if ((BYTES != 0)) - then - printf "," - fi - EOL=$((EOL - 1)) - if ((EOL == 0)) - then - EOL=8 - printf "\n\t" - fi - done - - printf "\n};\n" -} - cd asm make clean -make +PATH=../cc65-2.13.3/bin:$PATH make ( -header loader loadercode 8 -header bar barcode 8 +echo "/*" +expand loader.s +echo "*/" +/usr/bin/xxd -i loader | sed 's/loader/loadercode/' + +echo "/*" +expand bar.s +echo "*/" +/usr/bin/xxd -i bar | sed 's/bar/barcode/' ) > ../c2d.h.1 cd ..