mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-13 00:26:28 +00:00
Comprehensive technical documentation covering: - Hardware: OCS/ECS/AGA custom chip registers, Copper & Blitter deep dives - Boot sequence: cold boot through startup-sequence - Binary format: HUNK executable spec, relocation, debug info - Linking & ABI: .fd files, LVO tables, register calling conventions - Exec kernel: tasks, interrupts, memory, signals, semaphores - AmigaDOS: file I/O, FFS/OFS layout, CLI/Shell scripting - Graphics: planar bitmaps, Copper programming, HAM/EHB modes - Intuition: screens, windows, IDCMP, BOOPSI - Devices: trackdisk, SCSI, serial, timer, audio, keyboard - Libraries: utility, expansion, IFFParse, locale, ARexx - Networking: bsdsocket API, SANA-II, TCP/IP stack comparison - Toolchain: GCC, vasm/vlink, SAS/C, NDK, debugging - Reverse engineering: IDA/Ghidra setup, compiler fingerprints, case studies - CPU & MMU: 68040/060 emulation libs, PMMU, cache management - Driver development: SANA-II, Picasso96/RTG, AHI audio All files include breadcrumb navigation. No local paths or proprietary content.
1.2 KiB
1.2 KiB
keymap.library — Keyboard Mapping
Overview
keymap.library translates raw keycodes from keyboard.device into character codes using the active keymap. Each keymap defines the mapping from physical keys to characters, including dead keys and string sequences.
Key Functions
/* Map a raw keycode + qualifiers to ASCII: */
LONG actual = MapRawKey(&inputEvent, buffer, bufsize, NULL);
/* Returns number of characters, -1 if buffer too small */
/* Map ANSI code back to raw key: */
WORD MapANSI(STRPTR string, WORD count,
STRPTR buffer, WORD length,
struct KeyMap *keyMap);
struct KeyMap
/* devices/keymap.h — NDK39 */
struct KeyMap {
UBYTE *km_LoKeyMapTypes; /* type array for keys 0x00–0x3F */
ULONG *km_LoKeyMap; /* mapping array for keys 0x00–0x3F */
UBYTE *km_LoCapsable; /* caps-lock bitmap */
UBYTE *km_LoRepeatable; /* auto-repeat bitmap */
UBYTE *km_HiKeyMapTypes; /* type array for keys 0x40–0x77 */
ULONG *km_HiKeyMap;
UBYTE *km_HiCapsable;
UBYTE *km_HiRepeatable;
};
References
- NDK39:
devices/keymap.h,libraries/keymap.h