all: freezer05.rom freezer11.rom

ATASM ?= atasm

ATASMFLAGS=-Ihisio
#ATASMFLAGS=-Ihisio -v -s
#ATASMFLAGS=-Ihisio -DHWDEBUG
#ATASMFLAGS=-Ihisio -DHWDEBUG -s

# flags for assembling 2005/2011 software versions
ASMFLAGS_2005=-dFREEZER2005
ASMFLAGS_2011=-dFREEZER2011

# jump from bank 1 to bank 2
B12JMP.M65: jmptab12
	./buildjmp -v MODE=2 -v CMD=B2JMP < jmptab12 > B12JMP.M65

# jsr from bank 1 into bank 2
B12JSR.M65: jsrtab12
	./buildjmp -v MODE=2 -v CMD=B2JSR < jsrtab12 > B12JSR.M65

# jump from bank 2 to bank 1
B21JMP.M65: jmptab12
	./buildjmp -v MODE=1 -v CMD=B1JMP < jmptab12 > B21JMP.M65

# jsr from bank 2 into bank 1
B21JSR.M65: jsrtab12
	./buildjmp -v MODE=1 -v CMD=B1JSR < jsrtab12 > B21JSR.M65


# jump from bank 1 to bank 3
B13JMP.M65: jmptab13
	./buildjmp -v MODE=2 -v CMD=B3JMP < jmptab13 > B13JMP.M65

# jsr from bank 1 into bank 3
B13JSR.M65: jsrtab13
	./buildjmp -v MODE=2 -v CMD=B3JSR < jsrtab13 > B13JSR.M65

# jump from bank 3 to bank 1
B31JMP.M65: jmptab13
	./buildjmp -v MODE=1 -v CMD=B1JMP < jmptab13 > B31JMP.M65

# jsr from bank 3 into bank 1
B31JSR.M65: jsrtab13
	./buildjmp -v MODE=1 -v CMD=B1JSR < jsrtab13 > B31JSR.M65


# jump from bank 2 to bank 3
B23JMP.M65: jmptab23
	./buildjmp -v MODE=2 -v CMD=B3JMP < jmptab23 > B23JMP.M65

# jsr from bank 2 into bank 3
B23JSR.M65: jsrtab23
	./buildjmp -v MODE=2 -v CMD=B3JSR < jsrtab23 > B23JSR.M65

# jump from bank 3 to bank 2
B32JMP.M65: jmptab23
	./buildjmp -v MODE=1 -v CMD=B2JMP < jmptab23 > B32JMP.M65

# jsr from bank 3 into bank 2
B32JSR.M65: jsrtab23
	./buildjmp -v MODE=1 -v CMD=B2JSR < jsrtab23 > B32JSR.M65

lddbob.obj: LDDBOB.M65 LDDBOEQ.M65 LDDBOPR.M65 LDDBOL.M65
	$(ATASM) $(ATASMFLAGS) -r -o$@ $<

lddbol.obj: LDDBOL.M65 LDDBOEQ.M65 LDDBOPR.M65
	$(ATASM) $(ATASMFLAGS) -r -o$@ $<


B1SRC=BANK1.M65 EQUATES.M65 \
	STOPPER.M65 MENU.M65 RESTART.M65 SAVER.M65 \
	DISKIO.M65 DISKDBO.M65 lddbob.obj lddbol.obj LDDBOEQ.M65 \
	HISIO.M65 HIEQU.M65 hisio/hisiocode.src hisio/hisiodet.src \
	CASS.M65 INTHAND.M65 GETKEY.M65 SWAPPER.M65 \
	LOADER.M65 RAMDISK.M65 RAMFRZ.M65 OSRCLR.M65 \
	BANKSEL.M65 B12JSR.M65 B12JMP.M65 B13JSR.M65 B13JMP.M65 \
	XDLIST.M65 VERSION.M65 HWDEBUG.M65 HWDEBSUP.M65 Makefile

B2SRC=BANK2.M65 EQUATES.M65 \
	DPRINT.M65 DPRINTI.M65 PRINTER.M65 \
	MONITOR.M65 EXTRAS.M65 DOSCMD.M65 ATARISIO.M65 DISK.M65 \
	SHOWVER.M65 SHOWHAT.M65 CARTEMU05.M65 CARTEMU11.M65 \
	BANKSEL.M65 B21JSR.M65 B21JMP.M65 B23JSR.M65 B23JMP.M65 \
	XDLIST.M65 VERSION.M65 HWDEBUG.M65 HWDEBSUP.M65 Makefile 

B3SRC=BANK3.M65 EQUATES.M65 \
	HELP.M65 MEMACC.M65 SEARCH.M65 DISASS.M65 DISDL.M65 \
	MEMMAP.M65 BLOCK.M65 SHOWVEC.M65 \
	BANKSEL.M65 B32JSR.M65 B32JMP.M65 B31JSR.M65 B31JMP.M65 \
	XDLIST.M65 VERSION.M65 HWDEBUG.M65 HWDEBSUP.M65 Makefile

bank1_05.rom: $(B1SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2005) -r -f0 -o$@ $<

bank2_05.rom: $(B2SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2005) -r -f0 -o$@ $<

bank3_05.rom: $(B3SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2005) -r -f0 -o$@ $<

freezer05.rom: bank1_05.rom bank2_05.rom bank3_05.rom
	cat bank3_05.rom bank1_05.rom bank2_05.rom > freezer05.rom

bank1_11.rom: $(B1SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2011) -r -f0 -o$@ $<

bank2_11.rom: $(B2SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2011) -r -f0 -o$@ $<

bank3_11.rom: $(B3SRC)
	$(ATASM) $(ATASMFLAGS) $(ASMFLAGS_2011) -r -f0 -o$@ $<

freezer11.rom: bank1_11.rom bank2_11.rom bank3_11.rom
	cat bank3_11.rom bank1_11.rom bank2_11.rom > freezer11.rom

clean:
	rm -f freezer*.rom bank*.rom

