From a26e8560570aae37d0363adf980064f0a3460631 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Wed, 27 Nov 2024 16:10:04 -0800 Subject: [PATCH] Add dhgr.tk penguin demo --- src/dhgr.tk/demos/penguins/PEN1.BIN | Bin 0 -> 13601 bytes src/dhgr.tk/demos/penguins/PEN10.BIN | Bin 0 -> 5601 bytes src/dhgr.tk/demos/penguins/PEN2.BIN | Bin 0 -> 16001 bytes src/dhgr.tk/demos/penguins/PEN3.BIN | Bin 0 -> 6401 bytes src/dhgr.tk/demos/penguins/PEN4.BIN | Bin 0 -> 10401 bytes src/dhgr.tk/demos/penguins/PEN5.BIN | Bin 0 -> 9601 bytes src/dhgr.tk/demos/penguins/PEN6.BIN | Bin 0 -> 3201 bytes src/dhgr.tk/demos/penguins/PEN7.BIN | Bin 0 -> 9601 bytes src/dhgr.tk/demos/penguins/PEN8.BIN | 1 + src/dhgr.tk/demos/penguins/PEN9.BIN | Bin 0 -> 5601 bytes src/dhgr.tk/demos/penguins/PENGUIN.DHGR.BIN | Bin 0 -> 16384 bytes src/dhgr.tk/demos/penguins/penguins.pla | 134 ++++++++++++++++++++ 12 files changed, 135 insertions(+) create mode 100644 src/dhgr.tk/demos/penguins/PEN1.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN10.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN2.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN3.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN4.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN5.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN6.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN7.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN8.BIN create mode 100644 src/dhgr.tk/demos/penguins/PEN9.BIN create mode 100644 src/dhgr.tk/demos/penguins/PENGUIN.DHGR.BIN create mode 100644 src/dhgr.tk/demos/penguins/penguins.pla diff --git a/src/dhgr.tk/demos/penguins/PEN1.BIN b/src/dhgr.tk/demos/penguins/PEN1.BIN new file mode 100644 index 0000000000000000000000000000000000000000..602f575a2840ff3e3c0bff459a91b86005c5421e GIT binary patch literal 13601 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 M<23jvnec1>0sRzrH2?qr literal 0 HcmV?d00001 diff --git a/src/dhgr.tk/demos/penguins/PEN3.BIN b/src/dhgr.tk/demos/penguins/PEN3.BIN new file mode 100644 index 0000000000000000000000000000000000000000..55801827dc3ad313e121c886009d91047cabcefb GIT binary patch literal 6401 zcmeHLyN=^940I)2mtS<{Ln?0-W4FmKY-J!-$_4Uusjl@6Ns*##NzP@l%^@sonHr5A z=9rRy4J8Y(t_xvRmpKSwmXPXF52Nmf!(A$jvFp^yuKDv5fW!TMhy)5uPG&qFk9|bM z8;uoU=Zv0VSk$Z%!2V9=J&M9z+&y5{nqBO1I06dFa0_vU;c~gGa7>2FsDAGJcpS~a z9V^`m7+a4pYVZ0@JzueSz@5|pH4psrm0FJH)BF27K_;^kTyNq54r@y+)AY5m8w^fd zfe-@;d26Py0dzGC`4zWAXE^Y+=sd0o)P9HG)5q6GoziewAyYzDqYp_QL0yGA2Un-z zSOADiV0ifwpn<%FAt3e`c~B9FM1^B@6&ZLb2mm3R8HG+X8AYtcLk-7+)Jkd;^Z|Dz zvo-C$W=c6f>BI zPHtlY2HuoLEQL^RmT>eO_`rQ%*I+lRf zpvIL%q^ng#iX3!Xh8HF6)>zr9`Mny&vu%eAzTK)7VG*C?!8+=VCNKO+INosOwdu*h z76PW4yp+oWz>wGL6YZf?9%qY@f6#{#z4lkR>TO+~DYV0$7*ptnMh6_g**1)1wP_%* zSN_;649*ze%^$|OlRpf%^L=)>|M2`_vuhM6gnuS8gi5d5%urGhA2fT>lE2ni?NiQ) zp^#`~G%hm`Yh{SpK8!YE58)d7t8}cVaaQvO3FMLdL1%PCb~LxYvT?rjktGmYm%LE; zdgp-Q+03w_kw=MR%M7)s+MFzkWa3OG3nC82EIOZtfad-;!6nvVXza{7?}z5K`5 KaIgH4<&VGX`{+mj literal 0 HcmV?d00001 diff --git a/src/dhgr.tk/demos/penguins/PEN4.BIN b/src/dhgr.tk/demos/penguins/PEN4.BIN new file mode 100644 index 0000000000000000000000000000000000000000..f594ce37ad959fd1265bcf856816b0cfa1c06501 GIT binary patch literal 10401 zcmds+yKd_^5QfzmTP*ad>I7GQ1$Tj~yrMfIm3QtJ4kbC+<7~1D5K6y?94KeVW{|2;9bFg1^T!@fG|p0{(Ko!SM)oMbP>u zuzEnpdc8vHS)gA|ca))DF+7o35Tw4#WC-?D4=Z{XD|f=}iOgob-JvdVK_>V4cx9dDpJ$;l7j}JWLKMDMg zWj+^&4~yLWFS%;s=ZK?%!>JK4T8FC^9E!kp1&1P_UBRIU+!}C+59GJ-0ZvQ&gvh0l zxGV!xVV94@o8A#BKg9>kMYrn{d;~K7Bp;)oON04E7Y!m3pY2?HCfU=+dY|tz2QJj{ z!)4Om-rle8Ft>NpT9wb|j}Mv=y(v6nx$pt)1y|6JI0~}og=FY5&$E(u`n+JW_AK>! zJC|pP0*!mEh`zz0vfT$0wBnIn&I_16C_A!zsR@PKTQOZAA9laGgt8I|F;N5|%Hr^0 zA^m=#_$3_mAjn9w+=P!gKejbsL-isE&F@*1S^ar85f@XsW7prH{3brqLzOXf zMeD9#d^t`ReW!6d&SNORP?fSBAMz2?1ywUXav0S8xdGFXhZ4Ub4i5Q9`2%0+obde< zA0f;+&nO?$79SWij+jAc$@Oh~H1Y1~ z;?otjTehb@Hu*ds+|Dr{)bXqM$b;GDBQNYix=4ILyx0s2EpPI{`J-v)ZrAgn3ofzr zbyLSjw}ErJQc?S)@@YP9hz9{8^>HDK`9z272;>Cvy?ms>?OYthve$gt@KaT&)iE$V z4l$v4A9a0I5(*lZbaBC_HhO>cS9z^PA!LtNx;8#^8DWCP0UJ6WV(3ByseBf35Yo;k zqyfgw1mQ*8v;1MQfw1xZN@cUl3r|iL;d4g;hI=lbJJxjpTtY(G;-gO};>cm4BYt(+ zb~_m1F|08%+-(`QdH_f@Nqj)7f0hsWBJusMISz21 zr4Bauu((&dz(?fG>g6bClu$Sd>>2+l!L5g$zl3#GMJ_()jp@UfpiDlj{Iq%DYec36bL{MV-tmhCG( zgm8xH;FVNbPoW-#LomeP9|S=4CjbBd literal 0 HcmV?d00001 diff --git a/src/dhgr.tk/demos/penguins/PEN5.BIN b/src/dhgr.tk/demos/penguins/PEN5.BIN new file mode 100644 index 0000000000000000000000000000000000000000..5e60a6de868eb3a2a59dd684ba5634870cafcd32 GIT binary patch literal 9601 zcmeI2y^@0<5XZ5w$jr@fDe_)g(4-D4L`tZ^U?x zL{NlitBQqPvZ`u94jVGjE7gYz8t?{H;frxwJ5Wuvb1tA>=AP+O{%o zW?kaNd}xZGZ*iXwS#z#`M^Aj%Cy_gsV&UvRlaE=X$c>@mQiw5~?s3AuUL$5$+d`;F zre~P%PnXB>gY)m>t?wVi4@<{mKBT1hk$sr4=={61Kzu|f;3&`F%JN~BVG&)q^%ZBQ zqYx|jxZU&<_8ex{SCaUML0G7jV&Uv}%?IQam&n8QXjA;Kxkl)GR-^m_vUNNhLQtIs z>fhw&vk(wIX;;R)JI6lCKrNxe|?4NIprU2f?Fhi1D4!BP(x{Tp&rMFJuvZV?!b}eNdYp^8{Is*S^ zAsn%dad>6?Is!}gn}b?FDgHu1OFUCgl6Hl072m+aEM$DQpv~Cb<77$U)4`0 zfn|KSnfZ{yUVQxX{z0;OV?vVh8-yICm3#mKGEEb*@tdQHj~QDCGvergb_*ZsVUJV$ j*!B@>4VZQH4?e2D|NrW(>45Y5M<#r9kNC*5&gA0<8L?C5 literal 0 HcmV?d00001 diff --git a/src/dhgr.tk/demos/penguins/PEN7.BIN b/src/dhgr.tk/demos/penguins/PEN7.BIN new file mode 100644 index 0000000000000000000000000000000000000000..9a705c5cce198647d7423abaf8f7bb8a6034e4fa GIT binary patch literal 9601 zcmeHNyK>|p5X6B3Rb3TM{9n3&B z4M<{|W=8(ehxD6MD80K7+oAqcc$@u#-Vh3&RR8&gR<>3z3r1|PPp-;t3`5d zp67K1k{)bn3{qpBZ@vOOyz)a?LUyV%7;;;n>-D-%=x`sCNIX@tkP<7pQ8vN#eKM?s z_C2pRs^qEzFM1%~%RWai<{}8E1I`ztIqkQV#c`!K-(Z5baiRq#zYolhlbLV>P_yVs zS*qH*hs*&ZiUf~%(eO|6!?4Aj^26}+*b};WdZ@8&%lueZnD0E(U*(6lEMYG(8_g-0 z-;r+->%J*JX!pzu2-C?wATYK$7ZBSl%SQ`{CrH`wAs|enGdXg0YTK4HL>KjAT|o@u z2MAL2gKb|JddyaSZ2JN6L*IiR4wKS)l=*@44--V6z?_@ZFn}V{+bKWj07N9I{CI4B z@NNM6kGn$13H_idcp%-cmCn?+6P?pF4&KK6e0nMwtAzssN5#3NgyLy07rxw{lv;=& zivx?xFx518)Nwe|5AqL4KJZ)l@!BEk{`g_?SRDsa$@;^DImlT^3YHH4?bM6 zfK+}wI6qvT9b4cd?8pC8{AxOjU%~%i?WpIg8o$EXB=4U4z~H_4;T`X?dO$o_V_c12 zh2=tA6!Om@Pd)~)2H*$we%&!-{CmM?60pbnt_R$P4#UQ47RQw}e&uTX3LX_cZ`AJ} z8Jbjnd;&je{OVw7ai`{-P=gd$_2a|758}nb{Z3yml~`+Ib&X#kELXpuM}vTc9N3DY dY);V<>)zhJHy8nX1(#dKeTIz|KC#@0zZ7A{Q5ztw<*Q-bw5o<7 zfCt+WrAEQXVI)xDVrGnWz#-2OVSyraLT2t&mH@%@}lD)?0c6E7m+G4l$ zb{#qxZkWN+l@ov364m$65A3c=;TT5(*4rHaC^lEb=k^>05=IfR#^`Yb7(gFu{wqQ= z+V{iZuz#`ixxry;O(_l7@vzgw=o7FcOGL=#rf zPfabkE+952NEpE1zbPR8W!?V$95N&HP|DE*DHVHWVtUYHx7&SvVSN>)M^#Z~XspAe z!U9jLDn^f<1aiit7pngnJy2E!W4e->5qflWy+0Coiyol(E7KkI)q@_}g!mNd!5k3v zkm5ewJ|)u`B9r^}BNLg4u)SOCZOx%o1bRRrSDJXf4W85eHTrk6d5ZG)_Gh9HM$4&VwGYG;r7cKUHu= zQ&bh?m3UQL|#K(&(@I&I>QV-Ch zyNlwA%{jN3KhvGxcj7O*ifEOC{eII`M1hyC!he>!*;Sxynm$WKbb&NL+@K4gt618E_{##I@61&P9R^4(3sew;2RoXDkN@195v61AeSVUR$Sg^|V16 zMbj2p9cg9#>-)JyAm^8g;1}u9bH9J@7ZIf@N{&HgP`v+lFB_%$7xlcWRH^cGqorE1 z&Y9bO@2%}-k^Q=D@SSs6 zQ4M)NRP56>cGZ9%rFQt`?0ZkyPZgYY)h;KD{lrW5w^jEQ*CIQ~%q-kmYICKn3^#Mz zkvFx|nVXsXdbaPTHoMA=$>BmZAoMHxUgbjQt4duNhnZ=6eCzJB_N{Wf-=LM&J7qeC z`m$ZAZ>bh5J!8M^vEeIK4h|=7)(^x0LdvhuPx5L#$br1?-VpDbcQhZd724?xSv+8?6`iYjxX|v+C_(CtA1xs~+gHV@pgA{Z*_NTLyA* zcuE~tmJ$=g7(42%x4W+{@PIFHx(|J?{#=O{%+pRGrwe^#BRpyV~{G?6$SqFox#Dm&>P3|!?9-I>lSxQjSf_(dLv?jm<{H_M{TpP5+_ zM?o}kAL(D9b$A%;m4#V$Ac|(N2n!%$PZSb6ZZ;HbDy zR-%bn=Bhshk>gI??5n*uxK=Cm#8d4<`)G#m)xG3MJ%6O{)l1u7y2_~>x0HC6#J$(v zspppWdOcOVLvmGT3V;O_2YbNQ-ni4GipU#0xu}B^N+pG-36EWGhCgEIl=xH2+)H%gJ)oj%L^j-Y zjK&|sD4BywtQZ)xqb#+M_L07-Jg=AFK!I*vFhjG@54vsT{LS)Hm7*GaLmi_3R;2~z zvQo9=r7K8=^+7qYft&&?geQ2tE6zdRRVM>G#{*O1FJG8h?naqA4Ik;RHd-64E!>HC z7fpk!4w`JMrN+gJcSh&EdZ#Ko;$L6TlJW2}U?ue3i5oyah-Q9Q^e?=5Tspj{e0=fo z#l?%3TE4bJJMQHfKY1QYPB4Q<{}SHKo^zGAA+OKt z?48|`ZKA~d4XCu?)g$zOXs1E6c+HA^EIqTKv1819=g>I}Uq$UgXR(sBta|(l8BTkTMSYb{aq8uWBtrtNV0N;k{6W@)EQRdcpe+*stDs z9$F}Ecp%(N4gLcT?~itDzi!P6`*-f-6jrheJW#W)_(YnS$$w^ht&57MJmq_b?bKzN zGy5KY_#J1G=ew1L*ugCV5s#Pch?)DU1Ws($RoGp5c!`&J-P`W|Zp-n#C@peLsq_RZ zs>3w0P1`5`nP8wlb5q~mw_Gb8GzLiLq?xJ<|KH65`maqqTDJVSt@oaY7lAZc0Fk+~A0pIkXBtmn2}+i3mV-RnMA^}%(P zo)`H|RzBFDD0;elA!7uE7xqK{06KDIBm)CL)NTaw@N?dRLA zZSoYcZ;G`g{?5HNdPZ5V)QlYEqX7?nZ)K5Tw)gGXd&4o3D2&LJ-{pUb*h}bC?UWkI zPO-tQI$Zbz!&Z%o0UoM%JC(O;x7B@GXXS^L){_rU3hw_zmIUkDAizxYDqpzvD!4AyYGBUF_ntUNQ(5#}1zG4I0riHL`<%hc+xHgu zoh-nPb23ucuCH#D*3r{?>BYyp5G~m;S;(Krdw&sSkMtE<-^S@HrOKdsF;J~mU3ssP zuLhMg{JxO7nrvWZZXUU@WQfA!=C-lZs0>jFIxziqbt%#{3dPj4!93jWY0DYdcHzftFt{~!HdJ+E9)GwyrWW%6%V>R#Ui{i!GbTKcdKA4It_>iZi{*DvnTl9VimCw1c#+J#4O;wKO8ZSdh5>a4q)_{<#>ZKky!Maee|RVnRGtt< z1JV!35!(r!UYdPf@Wqf0@ReKzf5Cp+6ufPe?KsS5IVC8yztjMr=J)*bwt;2qNH$>q zVo$XzJa`TBL#d?v0U023*L6Jd z#Viey*-@a5>MugK*SF$@cnUc*a6@zPn14$b+pm+LFoL6Ih288f8aPv@4~E*I`k zoQJOqiQf|4b0mww+lu<_Mw)e!qbw!{_8he*^lwuWw3(5WLZU6sLOMh=1od!=r-W_@ z{(SF0HU`jw{&9VIwNyUdYLy47?YD1}YoFC^13wpUpyH={a?z`YUrBFE{-+oB)a&*v zm<8}dl(CNiQe>U>kyTXxb_ne}JmMZYh>SV~KcEK7%m@Eh1Ej{5JLO~PuL^O=BHxa3 zOFr;DA^)q5=d5fjb56J-3(g%?O7OF^Z4P81o%>PIp-5grOMcswywq4J&v`p^_R-#+ zD)aff|4STwq1z$<8?O}BM*eU4A2bqv49|D=Y_Hp@-~rgm+x0RcYWIs8I7Z>+MB0{g z(Mow~wCmG<+~=P;RR}xm9@(KP%Y>tSgr7bYJ3q>gUu{S|?ST_}RvviddZ|9(p)yqO z-Wod<@6a)b`N8sPoeG$hRJe5C``tmiKxyIOC&N430+)#Xuf(TR{zPAvl5q#%6!*21 zo1XuB2KI4y5A@0Z1Bq*;s*Q%|4*YgJslF2P$%kVp%s~c6IJ$UJ+Gus}^S{@9E?t}S zIaHr69wT{E`l1${(VluG{l9PGfyQ7!$2p@`lZuibUXOl7AMDu}EMa@el|&PJ?s_&* zIeNYG*X1Mo=qKai?*>KxU4IHv%27;d@Pg;tvuxj<2T^vE$$9(;EGKuV$dU{crjetP zpRfmAV?N*YCGC=)d z;9YFB_*s5psM5MZrFa<`h>AcwrJ(PmN0I7UspO%+$NPqETJ#^WJ(cc*P6P~m(0>b^ za;G}kQ=hh|z)4Ss2~pR5MI;?r4e?040F>=Ssq|IgDwRQGfpr_L22mDJ>!sx5q@dq+ z+u_umQfo}pJo>jDl}~QR)Zw}7(wT(tL2l`A^)V9}^-m+9L4a&%*Y-o3{dy=nJ z`&PJ9exAZNeQn|I*mmmmz2mKhIXm>2T9Iv}8hTG2aoe{+QdpX)9Foqlc<6#V;Pi}c ziN1ge>`{L86c_VQUZqvWdOp&6a3K9BnRn+M-KVF1*EWn*;H_B6`hD`h$IoqMwBQAv z(!b`S9MlA}Y)<}@8Y$o!IJL3b@+kT7X)6T}o|0R>`~UOG7d+OJ`J3|76cc)~6hxx) z_-RjS5U1PrjTRNkKrwToHhV>s?R5>KF{2xj?ziXesO91=zQ3aW2=MuP&W>hA2Z?{$ z+5uqped^&d3m@r2tpw$LnJX&Vvxy;cN(MnAOXa_j)6AQEW=*T>)M(`Y=ZOajeB-l_ z9v-NCk`@vg@Rmsa6Rn_a+ep_15ey-FcYAa)p{73zbUr}m0DJF3n ztN%+4sK9oNK^Hz(K{!w7O6||PpfJ-W(LVW4PI$_sI=W51Nd1*XDN~5f-q-r9*YAhq z2^=5Hgk7Xz6F2ez&Hz}TFa@yqx_LRlRsps4;vInjY2B$2ejLL zrH+!a+Dd%3+$R5fta@G`GjXTX0rmHWbKwaP8Ycdul!F?0PgN{~rjXwx$=R?7GS*vzYPsH^ zx^AgkrZ>`yk}W&;x$wQvT;$?cbaixg@!rmh<%?EArPL8T68n=ITkTtBZgXOf>Wk=y zSNDilcLEpm{zpiWX8rt8e$}e~7K$ABfhX?+;y~V!TD(sz?MY5h#yiP=)EUIBki1z#R-{BIOJb=l$x_sOy0dju6Fl5hxz;c@gP58R#N-PE4$Ko?#QH1sC&+> zpby7=M)3CyVyb*hq;^F=UfZY2^}0{mML&dYOjfVM=i%;rci-`uze}A)WPngt+1!hM z^F+3DXs+exKE@wzd{JRX_CKk&{p+|AWoyAL!Dl|I+9uFZnr$<2cJefH21k8Oo;L``^I@ngxNX zYNO1&u{heV@Z|l2&dfEIjYFA$?8NX_LauE*4_`Ex>n~SSOM!k^I<)+6b(QM6)WWPD z6yC^oI4Kwzhf@F2sb|sRDE!s@Ur?8fqDm#^ZzZ*b$9c0`l)r~&<8C84REKRf_zPJy zXLw9qSIk@H;@)yttUHs@Mosw7UTNP%EyLc@6 zHwZ`;Co?}zZXK!*ykDNpfV-i|(}y^BZ3;1FA>cspNPmOwlS;NF`B$E<4amAYVG$cw z-tG~F?|2TToZrF2Uj3=@oOg16caQlO??gv|hnBfSr|O^q=3h)&6jqV!L%jo^;BDbo zjxnQ!A=?te5Aok^N%w1b3J+9Zx8fs*Xj7?tz!YLf%~W#8iKq16Pt{ZAe)xI!3uji6 z_trfchZhvE!U6bmyKAaH74vVdF@G2^jYPfTsm!rFL9p-fhYzh(=w&!?Y4oLb>GtZ~eHr2J+MAsGC8zDSGPwkI4G5;3-7xdjLUu6D~ zM=ENe&G!o`An9Tr4{C_GQ$Q5JXIi&vIr&A5OK3usopF}dSdrXh0fyh2&;Dv9;&iDDdJk={bSq0vT zISBSG;@dVpe%R^OQ@{I@+WEU3INp%hKJ?x>_y>o9wV#tEX9WU;=^p3k%BVn@fvO7A zMwve%PpK?@knM&U~o4g({r{M5>VmrH)dxTxD;8mX4NezPZdDtfih{y-}087mUs=Ff8DElR3G?9<}$w`dj*}M zE;O z0<`1w$YKKfAiqBQs5zRW=1AU)Bbq*Z(#?lYrK{5`tywetSUb3C)=v3&>343{!j6^r zost=_@)tek^P^yY`FL zCLi^9B(#6|#3%N)`TVTl@Y%V(oZi7n#3?;a{me>SM{hlmuUdDk11sIGg#~@LGakWX zFUV{?X5Y{WC-=)9>FeRn5RRt0Di@L|>&7~`)HS|Mzw$Evtka%pM^}2~WbI`0bkn}k zz33+Dolk3eVs|XZMdmpx*$4X5yXj@~hegNlS;^E44z7`kqk5e!`eDs4bO`U?ra09Jg!}9G%(uKPli{gT5pQvaD&dcE4$ZnVriY)C(yBV z^be!v4}RnqSM(T!c-6rT`Zunw@ROriQ=>i7NL zB25$Q)p^99(b`C#ZGBined|b6=t_?#IvQ`C)V89giQWFG`Pqu}>6%7G9QXqKg>a-J z%MP%B?^rV~z?X2pX*YE*@lD}j?le!fGitLm@8|jZew_JCt^CVJ{P`f($2`@uQdRV4 zYF%gx3sWZi?eS%#u|O}^`gAxtn`*IZid+|YuA5gH@9zcZIuO4W`jM67sn0GjLKxYT zz)U*UdnTWFs^7OViyY{u{)7IPk^F9|*H6|;Cx3NZy{ci?JJG`L6Tdg_T%px~ef-2v zd&zj(7o9p-H`1S9o~$3td*hCrv0$(`(jFdEa40JiKe77ZWZv=PdD8FtJo^Y!D~~&m z@?+J_Nb9xgXyw}uyrJ_?*9X6RCi*_{%9(#XSv$b@B3-MVpfQmY@3#``LNq;g>YM-p zekA@f%X~TMi;jqQKLS~nU)*6)4zz`yh7KPeGC=t&?P=;Ib13I%x)4R8n8gPce6 z)E`BfIGx-?KHRlEMC)T zb7^gblQ;+m{=c;|9R1G`>KRQ(`keQF)1yGF53PtL;n{c+jCzr_>p!xSSU~81I?a8@ zzY{ArN8>C{h@9{EBa97?KW;{~A@alpe-l6iBs|tagP`BDq+zYsLFWn{(vEtH2hq5SJqz%c92WN%f?< zQ>|*}?5yv*&~z;4tFw^RN#377(BE1+7d%@ZUY)G3;@LoqZOTq>oXCkLSL7c2e-g5% zHfuHF35oHoPmPb5Hu7En(v^7Yb6o;H8~4B(K96BzYz9+X|Cj5Bc_&PvZO8CybbvyGI>mKC!O|yD8joc_? z&w27K{~Qo=w#X>?C+}N5Xj#N*pFhj9EeHH?!!+zY_Wybfi8n{hlPliQ{bx8o2s(VO z$!|e^@~{6}U)4Si&xM<%J=SxH1K(>7L4WY4d4EP~0=)4J`A@tO-#F+cx;gwZ$D;nE z*P9dnqMOI~(>0XNz7xs+x-*viUwDA*$Y)`|>=kFKR4O-mh;H;9KUzoE9gq}@_?=m4 ziN+pDzw5@wqhJSK3GUx2ZNBdXtw?kA%J-sg3i`*D|hW;g9uV0RI zjU8oI^X6QiJ}Is5==05U9l_Nl`&Rj*HfRfd>yw_YfPiDCXOC^YSy%uBv`o@x)MKam zsGo!{Zn(A3--G=}dUV`Gv-Y!(&vZbq6yVi@KX^fPX$k7W!vthBmzHV=!-%_Wwt#1e zLwvFDXdkqk4sR}R?5n5;{UQTMZ4_Ny=`@Z(Otc%+eqsER3c5bfC##ZsOwLIBOKlMG zYeI8c*2}4lM_hA(oOn_@87{3aRhEvImY0@FORM(z)yV43>GJ}xPB@xsBn`oVAISZZ zf6ejeTAz0E9Pf97er{16_Gp27Umxg~#QWD)0J+jV(D7B|GxfN-x;8%P!Ab3p|CEjN z!5S_ZbVAcg$LUyGJ)tN*=2IqH*@IrDkw4m=HiyS6)ir+f^~)QFm`llgoq0cY788re zc=Z3J3cF}sKC2B+noVlBn#O*5YSus%_lFUlfDNKWku_>Ha&PCW36>1=ym?YPuo7@K zhJI3TZEG7}aI7bd)veVJOO4g#^_|r`o%a@QzvKQs>U?!mvQeB_5Aq))^*I*fndZ{Y zdiDCMM*h&_8$A`TO0U5m{P8dNQ~ICou4GU-@A&%qlP;|vM9$cmI@H=Z@Q575By|Fn zhF~)O*U!_m5B2<8o|s?GI~g;;NBTSDe^lK3bbMOeulWM@YKg;7x^`XVT@L)@{wR-% z{8@al9Q`j)fzp}iX@b?#9^ack=H~dGgGlR_CuKc0QK}h%KCJt7{y*0{SEK1U6%f2n z3MEpdO8qU4@oD_IslQ5P!TwT#z#XyIqsp1uS9Y~G?xKsHHSw30Kd~MfpxoulNlxx{ zV|?%qx_Q`%*G_6;M}IUN;p+CI|4ULN@{4S)nN>`{AYzZ5bmL4Iy{=011z_IV^4ck~ z-{Bp$9TnBLL=4p|8khx>H*%jn29ukU1(m07eog&5y{hdg33XHpdh_an9R=_n=|{uU zb?VNmQL}obk%Z_Mtop^&y>V-K2RyDekvclpAM4Vo;4OGMzxN!2Fp`gYW2Dj_q;94< zfWDkBEHm2qME&dF`_6PSP4$FlU%#K;We@(R*Z-hTPCg>l$?$ZVg$G#C4naz7Z|Su! zV^cIR{)`qWL^5i7C)^%&uR1}8zF{ioInJjeeb=P^&Q5P56h!wN=Nv)iB2~Epzn?+FISIOPgWZ% z4XNu!&m!haL_^pM-J)|KGu(8nsHvwRTEP;&ZamR_t3y3_H1GLg+PCs~9DeUVmRE~x zR{eOkygnS&^x2Sd6fd*S9CqFuO6K|8?Dfg-z4Nn44z>5-oqxu8{funu@rAkK*xy#4R@=A47tDaTysd#)B zk?F0YYazqo=W&0LzWEVEhcEDk{C|3aeR{pgoS!1DZ1_%l@YJ&dY6LQK1~-g+U0(TX zMv#*ZB8?sCw|sT zn=|efMkDdYm(r&s(uYjtT&;G7b?j(L1iXGGICK8!|8%)U*XKy{rHeYIAubAE=V#s_+OJ_+5~TJ-{x zN!O@rCNB^AKi9`pz@q|xq;tBwsf{&S0RPIZ^-rUk$PdYpK3!^!4r=J?vrX?215eeS zHlNuG>-Gf`U9=5?+nQRlK(}Q zeiZ5P6sc2txHY2s{6zF~%ci+>p?CBhbYbsmw0S3|1M&a&^CNP$Er=OJGMhO2fu7W) zGBz#qctt1u6c3T=#+h4-{sJBz`_F^5(--&s|4L1&HzL%rH-tOg!z)9vK)X7C$MoD_s`*fPj`*{*G2V3w*u({)t{~qa| zz0mq#xJ(varvHwL?d6qGn>4R`n{lj1Sc-~Mqr!R+fe#q_9le#uR`@|JW{CRJ2 zCofa;YjlbykMRo|y`1bdJK<#3VFp1A&gp$a{u<$t{)ekOFw0(Bt}bt#pg{6(a3J+y z4V((}RfHwrW|7{+{;2-Lw|PrSmlrWxq5c@#V-u{;i>$^6P`9#>w$XbyyWaQanridRmR{tw9{qK^1XT%vHwP&0n6Z zMXnC)9vNs({GkthbudmXsYklvOY#gNwL&mIiWl-+zO%^V>}#KDN&bV<`Bh|9ujlvi*SzJT9G7EfK0YmQQaC7Z zs-;gwieM6&vwM`(!w32!O;^jdx=Jn`AB?H_ixeY!LA^-NNH&hhKg^$y5&D5MjhF$R zUs2Num8dtX6x)9)J2pya~$3AJ(J?0tp4NsXzEAm0zKOXgp~OEt~n@-RY0%ef5K% z=skUTb14#%l>UkQ#|MrF`E~7Jt?0a)qbnVRq3)UBk2&YRtBjYIm?=<$)u2QFQ9ae? zc#F`DWQ$GefH=X+I>Dvj8t9m!ok-tF{|{gC6IE(b|G2Rwm1)w?;$A9BP><_4io%znE$~LcpRrxw4zJ zqW_3zo$)77sUuVO9KU2XeS8Le5FiaFA@MJInabSPc~da@OHCGYK#^%g68@gNpDpq;?0%)sYX11m+W0kf?da^la)?vWtgAB( z`cZ#h`kg75^tHeMD${t8&IJd^+ELQ)ggLVi_fh}Nt3OCZr+3y%jIcgEBgbKd&REd8 zH%_ihzEf8RR1*vL&5zOtK#jVxv8J2rf7VQkn7^dt|1;r0gK>Uz<5+k6!GG3EtOd^> zEz3gkG^RIjyY#G1*nRB3sJ-qDdR$aA_`9aty@aOZU%EFAroaEHhvu^#yc;b`zaSN} zd~0^C4p^U^(y0=g@J`Zy&!pqS;y+{9l_7S^{q`DN%6CJg9 zI*uU0F{1weu6Z3+S?QI|BLI- z%$w-|S0F-@k2nZqW(b6qMbpJx7Y(x)9NwLo)Ud=0ni;(Tm3S7J;DfzbX5*c&nUy`# zUtXvC)8=nK>ZMhQ;9B8U@-mrr#y`|AiK*&%nisfx25CGm<|&JFa;D9z2=wa}^dDHO| z&HK!cZC1+v$xZ0~z?xzX*rfmf31m*TVDd=i#goL|_y7NJz)VY`d0JFo((P~*m3)oN z^XY6B$a=u=)E%;~B1XMFmS zjzNy^{!ice?40RZ4NnIl=Lo?wIuL zCri}}xDp(^jHpt#cAotU`JazOKN`5=)AZi|Cce&qx}bA&2|7hQXTbl9+8}B+UxLe= zzoV1*`+!=M{eCt7r~CL&c-cvn=_Pf%$=`Ylk*v8?Vy*p|9IBDvl==IJd%1LVQ0&1s zd;|}qpW{Svh)s0!Z$&49#6Dv?o#xg&S+Gj-@FF7zx{vn(Pb0z?p0p8o03 zq(qzUbl%`o@&s}|x?*tAAX`VSs> zllR~!v#gjNbn)H)m#UGNnBwiMUXl$)=D6U3Oo~>IO`&v6-8PJL^ui>g&Bd>LoyX15 z&@7^_6ZY_bIqv6g$)YAB7x@Z{(=7ADuhhhI@smDv2)_B)|DLVuO;$CBqn#(KqtV&f znP%FIwY-eU%0wQwXj7YM7UW_0@<;T_pB7`;1D+9&%F$Gw^@+8=)wSA@$xD$Fj>tht zp64-VvPI8N+(c$#F`1Z({K5ZPYt4eq(if z=;Mi{nEW4w#j`0eP~r;T)g9^)hw4FiN-~}_gjU??C%Ma$04MD%_&cy1{Xfe8{{h27 BU$OuI literal 0 HcmV?d00001 diff --git a/src/dhgr.tk/demos/penguins/penguins.pla b/src/dhgr.tk/demos/penguins/penguins.pla new file mode 100644 index 0000000..c491f27 --- /dev/null +++ b/src/dhgr.tk/demos/penguins/penguins.pla @@ -0,0 +1,134 @@ +include "inc/cmdsys.plh" +include "inc/args.plh" +include "inc/fileio.plh" +include "dhgr.tk/inc/dhgrlib.plh" +include "dhgr.tk/inc/dhgrutils.plh" + +sysflags resxtxt1|reshgr1|resxhgr1 + +const FRAME_WIDTH = 40 +const FRAME_HEIGHT = 40 +const FRAME_SIZE = FRAME_WIDTH * FRAME_HEIGHT / 2 +var arg +byte xTV = 3 +byte yTV = 100 + +def greasy2dcgr(pixptr, grptr)#0 + byte i, j, cl, ch + + for j = 0 to 39 step 2 + for i = 0 to 39 step 2 + cl = ^(grptr + i) + ch = ^(grptr + i + 1) + ^(pixptr + i / 2) = (cl & $0F) | (ch << 4) + ^(pixptr + i / 2 + 20) = (cl >> 4) | (ch & $F0) + next + pixptr = pixptr + 40 + grptr = grptr + 40 + next +end + +def greasyImport(filename)#2 + var pixmapbase, pixmapptr, frameptr + byte refnum, numframes, i + + pixmapbase = NULL + numframes = 0 + refnum = fileio:open(filename) + if refnum + fileio:read(refnum, @numframes, 1) + pixmapbase = heapalloc(FRAME_SIZE * numframes) + if pixmapbase + frameptr = heapalloc(FRAME_SIZE) + pixmapptr = pixmapbase + for i = 1 to numframes + fileio:read(refnum, frameptr, FRAME_SIZE) + greasy2dcgr(pixmapptr, frameptr) + pixmapptr = pixmapptr + FRAME_SIZE + next + fin + fileio:close(refnum) + heaprelease(frameptr) + fin + return pixmapbase, numframes +end + +def delay_getkey#0 + var busywait + + for busywait = 0 to 3000 + if ^$C000 > 127 + break + fin + next +end + +def dblHeight(w, h, pixptr)#0 + byte i, span + + span = (w + 1) / 2 + h = (h - 1) * 2 + for i = 0 to h step 2 + dcgrPixMap(0, i, w, 1, pixptr) + dcgrPixMap(0, i + 1, w, 1, pixptr) + pixptr = pixptr + span + next +end + +def frameAnimate(filename)#0 + var frames, frameptr, framesize + var frame7ptr, frame7span + byte numframes, i + + frames, numframes = greasyImport(filename) + if frames == NULL; return; fin + frame7ptr, frame7span = dhgrAllocBl7Mem(FRAME_WIDTH, FRAME_HEIGHT*2) + dhgrSurfMem(OP_SRC, FRAME_HEIGHT, frame7ptr, frame7span) + dhgrScrBl7(xTV, yTV, frame7span >> 2, FRAME_HEIGHT*2) + dhgrSurfScr(OP_SRC) + while ^$C000 < 128 + frameptr = frames + for i = 1 to numframes + dhgrSurfMem(OP_SRC, FRAME_HEIGHT*2, frame7ptr, frame7span) + //dcgrPixMap(0, 0, FRAME_WIDTH, FRAME_HEIGHT, frameptr) + dblHeight(FRAME_WIDTH, FRAME_HEIGHT, frameptr) + dhgrSurfScr(OP_SRC) + dhgrMemBl7(xTV,yTV,frame7span>>2,FRAME_HEIGHT*2,frame7ptr,frame7span) + frameptr = frameptr + FRAME_SIZE + //delay_getkey + next + loop + ^$C010 +end + +arg = argNext(argFirst) +if ^arg + while ^(arg + 1) == '-' + when toupper(^(arg + 2)) + is 'X' // Set X coord + if ^arg > 2 + xTV = ^(arg + 3) - '0' + if ^arg > 3 + xTV = xTV * 10 + ^(arg + 4) - '0' + fin + fin + break + is 'Y' // Set Y coord + if ^arg > 2 + yTV = ^(arg + 3) - '0' + if ^arg > 3 + yTV = yTV * 10 + ^(arg + 4) - '0' + fin + fin + break + wend + arg = argNext(arg) + loop + dhgrMode(DHGR_COLOR_MODE) + screenRead("PENGUIN.DHGR") + frameAnimate(arg) + dhgrMode(DHGR_TEXT_MODE) + return 0 +fin +puts("Usage: DCGRDEMO \n") +done