|
| 1 | +// -------------------------------------------------- |
| 2 | +// Library: a8defines.h |
| 3 | +// Desc...: Atari 8 Bit Library Definitions |
| 4 | +// Author.: Wade Ripkowski |
| 5 | +// Date...: 2022.08 |
| 6 | +// License: GNU General Public License v3.0 |
| 7 | +// Note...: Requires: a8defwin.c |
| 8 | +// -Converted from Action! |
| 9 | +// Revised: 2023.08-Added SIO and FujiNet |
| 10 | +// -------------------------------------------------- |
| 11 | + |
| 12 | +#ifndef A8DEFINES_H |
| 13 | +#define A8DEFINES_H |
| 14 | + |
| 15 | +// Version |
| 16 | +#define LIB_VERSION "1.4.3" |
| 17 | + |
| 18 | +// True & False |
| 19 | +#ifndef TRUE |
| 20 | +#define TRUE 0x01 |
| 21 | +#endif |
| 22 | +#ifndef FALSE |
| 23 | +#define FALSE 0x00 |
| 24 | +#endif |
| 25 | + |
| 26 | +// Type shortcuts |
| 27 | +typedef unsigned char byte; // 8 bits / 1 BYTE |
| 28 | +typedef unsigned int word; // 16 bits / 2 BYTEs |
| 29 | + |
| 30 | +// Window Record and Memory Alloc |
| 31 | +#define WRECSZ 10 |
| 32 | +#define WBUFSZ 2068 |
| 33 | + |
| 34 | +// Window flags |
| 35 | +#define WON 1 |
| 36 | +#define WOFF 0 |
| 37 | + |
| 38 | +// Window Positioning |
| 39 | +#define WPABS 128 |
| 40 | +#define WPTOP 241 |
| 41 | +#define WPBOT 242 |
| 42 | +#define WPLFT 251 |
| 43 | +#define WPRGT 252 |
| 44 | +#define WPCNT 255 |
| 45 | + |
| 46 | +// Window Error status |
| 47 | +#define WENONE 100 |
| 48 | +#define WENOPN 101 |
| 49 | +#define WEUSED 102 |
| 50 | + |
| 51 | +// Gadget flags |
| 52 | +#define GDISP 0 |
| 53 | +#define GEDIT 1 |
| 54 | +#define GHORZ 1 |
| 55 | +#define GVERT 2 |
| 56 | +#define GCON 1 |
| 57 | +#define GCOFF 2 |
| 58 | +#define GANY 0 |
| 59 | +#define GALNUM 1 |
| 60 | +#define GALPHA 2 |
| 61 | +#define GNUMER 3 |
| 62 | +#define GUPPER 4 |
| 63 | + |
| 64 | +// Menu Exits |
| 65 | +#define XESC 253 |
| 66 | +#define XTAB 254 |
| 67 | +#define XNONE 255 |
| 68 | + |
| 69 | +// Colors |
| 70 | +#define CBLACK 0 |
| 71 | +#define CWHITE 14 |
| 72 | +#define CRED 50 |
| 73 | +#define CBLUE 146 |
| 74 | +#define CGREEN 210 |
| 75 | +#define CYELLOW 222 |
| 76 | + |
| 77 | +// Keystroke Values |
| 78 | +#define KNOMAP 199 |
| 79 | +#define KNONE 255 |
| 80 | +#define KENTER 12 |
| 81 | +#define KDEL 52 |
| 82 | +#define KDEL_S 116 |
| 83 | +#define KDEL_C 180 |
| 84 | +#define KINS 183 |
| 85 | +#define KPLUS 6 |
| 86 | +#define KASTER 7 |
| 87 | +#define KMINUS 14 |
| 88 | +#define KEQUAL 15 |
| 89 | +#define KESC 28 |
| 90 | +#define KSPACE 33 |
| 91 | +#define KINV 39 |
| 92 | +#define KTAB 44 |
| 93 | +#define KTAB_S 108 |
| 94 | +#define KCAP 60 |
| 95 | +#define KLEFT 134 |
| 96 | +#define KRIGHT 135 |
| 97 | +#define KUP 142 |
| 98 | +#define KDOWN 143 |
| 99 | +#define KEYA 63 |
| 100 | +#define KEYB 21 |
| 101 | +#define KEYC 18 |
| 102 | +#define KEYD 58 |
| 103 | +#define KEYE 42 |
| 104 | +#define KEYF 56 |
| 105 | +#define KEYG 61 |
| 106 | +#define KEYH 57 |
| 107 | +#define KEYI 13 |
| 108 | +#define KEYJ 1 |
| 109 | +#define KEYK 5 |
| 110 | +#define KEYL 0 |
| 111 | +#define KEYM 37 |
| 112 | +#define KEYN 35 |
| 113 | +#define KEYO 8 |
| 114 | +#define KEYP 10 |
| 115 | +#define KEYQ 47 |
| 116 | +#define KEYR 40 |
| 117 | +#define KEYS 62 |
| 118 | +#define KEYT 45 |
| 119 | +#define KEYU 11 |
| 120 | +#define KEYV 16 |
| 121 | +#define KEYW 46 |
| 122 | +#define KEYX 22 |
| 123 | +#define KEYY 43 |
| 124 | +#define KEYZ 23 |
| 125 | + |
| 126 | +#define KB_C 149 |
| 127 | +#define KE_C 170 |
| 128 | +#define KX 22 |
| 129 | +#define KX_S 86 |
| 130 | +#define KE_CS 234 |
| 131 | +#define KS_CS 254 |
| 132 | + |
| 133 | +// Console key value |
| 134 | +//#define CSTART 6 |
| 135 | +#define KCNON 7 |
| 136 | +#define KCSTA 262 |
| 137 | +#define KCSEL 261 |
| 138 | +#define KCOPT 259 |
| 139 | + |
| 140 | +// Function Key Values |
| 141 | +#define KFHLP 17 |
| 142 | +#define KF1 3 |
| 143 | +#define KF2 4 |
| 144 | +#define KF3 19 |
| 145 | +#define KF4 20 |
| 146 | + |
| 147 | +// Character Codes |
| 148 | +#define CHSDRGT 1 |
| 149 | +#define CHBTRGT 3 |
| 150 | +#define CHSDLFT 4 |
| 151 | +#define CHTPRGT 5 |
| 152 | +#define CHTPLFT 17 |
| 153 | +#define CHBTLFT 26 |
| 154 | +#define CHHBAR 18 |
| 155 | +#define CHVBAR 124 |
| 156 | +#define CHBALL 20 |
| 157 | +#define CHESC 27 |
| 158 | +#define CHUP 28 |
| 159 | +#define CHDN 29 |
| 160 | +#define CHLFT 30 |
| 161 | +#define CHRGT 31 |
| 162 | +#define CHSPACE 32 |
| 163 | +#define CHDMND 96 |
| 164 | +#define CHCLS 125 |
| 165 | +#define CHBACK 126 |
| 166 | +#define CHTAB 127 |
| 167 | +#define CHENT 155 |
| 168 | +#define CHDELLN 156 |
| 169 | +#define CHINVSP 160 |
| 170 | +#define CHBUZ 253 |
| 171 | +#define CHRGT_I 159 |
| 172 | +#define CHO_L 111 |
| 173 | +#define CHI_I 201 |
| 174 | + |
| 175 | +// DCB (Device Control Block) modes |
| 176 | +#define DCBNONE 0x00 |
| 177 | +#define DCBREAD 0x40 |
| 178 | +#define DCBWRITE 0x80 |
| 179 | +#define DCBRW 0xC0 |
| 180 | + |
| 181 | +// ----- OS Registers for PEEK (lib dependencies) ----- |
| 182 | +#define ALMARG 82 |
| 183 | +#define RSCRN 88 |
| 184 | +#define INVFLG 694 |
| 185 | +#define SHFLOK 702 |
| 186 | +#define HELPFG 732 |
| 187 | +#define ACURIN 752 |
| 188 | +#define KEYPCH 764 |
| 189 | +#define CONSOL 53279U |
| 190 | + |
| 191 | +// ----- OS Registers ----- |
| 192 | +#define APPMHI *((word *) 0x000E) |
| 193 | +#define RTCLOK *((byte *) 0x0012) |
| 194 | +#define RTC2 *((byte *) 0x0013) |
| 195 | +#define RTC3 *((byte *) 0x0014) |
| 196 | +#define ATRACT *((byte *) 0x004D) |
| 197 | +#define SAVMSC *((word *) 0x0058) |
| 198 | +#define RAMTOP *((byte *) 0x006A) |
| 199 | +#define FR0 *((word *) 0x00D4) |
| 200 | +#define SDMCTL *((byte *) 0x022F) |
| 201 | +#define SDLSTL *((word *) 0x0230) |
| 202 | +#define GPRIOR *((byte *) 0x026F) |
| 203 | +#define STICK0 *((byte *) 0x0278) |
| 204 | +#define STRIG0 *((byte *) 0x0284) |
| 205 | +#define COLOR0 *((byte *) 0x02C4) |
| 206 | +#define COLOR1 *((byte *) 0x02C5) |
| 207 | +#define COLOR2 *((byte *) 0x02C6) |
| 208 | +#define COLOR3 *((byte *) 0x02C7) |
| 209 | +#define COLBK *((byte *) 0x02C8) |
| 210 | +#define RAMSIZ *((byte *) 0x02E4) |
| 211 | +#define MEMTOP *((byte *) 0x02E5) |
| 212 | +#define CHBAS *((word *) 0x02F4) |
| 213 | +#define HPOSP0 *((byte *) 0xD000) |
| 214 | +#define HPOSP1 *((byte *) 0xD001) |
| 215 | +#define HPOSP2 *((byte *) 0xD002) |
| 216 | +#define HPOSP3 *((byte *) 0xD003) |
| 217 | +#define HPOSM0 *((byte *) 0xD004) |
| 218 | +#define HPOSM1 *((byte *) 0xD005) |
| 219 | +#define HPOSM2 *((byte *) 0xD006) |
| 220 | +#define HPOSM3 *((byte *) 0xD007) |
| 221 | +#define SIZEP0 *((byte *) 0xD008) |
| 222 | +#define SIZEP1 *((byte *) 0xD009) |
| 223 | +#define SIZEP2 *((byte *) 0xD00A) |
| 224 | +#define SIZEP3 *((byte *) 0xD00B) |
| 225 | +#define SIZEM *((byte *) 0xD00C) |
| 226 | +#define GRAFP0 *((byte *) 0xD00D) |
| 227 | +#define GRAFP1 *((byte *) 0xD00E) |
| 228 | +#define GRAFP2 *((byte *) 0xD00F) |
| 229 | +#define GRAFP3 *((byte *) 0xD010) |
| 230 | +#define GRAFM *((byte *) 0xD011) |
| 231 | +#define PCOLR0 *((byte *) 0xD012) |
| 232 | +#define PCOLR1 *((byte *) 0xD013) |
| 233 | +#define PCOLR2 *((byte *) 0xD014) |
| 234 | +#define PCOLR3 *((byte *) 0xD015) |
| 235 | +#define GRACTL *((byte *) 0xD01D) |
| 236 | +#define HITCLR *((byte *) 0xD01E) |
| 237 | +#define RANDOM *((byte *) 0xD20A) |
| 238 | +#define DMACTL *((byte *) 0xD400) |
| 239 | +#define DLISTL *((word *) 0xD402) |
| 240 | +#define PMBASE *((word *) 0xD407) |
| 241 | +#define WSYNC *((byte *) 0xD40A) |
| 242 | +#define VCOUNT *((byte *) 0xD40B) |
| 243 | +#define NMIEN *((byte *) 0xD40E) |
| 244 | + |
| 245 | +#endif |
0 commit comments