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