ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
key_constant.c
Go to the documentation of this file.
1/*****************************************************************************
2 * ugBASIC - an isomorphic BASIC language compiler for retrocomputers *
3 *****************************************************************************
4 * Copyright 2021-2026 Marco Spedaletti (asimov@mclink.it)
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *----------------------------------------------------------------------------
18 * Concesso in licenza secondo i termini della Licenza Apache, versione 2.0
19 * (la "Licenza"); è proibito usare questo file se non in conformità alla
20 * Licenza. Una copia della Licenza è disponibile all'indirizzo:
21 *
22 * http://www.apache.org/licenses/LICENSE-2.0
23 *
24 * Se non richiesto dalla legislazione vigente o concordato per iscritto,
25 * il software distribuito nei termini della Licenza è distribuito
26 * "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o
27 * implicite. Consultare la Licenza per il testo specifico che regola le
28 * autorizzazioni e le limitazioni previste dalla medesima.
29 ****************************************************************************/
30
31/****************************************************************************
32 * INCLUDE SECTION
33 ****************************************************************************/
34
35#include "../../../ugbc.h"
36
37/****************************************************************************
38 * CODE SECTION
39 ****************************************************************************/
40
41#if defined( __coco__ ) || defined(__coco3__ ) || \
42 defined( __cocob__ ) || defined(__coco3b__ )
43
44int key_constant( Environment * _environment, int _key ) {
45
46 if ( !_environment->keyboardConfig.sync ) {
47 return _key;
48 } else {
49 switch( _key ) {
50 case KEY_0: return KEY2_0;
51 case KEY_1: return KEY2_1;
52 case KEY_2: return KEY2_2;
53 case KEY_3: return KEY2_3;
54 case KEY_4: return KEY2_4;
55 case KEY_5: return KEY2_5;
56 case KEY_6: return KEY2_6;
57 case KEY_7: return KEY2_7;
58 case KEY_8: return KEY2_8;
59 case KEY_9: return KEY2_9;
60 case KEY_A: return KEY2_A;
61 // case KEY_ASTERISK: return KEY2_ASTERISK;
62 // case KEY_AT: return KEY2_AT;
63 case KEY_B: return KEY2_B;
64 case KEY_C: return KEY2_C;
65 // case KEY_CLEAR: return KEY2_CLEAR;
66 case KEY_COLON: return KEY2_COLON;
67 case KEY_COMMA: return KEY2_COMMA;
68 // case KEY_CONTROL: return KEY2_CONTROL;
69 case KEY_D: return KEY2_D;
70 // case KEY_DELETE: return KEY2_DELETE;
71 case KEY_DOWN: return KEY2_DOWN;
72 case KEY_E: return KEY2_E;
73 case KEY_F: return KEY2_F;
74 case KEY_G: return KEY2_G;
75 case KEY_H: return KEY2_H;
76 // case KEY_HOME: return KEY2_HOME;
77 case KEY_I: return KEY2_I;
78 // case KEY_INSERT: return KEY2_INSERT;
79 case KEY_J: return KEY2_J;
80 case KEY_K: return KEY2_K;
81 case KEY_L: return KEY2_L;
82 case KEY_LEFT: return KEY2_LEFT;
83 // case KEY_LEFT_SHIFT: return KEY2_LEFT_SHIFT;
84 case KEY_M: return KEY2_M;
85 case KEY_MINUS: return KEY2_MINUS;
86 case KEY_N: return KEY2_N;
87 case KEY_O: return KEY2_O;
88 case KEY_P: return KEY2_P;
89 case KEY_PERIOD: return KEY2_PERIOD;
90 // case KEY_PLUS: return KEY2_PLUS;
91 case KEY_Q: return KEY2_Q;
92 case KEY_R: return KEY2_R;
93 // case KEY_RETURN: return KEY2_RETURN;
94 case KEY_RIGHT: return KEY2_RIGHT;
95 // case KEY_RIGHT_SHIFT: return KEY2_RIGHT_SHIFT;
96 case KEY_S: return KEY2_S;
97 // case KEY_SEMICOLON: return KEY2_SEMICOLON;
98 // case KEY_SLASH: return KEY2_SLASH;
99 case KEY_SPACE: return KEY2_SPACE;
100 case KEY_T: return KEY2_T;
101 case KEY_U: return KEY2_U;
102 case KEY_UP: return KEY2_UP;
103 // case KEY_UP_ARROW: return KEY2_UP_ARROW;
104 case KEY_V: return KEY2_V;
105 case KEY_W: return KEY2_W;
106 case KEY_X: return KEY2_X;
107 case KEY_Y: return KEY2_Y;
108 case KEY_Z: return KEY2_Z;
109 // case KEY_BACKSLASH: return KEY2_BACKSLASH;
110 // case KEY_SQUARE_OPEN: return KEY2_SQUARE_OPEN;
111 // case KEY_SQUARE_CLOSED: return KEY2_SQUARE_CLOSED;
112 case KEY_SEMICOMMA: return KEY2_SEMICOMMA;
113 // case KEY_QUOTE: return KEY2_QUOTE;
114 // case KEY_APIX: return KEY2_APIX;
115 // case KEY_DEAD: return KEY2_DEAD;
116 // case KEY_SHIFT: return KEY2_SHIFT;
117 // case KEY_CTRL: return KEY2_CTRL;
118 // case KEY_GRAPH: return KEY2_GRAPH;
119 // case KEY_CAPS: return KEY2_CAPS;
120 // case KEY_CODE: return KEY2_CODE;
121 // case KEY_ESC: return KEY2_ESC;
122 // case KEY_TAB: return KEY2_TAB;
123 // case KEY_STOP: return KEY2_STOP;
124 // case KEY_BS: return KEY2_BS;
125 // case KEY_SELECT: return KEY2_SELECT;
126 // case KEY_RET: return KEY2_RET;
127 // case KEY_INS: return KEY2_INS;
128 // case KEY_DEL: return KEY2_DEL;
129 // case KEY_DIVISION: return KEY2_DIVISION;
130 }
131 return KEY_NONE;
132 }
133}
134
135#endif
136
137
138#if defined( __d32__ ) || defined(__d64__ ) || \
139 defined( __d32b__ ) || defined(__d64b__ )
140
141int key_constant( Environment * _environment, int _key ) {
142
143 if ( !_environment->keyboardConfig.sync ) {
144 return _key;
145 } else {
146 switch( _key ) {
147 case KEY_0: return KEY2_0;
148 case KEY_1: return KEY2_1;
149 case KEY_2: return KEY2_2;
150 case KEY_3: return KEY2_3;
151 case KEY_4: return KEY2_4;
152 case KEY_5: return KEY2_5;
153 case KEY_6: return KEY2_6;
154 case KEY_7: return KEY2_7;
155 case KEY_8: return KEY2_8;
156 case KEY_9: return KEY2_9;
157 case KEY_A: return KEY2_A;
158 // case KEY_ASTERISK: return KEY2_ASTERISK;
159 // case KEY_AT: return KEY2_AT;
160 case KEY_B: return KEY2_B;
161 case KEY_C: return KEY2_C;
162 // case KEY_CLEAR: return KEY2_CLEAR;
163 // case KEY_COLON: return KEY2_COLON;
164 case KEY_COMMA: return KEY2_COMMA;
165 // case KEY_CONTROL: return KEY2_CONTROL;
166 case KEY_D: return KEY2_D;
167 // case KEY_DELETE: return KEY2_DELETE;
168 case KEY_DOWN: return KEY2_DOWN;
169 case KEY_E: return KEY2_E;
170 case KEY_F: return KEY2_F;
171 case KEY_G: return KEY2_G;
172 case KEY_H: return KEY2_H;
173 // case KEY_HOME: return KEY2_HOME;
174 case KEY_I: return KEY2_I;
175 // case KEY_INSERT: return KEY2_INSERT;
176 case KEY_J: return KEY2_J;
177 case KEY_K: return KEY2_K;
178 case KEY_L: return KEY2_L;
179 case KEY_LEFT: return KEY2_LEFT;
180 // case KEY_LEFT_SHIFT: return KEY2_LEFT_SHIFT;
181 case KEY_M: return KEY2_M;
182 case KEY_MINUS: return KEY2_MINUS;
183 case KEY_N: return KEY2_N;
184 case KEY_O: return KEY2_O;
185 case KEY_P: return KEY2_P;
186 //case KEY_PERIOD: return KEY2_PERIOD;
187 // case KEY_PLUS: return KEY2_PLUS;
188 case KEY_Q: return KEY2_Q;
189 case KEY_R: return KEY2_R;
190 // case KEY_RETURN: return KEY2_RETURN;
191 case KEY_RIGHT: return KEY2_RIGHT;
192 // case KEY_RIGHT_SHIFT: return KEY2_RIGHT_SHIFT;
193 case KEY_S: return KEY2_S;
194 // case KEY_SEMICOLON: return KEY2_SEMICOLON;
195 // case KEY_SLASH: return KEY2_SLASH;
196 case KEY_SPACE: return KEY2_SPACE;
197 case KEY_T: return KEY2_T;
198 case KEY_U: return KEY2_U;
199 case KEY_UP: return KEY2_UP;
200 // case KEY_UP_ARROW: return KEY2_UP_ARROW;
201 case KEY_V: return KEY2_V;
202 case KEY_W: return KEY2_W;
203 case KEY_X: return KEY2_X;
204 case KEY_Y: return KEY2_Y;
205 case KEY_Z: return KEY2_Z;
206 // case KEY_BACKSLASH: return KEY2_BACKSLASH;
207 // case KEY_SQUARE_OPEN: return KEY2_SQUARE_OPEN;
208 // case KEY_SQUARE_CLOSED: return KEY2_SQUARE_CLOSED;
209 //case KEY_SEMICOMMA: return KEY2_SEMICOMMA;
210 // case KEY_QUOTE: return KEY2_QUOTE;
211 // case KEY_APIX: return KEY2_APIX;
212 // case KEY_DEAD: return KEY2_DEAD;
213 // case KEY_SHIFT: return KEY2_SHIFT;
214 // case KEY_CTRL: return KEY2_CTRL;
215 // case KEY_GRAPH: return KEY2_GRAPH;
216 // case KEY_CAPS: return KEY2_CAPS;
217 // case KEY_CODE: return KEY2_CODE;
218 // case KEY_ESC: return KEY2_ESC;
219 // case KEY_TAB: return KEY2_TAB;
220 // case KEY_STOP: return KEY2_STOP;
221 // case KEY_BS: return KEY2_BS;
222 // case KEY_SELECT: return KEY2_SELECT;
223 // case KEY_RET: return KEY2_RET;
224 // case KEY_INS: return KEY2_INS;
225 // case KEY_DEL: return KEY2_DEL;
226 // case KEY_DIVISION: return KEY2_DIVISION;
227 }
228 return KEY_NONE;
229 }
230}
231
232#endif
#define KEY_RIGHT
Definition atari.h:131
#define KEY_A
Definition atari.h:104
#define KEY_NONE
Definition atari.h:51
#define KEY_U
Definition atari.h:60
#define KEY_P
Definition atari.h:59
#define KEY_V
Definition atari.h:65
#define KEY_Q
Definition atari.h:90
#define KEY_DOWN
Definition atari.h:129
#define KEY_4
Definition atari.h:70
#define KEY_C
Definition atari.h:66
#define KEY_N
Definition atari.h:80
#define KEY_I
Definition atari.h:62
#define KEY_2
Definition atari.h:75
#define KEY_MINUS
Definition atari.h:63
#define KEY_6
Definition atari.h:72
#define KEY_0
Definition atari.h:92
#define KEY_PERIOD
Definition atari.h:79
#define KEY_7
Definition atari.h:93
#define KEY_SEMICOMMA
Definition atari.h:54
#define KEY_1
Definition atari.h:76
#define KEY_J
Definition atari.h:53
#define KEY_L
Definition atari.h:52
#define KEY_COLON
Definition atari.h:115
#define KEY_COMMA
Definition atari.h:77
#define KEY_S
Definition atari.h:103
#define KEY_3
Definition atari.h:71
#define KEY_E
Definition atari.h:85
#define KEY_Z
Definition atari.h:69
#define KEY_X
Definition atari.h:68
#define KEY_5
Definition atari.h:74
#define KEY_SPACE
Definition atari.h:78
#define KEY_K
Definition atari.h:55
#define KEY_R
Definition atari.h:84
#define KEY_G
Definition atari.h:102
#define KEY_H
Definition atari.h:99
#define KEY_F
Definition atari.h:98
#define KEY_D
Definition atari.h:100
#define KEY_8
Definition atari.h:95
#define KEY_B
Definition atari.h:67
#define KEY_Y
Definition atari.h:86
#define KEY_T
Definition atari.h:88
#define KEY_O
Definition atari.h:58
#define KEY_M
Definition atari.h:81
#define KEY_9
Definition atari.h:91
#define KEY_LEFT
Definition atari.h:130
#define KEY_UP
Definition atari.h:128
#define KEY_W
Definition atari.h:89
int key_constant(Environment *_environment, int _key)
#define KEY2_O
Definition pc128op.h:172
#define KEY2_S
Definition pc128op.h:181
#define KEY2_9
Definition pc128op.h:144
#define KEY2_1
Definition pc128op.h:136
#define KEY2_MINUS
Definition pc128op.h:170
#define KEY2_COMMA
Definition pc128op.h:152
#define KEY2_U
Definition pc128op.h:186
#define KEY2_Q
Definition pc128op.h:176
#define KEY2_7
Definition pc128op.h:142
#define KEY2_A
Definition pc128op.h:145
#define KEY2_0
Definition pc128op.h:135
#define KEY2_W
Definition pc128op.h:190
#define KEY2_P
Definition pc128op.h:173
#define KEY2_I
Definition pc128op.h:162
#define KEY2_N
Definition pc128op.h:171
#define KEY2_X
Definition pc128op.h:191
#define KEY2_RIGHT
Definition pc128op.h:179
#define KEY2_2
Definition pc128op.h:137
#define KEY2_8
Definition pc128op.h:143
#define KEY2_R
Definition pc128op.h:177
#define KEY2_6
Definition pc128op.h:141
#define KEY2_PERIOD
Definition pc128op.h:174
#define KEY2_L
Definition pc128op.h:166
#define KEY2_DOWN
Definition pc128op.h:156
#define KEY2_F
Definition pc128op.h:158
#define KEY2_UP
Definition pc128op.h:187
#define KEY2_B
Definition pc128op.h:148
#define KEY2_Z
Definition pc128op.h:193
#define KEY2_LEFT
Definition pc128op.h:167
#define KEY2_Y
Definition pc128op.h:192
#define KEY2_4
Definition pc128op.h:139
#define KEY2_V
Definition pc128op.h:189
#define KEY2_C
Definition pc128op.h:149
#define KEY2_COLON
Definition pc128op.h:151
#define KEY2_T
Definition pc128op.h:185
#define KEY2_5
Definition pc128op.h:140
#define KEY2_SEMICOMMA
Definition pc128op.h:197
#define KEY2_H
Definition pc128op.h:160
#define KEY2_M
Definition pc128op.h:169
#define KEY2_K
Definition pc128op.h:165
#define KEY2_G
Definition pc128op.h:159
#define KEY2_E
Definition pc128op.h:157
#define KEY2_3
Definition pc128op.h:138
#define KEY2_D
Definition pc128op.h:154
#define KEY2_SPACE
Definition pc128op.h:184
#define KEY2_J
Definition pc128op.h:164
KeyboardConfig keyboardConfig
Definition ugbc.h:2435
struct _Environment Environment
Structure of compilation environment.