Home
CBM
  ASCII-X
  BASIC
  C128
  D64plus
  Disk
  Escape Codes
  Hardware
  PCxface
  PETSCII
  Pet2asc
Futurama
IBM PC-AT
Contact
Games
Glossary
Hall of fame
Hall of shame
Miscellaneous
Privacy policy
Programming
Twisty puzzles
Most of the CBM 8-bit computers come with two character sets.  One of them has been referred to as the uppercase/graphics character set, and it is usally the default set.  It does not have any lower-case letters!  The letters (that it does have), the numbers, and almost all of the punctuation characters match those of ASCII, the American Standard Code for Information Interchange. 

Like many 8-bit computers, CBM also extends the 7-bit ASCII definition to 8-bits.  There are many extensions to ASCII, generally incompatible with one another.  Anyway, Commodore has their own, and I call it ASCII-X (ASCII extended) to distinguish it from the other character set, PETSCII.  [The currently most popular character code (UTF-8) is a superset of ASCII.]
 
An extension from 7-bits to 8-bits should add 128 codes;  well it does, but half of them are duplicates in Commodore's extended ASCII!  So ASCII-X only adds 64 new "characters"; 32 of them are graphical symbols and 32 are control codes.  ASCII-X has 64 graphical symbols, however, because there are no lower-case characters.  Anyway, you'll see a lot of duplicates if you examine the tables below.  To make matters worse, when the C64 came out, there was a problem with color "smearing" with the thin vertical characters.  So all vertical characters were made two pixels wide (instead of one).  This made a few codes into duplicates... but now the horizontal lines wouldn't mesh well with the new vertical ones... so the horizontal lines were changed too... resulting in even more duplicates!  This was carried over to the TED series (C16 and Plus/4) and the C128 (which has a VIC-II like the C64). 
 
Technical note (okay to skip this paragraph).  The problem with color smearing isn't strictly the video chips, but also the fact these were designed as home computers to be connected to a TV, and broadcast standards limit the color information relative to luminance.  So this is more-or-less expected with the TED and VIC-II.  However the VDC of the C128 is perfectly capable of showing the "proper" font, but the US / International version has the same font as the Plus/4.  Nationalized versions (those with ASCII/DIN key) do have a "thin" character set, but I don't own one to test the fonts, relative to the original in the PET and VIC-20 (they do add special characters for the language/region they were designed for, so they would differ anyway).
 
Note the computer (at least BASIC and the KERNAL) use the same codes regardless of which character set the user chooses for display.  This can make things confusing.  Many official publications and magazine articles from back in the day just use the term ASCII without referring to the character set in use; in this case you should be skeptical.  I would assume they refer to ASCII-X if they did not specifically mention the other (lowercase/uppercase) character set, in which case I would infer the PETSCII set.
 
So here is a table listing the decimal and hexidecimal values of ASCII-X, the character itself (Glyph), and the ASCII and Unicode equivalants, if they exist.  Some of the codes do not normally print a character, but peform an action.  These are shown under Glyph with a description and the reverse-font character that may appear in some circumstances (so-called quote mode and insert mode).  Otherwise, the glyph is only present if it has a Unicode value, although some browsers may not render them correctly (may appear as a blank, or square box, or ?).  There are also notes that describe the action of some codes, a keyboard combination to generate it, and/or a description of some characters.  There are some difference in the layouts of the CBM machines, but they are mostly equivalant.  The descriptions for keyboard shortcuts are based on the VIC-20/C64/C128.  I've also broken the table up into blocks to hopefully highlight the structure of this character set, although some things just seem to defy logic. 
 
Block 0, Low Control Codes
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
000@ null0 NULU+0000key: Control+@
101A nop  key: Control+A; ASCII SOH
202B underline on (c128)  key: Control+B; ASCII STX
303C nop  key: Control+C; ASCII ETX
404D nop  key: Control+D; ASCII EOT
505E white  key: Control+E; ASCII ENQ
606F nop  key: Control+F; ASCII ACK
707G bell7 BEL key: Control+G
808H char lock on  key: Control+H; ASCII BS; Not C128: see code 11
909I char lock off
tab (c128)
9 HTU+0009key: Control+I, TAB; For C128 char-lock, see code 12
100AJ line feed (C128)10 LFU+000Akey: Control+J; See also code 17
110BK char lock on (C128)  key: Control+K; ASCII VT
120CL char lock off (C128)  key: Control+L; ASCII FF
130DM carriage return13 CRU+000Dkey: Control+M, Return, Enter; See also code 141
140EN go PETSCII  key: Control+N, Shift+C=; ASCII SO; See also code 142
150FO flash on (C128)  key: Control+O; ASCII SI; For C16 or Plus/4: see ???
1610P nop  key: Control+P; ASCII DLE
1711Q cursor down10U+000Akey: Control+Q, CRSR ⇕, ⇩ ASCII DC1; See also 29, 145, 157
1812R reverse on  key: Control+R, Control+9; ASCII DC2
1913S home  key: Control+S, HOME; ASCII DC3
2014T delete8U+0008key: Control+T, DEL; ASCII DC4
2115U nop  key: Control+U; ASCII NAK
2216V nop  key: Control+V; ASCII SYN
2317W nop  key: Control+W; ASCII ETB
2418X toggle Tab stop (C128)  key: Control+X, Shift+Tab; ASCII CAN
2519Y nop  key: Control+Y; ASCII EM
261AZ nop  key: Control+Z; ASCII SUB
271B[ escape (C128)27 ESCU+001Bkey: Control+[, ESC
281C£ red  key: Control+3, Control+£; ASCII FS
291D] cursor right  key: Control+], CRSR ⇔, ⇨; ASCII GS
301E green  key: Control+6, Control+↑; ASCII RS
311F blue  key: Control+7, Control+←; ASCII US
 
Block 1, Numbers and Punctuation
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
3220
32 SPU+0020key: Spacebar
3321!33U+0021key: Shift+1
3422"34U+0022key: Shift+2
3523#35U+0023key: Shift+3
3624$36U+0024key: Shift+4
3725%37U+0025key: Shift+5
3826&38U+0026key: Shift+6
3927'39U+0027key: Shift+7
4028(40U+0028key: Shift+8
4129)41U+0029key: Shift+9
422A*42U+002A 
432B+43U+002B 
442C,44U+002C 
452D-45U+002D 
462E.46U+002E 
472F/47U+002F 
4830048U+0030 
4931149U+0031 
5032250U+0032 
5133351U+0033 
5234452U+0034 
5335553U+0035 
5436654U+0036 
5537755U+0037 
5638856U+0038 
5739957U+0039 
583A:58U+003A 
593B;59U+003B 
603C<60U+003Ckey: Shift+,
613D=61U+003D 
623E>62U+003Ekey: Shift+.
633F?63U+003Fkey: Shift+/
 
Block 2, Uppercase Letters
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
6440@64U+0040 
6541A65U+0041 
6642B66U+0042 
6743C67U+0043 
6844D68U+0044 
6945E69U+0045 
7046F70U+0046 
7147G71U+0047 
7248H72U+0048 
7349I73U+0049 
744AJ74U+004A 
754BK75U+004B 
764CL76U+004C 
774DM77U+004D 
784EN78U+004E 
794FO79U+004F 
8050P80U+0050 
8151Q81U+0051 
8252R82U+0052 
8353S83U+0053 
8454T84U+0054 
8555U85U+0055 
8656V86U+0056 
8757W87U+0057 
8858X88U+0058 
8959Y89U+0059 
905AZ90U+005A 
915B[91U+005Bkey: Shift + :
925C£ U+00A3ASCII \
935D]93U+005Dkey: Shift + ;
945E94U+2191ASCII ^; On C16 and Plus/4, key: Shift+0
955F95U+2190ASCII _
 
Block 3, Extended Graphics (Alternate)
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
9660 U+2500key: Shift+*; Horizontal bar at Y 5/8 (VIC-II/TED centered thick bar)
9761 U+2660key: Shift+A; Spade suit
9862? U+??key: Shift+B; Vertical bar at X 4/8  (VIC-II/TED centered thick bar)
9963? U+??key: Shift+C; Horizontal bar at Y 4/8 (VIC-II/TED centered thick bar)
10064? U+??key: Shift+D; Horizontal bar at Y 3/8
10165? U+??key: Shift+E; Horizontal bar at Y 2/8
10266? U+??key: Shift+F; Horizontal bar at Y 6/8
10367? U+??key: Shift+G; Vertical bar at X 3/8
10468? U+??key: Shift+H; Vertical bar at X 6/8
10569 U+256Ekey: Shift+I; Arc bottom to left
1066A U+2570key: Shift+J; Arc top to right
1076B U+256Fkey: Shift+K; Arc top to left
1086C U+2599key: Shift+L; Bottom left corner, similar to "L"
1096D U+2572key: Shift+M; Diaganol top left to bottom right
1106E U+2571key: Shift+N; Diaganol bottom left to top right
1116F
 U+259Bkey: Shift+O; Top left corner, similar to "Γ"
11270
 U+259Ckey: Shift+P; Top right corner, similar to "7")
11371 (or ) U+2219 or U+2022key: Shift+Q; Solid circle/bullet
11472? U+??key: Shift+R; Horizontal bar at Y 7/8
11573 U+2665key: Shift+S; Heart suit
11674? U+??key: Shift+T; Horizontal bar at X 2/8
11775 U+256Dkey: Shift+U; Arc bottom to right
11876 U+2573key: Shift+V; Diaganol cross, similar to "X"
11977 U+2218key: Shift+W; Hollow circle/bullet
12078 U+2663key: Shift+X; Spade suit
12179? U+??key: Shift+Y; Vertical bar at X 7/8
1227A U+2666key: Shift+Z; Diamond suit
1237B U+253Ckey: Shift++; Cross, similar to "+"
1247C (left half) U+25A6 (left half)key: C=+-; Diaganol cross-hatch (left half)
1257D124 |U+2502key: Shift+-; Vertical bar at X 5/8 (VIC-II/TED centered thick bar)
1267Eπ U+03C0key: C=+^ or Shift+^; lower-case pi
1277F U+25E5key: C=+*; Upper right triangle
 
Block 4, High Control Codes
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
12880 nop  key: ???
12981 orange (most)
dark purple (VDC)
  key: C=+1
13082? underline off (c128)
flash on (Plus/4)
  key: Control+, (Plus/4)
13183? function 9  key: Shift+STOP
13284? function 10 (c128)
flash off (Plus/4)
  key: HELP (C128), Control+. (Plus/4)
13385? function 1  key: F1
13486? function 3  key: F3
13587? function 5  key: F5
13688? function 7  key: F7
13789 function 2  key: F2
1388A function 4  key: F4
1398B function 6  key: F6
1408C? function 8  key: F8
1418D carriage return13 CRU+000Dkey: Shift+Return (ignored by BASIC); See also code 13
1428E go ASCII-X  key: Shift+C=; See also code 14
1438F? flash off (C128)  key: ???; For C16 or Plus/4, see 132
14490? black  key: Control+1
14591 cursor up  key: Shift+CRSR ⇕, ⇧; See also 17, 29, 157
14692? reverse off  key: Control+0
14793 clear screen  key: Shift+HOME
14894? insert  key: Shift+DEL
14995 brown  key: C=+2
15096 light red  key: C=+3
15197 dark gray (VIC-II)
dark cyan (VDC)
  key: C=+4
15298 med. gray (VIC-II)
dark gray (VDC)
  key: C=+5
15399? light green  key: C=+6
1549A light blue  key: C=+7
1559B light gray  key: C=+8
1569C? purple (magenta)  key: Control+5
1579D cursor left  key: Shift+CRSR ⇔, ⇨; See also 17, 29, 145
1589E yellow  key: Control+8
1599F cyan  key: Control+4
 
Block 5, Common Graphics (Primary)
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
160A0 32 SPU+00A0key: Shift+Spacebar; non-breaking space
161A1 U+258Ckey: C=+K; right half block
162A2 U+2584key: C=+I; bottom half block
163A3 U+2594key: C=+T; top 1/8 block
164A4 U+2581key: C=+@; bottom 1/8 block
165A5 U+258Fkey: C=+G; left 1/8 block (2/8 block on VIC-II and TED)
166A6 U+25A9key: C=++; diaganol cross-hatch
167A7 U+2595key: C=+M; right 1/8 block (2/8 block on VIC-II and TED)
168A8? U+???key: C=+£; bottom half cross-hatch
169A9 U+25E4key: Shift+£; upper left triangle
170AA reverse U+258Akey: C=+N; right 2/8 block (reverse Unicode left 6/8)
171AB U+251Ckey: C=+Q; East-pointing "T"
172AC U+2597key: C=+D; bottom right block
173AD U+2514key: C=+Z; corner up and right
174AE U+2510key: C=+S; corner down and left
175AF U+2582key: C=+P; bottom 2/8 block
176B0 U+250Ckey: C=+A; corner down and right
177B1 U+2534key: C=+E; North-pointing "T"
178B2 U+252Ckey: C=+R; South-pointing "T"
179B3 U+2524key: C=+W; West-pointing "T"
180B4 U+258Ekey: C=+H; left 2/8 block
181B5 U+258Dkey: C=+J; left 3/8 block
182B6 reverse U+258Bkey: C=+L; right 3/8 block (reverse Unicode left 5/8)
183B7 reverse U+2586key: C=+Y; top 2/8 block (reverse Unicode bottom 6/8)
184B8 reverse U+2585key: C=+Y; top 3/8 block (reverse Unicode bottom 5/8)
185B9 U+2583key: C=+O; bottom 3/8 block
186BA U+259Fkey: Shift+@; Bottom right corner, similar to "L" mirror-X
187BB U+2596key: C=+F; bottom left block
188BC U+259Dkey: C=+C; top right block
189BD U+2518key: C=+X; corner up and left
190BE U+2598key: C=+V; top left block
191BF U+259Akey: C=+B; top left and bottom right blocks
 
Block 6, Extended Graphics (Primary)
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
192C0 U+2500key: Shift+*; Horizontal bar at Y 5/8 (VIC-II/TED centered thick bar)
193C1 U+2660key: Shift+A; Spade suit
194C2? U+??key: Shift+B; Vertical bar at X 4/8 (VIC-II/TED centered thick bar)
195C3? U+??key: Shift+C; Horizontal bar at Y 4/8 (VIC-II/TED centered thick bar)
196C4? U+??key: Shift+D; Horizontal bar at Y 3/8
197C5? U+??key: Shift+E; Horizontal bar at Y 2/8
198C6? U+??key: Shift+F; Horizontal bar at Y 6/8
199C7? U+??key: Shift+G; Vertical bar at X 3/8
200C8? U+??key: Shift+H; Vertical bar at X 6/8
201C9 U+256Ekey: Shift+I; Arc bottom to left
202CA U+2570key: Shift+J; Arc top to right
203CB U+256Fkey: Shift+K; Arc top to left
204CC U+2599key: Shift+L; Bottom left corner, similar to "L"
205CD U+2572key: Shift+M; Diaganol top left to bottom right
206CE U+2571key: Shift+N; Diaganol bottom left to top right
207CF
 U+259Bkey: Shift+O; Top left corner, similar to "Γ"
208D0 U+259Ckey: Shift+P; Top right corner, similar to "7")
209D1∙ (or •) U+2219 or U+2022
key: Shift+Q; Solid circle/bullet
210D2? U+??key: Shift+R; Horizontal bar at Y 7/8
211D3 U+2665key: Shift+S; Heart suit
212D4? U+??key: Shift+T; Horizontal bar at X 2/8
213D5 U+256Dkey: Shift+U; Arc bottom to right
214D6 U+2573key: Shift+V; Diaganol cross, similar to "X"
215D7 U+2218key: Shift+W; Hollow circle/bullet
216D8 U+2663key: Shift+X; Spade suit
217D9? U+??key: Shift+Y; Vertical bar at X 7/8
218DA U+2666key: Shift+Z; Diamond suit
219DB U+253Ckey: Shift++; Cross, similar to "+"
220DC (left half) U+25A6 (left half)key: C=+-; Diaganol cross-hatch (left half)
221DD124 |U+2502key: Shift+-; Vertical bar at X 5/8 (VIC-II/TED centered thick bar)
222DEπ U+03C0key: C=+^ or Shift+^; lower-case pi
223DF U+25E5key: C=+*; Upper right triangle
 
Block 7, Common Graphics (Alternate)
CodeGlyph ASCIIUnicodeNote(s)
Dec.Hex
224E0 32 SPU+00A0key: Shift+Spacebar; non-breaking space
225E1 U+258Ckey: C=+K; right half block
226E2 U+2584key: C=+I; bottom half block
227E3 U+2594key: C=+T; top 1/8 block
228E4 U+2581key: C=+@; bottom 1/8 block
229E5 U+258Fkey: C=+G; left 1/8 block (2/8 block on VIC-II and TED)
230E6 U+25A9key: C=++; diaganol cross-hatch
231E7 U+2595key: C=+M; right 1/8 block (2/8 block on VIC-II and TED)
232E8? U+???key: C=+£; bottom half cross-hatch
233E9 U+25E4key: Shift+£; upper left triangle
234EA reverse U+258Akey: C=+N; right 2/8 block (reverse Unicode left 6/8)
235EB U+251Ckey: C=+Q; East-pointing "T"
236EC U+2597key: C=+D; bottom right block
237ED U+2514key: C=+Z; corner up and right
238EE U+2510key: C=+S; corner down and left
239EF U+2582key: C=+P; bottom 2/8 block
240F0 U+250Ckey: C=+A; corner down and right
241F1 U+2534key: C=+E; North-pointing "T"
242F2 U+252Ckey: C=+R; South-pointing "T"
243F3 U+2524key: C=+W; West-pointing "T"
244F4 U+258Ekey: C=+H; left 2/8 block
245F5 U+258Dkey: C=+J; left 3/8 block
246F6 reverse U+258Bkey: C=+L; right 3/8 block (reverse Unicode left 5/8)
247F7 reverse U+2586key: C=+Y; top 2/8 block (reverse Unicode bottom 6/8)
248F8 reverse U+2585key: C=+Y; top 3/8 block (reverse Unicode bottom 5/8)
249F9 U+2583key: C=+O; bottom 3/8 block
250FA
 U+259Fkey: Shift+@; Bottom right corner, similar to "L" mirror-X
251FB U+2596key: C=+F; bottom left block
252FC U+259Dkey: C=+C; top right block
253FD U+2518key: C=+X; corner up and left
254FE U+2598key: C=+V; top left block
255FFπ (not ▚) U+03C0key: C=+^ or Shift+^; lower-case pi (NOT pair of blocks; see code 191)
 

© H2Obsession, 2014, 2015, 2016, 2026