Skip to content

Commit ced4ebe

Browse files
Merge pull request #8 from Ripjetski6502/v151
V150
2 parents ddba133 + 932e3d9 commit ced4ebe

File tree

9 files changed

+928
-107
lines changed

9 files changed

+928
-107
lines changed

A8CLibReference_150.pdf

7.59 MB
Binary file not shown.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ Version 1.46 brings A8LibDOS, which includes the function SDGDate(). SDGDate()
3333

3434
Version 1.47 brings IsSD() to A8LibDOS, which detects and returns if SpartaDOS is present or not.
3535

36+
Version 1.50 brings RAW2INT() to A8LibMisc, which converts raw key codes to internal key codes. Added GConf() to A8LibGadg which presents a confirmation prompt and asks for Yes/No. Added GAlertM() and deprecated GAlert() in A8LibGadg. GAlertM() allows setting a severity warning as the alert window title, which allows for longer messages. GAlert() is still supported through precompiler translation. Added StrTrm() to A8LibStr which trims trailing space from a string. Fixed a bug in Menu() which allowed console keys to function as navigation keys.
37+
3638
License: GNU General Public License v3.0
3739

3840
See the LICENSE file for full license information.

src/a8defines.h

Lines changed: 238 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,17 @@
99
// Revised: 2023.08-Added SIO and FujiNet
1010
// 2024.02-Added GUPPER
1111
// 2024.02-Added GFNAME
12+
// 2025.01-Added GCYES/GCNO
13+
// -Added Character Control Key ATASCII codes
14+
// -Added GAlertM types
15+
// -Added many XL/XE memory locaation codes
1216
// --------------------------------------------------
1317

1418
#ifndef A8DEFINES_H
1519
#define A8DEFINES_H
1620

1721
// Version
18-
#define LIB_VERSION "1.4.7"
22+
#define LIB_VERSION "1.5.0"
1923

2024
// True & False
2125
#ifndef TRUE
@@ -51,19 +55,25 @@ typedef unsigned int word; // 16 bits / 2 BYTEs
5155
#define WEUSED 102
5256

5357
// Gadget flags
54-
#define GDISP 0
55-
#define GEDIT 1
56-
#define GHORZ 1
57-
#define GVERT 2
58-
#define GCON 1
59-
#define GCOFF 2
60-
#define GANY 0
61-
#define GALNUM 1
62-
#define GALPHA 2
63-
#define GNUMER 3
64-
#define GUPPER 4
65-
#define GLOWER 5
66-
#define GFNAME 6
58+
#define GDISP 0
59+
#define GEDIT 1
60+
#define GHORZ 1
61+
#define GVERT 2
62+
#define GCON 1
63+
#define GCOFF 2
64+
#define GANY 0
65+
#define GALNUM 1
66+
#define GALPHA 2
67+
#define GNUMER 3
68+
#define GUPPER 4
69+
#define GLOWER 5
70+
#define GFNAME 6
71+
#define GCYES 1
72+
#define GCNO 2
73+
#define GAALERT 0
74+
#define GAINFO 1
75+
#define GAWARN 2
76+
#define GAERR 3
6777

6878
// Menu Exits
6979
#define XESC 253
@@ -79,60 +89,182 @@ typedef unsigned int word; // 16 bits / 2 BYTEs
7989
#define CYELLOW 222
8090

8191
// Keystroke Values
82-
#define KNOMAP 199
83-
#define KNONE 255
84-
#define KENTER 12
85-
#define KDEL 52
86-
#define KDEL_S 116
87-
#define KDEL_C 180
88-
#define KINS 183
89-
#define KPLUS 6
90-
#define KASTER 7
91-
#define KMINUS 14
92-
#define KEQUAL 15
93-
#define KESC 28
94-
#define KSPACE 33
95-
#define KINV 39
96-
#define KTAB 44
97-
#define KTAB_S 108
98-
#define KCAP 60
99-
#define KLEFT 134
100-
#define KRIGHT 135
101-
#define KUP 142
102-
#define KDOWN 143
103-
#define KEYA 63
104-
#define KEYB 21
105-
#define KEYC 18
106-
#define KEYD 58
107-
#define KEYE 42
108-
#define KEYF 56
109-
#define KEYG 61
110-
#define KEYH 57
111-
#define KEYI 13
112-
#define KEYJ 1
113-
#define KEYK 5
114-
#define KEYL 0
115-
#define KEYM 37
116-
#define KEYN 35
117-
#define KEYO 8
118-
#define KEYP 10
119-
#define KEYQ 47
120-
#define KEYR 40
121-
#define KEYS 62
122-
#define KEYT 45
123-
#define KEYU 11
124-
#define KEYV 16
125-
#define KEYW 46
126-
#define KEYX 22
127-
#define KEYY 43
128-
#define KEYZ 23
129-
130-
#define KB_C 149
131-
#define KE_C 170
132-
#define KX 22
133-
#define KX_S 86
134-
#define KE_CS 234
135-
#define KS_CS 254
92+
#define KNOMAP 199
93+
#define KNONE 255
94+
#define KENTER 12
95+
#define KDEL 52
96+
#define KINS 183
97+
#define KCLEAR 118
98+
#define KPLUS 6
99+
#define KASTER 7
100+
#define KMINUS 14
101+
#define KEQUAL 15
102+
#define KESC 28
103+
#define KSPACE 33
104+
#define KINV 39
105+
#define KTAB 44
106+
#define KCAP 60
107+
#define KLEFT 134
108+
#define KRIGHT 135
109+
#define KUP 142
110+
#define KDOWN 143
111+
#define KEYA 63
112+
#define KEYB 21
113+
#define KEYC 18
114+
#define KEYD 58
115+
#define KEYE 42
116+
#define KEYF 56
117+
#define KEYG 61
118+
#define KEYH 57
119+
#define KEYI 13
120+
#define KEYJ 1
121+
#define KEYK 5
122+
#define KEYL 0
123+
#define KEYM 37
124+
#define KEYN 35
125+
#define KEYO 8
126+
#define KEYP 10
127+
#define KEYQ 47
128+
#define KEYR 40
129+
#define KEYS 62
130+
#define KEYT 45
131+
#define KEYU 11
132+
#define KEYV 16
133+
#define KEYW 46
134+
#define KEYX 22
135+
#define KEYY 43
136+
#define KEYZ 23
137+
#define KEY0 50
138+
#define KEY1 31
139+
#define KEY2 30
140+
#define KEY3 26
141+
#define KEY4 24
142+
#define KEY5 29
143+
#define KEY6 27
144+
#define KEY7 51
145+
#define KEY8 53
146+
#define KEY9 48
147+
148+
// Keystroke Shift combinations
149+
#define KENTER_S 76
150+
#define KESC_S 92
151+
#define KDEL_S 116
152+
#define KINS_S 119
153+
#define KTAB_S 108
154+
#define KEYA_S 127
155+
#define KEYB_S 85
156+
#define KEYC_S 82
157+
#define KEYD_S 122
158+
#define KEYE_S 106
159+
#define KEYF_S 120
160+
#define KEYG_S 125
161+
#define KEYH_S 121
162+
#define KEYI_S 77
163+
#define KEYJ_S 65
164+
#define KEYK_S 69
165+
#define KEYL_S 64
166+
#define KEYM_S 101
167+
#define KEYN_S 99
168+
#define KEYO_S 72
169+
#define KEYP_S 74
170+
#define KEYQ_S 111
171+
#define KEYR_S 104
172+
#define KEYS_S 126
173+
#define KEYT_S 109
174+
#define KEYU_S 75
175+
#define KEYV_S 80
176+
#define KEYW_S 110
177+
#define KEYX_S 86
178+
#define KEYY_S 107
179+
#define KEYZ_S 87
180+
#define KEY0_S 114
181+
#define KEY1_S 95
182+
#define KEY2_S 117
183+
#define KEY3_S 90
184+
#define KEY4_S 88
185+
#define KEY5_S 93
186+
#define KEY6_S 71
187+
#define KEY7_S 91
188+
#define KEY8_S 7
189+
#define KEY9_S 112
190+
191+
// Keystroke Control combinations
192+
#define KENTER_C 140
193+
#define KESC_C 156
194+
#define KDEL_C 180
195+
#define KTAB_C 172
196+
#define KEYA_C 191
197+
#define KEYB_C 149
198+
#define KEYC_C 146
199+
#define KEYD_C 186
200+
#define KEYE_C 170
201+
#define KEYF_C 184
202+
#define KEYG_C 189
203+
#define KEYH_C 185
204+
#define KEYI_C 141
205+
#define KEYJ_C 129
206+
#define KEYK_C 133
207+
#define KEYL_C 128
208+
#define KEYM_C 165
209+
#define KEYN_C 163
210+
#define KEYO_C 136
211+
#define KEYP_C 138
212+
#define KEYQ_C 175
213+
#define KEYR_C 168
214+
#define KEYS_C 190
215+
#define KEYT_C 173
216+
#define KEYU_C 139
217+
#define KEYV_C 144
218+
#define KEYW_C 174
219+
#define KEYX_C 150
220+
#define KEYY_C 171
221+
#define KEYZ_C 151
222+
#define KEY0_C 178
223+
// #define KEY1_C - HARDWARE INTERRUPT
224+
#define KEY2_C 158
225+
#define KEY3_C 154
226+
#define KEY4_C 152
227+
#define KEY5_C 157
228+
#define KEY6_C 155
229+
#define KEY7_C 179
230+
#define KEY8_C 181
231+
#define KEY9_C 176
232+
233+
// Keystroke Control-Shift combinations
234+
#define KENTER_CS 204
235+
#define KESC_CS 220
236+
#define KDEL_CS 244
237+
#define KTAB_CS 236
238+
#define KMINUS_CS 206
239+
#define KPIPE_CS 207
240+
#define KSLASH_CS 230
241+
#define KQUOTE_CS 222
242+
#define KEYD_CS 250
243+
#define KEYE_CS 234
244+
#define KEYF_CS 248
245+
#define KEYG_CS 253
246+
#define KEYH_CS 249
247+
#define KEYI_CS 205
248+
#define KEYM_CS 229
249+
#define KEYN_CS 227
250+
#define KEYO_CS 200
251+
#define KEYP_CS 202
252+
#define KEYQ_CS 239
253+
#define KEYR_CS 232
254+
#define KEYS_CS 254
255+
#define KEYT_CS 237
256+
#define KEYU_CS 203
257+
#define KEYY_CS 235
258+
#define KEY0_CS 242
259+
#define KEY1_CS 223
260+
#define KEY2_CS 222
261+
#define KEY3_CS 218
262+
#define KEY4_CS 216
263+
#define KEY5_CS 221
264+
#define KEY6_CS 219
265+
#define KEY7_CS 243
266+
#define KEY8_CS 245
267+
#define KEY9_CS 240
136268

137269
// Console key value
138270
//#define CSTART 6
@@ -178,6 +310,37 @@ typedef unsigned int word; // 16 bits / 2 BYTEs
178310
#define CHO_L 111
179311
#define CHI_I 201
180312

313+
// Character Control Codes (by key)
314+
#define CHA_C 1
315+
#define CHB_C 2
316+
#define CHC_C 3
317+
#define CHD_C 4
318+
#define CHE_C 5
319+
#define CHF_C 6
320+
#define CHG_C 7
321+
#define CHH_C 8
322+
#define CHI_C 9
323+
#define CHJ_C 10
324+
#define CHK_C 11
325+
#define CHL_C 12
326+
#define CHM_C 13
327+
#define CHN_C 14
328+
#define CHO_C 15
329+
#define CHP_C 16
330+
#define CHQ_C 17
331+
#define CHR_C 18
332+
#define CHS_C 19
333+
#define CHT_C 20
334+
#define CHU_C 21
335+
#define CHV_C 22
336+
#define CHW_C 23
337+
#define CHX_C 24
338+
#define CHY_C 25
339+
#define CHZ_C 26
340+
#define CHCOM_C 0
341+
#define CHDOT_C 96
342+
#define CHSEM_C 123
343+
181344
// DCB (Device Control Block) modes
182345
#define DCBNONE 0x00
183346
#define DCBREAD 0x40
@@ -189,9 +352,16 @@ typedef unsigned int word; // 16 bits / 2 BYTEs
189352
#define RSCRN 88
190353
#define INVFLG 694
191354
#define SHFLOK 702
355+
#define CLRTXT 709
356+
#define CLRBKG 710
357+
#define KRPDEL 729
358+
#define KEYREP 730
359+
#define NOCLIK 731
192360
#define HELPFG 732
193361
#define ACURIN 752
194362
#define KEYPCH 764
363+
#define AUDF1 53760U
364+
#define AUDC1 53761U
195365
#define CONSOL 53279U
196366

197367
// ----- OS Registers -----

0 commit comments

Comments
 (0)