ASM = var/watch4.asm
NLS = main.nls controller.nls register.nls registers.nls registers-common.nls	\
basic-math.nls
ROM = rom.nls rom-common.nls
RAM = io8.nls io-common.nls
SPEED = 7350

.PHONY: all simul test clean shakespeare

all: $(ROM) $(RAM) $(NLS)

rom: $(ASM)
	./bin/simpasm.pl < $(ASM) > rom

$(ROM): rom bin/makerom_w.sh bin/makerom.sh
	./bin/makerom_w.sh rom

$(RAM):
	./bin/makeram.sh 8 > io8.nls

main.nls: src/main.tpl
controller.nls: src/controller.tpl
registers.nls: src/registers.tpl
register.nls: src/register.tpl
registers-common.nls: src/registers-common.tpl
basic-math.nls: src/basic-math.tpl

$(NLS):
	./bin/templ.sh < $< > $@

simul: rom
	./bin/simpasm.pl < $(ASM) | ./bin/simpa.pl 2>/dev/null

test: all rom
	yes 0 | ../scifi/bin/scifi -r rom -n main.nls -c 0 -t $(SPEED)

demo: all
	yes 0 | ../scifi/bin/scifi -r rom -n main.nls -c 0 -t $(SPEED) 2>/dev/null | ../asciifee/bin/asciifee 
	
demo-simul: rom
	./bin/simpasm.pl < $(ASM) | ./bin/simpa.pl 2>/dev/null | ../asciifee/bin/asciifee

shakespeare: shakespeare/ascii2asciifee shakespeare/convert2.c shakespeare/convert2.sh shakespeare/reformat.c shakespeare/text makes.sh
	bash ./makes.sh

demo-shakespeare: all shakespeare
	yes 0 | ../scifi/bin/scifi -r roms -n main.nls -c 0 2>/dev/null | ../asciifee/bin/asciifee 

testold: all
	cat input | ./scifi -n main.nls -c 0
clean:
	rm -f *~ */*~ *rom $(NLS) $(ROM) $(RAM)
