The emulated keyboard is the directly hardware-emulated representation of the computer keyboard. This essentially means that the keyboard is emulated as what it is, a collection of switches with different keycaps on top.
This is the immediate kind of emulation, typical for MAME.
Modifier
As described, there are three modifier keys for the TI keyboard: Shift, FCTN, and CTRL.
While Shift and CTRL are usually part of the normal PC keyboard, the FCTN key must be mapped to some other key, since a PC keyboard does not have a FCTN key. This is by default the Alt key (or AltGr).
The emulated keyboard mode emulates each of the keys as a separate switch. Accordingly, to type an exclamation mark, the switch labeled Shift and the upper left switch must be pressed. This is the typical assignment on PC keyboards as well.
The trouble with the keys
If we want to type a double quote, the FCTN key and the P key must be pressed. With the typical mapping, this means that you have to press Alt and P on your PC keyboard to get the quote, because the emulated TI wants to see those two switches pressed. And this is all the trouble with the emulated keyboard: The PC keyboards do not match this key assignment. What you see on your keycaps is not what you see in MAME.
Things may become worse. On QWERTY keyboards, many of the key mappings are similar to the TI keyboard. Me, for example, I'm using a QWERTZ keyboard, and this does not only mean swapped Y and Z keys, but many other keys being relocated. The double quote is assigned to Shift-2, where the QWERTY keyboards have the @ sign. The @ sign, in turn, is on AltGr-Q on my keyboard. So my dear American and English friends, when you complain about this mode, please remember those people who have international keyboard layouts.
Why can't we just take the PC keys? When we type a double quote, can't this just be fed into the emulation?
But that is not the way how MAME works. As I wrote above, MAME executes the original keyboard scanning routine of the TI, and this routine expects that you have pressed the FCTN key and the P key. There is a way, though, which I explain in more detail in the section about the natural keyboard.
Full mode
The full mode defines all keys of the emulated system. That is, each key switch of the emulated system should be mapped to some key switch on the keyboard.
In this diagram you can see where you can find the TI keys on a common PC keyboard. To type a question mark, you have to press Alt (left of the space bar) or AltGr (right of the space bar) as the FCTN key, and the i key.
You can swap to the partial mode by pressing ScrlLock.
Partial mode
In the partial mode, some of the keys are reserved for MAME operation. One of the most surprising assignments is the Pause function on the P key. When you press P in partial mode, the emulation is paused, which means that it stops and ignores all further key inputs, and the screen output is dimmed. Lots of users falsely believed that the emulation crashed (and told other people that MAME crashed all the time, completely unstable). Pressing P again resumes emulation.
To swap back to the full mode, just press ScrlLock again.
The most important functions of the partial mode are to
- open the OSD menu: TAB
- stop the emulation: ESC
- reset the emulation: F3 (Shift-F3)
- make a screenshot: F12
- load a saved state: F7
- save a state: Shift-F7
The AlphaLock issue
The AlphaLock key is mapped to ShiftLock by default. However, I usually remap AlphaLock to another key, like the LeftWin key (between Ctrl and Alt).
The reason is that ShiftLock is a stateful key on the PC. This means it has two states which you can switch by shortly pressing the key; you don't need to keep it pressed. So when you work with MAME, you may want to push that key to have uppercase characters (the default on the TI). But then you notice something in your PC mail program and switch to that program, noticing you still have ShiftLock active, and release it, because you don't want to write your E-mail message in uppercase.
But MAME will not notice the change of the key state, since you unfocused its window (when you clicked on your other program). From now on, the key state is swapped in MAME.
Also, when you leave MAME, it will save the key state. When you start it later, it still assumes that state, regardless of the real ShiftLock state.
Hence, I highly recommend to remap the AlphaLock key.