From 197270cbcf977a2457ae7216b3a62b0be1de277a Mon Sep 17 00:00:00 2001 From: Nihilazo Date: Wed, 17 Nov 2021 18:19:19 +0000 Subject: [PATCH] broken audio w/ more tests --- apps/plugins/varvara/devices/apu.c | 1 + apps/plugins/varvara/tests/audio.rom | Bin 0 -> 959 bytes apps/plugins/varvara/tests/audio.tal | 183 ++++++++++++++++++++++++++ apps/plugins/varvara/tests/bdr1.pcm | 1 + apps/plugins/varvara/tests/sample.rom | Bin 0 -> 8264 bytes apps/plugins/varvara/tests/sample.tal | 53 ++++++++ apps/plugins/varvara/varvara.c | 5 +- 7 files changed, 240 insertions(+), 3 deletions(-) create mode 100644 apps/plugins/varvara/tests/audio.rom create mode 100644 apps/plugins/varvara/tests/audio.tal create mode 100644 apps/plugins/varvara/tests/bdr1.pcm create mode 100644 apps/plugins/varvara/tests/sample.rom create mode 100644 apps/plugins/varvara/tests/sample.tal diff --git a/apps/plugins/varvara/devices/apu.c b/apps/plugins/varvara/devices/apu.c index 9c55f068fb..25eda3d22c 100644 --- a/apps/plugins/varvara/devices/apu.c +++ b/apps/plugins/varvara/devices/apu.c @@ -54,6 +54,7 @@ apu_render(Apu *c, Sint16 *sample, Sint16 *end) c->i %= c->len; } s = (Sint8)(c->addr[c->i] + 0x80) * envelope(c, c->age++); + s = s; *sample++ += s * c->volume[0] / 0x180; *sample++ += s * c->volume[1] / 0x180; } diff --git a/apps/plugins/varvara/tests/audio.rom b/apps/plugins/varvara/tests/audio.rom new file mode 100644 index 0000000000000000000000000000000000000000..15c8f2dc94155ddc96b8f62f4aaee30975efbddc GIT binary patch literal 959 zcmZut3n*k^6#nnMV~uUb40-L6SF_97#YoLuYcng-N*PUKCaWZgWD@e8%bvYsyh9?9 zbW@U)q@&Si4*PZs+{x{~q_8BWZ>}X_PR�a1=N-TkB zqr`j#z`GK7qr{ou6TT4mXoMe-5el&eU`!H$G~iM|=Pf>`flrFWW+nkEv7<=@#1K$K z0n@91cWPj@LqH_flC%fJN8)_>AO^@Dy#$+qp@3HgEb`w!#|P%s^9ltj!qn7#6iu|0 z7Zm|)z@woO;gG*D^Dl^_5-m0ofC;opVAKQ{E%&EIFoklDb_~4r2L@s=paA_D)SwV| z1q4ap>(BJTPj#$Aqro;oZvsxwL%fl)8@8x4d znuz~U`IlCU)tqPk^6->xcAMR5v)U~9Qeb@`glKtz5I$QJ#cZDNg2&?#ctW@rekx61 za9DU`j4m!AQJ-o^OV7y6%E`^kFR&Eai;7E1%gQS%tEwF}wRQCkjZMuht!+-H(B9rb z&o?=?w+l{ZTWd>mQ)5GYU2Tn{x~j6GysWgOxX4~;Dag;u&B@BlNKZ4Q>Jt;EQdXpQezi2MepY)pv& literal 0 HcmV?d00001 diff --git a/apps/plugins/varvara/tests/audio.tal b/apps/plugins/varvara/tests/audio.tal new file mode 100644 index 0000000000..644b99b361 --- /dev/null +++ b/apps/plugins/varvara/tests/audio.tal @@ -0,0 +1,183 @@ +( dev/audio ) + +%2// { #01 SFT2 } +%4** { #20 SFT2 } +%8** { #30 SFT2 } +%20MOD { #1f AND } +%RTN { JMP2r } + +%GET-NOTE { #00 SWP ;melody ADD2 LDA } +%GET-HEXCHAR { #00 SWP 8** ;font-hex ADD2 .Screen/addr DEO2 } + +( devices ) + +|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] +|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] +|30 @Audio0 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ] +|80 @Controller [ &vector $2 &button $1 &key $1 ] + +( variables ) + +|0000 + +@timer $1 +@progress $1 +@selection $1 +@offset + &x $2 &y $2 + +|0100 ( -> ) + + ( theme ) + #0f8f .System/r DEO2 + #0f8f .System/g DEO2 + #0f80 .System/b DEO2 + + ( vectors ) + ;on-frame .Screen/vector DEO2 + ;on-button .Controller/vector DEO2 + + ( setup synth ) + #0208 .Audio0/adsr DEO2 + ;saw .Audio0/addr DEO2 + #0100 .Audio0/length DEO2 + #dd .Audio0/volume DEO ( TODO: turn ON ) + + ( center ) + .Screen/width DEI2 2// #0080 SUB2 .offset/x STZ2 + .Screen/height DEI2 2// #0040 SUB2 .offset/y STZ2 + + ;draw JSR2 + #02 ;draw-selector JSR2 + +BRK + +@on-button ( -> ) + + .Controller/button DEI #04 SFT + [ #01 ] NEQk NIP ,&no-up JCN + .selection LDZ STHk + #00 ;draw-note JSR2 + [ STHkr GET-NOTE INC ] #00 STHkr ;melody ADD2 STA + STHr #01 ;draw-note JSR2 + #02 ;draw-selector JSR2 + &no-up + [ #02 ] NEQk NIP ,&no-down JCN + .selection LDZ STHk + #00 ;draw-note JSR2 + [ STHkr GET-NOTE #01 SUB ] #00 STHkr ;melody ADD2 STA + STHr #01 ;draw-note JSR2 + #02 ;draw-selector JSR2 + &no-down + [ #04 ] NEQk NIP ,&no-left JCN + #00 ;draw-selector JSR2 + .selection LDZ #01 SUB 20MOD .selection STZ + #02 ;draw-selector JSR2 + &no-left + [ #08 ] NEQk NIP ,&no-right JCN + #00 ;draw-selector JSR2 + .selection LDZ INC 20MOD .selection STZ + #02 ;draw-selector JSR2 + &no-right + POP + +BRK + +@on-frame ( -> ) + + ( incr ) .timer LDZ INC .timer STZ + ( skip ) .timer LDZ #10 EQU #01 JCN [ BRK ] + .progress LDZ + ( play note ) DUP GET-NOTE .Audio0/pitch DEO + ( erase last ) DUP #01 SUB 20MOD #01 ,draw-note JSR + ( draw current ) #01 ,draw-note JSR + ( incr ) .progress LDZ INC 20MOD .progress STZ + #00 .timer STZ + +BRK + +@draw ( -- ) + + #20 #00 + &loop + DUP #01 ,draw-note JSR + INC GTHk ,&loop JCN + POP2 + +RTN + +@draw-note ( id color -- ) + + STH STH + ( set x ) [ #00 STHkr ] 8** .offset/x LDZ2 ADD2 .Screen/x DEO2 + ( set y ) [ #00 #00 STHkr ;melody ADD2 LDA ] 4** #0100 SWP2 SUB2 .offset/y LDZ2 ADD2 #0080 ADD2 .Screen/y DEO2 + ( set addr ) ;marker-icn [ #00 .progress LDZ STHr EQU #08 MUL ADD2 ] .Screen/addr DEO2 + ( draw ) STHr .Screen/sprite DEO + +RTN + +@draw-selector ( color -- ) + + STH + [ #00 .selection LDZ ] 8** .offset/x LDZ2 ADD2 .Screen/x DEO2 + #0070 .offset/y LDZ2 ADD2 .Screen/y DEO2 + ;selector-icn .Screen/addr DEO2 + STHkr .Screen/sprite DEO + + .Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 + .selection LDZ GET-NOTE STHr ,draw-byte JSR + +RTN + +@draw-byte ( byte color -- ) + + STH + DUP + #04 SFT GET-HEXCHAR + ( draw ) STHkr .Screen/sprite DEO + .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 + #0f AND GET-HEXCHAR + ( draw ) STHr .Screen/sprite DEO + +RTN + +@melody + 54 52 54 4f 4b 4f 48 ff + 54 52 54 4f 4b 4f 48 ff + 54 56 57 56 57 54 56 54 + 56 52 54 52 54 50 54 ff + +@selector-icn + 0000 0010 387c 0000 + +@marker-icn + 3844 8282 8244 3800 + 387c fefe fe7c 3800 + +@saw + 0003 0609 0c0f 1215 181b 1e21 2427 2a2d + 3033 3639 3b3e 4143 4649 4b4e 5052 5557 + 595b 5e60 6264 6667 696b 6c6e 7071 7274 + 7576 7778 797a 7b7b 7c7d 7d7e 7e7e 7e7e + 7f7e 7e7e 7e7e 7d7d 7c7b 7b7a 7978 7776 + 7574 7271 706e 6c6b 6967 6664 6260 5e5b + 5957 5552 504e 4b49 4643 413e 3b39 3633 + 302d 2a27 2421 1e1b 1815 120f 0c09 0603 + 00fd faf7 f4f1 eeeb e8e5 e2df dcd9 d6d3 + d0cd cac7 c5c2 bfbd bab7 b5b2 b0ae aba9 + a7a5 a2a0 9e9c 9a99 9795 9492 908f 8e8c + 8b8a 8988 8786 8585 8483 8382 8282 8282 + 8182 8282 8282 8383 8485 8586 8788 898a + 8b8c 8e8f 9092 9495 9799 9a9c 9ea0 a2a5 + a7a9 abae b0b2 b5b7 babd bfc2 c5c7 cacd + d0d3 d6d9 dcdf e2e5 e8eb eef1 f4f7 fafd + +@font-hex ( 0-F ) + 007c 8282 8282 827c 0030 1010 1010 1010 + 007c 8202 7c80 80fe 007c 8202 1c02 827c + 000c 1424 4484 fe04 00fe 8080 7c02 827c + 007c 8280 fc82 827c 007c 8202 1e02 0202 + 007c 8282 7c82 827c 007c 8282 7e02 827c + 007c 8202 7e82 827e 00fc 8282 fc82 82fc + 007c 8280 8080 827c 00fc 8282 8282 82fc + 007c 8280 f080 827c 007c 8280 f080 8080 \ No newline at end of file diff --git a/apps/plugins/varvara/tests/bdr1.pcm b/apps/plugins/varvara/tests/bdr1.pcm new file mode 100644 index 0000000000..2dac15782d --- /dev/null +++ b/apps/plugins/varvara/tests/bdr1.pcm @@ -0,0 +1 @@ +€€€€€€€€‚‚‚‚‚‚‚‚ƒƒƒ‚‚€€‚‚ƒ„ƒ‚ƒ‚‚‚ƒ„ƒ„ƒ„‚‚‚‚‚ƒƒ„„„„‚‚€€€‚ƒƒƒƒ„‚ƒƒ‚€ƒ‚ƒƒƒ‚ƒƒ‚ƒƒ‚‚‚ƒ‚ƒƒ‚ƒ€€€‚‚ƒ‚~}}~~€ƒƒ‚ƒ‚‚‚‚…†Š‹ŽŽŽŒŒŒŒŒŽŽŒŒ‰‰‡ˆˆ‰‡ˆ„„€€~~€€{{yxwwwwvwssmmfe_][XWVTROMLJMJONTQYW_]dcigontswvxvutqplkgfdc`^]\ZYWTSQQNQOSOSPTRSQRPQOSPVSWTVSTQOMNJNKPNPNPLMKMKQMTSYX]]_^^\^\a`edgffdcab`eciglkmllklkmlonrqrqsrtsuuvuyy~‚‚„„„„„ƒƒ„„…†…„„~wvpomlljgfa`\[[X[Y^\a_b`echfihljnnrrvuwwwwxw{z€‰ˆŽ‘‘—˜Ÿ ¦§ª¬®°±²³¶¶¸¹¼¼¿½Á¼À¾ÃÄÆÈËËÏÍÐÎÒÐÓÑÕÓ×ÕÙ×ÛÙÝÙÝÚÞÛàßäãçåëéíëñíóîóïóïõñöðöîôëñêïéïìñíôîõïõîóîôñ÷óúóùóùóùóùóùò÷òøòùð÷íôèîæìçìæêàåÚÞÖÚÓ×Ó×ÐÓÊÎÄÉÂÇÃÅÂÆÁÅ¿Á»¿¹»µ¹±µ®±ª­¨ª¤¦¡¢Ÿ˜š“•‹‰Š††||zzzzzyxxrrmmmlmmonmljjhhhggfeea`_]][\[\Z[YYWYWXWYXYWWVXUYW[Z][\Z[Z[Z\Z\[\ZZWWVTSTRVSUSSQPNNMQOVSXWXVWUVUYW[Z\Z\\^]`^_^_^a`ddiglklkkkjjmkompoonljjihikjmmpprqrqsrvwzz||}}}~}}}|}}|}~~}~}}||}}}~€€‚‚„„‚ƒ€€‚ƒ‚‚‚€€~~~~‚‚„ƒ„…„„ƒƒƒƒƒƒ„„‚~~}}~}~~~‚ƒ„„……‡‡ˆˆˆˆ‡ˆ…‡…†„…„„‚ƒ€~}~{|zzyzxyyyyxxxyyyywxwwvvutrroomlkijhhhgfdca`_^_]_^][ZXXUUTVTVSTRQOOLMKMJJHIEFCFCEBC@@=>:=:<9=9=9:8969595:59585513/2/2-1,0,0,/+.*/*/+/*/*.*.*-).*-)+(+',','+(,',(,)-).*-*,(-(,','-).).*.).*.+0+2.2/2.3.3/4073848494:6=9?e7?mB&3b{xF%U$$Ye@YO3aA9AksyB{q~DCvjqS3F&Fy_kEX;5CZ8*APKa9 zR?xl+fh4pbB#_uQ6SLb?#$~6HN!3h}No?cT*zsh(%>4eR-viR;b>DvX_3e9a_c{Ob zKj#fS^_2IG*S-Je{n0Z+f49N==IcZM@RWDm>)toL-enGD=983-BG%|q_7|-J3TEWIUz1K zCMq&K#1j-05ESSM^lS?W_5=lQqrWZ86CM)g2?+|^8n7u~^R@tF%ht_XHwSGE@kB<% z#>U6R#l*!VCZwjMr!iGxQbH>C$jQ#l$;nompI1~^R9IY8QoMb8>GtySs>+%gtOH7D~j*f_qWX5>Sl#!O1k&~5|S5#EGU2nIetYT-icmKZT z0|#4LTMu^)4jq}8oSvDRKe4d1bb9&h*$d|`oxOPe%GLLNar5Tg+xPB#c<=rPzr6p^ zFF*e1S0DfS<6nRBn_vC*KmO}K|M0s{|M>Z*Uw;1Z!NV^ee(}whfBExY9(?`jmw)== zk6(QD<>y~N_~wgm9z1;T^_Sm1{NIOv^~+b^e)T_J{q@h^e*X1;KluG;fB5Y8fBNn3 zKKaeRe{%n$`ybuAf8);8_b*?+a_#bam#$s7bmqeHnZ@P##hLlZ<3}gQjtr0V4|esm zceb=NHt%n!tE;ZwwQHwJ`Hme$MY*}TIk~y{dAT`RSs57_>FH^ysfh{kv9ZxH(J@ic zk&)q%;Su4H5s~5HVG*H`;n7k25*3ZaL}^46=R-Up!C{_Ik0)qbK)}|Zz%Wllctluu zXqb&>TufYSLR>tOn2?g99m>hh&d$op&Cbs)$j{H?)|nZZ*;%={1qE)$O3QZc+_h^r z3Q6U-3(ZvDo%5oxX!#!53YLJbN*AS#rs&uK2Ep#i0JPQBHC)Z*3}6t(r0uV*N0ImK ztKU~!Ut6cqnvVfhyDKYLpYokM$|*Z`*n!P2D@ALIit^Ex>`YrKsayhYg&xL6M@2-0 zhK7VmUxR}J1Er^%Hf`AW^LO8Q_nn{r^qn97_^ltUdu!dBYu`fFy|MO(YhPRY+B)hR zuf6tzSJu3|=H(ZE@WM;TnpLZxU-SH$Rn+HKBQJhmb=7mLzV`yM>N(oyUiiM9eg1{# zUex#R@r_YdSG~0A<<-o#`jyqMta!)x3>?iAg zwsHNI4S`#N0z5%jS!hI9bVOWqLTpk(N@7}aMtXK;P7a!1SXxq!)>rQKf(o^D82-M7 zhNh;22U}X&+dB_+b@%r54Ga#CjE+rA96L5OeSBtic5Z&*#Ny(qQ_IU|R?eM0fBxcy z%NMU)x_0T><*S$9yL|1+^{dyf{Q`Oay&KnWzJKfe+c)mqymRaBEiC5Nz1tt$xp&*- z&IcSnKha?ix|X+Pu_#@xDh^X|>Nx9;4ybK~}n+wU{u^_$mkymv$QxN_aB z;_4;j;?)b6&tE!s>DIJYo2KQlKyJ2f*o zeRS&RP zmF86JEH6h_wwDwaO0}`BY?M1aH8nLQIVmYAQJ5vWii$*I!m*K%P*12TdJ_`l2@c-& zNCFM<0=IDtvc3>fH5l;(d4fVbp~1c@J+i-0S~QS3BiPZ%u*mSJh^R=PrAEhsmGQB% z#KeT81ZrY(Qc7|vl9rO5nx2+{&}L+%XJ%w&W+ORSU_(w`ZeCt~UVcGAK2lIvSXfkC zEKCJeON6V!bEFJQ!B#LF$<7KZyDE06V8rq*n3h>-6-Bm)_du-RuMq4RM}#@c&tcZ) zvgF-rt<=@k)z_hgl>Pe~_%t*&Hp)3QH8B>EUTbSB-Bz6e z##P$fK}UXRv!T{&ZEI_9ZEtID?`ZGnpqg~LV_QdCyH)*8ZDXvB*0F;#8tvK+=4fMf z&1Ee;j&_}0rEB$_qxCdSv+1i{r?YyxHlCPDm)1nDMSb#p540R$34CX4IS%5v<-Jv! z56YAKq(w*ncm4jv7)El!H;=oAt(Tt2trN?pmDRntr{-+YHO)4QTDHZ$X?Lu;IT_O2 z+(d)@G&eRiG)mY{2^$N@h-2)l2cX&Sdhoec_-u~bfx1sIL}(oQacKW|6ayUkyUS=% zAk@cI_37D1J)|DRQsJhqaC>}%(=!x}(&SW)L!+MGD%^-SP;G2%aBtGEU+=}#l} zar3z8?M`|ZdmCeIyg<#KY8V>6$C-jW9)51uu8InC(&mHkKcymAD%&X~C46Ltg+)b$ z01Z$B*vL}x=g=8Ethw0iEF?246N}Es#IAAh*mxS&o|+=dPfboqNli&hNli^lNlVpv zSP$cb09kltuBGH;F&{JLfCjm_c|Jq{6~F^Sgu-H2RxyZBLUE{2YRKSt6WCBzUM6%9 zJ^&8F2VSmXCojosR)7*zzDtB18lj@SWkGU@HspL zzit>E5)4uYgR`nZNU$du)CRW^cT`_J(A+;#2+u5`!elWha5(~8j);zg8Hq#1#Ky#f z%rJ>KusM$BGlbUD^2|voi77suW|vY8sngjbKT1QSv^U^1`(pc(n~xOa7UUJ=vpxmv zjB#M$b!mxo2weiNSyq-;%dDO7;kCe;%@F4j;X)j*QZ%BN0+R!djXw#J>!_HhnTm{M zzYw|6hsYwz0uB%Z0Bi5)>^O9&v-42rp~Hu}y7+W=_jGr6_jdR8^!4^r2KomF1_y=* zM}|g*M~BBo#zv8`apcIjWa7wC$;8o#V-u4{Cy!1Yo1C1QoSvMTnw~m7N!4*`X6pF# z%=B?F`Lgr^?XXa<-X6I(-b)+{hp{KKUMrV(!&iiJ78PJ=Vo@Mq~ zYq^u|Mx8#!Q>Y%D4$6d5A^l-_V@I$Hb{4$)`|6^?dt7;=DsTH3A#VU{7V!(QPoh$ZA@gCF6QMTLe{xa~?&X>;i4ic=by zFlH-@HCvbQTLH8DuqA*HP6)Q7oEWdL%U}zt1jHyXfM2VESLqZiS(-1bO2LkkuwyZp z1WXt^#)jkK;;`a4>~7R_<&b?j}y=*(MQ(gR4mtwfbf2Hc7y?t%254>w0$FqTd2JW3nYs z-#HT$5X>x^k(q-*9bt=mKDb`EJw4bGD!zyC&PY@&ahe#PI3IBrsAr7NVF{R@o(kV% zh2FX1Wo4q9ZwL05UY`Xc6RbHFc2PebxXQ?dU|_$dsWf;{(e3V7qAR0Ms;Xtct~}a z0#2Akjmox!7ETN^z>QI1$M~pW$2fNAPy|*#q27@R?2{gtLQmFe;y>E2M;JTCs3V|{ zq5(GxHVq~{s?0pg&aQAg&giA9_av9pRjybXDgf&aU4-?i><%oeU6ho;$LDejZkTz z+i@^sU}8QZ+Q!6a9T$T%Inb{arE-i+Bn%c~s-Vo29EE&^@fkou9z>kRp@bp=bNYe` zp@rPM4(8+)Z7Y&6f3FVAfkvq%@gK*41Sa-@35X3qhl~=5c?e%r&|dgaiCBqR3t6lI zc_0ojCoqWLghhOD=X}56FN?4MaVr&ux{md9jjs3I!5!Tl$uikZA3p`>c`{|6I44`u zgImQ3>y30!W=U`6e?z|83I7>e1C7zD*g}aFY2j=M&3oIDnhO_kv^92~+*&hP+XC%^ zygI26B~(CgqA(})v{^dgh^XZtt*O#>V(u;{sVI&5xF{c~q6{Rhfr2k~0~`bp!U#T( z3tEI<5hYj8(QzL;HzMvQ;dPdyK@AO73|Ry%D$aFTZc@I?7r7`3RI#`PtyjV8QSgB- z-V^)?gD8rzBpoL06!V+y9UXYl4*601ssE@moOi-d|J7z`{;0?-O;M(9siHVcPosw- z_EI*rnWzV^YmtxN;>^;pF$ra_GE&%=EKBRE1(!i-+svBSSKppX3(S5@ZKPhNg-)kY zT->bUb~v))0|f`<-js1uRDh&sz?F?H<6{wgLvk{V6W%G-?7S_mR=io>HeNhcOjX>O zo;(a9PxDBk@x|h`aB9b_=_zlBN0L{PUy6;E$JQJPn#bnHMz9&x^eboxUWeP z5esY{R*&Gl?5SxLtvD`Bq+{_8-V6~R7AqDT=G|F?JXQkAp$vwsy2Rx$l*KUXH2cFI zWqh)^auyUTBN6Cl$Xatz9jplBvCS}Bk!fgyO!a*}k&Q#$opu{dh9~>OONXj|qtg}x zOQ)%#&lG=@sTf+(JBsb}+36LiE_|0iwY-99vuUTa7>9u3LJRr853O|3I^Hejjab3A zIDadj(~HMNV4wX1;-SXK@wxImI&EL*mjl`YH6us9YD zth^jLkN#WKPUMb7$U4X;CM71SCM01&Sf#8JixMBk&SJ5$m^kb%E-IF+qw@7Jk;*+f zb}WXhSkxk3abpv4;|Rx%9Y1#LSPa=%r=nROFDA})+&C0A9O`GqjvE^*_RxnD!&=E! zK0fb{m-%l;SB7{PXHm6d)ry?Oy~8;Aa+)r)>2W+A&dU>;gc;{m8xa*Q=F7W9L@VbR z850@H8w-Cd^T~e@tPHqCbPX3yj8Bdy11bUQ$b=ZWq@`wv7yEJ`;>N-h;*v)Zwjqh- zLET;&7jQfo-)_iZISVkOTv4^Wv5Tf1V&GfNm4X-~sg%f4G;KwGP#95XsV_9oB5HGb z(o2frg0h{01bIBUIrDDHWf~Y5zedO9%*>sE13oA?q;lAy0XX2W0M;!mFhmgdws^C@ zw@>y&1d4453mgt8Rs{!!gaAWg-wp?`PvhO=V<3QR8m$nE zqwh}6`$jNQJ-bHNnb=%5>+%_9HaT@>X=Uk*dj>rdPlqflEiCf%i}oH1^SsmSi5X=a zkmF<)B$i7ckHHE}>Hmj`$qBL@#3e#dhl+-bto^9a*s=#?3i<|meVKypKII04e98=T zc6AeAwWmjMtx0Rxq= z1pWAbR~8C25%LN5lCWWk;hs>>hk3?2_=hD*MK~AX@Qt`XjL6?1i2kVquRs^@N&h!X z+&?eG>=v&FD*ASjc)*sx%>i2i_(yN6RsPl9xMdTvam$9ysv9Q~vfd~D-iD3q cH?H6GF8>Ge%SJnEXLOctI;-R6^_w^RKS`$;j{pDw literal 0 HcmV?d00001 diff --git a/apps/plugins/varvara/tests/sample.tal b/apps/plugins/varvara/tests/sample.tal new file mode 100644 index 0000000000..1294ec4b9d --- /dev/null +++ b/apps/plugins/varvara/tests/sample.tal @@ -0,0 +1,53 @@ +( a blank file ) + +%+ { ADD } %- { SUB } %/ { DIV } +%< { LTH } %> { GTH } %= { EQU } %! { NEQ } +%++ { ADD2 } %-- { SUB2 } %// { DIV2 } +%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } + +%DEBUG { ;print-hex JSR2 #0a .Console/write DEO } +%DEBUG2 { SWP ;print-hex JSR2 ;print-hex JSR2 #0a .Console/write DEO } + +%RTN { JMP2r } + +( devices ) + +|00 @System [ &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ] +|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 &error $1 ] +|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] +|30 @Audio0 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ] +|40 @Audio1 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ] +|50 @Audio2 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ] +|60 @Audio3 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ] +|80 @Controller [ &vector $2 &button $1 &key $1 ] +|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ] +|a0 @File [ &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 ] +|b0 @DateTime [ &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ] + +( variables ) + +|0000 + +( program ) + +|0100 ( -> ) + #0000 .Audio0/adsr DEO2 + #ff .Audio0/volume DEO + ;sample .Audio0/addr DEO2 + #0800 .Audio0/length DEO2 + #3c #80 ADD .Audio0/pitch DEO +BRK + +@print-hex ( value -- ) + + STHk #04 SFT ,&parse JSR .Console/write DEO + STHr #0f AND ,&parse JSR .Console/write DEO + RTN + &parse ( value -- char ) + DUP #09 GTH ,&above JCN #30 ADD RTN &above #09 SUB #60 ADD RTN + +RTN + +@sample [ +8081 8180 807f 8080 8080 8081 8181 8281 8282 8281 8181 8182 8282 8283 8383 8282 8181 8080 8182 8182 8384 8382 8382 8281 8182 8384 8384 8384 8282 8281 8282 8383 8484 8484 8282 8080 8180 8283 8383 8384 8283 8382 8081 8181 8181 8382 8383 8382 8383 8283 8382 8282 8382 8383 8283 8180 7f80 7f80 8282 8382 8181 7f7e 7d7d 7e7e 8180 8383 8283 8282 8282 8586 8a8b 8d8e 8e8e 8c8d 8c8c 8c8c 8d8f 8e8f 8d8e 8c8c 8989 8788 8889 8788 8484 8080 7e7e 7f7f 8080 7f7f 7b7b 7978 7777 7777 7677 7373 6d6d 6665 5f5d 5b58 5756 5452 4f4d 4c4a 4d4a 4f4e 5451 5957 5f5d 6463 6967 6f6e 7473 7776 7876 7574 7170 6c6b 6766 6463 605e 5d5c 5a59 5754 5351 514e 514f 534f 5350 5452 5351 5250 514f 5350 5653 5754 5653 5451 4f4d 4e4a 4e4b 504e 504e 504c 4d4b 4d4b 514d 5453 5958 5d5d 5f5e 5e5c 5e5c 6160 6564 6766 6664 6361 6260 6563 6967 6c6b 6d6c 6c6b 6c6b 6d6c 6f6e 7271 7271 7372 7473 7575 7675 7979 7f7e 8282 8484 8484 8483 8384 8485 8685 8484 7e7f 7776 706f 6d6c 6c6a 6766 6160 5c5b 5b58 5b59 5e5c 615f 6260 6563 6866 6968 6c6a 6e6e 7272 7675 7777 7777 7877 7b7a 8180 8988 8d8e 8f90 9191 9798 9fa0 a6a7 aaac aeb0 b1b2 b3b6 b6b8 b9bc bcbf bdc1 bcc0 bec3 c4c6 c8cb cbcf cdd0 ced2 d0d3 d1d5 d3d7 d5d9 d7db d9dd d9dd dade dbe0 dfe4 e3e7 e5eb e9ed ebf1 edf3 eef3 eff3 eff5 f1f6 f0f6 eef4 ebf1 eaef e9ef ecf1 edf4 eef5 eff5 eef3 eef4 f1f7 f3fa f3f9 f3f9 f3f9 f3f9 f3f9 f2f7 f2f8 f2f9 f0f7 edf4 e8ee e6ec e7ec e6ea e0e5 dade d6da d3d7 d3d7 d0d3 cace c4c9 c2c7 c3c5 c2c6 c1c5 bfc1 bbbf b9bb b5b9 b1b5 aeb1 aaad a8aa a4a6 a1a2 9d9f 989a 9395 9090 8b8d 898a 8686 8181 7c7c 7a7a 7a7a 7a79 7878 7272 6d6d 6d6c 6d6d 6f6e 6d6c 6a6a 6868 6867 6766 6565 6160 5f5d 5d5b 5c5b 5c5a 5b59 5957 5957 5857 5958 5957 5756 5855 5957 5b5a 5d5b 5c5a 5b5a 5b5a 5c5a 5c5b 5c5a 5a57 5756 5453 5452 5653 5553 5351 504e 4e4d 514f 5653 5857 5856 5755 5655 5957 5b5a 5c5a 5c5c 5e5d 605e 5f5e 5f5e 6160 6464 6967 6c6b 6c6b 6b6b 6a6a 6d6b 6f6d 706f 6f6e 6c6a 6a69 6869 6b6a 6d6d 7070 7271 7271 7372 7677 7a7a 7c7c 7d7d 7d7e 7d7d 7d7c 7d7d 7c7d 7e7e 7d7e 7d7d 7c7c 7d7d 7d7e 8080 8282 8484 8283 8081 8180 8182 8382 8282 8080 7e7e 7e7e 7f7f 8181 8181 8181 8282 8483 8485 8484 8383 8383 8383 8484 8182 7e7e 7d7d 7e7d 7e7f 7f7e 7e7f 8181 8283 8484 8585 8787 8888 8888 8788 8587 8586 8485 8484 8283 8081 7f7f 7e7f 7d7e 7b7c 7a7a 797a 7879 7979 7978 7878 7979 7979 7778 7777 7676 7574 7272 6f6f 6d6c 6b69 6a68 6868 6766 6463 6160 5f5e 5f5d 5f5e 5d5b 5a58 5855 5554 5654 5653 5452 514f 4f4c 4d4b 4d4a 4a48 4945 4643 4643 4542 4340 403d 3e3a 3d3a 3c39 3d39 3d39 3a38 3936 3935 3935 3a35 3935 3835 3531 332f 322f 322d 312c 302c 302c 2f2b 2e2a 2f2a 2f2b 2f2a 2f2a 2e2a 2e2a 2d29 2e2a 2d29 2b28 2b27 2c27 2c27 2b28 2c27 2c28 2c29 2d29 2e2a 2d2a 2c28 2d28 2c27 2c27 2d29 2e29 2e2a 2e29 2e2a 2e2b 302b 322e 322f 322e 332e 332f 3430 3733 3834 3834 3934 3a36 3d39 3f3c 3f3c 3f3c 413d 423f 4441 4744 4947 4c48 4f4c 514e 5351 5653 5755 5856 5b58 5e5b 605d 6260 6461 6663 6867 6b69 6c6c 6e6e 7271 7674 7977 7b7a 7e7d 8080 8383 8586 8888 8988 8a8a 8c8c 8f8f 9090 9393 9596 9899 9b9c 9c9e 9fa1 a2a3 a4a7 a7a9 a9ab acad aeaf afb0 b1b3 b2b5 b5b7 b7b9 b9bb babd bcbe bec0 bfc2 c0c3 c1c5 c1c5 c2c4 c2c6 c2c5 c3c7 c4c7 c5c8 c5c8 c5c9 c6ca c7cb c9cc c9cd cace cbce cccf cccf cdd0 ccd0 cdd1 ced0 cdd0 cdd0 cdd0 ced1 cdd0 cdd2 cdd1 ced1 ced2 cfd3 cfd3 cfd3 d0d3 d0d3 d0d3 cfd3 cfd3 cfd3 cfd3 cfd2 ced1 ced1 cdd0 ccd0 cbcf cbcf ccce cace cacd cacd c9cb c9cc c7cb c7ca c6ca c5c8 c5c8 c3c7 c2c7 c3c5 c2c4 c1c4 c1c4 c0c4 bfc2 bec1 bdc1 bdc0 bcbf bbbf babe babc b9bc b8ba b8ba b7ba b5b9 b4b7 b3b5 b2b5 b0b3 b0b1 aeb0 acaf abae aaac a8ab a8aa a6a9 a5a7 a4a6 a3a4 a1a4 9fa0 9ea0 9e9f 9c9e 9a9a 9799 9697 9696 9395 9192 8f90 8e8e 8c8c 8b8b 898a 8787 8585 8283 8281 8080 7d7e 7b7c 7b7a 7979 7777 7675 7473 7170 6f6f 6e6d 6d6c 6b6a 6968 6765 6565 6463 6262 6261 5f5e 5e5c 5c5a 5b59 5a59 5a58 5857 5755 5654 5553 5554 5553 5553 5452 5451 5352 5250 5250 5250 5250 5250 524f 504e 504e 504f 504f 504e 514f 504e 504e 514e 514f 514e 514f 524f 524f 5351 5351 5453 5552 5553 5553 5452 5453 5653 5553 5553 5653 5654 5655 5654 5855 5856 5956 5957 5a58 5a59 5b5a 5c5a 5c5b 5c5b 5d5c 5e5c 5f5d 5e5d 605e 6160 6260 6160 6261 6362 6463 6563 6563 6664 6765 6766 6866 6866 6766 6868 6a67 6968 6a69 6b69 6b69 6c6a 6d6c 6d6c 6e6d 6e6e 6f6e 6f70 706f 706f 7070 7171 7172 7373 7372 7473 7473 7574 7575 7675 7776 7876 7876 7877 7878 7978 7979 7a79 7a79 7a79 7a7a 7b7b 7b7b 7b7b 7c7b 7c7c 7c7c 7c7d 7d7d 7d7d 7e7e 7f7d 7e7e 7e7e 7f7f 7f7f 7f7f 7e7f 7f7e 7f7f 807f 807f 7f7f 7f7f 7f80 8180 8180 8181 8180 8281 8182 8280 8282 8181 8282 8283 8283 8383 8384 8384 8585 8585 8585 8686 8687 8686 8888 8888 8889 898a 8989 8a8a 8b8b 8b8c 8c8c 8c8c 8d8d 8d8e 8e8f 8e8f 8f8f 8f8f 908f 8f90 8f90 8f90 8f90 8f90 8f90 8f90 8f91 9090 8f90 9090 9190 8f91 9090 8f91 9191 9091 9091 8f90 9090 9091 9191 9191 9192 9191 9191 9191 9192 9191 9091 9092 9090 9091 9091 9091 9092 9192 9293 9193 9293 9394 9394 9494 9394 9394 9394 9395 9394 9394 9394 9294 9293 9294 9293 9293 9293 9393 9293 9292 9293 9293 9193 9292 9293 9294 9393 9294 9394 9393 9294 9394 9394 9193 9292 9192 9193 9193 9292 9193 9193 9193 9192 9193 9293 9393 9292 9293 9293 9292 9293 9193 9293 9292 9292 9293 9193 9193 9292 9293 9293 9292 9292 9192 9193 9192 9293 9192 9191 9092 9091 9192 9091 9291 9192 9091 9091 9091 9090 9091 9090 9091 8f90 8f90 8f90 8f90 8f90 8f90 8e90 8e90 8f8f 8f90 8f90 8f90 8f8f 8f90 8f8f 8f8f 8d8e 8e8f 8d8e 8e8e 8e8e 8d8f 8d8f 8e8f 8e8f 8e8f 8e8f 8e90 8e8f 8e8f 8d8f 8e8f 8e8f 8e8f 8d8e 8e8e 8d8e 8e8e 8e8e 8d8f 8d8f 8e8e 8d8f 8e8e 8e8f 8f90 8f90 8f90 9090 9091 8f90 9091 9191 9192 9192 9191 9091 9092 9091 9191 9090 8f90 8f8f 8f90 8e90 8e8f 8e8f 8e90 8d8f 8e8e 8d8e 8d8e 8e8e 8d8e 8d8e 8c8d 8d8e 8d8e 8d8e 8d8d 8d8e 8d8d 8d8e 8d8e 8d8f 8e8e 8e8e 8e8d 8d8d 8c8e 8d8d 8c8c 8b8d 8b8c 8a8b 8a8b 8a8b 898a 898a 898a 8988 8989 8889 8889 8788 8888 8787 8788 8687 8687 8587 8585 8485 8484 8484 8484 8384 8483 8383 8382 8382 8383 8383 8283 8383 8384 8384 8384 8485 8484 8383 8485 8484 8484 8484 8384 8283 8284 8383 8383 8384 8484 8484 8484 8484 8585 8586 8686 8586 8686 8586 8585 8586 8586 8685 8686 8586 8586 8586 8586 8587 8786 8686 8686 8687 8787 8787 8787 8787 8887 8788 8788 8889 898a 8989 898a 8a8a 8a8a 8c8b 8c8c 8c8c 8c8c 8b8c 8b8d 8d8d 8c8d 8d8d 8c8d 8c8d 8c8d 8b8c 8c8d 8b8c 8b8b 8a8c 8a8b 8a8b 8a8a 898b 898a 8989 8988 888a 8789 8888 8887 8788 8788 8787 8686 8686 8586 8586 8585 8485 8485 8484 8484 8384 8384 8283 8383 8283 8182 8081 8081 7f80 7f7f 7f7f 7f7e 7d7d 7d7d 7c7c 7c7c 7b7b 7a7a 7a7a 7979 7978 7878 7778 7776 7777 7776 7676 7676 7575 7575 7474 7574 7473 7373 7271 7272 7171 706f 706f 6f6f 6f6e 6e6d 6e6e 6d6d 6d6d 6c6c 6c6b 6c6c 6b6b 6b6a 6b6a 6b6a 6b69 6a69 6968 6a68 6967 6968 6868 6766 6766 6665 6766 6564 6563 6563 6563 6464 6564 6664 6565 6664 6665 6665 6766 6866 6967 6968 6968 6a69 6a6a 6a69 6b69 6a6a 6a6a 6c6a 6c6b 6c6b 6c6c 6c6c 6d6c 6d6d 6e6c 6e6d 6e6e 6f6e 6e6e 6f6f 7070 7070 7171 7171 7371 7372 7373 7473 7474 7474 7574 7575 7675 7675 7675 7776 7777 7777 7877 7877 7877 7977 7978 7979 7979 7a79 797a 7a79 7a7a 7b7a 7a7a 7b7a 7c7b 7b7b 7b7a 7b7b 7c7c 7b7b 7c7a 7b7a 7b7a 7b7a 7a7a 7b7b 7a79 7a7a 797a 7979 7978 7978 7a79 7878 7878 7877 7876 7676 7676 7675 7674 7574 7473 7472 7273 7272 7170 716f 706f 6f6e 6f6d 6e6e 6d6c 6c6b 6c6b 6a69 6a69 6969 6967 6866 6765 6666 6564 6664 6463 6562 6362 6361 6361 6260 6260 615f 615f 605f 605e 605f 605e 605e 5f5d 5f5d 5e5d 5d5c 5d5b 5d5b 5c5b 5b5a 5c59 5a59 5957 5957 5857 5957 5857 5755 5755 5654 5754 5554 5653 5554 5553 5452 5554 5552 5553 5552 5553 5551 5551 5552 5352 5452 5452 5451 5451 5452 5452 5451 5452 5451 5452 5452 5453 5452 5552 5553 5552 5553 5654 5553 5654 5755 5855 5856 5855 5957 5956 5958 5a58 5a58 5b59 5c5a 5c5a 5c5b 5c5c 5d5c 5f5c 5f5d 5f5e 5f5e 605e 615e 615f 605e 6160 6260 6260 6260 6361 6262 6461 6462 6463 6563 6563 6565 6665 6765 6766 6867 6967 6967 6968 6a69 6b69 6b6b 6b6a 6c6b 6c6c 6d6c 6e6c 6e6d 6d6c 6d6d 6e6d 6f6d 6f6d 706d 706e 706f 7170 7170 7372 7371 7372 7473 7473 7574 7674 7776 7676 7776 7776 7877 7978 7879 7879 7a79 7a79 7a7a 7b7a 7b7b 7b7b 7b7b 7c7c 7c7c 7d7c 7c7b 7d7c 7d7d 7e7d 7e7d 7e7d 7e7e 7e7e 7f7f 8180 8081 8180 8180 8282 8383 8483 8483 8484 8585 8585 8585 8685 8585 8786 8787 8887 8888 8888 8989 898a 8b8b 8b8b 8c8c 8c8c 8d8d 8d8d 8e8f 9090 9090 9192 9192 9292 9393 9495 9496 9695 9596 9596 9797 9898 9798 9899 999a 9999 999b 999b 9a9c 9b9d 9d9d 9d9e 9d9f 9e9f 9ea1 9fa2 a0a2 a1a3 a1a4 a2a4 a3a4 a3a4 a4a5 a4a5 a4a6 a5a6 a5a6 a5a7 a6a8 a6a8 a6a8 a7a8 a7a9 a7aa a8aa a8ab a9aa aaab aaac aaab abac abad aaac abad abac abad abae abad acae acad abad acae acae adae adaf adb0 adaf adaf aeb0 aeb0 aeb0 aeb0 aeb0 aeb0 aeb1 aeaf aeb1 aeb0 afb0 afb1 aeb1 aeb0 aeb0 afb1 afb1 afb1 aeb0 aeb1 aeb0 afb1 aeb0 aeb0 aeb0 aeb0 adb0 aeb0 adb1 adaf adb0 adaf adb0 acaf adaf adae acaf acae acaf acaf acae acae abad abae abad abae abac a9ac aaab a9ac aaab a8aa a7aa a8a9 a7a9 a7a9 a7a8 a5a8 a5a7 a6a6 a4a6 a4a6 a4a6 a4a5 a3a4 a2a4 a2a4 a2a3 a2a2 a1a2 a0a1 9fa1 9fa0 9fa1 9ea0 9ea0 9ea0 9f9f 9e9f 9fa0 9ea1 9fa0 9ea0 9e9f 9e9f 9e9f 9d9f 9c9e 9d9e 9c9d 9b9d 9a9c 9a9c 9b9c 9b9c 999c 999b 999b 999a 999b 999b 989b 989a 9799 989a 9899 9799 9698 9798 9697 9697 9596 9596 9496 9496 9495 9494 9395 9395 9394 9394 9394 9294 9293 9392 9193 9192 9192 9191 9091 8e91 8f90 8e8f 8e8f 8e8e 8d8d 8c8d 8d8d 8b8c 8b8b 8b8b 8b8c 8a8a 898b 898b 898a 898a 8889 8889 8788 8788 8687 8787 8687 8587 8586 8585 8485 8485 8484 8484 8383 8282 8282 8182 8081 8080 7f80 7e7f 7e7e 7f7f 7d7e 7e7e 7d7c 7d7c 7c7d 7c7c 7b7b 7b7c 7a7a 7a79 7978 7a79 7978 7979 7977 7777 7777 7777 7777 7676 7576 7675 7575 7574 7474 7474 7473 7473 7472 7271 7171 7071 7070 6f6f 706f 6f6f 6e6d 6d6d 6d6d 6c6b 6c6c 6c6b 6b6a 6a69 6a68 6a69 6a68 6968 6867 6767 6766 6765 6565 6665 6563 6464 6462 6361 6261 6260 6160 6260 6060 5f60 605e 605e 5f5d 5e5e 5e5d 5e5d 5e5c 5d5c 5d5b 5d5a 5c5b 5b5a 5b5a 5b59 5a58 5a58 5b58 5a58 5958 5958 5958 5957 5958 5856 5856 5857 5756 5756 5755 5756 5655 5755 5755 5654 5654 5755 5655 5654 5654 5654 5654 5654 5654 5654 5653 5553 5554 5653 5653 5553 5553 5553 5552 5553 5453 5452 5552 5452 5453 5453 5452 5452 5452 5453 5452 5552 5552 5451 5452 5451 5352 5351 5351 5350 5350 5350 5250 5250 514f 514f 514f 514e 504e 504e 504e 504e 504e 504d 504d 504d 504e 504d 4f4d 504d 504d 4f4d 504d 4f4d 504d 504d 504d 4f4d 504c 504d 504e 4f4d 4f4d 4f4d 4f4d 4f4c 4f4c 504d 504d 504e 514e 524f 514e 5250 5250 5350 5352 5551 5553 5452 5553 5553 5554 5654 5655 5754 5755 5655 5855 5855 5956 5957 5957 5958 5b58 5b58 5b5a 5d5a 5d5b 5d5c 5e5c 5e5c 5f5d 5f5e 615f 615f 6160 6261 6361 6462 6463 6564 6564 6765 6866 6868 6968 6b69 6a69 6c6a 6d6b 6c6b 6e6c 6f6e 706e 706e 716f 7171 7371 7473 7474 7674 7675 7675 7777 7878 7978 7979 7b79 7b79 7c7a 7c7b 7c7d 7d7d 7f7f 807e 8080 8181 8282 8282 8383 8485 8584 8685 8787 8687 8788 8988 8989 898a 8a89 8a8a 8b8b 8b8b 8c8c 8c8c 8c8e 8d8d 8d8e 8f90 8f8f 8f90 9091 9191 9292 9292 9394 9394 9595 9495 9595 9697 9798 9797 9898 9899 9899 9899 999a 9a9b 9a9b 9b9b 9a9b 9b9c 9b9c 9d9d 9c9d 9d9d 9d9e 9d9f 9ea0 9e9f 9fa0 9f9f 9fa0 9fa0 a0a1 a0a0 a0a1 a0a1 a1a1 a1a2 a1a3 a2a3 a2a2 a1a3 a2a4 a2a4 a3a4 a3a4 a3a4 a3a4 a3a4 a4a5 a4a5 a4a5 a4a5 a3a5 a4a5 a4a5 a3a6 a5a6 a5a7 a5a6 a4a6 a5a6 a5a6 a5a7 a5a7 a4a7 a5a6 a5a6 a6a7 a5a7 a6a7 a5a6 a6a8 a6a7 a5a7 a5a8 a5a7 a5a7 a5a7 a5a8 a5a7 a5a7 a5a7 a5a7 a5a7 a6a7 a6a7 a4a7 a4a7 a6a7 a6a6 a5a7 a5a7 a4a6 a5a6 a4a6 a5a6 a4a6 a4a5 a4a6 a4a5 a4a6 a4a5 a4a6 a4a6 a4a6 a3a6 a4a5 a4a6 a4a6 a4a5 a4a6 a4a6 a3a5 a4a5 a4a5 a5a6 a4a6 a4a6 a3a5 a4a5 a4a5 a3a4 a3a4 a2a4 a3a4 a2a3 a1a3 a1a3 a1a2 a1a2 a0a2 9fa1 9fa1 9ea1 9fa1 9f9f 9e9f 9e9f 9e9f 9e9f 9d9f 9d9f 9e9e 9d9f 9d9e 9c9d 9c9c 9c9c 9b9c 9b9c 9a9c 9a9b 999b 999b 999a 999b 989a 9999 9899 9799 9799 9697 9697 9698 9698 9697 9597 9696 9496 9595 9495 9494 9395 9395 9394 9393 9294 9194 9193 9193 9191 9091 9091 9091 9091 9090 8f90 8f8f 8f8f 8e8f 8e8f 8e8e 8d8e 8d8e 8d8e 8d8d 8c8c 8b8d 8b8c 8b8b 8a8c 8b8a 8a8b 8a8b 8b8a 898a 898a 8989 8889 8889 8889 898a 8888 8888 8788 8888 8788 8788 8788 8687 8687 8686 8585 8586 8585 8585 8484 8485 8484 8484 8384 8383 8383 8383 8282 8282 8283 8182 8182 8181 8081 8180 8180 7f80 7f7f 7f7e 7e7f 7e7e 7e7e 7d7d 7d7d 7d7c 7c7d 7c7c 7c7b 7c7c 7b7b 7b7b 7a7a 7a7a 797a 7a79 7979 7a79 797a 7979 7978 7878 7878 7878 7979 7877 7878 7878 7877 7878 7778 7877 7877 7878 7777 7776 7776 7777 7777 7776 7676 7675 7676 7576 7675 7676 7674 7575 7674 7575 7574 7575 7574 7474 7574 7574 7474 7474 7474 7473 7474 7473 7374 7372 7373 7374 7372 7273 7373 7272 7373 7372 7472 7272 7372 7373 7273 7472 7373 7373 7473 7473 7372 7272 7372 7373 7472 7272 7372 7372 7371 7271 7371 7271 7272 7272 7272 7372 7372 7272 7272 7272 7372 7372 7373 7373 7372 7373 7473 7474 7473 7373 7473 7474 7474 7474 7473 7473 7575 7474 7373 7474 7574 7474 7474 7474 7474 7474 7575 7573 7575 7674 7574 7675 7675 7675 7676 7675 7676 7676 7677 7776 7777 7676 7777 7777 7877 7777 7776 7776 7777 7777 7776 7777 7878 7777 7777 7776 7776 7777 7777 7877 7877 7877 7877 7778 7878 7879 7979 7878 7978 7978 7979 797a 7a7a 7a79 7a79 7a7a 7b7a 7c7b 7b7b 7b7b 7b7b 7b7b 7c7c 7c7b 7c7b 7c7c 7b7c 7c7c 7d7c 7c7c 7c7c 7d7c 7b7c 7d7d 7d7d 7d7d 7d7d 7d7d 7d7c 7e7d 7e7d 7d7e 7f7e 7e7d 7e7e 7f7f 7f7e 7f7e 7f7e 7f7e 7f7f 7f7e 7e7e 7f7e 7f7f 7e7f 807f 7f7f 7f7f 8080 8080 8080 8080 8080 7f81 8081 8080 8081 8080 8081 8181 8181 8180 8181 8181 8181 8181 8181 8181 8180 8182 8181 8181 8182 8281 8281 8182 8182 8282 8282 8283 8283 8383 8283 8382 8283 8382 8383 8483 8384 8484 8484 8484 8484 8484 8585 8585 8485 8585 8686 8585 8585 8585 8685 8686 8686 8586 8686 8587 8686 8686 8787 8787 8787 8788 8687 8888 8888 8888 8889 8889 8989 8989 898a 8a8a 898a 8a8a 8a8a 8a8b 8b8b 8b8b 8c8d 8c8c 8c8c 8c8d 8d8d 8d8e 8e8e 8e8e 8d8e 8e8f 8e8e 8e8e 8e8f 8f90 8f90 9090 8f8f 8f8f 8f91 8f90 9090 9092 9192 9091 9191 9191 9292 9293 9292 9292 9292 9293 9293 9293 9293 9294 9294 9294 9293 9393 9394 9394 9394 9394 9494 9395 9495 9395 9395 9494 9495 9395 9395 9494 9395 9495 9494 9394 9394 9394 9393 9393 9293 9293 9293 9293 9193 9193 9192 9192 9191 9091 9091 9090 8f90 9090 8f91 9090 9090 9090 9090 8f90 8f90 8e8f 8f90 8e8e 8e8e 8d8f 8d8e 8c8d 8c8d 8b8d 8b8b 8b8c 8b8c 8a8b 8a8a 898a 898a 8989 8888 8888 8788 8788 8688 8688 8686 8686 8486 8485 8485 8484 8383 8383 8182 8281 8081 8181 807f 807f 7e7f 7e7e 7e7e 7d7d 7d7c 7c7c 7c7b 7b7b 7b7b 7b7a 7a7a 7a7a 7979 7978 7778 7877 7776 7676 7575 7474 7373 7372 7272 7372 7272 7271 7170 706f 7070 6f6e 6f6e 6e6d 6e6d 6d6c 6c6b 6b6b 6c6a 6a69 6a69 6968 6968 6967 6867 6866 6866 6765 6665 6665 6665 6664 6564 6363 6462 6462 6461 6362 6361 6261 6260 6160 605f 605f 615f 605e 605e 5f5f 5f5e 5f5e 5f5e 605e 5f5d 5f5d 5f5e 5f5c 5e5c 5f5c 5f5c 5e5c 5e5c 5e5c 5e5c 5e5c 5e5c 5e5b 5e5c 5d5b 5c5c 5d5b 5c5b 5d5b 5d5b 5c5b 5d5b 5c5a 5d5b 5c5b 5d5c 5d5b 5d5c 5d5c 5e5c 5d5b 5e5d 5e5c 5f5d 5f5d 605d 5f5d 5f5f 605f 615f 615f 6161 6360 6260 6261 6260 6361 6362 6361 6361 6362 6463 6463 6463 6462 6564 6564 6664 6765 6665 6665 6765 6867 6866 6866 6867 6867 6968 6967 6968 6a69 6b6a 6b69 6b6a 6b6a 6b6a 6d6b 6d6b 6d6c 6e6c 6e6c 6d6c 6e6d 6f6d 6f6e 6f6e 706f 706e 7170 7070 7170 7171 7172 7272 7372 7472 7473 7473 7573 7574 7574 7574 7675 7776 7777 7776 7777 7877 7777 7877 7877 7977 7878 7979 7979 7a78 7a79 7a7a 7b7a 7b7b 7c7c 7c7b 7c7c 7d7c 7d7d 7d7e 7d7e 7f7e 7f7e 7e7f 807f 7f7f 8080 8180 8181 8180 8281 8282 8281 8282 8282 8383 8383 8384 8484 8585 8585 8585 8586 8585 8585 8786 8686 8787 8787 8787 8888 8788 8888 8889 8889 8989 8989 898a 8a8a 898b 8a8b 8a8b 8a8b 8b8b 8a8b 8b8c 8c8c 8c8c 8c8c 8b8d 8d8d 8c8d 8d8d 8d8e 8d8e 8e8f 8d8e 8f8e 8e90 8f8f 8f8f 8f90 9090 9090 8f91 9091 9191 9091 9191 9292 9193 9292 9192 9293 9293 9394 9394 9393 9394 9395 9594 9494 9595 9695 9596 9597 9697 9797 9797 9798 9797 9798 9798 9899 9999 999a 999a 999a 9a9a 9a9a 9a9b 999b 9b9b 9a9b 9b9c 9c9d 9c9c 9b9d 9c9d 9c9d 9c9e 9d9e 9d9e 9e9f 9d9f 9d9f 9e9f 9ea0 9fa0 9fa1 9fa1 9fa1 a0a1 9fa1 a0a1 a0a1 a0a2 a1a2 a1a3 a1a2 a1a3 a1a3 a2a3 a2a3 a2a4 a2a5 a2a3 a3a4 a3a5 a3a5 a3a5 a4a5 a3a5 a3a5 a4a5 a4a6 a4a5 a4a6 a4a6 a4a6 a4a6 a4a5 a5a5 a4a6 a3a6 a4a6 a5a6 a4a6 a4a6 a5a5 a3a6 a5a6 a4a5 a4a6 a4a5 a4a6 a4a6 a3a5 a3a5 a3a5 a2a5 a3a6 a3a5 a3a5 a2a4 a2a3 a2a3 a2a4 a2a4 a2a3 a2a3 a2a3 a2a3 a0a2 a1a3 a1a3 a1a2 a0a2 9fa2 a0a2 a0a1 9fa0 9fa0 9ea0 9da0 9d9f 9d9e 9c9e 9c9d 9b9d 9c9d 9c9c 9a9c 9a9c 9a9c 999b 999a 989a 989a 9799 9699 9798 9697 9697 9596 9596 9495 9495 9394 9294 9393 9292 9292 9092 9092 9090 8e90 8f90 8e8f 8e8f 8d8d 8c8e 8c8d 8b8c 8a8c 8b8b 8b8b 8a8a 898a 8989 8989 8889 8787 8687 8787 8686 8486 8485 8585 8384 8384 8283 8182 8182 8180 8080 8080 7f7f 7e80 7e7e 7e7f 7e7e 7d7d 7c7c 7c7b 7b7a 7b7a 7a7a 7979 7879 7978 7878 7877 7677 7776 7676 7675 7574 7474 7574 7373 7373 7372 7271 7271 7272 7170 706f 7070 6f6f 6f6f 6f6f 6f6e 6e6d 6d6e 6d6d 6d6d 6d6d 6c6b 6c6b 6b6b 6c6a 6a6a 6b68 6968 6968 6969 6967 6868 6867 6866 6766 6665 6764 6564 6564 6563 6564 6563 6463 6462 6361 6362 6261 6261 6161 6261 6160 625f 605f 5f5e 605f 5f5e 5f5d 605d 5e5d 5e5d 5d5c 5d5d 5d5b 5e5c 5e5b 5c5b 5e5a 5d5c 5c5a 5c5b 5c5a 5c59 5b59 5a59 5b59 5a58 5a58 5a58 5a58 5958 5a58 5957 5957 5856 5856 5856 5856 5856 5755 5756 5855 5755 5755 5655 5755 5654 5655 5655 5654 5655 5654 5653 5553 5554 5553 5654 5653 5553 5553 5552 5453 5553 5552 5553 5552 5452 5553 5452 5452 5452 5452 5452 5452 5452 5451 5452 5352 5452 5351 5352 5551 5351 5452 5452 5452 5452 5451 5451 5451 5452 5452 5453 5451 5552 5452 5453 5352 5453 5552 5553 5452 5452 5453 5552 5553 5653 5653 5652 5553 5553 5653 5654 5653 5653 5654 5653 5655 5654 5654 5754 5756 5855 5855 5855 5856 5957 5957 5956 5957 5958 5a57 5b58 5b58 5a59 5b58 5b59 5b5a 5c59 5c59 5d5a 5c5b 5d5b 5d5b 5d5c 5e5c 5f5c 5e5d 5f5d 605e 605e 605e 615f 6160 615f 635f 6261 6361 6361 6362 6462 6563 6564 6564 6664 6665 6865 6866 6866 6967 6968 6968 6b69 6a69 6b69 6b6a 6c6b 6c6b 6c6c 6d6c 6e6c 6e6d 6f6e 706f 706f 7070 7171 7271 7271 7272 7372 7373 7474 7675 7675 7775 7676 7777 7877 7878 7978 7a79 7a79 7a79 7b7a 7b7b 7c7b 7c7b 7d7c 7d7d 7e7d 7d7e 7f7e 7f7e 807f 7f80 8080 8180 8180 8182 8382 8283 8283 8483 8484 8484 8484 8485 8585 8686 8686 8786 8887 8787 8887 8787 8888 8989 8989 8989 8a8a 8b8b 8b8b 8b8b 8b8c 8c8c 8c8c 8c8c 8d8d 8e8d 8e8e 8d8e 8e8e 8f8f 908f 8f90 9090 9090 9091 9190 9191 9192 9191 9292 9293 9292 9393 9393 9393 9493 9494 9494 9494 9495 9596 9596 9696 9696 9797 9697 9797 9798 9798 9798 9798 9899 9899 989a 999a 9999 999a 999a 9a9b 9a9b 9a9c 9b9c 9b9d 9b9c 9c9d 9c9c 9c9d 9b9e 9c9d 9d9e 9d9e 9d9f 9e9f 9ea0 9ea0 9f9f 9fa1 9fa0 a0a1 a0a2 a0a1 a1a2 a1a2 a1a2 a1a3 a1a3 a2a3 a3a4 a3a4 a3a5 a4a4 a3a5 a4a5 a4a6 a5a7 a5a6 a6a7 a6a8 a6a8 a7a8 a8a9 a7a9 a7aa a8aa a8aa a8aa a8ab a8ab a9ab a9ac aaac abac abac abad acad abae acad acad acaf acae adaf aeb0 adb0 aeb0 adb0 afb1 afb1 aeb1 b0b1 afb2 b0b2 afb2 b0b3 b0b2 b1b4 b2b3 b1b4 b1b4 b2b4 b2b4 b2b4 b3b5 b3b5 b4b5 b2b5 b4b6 b4b6 b3b6 b4b6 b4b7 b4b6 b4b7 b5b8 b5b8 b6b7 b6b7 b5b8 b7b9 b6b9 b6b8 b6b9 b7b9 b7ba b6b9 b7ba b8bb b8ba b7bb b8ba b8bb b8bc b8bb b8bc b9bc b8bc b8bc babd b9bc b9bc b9bd babd babc babd babd babc babd b9bc babc babd babd bbbd babd babd babd babd babe b9bd babd babc babc b9bd b9bd babd b9bc b9bc b9bc b9bc b9bc b9bc b9bc b8bc b9bc b8bb b8bc b8bb b9bb b8bb b8bb b8bb b8bb b7bb b6ba b6bb b7b9 b6b9 b6b8 b5b8 b5b8 b4b7 b4b7 b4b7 b3b6 b3b5 b2b4 b2b5 b2b3 b1b4 b1b3 b1b3 b0b2 afb2 aeb1 afb1 aeb1 aeb1 adb0 acaf acaf acaf abae abad abad aaac a9ab a9ab a8ab a8aa a7aa a7a8 a6a8 a5a8 a5a6 a4a6 a4a5 a3a5 a2a4 a2a5 a2a4 a2a3 a0a2 a0a3 9fa1 9fa1 9ea0 9ea0 9e9f 9c9e 9c9e 9b9d 9b9d 9a9c 9a9c 999c 989b 989a 989a 9799 9799 9698 9598 9597 9496 9495 9395 9494 9295 9294 9292 9093 9191 9091 9090 8e90 8e90 8e8f 8d8e 8d8e 8c8e 8b8d 8b8d 8b8b 8b8b 898b 8a8b 898a 898a 8889 8889 8788 8788 8687 8586 8587 8486 8485 8485 8384 8484 8283 8283 8282 8182 8182 8181 8080 7f80 8080 7f7f 7f7f 7e7f 7d7f 7d7d 7d7d 7d7d 7d7c 7c7d 7c7c 7c7b 7b7b 7a7b 7a7a 7a7a 7979 7979 7779 7878 7777 7777 7776 7676 7675 7475 7474 7473 7373 7272 7371 7271 7171 7170 7070 716f 6f6e 6f6f 6e6e 6e6e 6d6e 6e6d 6d6d 6c6c 6c6b 6b6b 6b6a 6a69 6a6a 6969 6868 6968 6867 6667 6766 6666 6664 6564 6564 6463 6363 6462 6362 6261 6262 6160 6160 6160 615f 605f 5f5e 5f5e 5f5d 5e5d 5e5d 5d5c 5d5c 5d5b 5c5b 5c5a 5b5a 5a5a 5a5a 5b59 5a58 5858 5957 5957 5857 5756 5656 5756 5655 5654 5654 5554 5654 5553 5453 5553 5452 5352 5351 5251 5251 5250 5250 5250 524f 514f 504e 504e 504f 504d 504d 4f4d 4f4d 4f4c 4e4c 4f4b 4e4c 4e4b 4d4a 4d4b 4d4a 4d4b 4c4a 4d49 4c4a 4c4a 4c49 4c48 4b49 4c48 4b48 4a49 4b49 4b49 4b48 4b48 4a48 4a48 4a47 4a47 4a47 4a47 4a48 4a47 4a47 4a47 4a48 4947 4947 4a46 4a48 4947 4a47 4948 4a47 4a47 4947 4947 4a47 4947 4a48 4a47 4947 4a47 4a48 4a47 4b47 4b48 +] diff --git a/apps/plugins/varvara/varvara.c b/apps/plugins/varvara/varvara.c index 9ea01d6ea5..866ce70591 100644 --- a/apps/plugins/varvara/varvara.c +++ b/apps/plugins/varvara/varvara.c @@ -220,12 +220,11 @@ apu_finished_handler(Apu *c) } void audio_callback(const void** start, size_t *size) { - for (size_t i = 0; i < AUDIO_BUF_SIZE; i++) { - audio_buf[i] = i; - } *start = audio_buf; *size = AUDIO_BUF_SIZE; + memzero8(audio_buf, AUDIO_BUF_SIZE); + apu_render(&apu[0], audio_buf, audio_buf + AUDIO_BUF_SIZE / 2); } static Uint8