From 6af4836f262c13285234d8d20a55b81941684488 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 31 Dec 2017 13:57:52 -0500 Subject: [PATCH] mode7: starfield works --- gr-sim/starfield_fixed.c | 27 ++++++++++++++++++--------- mode7/starfield_demo.s | 29 +++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/gr-sim/starfield_fixed.c b/gr-sim/starfield_fixed.c index ccb849e4..fb064dc4 100644 --- a/gr-sim/starfield_fixed.c +++ b/gr-sim/starfield_fixed.c @@ -221,8 +221,8 @@ int main(int argc, char **argv) { if ((dx.i<0) || (dy.i<0) || (dx.i>=40) || (dy.i>=40)) { - printf("%i: out of range %d,%d\n", - i,dx.i,dy.i); +// printf("%i: out of range %d,%d\n", +// i,dx.i,dy.i); random_star(i); } else { @@ -232,11 +232,11 @@ int main(int argc, char **argv) { // } color_equals(color); - printf("plot %i: (%d,%d,%d) %d,%d = %d\n", - i, - stars[i].x.i,stars[i].y.i, - stars[i].z, - dx.i,dy.i,color); +// printf("plot %i: (%d,%d,%d) %d,%d = %d\n", +// i, +// stars[i].x.i,stars[i].y.i, +// stars[i].z, +// dx.i,dy.i,color); basic_plot(dx.i,dy.i); } @@ -255,8 +255,17 @@ int main(int argc, char **argv) { if (ch=='q') exit(0); usleep(10000); - sleep(25); - exit(1); + while(1) { + ch=grsim_input(); + if (ch!=0) break; + usleep(10000); + } + + if (ch=='q') exit(0); +// repeat_until_keypressed(); + +// sleep(25); +// exit(1); } diff --git a/mode7/starfield_demo.s b/mode7/starfield_demo.s index 99260c12..ca466f9a 100644 --- a/mode7/starfield_demo.s +++ b/mode7/starfield_demo.s @@ -221,14 +221,37 @@ plot_write: plot_star_continue: + ;============================== ldx XX dex - bmi starfield_keyboard + bmi move_stars ; bpl draw_stars jmp draw_stars + + ;============================= + ; Move stars +move_stars: + ldy #(NUMSTARS-1) +move_stars_loop: + + clc + lda star_z,Y + adc #1 + sta star_z,Y + and #64 + beq move_loop_skip + + jsr random_star + +move_loop_skip: + dey + bpl move_stars_loop + + + starfield_keyboard: jsr get_key ; get keypress ; 6 @@ -250,10 +273,8 @@ skipskip: ;================== ; loop forever ;================== -blah: - jmp blah -; jmp starfield_loop ; 3 + jmp starfield_loop ; 3 ; matches scroll_row1 - row3