ASM81 = ../tools/asm81
BINTOPRG = ../tools/bintoprg
PACKBIN = ../tools/packbin
PACKKERNEL = ../tools/packkernel
LISTPRG = ../tools/listprg

all: ../prgm0.prg ../prgm1.prg ../prgm2.prg ../prgm3.prg

%.bin: %.asm ../ti81.inc $(ASM81)
	$(ASM81) -I.. -v any -r $<

### prgm0 (kernel + stage-2) ###

../prgm0.prg: prgm0.bin $(BINTOPRG)
	$(BINTOPRG) prgm0.bin -n 'UDATA' -o ../prgm0.prg

prgm0.bin: kpacked.bin s2packed.bin

kpacked.bin: kernel.bin $(PACKKERNEL)
	$(PACKKERNEL)

s2packed.bin: stage2.bin $(PACKBIN)
	$(PACKBIN) stage2.bin -a 0xE474 -o s2packed.bin

stage2.bin: kernel.bin

### prgm1 (installer setup, including stage-1) ###

../prgm1.prg: stage1.bin $(BINTOPRG)
	$(BINTOPRG) stage1.bin -n 'USETUP' -o ../prgm1.prg

stage1.bin: kernel.bin

### prgm2 (installer launcher) ###

../prgm2.prg: overflow.bin $(BINTOPRG)
	$(BINTOPRG) overflow.bin -n 'ULAUNCH' -o ../prgm2.prg

### prgm3 (reinstaller) ###

../prgm3.prg: reinstall.bin $(BINTOPRG)
	$(BINTOPRG) reinstall.bin -n 'URELOAD' -o ../prgm3.prg

### utilities ###

../tools/asm81:
	$(MAKE) -C ../tools asm81

../tools/bintoprg:
	$(MAKE) -C ../tools bintoprg

../tools/packbin:
	$(MAKE) -C ../tools packbin

../tools/packkernel:
	$(MAKE) -C ../tools packkernel

../tools/listprg:
	$(MAKE) -C ../tools listprg

clean:
	rm -f *.bin *.lst *.exp

.PHONY: clean all
