SDCC=/opt/sdcc/bin/sdcc
SDAS=/opt/sdcc/bin/sdasz80
OBJCOPY=objcopy
CFLAGS=-mz80 --std-c23 --stack-auto
SOURCES=main.c
MKCAS=./mkcas.py
OPENMSX=openmsx
OBJECTS=${SOURCES:.c=.rel}

main.cas: main.bin
	${MKCAS} --name MAIN --addr 0x81F9 --exec 0x8200 main.cas binary main.bin

main.bin: main.ihx
	${OBJCOPY} -I ihex -O binary main.ihx main.bin

main.ihx: crt0msx.rel ${OBJECTS}
	${SDCC} ${CFLAGS} --code-loc 0x8209 --no-std-crt0 -o main.ihx crt0msx.rel ${OBJECTS}

%.rel: %.c
	${SDCC} ${CFLAGS} -c -o $@ $<

crt0msx.rel: crt0msx.s
	${SDAS} -o crt0msx.rel crt0msx.s

clean:
	rm -f *.sym *.asm *.rel *.lst *.ihx *.lk *.map *.mem *.noi *.rst *.bin *.cas

run:
	${OPENMSX} -machine Philips_NMS_8245 -cassetteplayer main.cas
