@@ 12,8 12,9 @@
@cursor &x $2 &y $2
@filename $40
- @sleep $1
@time $2
+ @sleep $1
+ @rate $1
@pc $2
@f &2 $1 &r $1 &k $1
@@ 24,13 25,13 @@
|0100 ( -> )
( theme )
- #09f7 .System/r DEO2
+ #0ef7 .System/r DEO2
#07fd .System/g DEO2
- #0dfc .System/b DEO2
+ #04fc .System/b DEO2
( size )
#01b8 .Screen/width DEO2
#0100 .Screen/height DEO2
-
+ ( param )
;await-src .Console/vector DEO2
;dict/input ;pstr JSR2
@@ 53,6 54,7 @@ BRK
;program/reset .File/read DEO2
#01 .sleep STZ
+ #04 .rate STZ
;reset JSR2
;redraw-all JSR2
@@ 92,9 94,12 @@ BRK
.Mouse/x DEI2 #00e0 SUB2 #03 SFT2 NIP STHr
ORAk #00 EQU ,&toggle-sleep JCN
- ;phex JSR2 #0a18 DEO
+
+ DUP #f7 EQU ,&incr-speed JCN
+ POP2
BRK
+
&toggle-sleep ( xy* -- )
POP2
@@ 104,17 109,28 @@ BRK
BRK
+&incr-speed ( xy* -- )
+
+ POP2
+ .rate LDZk INC #0f AND SWP STZ
+ #00 .Mouse/state DEO
+ ;redraw-all JSR2
+
+BRK
+
@on-frame ( -> )
- .sleep LDZ ,&skip JCN
- [ LIT &f $1 ] #07 AND ,&skip JCN
+ .sleep LDZ ,&ignore JCN
+ [ LIT &f $1 ] .rate LDZ NEQ ,&skip JCN
;draw-state JSR2
;step JSR2 POP
.err LDZ #00 EQU ,&no-error JCN
;dict/error ;pstr JSR2 #0a18 DEO
&no-error
+ #00 ,&f STR
&skip
,&f LDR INC ,&f STR
+ &ignore
BRK
@@ 160,8 176,8 @@ JMP2r
&halt
POP
#01 .sleep STZ
- ;draw-state JSR2
;reset JSR2
+ ;draw-state JSR2
#00
JMP2r
@@ 292,17 308,9 @@ JMP2r
;draw-frame JSR2
;draw-logo JSR2
- #0070 .Screen/x DEO2
- #0010 .Screen/y DEO2
- #07 ;draw-knob JSR2
-
- #0088 .Screen/x DEO2
- #0010 .Screen/y DEO2
- #00 ;draw-knob JSR2
-
- #00a0 .Screen/x DEO2
+ #0198 .Screen/x DEO2
#0010 .Screen/y DEO2
- #0f ;draw-knob JSR2
+ .rate LDZ ;draw-knob JSR2
@draw-state ( -- )
@@ 511,10 519,6 @@ JMP2r
#00e0 .Screen/x DEO2
#00a0 .Screen/y DEO2
#01 .sleep LDZ ;draw-button JSR2
- #0100 ;draw-button JSR2
- #0300 ;draw-button JSR2
- #0301 ;draw-button JSR2
- #0200 ;draw-button JSR2
JMP2r
@@ 631,7 635,7 @@ JMP2r
( circle )
;knob-icns .Screen/addr DEO2
#16 .Screen/auto DEO
- #0a .Screen/sprite DEOk DEO
+ #02 .Screen/sprite DEOk DEO
#00 .Screen/auto DEO
( marker )
.Screen/x DEI2 #0000 SUB2 #0000 STHkr ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2
@@ 672,7 676,7 @@ JMP2r
&out "OUT 20 $1
&pc "PC 20 $1
&lit "LIT $1
- &flags "S--- $1
+ &flags "RUN $1
(
@|utils )