add basic drawing rountines for things in tracker, a good start
This commit is contained in:
parent
2015a2e1bc
commit
0760f0d832
70
tracker.tal
70
tracker.tal
|
@ -20,6 +20,9 @@
|
||||||
%DEBUG2 { ;print-hex JSR2 #0a18 DEO }
|
%DEBUG2 { ;print-hex JSR2 #0a18 DEO }
|
||||||
%RTN { JMP2r }
|
%RTN { JMP2r }
|
||||||
|
|
||||||
|
%MOD { DIVk MUL SUB }
|
||||||
|
%MOD2 { DIV2k MUL2 SUB2 }
|
||||||
|
|
||||||
( devices )
|
( devices )
|
||||||
|
|
||||||
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1
|
|00 @System &vector $2 &wst $1 &rst $1 &eaddr $2 &ecode $1 &pad $1 &r $2 &g $2 &b $2 &debug $1 &halt $1
|
||||||
|
@ -47,7 +50,7 @@
|
||||||
&speed $1
|
&speed $1
|
||||||
&songloop $1 ( if song loops or not )
|
&songloop $1 ( if song loops or not )
|
||||||
&songpos $2 ( position in song table )
|
&songpos $2 ( position in song table )
|
||||||
|
|
||||||
( program )
|
( program )
|
||||||
|
|
||||||
|0100 ( -> )
|
|0100 ( -> )
|
||||||
|
@ -60,13 +63,15 @@
|
||||||
;module ;k-init-module/run JSR2
|
;module ;k-init-module/run JSR2
|
||||||
|
|
||||||
;screen-vector .Screen/vector DEO2
|
;screen-vector .Screen/vector DEO2
|
||||||
( #01 ;draw-pattern JSR2 )
|
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
@screen-vector ( -> )
|
@screen-vector ( -> )
|
||||||
#0000 .Screen/x DEO2
|
#0000 .Screen/x DEO2
|
||||||
#0008 .Screen/y DEO2
|
#0008 .Screen/y DEO2
|
||||||
;draw-song JSR2
|
;draw-song JSR2
|
||||||
|
#0008 .Screen/y DEO2
|
||||||
|
#0080 .Screen/x DEO2
|
||||||
|
#00 ;draw-pattern JSR2
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
@draw-song
|
@draw-song
|
||||||
|
@ -96,10 +101,67 @@ RTN
|
||||||
&pos $2
|
&pos $2
|
||||||
|
|
||||||
@draw-pattern ( p )
|
@draw-pattern ( p )
|
||||||
|
.Screen/x DEI2 ,&x STR2
|
||||||
;k-get-pattern JSR2
|
;k-get-pattern JSR2
|
||||||
DEBUG2
|
DUP2 #0030 ADD2 STH2 ( stash address of end of pattern )
|
||||||
|
&loop ( addr )
|
||||||
|
DUP2 ;draw-pattern-line JSR2 ( addr )
|
||||||
|
#00 .Screen/auto DEO ( clear auto byte )
|
||||||
|
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
|
||||||
|
,&x LDR2 .Screen/x DEO2
|
||||||
|
#0003 ADD2 ( addr+3 ) DUP2 STH2rk ( addr+3 addr+3 end ) NEQ2 ,&loop JCN
|
||||||
|
POP2 POP2r
|
||||||
|
RTN
|
||||||
|
&x $2
|
||||||
|
|
||||||
|
@draw-pattern-line ( addr )
|
||||||
|
#01 .Screen/auto DEO
|
||||||
|
DUP2 LDA #01 ;draw-note JSR2 ( draw note name )
|
||||||
|
#00 .Screen/sprite DEO ( space )
|
||||||
|
DUP2 #0001 ADD2 ( effect letter )
|
||||||
|
LDA #00 SWP ;&effect-letters ADD2 LDA #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( draw effect letter )
|
||||||
|
#01 .Screen/sprite DEO
|
||||||
|
#0002 ADD2 LDA #01 ;draw-hex JSR2 ( draw effect argument )
|
||||||
RTN
|
RTN
|
||||||
@draw-hex ( n color -- )
|
&effect-letters '_ 'V 'I 'A 'D 'S 'R 'T
|
||||||
|
|
||||||
|
@draw-note ( n color -- )
|
||||||
|
#01 .Screen/auto DEO
|
||||||
|
STH ( stash color )
|
||||||
|
DUP #ff EQU ;¬e-off JCN2
|
||||||
|
DUP #00 EQU ;&blank JCN2
|
||||||
|
|
||||||
|
DUP #0c MOD ( note minus octave )
|
||||||
|
#00 SWP #0002 MUL2
|
||||||
|
;¬es ADD2 LDA2 SWP
|
||||||
|
#20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( first note character )
|
||||||
|
STHrk .Screen/sprite DEO
|
||||||
|
#20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( second note character )
|
||||||
|
STHrk .Screen/sprite DEO
|
||||||
|
|
||||||
|
#0c DIV #10 ADD #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( octave number )
|
||||||
|
STHr .Screen/sprite DEO
|
||||||
|
RTN
|
||||||
|
¬e-off
|
||||||
|
#5b #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( [ )
|
||||||
|
STHrk .Screen/sprite DEO
|
||||||
|
#00 .Screen/sprite DEO
|
||||||
|
#5d #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( ] )
|
||||||
|
STHr .Screen/sprite DEO
|
||||||
|
POP
|
||||||
|
RTN
|
||||||
|
&blank
|
||||||
|
#2d #20 SUB #00 SWP #0008 MUL2 ;font ADD2 .Screen/addr DEO2 ( - )
|
||||||
|
STHr
|
||||||
|
DUP .Screen/sprite DEO ( three times )
|
||||||
|
DUP .Screen/sprite DEO
|
||||||
|
.Screen/sprite DEO
|
||||||
|
POP
|
||||||
|
|
||||||
|
RTN
|
||||||
|
¬es "C- "C# "D- "D# "E- "F- "F# "G- "G# "A- "A# "B-
|
||||||
|
|
||||||
|
@draw-hex ( n color -- )
|
||||||
#01 .Screen/auto DEO
|
#01 .Screen/auto DEO
|
||||||
STH ( stash color )
|
STH ( stash color )
|
||||||
DUP
|
DUP
|
||||||
|
|
Reference in New Issue