# Character Mapping Table # Windows Latin-2 mapping # Internal Character Set Identifier - this is a string of no more than # four characters that uniquely and universally identifies the character # set. For a given character set, this ID must be the same on every # platform. The reason the ID must be the same everywhere is that the # run-time uses the ID, which the compiler stores in the .GAM file, to # choose the character set mapping file when a player loads the game. # In order to allow you to compile your game on one system, and have # players run the game on different systems, every system must use the # same character set identifier for the internal character set, so that # every platform can choose the correct character set mapping to the # native character set. # # IMPORTANT - to ensure that character set identifiers are universal # and unique, character set identifiers MUST be registered. Currently, # Mike Roberts (mjr_@hotmail.com) maintains the list of registered # character set identifiers; please contact him by email if you would # like the current list or add a new character set to the list. # # You do NOT need to register *native* character sets. The native # character set used to compile a game is not stored with the game, # because it is irrelevant once the game is compiled -- the game is # entirely translated to the internal character set during compilation. # Note, however, that the TADS run-time varies by operating system in # how it determines the native character set, and how it chooses a # character set mapping file based on the native character set. # # On DOS, the run-time chooses a native character set based on the active # "code page"; DOS labels code pages with 3- or 4-digit numbers. (For # example, this file is for code page 437, the DOS US code page.) The # run-time generates the name of the character mapping table by appending # the internal character set ID to the code page number, then adding the # extension ".tcp" -- for example, the mapping file for native code page # 437 to internal character set ISO Latin 1 is called "437LA1.TCP". # This convention is system-specific; consult the documentation for your # version of TADS for local conventions. # # Members of the ISO Latin-X series of character sets are all registered, # and are assigned identifiers such of the form "LaX", where X is the # numeric suffix to the ISO Latin name. For example, ISO Latin-1 (ISO # 8859-1) has identifier "La1", ISO Latin-2 has identifier "La2", and # so on. # id = La1 # Full name of the internal character set - this name is stored in a # game compiled with this internal character set, so that the run-time # can display a sensible error message if a suitable mapping file is # not available when a player loads the game. The full name isn't used # for choosing the mapping file, but is meant for the player to see. # # Each registered character set has an official full name, which should # be used here to ensure that players encountering character mapping # problems can more easily determine what file they need. The ISO # Latin series names should be of the form "ISO Latin-X (ISO 8859-Y)". # ldesc = ISO Latin-1 (ISO 8859-1) # Extra System-specific information - this can be any string of # characters; the meaning is system-dependent. For DOS, this extra # information is ignored, so we'll just leave it out entirely here. # Other systems use it for varying purposes. On Windows, for example, # this string contains a code page number, which the TADS run-time # will use as the system code page when this character set is selected # by a game. EXTRA_SYSTEM_INFO = 1250 # --------------------------------------------------------------------------- # The ASCII subset 1-127 is the same in both character sets and therefore # doesn't need to be mapped # # The following characters have equivalent characters in both character # sets, so we'll provide a reversible 1-to-1 mapping. # DOS 437 <-> ISO Latin 1 128 <-> 199 129 <-> 252 130 <-> 233 131 <-> 226 132 <-> 228 133 <-> 224 134 <-> 229 135 <-> 231 136 <-> 234 137 <-> 235 138 <-> 232 139 <-> 239 140 <-> 238 141 <-> 236 142 <-> 196 143 <-> 197 144 <-> 201 145 <-> 230 146 <-> 198 147 <-> 244 148 <-> 246 149 <-> 242 150 <-> 251 151 <-> 249 152 <-> 255 153 <-> 214 154 <-> 220 155 <-> 162 156 <-> 163 157 <-> 165 160 <-> 225 161 <-> 237 162 <-> 243 163 <-> 250 164 <-> 241 165 <-> 209 166 <-> 170 167 <-> 186 168 <-> 191 170 <-> 172 171 <-> 189 172 <-> 188 173 <-> 161 174 <-> 171 175 <-> 187 179 <-> 166 196 <-> 151 230 <-> 181 241 <-> 177 246 <-> 247 248 <-> 176 249 <-> 183 253 <-> 178 # # there are a few characters in the DOS character set that map to the same # ISO Latin 1 character as some other DOS character; we'll cover those # here. 250 -> 183 # # these characters are mappings from ISO Latin 1 that are redundant -- # multiple characters in ISO Latin 1 map to the same character in DOS # code page 437. So, we only need to provide the mapping from ISO Latin 1. # DOS code page 437 <- ISO Latin 1 196 <- 150 # # The following characters from DOS code page 437 are not present in # ISO Latin-1. We'll map them to character 129; this character isn't # used in Latin-1, so we'll use it as our invalid character code. # We'll map it back to character 177 in code page 437, which is a # half-toned gray box; this will serve as our "missing character" # display indicator. # DOS 437 -> ISO Latin 1 invalid (129) -> DOS 437 invalid (177) 127 -> 129 -> 177 158 -> 129 159 -> 129 169 -> 129 176 -> 129 177 -> 129 178 -> 129 180 -> 129 181 -> 129 182 -> 129 183 -> 129 184 -> 129 185 -> 129 186 -> 129 187 -> 129 188 -> 129 189 -> 129 190 -> 129 191 -> 129 192 -> 129 193 -> 129 194 -> 129 195 -> 129 197 -> 129 198 -> 129 199 -> 129 200 -> 129 201 -> 129 202 -> 129 203 -> 129 204 -> 129 205 -> 129 206 -> 129 207 -> 129 208 -> 129 209 -> 129 210 -> 129 211 -> 129 212 -> 129 213 -> 129 214 -> 129 215 -> 129 216 -> 129 217 -> 129 218 -> 129 219 -> 129 220 -> 129 221 -> 129 222 -> 129 223 -> 129 224 -> 129 225 -> 129 226 -> 129 227 -> 129 228 -> 129 229 -> 129 231 -> 129 232 -> 129 233 -> 129 234 -> 129 235 -> 129 236 -> 129 237 -> 129 238 -> 129 239 -> 129 240 -> 129 242 -> 129 243 -> 129 244 -> 129 245 -> 129 247 -> 129 251 -> 129 252 -> 129 254 -> 129 255 -> 129 # # The following characters from ISO Latin 1 do not appear in DOS code # page 437. Map these ISO Latin 1 characters to our "missing character" # indicator (DOS code page character 177). 177 <- 128 177 <- 130 177 <- 131 177 <- 132 177 <- 133 177 <- 134 177 <- 135 177 <- 136 177 <- 137 177 <- 138 177 <- 139 177 <- 140 177 <- 141 177 <- 142 177 <- 143 177 <- 144 177 <- 145 177 <- 146 177 <- 147 177 <- 148 177 <- 149 177 <- 152 177 <- 153 177 <- 154 177 <- 155 177 <- 156 177 <- 157 177 <- 158 177 <- 159 177 <- 160 177 <- 164 177 <- 167 177 <- 168 177 <- 169 177 <- 173 177 <- 174 177 <- 175 177 <- 179 177 <- 180 177 <- 182 177 <- 184 177 <- 185 177 <- 190 177 <- 192 177 <- 193 177 <- 194 177 <- 195 177 <- 200 177 <- 202 177 <- 203 177 <- 204 177 <- 205 177 <- 206 177 <- 207 177 <- 208 177 <- 210 177 <- 211 177 <- 212 177 <- 213 177 <- 215 177 <- 216 177 <- 217 177 <- 218 177 <- 219 177 <- 221 177 <- 222 177 <- 223 177 <- 227 177 <- 240 177 <- 245 177 <- 248 177 <- 253 177 <- 254