diff --git a/mode7/Makefile b/mode7/Makefile index 9917cab7..38f347ef 100644 --- a/mode7/Makefile +++ b/mode7/Makefile @@ -9,18 +9,26 @@ all: mode7.dsk $(DOS33): cd ../dos33fs-utils && make -mode7.dsk: $(DOS33) MODE7 - $(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7 +mode7.dsk: $(DOS33) MODE7_ISLAND MODE7_CHECKERBOARD + $(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7_ISLAND + $(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7_CHECKERBOARD ### -MODE7: mode7.o - ld65 -o MODE7 mode7.o -C ./apple2_1000.inc +MODE7_ISLAND: mode7_island.o + ld65 -o MODE7_ISLAND mode7_island.o -C ./apple2_1000.inc -mode7.o: mode7.s \ +mode7_island.o: mode7.s island_lookup.s island_map.inc \ fast_multiply.s utils.s zp.inc sprites.inc - ca65 -o mode7.o mode7.s -l mode7.lst + ca65 -o mode7_island.o mode7.s -D ISLAND_MAP=1 -l mode7.lst + +MODE7_CHECKERBOARD: mode7_checkerboard.o + ld65 -o MODE7_CHECKERBOARD mode7_checkerboard.o -C ./apple2_1000.inc + +mode7_checkerboard.o: mode7.s checkerboard_lookup.s \ + fast_multiply.s utils.s zp.inc sprites.inc + ca65 -o mode7_checkerboard.o mode7.s -D CHECKERBOARD_MAP=1 -l mode7.lst clean: - rm -f *~ *.o MODE7 *.lst + rm -f *~ *.o MODE7 MODE7_ISLAND MODE7_CHECKERBOARD *.lst diff --git a/mode7/mode7.dsk b/mode7/mode7.dsk index 15e6f26c..34dabac6 100644 Binary files a/mode7/mode7.dsk and b/mode7/mode7.dsk differ diff --git a/mode7/mode7.s b/mode7/mode7.s index beb7a27b..39df869e 100644 --- a/mode7/mode7.s +++ b/mode7/mode7.s @@ -1,6 +1,3 @@ -ISLAND_MAP = 0 -CHECKERBOARD_MAP = 1 - .include "zp.inc" ;=========== @@ -966,9 +963,9 @@ screenx_loop: nomatch: ; Get color to draw in A -.if ISLAND_MAP=1 +.if .def(ISLAND_MAP) .include "island_lookup.s" -.elseif CHECKERBOARD_MAP=1 +.elseif .def(CHECKERBOARD_MAP) .include "checkerboard_lookup.s" .endif @@ -1063,9 +1060,9 @@ done_screeny: ; the high-performance per-pixel version has been inlined lookup_map: -.if ISLAND_MAP=1 +.if .def(ISLAND_MAP) .include "island_lookup.s" -.elseif CHECKERBOARD_MAP=1 +.elseif .def(CHECKERBOARD_MAP) .include "checkerboard_lookup.s" .endif @@ -1111,7 +1108,7 @@ gr_offsets: .word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8 .word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0 -.if ISLAND_MAP=1 +.if .def(ISLAND_MAP) .include "island_map.inc" .endif @@ -1166,7 +1163,7 @@ fixed_sin_scale: ; .byte $A6,$8A,$76,$68,$5C,$53,$4B,$45,$40,$3B,$37,$34,$30,$2E,$2B,$29 ; we can guarantee 4 cycle indexed reads if we page-aligned this -.align 256 +;.align 256 horizontal_lookup: .byte $0C,$0B,$0A,$09,$09,$08,$08,$07,$07,$06,$06,$06,$05,$05,$05,$05 .byte $04,$04,$04,$04,$04,$04,$04,$03,$03,$03,$03,$03,$03,$03,$03,$03