Browse code

Started implemented bit input to calc.tal

neauoire authored on 23/09/2021 00:05:18
Showing 1 changed files
... ...
@@ -7,6 +7,7 @@
7 7
 
8 8
 %2*   { #10 SFT } 
9 9
 %4*   { #20 SFT } %4/ { #02 SFT }
10
+%8/   { #03 SFT }
10 11
 %2**  { #10 SFT2 } %2// { #01 SFT2 }
11 12
 %4**  { #20 SFT2 }
12 13
 %8**  { #30 SFT2 } %8// { #03 SFT2 }
... ...
@@ -52,6 +53,8 @@
52 53
 	&x $2 &y $2 &x2 $2 &y2 $2
53 54
 @modpad-frame
54 55
 	&x $2 &y $2 &x2 $2 &y2 $2
56
+@bitpad-frame
57
+	&x $2 &y $2 &x2 $2 &y2 $2
55 58
 @input-frame
56 59
 	&x $2 &y $2 &x2 $2 &y2 $2
57 60
 
... ...
@@ -89,16 +92,23 @@
89 92
 	DUP2 .keypad-frame/y STZ2
90 93
 		#0040 ++ .keypad-frame/y2 STZ2
91 94
 
92
-	.keypad-frame/x LDZ2 #0040 ++ 
95
+	.keypad-frame/x LDZ2
93 96
 	DUP2 .modpad-frame/x STZ2
94
-		#0010 ++ .modpad-frame/x2 STZ2
95
-	.keypad-frame/y LDZ2 
97
+		#0040 ++ .modpad-frame/x2 STZ2
98
+	.keypad-frame/y LDZ2 #0040 ++
96 99
 	DUP2 .modpad-frame/y STZ2
97
-		#0040 ++ .modpad-frame/y2 STZ2
100
+		#0010 ++ .modpad-frame/y2 STZ2
101
+
102
+	.keypad-frame/x LDZ2
103
+	DUP2 .bitpad-frame/x STZ2
104
+		#0040 ++ .bitpad-frame/x2 STZ2
105
+	.keypad-frame/y LDZ2 #0058 ++
106
+	DUP2 .bitpad-frame/y STZ2
107
+		#0010 ++ .bitpad-frame/y2 STZ2
98 108
 
99 109
 	.center/x LDZ2 #0028 -- 
100 110
 	DUP2 .input-frame/x STZ2
101
-		#0050 ++ .input-frame/x2 STZ2
111
+		#0040 ++ .input-frame/x2 STZ2
102 112
 	.center/y LDZ2 #0030 -- 
103 113
 	DUP2 .input-frame/y STZ2
104 114
 		#0010 ++ .input-frame/y2 STZ2
... ...
@@ -165,6 +175,8 @@ BRK
165 175
 		;within-rect JSR2 ;click-input JCN2
166 176
 	OVR2 OVR2 .modpad-frame 
167 177
 		;within-rect JSR2 ;click-modpad JCN2
178
+	OVR2 OVR2 .bitpad-frame 
179
+		;within-rect JSR2 ;click-bitpad JCN2
168 180
 	POP2 POP2
169 181
 
170 182
 BRK
... ...
@@ -182,9 +194,9 @@ BRK
182 194
 
183 195
 @click-modpad ( x* y* -> )
184 196
 
185
-	NIP2
197
+	POP2
186 198
 	( get key )
187
-	.modpad-frame/y LDZ2 -- 10// NIP
199
+	.modpad-frame/x LDZ2 -- 10// NIP
188 200
 	DUP #00 ! ,&no-add JCN ;do-add JSR2 &no-add
189 201
 	DUP #01 ! ,&no-sub JCN ;do-sub JSR2 &no-sub
190 202
 	DUP #02 ! ,&no-mul JCN ;do-mul JSR2 &no-mul
... ...
@@ -195,16 +207,22 @@ BRK
195 207
 
196 208
 BRK
197 209
 
210
+@click-bitpad ( x* y* -> )
211
+
212
+	DEBUG2 DEBUG2
213
+
214
+BRK
215
+
198 216
 @click-input ( x* y* -> )
199 217
 
200 218
 	POP2
201
-	.input-frame/x LDZ2 #0008 ++ -- 10// NIP
202
-	DUP #03 ! ,&no-push JCN
219
+	.input-frame/x LDZ2 -- 8// NIP
220
+	DUP #06 ! ,&no-push JCN
203 221
 		.input/value LDZ2 #0001 << ,&no-push-empty JCN
204 222
 			;do-push JSR2
205 223
 			&no-push-empty
206 224
 		&no-push
207
-	DUP #04 ! ,&no-pop JCN
225
+	DUP #07 ! ,&no-pop JCN
208 226
 		;do-pop JSR2
209 227
 		&no-pop
210 228
 	POP
... ...
@@ -341,6 +359,7 @@ RTN
341 359
 	#ff ;draw-keypad JSR2
342 360
 	#ff ;draw-modpad JSR2
343 361
 	#ff ;draw-input JSR2
362
+	;draw-bitpad JSR2
344 363
 	;draw-stack JSR2
345 364
 
346 365
 RTN
... ...
@@ -387,8 +406,7 @@ RTN
387 406
 @draw-input ( key -- )
388 407
 
389 408
 	STH
390
-
391
-	.input-frame/y LDZ2 #0002 ++ .Screen/y DEO2
409
+	.input-frame/y LDZ2 #0003 ++ .Screen/y DEO2
392 410
 	#04 #00
393 411
 	&loop
394 412
 		( x ) DUP TOS 8** .input-frame/x LDZ2 #0018 ++ SWP2 -- .Screen/x DEO2
... ...
@@ -402,13 +420,13 @@ RTN
402 420
 	( controls )
403 421
 	.input-frame/x LDZ2 #0030 ++
404 422
 	.input-frame/y LDZ2
405
-	;stack-icns/push [ STHkr #00 = ] #01
406
-		;draw-key JSR2
423
+	;stack-icns/push [ STHkr #00 = ] #02
424
+		;draw-key-thin JSR2
407 425
 
408
-	.input-frame/x LDZ2 #0040 ++
426
+	.input-frame/x LDZ2 #0038 ++
409 427
 	.input-frame/y LDZ2
410
-	;stack-icns/pop [ STHkr #01 = ] #02
411
-		;draw-key JSR2
428
+	;stack-icns/pop [ STHkr #01 = ] #03
429
+		;draw-key-thin JSR2
412 430
 
413 431
 	( line )
414 432
 	.input-frame/x LDZ2 
... ...
@@ -445,20 +463,40 @@ RTN
445 463
 	STH
446 464
 	#04 #00
447 465
 	&loop
448
-		( color ) #03 STH
449
-		( state ) DUP OVRr STHr = STH
450
-		( layout ) DUP TOS 8** ;mod-icns ++ STH2
451
-		( x ) #0000 STH2
452
-		( y ) DUP TOS 10**
453
-		( origin-x ) STH2r .modpad-frame/x LDZ2 ++ SWP2 
454
-		( origin-y ) .modpad-frame/y LDZ2 ++
455
-			STH2r STHr STHr ;draw-key JSR2
466
+		( state ) DUP STHkr = STH
467
+		( glyph ) DUP TOS 8** ;mod-icns ++ STH2
468
+		( y ) .modpad-frame/y LDZ2 STH2
469
+		( x ) DUP TOS 10** .modpad-frame/x LDZ2 ++ STH2
470
+		STH2r STH2r STH2r STHr #03 ;draw-key JSR2
456 471
 		INC GTHk ,&loop JCN
457 472
 	POP2
458 473
 	POPr
459 474
 
460 475
 RTN
461 476
 
477
+@draw-bitpad ( -- )
478
+
479
+	#10 #00
480
+	&loop
481
+		( state ) #00 STH
482
+		( y ) .bitpad-frame/y LDZ2 STH2
483
+		( x ) DUP TOS 4** .bitpad-frame/x LDZ2 ++
484
+		STH2r STHr #01 ;draw-bit JSR2
485
+		INC GTHk ,&loop JCN
486
+	POP2
487
+
488
+RTN
489
+
490
+@draw-bit ( x* y* state color -- )
491
+
492
+	STH
493
+	( addr ) POP ;bit-icns .Screen/addr DEO2 
494
+	( y ) .Screen/y DEO2
495
+	( x ) .Screen/x DEO2
496
+	STHr .Screen/sprite DEO	
497
+
498
+RTN
499
+
462 500
 @draw-key ( x* y* glyph* state color -- )
463 501
 
464 502
 	( auto x addr ) #05 .Screen/auto DEO
... ...
@@ -466,8 +504,8 @@ RTN
466 504
 	( state ) ,&state STR
467 505
 	( glyph ) ,&glyph STR2
468 506
 	( state ) ;button-icns [ #00 ,&state LDR 20** ++ ] .Screen/addr DEO2 
469
-	( y* ) .Screen/y DEO2
470
-	( x* ) .Screen/x DEO2
507
+	( y ) .Screen/y DEO2
508
+	( x ) .Screen/x DEO2
471 509
 	( draw background )
472 510
 	,&color LDR .Screen/sprite DEO
473 511
 	,&color LDR .Screen/sprite DEO
... ...
@@ -485,6 +523,27 @@ RTN
485 523
 RTN
486 524
 	&color $1 &state $1 &glyph $2
487 525
 
526
+@draw-key-thin ( x* y* glyph* state color -- )
527
+
528
+	( auto y addr ) #06 .Screen/auto DEO
529
+	( color ) ,&color STR
530
+	( state ) ,&state STR
531
+	( glyph ) ,&glyph STR2
532
+	( state ) ;button-thin-icns [ #00 ,&state LDR 10** ++ ] .Screen/addr DEO2 
533
+	( y ) .Screen/y DEO2
534
+	( x ) .Screen/x DEO2
535
+	( draw background )
536
+	,&color LDR .Screen/sprite DEO
537
+	,&color LDR .Screen/sprite DEO
538
+	( glyph )
539
+	,&glyph LDR2 .Screen/addr DEO2
540
+	.Screen/y DEI2 #000c -- .Screen/y DEO2
541
+	#05 .Screen/sprite DEO
542
+	( auto none ) #00 .Screen/auto DEO
543
+
544
+RTN
545
+	&color $1 &state $1 &glyph $2
546
+
488 547
 ( theme )
489 548
 
490 549
 @theme-txt ".theme $1
... ...
@@ -613,11 +672,22 @@ RTN
613 672
 		ffff ffff ff7f 3f00
614 673
 		fefe fefe fefc f800
615 674
 
675
+@button-thin-icns
676
+	&outline
677
+		3844 8282 8282 8282
678
+		8282 8282 8244 3800
679
+	&full
680
+		387c fefe fefe fefe
681
+		fefe fefe fe7c 3800
682
+
683
+@bit-icns
684
+	e0e0 e0e0 e0e0 e000
685
+
616 686
 @stack-icns
617 687
 	&push
618
-		0000 0010 2844 0000
688
+		0000 1028 1000 0000
619 689
 	&pop
620
-		0000 1038 7c38 1000
690
+		0000 2810 2800 0000
621 691
 
622 692
 @pointer-icn
623 693
 	80c0 e0f0 f8e0 1000