Rev 644 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 220 | chrv | 1 | #include <avr/pgmspace.h> |
| 2 | #include <avr/eeprom.h> |
||
| 3 | |||
| 4 | #include "pins.h" |
||
| 5 | #include "mytypes.h" |
||
| 6 | |||
| 7 | #include "getfaraddress.h" |
||
| 8 | #include "main.h" |
||
| 9 | #include "zx.h" |
||
| 10 | #include "kbmap.h" |
||
| 11 | #include "rs232.h" |
||
| 12 | |||
| 13 | const UBYTE default_kbmap[] PROGMEM = |
||
| 14 | { |
||
| 15 | NO_KEY,NO_KEY, // 00 |
||
| 292 | chrv | 16 | NO_KEY,NO_KEY, // 01 F9 |
| 220 | chrv | 17 | NO_KEY,NO_KEY, // 02 |
| 292 | chrv | 18 | NO_KEY,NO_KEY, // 03 F5 |
| 19 | NO_KEY,NO_KEY, // 04 F3 |
||
| 20 | NO_KEY,NO_KEY, // 05 F1 |
||
| 21 | NO_KEY,NO_KEY, // 06 F2 |
||
| 22 | NO_KEY,NO_KEY, // 07 F12 |
||
| 220 | chrv | 23 | NO_KEY,NO_KEY, // 08 |
| 292 | chrv | 24 | NO_KEY,NO_KEY, // 09 F10 |
| 25 | NO_KEY,NO_KEY, // 0A F8 |
||
| 26 | NO_KEY,NO_KEY, // 0B F6 |
||
| 27 | NO_KEY,NO_KEY, // 0C F4 |
||
| 220 | chrv | 28 | KEY_CS,KEY_SP, // 0D TAB |
| 29 | KEY_CS,KEY_1 , // 0E ~ |
||
| 30 | NO_KEY,NO_KEY, // 0F |
||
| 31 | |||
| 32 | NO_KEY,NO_KEY, // 10 |
||
| 292 | chrv | 33 | NO_KEY,NO_KEY, // 11 ALT |
| 220 | chrv | 34 | KEY_CS,NO_KEY, // 12 LSHIFT |
| 35 | NO_KEY,NO_KEY, // 13 |
||
| 292 | chrv | 36 | NO_KEY,NO_KEY, // 14 LCTRL |
| 220 | chrv | 37 | KEY_Q ,NO_KEY, // 15 Q |
| 38 | KEY_1 ,NO_KEY, // 16 1 |
||
| 39 | NO_KEY,NO_KEY, // 17 |
||
| 40 | NO_KEY,NO_KEY, // 18 |
||
| 41 | NO_KEY,NO_KEY, // 19 |
||
| 42 | KEY_Z ,NO_KEY, // 1A Z |
||
| 43 | KEY_S ,NO_KEY, // 1B S |
||
| 44 | KEY_A ,NO_KEY, // 1C A |
||
| 45 | KEY_W ,NO_KEY, // 1D W |
||
| 46 | KEY_2 ,NO_KEY, // 1E 2 |
||
| 47 | NO_KEY,NO_KEY, // 1F |
||
| 48 | |||
| 49 | NO_KEY,NO_KEY, // 20 |
||
| 50 | KEY_C ,NO_KEY, // 21 C |
||
| 51 | KEY_X ,NO_KEY, // 22 X |
||
| 52 | KEY_D ,NO_KEY, // 23 D |
||
| 53 | KEY_E ,NO_KEY, // 24 E |
||
| 54 | KEY_4 ,NO_KEY, // 25 4 |
||
| 55 | KEY_3 ,NO_KEY, // 26 3 |
||
| 56 | NO_KEY,NO_KEY, // 27 |
||
| 57 | NO_KEY,NO_KEY, // 28 |
||
| 58 | KEY_SP,NO_KEY, // 29 SPACE |
||
| 59 | KEY_V ,NO_KEY, // 2A V |
||
| 60 | KEY_F ,NO_KEY, // 2B F |
||
| 61 | KEY_T ,NO_KEY, // 2C T |
||
| 62 | KEY_R ,NO_KEY, // 2D R |
||
| 63 | KEY_5 ,NO_KEY, // 2E 5 |
||
| 64 | NO_KEY,NO_KEY, // 2F |
||
| 65 | |||
| 66 | NO_KEY,NO_KEY, // 30 |
||
| 67 | KEY_N ,NO_KEY, // 31 N |
||
| 68 | KEY_B ,NO_KEY, // 32 B |
||
| 69 | KEY_H ,NO_KEY, // 33 H |
||
| 70 | KEY_G ,NO_KEY, // 34 G |
||
| 71 | KEY_Y ,NO_KEY, // 35 Y |
||
| 72 | KEY_6 ,NO_KEY, // 36 6 |
||
| 73 | NO_KEY,NO_KEY, // 37 |
||
| 74 | NO_KEY,NO_KEY, // 38 |
||
| 75 | NO_KEY,NO_KEY, // 39 |
||
| 76 | KEY_M ,NO_KEY, // 3A M |
||
| 77 | KEY_J ,NO_KEY, // 3B J |
||
| 78 | KEY_U ,NO_KEY, // 3C U |
||
| 79 | KEY_7 ,NO_KEY, // 3D 7 |
||
| 80 | KEY_8 ,NO_KEY, // 3E 8 |
||
| 81 | NO_KEY,NO_KEY, // 3F |
||
| 82 | |||
| 83 | NO_KEY,NO_KEY, // 40 |
||
| 84 | KEY_SS,KEY_N , // 41 , |
||
| 85 | KEY_K ,NO_KEY, // 42 K |
||
| 86 | KEY_I ,NO_KEY, // 43 I |
||
| 87 | KEY_O ,NO_KEY, // 44 O |
||
| 88 | KEY_0 ,NO_KEY, // 45 0 |
||
| 89 | KEY_9 ,NO_KEY, // 46 9 |
||
| 90 | NO_KEY,NO_KEY, // 47 |
||
| 91 | NO_KEY,NO_KEY, // 48 |
||
| 92 | KEY_SS,KEY_M , // 49 . |
||
| 93 | KEY_SS,KEY_C , // 4A / |
||
| 94 | KEY_L ,NO_KEY, // 4B L |
||
| 95 | KEY_SS,KEY_Z , // 4C : |
||
| 96 | KEY_P ,NO_KEY, // 4D P |
||
| 97 | KEY_SS,KEY_J , // 4E - |
||
| 98 | NO_KEY,NO_KEY, // 4F |
||
| 99 | |||
| 100 | NO_KEY,NO_KEY, // 50 |
||
| 101 | NO_KEY,NO_KEY, // 51 |
||
| 102 | KEY_SS,KEY_P , // 52 " |
||
| 103 | NO_KEY,NO_KEY, // 53 |
||
| 104 | KEY_SS,KEY_8 , // 54 [ |
||
| 105 | KEY_SS,KEY_K , // 55 + |
||
| 106 | NO_KEY,NO_KEY, // 56 |
||
| 107 | NO_KEY,NO_KEY, // 57 |
||
| 108 | KEY_CS,KEY_2 , // 58 CAPSLOCK |
||
| 109 | KEY_SS,NO_KEY, // 59 RSHIFT |
||
| 110 | KEY_EN,NO_KEY, // 5A ENTER |
||
| 111 | KEY_SS,KEY_9 , // 5B ] |
||
| 112 | NO_KEY,NO_KEY, // 5C |
||
| 113 | KEY_SS,KEY_CS, // 5D backslash |
||
| 114 | NO_KEY,NO_KEY, // 5E |
||
| 115 | NO_KEY,NO_KEY, // 5F |
||
| 116 | |||
| 117 | NO_KEY,NO_KEY, // 60 |
||
| 118 | KEY_SS,KEY_CS, // 61 backslash |
||
| 119 | NO_KEY,NO_KEY, // 62 |
||
| 120 | NO_KEY,NO_KEY, // 63 |
||
| 121 | NO_KEY,NO_KEY, // 64 |
||
| 122 | NO_KEY,NO_KEY, // 65 |
||
| 123 | KEY_CS,KEY_0 , // 66 BACKSPACE |
||
| 124 | NO_KEY,NO_KEY, // 67 |
||
| 125 | NO_KEY,NO_KEY, // 68 |
||
| 126 | KEY_1 ,NO_KEY, // 69 keypad 1 |
||
| 127 | NO_KEY,NO_KEY, // 6A |
||
| 128 | KEY_4 ,NO_KEY, // 6B keypad 4 |
||
| 129 | KEY_7 ,NO_KEY, // 6C keypad 7 |
||
| 130 | NO_KEY,NO_KEY, // 6D |
||
| 131 | NO_KEY,NO_KEY, // 6E |
||
| 132 | NO_KEY,NO_KEY, // 6F |
||
| 133 | |||
| 134 | KEY_0 ,NO_KEY, // 70 keypad 0 |
||
| 135 | KEY_SS,KEY_M , // 71 keypad . |
||
| 136 | KEY_2 ,NO_KEY, // 72 keypad 2 |
||
| 137 | KEY_5 ,NO_KEY, // 73 keypad 5 |
||
| 138 | KEY_6 ,NO_KEY, // 74 keypad 6 |
||
| 139 | KEY_8 ,NO_KEY, // 75 keypad 8 |
||
| 140 | CLRKYS,NO_KEY, // 76 ESC |
||
| 292 | chrv | 141 | NO_KEY,NO_KEY, // 77 Num Lock |
| 142 | NO_KEY,NO_KEY, // 78 F11 |
||
| 220 | chrv | 143 | KEY_SS,KEY_K , // 79 keypad + |
| 144 | KEY_3 ,NO_KEY, // 7A keypad 3 |
||
| 145 | KEY_SS,KEY_J , // 7B keypad - |
||
| 146 | KEY_SS,KEY_B , // 7C keypad * |
||
| 147 | KEY_9 ,NO_KEY, // 7D keypad 9 |
||
| 148 | NO_KEY,NO_KEY, // 7E Scroll Lock |
||
| 292 | chrv | 149 | NO_KEY,NO_KEY // 7F F7 !!!Warning real code is 0x83 is (converted to 0x7F) |
| 220 | chrv | 150 | }; |
| 151 | |||
| 152 | const UBYTE default_kbmap_E0[] PROGMEM = |
||
| 153 | { |
||
| 292 | chrv | 154 | NO_KEY,NO_KEY, // 00 |
| 155 | NO_KEY,NO_KEY, // 01 |
||
| 156 | NO_KEY,NO_KEY, // 02 |
||
| 157 | NO_KEY,NO_KEY, // 03 |
||
| 158 | NO_KEY,NO_KEY, // 04 |
||
| 159 | NO_KEY,NO_KEY, // 05 |
||
| 160 | NO_KEY,NO_KEY, // 06 |
||
| 161 | NO_KEY,NO_KEY, // 07 |
||
| 162 | NO_KEY,NO_KEY, // 08 |
||
| 163 | NO_KEY,NO_KEY, // 09 |
||
| 164 | NO_KEY,NO_KEY, // 0A |
||
| 165 | NO_KEY,NO_KEY, // 0B |
||
| 166 | NO_KEY,NO_KEY, // 0C |
||
| 167 | NO_KEY,NO_KEY, // 0D |
||
| 168 | NO_KEY,NO_KEY, // 0E |
||
| 169 | NO_KEY,NO_KEY, // 0F |
||
| 170 | |||
| 171 | NO_KEY,NO_KEY, // 10 |
||
| 172 | NO_KEY,NO_KEY, // 11 ALT GR |
||
| 173 | NO_KEY,NO_KEY, // 12 |
||
| 174 | NO_KEY,NO_KEY, // 13 |
||
| 175 | NO_KEY,NO_KEY, // 14 RCTRL |
||
| 176 | NO_KEY,NO_KEY, // 15 |
||
| 177 | NO_KEY,NO_KEY, // 16 |
||
| 178 | NO_KEY,NO_KEY, // 17 |
||
| 179 | NO_KEY,NO_KEY, // 18 |
||
| 180 | NO_KEY,NO_KEY, // 19 |
||
| 181 | NO_KEY,NO_KEY, // 1A |
||
| 182 | NO_KEY,NO_KEY, // 1B |
||
| 183 | NO_KEY,NO_KEY, // 1C |
||
| 184 | NO_KEY,NO_KEY, // 1D |
||
| 185 | NO_KEY,NO_KEY, // 1E |
||
| 186 | NO_KEY,NO_KEY, // 1F LEFT WINDOWS |
||
| 187 | |||
| 188 | NO_KEY,NO_KEY, // 20 |
||
| 189 | NO_KEY,NO_KEY, // 21 multimedia Volume - |
||
| 190 | NO_KEY,NO_KEY, // 22 |
||
| 191 | NO_KEY,NO_KEY, // 23 |
||
| 192 | NO_KEY,NO_KEY, // 24 |
||
| 193 | NO_KEY,NO_KEY, // 25 |
||
| 194 | NO_KEY,NO_KEY, // 26 |
||
| 195 | NO_KEY,NO_KEY, // 27 RIGHT WINDOWS |
||
| 196 | NO_KEY,NO_KEY, // 28 |
||
| 197 | NO_KEY,NO_KEY, // 29 |
||
| 198 | NO_KEY,NO_KEY, // 2A |
||
| 199 | NO_KEY,NO_KEY, // 2B |
||
| 200 | NO_KEY,NO_KEY, // 2C |
||
| 201 | NO_KEY,NO_KEY, // 2D |
||
| 202 | NO_KEY,NO_KEY, // 2E |
||
| 203 | NO_KEY,NO_KEY, // 2F APPLICATION |
||
| 204 | |||
| 205 | NO_KEY,NO_KEY, // 30 |
||
| 206 | NO_KEY,NO_KEY, // 31 |
||
| 207 | NO_KEY,NO_KEY, // 32 multimedia Volume + |
||
| 208 | NO_KEY,NO_KEY, // 33 |
||
| 209 | NO_KEY,NO_KEY, // 34 multimedia Play/Pause |
||
| 210 | NO_KEY,NO_KEY, // 35 |
||
| 211 | NO_KEY,NO_KEY, // 36 |
||
| 212 | NO_KEY,NO_KEY, // 37 POWER |
||
| 213 | NO_KEY,NO_KEY, // 38 |
||
| 214 | NO_KEY,NO_KEY, // 39 |
||
| 215 | NO_KEY,NO_KEY, // 3A |
||
| 216 | NO_KEY,NO_KEY, // 3B multimedia Stop |
||
| 217 | NO_KEY,NO_KEY, // 3C |
||
| 218 | NO_KEY,NO_KEY, // 3D |
||
| 219 | NO_KEY,NO_KEY, // 3E |
||
| 220 | NO_KEY,NO_KEY, // 3F SLEEP |
||
| 221 | |||
| 222 | NO_KEY,NO_KEY, // 40 |
||
| 223 | NO_KEY,NO_KEY, // 41 |
||
| 224 | NO_KEY,NO_KEY, // 42 |
||
| 225 | NO_KEY,NO_KEY, // 43 |
||
| 226 | NO_KEY,NO_KEY, // 44 |
||
| 227 | NO_KEY,NO_KEY, // 45 |
||
| 228 | NO_KEY,NO_KEY, // 46 |
||
| 229 | NO_KEY,NO_KEY, // 47 |
||
| 230 | NO_KEY,NO_KEY, // 48 |
||
| 231 | NO_KEY,NO_KEY, // 49 |
||
| 232 | KEY_SS,KEY_V , // 4A keypad / |
||
| 233 | NO_KEY,NO_KEY, // 4B |
||
| 234 | NO_KEY,NO_KEY, // 4C |
||
| 235 | NO_KEY,NO_KEY, // 4D |
||
| 236 | NO_KEY,NO_KEY, // 4E |
||
| 237 | NO_KEY,NO_KEY, // 4F |
||
| 238 | |||
| 239 | NO_KEY,NO_KEY, // 50 multimedia Active |
||
| 240 | NO_KEY,NO_KEY, // 51 |
||
| 241 | NO_KEY,NO_KEY, // 52 |
||
| 242 | NO_KEY,NO_KEY, // 53 |
||
| 243 | NO_KEY,NO_KEY, // 54 |
||
| 244 | NO_KEY,NO_KEY, // 55 |
||
| 245 | NO_KEY,NO_KEY, // 56 |
||
| 246 | NO_KEY,NO_KEY, // 57 |
||
| 247 | NO_KEY,NO_KEY, // 58 |
||
| 248 | NO_KEY,NO_KEY, // 59 |
||
| 249 | KEY_EN,NO_KEY, // 5A keypad ENTER |
||
| 250 | NO_KEY,NO_KEY, // 5B |
||
| 251 | NO_KEY,NO_KEY, // 5C |
||
| 252 | NO_KEY,NO_KEY, // 5D |
||
| 253 | NO_KEY,NO_KEY, // 5E WAKE |
||
| 254 | NO_KEY,NO_KEY, // 5F |
||
| 255 | |||
| 220 | chrv | 256 | NO_KEY,NO_KEY, // 60 |
| 257 | NO_KEY,NO_KEY, // 61 |
||
| 258 | NO_KEY,NO_KEY, // 62 |
||
| 259 | NO_KEY,NO_KEY, // 63 |
||
| 260 | NO_KEY,NO_KEY, // 64 |
||
| 261 | NO_KEY,NO_KEY, // 65 |
||
| 262 | NO_KEY,NO_KEY, // 66 |
||
| 263 | NO_KEY,NO_KEY, // 67 |
||
| 264 | NO_KEY,NO_KEY, // 68 |
||
| 265 | KEY_SS,KEY_E , // 69 END |
||
| 266 | NO_KEY,NO_KEY, // 6A |
||
| 267 | KEY_CS,KEY_5 , // 6B LEFT |
||
| 268 | KEY_SS,KEY_Q , // 6C HOME |
||
| 269 | NO_KEY,NO_KEY, // 6D |
||
| 270 | NO_KEY,NO_KEY, // 6E |
||
| 271 | NO_KEY,NO_KEY, // 6F |
||
| 272 | |||
| 273 | KEY_SS,KEY_W , // 70 INS |
||
| 274 | KEY_CS,KEY_9 , // 71 DEL |
||
| 275 | KEY_CS,KEY_6 , // 72 DOWN |
||
| 276 | NO_KEY,NO_KEY, // 73 |
||
| 277 | KEY_CS,KEY_8 , // 74 RIGHT |
||
| 278 | KEY_CS,KEY_7 , // 75 UP |
||
| 279 | CLRKYS,NO_KEY, // 76 ESC |
||
| 280 | NO_KEY,NO_KEY, // 77 |
||
| 281 | NO_KEY,NO_KEY, // 78 |
||
| 282 | NO_KEY,NO_KEY, // 79 |
||
| 283 | KEY_CS,KEY_4 , // 7A PGDN |
||
| 284 | NO_KEY,NO_KEY, // 7B |
||
| 285 | NO_KEY,NO_KEY, // 7C Print Screen |
||
| 286 | KEY_CS,KEY_3 , // 7D PGUP |
||
| 287 | NO_KEY,NO_KEY, // 7E |
||
| 288 | NO_KEY,NO_KEY // 7F |
||
| 289 | }; |
||
| 290 | |||
| 299 | chrv | 291 | /** User map offset in EEPROM */ |
| 292 | #define user_kbmap 0 |
||
| 293 | /** User map (extent E0) offset in EEPROM */ |
||
| 644 | ddp | 294 | #define user_kbmap_E0 256 |
| 299 | chrv | 295 | |
| 296 | chrv | 296 | //for loading user map (pointer to start eeprom) |
| 299 | chrv | 297 | //const void* saved_kbmap = (void*)0; |
| 220 | chrv | 298 | |
| 299 | //pointers to map |
||
| 299 | chrv | 300 | //UBYTE* kbmap; |
| 301 | //UBYTE* kbmap_E0; |
||
| 220 | chrv | 302 | |
| 303 | //if want Log than comment next string |
||
| 304 | #undef LOGENABLE |
||
| 305 | |||
| 306 | void kbmap_init(void) |
||
| 307 | { |
||
| 308 | //set pointers |
||
| 299 | chrv | 309 | // kbmap = dbuf; |
| 310 | // kbmap_E0 = dbuf + sizeof(default_kbmap); |
||
| 220 | chrv | 311 | |
| 312 | #ifdef LOGENABLE |
||
| 313 | to_log("kbmap_init start\r\n"); |
||
| 314 | #endif |
||
| 315 | //wait for eeprom |
||
| 316 | eeprom_busy_wait(); |
||
| 317 | |||
| 318 | #ifdef LOGENABLE |
||
| 319 | to_log("eeprom OK\r\n"); |
||
| 320 | #endif |
||
| 321 | |||
| 322 | //read signature from eeprom |
||
| 299 | chrv | 323 | // eeprom_read_block(dbuf, saved_kbmap, 2); |
| 220 | chrv | 324 | |
| 325 | //check signature |
||
| 299 | chrv | 326 | if ( (eeprom_read_byte((UBYTE*)user_kbmap)=='K') && |
| 327 | (eeprom_read_byte((UBYTE*)user_kbmap+1)=='B') ) |
||
| 220 | chrv | 328 | { |
| 329 | //read from eeprom |
||
| 299 | chrv | 330 | // eeprom_read_block(kbmap, saved_kbmap, sizeof(default_kbmap)+sizeof(default_kbmap_E0)); |
| 331 | // kbmap[0] = NO_KEY ; |
||
| 332 | // kbmap[1] = NO_KEY ; |
||
| 333 | flags_ex_register |= FLAG_EX_PS2KEYBOARD_MAP; |
||
| 220 | chrv | 334 | #ifdef LOGENABLE |
| 335 | to_log("KBMAP:EEPROM\r\n"); |
||
| 336 | #endif |
||
| 337 | } |
||
| 338 | else |
||
| 339 | { |
||
| 340 | //set default |
||
| 299 | chrv | 341 | // memcpy_P(kbmap, default_kbmap, sizeof(default_kbmap)); |
| 342 | // memcpy_P(kbmap_E0, default_kbmap_E0, sizeof(default_kbmap_E0)); |
||
| 220 | chrv | 343 | #ifdef LOGENABLE |
| 344 | to_log("KBMAP:DEFAULT\r\n"); |
||
| 345 | #endif |
||
| 346 | } |
||
| 347 | } |
||
| 299 | chrv | 348 | |
| 349 | KBMAP_VALUE kbmap_get(UBYTE scancode, UBYTE was_E0) |
||
| 350 | { |
||
| 351 | KBMAP_VALUE ret = {{NO_KEY,NO_KEY}}; |
||
| 352 | |||
| 353 | if( scancode < 0x7F ) |
||
| 354 | { |
||
| 355 | if( flags_ex_register&FLAG_EX_PS2KEYBOARD_MAP ) |
||
| 356 | { |
||
| 357 | //user map |
||
| 358 | if ( scancode ) |
||
| 359 | { |
||
| 656 | chrv | 360 | //wait for eeprom |
| 361 | eeprom_busy_wait(); |
||
| 362 | |||
| 363 | UWORD tblptr = scancode*2 + ( (was_E0)?user_kbmap_E0:user_kbmap ); |
||
| 299 | chrv | 364 | ret.tb.b1 = eeprom_read_byte((UBYTE*)tblptr++ ); |
| 365 | ret.tb.b2 = eeprom_read_byte((UBYTE*)tblptr ); |
||
| 366 | } |
||
| 367 | } |
||
| 368 | else |
||
| 369 | { |
||
| 370 | //default map |
||
| 371 | ULONG tblptr = scancode*2; |
||
| 372 | if( was_E0 ) |
||
| 373 | { |
||
| 374 | tblptr += GET_FAR_ADDRESS(default_kbmap_E0); |
||
| 375 | } |
||
| 376 | else |
||
| 377 | { |
||
| 378 | tblptr += GET_FAR_ADDRESS(default_kbmap); |
||
| 379 | } |
||
| 380 | ret.tb.b1 = pgm_read_byte_far( tblptr++ ); |
||
| 381 | ret.tb.b2 = pgm_read_byte_far( tblptr ); |
||
| 382 | } |
||
| 383 | } |
||
| 384 | #ifdef LOGENABLE |
||
| 385 | { |
||
| 386 | char log_map[] = "MP..:..,..\r\n"; |
||
| 387 | UBYTE b = scancode; |
||
| 388 | log_map[2] = ((b >> 4) <= 9 )?'0'+(b >> 4):'A'+(b >> 4)-10; |
||
| 389 | log_map[3] = ((b & 0x0F) <= 9 )?'0'+(b & 0x0F):'A'+(b & 0x0F)-10; |
||
| 390 | b = ret.tb.b1; |
||
| 391 | log_map[5] = ((b >> 4) <= 9 )?'0'+(b >> 4):'A'+(b >> 4)-10; |
||
| 392 | log_map[6] = ((b & 0x0F) <= 9 )?'0'+(b & 0x0F):'A'+(b & 0x0F)-10; |
||
| 393 | b = ret.tb.b2; |
||
| 394 | log_map[8] = ((b >> 4) <= 9 )?'0'+(b >> 4):'A'+(b >> 4)-10; |
||
| 395 | log_map[9] = ((b & 0x0F) <= 9 )?'0'+(b & 0x0F):'A'+(b & 0x0F)-10; |
||
| 396 | to_log(log_map); |
||
| 397 | } |
||
| 398 | #endif |
||
| 399 | return ret; |
||
| 400 | } |