respect if song loops or not
This commit is contained in:
parent
b4dcc210b3
commit
9f5732f91a
19
engine.tal
19
engine.tal
|
@ -13,7 +13,9 @@ multiple channels )
|
|||
#ff .kalama/tick STZ
|
||||
.kalama/line LDZ #01 ADD DUP
|
||||
DUP #00 SWP #0003 MUL2
|
||||
.kalama/songpos LDZ2 #0005 ADD2 .kalama/module LDZ2 ADD2 ( song position ) LDA ;k-get-pattern/run JSR2 ADD2 #00 ;k-play-line/run JSR2
|
||||
.kalama/songpos LDZ2 DUP2
|
||||
#ffff EQU2 ,&no-play JCN ( don't play if song pos is ffff aka song is stopped or over )
|
||||
#0005 ADD2 .kalama/module LDZ2 ADD2 ( song position ) LDA ;k-get-pattern/run JSR2 ADD2 #00 ;k-play-line/run JSR2
|
||||
#0f EQU ,&next JCN
|
||||
.kalama/line STZ
|
||||
RTN
|
||||
|
@ -23,19 +25,28 @@ multiple channels )
|
|||
#ff .kalama/line STZ .kalama/songpos LDZ2 #0004 ADD2 DUP2
|
||||
.kalama/module LDZ2 #0003 ADD2 LDA2 ( song length ) EQU2 ,&reset JCN
|
||||
.kalama/songpos STZ2
|
||||
RTN
|
||||
RTN
|
||||
&reset
|
||||
POP2
|
||||
.kalama/songloop LDZ #00 EQU ,&end JCN
|
||||
#0000 .kalama/songpos STZ2
|
||||
RTN
|
||||
&end
|
||||
#ffff .kalama/songpos STZ2
|
||||
RTN
|
||||
&no-play
|
||||
POP2 POP2 POP2
|
||||
RTN
|
||||
|
||||
( initialises kalama with module data )
|
||||
@k-init-module ( addr* -- )
|
||||
&run
|
||||
DUP2 .kalama/module STZ2 ( store module address )
|
||||
DUP2 LDA #0f AND .kalama/speed STZ ( set speed )
|
||||
DUP2 LDA DUP
|
||||
#0f AND .kalama/speed STZ ( set speed )
|
||||
#80 AND .kalama/songloop STZ ( set song loop or not )
|
||||
#0001 ADD2 LDA ( stash pattern count byte )
|
||||
;DEBUG-instruments .kalama/instruments STZ2
|
||||
;k-get-pattern JSR2 .kalama/instruments STZ2
|
||||
#ff .kalama/tick STZ
|
||||
#ff .kalama/line STZ
|
||||
#0000 .kalama/songpos STZ2
|
||||
|
|
10
player.tal
10
player.tal
|
@ -30,6 +30,7 @@
|
|||
&tick $1
|
||||
&line $1
|
||||
&speed $1
|
||||
&songloop $1 ( if song loops or not )
|
||||
&songpos $2 ( position in song table )
|
||||
|
||||
( program )
|
||||
|
@ -87,10 +88,11 @@ RTN
|
|||
~engine.tal
|
||||
|
||||
@module
|
||||
8f 02 02 ( file header - speed 8, loop on, 2 patterns, 2 instruments )
|
||||
0008 ( size )
|
||||
0f 02 02 ( file header - speed f, loop on, 2 patterns, 2 instruments )
|
||||
000c ( size )
|
||||
00 ff ff ff
|
||||
01 ff ff ff ( song table, 2 rows )
|
||||
ff ff ff ff ( song table, 2 rows )
|
||||
01 ff ff ff
|
||||
@DEBUG-patterns
|
||||
( pattern 00 )
|
||||
54 02 00 ( C-3 I00 )
|
||||
|
@ -131,7 +133,7 @@ ff 00 00
|
|||
0002 ( sample length )
|
||||
ff ( volume )
|
||||
80 ( flags - loop sample )
|
||||
50f0 ( ADSR )
|
||||
0060 ( ADSR )
|
||||
ff 00 ( square wave sample data )
|
||||
( instrument 01, unused )
|
||||
0008 ( sample length )
|
||||
|
|
Reference in New Issue