... | ... |
@@ -6,9 +6,11 @@ |
6 | 6 |
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } |
7 | 7 |
|
8 | 8 |
%4/ { #02 SFT } |
9 |
+%4* { #20 SFT } |
|
9 | 10 |
%2** { #10 SFT2 } %2// { #01 SFT2 } |
11 |
+%4** { #20 SFT2 } |
|
10 | 12 |
%8** { #30 SFT2 } %8// { #03 SFT2 } |
11 |
-%10** { #40 SFT2 } |
|
13 |
+%10** { #40 SFT2 } %10// { #04 SFT2 } |
|
12 | 14 |
|
13 | 15 |
%4MOD { #03 AND } |
14 | 16 |
|
... | ... |
@@ -38,6 +40,8 @@ |
38 | 40 |
|
39 | 41 |
|0000 |
40 | 42 |
|
43 |
+@input |
|
44 |
+ &length $1 &value $2 |
|
41 | 45 |
@center |
42 | 46 |
&x $2 &y $2 |
43 | 47 |
@rect |
... | ... |
@@ -106,15 +110,42 @@ BRK |
106 | 110 |
|
107 | 111 |
@click-keypad ( -> ) |
108 | 112 |
|
109 |
- #00 .Mouse/state DEO |
|
110 |
- #aa DEBUG |
|
113 |
+ ( get key ) |
|
114 |
+ .Mouse/x DEI2 .keypad-frame/x LDZ2 -- 10// 4MOD |
|
115 |
+ .Mouse/y DEI2 .keypad-frame/y LDZ2 -- 10// 4** |
|
116 |
+ ++ ;keypad/layout ++ LDA ;push-key JSR2 |
|
117 |
+ |
|
118 |
+ ( release mouse ) #00 .Mouse/state DEO |
|
111 | 119 |
|
112 | 120 |
BRK |
113 | 121 |
|
122 |
+@push-key ( key -- ) |
|
123 |
+ |
|
124 |
+ TOS .input/value LDZ2 #40 SFT2 ++ .input/value STZ2 |
|
125 |
+ .input/length LDZ INC .input/length STZ |
|
126 |
+ ;draw-value JSR2 |
|
127 |
+ |
|
128 |
+RTN |
|
129 |
+ |
|
114 | 130 |
@redraw ( -- ) |
115 | 131 |
|
116 | 132 |
;draw-keypad JSR2 |
117 | 133 |
;draw-modpad JSR2 |
134 |
+ ;draw-value JSR2 |
|
135 |
+ |
|
136 |
+RTN |
|
137 |
+ |
|
138 |
+@draw-value ( -- ) |
|
139 |
+ |
|
140 |
+ .center/y LDZ2 #0030 -- .Screen/y DEO2 |
|
141 |
+ #04 #00 |
|
142 |
+ &loop |
|
143 |
+ ( x ) DUP TOS 8** .center/x LDZ2 SWP2 -- .Screen/x DEO2 |
|
144 |
+ ( value ) STHk .input/value LDZ2 STHr 4* SFT2 #000f AND2 |
|
145 |
+ ( value glyph ) 8** ;font-hex ++ .Screen/addr DEO2 |
|
146 |
+ #01 .Screen/sprite DEO |
|
147 |
+ INC GTHk ,&loop JCN |
|
148 |
+ POP2 |
|
118 | 149 |
|
119 | 150 |
RTN |
120 | 151 |
|