From: mskuhn@immd4.informatik.uni-erlangen.de (Markus Kuhn)
Subject: Das Umlaut-Projekt: Die TELIX-Loesung (MS-Doof)
Organization: CSD., University of Erlangen, Germany
Date: Mon, 27 Jul 1992 11:58:09 GMT
Keywords: ISO 8859-1, Zeichensaetze, Terminalemulatoren, IBM PC


ISO Latin 1 Zeichensatz fuer TELIX auf MS-DOS
---------------------------------------------

Das Terminalemulationsprogramm TELIX (getestet mit Version 3.11)
gestattet es dem Benutzer eine Tabelle einzugeben, mit der Zeichensatz-
uebersetzungen automatische vorgenommen werden koennen. Diese
Funktion wird mit Alt-W aufgerufen. Wenn Du mit TELIX als Zeichensatz
statt der normalerweise benutzten IBM code page 437 den ISO 8859-1
Zeichensatz benutzen moechtest, so benoetigst Du nur 2 Dateien im
gleichen Verzeichnis wie die Konfigurationsdatei. Diese beiden
Dateien werden beim Start von TELIX automatisch geladen und der
neue Zeichensatz ist aktiviert.

TELIXIN.XLT:

0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=10
11=11
12=12
13=13
14=14
15=15
16=16
17=17
18=18
19=19
20=20
21=21
22=22
23=23
24=24
25=25
26=26
27=27
28=28
29=29
30=30
31=31
32=32
33=33
34=34
35=35
36=36
37=37
38=38
39=39
40=40
41=41
42=42
43=43
44=44
45=45
46=46
47=47
48=48
49=49
50=50
51=51
52=52
53=53
54=54
55=55
56=56
57=57
58=58
59=59
60=60
61=61
62=62
63=63
64=64
65=65
66=66
67=67
68=68
69=69
70=70
71=71
72=72
73=73
74=74
75=75
76=76
77=77
78=78
79=79
80=80
81=81
82=82
83=83
84=84
85=85
86=86
87=87
88=88
89=89
90=90
91=91
92=92
93=93
94=94
95=95
96=96
97=97
98=98
99=99
100=100
101=101
102=102
103=103
104=104
105=105
106=106
107=107
108=108
109=109
110=110
111=111
112=112
113=113
114=114
115=115
116=116
117=117
118=118
119=119
120=120
121=121
122=122
123=123
124=124
125=125
126=126
127=127
128=177
129=177
130=177
131=177
132=177
133=177
134=177
135=177
136=177
137=137
138=177
139=177
140=177
141=177
142=177
143=177
144=177
145=177
146=177
147=177
148=177
149=177
150=177
151=177
152=177
153=177
154=177
155=177
156=177
157=177
158=177
159=177
160=32
161=173
162=155
163=156
164=177
165=157
166=124
167=21
168=34
169=177
170=166
171=174
172=170
173=45
174=177
175=177
176=248
177=241
178=253
179=177
180=39
181=230
182=20
183=249
184=177
185=177
186=167
187=175
188=172
189=171
190=177
191=168
192=177
193=177
194=177
195=177
196=142
197=143
198=146
199=128
200=177
201=144
202=177
203=177
204=177
205=177
206=177
207=177
208=177
209=165
210=177
211=177
212=177
213=177
214=153
215=120
216=177
217=177
218=177
219=177
220=154
221=177
222=177
223=225
224=133
225=160
226=131
227=177
228=132
229=134
230=145
231=135
232=138
233=130
234=136
235=137
236=141
237=161
238=140
239=139
240=177
241=164
242=149
243=162
244=147
245=177
246=148
247=246
248=237
249=151
250=163
251=150
252=129
253=177
254=177
255=152

TELIXOUT.XLT:

0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=10
11=11
12=12
13=13
14=14
15=15
16=16
17=17
18=18
19=19
20=20
21=21
22=22
23=23
24=24
25=25
26=26
27=27
28=28
29=29
30=30
31=31
32=32
33=33
34=34
35=35
36=36
37=37
38=38
39=39
40=40
41=41
42=42
43=43
44=44
45=45
46=46
47=47
48=48
49=49
50=50
51=51
52=52
53=53
54=54
55=55
56=56
57=57
58=58
59=59
60=60
61=61
62=62
63=63
64=64
65=65
66=66
67=67
68=68
69=69
70=70
71=71
72=72
73=73
74=74
75=75
76=76
77=77
78=78
79=79
80=80
81=81
82=82
83=83
84=84
85=85
86=86
87=87
88=88
89=89
90=90
91=91
92=92
93=93
94=94
95=95
96=96
97=97
98=98
99=99
100=100
101=101
102=102
103=103
104=104
105=105
106=106
107=107
108=108
109=109
110=110
111=111
112=112
113=113
114=114
115=115
116=116
117=117
118=118
119=119
120=120
121=121
122=122
123=123
124=124
125=125
126=126
127=127
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
158=191
159=191
160=225
161=237
162=243
163=250
164=241
165=209
166=170
167=186
168=191
169=191
170=172
171=189
172=188
173=161
174=171
175=187
176=191
177=191
178=191
179=191
180=191
181=191
182=191
183=191
184=191
185=191
186=191
187=191
188=191
189=191
190=191
191=191
192=191
193=191
194=191
195=191
196=191
197=191
198=191
199=191
200=191
201=191
202=191
203=191
204=191
205=191
206=191
207=191
208=191
209=191
210=191
211=191
212=191
213=191
214=191
215=191
216=191
217=191
218=191
219=191
220=191
221=191
222=191
223=191
224=191
225=223
226=191
227=191
228=191
229=191
230=181
231=191
232=191
233=191
234=191
235=191
236=191
237=248
238=191
239=191
240=191
241=177
242=191
243=191
244=191
245=191
246=247
247=191
248=176
249=183
250=183
251=191
252=191
253=178
254=183
255=191

Noch ein paar Anmerkungen:

Die normalerweise unter MS-DOS benutzte code page 437 enthaelt nur einen
Teil der in Latin 1 definierten Zeichen sowie eine Reihe zusaetzlicher
Symbole. Die durch die beiden Dateien definierten Umwandlungsfunktionen
sind also weder injektiv noch surjektiv. Daher habe ich empfangene
nicht darstellbare Zeichen auf das Zeichen 'karierter Block' (IBM: 171)
abgebildet und statt gesendeten Zeichen, die nicht in ISO Latin 1 vorkommen
wird das 'umgedrehte Fragezeichen' (in ISO Latin 1: 191) benutzt.

Ein weiteres Problem besteht darin, dass die IBM Zeichen Pilcrow und
Paragraph identisch mit den Codes Ctrl-T (20) und Ctrl-U (21) sind. Da
diese Codes evtl. fuer die Bedienung einer Anwendung gebraucht werden,
habe ich sie beim Senden NICHT durch die Latin 1 Codes 182 und 167
ersetzt. Dies koennte in manchen Anwendungsfaellen aber sinnvoll
sein. Dann muss man eben diese 2 Zeilen in TELIXOUT.XLT aendern.
Der Autor eines guten Terminalprogrammes sollte folglich statt den
Zeichencodes (wie bei TELIX) die eindeutigen Scancodes der Tastatur
in einer Umsetztabelle benutzen (oder noch besser code page 850) ...

All diese Probleme traeten nicht auf, wenn statt 437 die IBM code page
850 benutzt wuerde. Sie enthaelt m.W. alle in ISO Latin 1
auftauchenden Zeichen, sowie anstaendige Codes fuer Pilcrow und
Paragraph, jedoch leider nicht an den Positionen von ISO Latin 1.
Es muesste also nur nochmal jemand sich einen Nachmittag Zeit
nehmen um auch eine (nun bijektive) 'ISO Latin 1 <-> IBM code page 850'
Tabelle sowie deren (jetzt eindeutige) Umkehrung zu schreiben.

All diese Tabellen muesste man eigentlich sehr leicht in vielen
anderen Terminalemulatoren einsetzen koennen. Falls dies ein Autor
eines guten Terminalprogrammes liest, folgender Vorschlag: Wenn der
Benutzer bereits code page 850 geladen hat, dann sollte der 
Terminalemulator diese gleich benutzen und alle Latin 1 Probleme 
loesen sich in wohlgefallen auf!

Markus

-- 
Markus Kuhn, Computer Science student -=-=- University of Erlangen, Germany
Internet: mskuhn@immd4.informatik.uni-erlangen.de  |  X.500 entry available
------------------ ISO?  Nicht immer. Aber immer fter! -------------------