Jump to content

Code page 850

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by TrevMrgn (talk | contribs) at 11:57, 13 April 2016 (→‎Code page layout: Link rot: referred section no longer exists. Reworded cryptic missing reference with a good link and reference.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Code page 850 character set with 9×14 glyphs, as usually rendered by EGA

Code page 850 (also known as CP 850, IBM 00850,[1] OEM 850,[2] MS-DOS Latin 1[3]) is a code page used under MS-DOS in Western Europe. English DOS systems also sometimes use code page 850, although code page 437 is often the default on those as well[citation needed].

Systems largely replaced code page 850 with, firstly, Windows-1252 (often mislabeled as ISO-8859-1), and later with UCS-2, and finally with UTF-16 (the NT line was natively Unicode from the start, but issues of development tool support and compatibility with Windows 9x kept most applications on the 8-bit code pages).

Code page 850 differs from code page 437 in that many of the box drawing characters, Greek letters, and various symbols were replaced with additional Latin letters with diacritics, thus greatly improving support for Western European languages (all characters from ISO 8859-1 are included). At the same time, the changes frequently caused display glitches with programs that made use of the box-drawing characters to display a GUI-like surface in text mode, such as programs using Turbo Pascal.

In 1998, code page 858 was derived from this code page by changing code point 213 (D5hex) from dotless i ‹ı› to the euro sign ‹€›.[4] Despite this, IBM's PC DOS 2000, released in 1998, changed their definition of code page 850 to what they called modified code page 850 now including the euro sign at code point 213 instead of adding support for the new code page 858.[nb 1][5][6][7]

Code page layout

The following table shows code page 850.[2][8] Each character appears with its equivalent Unicode code-point and its decimal code-point. Only the second half of the table (code points 128–255) is shown, the first half (code points 0–127) being the same as ASCII; code points 1–31 and 127 (00–1Fhex and 7Fhex) may be either ASCII control characters or code page 437 graphics, depending on context.[1]

Code page 850
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
8_ Template:Chset-color-intl|Ç
00C7
128
Template:Chset-color-intl|ü
00FC
129
Template:Chset-color-intl|é
00E9
130
Template:Chset-color-intl|â
00E2
131
Template:Chset-color-intl|ä
00E4
132
Template:Chset-color-intl|à
00E0
133
Template:Chset-color-intl|å
00E5
134
Template:Chset-color-intl|ç
00E7
135
Template:Chset-color-intl|ê
00EA
136
Template:Chset-color-intl|ë
00EB
137
Template:Chset-color-intl|è
00E8
138
Template:Chset-color-intl|ï
00EF
139
Template:Chset-color-intl|î
00EE
140
Template:Chset-color-intl|ì
00EC
141
Template:Chset-color-intl|Ä
00C4
142
Template:Chset-color-intl|Å
00C5
143
9_ Template:Chset-color-intl|É
00C9
144
Template:Chset-color-intl|æ
00E6
145
Template:Chset-color-intl|Æ
00C6
146
Template:Chset-color-intl|ô
00F4
147
Template:Chset-color-intl|ö
00F6
148
Template:Chset-color-intl|ò
00F2
149
Template:Chset-color-intl|û
00FB
150
Template:Chset-color-intl|ù
00F9
151
Template:Chset-color-intl|ÿ
00FF
152
Template:Chset-color-intl|Ö
00D6
153
Template:Chset-color-intl|Ü
00DC
154
Template:Chset-color-intl-var|ø
00F8
155
Template:Chset-color-ext-punct|£
00A3
156
Template:Chset-color-intl-var|Ø
00D8
157
Template:Chset-color-ext-punct-var|×
00D7
158
Template:Chset-color-intl|ƒ
0192
159
A_ Template:Chset-color-intl|á
00E1
160
Template:Chset-color-intl|í
00ED
161
Template:Chset-color-intl|ó
00F3
162
Template:Chset-color-intl|ú
00FA
163
Template:Chset-color-intl|ñ
00F1
164
Template:Chset-color-intl|Ñ
00D1
165
Template:Chset-color-ext-punct|ª
00AA
166
Template:Chset-color-ext-punct|º
00BA
167
Template:Chset-color-ext-punct|¿
00BF
168
Template:Chset-color-ext-punct-var|®
00AE
169
Template:Chset-color-ext-punct|¬
00AC
170
Template:Chset-color-ext-punct|½
00BD
171
Template:Chset-color-ext-punct|¼
00BC
172
Template:Chset-color-ext-punct|¡
00A1
173
Template:Chset-color-ext-punct|«
00AB
174
Template:Chset-color-ext-punct|»
00BB
175
B_ Template:Chset-color-graph|
2591
176
Template:Chset-color-graph|
2592
177
Template:Chset-color-graph|
2593
178
Template:Chset-color-graph|
2502
179
Template:Chset-color-graph|
2524
180
Template:Chset-color-intl-var|Á
00C1
181
Template:Chset-color-intl-var|Â
00C2
182
Template:Chset-color-intl-var|À
00C0
183
Template:Chset-color-ext-punct-var|©
00A9
184
Template:Chset-color-graph|
2563
185
Template:Chset-color-graph|
2551
186
Template:Chset-color-graph|
2557
187
Template:Chset-color-graph|
255D
188
Template:Chset-color-ext-punct-var|¢
00A2
189
Template:Chset-color-ext-punct-var|¥
00A5
190
Template:Chset-color-graph|
2510
191
C_ Template:Chset-color-graph|
2514
192
Template:Chset-color-graph|
2534
193
Template:Chset-color-graph|
252C
194
Template:Chset-color-graph|
251C
195
Template:Chset-color-graph|
2500
196
Template:Chset-color-graph|
253C
197
Template:Chset-color-intl-var|ã
00E3
198
Template:Chset-color-intl-var|Ã
00C3
199
Template:Chset-color-graph|
255A
200
Template:Chset-color-graph|
2554
201
Template:Chset-color-graph|
2569
202
Template:Chset-color-graph|
2566
203
Template:Chset-color-graph|
2560
204
Template:Chset-color-graph|
2550
205
Template:Chset-color-graph|
256C
206
Template:Chset-color-ext-punct-var|¤
00A4
207
D_ Template:Chset-color-intl-var|ð
00F0
208
Template:Chset-color-intl-var|Ð
00D0
209
Template:Chset-color-intl-var|Ê
00CA
210
Template:Chset-color-intl-var|Ë
00CB
211
Template:Chset-color-intl-var|È
00C8
212
Template:Chset-color-intl-var|ı
0131
213
Template:Chset-color-intl-var|Í
00CD
214
Template:Chset-color-intl-var|Î
00CE
215
Template:Chset-color-intl-var|Ï
00CF
216
Template:Chset-color-graph|
2518
217
Template:Chset-color-graph|
250C
218
Template:Chset-color-graph|
2588
219
Template:Chset-color-graph|
2584
220
Template:Chset-color-ext-punct-var|¦
00A6
221
Template:Chset-color-intl-var|Ì
00CC
222
Template:Chset-color-graph|
2580
223
E_ Template:Chset-color-intl-var|Ó
00D3
224
Template:Chset-color-intl|ß
00DF
225
Template:Chset-color-intl-var|Ô
00D4
226
Template:Chset-color-intl-var|Ò
00D2
227
Template:Chset-color-intl-var|õ
00F5
228
Template:Chset-color-intl-var|Õ
00D5
229
Template:Chset-color-intl|µ
00B5
230
Template:Chset-color-intl-var|þ
00FE
231
Template:Chset-color-intl-var|Þ
00DE
232
Template:Chset-color-intl-var|Ú
00DA
233
Template:Chset-color-intl-var|Û
00DB
234
Template:Chset-color-intl-var|Ù
00D9
235
Template:Chset-color-intl-var|ý
00FD
236
Template:Chset-color-intl-var|Ý
00DD
237
Template:Chset-color-ext-punct-var|¯
00AF
238
Template:Chset-color-ext-punct-var|´
00B4
239
F_ Template:Chset-color-ext-punct-var|SHY
00AD
240
Template:Chset-color-ext-punct|±
00B1
241
Template:Chset-color-ext-punct-var|
2017
242
Template:Chset-color-ext-punct-var|¾
00BE
243
Template:Chset-color-ext-punct-var|
00B6
244
Template:Chset-color-ext-punct-var|§
00A7
245
Template:Chset-color-ext-punct|÷
00F7
246
Template:Chset-color-ext-punct-var|¸
00B8
247
Template:Chset-color-ext-punct|°
00B0
248
Template:Chset-color-ext-punct-var|¨
00A8
249
Template:Chset-color-ext-punct|·
00B7
250
Template:Chset-color-ext-punct-var|¹
00B9
251
Template:Chset-color-ext-punct-var|³
00B3
252
Template:Chset-color-ext-punct|²
00B2
253
Template:Chset-color-graph|
25A0
254
Template:Chset-color-ext-punct|NBSP
00A0
255
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

See also

Notes

  1. ^ The reason for this might have been down to existing restrictions in the implementation of the codepage switching logic under MS-DOS/PC DOS, which limited .CPI files to 64 KB in size or about six codepages maximum, a limitation, which was circumvented in some OEM versions of MS-DOS, in Windows NT, and also does not exist in DR-DOS. Further, the parser in MS-DOS/PC DOS limits the number of possible country / codepage entries in COUNTRY.SYS files to a maximum of 146 or 438, a limitation non-existent in DR-DOS. So, adding support for codepage 858 might have meant to drop another (e.g. codepage 850) at the same time, which might not have been a viable solution at that time, given that some applications were hard-wired to use codepage 850.

References

  1. ^ a b "00850". Code pages by CPGID. IBM. Retrieved 14 Nov 2011.
  2. ^ a b "OEM 850". Go Global Developer Center. Microsoft. Retrieved 19 Nov 2011.
  3. ^ "Code Page 850 MS-DOS Latin 1". Developing International Software. Microsoft. Retrieved 19 Nov 2011.
  4. ^ "00858". Code pages by CPGID. IBM. Retrieved 20 Nov 2011.
  5. ^ Paul, Matthias (2001-08-15). "Changing codepages in FreeDOS" (Technical design specification based on fd-dev post [1]). Retrieved 2013-05-08. The new official ID for the Multilingual "codepage 850 with EURO SIGN" is 858, not 850. IBM will switch to use 858 instead of their 850 variant with future issues of their products. [...] I can only guess why they didn't add 858 to their EGAx.CPI, COUNTRY.SYS, and KEYBOARD.SYS files in PC DOS 2000. Many third-party applications are designed to work with 850 and didn't know about 858 at the time PC DOS 2000 was released, so it's easier for everyone, but unfortunately it's not compatible. [...] As explained above, COUNTRY.SYS and KEYBOARD.SYS contain only two codepage entries for a given country in Western issues of DOS. (In Arabic and Hebrew issues there can be up to 8 codepages for one country, in theory there is no limit below the range of allowed codepages 1..65534). [...] The problem is that removing support for 850 might have caused compatibility problems with applications which are hard-wired to use 850. Adding 858 as a third choice to all the files would have increased the file and table sizes significantly. The COUNTRY.SYS file parser in MS-DOS/PC DOS IO.SYS/IBMBIO.COM sets aside a 6 Kb (for DOS 6) scratchpad to load all the info. This allows a maximum of 438 entries in a COUNTRY.SYS file to be accepted, otherwise you will get the message "COUNTRY.SYS too large.". The NLSFUNC parser does not have this limitation, and the file parsers in DR-DOS (kernel and NLSFUNC) also do not know of such a restriction. Older issues of MS-DOS/PC DOS even had a 2 Kb buffer for a maximum of 146 entries. {{cite web}}: External link in |type= (help)
  6. ^ Paul, Matthias (2001-08-27). "Changing codepages in FreeDOS (follow-up)". Retrieved 2013-05-08. [...] one could also create custom .CPI files in the traditional FONT style without difficulties, but you could only store up to a six codepages in such a file if it should be useable by MS-DOS/PC DOS (some OEM issues and NT can handle files larger than 64 Kb, but MS-DOS/PC DOS can not).
  7. ^ Starikov, Yuri (2005-04-11). "15-летию Russian MS-DOS 4.01 посвящается" [15 Years of Russian MS-DOS 4.01] (in Russian). Retrieved 2014-05-07.
  8. ^ "cp850_DOSLatin1 to Unicode table" (TXT). The Unicode Consortium. Retrieved 19 Nov 2011.