ATASM=atasm

ATASMFLAGS=-Ihisio
#ATASMFLAGS += -s
#ATASMFLAGS += -v -s

CC=gcc
CFLAGS=-W -Wall


TARGETS=flash.com flashmenu.com megaspeedy.atr \
	romcsum romcsum.exe \
	flasher.rom config.rom megaspeedy-stock.rom

all: $(TARGETS)

romcsum: romcsum.c
	$(CC) $(CFLAGS) -o $@ $<

romcsum.exe: romcsum.c
	i586-mingw32msvc-gcc $(CFLAGS) -o $@ $<
	i586-mingw32msvc-strip $@
	
speedycode.bin: speedy.src speedy.inc speedycmd.inc
	$(ATASM) $(ATASMFLAGS) -r -f00 -o$@ $<

hisio.bin: hisio.src hisio/*
	$(ATASM) $(ATASMFLAGS) -r -f00 -o$@ $<

flash.com: flash.src flash.inc speedycode.bin speedycmd.inc\
	speedyrom.inc speedymodes.inc \
	cio.inc cio.src sio.inc iohelp.src numhelp.src
	$(ATASM) $(ATASMFLAGS) -o$@ $<

flash.bin: flash.src flash.inc speedycode.bin speedycmd.inc \
	speedyrom.inc speedymodes.inc cio.inc cio.src iohelp.src numhelp.src
	$(ATASM) $(ATASMFLAGS) -dFLASHBIN -r -f00 -o$@ $<

flasher.rom: speedy-flash.src speedy-flash.inc speedy.inc flash.inc \
	i2c.src speedy-softconfig.src speedy-bootsec.src speedy-loadhooks.src \
	version.inc \
	flashmenu.bin flash.bin hisio.bin mypdos-code.bin \
	mydos-bootsec.bin mydos-dossys-short.bin \
	speedy-16.rom romcsum
	$(ATASM) $(ATASMFLAGS) -dFLASHBIN -r -oflasher.rom.tmp $<
	./romcsum flasher.rom.tmp $@

config.rom: speedy-config.src \
	speedy.inc speedyrom.inc speedymodes.inc config.src \
	encoder.src i2c.src version.inc
	$(ATASM) $(ATASMFLAGS) -dFLASHBIN -r -o$@ $<

flashmenu.com: flashmenu.src speedymodes.inc speedyrom.inc cio.inc sio.inc \
	version.inc \
	hisio.bin mydos-bootsec.bin mydos-dossys-short.bin flash.bin mypdos-code.bin
	$(ATASM) $(ATASMFLAGS) -DFLASHMENU_COM -o$@ $<

flashmenu.bin: flashmenu.src speedymodes.inc speedyrom.inc cio.inc sio.inc \
	speedy-flash.inc flash.inc version.inc \
	hisio.bin mydos-bootsec.bin mydos-dossys-short.bin flash.bin mypdos-code.bin
	$(ATASM) $(ATASMFLAGS) -r -f00 -o$@ $<

mydos-dossys-short.bin: mydos-dos.sys
	dd if=$< of=$@ bs=4286 count=1

megaspeedy.atr: flash.com flasher.rom config.rom mydos-dos.sys mydos-dup.sys
	mkdir -p disk
	cp -f mydos-dos.sys disk/dos.sys
	cp -f mydos-dup.sys disk/dup.sys
	cp -f flash.com flasher.rom config.rom disk
	dir2atr -b MyDos4534 -d 720 $@ disk

megaspeedy-stock.rom: build-full-rom.sh flasher.rom config.rom ../roms/*.rom
	./build-full-rom.sh $@

.PHONY: clean
clean:
	rm -f $(TARGETS) speedycode.bin hisio.bin flash.bin flashmenu.bin \
	flasher.rom.tmp romcsum
	rm -rf disk
