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, 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 ...
.


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 comput ...
) and PET designer Chuck Peddle. 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 ...
when laying out desired changes to Microsoft's existing 6502
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 mo ...
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 Co ...
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 or typescript ...
( _ ) 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 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 ...
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). 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, ...
'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 or bitmap index. As a noun, the term "bitmap" is very often used to refer to a particular bitmapping application: t ...
-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. Graysc ...
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 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 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 ...
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 standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems. The standard, ...
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 or non-printing character (NPC) is a code point (a number) in a character set, that does not represent a written symbol. They are used as in-band signaling to cause effects other than the ...
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, he ...
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 W ...
, Commodore 16, 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. 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 ...
, 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, 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 ...
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 * Atari ST character set * ZX Spectrum character set *
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 emu ...


Notes

# The
Amiga Amiga is a family of personal computers introduced by Commodore International, 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 sign ...
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