1
2! This table is in order and complete from code 155 to 223 inclusive.
3
4Array AccentList table [;
5  "a-umlaut:@:a";
6  "o-umlaut:@:o";
7  "u-umlaut:@:u";
8  "A-umlaut:@:A";
9  "O-umlaut:@:O";
10  "U-umlaut:@:U";
11  "sz-ligature:@ss";
12  ">>-quotes:@@162";
13  "<<-quotes:@@163";
14  "e-umlaut:@:e";
15  "i-umlaut:@:i";
16  "y-umlaut:@:y";
17  "E-umlaut:@:E";
18  "I-umlaut:@:I";
19  "a-acute:@'a";
20  "e-acute:@'e";
21  "i-acute:@'i";
22  "o-acute:@'o";
23  "u-acute:@'u";
24  "y-acute:@'y";
25  "A-acute:@'A";
26  "E-acute:@'E";
27  "I-acute:@'I";
28  "O-acute:@'O";
29  "U-acute:@'U";
30  "Y-acute:@'Y";
31  "a-grave:@`a";
32  "e-grave:@`e";
33  "i-grave:@`i";
34  "o-grave:@`o";
35  "u-grave:@`u";
36  "A-grave:@`A";
37  "E-grave:@`E";
38  "I-grave:@`I";
39  "O-grave:@`O";
40  "U-grave:@`U";
41  "a-circumflex:@^a";
42  "e-circumflex:@^e";
43  "i-circumflex:@^i";
44  "o-circumflex:@^o";
45  "u-circumflex:@^u";
46  "A-circumflex:@^A";
47  "E-circumflex:@^E";
48  "I-circumflex:@^I";
49  "O-circumflex:@^O";
50  "U-circumflex:@^U";
51  "a-ring:@oa";
52  "A-ring:@oA";
53  "o-slash:@/o";
54  "O-slash:@/O";
55  "a-tilde:@~a";
56  "n-tilde:@~n";
57  "o-tilde:@~o";
58  "A-tilde:@~A";
59  "N-tilde:@~N";
60  "O-tilde:@~O";
61  "ae-ligature:@ae";
62  "AE-ligature:@AE";
63  "c-cedilla:@cc";
64  "C-cedilla:@cC";
65  "thorn:@th";
66  "eth:@et";
67  "Thorn:@Th";
68  "Eth:@Et";
69  "pound-symbol:@LL";
70  "oe-ligature:@oe";
71  "OE-ligature:@OE";
72  "inverse-!:@!!";
73  "inverse-?:@??";
74
75];
76
77[ TestAccents ix opt;
78
79  print "This displays all the accented characters (encoding values
80    155 to 223). You will have to inspect your interpreter's display
81    to make sure they appear correctly.^^";
82  print "For the record, an umlaut is two dots; an acute accent is
83    the one that slants up to the right; a grave accent is the one
84    that slants down to the right; a circumflex is a pointy hat; a
85    tilde is a squiggly hat; a ring is a ring; a cedilla is the
86    little hook that hangs down below the C. Thorn looks like a
87    capital D whose vertical bar extends both up and down, and Eth
88    looks like a D with a little cross-stroke.^^";
89
90  print "NOTE: Inform 6.11 contradicts the Z-Spec 0.99 document, on
91    the subject of the European angle-quotes (the ones that look
92    like '>>' and '<<'). The Z-Spec says that the character '>>' is
93    code 162, and '<<' is 163. However, Inform 6.11 (following the
94    Z-Spec 0.2) compiles
95    '@@64>>' as 163, and '@@64<<' as 162. The consensus is that the
96    Z-Spec 0.2 and Inform 6.11 are wrong, and Z-Spec 0.99 and later
97    are correct.^^";
98
99  !ix = '@>>';
100  !print "(This version of TerpEtude was compiled with Inform ";
101  !inversion;
102  !print ", which compiles '@@64>>' as ", ix, ", which your interpreter
103  !  displays as '", (char)ix, "'. Got it?)^^";
104
105  opt = 0;
106
107  while (1) {
108
109    if (opt >= 0) {
110      if (opt & 4)
111      	font off;
112      if (opt & 2)
113	style underline;
114      if (opt & 1)
115	style bold;
116      for (ix=1: ix <= AccentList-->0: ix++) {
117      	print (string) AccentList-->ix;
118      	if (ix % 4 == 0)
119      	  new_line;
120      	else
121      	  print "   ";
122      }
123      if (opt & 4)
124      	font on;
125      if (opt & 3)
126	style roman;
127      new_line; new_line;
128    }
129
130    print "Type a digit (0..7) to repeat this list in a different text
131      style, or ~.~ to end this test.^";
132    print "Options: 0: normal; 1: bold; 2: italic; 3: bold italic; 4:
133      fixed-width; 5: fixed bold; 6: fixed italic; 7: fixed bold italic.^";
134    print "^Accents> ";
135    @read_char 1 ix;
136    new_line;
137
138    if (ix == '.')
139      return;
140    new_line;
141
142    if (ix >= '0' && ix <= '7')
143      opt = ix - '0';
144    else
145      opt = -1;
146  }
147
148];
149