From 1a23a505f4e54da60dfeb20c2552fb9bafb8a490 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 28 Oct 2023 23:38:44 -0400 Subject: [PATCH] second: hook up leaves --- demos/second/Makefile | 7 +- demos/second/TODO | 8 ++ demos/second/part09_leaves/Makefile | 34 ++++++++ demos/second/part09_leaves/graphics/Makefile | 3 + .../second/part09_leaves/graphics/final3.hgr | Bin 8192 -> 0 bytes .../second/part09_leaves/graphics/final3.png | Bin 0 -> 7553 bytes demos/second/part09_leaves/leaves.s | 82 ++++++++++++++++++ demos/second/start.s | 12 +++ 8 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 demos/second/part09_leaves/Makefile delete mode 100644 demos/second/part09_leaves/graphics/final3.hgr create mode 100644 demos/second/part09_leaves/graphics/final3.png create mode 100644 demos/second/part09_leaves/leaves.s diff --git a/demos/second/Makefile b/demos/second/Makefile index 423971d7..c95901e2 100644 --- a/demos/second/Makefile +++ b/demos/second/Makefile @@ -13,6 +13,7 @@ second_d1.dsk: QBOOT QLOAD music.inc \ MUSIC \ ./part01_intropan/INTRO \ ./part05_dot_tunnel/TUNNEL \ + ./part09_leaves/LEAVES \ ./part10_lens_rotozoom/LENS \ ./part12_plasma/PLASMA \ ./part13_plasmacube/PLASMACUBE \ @@ -31,7 +32,7 @@ second_d1.dsk: QBOOT QLOAD music.inc \ # $(DOS33_RAW) second_d1.dsk 15 0 ./part04_chess_shapes/CHESS 0 0 # $(DOS33_RAW) second_d1.dsk 16 0 ./part05_dot_tunnel/TUNNEL 0 0 # $(DOS33_RAW) second_d1.dsk 19 0 ./part08_gorilla/GORILLA 0 0 -# $(DOS33_RAW) second_d1.dsk 21 0 ./part09_leaves_rotozoom/LEAVES 0 0 + $(DOS33_RAW) second_d1.dsk 21 0 ./part09_leaves/LEAVES 0 0 $(DOS33_RAW) second_d1.dsk 23 0 ./part10_lens_rotozoom/LENS 0 0 $(DOS33_RAW) second_d1.dsk 24 0 ./part12_plasma/PLASMA 0 0 $(DOS33_RAW) second_d1.dsk 25 0 ./part13_plasmacube/PLASMACUBE 0 0 @@ -43,6 +44,9 @@ second_d1.dsk: QBOOT QLOAD music.inc \ #### +part09_leaves/LEAVES: + cd part09_leaves && make + part10_lens_rotozoom/LENS: cd part10_lens_rotozoom && make @@ -289,6 +293,7 @@ generate_common.o: generate_common.c clean: rm -f *~ *.o *.lst HELLO SECOND QBOOT QLOAD MUSIC START + cd part09_leaves && make clean cd part10_lens_rotozoom && make clean cd part12_plasma && make clean cd part13_plasmacube && make clean diff --git a/demos/second/TODO b/demos/second/TODO index d26487d6..cdbb826a 100644 --- a/demos/second/TODO +++ b/demos/second/TODO @@ -1,6 +1,14 @@ +TODO CREDITS ++ credit french touch for plasma ++ credit ZX02 + DISK I ++ Lens / Rotozoom + - add lo-res LENS sprite to bounce around + - for rotozoom, wrap around + note, this might mean 32x32 + Plasma - switch to purple green diff --git a/demos/second/part09_leaves/Makefile b/demos/second/part09_leaves/Makefile new file mode 100644 index 00000000..17da8f1f --- /dev/null +++ b/demos/second/part09_leaves/Makefile @@ -0,0 +1,34 @@ +include ../../../Makefile.inc + +DOS33 = ../../../utils/dos33fs-utils/dos33 +DOS33_RAW = ../../../utils/dos33fs-utils/dos33_raw +EMPTY_DISK = ../../../empty_disk/empty.dsk +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +LINKER_SCRIPTS = ../../../linker_scripts/ + + +all: LEAVES + +#### + +LEAVES: leaves.o + ld65 -o LEAVES leaves.o -C $(LINKER_SCRIPTS)/apple2_8000.inc + +leaves.o: leaves.s \ + ../zx02_optim.s \ + ../hgr_copy_fast.s \ + ../zp.inc ../hardware.inc ../qload.inc \ + graphics/final3.hgr.zx02 + ca65 -o leaves.o leaves.s -l leaves.lst + +### + +graphics/final3.hgr.zx02: + cd graphics && make + +### + + +clean: + rm -f *~ *.o *.lst LEAVES + cd graphics && make clean diff --git a/demos/second/part09_leaves/graphics/Makefile b/demos/second/part09_leaves/graphics/Makefile index 63f4dbf5..285c781e 100644 --- a/demos/second/part09_leaves/graphics/Makefile +++ b/demos/second/part09_leaves/graphics/Makefile @@ -8,6 +8,9 @@ all: final3.hgr.zx02 #### +final3.hgr: final3.png + $(PNG_TO_HGR) final3.png > final3.hgr + final3.hgr.zx02: final3.hgr $(ZX02) final3.hgr final3.hgr.zx02 diff --git a/demos/second/part09_leaves/graphics/final3.hgr b/demos/second/part09_leaves/graphics/final3.hgr deleted file mode 100644 index 7538c4ae8e5ec7a59f9c8d5453dcb3d509ff075d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmb7JU5p#ob-o;Nqsv*y;5bVgbs^yDYIi$(S0P&0DhdS!hVmVoTK|Bf%#~`vECRy{ zs8PHReGE`QORoTG-4>+mt&su+sPWpR$A%LZRSV~7R^bAYofKlQQx`!C7(vnp=Osvy zplDH`-GazU9chAo~=ljk%WbFSxhMpC&c+3Vv&7BQLW{GyQ#CLU)op@lS zX*wpVR$Edl6B#GgiJzZ4`Eyj0X6!2?&C{kC9P+pknpa-eQ>iKY>{Bwk!NcPQ(&KS& zAa$}SGdY0{KJK$nIjrT@uzt5cB>5TMCHV`ue+<{naH+5}vv~=HtDUbIEbLkl#(4$}IblBT6YB7&Q~XD}LhKwl$xN zjNdG^Dx=Iw|4b+CZfE8ja#=IYtMZ=x`|`&E_K}S}XwVyU*BJ9G!@ICBoMq$DE3li^ zCeKGcOD_KM0rME&W}8Nas+Oi5T>r4;6yMRjCAN5DT(&$dZqB?O!xM4J|8?Yek+}&S zrgEp=A2%Hd?>3>k9BjZ^-iI#lweMVUH49m50-qP2%~rAV7rFay2LATXCd=kNGs^^C zDU;TM;#=^3{acnJtCEQqSG-xqnm*gP!g|~I#45Ep8TF_}w7pSQ^?!R<{`o)l(gluki7Oi%}>wBF(Yb@C|Rc z*(@8^$3>pJhJkA^*0b>Mmooy;=1zaitn4r?INCY|3d?&Rj6)7 z#%+nV9oAV|wP8AUiv7O~U*J{M`k>4lxgJ-A?lR_F*T^6< z_s*;NH99Iy=6~H>HdoDTU@;k192swUpH~4}-&eN6jzMPdLA<*cqsTrW5HvZ5d^KmhnHofD?x zs~35z&R{)ufL4a}Nj6Uig!?WVDYCzDsl<|b6V2@8@^?~1zN1V#Nn1zW^t)^U@nro? z`9iY9hS(?WOy%!ix7k4E2mo2gKWLFM+i>>YVL{%PI!0WOe3{je|FRxtX7Rc8k#iFH z|KPPbM0Mb{g5o;?4|u6kX2Z14zPj*uMId{IrQWXG`I$0fNB)X@$ZYz}-2_pX_#-FQ z@%VQK@s`hqZXf8+fcyE%B!5$8=6G@jF|KN7r80}gF0pVKuf+^`C6n-kv4792fXhh`!@fzQgPg>l+cpdoiy$qQsAp{W(tFG^b=8xgGglOMw58e~1&pC;#oih_32EX)d;x&E<=m z#%_Iq@c^4qTKkpw+t-MJ|Lz^$6Ajzh4qZb&(pXV9GsGzBj{+ypT{dobxvh-F)<^o6 zkwM_+^6|d0zV0V8hJC<1+kBX`!^m&)isqW#miO}io}}U?E>oQoYqkcwX5le|U4HRS zaEgr)Bk(=eCjQkvA<*-e!0aM2mjhK2rJ=k@{GWekMstrl9aENT{i`Q#-eP~`B<;BT z{)+rXNoY~q=l^}*k9*DrB=;tJ8f^ErnH`GZR+*|5%{P&Ex%^eX2}{7c^XBQwPMm#! z{P)3rMuGMBbOed;^7ozBd+Qz(fA4dK>=E!RpJ}Q8{tK_;f6DG*fv%b)xWJ*&ARdHc zc@@9p9;>FU9mF3=&+Q*MMo1MsX#n#!{&`(lU z?X4xOMUqoN&&83VuCB^4#dLwbR9DM9|NrBv=W$d^s4?&56~!OU&5QMuJjA!o+qEb> zbWI*bOgY>k|7%E>X0|F@7r_6FMKk|w=>#6QhI>=OJ82>Mb3G$pTHJu0hJC7&Vx7D~ z*$-_qMEq)U6Ic@k$xnJUC18bLohl6(ct?nHsB?BLDA~ zlTbabk|jjs7IJec|G;%foZIga`_coS7-8HXDzngL0}IFpiI7Q^kB0rL*#cE{%jS|% zzavUQE}8mw3;u03_;pJQ!$!<|C7D0nf1CJ!t*a8JBz<9c^?=;s7IG0V63?UoE3~K^ zUK!{4PYmJYwn6^K$bZ*03+ACAMWrmHF$9Fz}l4~zO5T|g06KUc3gKYZflEuW9h1gbj^{=HX!kdC2^{GY|c z4Q%3wvUh#4ii)G)U)1YS8})d|M>B<>VVke9lrx+1KLr*|<)>^dM(4+O;8l2buddd~ z>xgOPe^ZZR%amLDalPk%Iq;W_Kwd?`Z_laV_)yfiGYC1!U)hECQ8_kvu(AyNW9sl9 zcQXn3SD1%A`i+kDYZANPG~*s=IRHWqP^rO7Isd+3?Ac>rT6Mh{ikG0V2}bw?__TEK z$%P57uO5-@>UsEy`tO$48=_9&<=g$wPy*3#@6%Ma>ebs|8u0H1FpzeE7y`RQePT9J z@WEyH>P%^yJO2gwsNo?0eHoq#`6YkjBeTfaZ7ckfr2Q4Qq2zI}0z$Dnl`xHex^A;= zfeuHIrMO4_ziZSN)r_dxOpnH>4QcJ%@;2_!TeP9+UxmwodhHmKXI?N_X%iay391ah zy#9{vn~ch zYQewMn~U&r`NmLmJ2l`h+`)#KL=qxKa4t;c7yc*P^#H>Z&Q z;FH91FsaJ<*MDCHkpTw;A}K?_kfmahlyG4d^GIS!PsM>MZ_veF=lGt-HRJ$c5Yv&b z%6(~_Op*WCnf?7IEqvF!4lARu61w4`wLGRm^#88@_~AVNj{}WVXA@F*Y1h&T@jk;! zrGwIO|Jf(%zv^~tk@|0j2WnI&K`pz-zw@Db^Ah;qu5#zw71~+oN%$!Lr`>#^jqBj2 z?o+#3osYhRs>Jg)(3fH+w9h|<6AnD*EW9>-L)+-=F>9#}EN~Lm+bsBZijy1e1HcyG z%TkGr#?Pu+!I9aYq9zWbmoi%z>rKY2@N06ST}%Oi%3Zk9n+iB^MHIkB+7Cu|&>>7s zCs2R6<$?cWT6q%>+9St7yd;^Ss_riEFIw2rorT4@$wvkM?_lzE-D7hWyK|*FT5gmP z+Y?dVh?0d=VNO@MSAR^s&yeloQ9flGIfMX1AYNB#%bNEo|F?UPjI79?6NUQ!OXep= zl^i+$4D!D`2IDES2K=M%+ywtf|5$ZU<)!W6-N)+Go^~-=6l-C0)S9#O0lRUF4mcj? z(T`u#3b79FKf7ERyd=BBmtlR&i7~;%%8)O!hyK&ZBtnKsBQ1gaU&iDK9U?+R0P@gdm9q&E<{W0Y~7UWtpWF87*!a3!@~OD&+BR+O$`>bm9DmUO<->)ql5Nm z@?HOgnWqjcJY+f{-)gooW&r2I|0}2mjjiF0R+I-CFI6{yf^5A@`43)$)X#g2%k~`> z${I4GiwRg0Amq>*dLPr zKI(=bdco)7yj2-sHgrGc@8}ODZ&XnI{|f(+J1FbAGxF zSUImhFz+CqJWq_~85yXP1MttgddWl3k<|ceey6GV9n5;%%QGq7ZKrEoEzdL5jlYin zMZY`1x2X5cE07*o!HRszgwMkg+oA5`xjp`oAENGFGAF&l|{|AaI;{SW$q0VbqR{?V!#|W+153=%;?N z4rakH<}gM2frI#lYR(b)9vqX`)j*gBP}icP^IF!NG{pb#NM2bN_4Q?7?-9g(9sj1d z!Hu$XfH%+I(D45+qc$cF+G_D2dg~~pt(WfF;Q!$~V;@K69=9G);{U!K+~MUkTy9fN z_K|m_C1M#~BBa-_eJi*GM4ugw(OVRHLVNiO+<%Cx{(0w!_ar*+moR^yS=qo;#1prF zZU3Dsv6iDTuquBgp0d$>4O^-_=s7Xw4zyy<5QIRu=i8W#NMAkp-r@D3HqlWB@8Udd zJMwWgx4XewSL1Ov#s7j6OEpyTgp-%jjj6@^xRdfhtiikGxNr3-2a(!~Kvd;yBmbRP zzfF5UGP4ADB(t--;RA@HG5!B$%J}!=#9ZfRIeSSB&gNxa6^wW9x+e~Aqj$#q9rgbv z_TWta!~+}W7gzZr_;5^C(o*Y3N+H3{_0H1>=lt=`kh&92u~pY_xYb*Qe{h>f1ck3|Az0Kgm;5A z$BLWb(>=sBcITe`&;zp;vxfXb1_mlbKi9fJ^TuNSe~vQ2);ye*Wvt&RO;{#(nx(jp zdy<&aQ+{Cjm-7z!9v-H=BL9!{cPQ)C%Y$=^EmZji{>iP!XZaPg6*Hgb|Drh_;9rt9 n>gu<)s`xeLTy7Yl0^_Y{Nn`TDuH7a67dwodj?9w>q%-!vHgRmK diff --git a/demos/second/part09_leaves/graphics/final3.png b/demos/second/part09_leaves/graphics/final3.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3c3a41574e378134166c52afd44c89b62b9a97 GIT binary patch literal 7553 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 X)K-`7^F|#G00000NkvXXu0mjfWO_F| literal 0 HcmV?d00001 diff --git a/demos/second/part09_leaves/leaves.s b/demos/second/part09_leaves/leaves.s new file mode 100644 index 00000000..c41b0895 --- /dev/null +++ b/demos/second/part09_leaves/leaves.s @@ -0,0 +1,82 @@ +; Leaves / New Way to Scroll + +; +; by deater (Vince Weaver) + +.include "../zp.inc" +.include "../hardware.inc" +.include "../qload.inc" + +mod7_table = $1c00 +div7_table = $1d00 +hposn_low = $1e00 +hposn_high = $1f00 + +leaves_start: + ;===================== + ; initializations + ;===================== + + ;=================== + ; Load graphics + ;=================== + + bit SET_GR + bit HIRES + bit FULLGR + bit PAGE1 + + lda #0 + jsr hgr_page1_clearscreen + jsr hgr_page2_clearscreen + + bit PAGE2 + + ; load image offscreen $6000 + + lda #leaves_data + sta zx_src_h+1 + lda #$60 + jsr zx02_full_decomp + + + lda #0 + sta COUNT + sta DRAW_PAGE + +ship_sprite_loop: + + lda #$60 + jsr hgr_copy + + bit PAGE1 + + jsr wait_until_keypress + +leaves_done: + rts + + +.align $100 + .include "../wait_keypress.s" + .include "../zx02_optim.s" +; .include "../hgr_table.s" + .include "../hgr_clear_screen.s" + .include "../hgr_copy_fast.s" + + + + ; wait A * 1/50s +wait_irq: +; lda #50 + sta IRQ_COUNTDOWN +wait_irq_loop: + lda IRQ_COUNTDOWN + bne wait_irq_loop + rts + +leaves_data: + .incbin "graphics/final3.hgr.zx02" + diff --git a/demos/second/start.s b/demos/second/start.s index 2f7d1b2c..6d8a1270 100644 --- a/demos/second/start.s +++ b/demos/second/start.s @@ -158,6 +158,18 @@ load_program_loop: ;========================== ;========================== + ;======================= + ; run LEAVES (#5) + ;======================= + ; copy LEAVES from AUX $5000 to MAIN $8000 + + lda #$50 ; AUX src $5000 + ldy #$80 ; MAIN dest $8000 + ldx #32 ; 16 pages + jsr copy_aux_main + jsr $8000 + + ;======================= ; run LENS/ROTOZOOM (#6) ;=======================