ASCII codes

Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4 Armite F4 ArmiteH7 CMM2

 

ASCII control characters (character code 0-31)

The first 32 characters in the ASCII-table are unprintable control codes and are used to control peripherals such as printers.

DEC OCT HEX BIN      Symbol Description
0   000 00  00000000    NUL Null char
1   001 01  00000001    SOH Start of Heading
2   002 02  00000010    STX Start of Text
3   003 03  00000011    ETX End of Text
4   004 04  00000100    EOT End of Transmission
5   005 05  00000101    ENQ Enquiry
6   006 06  00000110    ACK Acknowledgment
7   007 07  00000111    BEL Bell
8   010 08  00001000    BS  Back Space
9   011 09  00001001    HT  Horizontal Tab
10  012 0A  00001010    LF  Line Feed
11  013 0B  00001011    VT  Vertical Tab
12  014 0C  00001100    FF  Form Feed
13  015 0D  00001101    CR  Carriage Return
14  016 0E  00001110    SO  Shift Out / X-On
15  017 0F  00001111    SI  Shift In / X-Off
16  020 10  00010000    DLE Data Line Escape
17  021 11  00010001    DC1 Device Control 1 (oft. XON)
18  022 12  00010010    DC2 Device Control 2
19  023 13  00010011    DC3 Device Control 3 (oft. XOFF)
20  024 14  00010100    DC4 Device Control 4
21  025 15  00010101    NAK Negative Acknowledgement
22  026 16  00010110    SYN Synchronous Idle
23  027 17  00010111    ETB End of Transmit Block
24  030 18  00011000    CAN Cancel
25  031 19  00011001    EM  End of Medium
26  032 1A  00011010    SUB Substitute
27  033 1B  00011011    ESC Escape
28  034 1C  00011100    FS  File Separator
29  035 1D  00011101    GS  Group Separator
30  036 1E  00011110    RS  Record Separator
31  037 1F  00011111    US  Unit Separator

ASCII printable characters (character code 32-127)

Codes 32-127 are common for all the different variations of the ASCII table, they are called printable characters, represent letters, digits, punctuation marks, and a few miscellaneous symbols. 
You will find almost every character on your keyboard. Character 127 represents the command DEL.

DEC OCT HEX BIN      Symbol Description
32  040 20  00100000        Space
33  041 21  00100001    !   Exclamation mark
34  042 22  00100010    "   Double quotes (or speech marks)
35  043 23  00100011    #   Number
36  044 24  00100100    $   Dollar
37  045 25  00100101    %   Procenttecken
38  046 26  00100110    &   Ampersand
39  047 27  00100111    '   Single quote
40  050 28  00101000    (   Open parenthesis (or open bracket)
41  051 29  00101001    )   Close parenthesis (or close bracket)
42  052 2A  00101010    *   Asterisk
43  053 2B  00101011    +   Plus
44  054 2C  00101100    ,   Comma
45  055 2D  00101101    -   Hyphen
46  056 2E  00101110    .   Period, dot or full stop
47  057 2F  00101111    /   Slash or divide
48  060 30  00110000    0   Zero
49  061 31  00110001    1   One
50  062 32  00110010    2   Two
51  063 33  00110011    3   Three
52  064 34  00110100    4   Four
53  065 35  00110101    5   Five
54  066 36  00110110    6   Six
55  067 37  00110111    7   Seven
56  070 38  00111000    8   Eight
57  071 39  00111001    9   Nine
58  072 3A  00111010    :   Colon
59  073 3B  00111011    ;   Semicolon
60  074 3C  00111100    <   Less than (or open angled bracket)
61  075 3D  00111101    =   Equals
62  076 3E  00111110    >   Greater than (or close angled bracket)
63  077 3F  00111111    ?   Question mark
64  100 40  01000000    @   At symbol
65  101 41  01000001    A   Uppercase A
66  102 42  01000010    B   Uppercase B
67  103 43  01000011    C   Uppercase C
68  104 44  01000100    D   Uppercase D
69  105 45  01000101    E   Uppercase E
70  106 46  01000110    F   Uppercase F
71  107 47  01000111    G   Uppercase G
72  110 48  01001000    H   Uppercase H
73  111 49  01001001    I   Uppercase I
74  112 4A  01001010    J   Uppercase J
75  113 4B  01001011    K   Uppercase K
76  114 4C  01001100    L   Uppercase L
77  115 4D  01001101    M   Uppercase M
78  116 4E  01001110    N   Uppercase N
79  117 4F  01001111    O   Uppercase O
80  120 50  01010000    P   Uppercase P
81  121 51  01010001    Q   Uppercase Q
82  122 52  01010010    R   Uppercase R
83  123 53  01010011    S   Uppercase S
84  124 54  01010100    T   Uppercase T
85  125 55  01010101    U   Uppercase U
86  126 56  01010110    V   Uppercase V
87  127 57  01010111    W   Uppercase W
88  130 58  01011000    X   Uppercase X
89  131 59  01011001    Y   Uppercase Y
90  132 5A  01011010    Z   Uppercase Z
91  133 5B  01011011    [   Opening bracket
92  134 5C  01011100    \   Backslash
93  135 5D  01011101    ]   Closing bracket
94  136 5E  01011110    ^   Caret - circumflex
95  137 5F  01011111    _   Underscore
96  140 60  01100000    `   Grave accent
97  141 61  01100001    a   Lowercase a
98  142 62  01100010    b   Lowercase b
99  143 63  01100011    c   Lowercase c
100 144 64  01100100    d   Lowercase d
101 145 65  01100101    e   Lowercase e
102 146 66  01100110    f   Lowercase f
103 147 67  01100111    g   Lowercase g
104 150 68  01101000    h   Lowercase h
105 151 69  01101001    i   Lowercase i
106 152 6A  01101010    j   Lowercase j
107 153 6B  01101011    k   Lowercase k
108 154 6C  01101100    l   Lowercase l
109 155 6D  01101101    m   Lowercase m
110 156 6E  01101110    n   Lowercase n
111 157 6F  01101111    o   Lowercase o
112 160 70  01110000    p   Lowercase p
113 161 71  01110001    q   Lowercase q
114 162 72  01110010    r   Lowercase r
115 163 73  01110011    s   Lowercase s
116 164 74  01110100    t   Lowercase t
117 165 75  01110101    u   Lowercase u
118 166 76  01110110    v   Lowercase v
119 167 77  01110111    w   Lowercase w
120 170 78  01111000    x   Lowercase x
121 171 79  01111001    y   Lowercase y
122 172 7A  01111010    z   Lowercase z
123 173 7B  01111011    {   Opening brace
124 174 7C  01111100    |   Vertical bar
125 175 7D  01111101    }   Closing brace
126 176 7E  01111110    ~   Equivalency sign - tilde
127 177 7F  01111111        Delete

MMBasic generates a single unique character for the function keys and other special keys on the keyboard. 
These are shown in this table as hexadecimal and decimal numbers:

DEC OCT HEX BIN        Description
128 200 80  10000000   Up Arrow
129 201 81  10000001   Down Arrow
130 202 82  10000010   Left Arrow
131 203 83  10000011   Right Arrow
132 204 84  10000100   Insert
134 206 86  10000110   Home
135 207 87  10000111   End
136 210 88  10001000   Page Up
137 211 89  10001001   Page Down
145 221 91  10010001   F1
146 222 92  10010010   F2
147 223 93  10010011   F3
148 224 94  10010100   F4
149 225 95  10010101   F5
150 226 96  10010110   F6
151 227 97  10010111   F7
152 230 98  10011000   F8
153 231 99  10011001   F9
154 232 9A  10011010   F10
155 233 9B  10011011   F11
156 234 9C  10011100   F12
157 235 9D  10011101   Print Screen (CMM2 KB only)
158 236 9E  10011110   Pause (CMM2 KB only)
159 237 9F  10011111   Shift-TAB (CMM2 KB only)
160 240 A0  10100000   Shift-DEL (CMM2 KB only)
161 241 A1  10100001   Shift-Down (CMM2 KB only)
163 242 A2  10100010   Shift-Right (CMM2 KB only)

If the shift key is simultaneously pressed then 40 (hex) is added to the code (this is the equivalent of setting bit 6). For example Shift-F10 will generate DA (hex).
The shift modifier only works with the function keys F1 to F12; it is ignored for the other keys.
MMBasic will translate most VT100 escape codes generated by terminal emulators such as Tera Term and Putty to these codes (excluding the shift and control modifiers). 
This means that a terminal emulator operating over a USB or a serial port opened as console will generate the same key codes as a directly attached keyboard.

Note that on some keyboards, Using 'shift' in combination with the arrow keys may generate a different keycode.

 CLS
 DO
   IF KEYDOWN(0) <> 0 THEN
     PRINT @(0,0),STR$(KEYDOWN(0),4), STR$(KEYDOWN(1),4),STR$(KEYDOWN(2),4),STR$(KEYDOWN(3),4);
     print STR$(KEYDOWN(4),4),STR$(KEYDOWN(5),4),STR$(KEYDOWN(6)),BIN$(KEYDOWN(7),8)
   ENDIF
   PAUSE 200
 LOOP




Last edited: 19 December, 2020