diff --git a/mode7/mode7.dsk b/mode7/mode7.dsk index 66b15f50..d501d1f9 100644 Binary files a/mode7/mode7.dsk and b/mode7/mode7.dsk differ diff --git a/mode7/starfield_demo.s b/mode7/starfield_demo.s index 034644b5..77a9be24 100644 --- a/mode7/starfield_demo.s +++ b/mode7/starfield_demo.s @@ -15,8 +15,9 @@ NUMSTARS EQU 16 ; Clear screen and setup graphics ;================================ - jsr clear_screens ; clear top/bottom of page 0/1 + jsr clear_screens_notext ; clear top/bottom of page 0/1 jsr set_gr_page0 + bit FULLGR ; Initialize the 2kB of multiply lookup tables jsr init_multiply_tables @@ -49,7 +50,7 @@ starfield_loop: ;=============== ; clear screen ;=============== - jsr clear_top ; 6+ + jsr clear_all ; 6+ ; 6047 ;=============== ; draw stars @@ -158,7 +159,7 @@ no_adjust: ; ldy YPOS bmi new_star ; 2nt/3 - cpy #40 ; 2 + cpy #48 ; 2 bpl new_star ; if < 0 or > 40 then done ; 2nt/3 lda XPOS ; 3 @@ -224,6 +225,19 @@ starfield_keyboard: skipskip: + + lda #>ship_forward + sta INH + lda # 40 then done ; 2nt/3 + + lda XPOS ; 3 + bmi new_star ; 2nt/3 + cmp #40 ; 2 + bpl new_star ; if < 0 or > 40 then done ; 2nt/3 + + ; FIXME: sort out all of these jumps to be more efficient + bmi plot_star ; 2 + +new_star: + ldy XX ; 3 + jsr random_star ; 6 + + jmp plot_star_continue ; 3 + +plot_star: + jsr plot ; 6 + +plot_star_continue: + + ;============================== + ldx XX ; 3 + + dex ; 2 + bmi move_stars ; 2nt/3 + bpl draw_stars ; 2nt/3 +; jmp draw_stars + + + ;============================= + ; Move stars +move_stars: + ldy #(NUMSTARS-1) ; 2 +move_stars_loop: + ; increment z + clc ; if z >= 64 new star ; 2 + lda star_z,Y ; 4 + adc #1 ; 2 + sta star_z,Y ; 4 + and #64 ; 2 + beq move_loop_skip ; 2nt/3 + + jsr random_star ; new random star ; 6 + +move_loop_skip: + dey ; 2 + bpl move_stars_loop ; 2nt/3 + + + +starfield_keyboard: + +; jsr get_key ; get keypress ; 6 + +; lda LASTKEY ; 3 + +; beq starfield_keyboard + +; cmp #('Q') ; if quit, then return +; bne skipskip +; rts + +skipskip: + + + lda #>ship_forward + sta INH + lda #