#
# makefile - for NFX Test
#

MEDIA =		/dev/sdc

.SUFFIXES:	.c .s .rel

.c.rel:
		sdcc-sdcc -c -mz80 $*.c

.s.rel:
		sdcc-sdasz80 -o $*.rel $*.s

#

all:		nfx.com

#

nfx.com:	crt0.rel nfx.rel interrupts.rel list.rel fiber.rel sem.rel mem.rel clock.rel cpmio.rel wizio.rel wiz.rel net.rel echo.rel chargen.rel http.rel
		sdcc-sdcc -mz80 --no-std-crt0 --code-loc 0x100 --data-loc 0x4000 $+
		sdcc-makebin -p crt0.ihx nfx.bin
		dd if=nfx.bin bs=256 skip=1 of=nfx.com 2> /dev/null
		cp crt0.noi nfx.noi
		rm crt0.ihx crt0.lk crt0.noi nfx.bin

#

crt0.rel:	crt0.s

interrupts.rel:	interrupts.c interrupts.h

list.rel:	list.c types.h list.h

fiber.rel:	fiber.c types.h interrupts.h list.h fiber.h

sem.rel:	sem.c types.h list.h fiber.h sem.h

mem.rel:	mem.c types.h list.h fiber.h mem.h

clock.rel:	clock.c types.h interrupts.h list.h clock.h

cpmio.rel:	cpmio.s

wizio.rel:	wizio.s

wiz.rel:	wiz.c types.h w5100.h wiz.h wizio.h

net.rel:	net.c types.h interrupts.h list.h fiber.h sem.h cpmio.h w5100.h wiz.h net.h

echo.rel:	echo.c types.h fiber.h cpmio.h net.h echo.h

chargen.rel:	chargen.c types.h fiber.h cpmio.h net.h chargen.h

http.rel:	http.c types.h fiber.h cpmio.h net.h http.h

nfx.rel:	nfx.c types.h interrupts.h fiber.h clock.h cpmio.h net.h echo.h chargen.h http.h

#

clean:
		-rm *.map *.rel *.lst *.sym *.asm *.bak 2> /dev/null

run:
		memu -mc nfx.com

be:
		be -A16 -Cz80 -vA -Ynoi -ynfx.noi -i nfx.ini nfx.com@0x100

run-be:
		memu -mc -be TOKEN nfx.com

be-run:
		be -A16 -Cz80 -vA -Ynoi -ynfx.noi -i nfx.ini memu!TOKEN,0x80

copy-to-media:
		mkdir -p mnt
		cpmfuse -v -i $(MEDIA) mnt
		cp nfx.com mnt/NFX.COM
		fusermount -u mnt

#

package:
		zip -q -r nfx *
		zip -d nfx *.bak */*.bak

website:
		cp *.zip doc/* /pub/nfx
