# Top level targets

.phony: all clean zap

all: tgidemo.xex atari8.tgi atari15.tgi atari7.tgi atari5.tgi atari3.tgi atari14.tgi atari6.tgi atari4.tgi atari10.tgi atari9.tgi atari11.tgi

clean:
	rm -f tgi_mode_table.o tgidemo.o zeropage.o atari8.o atari15.o atari7.o atari5.o atari3.o atari14.o atari6.o atari4.o atari10.o atari9.o atari11.o

zap: clean
	rm -f tgidemo.xex atari8.tgi atari15.tgi atari7.tgi atari5.tgi atari3.tgi atari14.tgi atari6.tgi atari4.tgi atari10.tgi atari9.tgi atari11.tgi

# tgidemo.xex

tgidemo.xex: tgi_mode_table.o tgidemo.o
	ld65 --target atari -D __RESERVED_MEMORY__=7147 -o $@ $^ atari.lib

tgi_mode_table.o: tgi_mode_table.s
	ca65 --target atari $<

tgidemo.o: tgidemo.c
	cl65 -c --target atari -Osir $<

zeropage.o: zeropage.s
	ca65 --target atari $<

# drivers

atari8.tgi: atari8.o zeropage.o
	ld65 --target module -o $@ $^

atari15.tgi: atari15.o zeropage.o
	ld65 --target module -o $@ $^

atari7.tgi: atari7.o zeropage.o
	ld65 --target module -o $@ $^

atari5.tgi: atari5.o zeropage.o
	ld65 --target module -o $@ $^

atari3.tgi: atari3.o zeropage.o
	ld65 --target module -o $@ $^

atari14.tgi: atari14.o zeropage.o
	ld65 --target module -o $@ $^

atari6.tgi: atari6.o zeropage.o
	ld65 --target module -o $@ $^

atari4.tgi: atari4.o zeropage.o
	ld65 --target module -o $@ $^

atari10.tgi: atari10.o zeropage.o
	ld65 --target module -o $@ $^

atari9.tgi: atari9.o zeropage.o
	ld65 --target module -o $@ $^

atari11.tgi: atari11.o zeropage.o
	ld65 --target module -o $@ $^

# driver objects

atari8.o: atari8.s atari_tgi_common.inc
	ca65 --target atari $<

atari15.o: atari15.s atari_tgi_common.inc
	ca65 --target atari $<

atari7.o: atari7.s atari_tgi_common.inc
	ca65 --target atari $<

atari5.o: atari5.s atari_tgi_common.inc
	ca65 --target atari $<

atari3.o: atari3.s atari_tgi_common.inc
	ca65 --target atari $<

atari14.o: atari14.s atari_tgi_common.inc
	ca65 --target atari $<

atari6.o: atari6.s atari_tgi_common.inc
	ca65 --target atari $<

atari4.o: atari4.s atari_tgi_common.inc
	ca65 --target atari $<

atari10.o: atari10.s atari_tgi_common.inc
	ca65 --target atari $<

atari9.o: atari9.s atari_tgi_common.inc
	ca65 --target atari $<

atari11.o: atari11.s atari_tgi_common.inc
	ca65 --target atari $<

