1INIT
2UTF8 1
3WANTSTATE g
4
5!Low
6RESET
7PUSH "ABC"
8  putglyph 0x41 1 0,0
9  putglyph 0x42 1 0,1
10  putglyph 0x43 1 0,2
11
12!UTF-8 1 char
13# U+00C1 = 0xC3 0x81  name: LATIN CAPITAL LETTER A WITH ACUTE
14# U+00E9 = 0xC3 0xA9  name: LATIN SMALL LETTER E WITH ACUTE
15RESET
16PUSH "\xC3\x81\xC3\xA9"
17  putglyph 0xc1 1 0,0
18  putglyph 0xe9 1 0,1
19
20!UTF-8 split writes
21RESET
22PUSH "\xC3"
23PUSH "\x81"
24  putglyph 0xc1 1 0,0
25
26!UTF-8 wide char
27# U+FF10 = 0xEF 0xBC 0x90  name: FULLWIDTH DIGIT ZERO
28RESET
29PUSH "\xEF\xBC\x90 "
30  putglyph 0xff10 2 0,0
31  putglyph 0x20 1 0,2
32
33!UTF-8 emoji wide char
34# U+1F600 = 0xF0 0x9F 0x98 0x80  name: GRINNING FACE
35RESET
36PUSH "\xF0\x9F\x98\x80 "
37  putglyph 0x1f600 2 0,0
38  putglyph 0x20 1 0,2
39
40!UTF-8 combining chars
41# U+0301 = 0xCC 0x81  name: COMBINING ACUTE
42RESET
43PUSH "e\xCC\x81Z"
44  putglyph 0x65,0x301 1 0,0
45  putglyph 0x5a 1 0,1
46
47!Combining across buffers
48RESET
49PUSH "e"
50  putglyph 0x65 1 0,0
51PUSH "\xCC\x81Z"
52  putglyph 0x65,0x301 1 0,0
53  putglyph 0x5a 1 0,1
54
55RESET
56PUSH "e"
57  putglyph 0x65 1 0,0
58PUSH "\xCC\x81"
59  putglyph 0x65,0x301 1 0,0
60PUSH "\xCC\x82"
61  putglyph 0x65,0x301,0x302 1 0,0
62
63!DECSCA protected
64RESET
65PUSH "A\e[1\"qB\e[2\"qC"
66  putglyph 0x41 1 0,0
67  putglyph 0x42 1 0,1 prot
68  putglyph 0x43 1 0,2
69