ZX Spectrum character set

ZX Spectrum character set

The ZX Spectrum character set is the variant of ASCII used in the British Sinclair Spectrum computers. It is based on ASCII-1967 (the standard ASCII on which all modern character sets are based), but with one character from ASCII-1963 (the first version of ASCII), two graphics characters nonstandardly assigned, an idiosyncratic use of the control code area and use of the 128 high-bit characters beyond the ASCII range.

In the control codes area (the C0 range), the Spectrum uses its own proprietary controls, such as INK and PAPER to control foreground and background colour. The only similarity to ASCII is having cursor-left for 0x08 (ASCII Back Space) and ENTER for 0x0D (ASCII Carriage Return), which also generates an automatic linefeed. Cursor-down 0x0A (ASCII Line Feed) can be simulated with 32 spaces printed with OVER 1 (transparent overprint) and cursor-up 0x0B (ASCII Vertical Tabulation) can be simulated with 32 backspaces. The system ROM has a fault which prevents cursor-right 0x09 (ASCII Horizontal Tabulation) from working.

Ranges 0x00–0x05, 0x07, 0x0A–0x0C, 0x0E, 0x0F and 0x17–0x1F are undefined. The graphics part of the Spectrum Character Set, 0x20–0x7F, is almost standard, except that 0x60 has the pound sign (£) instead of the grave accent (`) and 0x7F has the copyright sign (©) instead of the control code DEL. Note that the pound sign was mapped to 0x60, and not 0x23 as in the British variant of ASCII (ISO-646-GB), making both pound sign and number sign (#) available universally. Code 0x5E contains an up-arrow (↑) as in ASCII-1963 instead of the ASCII-1967 caret (^); however, 0x5F has an underscore and not a left-arrow.

Beyond 0x7F, the Spectrum character set uses the high-bit range, 0x80–0xFF, for its special purposes. 0x80–0x8F contain block graphics. 0x90–0xA4 contain the User Defined Graphics (UDGs), which the user can customise with a few lines of BASIC. 0xA5–0xFF contain tokens (BASIC keywords represented as single characters): for example, pressing P at the beginning of a line would generate the code 0xF6, which would cause the BASIC keyword PRINT to display on the screen. Codes 0xC7–0xC9 are the shortcuts for the mathematical operators <= (less-than-or-equal), >= (greater-than-or-equal) and <> (not-equal) respectively; unlike the relational operators of most other systems, these are characters in their own right and cannot be achieved by typing the two constituent symbols one after the other.

Mapping the printable Spectrum Character Set to Unicode is possible, but fonts containing some of the block graphics characters are still not commonplace.

The default printable characters (32 (space) to 127 (copyright)) are stored at the end of the Spectrum's ROM at memory address 15616 (0x3D00) to 16383 (0x3FFF) and are referenced by the system variable CHARS which can be found at memory address 23606/7. Interestingly, the value in CHARS is actually 256 bytes lower than the first byte of the space character so that referencing a printable ASCII character does not need to consider the first 32 characters. As such, the CHARS value (by default) holds the address 15360 (0x3C00).

The UDG characters (Gr-A to Gr-U) are stored at the end of the Spectrum's RAM at memory address 65368 (0xFF58) to 65535 (0xFFFF). As such, POKEing this address range has immediate effect on the UDG characters. The USR keyword (when followed by a single quoted character) provides a quick method to reference these addresses from BASIC. As with the printable characters, the location of the UDG characters is stored in the system variable UDG.

Codepage layout

Spectrum Character Set
0x1x2x3x4x5x6x7x8x9xAxBxCxDxExFx
x0INK 0@P£p(A)(Q)VALUSRFORMATLPRINTLIST
x1PAPER!1AQaq(B)(R)LENSTR$MOVELLISTLET

x2FLASH"2BRbr(C)(S)SINCHR$ERASESTOPPAUSE
x3BRIGHT#3CScs(D)(T)1COSNOTOPEN #READNEXT

x4INVERSE$4DTdt(E)(U)2TANBINCLOSE #DATAPOKE

x5OVER%5EUeu(F)RNDASNORMERGERESTOREPRINT
x6commaAT&6FVfv(G)INKEY$ACSANDVERIFYNEWPLOT

x7TAB'7GWgw(H)PIATN<=BEEPBORDERRUN
x8left(8HXhx(I)FNLN>=CIRCLECONTINUESAVE

x9right)9IYiy(J)POINTEXP<>INKDIMRANDOMIZE
xA*:JZjz(K)SCREEN$INTLINEPAPERREMIF

xB+;K [k{(L)ATTRSQRTHENFLASHFORCLS
xC,<Ll|(M)ATSGNTOBRIGHTGO TODRAW

xDenter-=M] m}(N)TABABSSTEPINVERSEGO SUBCLEAR

xE.>Nn~(O)VAL$PEEKDEF FNOVERINPUTRETURN
xF/?O_o©(P)CODEINCATOUTLOADCOPY

(X) characters are User Definable Graphics
1 SPECTRUM under the 128K BASIC
2 PLAY under the 128K BASIC

See also

* PETSCII
* ATASCII
* Extended ASCII

External links

* [http://web.archive.org/web/20050307204242/http://eclecticsatyr.hostultra.com/speccs.htm Sinclair Spectrum+ 48K Character Set] – From Michael Zaretski's website
* [http://web.archive.org/web/20050307204242/http://eclecticsatyr.hostultra.com/speccs.txt Mapping table from Sinclair Spectrum+ 48K Character Set to Unicode] – From the same site


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Multinational Character Set — The Multinational Character Set (MCS) is a character encoding created by Digital Equipment Corporation for use in the popular VT220 terminal. It was an 8 bit extension of ASCII that added accented characters, currency symbols, and other character …   Wikipedia

  • Character encoding — Special characters redirects here. For the Wikipedia editor s handbook page, see Help:Special characters. A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of… …   Wikipedia

  • Spectrum+ — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • Spectrum — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • Spectrum 128 — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • Spectrum 48 — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • Sinclair ZX Spectrum — Infobox computer Photo = Type = Home computer Released = 23 April 1982 Discontinued = December 1990 Processor = Z80 @ 3.5 MHz and equivalent Memory = 16 KB / 48 KB / 128 KB OS = Sinclair BASICThe Sinclair ZX Spectrum is an 8 bit personal home… …   Wikipedia

  • Sinclair ZX-Spectrum — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • Sinclair ZX Spectrum — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

  • ZX Spectrum +3 — ZX Spectrum Тип Домашний компьютер Выпущен 23 апреля 1982 года Выпускался по декабрь 1990 года Процессор Z80, 3,5 МГц …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”