This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
base:modify_keyboard_decoding [2022-05-01 20:14] – created wil | base:modify_keyboard_decoding [2022-05-01 20:17] (current) – wil | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Modify Keyboard Decoding ====== | ||
+ | |||
The Kernal calls a routine for checking the keyboard in the interrupt routine. The mapping of keyboard code to PETSCII character is done via tables, which are stored in ROM at addresses $EB81 for unshifted keys, $EBC2 for shifted keys, $EC03 for keys pressed together with the CBM key, and $EC78 for keys pressed together with the control key. | The Kernal calls a routine for checking the keyboard in the interrupt routine. The mapping of keyboard code to PETSCII character is done via tables, which are stored in ROM at addresses $EB81 for unshifted keys, $EBC2 for shifted keys, $EC03 for keys pressed together with the CBM key, and $EC78 for keys pressed together with the control key. | ||
Line 5: | Line 7: | ||
For example, to switch Y and Z to emulate the common layout on German keyboards, a minimally invasive approach would be: | For example, to switch Y and Z to emulate the common layout on German keyboards, a minimally invasive approach would be: | ||
- | 1. Select some piece of RAM where you want to out your new decoding table. I have chosen the unused | + | 1. Select some piece of RAM where you want to out your new decoding table. |
2. Copy the decoding table from the Kernal into that area: | 2. Copy the decoding table from the Kernal into that area: |