1 /* 2 * javanvm/javanvm.h - NestedVM-specific port code - C<->Java interface 3 * 4 * Copyright (c) 2001-2002 Jacek Poplawski (original atari_sdl.c) 5 * Copyright (c) 2007-2008 Perry McFarlane (javanvm port) 6 * Copyright (C) 2001-2013 Atari800 development team (see DOC/CREDITS) 7 * 8 * This file is part of the Atari800 emulator project which emulates 9 * the Atari 400, 800, 800XL, 130XE, and 5200 8-bit computers. 10 11 * Atari800 is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 2 of the License, or 14 * (at your option) any later version. 15 16 * Atari800 is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 21 * You should have received a copy of the GNU General Public License along 22 * with Atari800; if not, write to the Free Software Foundation, Inc., 23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 24 */ 25 26 #ifndef JAVANVM_H_ 27 #define JAVANVM_H_ 28 29 extern int _call_java(int a, int b, int c, int d); 30 31 enum { 32 JAVANVM_FUN_DisplayScreen = 1, 33 JAVANVM_FUN_InitPalette = 2, 34 JAVANVM_FUN_Kbhits = 3, 35 JAVANVM_FUN_PollKeyEvent = 4, 36 JAVANVM_FUN_GetWindowClosed = 5, 37 JAVANVM_FUN_Sleep = 6, 38 JAVANVM_FUN_InitGraphics = 7, 39 JAVANVM_FUN_InitSound = 8, 40 JAVANVM_FUN_SoundExit = 9, 41 JAVANVM_FUN_SoundAvailable = 10, 42 JAVANVM_FUN_SoundWrite = 11, 43 JAVANVM_FUN_SoundPause = 12, 44 JAVANVM_FUN_SoundContinue = 13, 45 JAVANVM_FUN_CheckThreadStatus = 14 46 }; 47 48 /* These constants are for use with arrays passed to and from the NestedVM runtime */ 49 enum { 50 JAVANVM_KeyEventType = 0, 51 JAVANVM_KeyEventKeyCode = 1, 52 JAVANVM_KeyEventKeyChar = 2, 53 JAVANVM_KeyEventKeyLocation = 3, 54 JAVANVM_KeyEventSIZE = 4 55 }; 56 enum { 57 JAVANVM_InitGraphicsScalew = 0, 58 JAVANVM_InitGraphicsScaleh = 1, 59 JAVANVM_InitGraphicsScreen_WIDTH = 2, 60 JAVANVM_InitGraphicsScreen_HEIGHT = 3, 61 JAVANVM_InitGraphicsATARI_VISIBLE_WIDTH = 4, 62 JAVANVM_InitGraphicsATARI_LEFT_MARGIN = 5, 63 JAVANVM_InitGraphicsSIZE = 6 64 }; 65 enum { 66 JAVANVM_InitSoundSampleRate = 0, 67 JAVANVM_InitSoundBitsPerSample = 1, 68 JAVANVM_InitSoundChannels = 2, 69 JAVANVM_InitSoundSigned = 3, 70 JAVANVM_InitSoundBigEndian = 4, 71 JAVANVM_InitSoundBufferSize = 5, 72 JAVANVM_InitSoundSIZE = 6 73 }; 74 75 /* Java Keys */ 76 enum { 77 CHAR_UNDEFINED = 65535, 78 KEY_FIRST = 400, 79 KEY_LAST = 402, 80 KEY_LOCATION_LEFT = 2, 81 KEY_LOCATION_NUMPAD = 4, 82 KEY_LOCATION_RIGHT = 3, 83 KEY_LOCATION_STANDARD = 1, 84 KEY_LOCATION_UNKNOWN = 0, 85 KEY_PRESSED = 401, 86 KEY_RELEASED = 402, 87 KEY_TYPED = 400, 88 VK_0 = 48, 89 VK_1 = 49, 90 VK_2 = 50, 91 VK_3 = 51, 92 VK_4 = 52, 93 VK_5 = 53, 94 VK_6 = 54, 95 VK_7 = 55, 96 VK_8 = 56, 97 VK_9 = 57, 98 VK_A = 65, 99 VK_ACCEPT = 30, 100 VK_ADD = 107, 101 VK_AGAIN = 65481, 102 VK_ALL_CANDIDATES = 256, 103 VK_ALPHANUMERIC = 240, 104 VK_ALT = 18, 105 VK_ALT_GRAPH = 65406, 106 VK_AMPERSAND = 150, 107 VK_ASTERISK = 151, 108 VK_AT = 512, 109 VK_B = 66, 110 VK_BACK_QUOTE = 192, 111 VK_BACK_SLASH = 92, 112 VK_BACK_SPACE = 8, 113 VK_BRACELEFT = 161, 114 VK_BRACERIGHT = 162, 115 VK_C = 67, 116 VK_CANCEL = 3, 117 VK_CAPS_LOCK = 20, 118 VK_CIRCUMFLEX = 514, 119 VK_CLEAR = 12, 120 VK_CLOSE_BRACKET = 93, 121 VK_CODE_INPUT = 258, 122 VK_COLON = 513, 123 VK_COMMA = 44, 124 VK_COMPOSE = 65312, 125 VK_CONTROL = 17, 126 VK_CONVERT = 28, 127 VK_COPY = 65485, 128 VK_CUT = 65489, 129 VK_D = 68, 130 VK_DEAD_ABOVEDOT = 134, 131 VK_DEAD_ABOVERING = 136, 132 VK_DEAD_ACUTE = 129, 133 VK_DEAD_BREVE = 133, 134 VK_DEAD_CARON = 138, 135 VK_DEAD_CEDILLA = 139, 136 VK_DEAD_CIRCUMFLEX = 130, 137 VK_DEAD_DIAERESIS = 135, 138 VK_DEAD_DOUBLEACUTE = 137, 139 VK_DEAD_GRAVE = 128, 140 VK_DEAD_IOTA = 141, 141 VK_DEAD_MACRON = 132, 142 VK_DEAD_OGONEK = 140, 143 VK_DEAD_SEMIVOICED_SOUND = 143, 144 VK_DEAD_TILDE = 131, 145 VK_DEAD_VOICED_SOUND = 142, 146 VK_DECIMAL = 110, 147 VK_DELETE = 127, 148 VK_DIVIDE = 111, 149 VK_DOLLAR = 515, 150 VK_DOWN = 40, 151 VK_E = 69, 152 VK_END = 35, 153 VK_ENTER = 10, 154 VK_EQUALS = 61, 155 VK_ESCAPE = 27, 156 VK_EURO_SIGN = 516, 157 VK_EXCLAMATION_MARK = 517, 158 VK_F = 70, 159 VK_F1 = 112, 160 VK_F10 = 121, 161 VK_F11 = 122, 162 VK_F12 = 123, 163 VK_F13 = 61440, 164 VK_F14 = 61441, 165 VK_F15 = 61442, 166 VK_F16 = 61443, 167 VK_F17 = 61444, 168 VK_F18 = 61445, 169 VK_F19 = 61446, 170 VK_F2 = 113, 171 VK_F20 = 61447, 172 VK_F21 = 61448, 173 VK_F22 = 61449, 174 VK_F23 = 61450, 175 VK_F24 = 61451, 176 VK_F3 = 114, 177 VK_F4 = 115, 178 VK_F5 = 116, 179 VK_F6 = 117, 180 VK_F7 = 118, 181 VK_F8 = 119, 182 VK_F9 = 120, 183 VK_FINAL = 24, 184 VK_FIND = 65488, 185 VK_FULL_WIDTH = 243, 186 VK_G = 71, 187 VK_GREATER = 160, 188 VK_H = 72, 189 VK_HALF_WIDTH = 244, 190 VK_HELP = 156, 191 VK_HIRAGANA = 242, 192 VK_HOME = 36, 193 VK_I = 73, 194 VK_INPUT_METHOD_ON_OFF = 263, 195 VK_INSERT = 155, 196 VK_INVERTED_EXCLAMATION_MARK = 518, 197 VK_J = 74, 198 VK_JAPANESE_HIRAGANA = 260, 199 VK_JAPANESE_KATAKANA = 259, 200 VK_JAPANESE_ROMAN = 261, 201 VK_K = 75, 202 VK_KANA = 21, 203 VK_KANA_LOCK = 262, 204 VK_KANJI = 25, 205 VK_KATAKANA = 241, 206 VK_KP_DOWN = 225, 207 VK_KP_LEFT = 226, 208 VK_KP_RIGHT = 227, 209 VK_KP_UP = 224, 210 VK_L = 76, 211 VK_LEFT = 37, 212 VK_LEFT_PARENTHESIS = 519, 213 VK_LESS = 153, 214 VK_M = 77, 215 VK_META = 157, 216 VK_MINUS = 45, 217 VK_MODECHANGE = 31, 218 VK_MULTIPLY = 106, 219 VK_N = 78, 220 VK_NONCONVERT = 29, 221 VK_NUM_LOCK = 144, 222 VK_NUMBER_SIGN = 520, 223 VK_NUMPAD0 = 96, 224 VK_NUMPAD1 = 97, 225 VK_NUMPAD2 = 98, 226 VK_NUMPAD3 = 99, 227 VK_NUMPAD4 = 100, 228 VK_NUMPAD5 = 101, 229 VK_NUMPAD6 = 102, 230 VK_NUMPAD7 = 103, 231 VK_NUMPAD8 = 104, 232 VK_NUMPAD9 = 105, 233 VK_O = 79, 234 VK_OPEN_BRACKET = 91, 235 VK_P = 80, 236 VK_PAGE_DOWN = 34, 237 VK_PAGE_UP = 33, 238 VK_PASTE = 65487, 239 VK_PAUSE = 19, 240 VK_PERIOD = 46, 241 VK_PLUS = 521, 242 VK_PREVIOUS_CANDIDATE = 257, 243 VK_PRINTSCREEN = 154, 244 VK_PROPS = 65482, 245 VK_Q = 81, 246 VK_QUOTE = 222, 247 VK_QUOTEDBL = 152, 248 VK_R = 82, 249 VK_RIGHT = 39, 250 VK_RIGHT_PARENTHESIS = 522, 251 VK_ROMAN_CHARACTERS = 245, 252 VK_S = 83, 253 VK_SCROLL_LOCK = 145, 254 VK_SEMICOLON = 59, 255 VK_SEPARATER = 108, 256 VK_SEPARATOR = 108, 257 VK_SHIFT = 16, 258 VK_SLASH = 47, 259 VK_SPACE = 32, 260 VK_STOP = 65480, 261 VK_SUBTRACT = 109, 262 VK_T = 84, 263 VK_TAB = 9, 264 VK_U = 85, 265 VK_UNDEFINED = 0, 266 VK_UNDERSCORE = 523, 267 VK_UNDO = 65483, 268 VK_UP = 38, 269 VK_V = 86, 270 VK_W = 87, 271 VK_X = 88, 272 VK_Y = 89, 273 VK_Z = 90 274 }; 275 276 #endif /* JAVANVM_H_ */ 277