Skip to content

PETSCII

​PETSCII (PET Standard Code of Information Interchange), is a character set developed by Commodore for their 8-bit computers. (see also CBM-ASCII or PET-ASCII). This set extends the 1963 version of ASCII, incorporating graphical symbols alongside standard alphanumeric characters. These graphical symbols enabled users to create simple, character-based graphics, facilitating game development and enhancing the visual capabilities of Commodore computers. The character set operates in two modes:​

  • Unshifted Mode: Includes uppercase letters and a variety of graphical symbols.​
  • Shifted Mode: Provides both uppercase and lowercase letters, with some graphical symbols replaced by lowercase characters.​

Users can toggle between these modes to access the desired set of characters. Additionally, PETSCII includes control characters that manage cursor movement and screen functions, such as clearing the screen or returning the cursor to the home position, allowing for dynamic text and graphics manipulation within programs. The inclusion of graphical symbols in PETSCII facilitated the creation of blocky, pixelated images, leading to a unique art form known as PETSCII art, showcasing the creative potential of character-based graphics on Commodore computers.

Editors

Search for "PETSCII Editor". Here are some results:

Examples

Example ​PETSCII Art (not mine)

Stormtrooper PETSCII Image on Commodore 64

Source: https://github.com/8bitsten/public/tree/main/c64/stormtrp

stormtrp is a program written in BASIC that displays an "image" composed of 40*25 PETSCII characters on the Commodore 64 screen.

10 PRINT "{clear}"
20 POKE 53280,0
30 POKE 53281,0
100 FOR I=0 TO 999
110 READS:POKE 1024+I,S
120 READC:POKE 55296+I,C
130 NEXT
150 GOTO 150
1000 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1010 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1020 DATA160,0,160,0,160,1,160,1,160,1,160,1,160,1
1030 DATA160,1,160,1,160,1,160,1,160,0,160,0,160,0
1040 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1050 DATA160,0,160,0,160,0,160,0,160,0
1060 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1070 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1080 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1090 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,0
1100 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1110 DATA160,0,160,0,160,0,160,0,160,0
1120 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1130 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,1
1140 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1150 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1160 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1170 DATA160,0,160,0,160,0,160,0,160,0
1180 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1190 DATA160,0,160,0,160,0,160,0,160,0,160,1,160,1
1200 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1210 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1220 DATA160,1,160,0,160,0,160,0,160,0,160,0,160,0
1230 DATA160,0,160,0,160,0,160,0,160,0
1240 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1250 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
1260 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1270 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1280 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
1290 DATA160,0,160,0,160,0,160,0,160,0
1300 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1310 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
1320 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1330 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1340 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
1350 DATA160,0,160,0,160,0,160,0,160,0
1360 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1370 DATA160,0,160,0,160,0,160,0,160,15,160,15,160,15
1380 DATA160,15,160,15,160,15,160,15,160,15,160,15,160,15
1390 DATA160,15,160,15,160,15,160,15,160,15,160,15,160,15
1400 DATA160,15,160,15,160,0,160,0,160,0,160,0,160,0
1410 DATA160,0,160,0,160,0,160,0,160,0
1420 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1430 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1440 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1450 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1460 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1470 DATA160,0,160,0,160,0,160,0,160,0
1480 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1490 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1500 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1510 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1520 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1530 DATA160,0,160,0,160,0,160,0,160,0
1540 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1550 DATA160,0,160,0,160,0,160,1,160,15,160,0,160,0
1560 DATA160,0,160,0,160,0,160,0,160,0,160,15,160,1
1570 DATA160,15,160,0,160,0,160,0,160,0,160,0,160,0
1580 DATA160,0,160,15,160,1,160,0,160,0,160,0,160,0
1590 DATA160,0,160,0,160,0,160,0,160,0
1600 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1610 DATA160,0,160,0,160,0,160,1,160,1,160,15,160,0
1620 DATA160,0,160,0,160,0,160,0,160,15,160,15,160,1
1630 DATA160,15,160,15,160,0,160,0,160,0,160,0,160,0
1640 DATA160,15,160,1,160,1,160,0,160,0,160,0,160,0
1650 DATA160,0,160,0,160,0,160,0,160,0
1660 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1670 DATA160,0,160,0,160,0,160,1,160,1,160,15,160,0
1680 DATA160,0,160,0,160,15,160,15,160,1,160,1,160,1
1690 DATA160,1,160,15,160,15,160,0,160,0,160,0,160,0
1700 DATA160,15,160,1,160,1,160,0,160,0,160,0,160,0
1710 DATA160,0,160,0,160,0,160,0,160,0
1720 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1730 DATA160,0,160,0,160,0,160,0,160,1,160,15,160,15
1740 DATA160,15,160,15,160,1,160,1,160,1,160,1,160,1
1750 DATA160,1,160,1,160,1,160,15,160,15,160,15,160,15
1760 DATA160,15,160,1,160,0,160,0,160,0,160,0,160,0
1770 DATA160,0,160,0,160,0,160,0,160,0
1780 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1790 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
1800 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1810 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1820 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
1830 DATA160,0,160,0,160,0,160,0,160,0
1840 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1850 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
1860 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1870 DATA160,1,160,1,160,1,160,1,160,1,160,1,160,1
1880 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
1890 DATA160,0,160,0,160,0,160,0,160,0
1900 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1910 DATA160,0,160,0,160,0,160,1,160,1,160,0,160,1
1920 DATA160,1,160,1,160,1,160,1,160,1,160,0,160,0
1930 DATA160,0,160,1,160,1,160,1,160,1,160,1,160,1
1940 DATA160,0,160,1,160,1,160,0,160,0,160,0,160,0
1950 DATA160,0,160,0,160,0,160,0,160,0
1960 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
1970 DATA160,0,160,0,160,1,160,12,160,1,160,1,160,0
1980 DATA160,1,160,1,160,1,160,1,160,0,160,0,160,0
1990 DATA160,0,160,0,160,1,160,1,160,1,160,1,160,0
2000 DATA160,1,160,1,160,12,160,1,160,0,160,0,160,0
2010 DATA160,0,160,0,160,0,160,0,160,0
2020 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2030 DATA160,0,160,0,160,1,160,1,160,12,160,1,160,1
2040 DATA160,0,160,1,160,1,160,0,160,0,160,0,160,0
2050 DATA160,0,160,0,160,0,160,1,160,1,160,0,160,1
2060 DATA160,1,160,12,160,1,160,1,160,0,160,0,160,0
2070 DATA160,0,160,0,160,0,160,0,160,0
2080 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2090 DATA160,0,160,0,160,1,160,1,160,1,160,12,160,1
2100 DATA160,1,160,1,160,0,160,0,160,0,160,1,160,1
2110 DATA160,1,160,0,160,0,160,0,160,1,160,1,160,1
2120 DATA160,12,160,1,160,1,160,1,160,0,160,0,160,0
2130 DATA160,0,160,0,160,0,160,0,160,0
2140 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2150 DATA160,0,160,0,160,0,160,1,160,1,160,1,160,12
2160 DATA160,1,160,0,160,0,160,1,160,1,160,1,160,1
2170 DATA160,1,160,1,160,1,160,0,160,0,160,1,160,12
2180 DATA160,1,160,1,160,1,160,0,160,0,160,0,160,0
2190 DATA160,0,160,0,160,0,160,0,160,0
2200 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2210 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
2220 DATA160,0,160,0,160,1,160,1,160,1,160,1,160,1
2230 DATA160,1,160,1,160,1,160,1,160,0,160,0,160,1
2240 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
2250 DATA160,0,160,0,160,0,160,0,160,0
2260 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2270 DATA160,0,160,0,160,0,160,0,160,1,160,1,160,1
2280 DATA160,12,160,1,160,1,160,1,160,1,160,15,160,0
2290 DATA160,15,160,1,160,1,160,1,160,1,160,12,160,1
2300 DATA160,1,160,1,160,0,160,0,160,0,160,0,160,0
2310 DATA160,0,160,0,160,0,160,0,160,0
2320 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2330 DATA160,0,160,0,160,0,160,0,160,0,160,1,160,1
2340 DATA160,1,160,0,160,1,160,1,160,15,160,0,160,0
2350 DATA160,0,160,15,160,1,160,1,160,0,160,1,160,1
2360 DATA160,1,160,0,160,0,160,0,160,0,160,0,160,0
2370 DATA160,0,160,0,160,0,160,0,160,0
2380 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2390 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,1
2400 DATA160,0,160,0,160,1,160,1,160,15,160,0,160,0
2410 DATA160,0,160,15,160,1,160,1,160,0,160,0,160,1
2420 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2430 DATA160,0,160,0,160,0,160,0,160,0
2440 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2450 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2460 DATA160,1,160,1,160,1,160,0,160,0,160,15,160,0
2470 DATA160,15,160,0,160,0,160,1,160,1,160,1,160,0
2480 DATA160,0,160,0,160,0,160,0,160,0,160,0,160,0
2490 DATA160,0,160,0,160,0,160,0,160,0

Running this looks like this:

​PETSCII_stormtrooper

_​PETSCII_stormtrooper