# Keyboard Mappings

There are two main keyboard mappings available on the BeebEm Options menu, Default Keyboard Mapping and Logical Keyboard Mapping. The Beeb keyboard looks like this:

## Logical Keyboard Mapping

With the Logical Keyboard Mapping the key symbols on the PC keyboard are mapped directly to the same symbols on the Beeb keyboard, so you get what you press. Note that the logical mapping sometimes has to change the `Shift` key state in order to work so it can do some unexpected things if you use it while playing a game that uses `Shift`. Its probably better to use Default Keyboard Mapping when playing games.

## Default Keyboard Mapping

For the Default Keyboard Mapping, most of the keys are the same on the Beeb and PC but these are not:

PC Key | Beeb Key
--- | ---
`F10` and `F11` | `f0`
`F1` - `F9` | `f1` - `f9`
`F12` | `Break`
`-_` | `-=`
`=+` | `^~`
``` | `@`
`;:` | `;+`
`'@` | `:*`
`#~` | `_£`
`End` | `Copy`

## Shortcut Keys

There are some shortcut keys for various features:

PC Key Press | Function
--- | ---
`Keypad +` | Increase emulation speed
`Alt` + `+` | Increase emulation speed
`Keypad -` | Decrease emulation speed
`Alt` + `-` | Decrease emulation speed
`Keypad /` | Quick save state
`Alt` + `1` | Quick save state
`Keypad *` | Quick load state
`Alt` + `2` | Quick load state
`Alt` + `Keypad 5` | Capture screen to file (with NumLock on)
`Alt 5` | Capture screen to file
`Alt` + `Enter` | Toggle fullscreen mode
`Alt` + `F4` | Exit
`Alt` + `F5` | Pause/unpause emulation

## Custom Key Mappings

Key mappings are kept in .kmap files stored in the My Documents\BeebEm folder. BeebEm will read the Default.kmap and Logical.kmap files at start up. These files contain mappings for a UK PC keyboard and they can be replaced with alternative mapping files if you are not using a UK keyboard (for example, the USLogical.kmap file for a US keyboard or ITLogical.kmap for an Italian keyboard).

You can create your own mapping to map your PC keyboard to your emulated BBC one. Do this as follows:

1. If you are in full screen mode then switch back to windowed mode.
2. Select the Options → Define User Key Mapping menu item. A graphic showing the BBC keyboard layout will appear within the BeebEm interface.
3. Use your mouse pointer to click once on the BBC key that you are attempting to map to your PC keyboard.
   e.g., Click BBC key `8(`
4. Decide which PC keys you want to map to the unshifted BBC key press and which PC key you want to map to the shifted BBC key press. It could be the same PC key for both or it could be different keys.
   e.g., For unshifted BBC key `8(` press you would select PC key `8*`
   e.g., For shifted BBC key `8(` press you would select PC key `9(`
5. Now press the PC key you selected for the unshifted BBC key press.
   e.g., Press PC key `8*`
6. If the PC key you selected for the BBC shifted key press requires the PC to be shifted then check the Shift box in the key dialog. Now press the PC key you selected for the shifted BBC key press (but do not press `Shift`).
   e.g., Check the Shift box and press PC key `9(`
7. Repeat from step 3 for other keys you want to map.
8. Save your mapping using the Options → Save User Key Mapping menu item. You can write over the default user key mapping file (DefaultUser.kmap) or save a new file.
9. Select your mapping using the Options → User Defined Mapping menu item. You can also use the Save Preferences option to save the default user key mapping file that gets loaded when BeebEm starts up.