mode7: build demos from the same source

This commit is contained in:
Vince Weaver 2017-12-13 15:23:10 -05:00
parent 97fda48ff3
commit 660066f593
3 changed files with 21 additions and 16 deletions

View File

@ -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

Binary file not shown.

View File

@ -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