Keyboard reference
Sequential prefixes, translated key codes and all FK expansions.
Prefix keys
| Key | Behavior |
|---|---|
| SU | Toggle the control prefix; the next translated character is reduced to its control code. |
| V/N | Toggle a one-character shift prefix. Digits/punctuation select the implemented shifted symbols; backslash becomes |. |
| R/L | Toggle lowercase/uppercase; the editor displays [a]/[A]. |
| FK | In a .bas editor buffer, arm/disarm one keyword insertion. |
Use prefixes sequentially: press the prefix, then the next key. Repeated events of a held prefix are suppressed. Normal character repeats are supplied by RTC-paced controller rescanning, nominally up to eight per second; this is not a multi-key rollover or key-release API.
Context-specific controls
| Context | Keys |
|---|---|
| Shell input | BK submits; backspace deletes; SU+C cancels the line. |
| Editor | Arrows move; BK inserts LF; SU+S saves; SU+Q exits. |
| LESS | BK/space forward; lowercase b back only in a file; lowercase q or SU+C exits. |
| CAT /dev/console | SU+D terminates input. |
| BASIC runtime | SU+C interrupts; INPUT uses BK to accept a number. |
| WAIT command | SU+C cancels the wait without killing its target. |
Translated control codes
| Value | Keys / event |
|---|---|
| 0 | No event returned by nonblocking INKEY. |
| 1 | Left arrow; also SU+A. |
| 2 | Right arrow; also SU+B. |
| 3 | Up arrow; also SU+C. |
| 4 | Down arrow; also SU+D. |
| 8 | Backspace (physical raw DBh). |
| 9 | Tab key; not a tab-expansion feature in the editor. |
| 13 | BK / Enter. |
| 17 | SU+Q. |
| 19 | SU+S. |
| 30 | FK event (physical raw DFh). |
The runtime’s periodic cancellation poll consumes a key and only acts on code 3. It can therefore consume an ordinary key before a later INKEY expression observes it. INKEY is event polling, not a reliable held-key matrix or queued-message contract for every physical key.
Because arrow and SU codes overlap, up-arrow can cancel outside the editor and down-arrow can end console CAT. The table describes the actual translated API in this release.
Entering punctuation
V/N followed by backslash gives |; V/N followed by 2 gives a double quote; V/N followed by 8 gives (; V/N followed by 9 gives ); V/N followed by colon gives *; V/N followed by semicolon gives +.
Physical-map limitation in 0.6: =, < and > can exist in files and are accepted by the compiler, but the implemented physical-key translation has no combination that produces them. V/N plus minus remains minus; it does not produce equals. The editor has no numeric character-entry command. New programs needing these characters cannot be entered completely from the physical keyboard with this mapping. Existing sources, including the supplied demo, retain their stored characters.
Complete FK expansion table
In the table, “key” is the normal 0.6 Latin-map character or control, and raw is the physical key byte in hexadecimal. Every word except a function ending in ( receives a trailing space. The factory-style table has 51 entries.
Insertion availability does not imply compiler support. In particular RUN, SAVE, LOAD, DIM, DATA, READ, PLAY and the other unimplemented factory words are not silently accepted by MBC. They remain ordinary text in the editor.
| Raw | Key | Inserted text | MBC-16 status |
|---|---|---|---|
0B | A | AUTO | Factory legend; not an MBC-16 feature |
0F | I | INPUT | Implemented |
13 | R | RUN | Factory legend; not an MBC-16 feature |
17 | [ | RETURN | Implemented |
23 | 1 | SIN( | Factory legend; not an MBC-16 feature |
27 | 6 | COS( | Factory legend; not an MBC-16 feature |
2B | B | DRAW | Factory legend; not an MBC-16 feature |
2F | J | INIT | Factory legend; not an MBC-16 feature |
33 | S | STEP | Syntax keyword |
37 | ] | RESTORE | Factory legend; not an MBC-16 feature |
3B | Up arrow | DIS | Factory legend; not an MBC-16 feature |
3F | Down arrow | GOSUB | Implemented |
43 | 2 | EXP( | Factory legend; not an MBC-16 feature |
47 | 7 | LOG( | Factory legend; not an MBC-16 feature |
4B | W | WAIT | Implemented |
4F | K | KILL | Factory legend; not an MBC-16 feature |
53 | T | SAVE | Factory legend; not an MBC-16 feature |
57 | X | REM | Implemented |
5B | Left arrow | DEV | Factory legend; not an MBC-16 feature |
63 | 3 | ABS( | Implemented |
67 | 8 | SGN( | Factory legend; not an MBC-16 feature |
6B | G | GOTO | Implemented |
6F | L | LET | Implemented |
73 | U | STOP | Implemented |
77 | Y | READ | Factory legend; not an MBC-16 feature |
7B | , | DEF FN | Factory legend; not an MBC-16 feature |
83 | 4 | SQR( | Factory legend; not an MBC-16 feature |
87 | 9 | ATN( | Factory legend; not an MBC-16 feature |
8B | D | DATA | Factory legend; not an MBC-16 feature |
8F | M | LIST | Factory legend; not an MBC-16 feature |
93 | F | FOR | Implemented |
97 | _ | RANDOMIZE | Factory legend; not an MBC-16 feature |
9B | . | DIM | Factory legend; not an MBC-16 feature |
A3 | 5 | INT( | Factory legend; not an MBC-16 feature |
A7 | 0 | RND( | Implemented |
AB | E | END | Implemented |
AF | N | NEXT | Implemented |
B3 | H | HELP | Factory legend; not an MBC-16 feature |
B7 | \ | FILES | Factory legend; not an MBC-16 feature |
BB | Right arrow | DELETE | Factory legend; not an MBC-16 feature |
C3 | : | LLIST | Factory legend; not an MBC-16 feature |
C7 | / | LFILES | Factory legend; not an MBC-16 feature |
CB | V | EDIT | Factory legend; not an MBC-16 feature |
CF | O | NAME | Factory legend; not an MBC-16 feature |
D3 | C | CLS | Implemented |
D7 | @ | LOAD | Factory legend; not an MBC-16 feature |
E3 | ; | LPRINT | Factory legend; not an MBC-16 feature |
EB | Z | THEN | Syntax keyword |
EF | P | PRINT | Implemented |
F3 | ^ | PLAY | Factory legend; not an MBC-16 feature |
F7 | Q | LOCATE | Implemented |