@@ 27,16 27,16 @@
0018 2442 4242 2418 2442 4242 4224 1800
0018 2442 4242 4242 261a 0202 0408 3000
0000 0000 0010 1000 0000 0000 1010 0000
- 0000 0000 0010 1000 0000 0000 1010 1020
- 0000 0204 0810 2040 2010 0804 0200 0000
- 0000 0000 0000 7c00 007c 0000 0000 0000
- 0000 4020 1008 0402 0408 1020 4000 0000
- 1824 4242 4204 0408 0810 1010 0010 1010
- 3844 8282 9aaa aaaa aaaa aa96 8082 4438
- 0010 1028 2844 4444 8282 fe82 8282 0000
- 00f8 4442 4242 4478 4442 4242 44f8 0000
- 003c 4282 8280 8080 8080 8282 423c 0000
- 00f8 4442 4242 4242 4242 4242 44f8 0000
+ 0000 0000 0010 1000 0000 0000 1010 1020
+ 0000 0204 0810 2040 2010 0804 0200 0000
+ 0000 0000 0000 7c00 007c 0000 0000 0000
+ 0000 4020 1008 0402 0408 1020 4000 0000
+ 1824 4242 4204 0408 0810 1010 0010 1010
+ 3844 8282 9aaa aaaa aaaa aa96 8082 4438
+ 0010 1028 2844 4444 8282 fe82 8282 0000
+ 00f8 4442 4242 4478 4442 4242 44f8 0000
+ 003c 4282 8280 8080 8080 8282 423c 0000
+ 00f8 4442 4242 4242 4242 4242 44f8 0000
00fc 4240 4040 4878 4840 4040 42fc 0000
80fe 4240 4040 447c 4440 4040 40e0 0000
003a 4682 8080 8e82 8282 8282 463a 0000
@@ 96,6 96,17 @@
4020 2020 2020 2010 1020 2020 2020 2040
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
+&selector
+ 0000 0010 1010 1010 ee10 1010 1010 0000
+ 0000 006c 1010 1010 1010 1010 106c 0000
+&beat
+ 0010 1028 2844 4482 8244 4428 2810 1000
+&make
+ 00fe 8282 8282 8282 8282 8282 848a f400
+&load
+ 00fe d6aa d6aa d6aa d6aa d6aa d4aa f400
+&save
+ 0010 1092 9254 5428 d628 5454 9292 1000
@sin-pcm
8083 8689 8c8f 9295 989b 9ea1 a4a7 aaad
@@ 267,8 267,7 @@ BRK
DUP .timer/beat STZ
.timer/speed LDZ = BRK?
- .timer/frame LDZ2 INC2
- .timer/frame STZ2
+ ( incr frame ) .timer/frame LDZ2 INC2 .timer/frame STZ2
;run JSR2
@@ 456,11 455,11 @@ BRK
.Mouse/state DEI BRK?
;untrap JSR2
-
+
BRK
@on-mouse ( -> )
-
+
( clear last cursor )
.cursor/x LDZ2 .Screen/x DEO2
.cursor/y LDZ2 .Screen/y DEO2
@@ 1381,42 1380,37 @@ RTN
RTN
-@redraw ( -- )
+@draw-meter ( -- )
- .grid/height LDZ #00
- &ver
- ( pos-y ) DUP #00 SWP 10** [ .grid/y1 LDZ2 ++ ] .Screen/y DEO2
- .grid/width LDZ #00
- &hor
- ( pos-x ) DUP #00 SWP 8** [ .grid/x1 LDZ2 ++ ] .Screen/x DEO2
- GET-ITER
- ( sprite ) DUP2 ;get-cell-sprite JSR2
- ( color ) SWP2 ,get-cell-type JSR TOS ;cell-styles ++ LDA
- ;draw-char JSR2
- INC GTHk ,&hor JCN
- POP2
- INC GTHk ,&ver JCN
- POP2
- ,draw-toolbar JSR
- ;draw-meter JSR2
+ .toolbar/y1 LDZ2 #0001 -- .Screen/y DEO2
-RTN
+ ( merge channels )
+ .Audio0/output DEI DUP #0f AND STH #04 SFT STH
+ .Audio1/output DEI DUP #0f AND STH #04 SFT STH
+ ROTr ADDr ROTr ROTr ADDr SWPr
+ .Audio2/output DEI DUP #0f AND STH #04 SFT STH
+ ROTr ADDr ROTr ROTr ADDr SWPr
+ .Audio3/output DEI DUP #0f AND STH #04 SFT STH
+ ROTr ADDr ROTr ROTr ADDr SWPr
-@get-cell-type ( x y -- type )
-
- OVR .selection/x1 LDZ < ,&end JCN
- OVR .selection/x2 LDZ > ,&end JCN
- DUP .selection/y1 LDZ < ,&end JCN
- DUP .selection/y2 LDZ > ,&end JCN
- POP2 #06 RTN
- &end
- GET-TYPE
+ ( draw )
+ #00 #08
+ &loop
+ .toolbar/x2 LDZ2 #0028 -- .Screen/x DEO2
+ DUP OVRr STHr 4/ < .Screen/pixel DEO
+ .toolbar/x2 LDZ2 #0026 -- .Screen/x DEO2
+ DUP STHkr 4/ < .Screen/pixel DEO
+ .Screen/y DEI2 INC2 .Screen/y DEO2
+ #01 - LTHk ,&loop JCN
+ POP2
+
+ POP2r
RTN
@draw-toolbar ( -- )
-
- ( skip on samll screens )
+
+ ( skip on small screens )
.toolbar/y1 LDZ2 .Screen/height DEI2 << RTN?
.toolbar/y1 LDZ2 .Screen/y DEO2
@@ 1428,23 1422,18 @@ RTN
.selection/y1 LDZ #01 ;draw-byte JSR2
.grid/x1 LDZ2 #0020 ++ .Screen/x DEO2
- ;selection-icns .selection/insert LDZ TOS 8** ++ .Screen/addr DEO2
- #02 .selection/x1 LDZ .selection/y1 LDZ .selection/x2 LDZ .selection/y2 LDZ == + .Screen/sprite DEO
+ ;font/selector .selection/insert LDZ TOS 10** ++
+ #02 .selection/x1 LDZ2 .selection/x2 LDZ2 == +
+ ;draw-char JSR2
( Frame )
.grid/x1 LDZ2 #0030 ++ .Screen/x DEO2
.timer/frame INC LDZ #01 ;draw-byte JSR2
+
.grid/x1 LDZ2 #0040 ++ .Screen/x DEO2
- ;beat-icn .Screen/addr DEO2
- #03 .timer/frame INC LDZ #07 AND #00 = - .Screen/sprite DEO
-
- ( Speed )
- .grid/x1 LDZ2 #0050 ++ .Screen/x DEO2
- .timer/speed LDZ #01 ;draw-byte JSR2
- .grid/x1 LDZ2 #0060 ++ .Screen/x DEO2
- ( t ) #74 GET-CHAR-ADDR #01 ;draw-char JSR2
- .grid/x1 LDZ2 #0068 ++ .Screen/x DEO2
- ( h ) #68 GET-CHAR-ADDR #01 ;draw-char JSR2
+ ;font/beat
+ #03 .timer/frame INC LDZ #07 AND #00 = -
+ ;draw-char JSR2
( d-pad )
.dpad LDZ DUP #20 < ,&no-dpad JCN
@@ 1454,56 1443,34 @@ RTN
;font #00 ;draw-char JSR2
STH2r #0018 ++ .Screen/x DEO2
.dpad LDZ GET-CHAR-ADDR #01 ;draw-char JSR2
+ ,&continue JMP
&no-dpad
+ ( Speed )
+ .grid/x1 LDZ2 #0050 ++ .Screen/x DEO2
+ .timer/speed LDZ #01 ;draw-byte JSR2
+ .grid/x1 LDZ2 #0060 ++ .Screen/x DEO2
+ ( t ) #74 GET-CHAR-ADDR #03 ;draw-char JSR2
+ .grid/x1 LDZ2 #0068 ++ .Screen/x DEO2
+ ( h ) #68 GET-CHAR-ADDR #03 ;draw-char JSR2
+ &continue
POP
( File )
.grid/x2 LDZ2 STH2k #0018 -- .Screen/x DEO2
- ;load-icn .Screen/addr DEO2
- #01 .Screen/sprite DEO
+ ;font/make #01 ;draw-char JSR2
STH2r #0020 -- .Screen/x DEO2
- ;make-icn .Screen/addr DEO2
- #01 .Screen/sprite DEO
+ ;font/load #01 ;draw-char JSR2
( filepath )
#03 ;draw-filepath JSR2
RTN
-@draw-meter ( -- )
-
- .toolbar/y1 LDZ2 #0001 -- .Screen/y DEO2
-
- ( merge channels )
- .Audio0/output DEI DUP #0f AND STH #04 SFT STH
- .Audio1/output DEI DUP #0f AND STH #04 SFT STH
- ROTr ADDr ROTr ROTr ADDr SWPr
- .Audio2/output DEI DUP #0f AND STH #04 SFT STH
- ROTr ADDr ROTr ROTr ADDr SWPr
- .Audio3/output DEI DUP #0f AND STH #04 SFT STH
- ROTr ADDr ROTr ROTr ADDr SWPr
-
- ( draw )
- #00 #08
- &loop
- .toolbar/x2 LDZ2 #0028 -- .Screen/x DEO2
- DUP OVRr STHr 4/ < .Screen/pixel DEO
- .toolbar/x2 LDZ2 #0026 -- .Screen/x DEO2
- DUP STHkr 4/ < .Screen/pixel DEO
- .Screen/y DEI2 INC2 .Screen/y DEO2
- #01 - LTHk ,&loop JCN
- POP2
-
- POP2r
-
-RTN
-
@draw-state ( -- )
.toolbar/x2 LDZ2 #0008 -- .Screen/x DEO2
.toolbar/y1 LDZ2 .Screen/y DEO2
- ;save-icn .Screen/addr DEO2
- #01 .state/changed LDZ + .Screen/sprite DEO
+ ;font/save #01 .state/changed LDZ + ;draw-char JSR2
RTN
@@ 1524,6 1491,39 @@ RTN
RTN
+@redraw ( -- )
+
+ .grid/height LDZ #00
+ &ver
+ ( pos-y ) DUP #00 SWP 10** [ .grid/y1 LDZ2 ++ ] .Screen/y DEO2
+ .grid/width LDZ #00
+ &hor
+ ( pos-x ) DUP #00 SWP 8** [ .grid/x1 LDZ2 ++ ] .Screen/x DEO2
+ GET-ITER
+ ( sprite ) DUP2 ;get-cell-sprite JSR2
+ ( color ) SWP2 ,get-cell-type JSR TOS ;cell-styles ++ LDA
+ ;draw-char JSR2
+ INC GTHk ,&hor JCN
+ POP2
+ INC GTHk ,&ver JCN
+ POP2
+ ;draw-toolbar JSR2
+ ;draw-meter JSR2
+
+RTN
+
+@get-cell-type ( x y -- type )
+
+ OVR .selection/x1 LDZ < ,&end JCN
+ OVR .selection/x2 LDZ > ,&end JCN
+ DUP .selection/y1 LDZ < ,&end JCN
+ DUP .selection/y2 LDZ > ,&end JCN
+ POP2 #06 RTN
+ &end
+ GET-TYPE
+
+RTN
+
( file )
@new-file ( default* -- )