Kode side 437 - Code page 437

Kode side 437
Kodeside-437.png
Kode side 437, som gjengitt av en IBM PC med standard VGA
MIME / IANA IBM437
Alias ​​(er) cp437, 437, csPC8CodePage437, OEM-US
Språk Engelsk
Klassifisering Utvidet ASCII , OEM kodeside
Strekker US-ASCII
Andre relaterte koding (er) Kodeside 850 , CWI-2

Kodeside 437 ( CCSID 437) er tegnsettet til den originale IBM -PCen (PC). Det er også kjent som CP437, OEM-US, OEM 437, PC-8 eller DOS Latin US. Settet inneholder alle utskrivbare ASCII- tegn, utvidede koder for bokstaver med aksent ( diakritikk ), noen greske bokstaver, ikoner og strektegningssymboler. Det blir noen ganger referert til som "OEM -skrift" eller "høy ASCII", eller som " utvidet ASCII " (en av mange inkompatible ASCII -utvidelser).

Dette tegnsettet forblir det primære settet i kjernen på ethvert EGA- og VGA -kompatibelt grafikkort. Som sådan blir tekst som vises når en PC starter på nytt, før fonter kan lastes og gjengis, vanligvis gjengitt med dette tegnsettet. Mange filformater utviklet på tidspunktet for IBM PC er også basert på kodeside 437.

Skjermkort

Den originale IBM-PCen inneholdt denne skrifttypen som en skrift på 9 × 14 piksler per tegn som er lagret på ROM-en til IBM Monochrome Display Adapter (MDA) og en 8 × 8 piksler per tegn skrift i Color Graphics Adapter ( CGA ) kort. Den IBM Enhanced-grafikkadapteren (EGA) inneholdt en 8 x 14 piksler per karakter versjon, og VGA inneholdt en 9 x 16 versjon.

Alle disse skjerm adaptere har tekst moduser der hvert tegn celle inneholder et 8-bits tegnkode punkt (se detaljer ), noe som gir 256 mulige verdier for grafiske tegn. Alle 256 koder ble tildelt et grafisk tegn i ROM, inkludert kodene fra 0 til 31 som var reservert i ASCII for ikke-grafiske kontrolltegn.

Ulike østeuropeiske PCer brukte forskjellige tegnsett, noen ganger kan brukeren velges via hoppere eller CMOS-oppsett. Disse settene ble designet for å matche 437 så mye som mulig, for eksempel ved å dele kodepunktene for mange av linjetegningstegnene, samtidig som tekst på et lokalt språk kan vises.

Alt -koder

En arv fra kodeside 437 er tallkombinasjonene som brukes i Windows Alt -nøkkelkoder . Brukeren kan skrive inn et tegn ved å holde nede Alt-tasten og skrive inn den tresifrede desimal Alt-nøkkelkoden på numpad og mange brukere lagret tallene som trengs for CP437 (eller for lignende kode side 850 ). Når Microsoft byttet til sine proprietære tegnsett (for eksempel CP1252 ) og senere Unicode i Windows, ble de originale kodene beholdt; Microsoft la til muligheten til å skrive inn en kode i det nye tegnsettet ved å skrive numpad 0 før sifrene.

Tegnsett

De følgende tabellene viser kodeside 437. Hvert tegn vises med sitt tilsvarende Unicode -kodepunkt og desimal -Alt -kode . Se også merknadene nedenfor, siden det er flere tilsvarende Unicode -tegn for noen kodepunkter.

Selv om ROM-en gir en grafikk for alle 256 forskjellige mulige 8-biters koder, vil noen APIer ikke skrive ut noen kodepunkter, spesielt området 0-31 og koden på 127. I stedet vil de tolke dem som kontrolltegn. For eksempel vil mange metoder for å legge ut tekst på den originale IBM -PCen tolke kodene for BEL, BS, CR og LF. Mange skrivere klarte heller ikke å skrive ut disse tegnene.

Kode side 437
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _EN _B _C _D _E _F
0_ NUL
0000
0

263A
1

263B
2

2665
3

2666
4
63
2663
5

2660
6

2022
7

25D8
8

25CB
9
D
25D9
10

2642
11
40
2640
12
6
266A
13

266B
14

263C
15
1_
25BA
16

25C4
17
95
2195
18

203C
19

00B6
20
§
00A7
21
AC
25AC
22
A
21A8
23

2191
24

2193
25

2192
26

2190
27
1
221F
28

2194
29

25B2
30

25BC
31
2_ SP
0020
32
!
0021
33
"
0022
34
#
0023
35
$
0024
36
%
0025
37
&
0026
38
'
0027
39
(
0028
40
)
0029
41
*
002A
42
+
002B
43
,
002C
44
-
002D
45
.
002E
46
/
002F
47
3_ 0
0030
48
1
0031
49
2
0032
50
3
0033
51
4
0034
52
5
0035
53
6
0036
54
7
0037
55
8
0038
56
9
0039
57
:
003A
58
;
003B
59
<
003C
60
=
003D
61
>
003E
62
?
003F
63
4_ @
0040
64
A
0041
65
B
0042
66
C
0043
67
D
0044
68
E
0045
69
F
0046
70
G
0047
71
H
0048
72
I
0049
73
J
004A
74
K
004B
75
L
004C
76
M
004D
77
N
004E
78
O
004F
79
5_ P
0050
80
Q
0051
81
R
0052
82
S
0053
83
T
0054
84
U
0055
85
V
0056
86
W
0057
87
X
0058
88
Y
0059
89
Z
005A
90
[
005B
91
\
005C
92
]
005D
93
^
005E
94
_
005F
95
6_ `
0060
96
en
0061
97
b
0062
98
c
0063
99
d
0064
100
e
0065
101
f
0066
102
g
0067
103
t
0068
104
i
0069
105
j
006A
106
k
006B
107
l
006C
108
m
006D
109
n
006E
110
o
006F
111
7_ s
0070
112
q
0071
113
r
0072
114
s
0073
115
t
0074
116
u
0075
117
v
0076
118
w
0077
119
x
0078
120
y
0079
121
z
007A
122
{
007B
123
|
007C
124
}
007D
125
~
007E
126

2302
127
8_ Ç
00C7
128
ü
00FC
129
é
00E9
130
â
00E2
131
ä
00E4
132
à
00E0
133
å
00E5
134
ç
00E7
135
ê
00EA
136
ë
00EB
137
è
00E8
138
ï
00EF
139
î
00EE
140
ì
00EC
141
Ä
00C4
142
Å
00C5
143
9_ É
00C9
144
æ
00E6
145
Æ
00C6
146
ô
00F4
147
ö
00F6
148
ò
00F2
149
û
00FB
150
ù
00F9
151
ÿ
00FF
152
Ö
00D6
153
Ü
00DC
154
¢
00A2
155
£
00A3
156
¥
00A5
157
A
20A7
158
ƒ
0192
159
EN_ á
00E1
160
i
00ED
161
ó
00F3
162
ú
00FA
163
ñ
00F1
164
Ñ
00D1
165
A
00AA
166
º
00BA
167
¿
00BF
168
10
2310
169
¬
00AC
170
½
00BD
171
¼
00BC
172
¡
00A1
173
«
00AB
174
»
00BB
175
B_
2591
176
92
2592
177
93
2593
178
2
2502
179
24
2524
180
61
2561
181
62
2562
182

2556
183
55
2555
184
63
2563
185
5
2551
186

2557
187

255D
188

255C
189

255B
190
10
2510
191
C_
2514
192
34
2534
193

252C
194
1
251C
195

2500
196

253C
197

255E
198

255F
199

255A
200
5
2554
201
69
2569
202
66
2566
203
60
2560
204
50
2550
205

256C
206
67
2567
207
D_ 68
2568
208
64
2564
209
65
2565
210
5
2559
211
5
2558
212
5
2552
213
5
2553
214

256B
215

256A
216
18
2518
217

250C
218
88
2588
219
8
2584
220

258C
221
90
2590
222
80
2580
223
E_ α
03B1
224
ß
00DF
225
93
0393
226
π
03C0
227
A
03A3
228
σ
03C3
229
µ
00B5
230
τ
03C4
231
Φ
03A6
232
98
0398
233
Ω
03A9
234
δ
03B4
235

221E
236
C
03C6
237
ε
03B5
238
29
2229
239
F_ 61
2261
240
±
00B1
241

2265
242

2264
243
20
2320
244

2321
245
÷
00F7
246

2248
247
°
00B0
248

2219
249
·
00B7
250

221A
251

207F
252
²
00B2
253

25A0
254
nbsp
00A0
255

  Brev  Nummer  Tegnsetting  Symbol  Annen  Udefinert

Ved oversettelse til Unicode har noen koder ikke en unik Unicode -ekvivalent; det riktige valget kan avhenge av kontekst.

Historie

Repertoaret på kode side 437 ble hentet fra tegnsettet til tekstbehandlingsmaskiner fra Wang , ifølge Bill Gates i et intervju med Gates og Paul Allen som dukket opp i utgaven av Fortune Magazine 2. oktober 1995 :

"... Vi var også fascinert av dedikerte tekstbehandlere fra Wang, fordi vi trodde at maskiner for generelle formål kunne gjøre det like bra. Derfor, da det var på tide å designe tastaturet for IBM PC, la vi det morsomme Wang-tegnet satt inn i maskinen-du vet, smilefjes og esker og trekanter og sånt. Vi tenkte at vi en dag ville gjøre en klone av Wang tekstbehandlingsprogramvare. "

I følge et intervju med David J. Bradley (utvikler av PC- ROM-BIOS ) ble karakterene avgjort under et fire timers møte på en flytur fra Seattle til Atlanta av Andy Saenz (ansvarlig for skjermkortet), Lew Eggebrecht (overingeniør for PC) og han selv.

Utvalget av grafiske tegn har en viss intern logikk:

  • Tabellradene 0 og 1, kodene 0 til 31 (00 hex til 1F hex ), er diverse dingbats (komplementære og dekorative tegn). Den isolerte karakteren 127 (7F hex ) tilhører også denne gruppen.
  • Tabellradene 2 til 7, kodene 32 til 126 (20 hex til 7E hex ), er standard ASCII -tegn som kan skrives ut.
  • Tabellradene 8 til 10, kodene 128 til 175 (80 hex til AF hex ), er et utvalg av internasjonale teksttegn.
  • Tabellradene 11 til 13, kode 176 til 223 (B0 hex til DF hex ), er bokstegning og blokktegn . Denne blokken er ordnet slik at tegnene 192 til 223 (C0 hex til DF hex ) inneholder alle høyre armer og høyrefylte områder. Den originale IBM PC MDA -skjermadapteren lagret kodesiden 437 tegntegner som bitmaps åtte piksler brede, men visuell forbedring viste dem hver ni piksler på skjermen. Dette tegnområdet hadde den åttende pikselkolonnen duplisert av spesielle maskinvarekretser, og fylte dermed ut hull i linjer og fylte områder. VGA -adapteren gjør at denne virkemåten kan slås på eller av.
  • Tabellradene 14 og 15, kode 224 til 254 (E0 hex til FE hex ) er viet til matematiske symboler, der de tolv første er et utvalg av greske bokstaver som vanligvis brukes i fysikk.

De fleste skrifttyper for Microsoft Windows inkluderer de spesielle grafiske tegnene som vises på Unicode -indeksene , ettersom de er en del av WGL4 -settet som Microsoft oppfordrer skriftdesignere til å støtte. (Monospaced raster fontfamilien Terminal var en tidlig skrifttype som replikerte alle kodeside 437 tegn, i hvert fall i noen oppløsninger.) For å tegne disse tegnene direkte fra disse kodepunktene, replikerer en Microsoft Windows -skrift kalt MS Linedraw hele kodesiden 437 tegn, og gir dermed en måte å vise DOS -tekst på en moderne Windows -maskin slik den ble vist i DOS, med begrensninger.

Internasjonalisering

Kodeside 437 har en rekke internasjonale tegn, hovedsakelig verdiene 128 til 175 (80 hex til AF hex ). Den dekker imidlertid bare noen få store vesteuropeiske språk i sin helhet, inkludert engelsk , tysk og svensk , og mangler derfor flere tegn (for det meste store bokstaver) som er viktige for mange store vesteuropeiske språk:

  • Spansk : Á, Í, Ó og Ú
  • Fransk : À, Â, È, Ê, Ë, Î, Ï, Ô, Œ, œ, Ù, Û og Ÿ
  • Portugisisk : Á, À, Â, Ã, ã, Ê, Í, Ó, Ô, Õ, õ og Ú
  • Katalansk : À, È, Í, Ï, Ò, Ó og Ú
  • Italiensk : À, È, Ì, Ò og Ù
  • Islandsk : Á, Ð, ð, Í, Ó, Ú, Ý, ý, Þ og þ
  • Dansk / norsk : Ø og ø. Tegnnummer 237 (ED hex ), den lille phi (lukket form), kan brukes som surrogat selv om den kanskje ikke gjengis godt (dessuten har den en tendens til å kartlegge til Unicode, og/eller gjengi i Unicode -fonter, som den åpne -form phi eller lukket-vertikal-form phi, som er enda lenger fra O med slag). For å kompensere erstattet de dansk / norske og islandske kodesidene ( 865 og 861 ) centtegnet (¢) med ø og yentegnet (¥) med Ø.
  • De fleste greske alfabetets symboler ble utelatt, utover de grunnleggende matematiske symbolene. (De var inkludert i de greskspråklige kodesidene 737 og 869. Noen av de greske symbolene som allerede var på kodeside 437, hadde sine glyfer endret fra matematiske eller vitenskapelige former for å matche den faktiske bruken på gresk.)

Sammen med sent (¢), pund sterling (£) og yen / yuan (¥) valutasymboler, har den et par tidligere europeiske valutasymboler: florinen (ƒ, Nederland) og peseta (₧, Spania). Tilstedeværelsen av den siste er uvanlig, siden den spanske peseta aldri var en internasjonalt relevant valuta, og heller aldri hadde et eget symbol; den ble ganske enkelt forkortet som "Pt", "Pta", "Pts" eller "Ptas". Spanske modeller av IBM elektriske skrivemaskin hadde imidlertid også en enkelt posisjon viet til den.

Senere DOS-tegnsett, for eksempel kodeside 850 (DOS Latin-1), kodeside 852 (DOS Sentraleuropeisk) og kodeside 737 (DOS gresk), fylte hullene for internasjonal bruk med en viss kompatibilitet med kodeside 437 ved å beholde de enkle og doble bokstrektegnene, mens de blandede kastes ( f.eks. horisontal dobbel/vertikal singel). Alle kodeside 437 -tegn har lignende glyfer i Unicode og i Microsofts WGL4 -tegnsett , og er derfor tilgjengelige i de fleste skrifttyper i Microsoft Windows , og også i standard VGA -skrift i Linux -kjernen, og ISO 10646 -skriftene for X11 .

Se også

Merknader

Referanser

  1. ^ Tegnsett , Internet Assigned Numbers Authority (IANA), 12. desember 2018
  2. ^ "CCSID 437 informasjonsdokument" . Arkivert fra originalen 27. mars 2016.
  3. ^ "OEM 437" . Gå til Global Developer Center . Microsoft . Arkivert fra originalen 9. juni 2016 . Hentet 22. september 2011 .
  4. ^ a b "OEM -skrift" . Leksikon . PCmag.com. Arkivert fra originalen 27. november 2020 . Hentet 19. oktober 2021 .
  5. ^ Kano, Nadine. "Vedlegg H kodesider". Globalisering og lokalisering: Kode Side 437 DOS Latin US . Utvikling av internasjonal programvare . Microsoft . Arkivert fra originalen 17. mars 2016 . Hentet 14. november 2011 .
  6. ^ a b c "Ordliste over vilkår som brukes på dette nettstedet" . Microsoft . (Vennligst se beskrivelsen om begrepet "Alt+Numpad"). Arkivert fra originalen 8. september 2012 . Hentet 17. august 2018 .
  7. ^ Murray Sargent. "Angi Unicode -tegn - Murray Sargent: Math in Office" . Hentet 17. august 2018 .
  8. ^ "ALT+NUMPAD ASCII -nøkkelkombinasjoner: α og Ω for å lage obskure passord" . Hentet 17. august 2018 .
  9. ^ "Sett inn ASCII eller Unicode latinbaserte symboler og tegn - Office -støtte" . Microsoft . Hentet 17. august 2018 .
  10. ^ "Informasjonsdokument SBCS -kodeside CPGID 00437" . Kodede tegnsett og relaterte ressurser . IBM . 1986 [1984-05-01]. Arkivert fra originalen 9. juni 2016 . Hentet 14. november 2011 .
  11. ^ Steele, Shawn (24. april 1996). "cp437_DOSLatinUS til Unicode -tabell" (TXT) . 2,00. Unicode Consortium . Arkivert fra originalen 9. juni 2016 . Hentet 14. november 2011 .
  12. ^ Kodeside CPGID 00437 (pdf) (PDF) , IBM
  13. ^ Kodeside CPGID 00437 (txt) , IBM
  14. ^ Internasjonale komponenter for Unicode (ICU), ibm-437_P100-1995.ucm , 3. desember 2002
  15. ^ "Kodeside (CPGID): 00437" . Kodede tegnsett og relaterte ressurser . IBM . 1984 . Hentet 25. februar 2017 .
  16. ^ a b "Grafiske tegnidentifikatorer: alfabetisk, gresk" . Kodede tegnsett og relaterte ressurser . IBM . Hentet 25. februar 2017 .
  17. ^ Unicode -konsortiet (21. mai 2003). "Kapittel 7: Europeiske alfabetiske skript". Unicode Standard 4.0 (PDF) . Addison-Wesley (publisert august 2003). s. 176. ISBN 0-321-18578-1. Hentet 9. juni 2016 .
  18. ^ "cpython/cp437.py at master · python/cpython · GitHub" . Hentet 17. august 2018 .
  19. ^ "Gresk og koptisk: Område: 0370–03FF" (PDF) . Unicode -standarden, versjon 9.0 . Unicode Consortium . Hentet 25. februar 2017 .
  20. ^ Edwards, Benj (6. november 2015) [2011]. "Origins of the ASCII Smiley Character: An Email Exchange With Dr. David Bradley" . Arkivert fra originalen 28. november 2016 . Hentet 27. november 2016 . Hvis du ser på de første 32 tegnene i IBM PC -tegnsettet, vil du se mange finurlige karakterer - smilefjes, notater, spillekortdrakter og andre. Disse var beregnet på karakterbaserte spill [...] Siden vi brukte 8-biters tegn hadde vi 128 nye plasser å fylle. Vi legger seriøse tegn der - tre kolonner med utenlandske tegn, basert på vår Datamaster -opplevelse. Tre kolonner med blokkgrafiske tegn [...] mange kunder med monokrom skjermadapter ville ikke ha grafikk i det hele tatt. [...] to kolonner hadde matematiske symboler, greske bokstaver (for matte) og andre [...] om de første 32 tegnene (x00-x1F)? [...] Disse tegnene stammer fra teletypeoverføring. Men vi kunne vise dem på de karakterbaserte skjermene. Så vi la til et sett med "ikke seriøse" tegn. De var kun ment for å vise tegn, ikke for overføring eller lagring. Deres mest sannsynlige bruk ville være i karakterbaserte spill. [...] Som med de fleste ting for IBM -PC -en, ga ett års utviklingsplan liten tid til ettertanke og revisjon. [...] tegnsettet ble utviklet i et tre-personers 4-timers møte, og jeg var en av dem på flyet fra Seattle til Atlanta. Det var en liten revisjon etter det møtet, men det var mange andre ting å designe/fikse/bestemme, så det var omtrent det. [...] de andre deltakerne i den flyreisen var Andy Saenz - ansvarlig for skjermkortet, og Lew Eggebrecht - sjefingeniøren for PC -en.
  21. ^ Wilton, Richard (desember 1987). Programmerers Guide to PC & PS/2 Videosystemer: Maksimal videoytelse fra EGA, VGA, HGC og MCGA (1. utg.). Microsoft Press . ISBN 1-55615-103-9.
  22. ^ Joshua D. Neal, Attribute Controller Registers: Attribute Mode Control Register , Hardware Level VGA og SVGA Video Programming Information Page: bit 2 er Line Graphics Enable.
  23. ^ Mike Jacobs. "MS LineDraw skriftfamilie - Typografi | Microsoft Docs" . Microsoft typografi . 2,00. Microsoft Corporation . Hentet 17. august 2018 .
  24. ^ Ansatte (26. oktober 2013). "WD97: MS LineDraw Font ikke brukbar i Word" . Microsoft . 2.0. Microsoft . KB179422, Q179422. Arkivert fra originalen 24. mars 2016 . Hentet 1. juli 2012 .

Eksterne linker