mode7: work on 6502 version of starfield

This commit is contained in:
Vince Weaver 2017-12-28 23:40:26 -05:00
parent 83090145de
commit 78b9ee1e50
2 changed files with 85 additions and 1 deletions

View File

@ -10,12 +10,14 @@ $(DOS33):
cd ../dos33fs-utils && make
mode7.dsk: $(DOS33) MODE7_ISLAND MODE7_CHECKERBOARD MODE7_RAINBOW \
SCROLL_DEMO SKY_DEMO
SCROLL_DEMO SKY_DEMO STARFIELD_DEMO
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7_ISLAND
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7_CHECKERBOARD
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 MODE7_RAINBOW
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 SCROLL_DEMO
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 SKY_DEMO
$(DOS33) -y mode7.dsk BSAVE -a 0x1000 STARFIELD_DEMO
###
@ -86,6 +88,16 @@ sky_demo.o: sky_demo.s \
../asm_routines/gr_setpage.s
ca65 -o sky_demo.o sky_demo.s -l sky_demo.lst
STARFIELD_DEMO: starfield_demo.o
ld65 -o STARFIELD_DEMO starfield_demo.o -C ./apple2_1000.inc
starfield_demo.o: starfield_demo.s \
../asm_routines/hlin_clearscreen.s \
../asm_routines/gr_scroll.s \
../asm_routines/pageflip.s \
../asm_routines/gr_setpage.s
ca65 -o starfield_demo.o starfield_demo.s -l starfield_demo.lst
scroller: scroller.o
$(CC) $(LFLAGS) -o scroller scroller.o

72
mode7/starfield_demo.s Normal file
View File

@ -0,0 +1,72 @@
.include "zp.inc"
;===========
; CONSTANTS
;===========
;=====================
; Starfield
;=====================
;================================
; Clear screen and setup graphics
;================================
jsr clear_screens ; clear top/bottom of page 0/1
jsr set_gr_page0
; Initialize the 2kB of multiply lookup tables
jsr init_multiply_tables
;===============
; Init Variables
;===============
lda #0
starfield_loop:
starfield_keyboard:
jsr get_key ; get keypress ; 6
lda LASTKEY ; 3
cmp #('Q') ; if quit, then return
bne skipskip
rts
skipskip:
;==================
; flip pages
;==================
jsr page_flip ; 6
;==================
; loop forever
;==================
jmp starfield_loop ; 3
;===============================================
; External modules
;===============================================
.include "../asm_routines/hlin_clearscreen.s"
.include "../asm_routines/pageflip.s"
.include "../asm_routines/gr_setpage.s"
.include "../asm_routines/keypress.s"
.include "../asm_routines/gr_putsprite.s"
.include "../asm_routines/text_print.s"
;===============================================
; Variables
;===============================================
.include "../asm_routines/multiply_fast.s"