diff --git a/8ball20.prg b/8ball20.prg index beb50df..addaf0a 100644 Binary files a/8ball20.prg and b/8ball20.prg differ diff --git a/8ball64.prg b/8ball64.prg index 8145304..bc3ea7a 100644 Binary files a/8ball64.prg and b/8ball64.prg differ diff --git a/8ballvm20.prg b/8ballvm20.prg index 0ca0e93..8e75058 100644 Binary files a/8ballvm20.prg and b/8ballvm20.prg differ diff --git a/8ballvm64.prg b/8ballvm64.prg index d3aff7b..7b26aa3 100644 Binary files a/8ballvm64.prg and b/8ballvm64.prg differ diff --git a/Makefile b/Makefile index 484bc54..cd8203b 100644 --- a/Makefile +++ b/Makefile @@ -10,10 +10,14 @@ CC65BINDIR = $(CC65DIR)/bin CC65LIBDIR = $(CC65DIR)/lib APPLECMDR = ~/Desktop/Apple2/AppleCommander-1.3.5.jar -all: eightball eightballvm disass 8ball20.prg 8ballvm20.prg 8ball64.prg 8ballvm64.prg eightball.system ebvm.system test.d64 test.dsk +all: eightball eightballvm disass 8ball20.prg 8ballvm20.prg disass20.prg 8ball64.prg 8ballvm64.prg disass64.prg eightball.system ebvm.system disass.system test.d64 test.dsk clean: - rm -f eightball eightballvm *.o 8ball20.* 8ball64.* eightball*.s eightball.system test.d64 *.map *.vice + rm -f eightball eightballvm disass *.o 8ball20.* 8ball64.* eightball*.s eightball.system test.d64 *.map *.vice + +# +# Linux target +# eightball.o: eightball.c eightballutils.h eightballvm.h # 32 bit so sizeof(int*) = sizeof(int) [I am lazy] @@ -43,6 +47,10 @@ disass: disass.o eightballutils.o # 32 bit so sizeof(int*) = sizeof(int) [I am lazy] gcc -m32 -Wall -Wextra -g -o disass disass.o eightballutils.o -lm +# +# VIC20 target +# + eightball_20.o: eightball.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t vic20 -D VIC20 -o eightball_20.s eightball.c $(CC65BINDIR)/ca65 -t vic20 eightball_20.s @@ -51,6 +59,10 @@ eightballvm_20.o: eightballvm.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t vic20 -D VIC20 -o eightballvm_20.s eightballvm.c $(CC65BINDIR)/ca65 -t vic20 eightballvm_20.s +disass_20.o: disass.c eightballutils.h eightballvm.h + $(CC65BINDIR)/cc65 -Or -t vic20 -D VIC20 -o disass_20.s disass.c + $(CC65BINDIR)/ca65 -t vic20 disass_20.s + eightballutils_20.o: eightballutils.c eightballutils.h $(CC65BINDIR)/cc65 -Or -t vic20 -D VIC20 -o eightballutils_20.s eightballutils.c $(CC65BINDIR)/ca65 -t vic20 eightballutils_20.s @@ -61,6 +73,13 @@ eightballutils_20.o: eightballutils.c eightballutils.h 8ballvm20.prg: eightballvm_20.o eightballutils_20.o $(CC65BINDIR)/ld65 -m 8ballvm20.map -o 8ballvm20.prg -Ln 8ballvm20.vice -C vic20-32k.cfg eightballvm_20.o eightballutils_20.o $(CC65LIBDIR)/vic20.lib +disass20.prg: disass_20.o eightballutils_20.o + $(CC65BINDIR)/ld65 -m disass20.map -o disass20.prg -Ln disass20.vice -C vic20-32k.cfg disass_20.o eightballutils_20.o $(CC65LIBDIR)/vic20.lib + +# +# C64 target +# + eightball_64.o: eightball.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t c64 -D C64 -o eightball_64.s eightball.c $(CC65BINDIR)/ca65 -t c64 eightball_64.s @@ -69,6 +88,10 @@ eightballvm_64.o: eightballvm.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t c64 -D C64 -o eightballvm_64.s eightballvm.c $(CC65BINDIR)/ca65 -t c64 eightballvm_64.s +disass_64.o: disass.c eightballutils.h eightballvm.h + $(CC65BINDIR)/cc65 -Or -t c64 -D C64 -o disass_64.s disass.c + $(CC65BINDIR)/ca65 -t c64 disass_64.s + eightballutils_64.o: eightballutils.c eightballutils.h $(CC65BINDIR)/cc65 -Or -t c64 -D C64 -o eightballutils_64.s eightballutils.c $(CC65BINDIR)/ca65 -t c64 eightballutils_64.s @@ -79,6 +102,13 @@ eightballutils_64.o: eightballutils.c eightballutils.h 8ballvm64.prg: eightballvm_64.o eightballutils_64.o $(CC65BINDIR)/ld65 -m 8ballvm64.map -o 8ballvm64.prg -Ln 8ballvm64.vice -C c64.cfg eightballvm_64.o eightballutils_64.o $(CC54LIBDIR)/c64.lib +disass64.prg: disass_64.o eightballutils_64.o + $(CC65BINDIR)/ld65 -m disass64.map -o disass64.prg -Ln disass64.vice -C c64.cfg disass_64.o eightballutils_64.o $(CC65LIBDIR)/c64.lib + +# +# Apple II target +# + eightball_a2e.o: eightball.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t apple2enh -D A2E -o eightball_a2e.s eightball.c $(CC65BINDIR)/ca65 -t apple2enh eightball_a2e.s @@ -87,6 +117,10 @@ eightballvm_a2e.o: eightballvm.c eightballutils.h eightballvm.h $(CC65BINDIR)/cc65 -Or -t apple2enh -D A2E -o eightballvm_a2e.s eightballvm.c $(CC65BINDIR)/ca65 -t apple2enh eightballvm_a2e.s +disass_a2e.o: disass.c eightballutils.h eightballvm.h + $(CC65BINDIR)/cc65 -Or -t apple2enh -D A2E -o disass_a2e.s disass.c + $(CC65BINDIR)/ca65 -t apple2enh disass_a2e.s + eightballutils_a2e.o: eightballutils.c eightballutils.h $(CC65BINDIR)/cc65 -Or -t apple2enh -D A2E -o eightballutils_a2e.s eightballutils.c $(CC65BINDIR)/ca65 -t apple2enh eightballutils_a2e.s @@ -97,33 +131,54 @@ eightball.system: eightball_a2e.o eightballutils_a2e.o ebvm.system: eightballvm_a2e.o eightballutils_a2e.o $(CC65BINDIR)/ld65 -m 8ballvma2e.map -o ebvm.system -C apple2enh-system.cfg eightballvm_a2e.o eightballutils_a2e.o apple2enh-iobuf-0800.o $(CC65LIBDIR)/apple2enh.lib +# +disass.system: disass_a2e.o eightballutils_a2e.o + $(CC65BINDIR)/ld65 -m disassa2e.map -o disass.system -C apple2enh-system.cfg disass_a2e.o eightballutils_a2e.o apple2enh-iobuf-0800.o $(CC65LIBDIR)/apple2enh.lib + + +# +# EightBall scripts +# + unittest.8bp: unittest.8b tr {} [] unittest.8bp # ASCII -> PETSCII sieve4.8bp: sieve4.8b tr {} [] sieve4.8bp # ASCII -> PETSCII -test.d64: 8ball20.prg 8ballvm20.prg 8ball64.prg 8ballvm64.prg unittest.8bp sieve4.8bp +# +# Diskette images +# + +test.d64: 8ball20.prg 8ballvm20.prg disass20.prg 8ball64.prg 8ballvm64.prg disass64.prg unittest.8bp sieve4.8bp c1541 -format eb,00 d64 test.d64 c1541 -attach test.d64 -write 8ball20.prg c1541 -attach test.d64 -write 8ballvm20.prg + c1541 -attach test.d64 -write disass20.prg c1541 -attach test.d64 -write 8ball64.prg c1541 -attach test.d64 -write 8ballvm64.prg + c1541 -attach test.d64 -write disass64.prg c1541 -attach test.d64 -write unittest.8bp unit.8b,s c1541 -attach test.d64 -write sieve4.8bp sieve4.8b,s -test.dsk: eightball.system ebvm.system sieve4.8b tetris.8b bytecode +test.dsk: eightball.system ebvm.system disass.system sieve4.8b tetris.8b bytecode java -jar $(APPLECMDR) -d test.dsk e8ball.system java -jar $(APPLECMDR) -d test.dsk ebvm.system + java -jar $(APPLECMDR) -d test.dsk disass.system java -jar $(APPLECMDR) -d test.dsk sieve4.8b java -jar $(APPLECMDR) -d test.dsk tetris.8b java -jar $(APPLECMDR) -d test.dsk bytecode java -jar $(APPLECMDR) -p test.dsk e8ball.system sys "); - getln((char*)memory, 15); - if (strlen((char*)memory) == 0) { - strcpy((char*)memory, "bytecode"); + getln(p, 15); +#else + *p = 0; +#endif + if (strlen(p) == 0) { + strcpy(p, "bytecode"); } print("Loading '"); - print((char*)memory); + print(p); print("'\n"); - fp = fopen((char*)memory, "r"); + fp = fopen(p, "r"); } while (!fp); while (!feof(fp)) { ch = fgetc(fp); diff --git a/disass.system b/disass.system new file mode 100644 index 0000000..1b34bb9 Binary files /dev/null and b/disass.system differ diff --git a/disass20.prg b/disass20.prg new file mode 100644 index 0000000..f2b8c46 Binary files /dev/null and b/disass20.prg differ diff --git a/disass64.prg b/disass64.prg new file mode 100644 index 0000000..f4526b6 Binary files /dev/null and b/disass64.prg differ diff --git a/ebvm.system b/ebvm.system index 5a0d27a..50bdeec 100644 Binary files a/ebvm.system and b/ebvm.system differ diff --git a/eightball b/eightball index 7328ff8..7120988 100644 Binary files a/eightball and b/eightball differ diff --git a/eightball.system b/eightball.system index 1e57418..d8296c9 100644 Binary files a/eightball.system and b/eightball.system differ diff --git a/eightballutils.h b/eightballutils.h index 37215a3..61bc871 100644 --- a/eightballutils.h +++ b/eightballutils.h @@ -37,7 +37,7 @@ /* */ /**************************************************************************/ -#define VERSIONSTR "0.70" +#define VERSIONSTR "0.71" void print(char *str); @@ -45,9 +45,7 @@ void printchar(char c); void printdec(unsigned int val); -#ifdef __GNUC__ char hexval2char(unsigned char val); -#endif void printhex(unsigned int val); diff --git a/eightballvm b/eightballvm index 0067626..2a7d8e2 100644 Binary files a/eightballvm and b/eightballvm differ diff --git a/eightballvm.c b/eightballvm.c index 40e43a8..b5b3d71 100644 --- a/eightballvm.c +++ b/eightballvm.c @@ -896,8 +896,13 @@ void load() pc = RTPCSTART; do { +#ifndef VIC20 + /* TODO: Not sure why getln() is blowing up on VIC20 */ print("\nBytecode file (CR for default)>"); getln(p, 15); +#else + *p = 0; +#endif if (strlen(p) == 0) { strcpy(p, "bytecode"); } diff --git a/test.d64 b/test.d64 index 06ed87e..daf253a 100644 Binary files a/test.d64 and b/test.d64 differ diff --git a/test.dsk b/test.dsk index b363707..78e8764 100644 Binary files a/test.dsk and b/test.dsk differ