diff --git a/engine.tal b/engine.tal index 6cb2c0d..bc50d83 100644 --- a/engine.tal +++ b/engine.tal @@ -1,3 +1,7 @@ +( TODO +commmands +song playback +multiple channels ) @k-tick &run .kalama/tick LDZ #01 ADD DUP @@ -5,15 +9,17 @@ .kalama/tick STZ RTN &play + POP #ff .kalama/tick STZ .kalama/line LDZ #01 ADD DUP DUP #00 SWP #0003 MUL2 - #00 ;k-get-pattern/run JSR2 ADD2 ;k-play-line/run JSR2 + #00 ;k-get-pattern/run JSR2 ADD2 #00 ;k-play-line/run JSR2 #0f EQU ,&next JCN .kalama/line STZ RTN &next ( TODO next pattern ) + POP #ff .kalama/line STZ RTN @@ -60,8 +66,10 @@ RTN POPr RTN -@k-play-line ( *l -- ) +@k-play-line ( *l channel -- ) +&chan $1 &run +,&chan STR LDA DUP #00 EQU ,&rest JCN .Audio0/pitch DEO ( TODO use correct channel, effects ) diff --git a/player.tal b/player.tal index 7a982ba..e79d059 100644 --- a/player.tal +++ b/player.tal @@ -30,12 +30,12 @@ &tick $1 &line $1 &speed $1 + &songpos $2 ( position in song table ) ( program ) |0100 ( -> ) - ( theme ) #0fe5 .System/r DEO2 #0fc5 .System/g DEO2 #0f25 .System/b DEO2 @@ -87,27 +87,27 @@ RTN ~engine.tal @module -88 02 02 ( file header - speed 8, loop on, 2 patterns, 2 instruments ) +8f 02 02 ( file header - speed 8, loop on, 2 patterns, 2 instruments ) 0008 ( size ) 00 00 ff ff 00 01 ff ff ( song table, 2 rows ) ( pattern 00 ) -3c 02 00 ( C-3 I00 ) -00 00 00 +54 02 00 ( C-3 I00 ) +52 00 00 +54 00 00 +4f 00 00 +4b 00 00 +4f 00 00 +48 00 00 +ff 00 00 +54 02 00 +52 00 00 +54 00 00 +4f 00 00 +4b 00 00 +4f 00 00 +48 00 00 ff 00 00 -00 00 00 -3c 00 00 -00 00 00 -00 00 00 -00 00 00 -3c 00 00 -00 00 00 -00 00 00 -00 00 00 -3c 00 00 -00 00 00 -00 00 00 -00 00 00 ( pattern 01 ) ff 00 00 3c 02 00 ( C-3 I00 )