From d8de617a0607f1d8a8da6df11560e6c683ab29f4 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 13 Jan 2018 00:59:53 -0500 Subject: [PATCH] mode7: add initial rasterbars code --- gr-sim/rasterbars.c | 8 +- gr-sim/rasterbars_fixed.c | 33 ++--- mode7/Makefile | 21 +++- mode7/mode7.dsk | Bin 143360 -> 143360 bytes mode7/rasterbars.s | 257 ++++++++++++++++++++++++++++++++++++++ mode7/zp.inc | 2 + 6 files changed, 301 insertions(+), 20 deletions(-) create mode 100644 mode7/rasterbars.s diff --git a/gr-sim/rasterbars.c b/gr-sim/rasterbars.c index cf5b1f0f..d957f1fc 100644 --- a/gr-sim/rasterbars.c +++ b/gr-sim/rasterbars.c @@ -24,7 +24,7 @@ int set_row_color(double offset, int color) { int main(int argc, char **argv) { - int ch,i=0,j; + int ch,i=0,j,end=3; grsim_init(); @@ -61,7 +61,11 @@ int main(int argc, char **argv) { i++; - if (i>ELEMENTS-1) i=0; + if (i>ELEMENTS-1) { + i=0; + end--; + if (end==0) break; + } } return 0; diff --git a/gr-sim/rasterbars_fixed.c b/gr-sim/rasterbars_fixed.c index a31f2ef1..e1d2049d 100644 --- a/gr-sim/rasterbars_fixed.c +++ b/gr-sim/rasterbars_fixed.c @@ -9,7 +9,7 @@ static int row_color[40]; #define ELEMENTS 64 -int fixed_sin[ELEMENTS][2]={ +static int fixed_sin[ELEMENTS][2]={ {0x00,0x00}, // 0.000000 {0x00,0x19}, // 0.098017 {0x00,0x31}, // 0.195090 @@ -26,7 +26,7 @@ int fixed_sin[ELEMENTS][2]={ {0x00,0xF4}, // 0.956940 {0x00,0xFB}, // 0.980785 {0x00,0xFE}, // 0.995185 -{0x01,0x00}, // 1.000000 +{0x00,0xFF}, // 1.000000 {0x00,0xFE}, // 0.995185 {0x00,0xFB}, // 0.980785 {0x00,0xF4}, // 0.956940 @@ -76,9 +76,9 @@ int fixed_sin[ELEMENTS][2]={ {0xFF,0xE7}, // -0.098017 }; -int set_row_color(int offset, int color) { +static int set_row_color(int offset, int color) { - int y,s=0; + int y=0,s=0; short x; @@ -100,7 +100,7 @@ int set_row_color(int offset, int color) { int main(int argc, char **argv) { - int ch,i=0,j; + int ch,i=0,j,end=3; grsim_init(); @@ -114,14 +114,14 @@ int main(int argc, char **argv) { gr(); - set_row_color(i+7,14); // aqua - set_row_color(i+6,6); // med-blue - set_row_color(i+5,12); // light-green - set_row_color(i+4,4); // green - set_row_color(i+3,13); // yellow - set_row_color(i+2,9); // orange - set_row_color(i+1,11); // pink - set_row_color(i+0.0,1); // red + set_row_color(i+0,14); // aqua + set_row_color(i+1,6); // med-blue + set_row_color(i+2,12); // light-green + set_row_color(i+3,4); // green + set_row_color(i+4,13); // yellow + set_row_color(i+5,9); // orange + set_row_color(i+6,11); // pink + set_row_color(i+7,1); // red for(j=0;j<40;j++) { if (row_color[j]) { @@ -131,12 +131,17 @@ int main(int argc, char **argv) { } grsim_update(); + ch=grsim_input(); if (ch=='q') exit(0); usleep(100000); i++; - if (i>ELEMENTS-1) i=0; + if (i>(ELEMENTS-1)) { + i=0; + end--; + if (end==0) break; + } // printf("\n"); } diff --git a/mode7/Makefile b/mode7/Makefile index 5e227b47..fa8501b2 100644 --- a/mode7/Makefile +++ b/mode7/Makefile @@ -10,12 +10,13 @@ $(DOS33): cd ../dos33fs-utils && make mode7.dsk: $(DOS33) MODE7_ISLAND MODE7_CHECKERBOARD MODE7_RAINBOW \ - PLOT_TEST SCROLL_DEMO SKY_DEMO STARFIELD_DEMO \ - STARFIELD_1K + PLOT_TEST RASTERBARS SCROLL_DEMO SKY_DEMO \ + STARFIELD_DEMO STARFIELD_1K $(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 PLOT_TEST + $(DOS33) -y mode7.dsk BSAVE -a 0x1000 RASTERBARS $(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 @@ -113,8 +114,20 @@ starfield_demo.o: starfield_demo.s \ ../asm_routines/gr_fast_clear.s ca65 -o starfield_demo.o starfield_demo.s -l starfield_demo.lst + +RASTERBARS: rasterbars.o + ld65 -o RASTERBARS rasterbars.o -C ./apple2_1000.inc + +rasterbars.o: rasterbars.s \ + ../asm_routines/gr_scroll.s \ + ../asm_routines/pageflip.s \ + ../asm_routines/gr_setpage.s \ + ../asm_routines/gr_fast_clear.s + ca65 -o rasterbars.o rasterbars.s -l rasterbars.lst + + STARFIELD_1K: starfield_1k.o - ld65 -o STARFIELD_1K starfield_demo.o -C ./apple2_1000.inc + ld65 -o STARFIELD_1K starfield_1k.o -C ./apple2_1000.inc starfield_1k.o: starfield_1k.s \ ../asm_routines/gr_scroll.s \ @@ -138,5 +151,5 @@ background.o: background.c clean: rm -f *~ *.o scroller background \ MODE7 MODE7_ISLAND MODE7_CHECKERBOARD MODE7_RAINBOW \ - PLOT_TEST SCROLL_DEMO STARFIELD_DEMO STARFIELD_1K *.lst + PLOT_TEST RASTERBARS SCROLL_DEMO STARFIELD_DEMO STARFIELD_1K *.lst diff --git a/mode7/mode7.dsk b/mode7/mode7.dsk index 2335c3ac748aa6305d1cae00baee7e1f4c928102..876340ff6dd43eafeaa22014bbdd5d36a75319ad 100644 GIT binary patch delta 8006 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 WwApM9&rK`9pvMvthX4xCP5%XJq|F}y delta 10652 zcmeI2eT)?49mnUHdFK6jW@evfc5mOw{#$b^hicuGcY~dYU}|EJjiTV%#Nfg4 z!+Y6)nuy2p-V__?_BO8HvMBkWv~GV??&c+&wQ4b1ndtfIR!^;M7}${r4}Wo{w<9ri z!kf2uVsK)HGOi444}ZIAs=gyp>k|{ca`hBz0ZHF*sB&~6)}ss(e5C z9qzt(M*Y^2`?!ED7pu04RIECx3ndtqZrsDW#$4|kTJS0f=0yU$p)J5jeD8a)_`s;j z1$Vj-T#5$cB)not#<)CITu-F9$3L#PxN%~|z3&Y??geLklH$Z)jTQH^Ns9YpBJg9y zUD8tAdtMNYBgGYj;(B7miNY1v6DjVRw&FI&irajw;zlCHZ5E2-6NKWXHx)M{R$Mw# z+&4+^WURPoG)Zv}5%#dq(+0vG74;YeMvB`>*bCywF2erNRNQ!cu5r>-T!yl|P*{<& zZc)EL*>q7)r)+jxaq)$5#Z8YDcXLZ|tLfOcV#WQ7vi+3lKJ$dIUZ?CW$}FEzp*XI_ zNPn>uk5V?}IK@qEE9uOZxOyfjZd$83vpw(Z;}jR(di&teG6WS()xy$Gh0I7DTxQF< zW@x5n@n)}RI(0DDhGF`~H~0%w2MZhWP>77AZt9k9>qy7Cqq~}<0ZrDbi4}kwY+pkg zdK6h1!#0qC4aabGNe8;DD>~FwUDLT|zg*`g3kxkb>X^}~Xhx=P8m4JlrfnjVKRow$ zjHqKolOBDahY__NeZ`dN8j=AF*-#8BjlUvkshH4IKV7i%PW@mfNxNT~xJ8oc zMis&k{mwCLWMkX0UGWhLSGIZU|;9P@7(w&?Z(G8Mi^rUyGTL+$w)yEi5rxw_NE3LT7dv|WJhtJqdJn{b zx~i+W&0r%IU$%-})3sdNMJ{$-L8tcD!L1GW$WgGd48YL&$WlDp3rjzbR&>K)mW*W0 z@myEp=ZR>7SkX1W10E>LP9r?fy*P1nQnC`mCDnU9a8`AL$HN$Z8?gF@8y-Md_N*!{ zfRgNhYPkT4rXe*X_~#d&c_Cbz$(SiwYRK@p?a%R7+3NiT@Q_@B)pC))pR z{(Ky2Qj6LYQA`~wE`Hyo-kn--m;{$a^yIcSJ!#`RuZi!}amW$Xi7?($K~-kcz=$y3 z*J7yBA3>F;KMqym#)+Ydml$~33oiX6s3I;ThAP98pvp^$peKeZ*R`MuP6W~TBaGJ{ zLlsdtROyeP%D3B4<@p$@Jbx@y*%?8V=LJ;Z69iQ0Z97N8u7Pp$`x92TC4yv@)GCKBwFZ+rQebv|era(IwuM=4& zgX7P2^_=ug-|}rA`Pg@SHz_4SQcgC3oY?V5s!1)WCyk_;w32obC2`V8x+y8et@Y($ z&<|{!OeratQd3$=PZ=pQWu@#CO2wNdeYUNn+%E2?6Ol0+U2>Pw1-nE{KM*lOxl6C2 zTfm`V@O6OHDqan6m8<}t!hT0P_8ae_bnI7btb7LhO{-}wt*4E&nYPkRlHIZ2j{TlI z`%UAtlXf#w24v)nl7SgDqh*FmtHE1#He+V2jGaLloN+R4R?32`oK> zStDy^t*o6zS)6sUZcfS#mmc6JfH@@x`P754^X9aio-=ZS%f-%XwV1jjfEENCeUNql~*O&bXrRjJqt#xHq>m z?yflF?m9N(z8GcPT_WT12_ob6H#6=9amJk+W!xW<;DtEjMx#j?_X)yAM1p;aus?{p zjj-*a{*|!5#~JqkVdJ86h_L@OGcJlVE^1}mW45OG)IQ4kMaI2|vP;?-H@+~Qar@(p zdv7b_{)CRLi!(0Y4uoQ7n)Qe%3w*JMIL&8gh>XiOr}-ZCd~qP*iw*3B$7S5!c6Pn2 z6=#=C%DCsZnisa`U3KD&o8YU&yqUN1b{^$%-pNM`tqvsaAi0x-!sR)X4Q7OV=lPrrw zThxo3C6Ct|1DMl