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
44
int
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
141
int
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
KEY_RIGHT
#define KEY_RIGHT
Definition
atari.h:131
KEY_A
#define KEY_A
Definition
atari.h:104
KEY_NONE
#define KEY_NONE
Definition
atari.h:51
KEY_U
#define KEY_U
Definition
atari.h:60
KEY_P
#define KEY_P
Definition
atari.h:59
KEY_V
#define KEY_V
Definition
atari.h:65
KEY_Q
#define KEY_Q
Definition
atari.h:90
KEY_DOWN
#define KEY_DOWN
Definition
atari.h:129
KEY_4
#define KEY_4
Definition
atari.h:70
KEY_C
#define KEY_C
Definition
atari.h:66
KEY_N
#define KEY_N
Definition
atari.h:80
KEY_I
#define KEY_I
Definition
atari.h:62
KEY_2
#define KEY_2
Definition
atari.h:75
KEY_MINUS
#define KEY_MINUS
Definition
atari.h:63
KEY_6
#define KEY_6
Definition
atari.h:72
KEY_0
#define KEY_0
Definition
atari.h:92
KEY_PERIOD
#define KEY_PERIOD
Definition
atari.h:79
KEY_7
#define KEY_7
Definition
atari.h:93
KEY_SEMICOMMA
#define KEY_SEMICOMMA
Definition
atari.h:54
KEY_1
#define KEY_1
Definition
atari.h:76
KEY_J
#define KEY_J
Definition
atari.h:53
KEY_L
#define KEY_L
Definition
atari.h:52
KEY_COLON
#define KEY_COLON
Definition
atari.h:115
KEY_COMMA
#define KEY_COMMA
Definition
atari.h:77
KEY_S
#define KEY_S
Definition
atari.h:103
KEY_3
#define KEY_3
Definition
atari.h:71
KEY_E
#define KEY_E
Definition
atari.h:85
KEY_Z
#define KEY_Z
Definition
atari.h:69
KEY_X
#define KEY_X
Definition
atari.h:68
KEY_5
#define KEY_5
Definition
atari.h:74
KEY_SPACE
#define KEY_SPACE
Definition
atari.h:78
KEY_K
#define KEY_K
Definition
atari.h:55
KEY_R
#define KEY_R
Definition
atari.h:84
KEY_G
#define KEY_G
Definition
atari.h:102
KEY_H
#define KEY_H
Definition
atari.h:99
KEY_F
#define KEY_F
Definition
atari.h:98
KEY_D
#define KEY_D
Definition
atari.h:100
KEY_8
#define KEY_8
Definition
atari.h:95
KEY_B
#define KEY_B
Definition
atari.h:67
KEY_Y
#define KEY_Y
Definition
atari.h:86
KEY_T
#define KEY_T
Definition
atari.h:88
KEY_O
#define KEY_O
Definition
atari.h:58
KEY_M
#define KEY_M
Definition
atari.h:81
KEY_9
#define KEY_9
Definition
atari.h:91
KEY_LEFT
#define KEY_LEFT
Definition
atari.h:130
KEY_UP
#define KEY_UP
Definition
atari.h:128
KEY_W
#define KEY_W
Definition
atari.h:89
key_constant
int key_constant(Environment *_environment, int _key)
Definition
key_constant.c:51
KEY2_O
#define KEY2_O
Definition
pc128op.h:172
KEY2_S
#define KEY2_S
Definition
pc128op.h:181
KEY2_9
#define KEY2_9
Definition
pc128op.h:144
KEY2_1
#define KEY2_1
Definition
pc128op.h:136
KEY2_MINUS
#define KEY2_MINUS
Definition
pc128op.h:170
KEY2_COMMA
#define KEY2_COMMA
Definition
pc128op.h:152
KEY2_U
#define KEY2_U
Definition
pc128op.h:186
KEY2_Q
#define KEY2_Q
Definition
pc128op.h:176
KEY2_7
#define KEY2_7
Definition
pc128op.h:142
KEY2_A
#define KEY2_A
Definition
pc128op.h:145
KEY2_0
#define KEY2_0
Definition
pc128op.h:135
KEY2_W
#define KEY2_W
Definition
pc128op.h:190
KEY2_P
#define KEY2_P
Definition
pc128op.h:173
KEY2_I
#define KEY2_I
Definition
pc128op.h:162
KEY2_N
#define KEY2_N
Definition
pc128op.h:171
KEY2_X
#define KEY2_X
Definition
pc128op.h:191
KEY2_RIGHT
#define KEY2_RIGHT
Definition
pc128op.h:179
KEY2_2
#define KEY2_2
Definition
pc128op.h:137
KEY2_8
#define KEY2_8
Definition
pc128op.h:143
KEY2_R
#define KEY2_R
Definition
pc128op.h:177
KEY2_6
#define KEY2_6
Definition
pc128op.h:141
KEY2_PERIOD
#define KEY2_PERIOD
Definition
pc128op.h:174
KEY2_L
#define KEY2_L
Definition
pc128op.h:166
KEY2_DOWN
#define KEY2_DOWN
Definition
pc128op.h:156
KEY2_F
#define KEY2_F
Definition
pc128op.h:158
KEY2_UP
#define KEY2_UP
Definition
pc128op.h:187
KEY2_B
#define KEY2_B
Definition
pc128op.h:148
KEY2_Z
#define KEY2_Z
Definition
pc128op.h:193
KEY2_LEFT
#define KEY2_LEFT
Definition
pc128op.h:167
KEY2_Y
#define KEY2_Y
Definition
pc128op.h:192
KEY2_4
#define KEY2_4
Definition
pc128op.h:139
KEY2_V
#define KEY2_V
Definition
pc128op.h:189
KEY2_C
#define KEY2_C
Definition
pc128op.h:149
KEY2_COLON
#define KEY2_COLON
Definition
pc128op.h:151
KEY2_T
#define KEY2_T
Definition
pc128op.h:185
KEY2_5
#define KEY2_5
Definition
pc128op.h:140
KEY2_SEMICOMMA
#define KEY2_SEMICOMMA
Definition
pc128op.h:197
KEY2_H
#define KEY2_H
Definition
pc128op.h:160
KEY2_M
#define KEY2_M
Definition
pc128op.h:169
KEY2_K
#define KEY2_K
Definition
pc128op.h:165
KEY2_G
#define KEY2_G
Definition
pc128op.h:159
KEY2_E
#define KEY2_E
Definition
pc128op.h:157
KEY2_3
#define KEY2_3
Definition
pc128op.h:138
KEY2_D
#define KEY2_D
Definition
pc128op.h:154
KEY2_SPACE
#define KEY2_SPACE
Definition
pc128op.h:184
KEY2_J
#define KEY2_J
Definition
pc128op.h:164
_Environment::keyboardConfig
KeyboardConfig keyboardConfig
Definition
ugbc.h:2435
_KeyboardConfig::sync
char sync
Definition
ugbc.h:1989
ugbc.h
Environment
struct _Environment Environment
Structure of compilation environment.
Z:
ugbasic
ugbc
src
targets
common
pia
key_constant.c
Generated by
1.16.1