//
// OS/2 keyboard mapping file
//
// The default keyboard file 'default.vkm' is read always.
// Every other keyboard file in read as a patch
//
// comments are starting with /
//
// This is a scancode mapping file
!KSCODE
!CLEAR
// the position of th left and right shift key on the cbm keyboard:
// !LSHIFT row col
// !RSHIFT row col
// e.g.
!LSHIFT 6 0
!RSHIFT 6 6
// the keyboard is mapped with the keyboard scancodes:
// Xcode: row col vshift
//
// X # (shifted and unshifted), S (shifted), U (unshifted)
// code keyboard scancode
// row cbm keyboard row
// col cbm keyboard column
// vshift should the cbm key pressed?
// 0 key is shifted if shift is pressed
// 1 left shifted
// 2 right shifted
// 3 unshifted
// e.g.
// S44: 1, 7, 2
// means
// If the key with the scancode 44 is pressed together with shift
// the cbm emulator will receive the pressing of a key at
// row 1, column 7 together with the right virtual shift key (defined by !RSHIFT)
//
#00: -1, -1, 0 /* (no key) */
#01: 9, 4, 0 /* ESC -> Run/Stop */
#02: 0, 0, 0 /* 1 -> ! */
#03: 1, 0, 0 /* 2 -> " */
#04: 0, 1, 0 /* 3 -> # */
#05: 1, 1, 0 /* 4 -> $ */
#06: 0, 2, 0 /* 5 -> % */
#07: 1, 2, 0 /* 6 -> ' */
#08: 0, 3, 0 /* 7 -> & */
#09: 1, 3, 0 /* 8 -> \ */
#10: 0, 4, 0 /* 9 -> ( */
#11: 1, 4, 0 /* 0 -> ) */
#12: 0, 5, 0 /* Minus -> Left arrow */
#13: -1, -1, 0 /* Equal -> (no key) */
#14: 1, 7, 0 /* Backspace -> Del */
#15: -1, -1, 0 /* TAB -> (no key) */
#16: 2, 0, 0 /* Q -> Q */
#17: 3, 0, 0 /* W -> W */
#18: 2, 1, 0 /* E -> E */
#19: 3, 1, 0 /* R -> R */
#20: 2, 2, 0 /* T -> T */
#21: 3, 2, 0 /* Y -> Y */
#22: 2, 3, 0 /* U -> U */
#23: 3, 3, 0 /* I -> I */
#24: 2, 4, 0 /* O -> O */
#25: 3, 4, 0 /* P -> P */
#26: 2, 5, 0 /* [ -> Up arrow */
#27: -1, -1, 0 /* ] -> (no key) */
#28: 6, 5, 0 /* Return -> Return */
#29: 9, 0, 0 /* Left Ctrl -> RVS ON/OFF */
#30: 4, 0, 0 /* A -> A */
#31: 5, 0, 0 /* S -> S */
#32: 4, 1, 0 /* D -> D */
#33: 5, 1, 0 /* F -> F */
#34: 4, 2, 0 /* G -> G */
#35: 5, 2, 0 /* H -> H */
#36: 4, 3, 0 /* J -> J */
#37: 5, 3, 0 /* K -> K */
#38: 4, 4, 0 /* L -> L */
#39: 5, 4, 0 /* ; -> : */
#40: -1, -1, 0 /* ' -> (no key) */
#41: -1, -1, 0 /* ` -> (no key) */
#42: 8, 0, 1 /* Left Shift -> Left Shift */
#43: -1, -1, 0 /* \ -> (no key) */
#44: 6, 0, 0 /* Z -> Z */
#45: 7, 0, 0 /* X -> X */
#46: 6, 1, 0 /* C -> C */
#47: 7, 1, 0 /* V -> V */
#48: 6, 2, 0 /* B -> B */
#49: 7, 2, 0 /* N -> N */
#50: 6, 3, 0 /* M -> M */
#51: 7, 3, 0 /* , -> , */
#52: 6, 4, 0 /* . -> ; */
#53: 7, 4, 0 /* / -> ? */
#54: 8, 5, 0 /* Right Shift -> Right Shift */
#55: 5, 7, 0 /* Grey * -> * */
#56: -1, -1, 0 /* Left Alt -> (no key) */
#57: 9, 2, 0 /* Space -> Space */
#58: 9, 4, 0 /* Caps Lock -> RUN/STOP */
#69: -1, -1, 0 /* F1 -> (no key) */
#70: -1, -1, 0 /* F2 -> (no key) */
#71: -1, -1, 0 /* F3 -> (no key) */
#72: -1, -1, 0 /* F4 -> (no key) */
#73: -1, -1, 0 /* F5 -> (no key) */
#74: -1, -1, 0 /* F6 -> (no key) */
#75: -1, -1, 0 /* F7 -> (no key) */
#76: -1, -1, 0 /* F8 -> (no key) */
#78: -1, -1, 0 /* F9 -> (no key) */
#79: -1, -1, 0 /* F10 -> (no key) */
#80: 0, 6, 0 /* Num Lock -> CLR/HOME */
#81: -1, -1, 0 /* Scroll Lock -> (no key) */
#82: 2, 6, 0 /* Numpad 7 -> 7 */
#83: 3, 6, 0 /* Numpad 8 -> 8 */
#84: 2, 7, 0 /* Numpad 9 -> 9 */
#85: 8, 7, 0 /* Numpad - -> - */
#86: 4, 6, 0 /* Numpad 4 -> 4 */
#87: 5, 6, 0 /* Numpad 5 -> 5 */
#88: 4, 7, 0 /* Numpad 6 -> 6 */
#89: 7, 7, 0 /* Numpad + -> + */
#90: 6, 6, 0 /* Numpad 1 -> 1 */
#91: 7, 6, 0 /* Numpad 2 -> 2 */
#92: 6, 7, 0 /* Numpad 3 -> 3 */
#93: 8, 6, 0 /* Numpad 0 -> 0 */
#94: 9, 6, 0 /* Numpad . -> . */
#95: -1, -1, 0 /* SysReq -> (no key) */
#96: -1, -1, 0 /* 85 -> (no key) */
#97: -1, -1, 0 /* 86 -> (no key) */
#98: -1, -1, 0 /* F11 -> (no key) */
#99: -1, -1, 0 /* F12 -> (no key) */
#100: 9, 7, 0 /* Numpad Enter -> = */
#101: 9, 4, 0 /* Right Ctrl -> RUN/STOP */
#102: -1, -1, 0 /* Pause -> (no key) */
#103: -1, -1, 0 /* PrtScr -> (no key) */
#104: 3, 7, 0 /* Numpad / -> / */
#105: -1, -1, 0 /* Right Alt -> (no key) */
#106: -1, -1, 0 /* Break -> (no key) */
#107: 9, 1, 0 /* Home -> [ */
#108: 1, 6, 1 /* Up -> CRSR UP */
#109: 8, 2, 0 /* PgUp -> ] */
#110: 0, 7, 1 /* Left -> CRSR LEFT */
#111: 0, 7, 0 /* Right -> CRSR RIGHT */
#112: 9, 3, 0 /* End -> < */
#113: 1, 6, 0 /* Down -> CRSR DOWN */
#114: 8, 4, 0 /* PgDown -> > */
#115: 8, 1, 0 /* Ins -> @ */
#116: -1, -1, 0 /* Del -> (no key) */
#117: -1, -1, 0 /* Left Win95 -> (no key) */
#118: -1, -1, 0 /* Right Win95 -> (no key) */