P8SCII

From Pico-8 Wiki
Jump to navigation Jump to search

P8SCII is PICO-8's character set. It has 256 codes, consisting of 16 control codes and 240 printable characters (letters, numbers, symbols).

For detailed information about control codes, see P8SCII Control Codes.

P8SCII reference

Control codes

Control codes describe effects that occur during printing of strings via the print() function. Typically, you specify a control code in a string literal with an escape sequence. Code strings can also be calculated by number with chr(). Except for cursor position, foreground color, and audio in progress, effects are reset at the end of the print() function call.

Some codes accept parameters as characters after the control code. See P8SCII Control Codes for more details.

Number Escape Sequence Character Name Parameters
0 \0 none Terminate printing
1 \* ¹ Repeat next character P0: number of times to repeat
2 \# ² Draw solid background P0: color
3 \- ³ Move cursor horizontally P0: num of pixels minus 16
4 \| ⁴ Move cursor vertically P0: num of pixels minus 16
5 \+ ⁵ Move cursor P0: horiz offset minus 16; P1: vert offset minus 16
6 \^ ⁶ Special command See P8SCII Control Codes
7 \a ⁷ Audio command See P8SCII Control Codes
8 \b ⁸ Backspace
9 \t tab Tab
10 \n newline Newline
11 \v ᵇ Decorate previous character See P8SCII Control Codes
12 \f ᶜ Set foreground color P0: color
13 \r none Carriage return
14 \14 ᵉ Switch font defined at 0x5600
15 \15 ᶠ Switch font to default

Symbols and Japanese punctuation

PICO-8 rendering of the symbols and Japanese punctuation character range

Characters 16-31 are symbols useful as icons or Japanese punctuation.

These can be typed by entering one of the Japanese modes (Ctrl+J/Ctrl+K) then pressing the key in the Entry column

Number Character Name Unicode Entry (in Japanese mode)
16 ▮ Vertical rectangle U+25AE Shift+1
17 ■ Filled square U+25A0 Shift+2
18 □ Hollow square U+25A1 Shift+3
19 ⁙ Five dot U+2059 Shift+4
20 ⁘ Four dot U+2058 Shift+5
21 ‖ Pause U+2016 Shift+6
22 ◀ Back U+25C0 Shift+7
23 ▶ Forward U+25B6 Shift+8
24 「 Japanese starting quote U+300C [
25 」 Japanese ending quote U+300D ]
26 ¥ Yen sign U+A5 \
27 • Interpunct U+2022 /
28 、 Japanese comma U+3001 ,
29 。 Japanese full stop U+3002 .
30 ゛ Japanese dakuten U+309B e.g. ba
31 ゜ Japanese handakuten U+309C e.g. pa

ASCII characters

PICO-8 rendering of the ASCII character range

Printable characters 32-127 match the ASCII standard.

Within PICO-8, English letters in the range 65-90 print in lowercase (small caps), while letters in the range 97-122 print in uppercase.

Lowercase letters (small caps) can be typed in puny font mode (Ctrl+P).

Number Character Name Number Character Name
32 space space 80 P P
33 ! ! 81 Q Q
34 " Double quote 82 R R
35 # Number sign 83 S S
36 $ Dollar sign 84 T T
37 % Percent sign 85 U U
38 & Ampersand 86 V V
39 ' Single quote 87 W W
40 ( ( 88 X X
41 ) ) 89 Y Y
42 * * 90 Z Z
43 + + 91 [ [
44 , , 92 \ \
45 - - 93 ] ]
46 . . 94 ^ Caret
47 / / 95 _ Underscore
48 0 0 96 ` Backtick
49 1 1 97 a a
50 2 2 98 b b
51 3 3 99 c c
52 4 4 100 d d
53 5 5 101 e e
54 6 6 102 f f
55 7 7 103 g g
56 8 8 104 h h
57 9 9 105 i i
58 : : 106 j j
59 ; ; 107 k k
60 < < 108 l l
61 = = 109 m m
62 > > 110 n n
63 ? ? 111 o o
64 @ @ 112 p p
65 A A 113 q q
66 B B 114 r r
67 C C 115 s s
68 D D 116 t t
69 E E 117 u u
70 F F 118 v v
71 G G 119 w w
72 H H 120 x x
73 I I 121 y y
74 J J 122 z z
75 K K 123 { {
76 L L 124 | Vertical bar
77 M M 125 } }
78 N N 126 ~ Tilde
79 O O

Typeable symbols

PICO-8 rendering of the typeable symbols character range

Characters 127-153 and 254-255 are graphical symbols proprietary to PICO-8.

Symbols in the range 128-153 can be entered in the PICO-8 editor by holding the Shift key and pressing a letter key, assigned in alphabetical order. Many symbols have intuitive assignments. For example, the Up, Down, Right, Left, X, and O keypad symbols are assigned to Shift-U, Shift-D, Shift-R, Shift-L, Shift-X, and Shift-O, respectively.

Tip: The btn() and btnp() functions accept the keypad symbols as an argument, as an alternative to the key code. Use the corresponding symbol as if it were a variable name, without string quotes:

if btn(❎) then
  jump()
end

When printed, characters 128-255 are eight pixels wide. Characters 32-127 print as four pixels wide.

Note: PICO-8 uses variation selector 16 (U+FE0F) with the Unicode emoji symbols for Down key (⬇️), Left key (⬅️), O key (🅾️), Right key (➡️), and Up key (⬆️). Not all emoji-capable displays show an emoji variant glyph for Black Rightwards Arrow (U+27A1), but PICO-8 uses the variation selector anyway. The variation selector is not used with X key (U+274E).

Number Character Name Unicode Entry
127 ○ Hollow circle U+25CB
128 █ Rectangle U+2588 Shift-A
129 ▒ Checkerboard U+2592 Shift-B
130 🐱 Jelpi U+1F431 Shift-C
131 ⬇️ Down key U+2B07 U+FE0F Shift-D
132 ░ Dot pattern U+2591 Shift-E
133 ✽ Throwing star U+273D Shift-F
134 ● Ball U+25CF Shift-G
135 ♥ Heart U+2665 Shift-H
136 ☉ Eye U+2609 Shift-I
137 웃 Man U+C6C3 Shift-J
138 ⌂ House U+2302 Shift-K
139 ⬅️ Left key U+2B05 U+FE0F Shift-L
140 😐 Face U+1F610 Shift-M
141 ♪ Musical note U+266A Shift-N
142 🅾️ O key U+1F17E U+FE0F Shift-O
143 ◆ Diamond U+25C6 Shift-P
144 … Ellipsis U+2026 Shift-Q
145 ➡️ Right key U+27A1 U+FE0F Shift-R
146 ★ Five-pointed star U+2605 Shift-S
147 ⧗ Hourglass U+29D7 Shift-T
148 ⬆️ Up key U+2B06 U+FE0F Shift-U
149 ˇ Birds U+2C7 Shift-V
150 ∧ Sawtooth U+2227 Shift-W
151 ❎ X key U+274E Shift-X
152 ▤ Horiz lines U+25A4 Shift-Y
153 ▥ Vert lines U+25A5 Shift-Z

Hiragana

PICO-8 rendering of the Japanese Hiragana character range

Characters 154-203 are the Japanese Hiragana alphabet, and characters 204-253 are the Japanese Katakana alphabet. Japanese characters appear in order, followed by the four digraph indicators.

Japanese diacritics and punctuation can be found in characters 24-31.

Hiragana characters can be typed by entering Hiragana mode (Ctrl+J) and then typing out the character's sound, as seen in the table below.

Number Character Entry Unicode Number Character Entry Unicode
154 あ a U+3042 179 は ha U+306F
155 い i U+3044 180 ひ hi U+3072
156 う u U+3046 181 ふ fu U+3075
157 え e U+3048 182 へ he U+3078
158 お o U+304A 183 ほ ho U+307B
159 か ka U+304B 184 ま ma U+307E
160 き ki U+304D 185 み mi U+307F
161 く ku U+304F 186 む mu U+3080
162 け ke U+3051 187 め me U+3081
163 こ ko U+3053 188 も mo U+3082
164 さ sa U+3055 189 や ya U+3084
165 し shi U+3057 190 ゆ yu U+3086
166 す su U+3059 191 よ yo U+3088
167 せ se U+305B 192 ら ra U+3089
168 そ so U+305D 193 り ri U+308A
169 た ta U+305F 194 る ru U+308B
170 ち chi U+3061 195 れ re U+308C
171 つ tsu U+3064 196 ろ ro U+308D
172 て te U+3066 197 わ wa U+308F
173 と to U+3068 198 を wo U+3092
174 な na U+306A 199 ん nn U+3093
175 に ni U+306B 200 っ tt U+3063
176 ぬ nu U+306C 201 ゃ e.g: kya U+3083
177 ね ne U+306D 202 ゅ e.g. kyu U+3085
178 の no U+306E 203 ょ e.g: kyo U+3087

Katakana

PICO-8 rendering of the Japanese Katakana character range

Characters 204-253 are the Japanese Katakana alphabet. Japanese characters appear in order, followed by the four digraph indicators.

Japanese diacritics and punctuation can be found in characters 24-31.

Katakana characters can be typed by entering Katakana mode (Ctrl+K) and then typing out the character's sound, as seen in the table below.

Number Character Entry Unicode Number Character Entry Unicode
204 ア a U+30A2 229 ハ ha U+30CF
205 イ i U+30A4 230 ヒ hi U+30D2
206 ウ u U+30A6 231 フ fu U+30D5
207 エ e U+30A8 232 ヘ he U+30D8
208 オ o U+30AA 233 ホ ho U+30DB
209 カ ka U+30AB 234 マ ma U+30DE
210 キ ki U+30AD 235 ミ mi U+30DF
211 ク ku U+30AF 236 ム mu U+30E0
212 ケ ke U+30B1 237 メ me U+30E1
213 コ ko U+30B3 238 モ mo U+30E2
214 サ sa U+30B5 239 ヤ ya U+30E4
215 シ shi U+30B7 240 ユ yu U+30E6
216 ス su U+30B9 241 ヨ yo U+30E8
217 セ se U+30BB 242 ラ ra U+30E9
218 ソ so U+30BD 243 リ ri U+30EA
219 タ ta U+30BF 244 ル ru U+30EB
220 チ chi U+30C1 245 レ re U+30EC
221 ツ tsu U+30C4 246 ロ ro U+30ED
222 テ te U+30C6 247 ワ wa U+30EF
223 ト to U+30C8 248 ヲ wo U+30F2
224 ナ na U+30CA 249 ン nn U+30F3
225 ニ ni U+30CB 250 ッ tt U+30C3
226 ヌ nu U+30CC 251 ャ e.g. kya U+30E3
227 ネ ne U+30CD 252 ュ e.g. kyu U+30E5
228 ノ no U+30CE 253 ョ e.g. kyo U+30E7

Remaining symbols

PICO-8 rendering of the final two symbols of the P8SCII character set

The final two characters in the P8SCII set offer two more symbols.

These can be typed by entering one of the Japanese modes (Ctrl+J/Ctrl+K) then pressing the key in the Entry column

Number Character Name Unicode Entry (in Japanese)
254 ◜ Left arc U+25DC Shift+9
255 ◝ Right arc U+25DD Shift+0

Using PS8SCII codes

All characters and codes can appear in string literals using either typed characters or escape sequences. Some codes have special escape sequences, such as \n for a newline code. All codes can be entered via their number using an escape sequence such as \0xxx, where xxx is the number in decimal.

print("press ❎ to jump\npress 🅾️ to use an item")

price = 729
print("cost: " .. chr(26) .. tostr(price))

The chr() function takes a number and returns a one-character string with the corresponding P8SCII character. The ord() function takes a one-character string and returns the P8SCII code for that character as a number.

All printable characters have an equivalent symbol in the Unicode character set. You can type a printable character in the PICO-8 editor by entering the corresponding symbol or by pasting it from the clipboard. PICO-8 uses the Unicode equivalent when saving to a .p8 file, printing to the console via printh(), or copying to the clipboard.

Note: The P8SCII value is not the same as the Unicode value! The character sets overlap in the ASCII range (32-126), with uppercase and lowercase swapped. Otherwise, a P8SCII printable character maps to a Unicode character with the same meaning (as for Japanese letters) or a pictographic equivalent (as for symbols).