RT_FKALONG (=17), is defined in BSEDOS.H, and the resource compiler (RC.EXE) recognizes FKALONG. This type identifies a 256-byte table, that can be used for either primary or secondary scan-code mapping.
The resource ID contains three bytes, the least significant byte identifying the type of scan-code mapping table as follows:
The other two bytes are 0 for the primary mapping table, and the keyboard ID (as defined in PMWINP.H) for secondary mapping tables. This is to enable simple support to be provided for future keyboards with conflicting scan codes.
The primary scan-code mapping table in the interrupt handler is stored as a resource of this type. The secondary scan-code mapping table in the interrupt handler is also stored as a resource of this type.
Depending on which keyboard is attached, the resources are loaded when the system is initialized, and transferred to RING-0 byte arrays, where they can be accessed by the interrupt handler as necessary. A default primary scan-code mapping table is transferred if the resource cannot be loaded.