PYTHON = ~/.pyenv/shims/python

rom        = 06_IO_Devices/00_HACK/ROM
bootloader = 06_IO_Devices/05_GO/bootloader
warez      = 06_IO_Devices/01_UartTX/motd
bitstream  = 06_IO_Devices/00_HACK/hardware

upload   = Nand2Tetris.img
download = Nand2Tetris.img.backup

clean:
	find . -type f \( -name *.hack -o -name *.bin -o -name *.img \) -delete

read:
	flashrom.exe --progress -p buspirate_spi:dev=COM12 -r $(download)

write:
	flashrom.exe --progress -p buspirate_spi:dev=COM12 -w $(upload)

build: build-rom build-warez build-bitstream

build-rom:
	$(PYTHON) tools/Assembler/assembler.pyc $(bootloader).asm
	cp $(bootloader).hack $(rom).hack

build-warez:
	$(PYTHON) tools/Assembler/assembler.pyc $(warez).asm
	$(PYTHON) tools/AsciiToBin.py $(warez).hack

build-bitstream:
	cd 06_IO_Devices/00_HACK; apio clean; apio build -v

	dd if=/dev/zero bs=2M count=1 of=$(upload)
	dd if=$(warez).bin of=$(upload) seek=128 conv=notrunc
	dd if=$(bitstream).bin of=$(upload) conv=notrunc

install: clean build read write

.PHONY: build clean install
