add command system, add V and I commands
This commit is contained in:
parent
a6e6364a7e
commit
fd5afe422a
31
engine.tal
31
engine.tal
|
@ -1,5 +1,10 @@
|
|||
( TODO
|
||||
commmands )
|
||||
* 0x03 (A) - set attack to argument 1-0f
|
||||
* 0x04 (D) - set decay to argument 1-0f
|
||||
* 0x05 (S) - set sustain to argument 1-0f
|
||||
* 0x06 (R) - set release to argument 1-0f
|
||||
* 0x07 (T) - set song speed to argument 1-0f
|
||||
* 0x08 (L) - set sample loop 00: off, otherwise: on )
|
||||
|
||||
@k-tick
|
||||
&run
|
||||
|
@ -91,9 +96,10 @@ RTN
|
|||
&chan $1
|
||||
&run
|
||||
,&chan STR
|
||||
DUP2 #0001 ADD2 LDA2 ,&chan LDR ;k-run-command/run JSR2
|
||||
LDA DUP
|
||||
#00 EQU ,&rest JCN
|
||||
.kalama/loopflags LDZ ,&chan LDR #01 SWP SFT AND
|
||||
.kalama/loopflags LDZ ,&chan LDR #10 MUL #01 SWP SFT AND
|
||||
#00 NEQ ,&noloop JCN
|
||||
#80 ORA
|
||||
&noloop
|
||||
|
@ -103,6 +109,19 @@ LDA DUP
|
|||
POP
|
||||
RTN
|
||||
|
||||
@k-run-command ( c arg channel )
|
||||
&chan $1
|
||||
&run
|
||||
,&chan STR
|
||||
SWP ( get command )
|
||||
DUP #01 EQU ,&vol JCN ( set instrument )
|
||||
DUP #02 EQU ,&instr JCN ( set instrument )
|
||||
POP2 RTN
|
||||
&vol POP ,&chan LDR #10 MUL .Audio0/volume ADD DEO
|
||||
RTN
|
||||
&instr POP ,&chan LDR ;k-load-instrument JSR2
|
||||
RTN
|
||||
|
||||
( loads instrument with number into specified audio channel, 0-indexed )
|
||||
@k-load-instrument ( number channel -- )
|
||||
&run
|
||||
|
@ -113,14 +132,14 @@ RTN
|
|||
#0002 ADD2 ( move to volume value )
|
||||
DUP2 LDA STHrk .Audio0/volume ADD DEO ( copy volume value )
|
||||
#0001 ADD2 DUP2 ( move to flags value )
|
||||
LDA #07 SFT ( MSB is set for looping sample, turn it into 0/1 )
|
||||
|
||||
DUP ( set or clear loop bit )
|
||||
LDA #07 SFT ( MSB is set for looping sample, turn it into 0/1 )
|
||||
( set or clear loop bit )
|
||||
#00 EQU ,&clear JCN
|
||||
STHrk SFT .kalama/loopflags LDZ ORA .kalama/loopflags STZ ( set bit on )
|
||||
#01 STHrk SFT .kalama/loopflags LDZ ORA .kalama/loopflags STZ ( set bit on )
|
||||
,&end JMP
|
||||
&clear
|
||||
STHrk SFT #ff EOR .kalama/loopflags LDZ AND .kalama/loopflags STZ ( set bit off )
|
||||
#01 STHrk SFT #ff EOR .kalama/loopflags LDZ AND .kalama/loopflags STZ ( set bit off )
|
||||
&end
|
||||
|
||||
#0001 ADD2 LDA2k STHrk .Audio0/adsr ADD DEO2 ( copy ADSR value )
|
||||
|
|
|
@ -65,6 +65,7 @@ More soon probably
|
|||
* 0x06 (R) - set release to argument (1-0f)
|
||||
* 0x07 (T) - set song speed to argument (1-0f)
|
||||
* 0x08 (L) - set sample loop ( 00: off, otherwise: on )
|
||||
|
||||
## Instruments
|
||||
|
||||
Instruments contain a sample and some default parameters for that sample. Everything is in the same format expected by the audio device.
|
||||
|
|
40
player.tal
40
player.tal
|
@ -1,4 +1,3 @@
|
|||
|
||||
( a blank file )
|
||||
|
||||
%DEBUG { ;print-hex/byte JSR2 #0a18 DEO }
|
||||
|
@ -44,9 +43,6 @@
|
|||
|
||||
;module ;k-init-module JSR2
|
||||
|
||||
#00 #00 ;k-load-instrument JSR2
|
||||
#01 #01 ;k-load-instrument JSR2
|
||||
|
||||
;on-frame/run .Screen/vector DEO2
|
||||
BRK
|
||||
|
||||
|
@ -98,13 +94,13 @@ ff 02 ff ff ( song table, 2 rows )
|
|||
@DEBUG-patterns
|
||||
( pattern 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
|
||||
52 01 80
|
||||
54 01 08
|
||||
4f 01 80
|
||||
4b 01 08
|
||||
4f 01 22
|
||||
48 01 cc
|
||||
ff 01 88
|
||||
54 02 00
|
||||
52 00 00
|
||||
54 00 00
|
||||
|
@ -114,34 +110,34 @@ ff 00 00
|
|||
48 00 00
|
||||
ff 00 00
|
||||
( pattern 01 )
|
||||
54 00 00
|
||||
56 02 00 ( C-3 I00 )
|
||||
54 02 01
|
||||
56 00 00
|
||||
57 00 00
|
||||
56 00 00
|
||||
57 00 00
|
||||
54 00 00
|
||||
56 00 00
|
||||
56 02 00
|
||||
54 00 00
|
||||
56 00 00
|
||||
52 00 00
|
||||
54 00 00
|
||||
54 02 01
|
||||
52 00 00
|
||||
54 00 00
|
||||
50 00 00
|
||||
54 00 00
|
||||
54 02 00
|
||||
ff 00 00
|
||||
( pattern 02 )
|
||||
3c 02 01
|
||||
00 01 f0
|
||||
3c 00 00
|
||||
00 00 00
|
||||
3c 00 00
|
||||
3c 01 0f
|
||||
00 00 00
|
||||
3c 00 00
|
||||
3c 01 ff
|
||||
00 00 00
|
||||
3c 00 00
|
||||
3c 01 44
|
||||
00 00 00
|
||||
3c 00 00
|
||||
00 00 00
|
||||
3c 00 00
|
||||
3c 01 ff
|
||||
00 00 00
|
||||
3c 00 00
|
||||
00 00 00
|
||||
|
|
Reference in New Issue