HOME

TheInfoList



OR:

PETSCII (''PET Standard Code of Information Interchange''), also known as CBM ASCII, is the character set used in Commodore Business Machines (CBM)'s 8-bit home computers, starting with the
PET A pet, or companion animal, is an animal kept primarily for a person's company or entertainment rather than as a working animal, livestock, or a laboratory animal. Popular pets are often considered to have attractive appearances, intelligence, ...
from 1977 and including the C16, C64, C116, C128, CBM-II,
Plus/4 The Commodore Plus/4 is a home computer released by Commodore International in 1984. The "Plus/4" name refers to the four-application ROM resident office suite (word processor, spreadsheet, database, and graphing); it was billed as "the produc ...
, and
VIC-20 The VIC-20 (known as the VC-20 in Germany and the VIC-1001 in Japan) is an 8-bit home computer that was sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commodore's first personal computer, the PE ...
.


History

The character set was largely designed by Leonard Tramiel (the son of Commodore CEO
Jack Tramiel Jack Tramiel ( ; born Idek Trzmiel; December 13, 1928 – April 8, 2012) was an American businessman and Holocaust survivor, best known for founding Commodore International. The Commodore PET, VIC-20 and Commodore 64 are some home compute ...
) and PET designer
Chuck Peddle Charles Ingerham Peddle (November 25, 1937 – December 15, 2019) was an American electrical engineer best known as the main designer of the MOS Technology 6502 microprocessor, the single-board computer, and its successor, the Commodore PET p ...
. The graphic characters of PETSCII were one of the extensions Commodore specified for
Commodore BASIC Commodore BASIC, also known as PET BASIC or CBM-BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985. The core is based on 6502 M ...
when laying out desired changes to Microsoft's existing
6502 The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit microprocessor that was designed by a small te ...
BASIC BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
to Microsoft's
Ric Weiland Richard William "Ric" Weiland (April 21, 1953 – June 24, 2006) was a computer software pioneer, programmer and philanthropist. He was the second employee at Microsoft Corporation, joining the company during his final year at Stanford Un ...
in 1977.A Conversation with Chuck Peddle, Bil Herd, Jeri Ellsworth - part 3 (2009 videoconference, 06:30)
The VIC-20 used the same pixel-for-pixel
font In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a "sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design. In mod ...
as the PET, although the characters appeared wider due to the VIC's 22-column screen. The Commodore 64, however, used a slightly re-designed, heavy upper-case font, essentially a thicker version of the PET's, in order to avoid color artifacts created by the machine's higher resolution screen. The C64's lowercase characters are identical to the lowercase characters in the
Atari 800 The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 as the Atari 400 and Atari 800. The series was successively upgraded to Atari 1200XL , Atari 600XL, Atari 800XL, Atari 65XE, Atari 130XE, Atari 800XE ...
's system font (released several years earlier). Peddle claims the inclusion of card suit symbols was spurred by the demand that it should be easy to write card games on the PET (as part of the specification list he received).


Specifications

PETSCII is based on the
1963 Events January * January 1 – Bogle–Chandler case: Commonwealth Scientific and Industrial Research Organisation scientist Dr. Gilbert Bogle and Mrs. Margaret Chandler are found dead (presumed poisoned), in bushland near the Lane Cov ...
version of ASCII (rather than the
1967 Events January * January 1 – Canada begins a year-long celebration of the 100th anniversary of Confederation, featuring the Expo 67 World's Fair. * January 5 ** Spain and Romania sign an agreement in Paris, establishing full consular and ...
version, which most if not all other computer character sets based on ASCII use). Assuming the graphics mode is ''unshifted'', PETSCII has only uppercase letters in its powerup state, an up-arrow ( ↑ ) instead of a
caret Caret is the name used familiarly for the character , provided on most QWERTY keyboards by typing . The symbol has a variety of uses in programming and mathematics. The name "caret" arose from its visual similarity to the original proofreade ...
( ^ ) in position $5E and a left-arrow ( ← ) instead of an
underscore An underscore, ; also called an underline, low line, or low dash; is a line drawn under a segment of text. In proofreading, underscoring is a convention that says "set this text in italic type", traditionally used on Manuscript (publishing), man ...
( _ ) in position $5F, these two variants are common in ASCII-1963. Also, in the VIC-20 and C64 version, the backslash ( \ ) in position $5C is occupied by a British pound sign ( £ ) (preceding the usage of the same ASCII code by the
Japanese Japanese may refer to: * Something from or related to Japan, an island country in East Asia * Japanese language, spoken mainly in Japan * Japanese people, the ethnic group that identifies with Japan through ancestry or culture ** Japanese diaspor ...
and Korean versions of
ISO 646 ISO/IEC 646 is a set of ISO/IEC standards, described as ''Information technology — ISO 7-bit coded character set for information interchange'' and developed in cooperation with ASCII at least since 1964. Since its first edition in 1 ...
for their respective currency symbols). In ''unshifted mode'', codes $60–$7F and $A0–$FF are allotted to CBM-specific block graphics characters (horizontal and vertical lines, hatches, shades, triangles, circles and
card suits In playing cards, a suit is one of the categories into which the cards of a deck are divided. Most often, each card bears one of several Pip (counting), pips (symbols) showing to which suit it belongs; the suit may alternatively or additionally b ...
). Ranges $00–$1F and $80–$9F have control codes. The
Commodore PET The Commodore PET is a line of personal computers produced starting in 1977 by Commodore International. A single all-in-one case combines a MOS Technology 6502 microprocessor, Commodore BASIC in read-only memory, keyboard, monochrome monitor, an ...
's lack of a programmable
bitmap In computing, a bitmap is a mapping from some domain (for example, a range of integers) to bits. It is also called a bit array A bit array (also known as bitmask, bit map, bit set, bit string, or bit vector) is an array data structure that c ...
-mode for
computer graphics Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great de ...
, as well as it having no redefinable character set capability, may be one of the reasons PETSCII was developed; by creatively using the well-thought-out block graphics, a higher degree of sophistication in screen graphics is attainable than by using plain ASCII's letter/digit/punctuation characters. In addition to the relatively diverse set of geometrical shapes that can thus be produced, PETSCII allows for several
grayscale In digital photography, computer-generated imagery, and colorimetry, a grayscale image is one in which the value of each pixel is a single sample representing only an ''amount'' of light; that is, it carries only intensity information. Graysca ...
levels by its provision of differently hatched
checkerboard A checkerboard (American English) or chequerboard (British English; see spelling differences) is a board of checkered pattern on which checkers (also known as English draughts) is played. Most commonly, it consists of 64 squares (8×8) of altern ...
squares/half-squares. Finally, the reverse-video mode (see below) is used to complete the range of graphics characters, in that it provides mirrored half-square blocks. PETSCII also has a ''text mode'', in which lowercase letters occupy the range $41–$5A, and uppercase letters occupy the range $C1–$DA. The mode is toggled by holding one of the SHIFT keys and then pressing and releasing the ''Commodore'' key. Regardless of whether the chip has undergone this graphic "shift", there are block graphic characters in the range of $E0-FF. This serves to distinguish PETSCII from those kinds of ASCII that go back no farther than ASCII-1967, so any text transfer between an 8-bit Commodore machine and one that uses 1967-derived ASCII would result in text where uppercase letters appear to be lowercase, and lowercase letters uppercase. There is no easy
Boolean Any kind of logic, function, expression, or theory based on the work of George Boole is considered Boolean. Related to this, "Boolean" may refer to: * Boolean data type, a form of data with only two possible values (usually "true" and "false" ...
operation to change these cases to the proper case. Thus, as with other computers based on non-standard-ASCII character sets, software conversion is needed when exchanging text files and/or telecommunicating with standard ASCII systems. The other ranges are unchanged in shifted mode; this means that the other characters added in ASCII-1967 besides lowercase lettersi.e. the grave accent, curly braces, vertical bar, and tildedo not exist in PETSCII. Included in PETSCII are
cursor Cursor may refer to: * Cursor (user interface), an indicator used to show the current position for user interaction on a computer monitor or other display device * Cursor (databases), a control structure that enables traversal over the records in ...
and screen control codes, such as , , , and (the latter two activating/deactivating reverse-video character display). The control codes appeared in program listings as reverse-video graphic characters, although some computer magazines, in their efforts to provide more clearly readable listings, pretty-printed the codes using their actual names, like the above examples. Such names were commonly enclosed in curly braces in the listings. This prevented ambiguity, since, as mentioned, PETSCII had no curly brace characters. The screen control codes were essentially similar to escape codes for text based computer terminals. As indicated above, PETSCII provides for shifting between the power-on default (unshifted) uppercase+graphics character set and the alternative (shifted) lower+uppercase set (where the shifted set contains a subset of the block graphic characters of the unshifted set). The shift between modes is done by POKEing location 59468 with the value 14 to select the alternative set or 12 to revert to standard. On C64 the sets are alternated by flipping bit 2 of the byte 53272. On some models of PET this can also be achieved via special control code PRINT CHR$(14) which adjust the line spacing as well as changing the character set; the POKE method is still available and does not alter the line spacing.THE COMMODORE PET COMPUTER / FREQUENTLY ASKED QUESTIONS FILE
VERSION 1.7 ( Updated 25 November 2000) BY LARRY ANDERSSON, COMMODORE COLLECTOR AND PET ENTHUSIAST
Thus, screen editor state changes, rather than the employment of separate ASCII codes, are used to choose between single-case (all capitals) and dual case. In the VIC-20, C64, and later machines (not including the CBM business computers), color codes supplement the other screen control codes. (The colors of the VIC-20 and C64/128 are listed in the
VIC-II The VIC-II (Video Interface Chip II), specifically known as the MOS Technology 6567/8562/8564 (NTSC versions), 6569/8565/8566 (PAL), is the microchip tasked with generating Y/C video signals (combined to composite video in the RF modulator) and D ...
article.)


Character set

Not all of the characters encoded by PETSCII are 'graphic' and not all of them have a corresponding
Unicode Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
representation. The following table shows for PETSCII characters the corresponding Unicode character and
code point In character encoding terminology, a code point, codepoint or code position is a numerical value that maps to a specific character. Code points usually represent a single grapheme—usually a letter, digit, punctuation mark, or whitespace—but ...
.
Control character In computing and telecommunication, a control Character (computing), character or non-printing character (NPC) is a code point (a number) in a character encoding, character set, that does not represent a written symbol. They are used as in-band ...
s and other non-printing characters are represented by their names. Where a particular code point encodes both a shifted and unshifted character, both characters are shown, with the unshifted character on the left and the shifted character on the right. Row and column headings indicate the
hexadecimal In mathematics and computing, the hexadecimal (also base-16 or simply hex) numeral system is a positional numeral system that represents numbers using a radix (base) of 16. Unlike the decimal system representing numbers using 10 symbols, hexa ...
digit combinations to produce the eight-bit code value; e.g., the letter ''L'' is at code value $4C. Note that the table below is for the
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in the Guinness ...
,
Commodore 16 The Commodore 16 is a home computer made by Commodore International with a 6502-compatible 7501 or 8501 CPU, released in 1984 and intended to be an entry-level computer to replace the VIC-20. A cost-reduced version, the Commodore 116, was ...
, and
Commodore 128 The Commodore 128, also known as the C128, C-128, C= 128,The "C=" represents the graphical part of the logo. is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the ...
. Control characters differ between these machines and are presented in
separate tables ''Separate Tables'' is the collective name of two one-act plays by Terence Rattigan, both taking place in the Beauregard Private Hotel, Bournemouth, on the south coast of England. The first play, titled ''Table by the Window'', focuses on the ...
. Other Commodore machines used slightly different versions of PETSCII, which used different control characters and in some cases different graphic characters. For example, on CBM machines prior to the
VIC-20 The VIC-20 (known as the VC-20 in Germany and the VIC-1001 in Japan) is an 8-bit home computer that was sold by Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commodore's first personal computer, the PE ...
, characters $2C and $6C both produced a comma character, albeit with slightly different semantics. The actual character generator ROM used a different set of assignments. For example, to display the characters "@ABC" on screen by directly writing into the
screen memory A screen memory is a distorted memory, generally of a visual rather than verbal nature, deriving from childhood. The term was coined by Sigmund Freud, and the concept was the subject of his 1899 paper "Screen Memories". Childhood origins Freud was ...
, one would POKE the decimal values 0, 1, 2, and 3 rather than 64, 65, 66, and 67. The keyboard by default provides access to the lower half of the code page. Pressing shift+key gives the corresponding upper half code point.


Control characters

Some PETSCII codes cannot be printed and are only used for keyboard input (e.g. F1, RUN/STOP).


Commodore 64 control characters


Commodore 16 control characters


Commodore 128, 40-column mode control characters


Commodore 128, 80-column mode control characters


Commodore 65 prototype, 80-column mode control characters


Base 128

Out of PETSCII's first 192 codes, 164 have visible representations (for the control codes, these are visible ''when quoted''): 5 (white), 17–20 and 28–31 (colors and cursor controls), 32–90 (
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
equivalent), 91–127 (graphics), 129 (orange), 133–140 (function keys), 144–159 (colors and cursor controls), and 160–192 (graphics). This permits "base128"-style encodings in DATA statements, or perhaps between PETSCII-speaking machines; for example, 33–127, 160–192.


See also

*
ATASCII The ATASCII character set, from ''ATARI Standard Code for Information Interchange'', alternatively ''ATARI ASCII'', is the variation on ASCII used in the Atari 8-bit family of home computers. The first of this family are the Atari 400 and 800, ...
*
Atari ST character set The Atari ST character set is the character set of the Atari ST personal computer family including the Atari STE, TT and Falcon. It is based on code page 437, the original character set of the IBM PC, and like that set includes ASCII codes 3 ...
*
ZX Spectrum character set The ZX Spectrum character set is the variant of ASCII used in the ZX Spectrum family computers. It is based on ASCII-1967 but the characters ^, ` and DEL are replaced with ↑, £ and ©. It also differs in its use of the C0 control codes other th ...
*
Extended ASCII Extended ASCII is a repertoire of character encodings that include (most of) the original 96 ASCII character set, plus up to 128 additional characters. There is no formal definition of "extended ASCII", and even use of the term is sometimes critic ...
*
Text semigraphics Text-based semigraphics or pseudographics is a primitive method used in early text mode video hardware to emulate raster graphics without having to implement the logic for such a display mode. There are two different ways to accomplish the em ...


Notes

# The
Amiga Amiga is a family of personal computers introduced by Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and significantly improved graphi ...
home/personal computer family uses standard ISO-8859-1. # see ''On The Edge'' by Brian Bagnall, , pp. 43, 54–55.


References


External links


PETSCII character map, part 1part 2part 3
(
JPEG JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
) * An attempt at PETSCII to Unicode mapping
unshiftedshifted

Another PETSCII to Unicode mapping
and
TrueType font
using that mapping
Typography in 8 bits: System fontsOnline PETSCII-art editorPETSCII-art
{{DEFAULTSORT:Petscii Character sets Commodore International Commodore 64 VIC-20 ASCII Computer-related introductions in 1977