home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
e
/
pirard.txt
< prev
next >
Wrap
Text File
|
2020-01-01
|
93KB
|
1,612 lines
Guidelines to use 8-bit character codes
A. Pirard
University of Liege
Belgium
Important preliminary notice
This file contains translation tables. As indicated, they translate
some of the characters arbitrarily and a decision of the constructor who
defined the proprietary codes would be welcome so that everybody use the
same translation. Hence, my publishing them may work opposite to my goal
if somebody uses them and doesn't check later if a standard table exists.
So, I'll try to watch myself and clearly update this paragraph along with
the standard version of the tables themselves when the miracle occurs.
In the course of my work in communications in a French-speaking
environment -- writing programs, installing but mostly having to adapt
others -- I discovered facts, notions, techniques and data related to
international characters usage. Many English-speaking programmers are
willing to extend the scope of their software to what is for them
"foreign languages". Discussion with them is often lengthy to convey
numerous details that are obvious to one and obscure to the other. Trying
to help without repeating the same words all over again is the reason of
this document.
This text is restricted to the problem of the character codes used
in data. Yet, I should mention briefly that isolating from executable
code the user interface messages is a real plus. These messages should be
easily translatable for by anyone who knows the language, even if source
is unavailable. Anything similar to the Macintosh resources is ideal. To
avoid making feel this too easy, I must however warn than phrases in many
languages are longer than English and that the order of inserts may vary
depending on grammar.
I am much indebted to the people I met on these networks, on the
mailing list ISO8859@JHUVM (especially Edwin Hart HART@APLVM, with his
SHARE White Paper to IBM and Johan van Wingen, a character codes
specialist), in the Kermit developpers group animated by Frank da Cruz
and many volunteers led by Christine Gianone, and to the so many others I
am unable to mention.
At the risk of a lack of justification, I have made every effort to
keep this text as concise as possible to spare your time and one will
have to think beyond the text in some places. On the other hand, please
excuse if some paragraphs contain evidence: it is sometimes needed. Also
remember that English is not my mother language...
A language among others: French.
Like many other languages, French uses characters not found in
English. It likes to adorn them with diacritics (accents). Other
languages have other characters, from a few like German to totally
different like Russian and Greek, or even the right to left Arabic and
Hebrew. To the question: "could you do without them?", I like to reply
that forgetting them in "a la francaise" makes it mean "has the French
girl". "a" must take a grave accent to distinguish the preposition from
the verb and "c" takes a cedilla. French without diacritics is just as
unpleasant as all-uppercase text and very difficult to read, stumbling on
each and every missing accent, like proof-reading one's kid dictation. In
the general case, many languages cannot do without their own characters.
7-bit character codes
A "character" is what one writes down on paper. A "code" is a
computer representation of a set of characters that we can see as
associated to numbers, called "code points". A code usually includes
"control characters" for which a graphic representation does not normally
exist, because they are only used to control the operation of hardware or
have special meanings to programs.
ASCII (ANSI X3.4) was defined as a 7-bit code for English at a time
when hardware was really hard and expensive. To allow the use of some of
those particular characters that other languages need, it was later
decided that a defined set of the least used ones could be replaced. This
is ISO 646. Several language have the set replaced with their own
characters. This is what can be done with Escape sequence of Epson
printers to switch to a national language. ANSI X3.4 is an instance of
ISO 646. But, for some languages like French, the amount of characters
that can be replaced is not enough and text processing of these days made
extensive use of backspaces and overstrikes for the missing ones.
US EBCDIC used more or less the same characters as ASCII, but used
different code points. I should say "more and less". Some ASCII
characters did not exist in EBCDIC (e. g. brackets) and EBCDIC had ones
(cent sign, not sign) that were not in ASCII. As a consequence, the
translation between ASCII and EBCDIC was strictly speaking undefined, and
IBM never officially defined a single complete one. Albeit EBCDIC was an
8-bit code "with holes", IBM made the same characters replacements as ISO
646 in hardware to be used with other languages (but as other characters
were missing, this was of little use to French).
Even though data was stored in octets, 7-bit communication line were
used and it was common practice for software to strip off the 8th bit
despite a possible extension of the code, future or existing.
8-bit character codes
Storing in a database text full of "this backspace that", trying to
sort it etc... or getting a Sterling pound bill paid in dollars because
that's what the dollar sign is replaced with in the English version of
ISO 646 was a real pain an insult to the octet. It was soon realized
that, even if text processing could cope with compound characters, data
processing could not. One character must be one data element.
With the era of cheaper hardware and microcomputers, manufacturers
started to use the upper half of the 256 code points for international
characters. It was one major reason of the success of these computers
over here.
But there was no standard and each did it his own way as to both
which characters and which code points to use, like to-day's DEC, Apple,
Atari, Commodore or other less known brands. The IBM PC was built with
yet another code that was later called "code page 437" and that everyone
in the compatible business settled on. But IBM also built PCs with
variations for countries using characters that were not in 437, now
called 860, 863 and 865.
There was an evident Babel and a new standard had to be set.
National institutions and many constructors participated to produce the
ISO 8859 standard. As 256 code points are not enough for all languages in
the world, several "versions" of this standard exist (see below for a
list, still evolving). ISO 8859-1 is for group 1 of Latin-based languages
and covers Western Europe, including English, hence many major countries
in North and South America, Australia and many others world wide. A new
multibyte standard is being prepared: ISO 10646, that will cover all
languages in a single code. ISO 8859-1 is the sigle-octet-compacted
subset of ISO 10646. Until it can be used, today's hardware and software,
strongly single-byte oriented, can easily extend the scope of a character
code to 8 bits and a version of ISO 8859. The particular version used
being implicit to a language is indeed sorry, but it must be understood
that it is a dramatic improvement in a country where data is implicit
anyway.
For short, I may call "ISO 8859" or simply "ISO" in the following
text any version that a system uses at any one time, when assuming that
the systems do not switch versions dynamically, but that the user can
setup the choice of the version he uses, if not implied by hardware.
ISO 8859 (any version) is an extension of ASCII. The upper half (in
fact, 128-159 are reserved for more control characters) is filled with
characters for a group of countries. The present trend to use ISO 8859 is
certain. Version 1 is much like the previous DEC's "8-bit ASCII code",
and VT terminals now have Escape sequences to switch among and display
several ISO 8859 versions. If one looks at Microsoft and Lotus
international codes, one sees that they had soon adopted a "pre-release"
of ISO 8859-1. As explained below, IBM have adopted ISO 8859-1 their own
way. X-Windows specifications (from MIT, of a presentation system on a
remote graphic terminal) prescribe that ISO 8859-1 is to be used on the
communication line.
ISO 8859-1, Latin Alphabet 1, for Dutch, English, Faeroese, Finnish,
French, German, Icelandic, Irish, Italian, Norwegian, Portuguese,
Spanish, and Swedish.
ISO 8859-2, Latin Alphabet 2. Albanian, Czech, English, German,
Hungarian, Polish, Romanian, Serbocroation, Slovak, and Slovene.
ISO 8859-3, Latin Alphabet 3, for Afrikaans, Catalan, English, Esperanto,
French, Galician, German, Italian, Maltese, and Turkish.
ISO 8859-4, Latin Alphabet 4, for Danish, English, Estonian, Finnish,
German, Greenlandic, Lappish, Latvian, Lithuanian, Norwegian, and
Swedish.
ISO 8859-5, the Latin/Cyrillic Alphabet, for Bulgarian, Byelorussian,
Macedonian, Russian, Serbocroation, and Ukrainian.
ISO 8859-6, the Latin/Arabic Alphabet.
ISO 8859-7, the Latin/Greek Alphabet.
ISO 8859-8, the Latin/Hebrew Alphabet.
ISO 8859-9, Latin Alphabet 5, for Danish, Dutch, English, Faeroese,
Finnish, French, German, Irish, Italian, Norwegian, Portuguese, Spanish,
Swedish, and Turkish.
The "foreign" environment.
So, these facts of languages have our typewriters different, and the
computer keyboards are modelled after them. A few letters shifted about,
digits on the uppercase side, accented letters in place of programming
symbols etc.. More striking, if you pardon the pun, is that the amount of
keys is not enough for all the French characters. Just like a typewriter
could overtype, some so-called dead-keys are used to compose accented
letters by a strike of the accent followed by one of another letter,
giving a single code point as program input.
It must be realized that, to an international computer user, an 8-
bit code is just as natural as the 7-bit one of English-speaking users.
8-bit code points "come out" some plain keys of the keyboard and are
expected to display. If a program filters them out, it will be shocking.
Worse, if it uses these code points for internal control functions, the
user will be confused with "strange behavior" a US keyboard would never
produce. For example, if it strips the 8th bit of a PC e-acute, it
produces a disturbing linefeed. Or if a program decides that normal
characters belong to the range 32-127, this will play havoc. It is worth
checking a program with such data, that some keyboards can produce with
alternate input.
Trust little about the keyboard layout like physical scan-codes. The
only reliable input is through the operating system or country-
configurable keyboard interface. Trying to use a keyboard redefinition
system consisting of macros transforming some hardware level input causes
problems too, because the dead-keys make two inputs and the system
interface used could just not see them at all.
8-bit codes in communications.
We now realize that exchanging data between those computers with
proprietary 8-bit codes is to us exactly like sending data from an ASCII
machine to an EBCDIC one: translation has to occur somewhere (which is to
translate what to what?). Communication, if to work at all, relies
heavily on strict standards. If communication between EBCDIC and ASCII
computers is feasible, it is because of the well known fact -- so well
one often forgets to state it -- that character on a communication line
must be ASCII. Just imagime there is nothing such to us...
It is urgently needed to stop all sorts of hacking. I know of at
least 25 different codes similar to ISO 8859-1 that a file receiver must
try to guess from which translate to its own. This makes over 1000
translation tables.
The only solution is to state that each and every octet of text data
carried on a communication line cannot be anything else that an official
standard and that, while waiting for a single multi-octet standard, each
language uses only one standard. ISO 8859 fills this purpose and is the
only official standard. It is already used by major firms and some
protocols like X-Windows.
The conclusions are:
- If a computer is forced to continue using a code different from but
with a character set similar to a version of ISO 8859, it must behave
with regard of what it sends on and receives from communication lines as
if it were using that version of ISO. This means that the key feature of
protocols (like file transfer in text mode or electronic mail) is to
implement translation of the data that this protocol exchanges with the
communication line. This applies to both services provided by a host and
terminal functions provided by stations.
- In normal usage, this translation is expected to always be to ISO 8859,
but, to ease the transition period, the table is best customisable and,
even better, selectable, especially to revert to the compatible case of
null translation.
- If a computer does not and cannot use one of the ISO 8859 codes, but
uses a character set close to one, a requirement is to define a "best
fit" translation between the proprietary code and that ISO version for
text file transfer. The important point is that this translation must be
invertible for all the 256 characters, even if this translates characters
to totally different ones to be used for functions like file transfer.
The reason is that doing otherwise permanently corrupts data that cannot
be processed later. It is better to obtain an apparently unreadable disk
file that can be sent back unaltered than to transliterate it with
lookalike characters and introduce confusion about what was the initial
data. And even if a system does not use a subset of the code points, it
may have to receive files from systems that do, and translation that is
not one-to-one and invertible means unusable data.
- The main difficulty is that this translation should be unique for a
given system. Someone has to rule what the translation is exactly but it
is difficult to convince a constructor of this necessity. Indeed, for two
different software packages written for the same system to be able to
talk to each other, the translation must be implemented the same way in
each (i. e. inverted, meaning one-to-one consistency) and not disabled.
- When a choice for a new code of a system has to be made, it seems
obvious that the painless one to avoid any translation is the only
standard: a version of ISO 8859. For example, this applies to Unix
systems now migrating to 8 bits: they must store ISO 8859 data. This is a
choice of the code used by the terminals, but also of in what code to
display system messages translated to national language for the terminals
to read them correctly.
- For communication programs that usually provide VT100 terminal mode, it
is not necessary to provide the full features of the higher VT models
that can switch character codes to get something usable. Moreover, it is
not desirable to impose that the hosts a terminal is connected to do have
to send character codes switching escape sequences in order to initiate
the use of national characters. The best is to be able to setup terminal
mode with an initial state of what display the GR code points (values
above 127). This way, using ISO 8859 will only be a "matter of fact" to
the host and neither has to know about code switching. This is especially
true when the only possible thing a microcomputer can do is display ISO
with a "useful translation" of the GR set of its own similar character
set, like the IBM PC or an Apple Macintosh with standard fonts.
Now, one important remark about implementing translation with a
proprietary code. With a high variety of protocols exchanging various
data formats or structures with the outside world, it is a wrong approach
to try to translate at the communication line interface. It is much
easier to translate "where the things go wrong", that's at the keyboard,
screen, pipes, file access etc.. interfaces. The remarkable result is
that every data the application processes in memory is ISO 8859, as if it
executed in an ideal system, that the application (and its messages
files) remain portable for such systems or applications implementing this
method and that the modifications to be made to various applications are
the same, because they are confined in the host system interfaces.
IBM and ISO 8859-1
For the PC, IBM has now adopted the character set of ISO 8859-1 with
a different code. This was done by replacing some characters of the
original PC's code, now called code page 437, to obtain all the
characters of ISO 8859-1. This new code is called "code page 850" and IBM
sees it as the preferred code page for all Latin1 customers (it's their
default code for OS/2). See the appendix D of the "DOS reference manual"
for a description of 850 and the code pages it may replace: 437, 860, 863
and 865. Beware, the yen, cent, and two paragraph symbols that existed
in 437 moved in 850. When one builds a translation table between 850 and
ISO 8859-1, 32 characters of 850, mainly box-drawing, are left to be
assigned to the 32 control characters 80-9F of ISO. IBM does not tell us
how to do that.
For the EBCDIC mainframes, IBM decided that, because terminals were
already using the ISO-646-like replacements to the US EBCDIC, they had to
stay compatible. They extended each such "national EBCDIC" to "country
extended code pages". Thus, there are as many EBCDICs as versions of ISO
646 (what ISO 8859 is trying to avoid):
CECP 037 for US, Canada-French, Netherlands, Portugal.
CECP 273 for Germany.
CECP 277 for Denmark and Norway.
CECP 278 for Finland and Sweden.
CECP 280 for Italy.
CECP 284 for Latin America and Spain.
CECP 285 for United Kingdom.
CECP 297 for France.
CECP 500 for Belgium, Switzerland-French and Switzerland-German.
Like 850, all these codes contain all the characters of ISO 8859-1.
Also 32 more control characters that, again, we are not told how to
translate to ISO. We have evidence for printable characters from code
pages publications. We have a hint for control characters from an EBCDIC
to ISO 2022 translation table in a Fortran manual.
As the OS/2 Communication Manager implements revertible translation
across all these codes, we may also deduce from its EBCDIC/PC code
translation what the translation of the PC control characters to ISO
could be. But indeed we would need more official information. Moreover,
we have no hint for the characters of code page 437 that do not belong to
ISO, and, compared to 850, the the Communication Manager translates them
differently to EBCDIC, even those box graphic characters that are the
same in 850 and 437.
A really strange feature is that none of these CECPs is compatible
with a de-facto standard EBCDIC, corresponding to a de-facto ASCII/EBCDIC
translation, that a huge amount of products settled on long ago,
including software from IBM:
- all compilers from IBM or others: C, REXX, PL/I, Pascal, for those
sensitive to the differences in code points,
- File transfer programs like Kermit, PCTERM, and IBM TCP/IP,
- Terminal emulation: TTY line mode or 3270 emulation by the 7171,
- ASCII tapes translation,
- Products to translate ASCII to EBCDIC on a mainframe: ARCUTIL ...
- Products that should produce ASCII, but produce EBCDIC because data
goes through EBCDIC/ASCII translation: e. g. SAS output for Tektronix,
- Products that convert this output anyway, because the expected
EBCDIC/ASCII translation does not occur: LINEMODE through the 7171
transparent mode,
- Similarly, TPRINT to print in this transparent mode
- Certainly many other products I don't know of or I forget, because, as
you see, the de-facto EBCDIC snowballs from one to the other,
- Last but far from least, it's the translation made by most gateways
that relay mail between BITNET and the Internet. (BITNET is an IBM-
proprietary network where data is EBCDIC. Internet is a worldwide ASCII
based network where mail is implemented by the SMTP protocol. But SMTP is
further gatewayed with other ASCII based mailing networks.) Gateways must
all use the same translation so that the network appears transparent from
the outside and predictable from the inside. Of special importance is
that of the encoding of data that is to be transmitted by e-mail
(UUENCODE, BOO, HQX...): if the ASCII-EBCDIC-ASCII translation fails to
be invertible, the user gets error messages or, if the encoding method
has no data integrity check, simply the wrong data without warning.
The closest to the de-facto EBCDIC is CECP 037 with the differences:
ASCII EBCDIC CECP 037
5B AD BA left bracket
5D BD BB right bracket
5E 5F B0 circumflex accent
What is getting ridiculous is that all compilers expect brackets at
AD and BD, that none of the CECPs use these code points, and that the
Communication Manager only knows about CECPs and is unable to transfer a
file containing C-language statements from the IBM-PC-C-compiler-ASCII to
the mainframe-C-compiler-EBCDIC.
The requirement #1 of SHARE is that IBM use a single EBCDIC code for
Latin group 1 and publish it. Using an extension of de-facto EBCDIC is
recommended (said otherwise, 037 with 3 code points swapped as above). I
have asked that, whatever the ISO 8859-x version, its translation to an
equivalent CECP use the same ISCII/EBCDIC table, so that ISCII/EBCDIC
translation be independent of the particular version.
There is an informal reply from IBM so far that they "will try to
converge on a scheme for international data interchange, while retaining
national data entry methods. This scheme will employ tagged data wherever
feasible, but will almost certainly involve some kind of "reference
EBCDIC" as a standard. When pressed, IBM representatives indicated that
the current trend is toward adoption of code page 500 for the standard."
(Quoted from Rick Troth report to the list ISO8859.)
This answer is a good step, but not much of an immediate help.
Very technical argument. It may seem unclear why the 5E/5F
translation is required. The reasons are as follows:
Translation of ASCII 5E "circumflex" has always been to EBCDIC 5F, which
is "not sign" in 037 but "circumflex" in 500. There was no "circumflex"
in EBCDIC and no "not" in ASCII. Now, both have both and the old
translation seems abnormal to continue with 037, but normal with 500. It
is so "popular" it would be difficult to adopt CECP 037. So, either ISO
or CECP, worse ASCII or EBCDIC must swap the code points. Swapping the
037 definition to get CECP xxx is not that bad, it means that:
- PL/I and REXX "are said to" use "circumflex" for the not operator.
- Their documentation would have to change, but a small fix to REXX and
PL/I to accept both would make it almost unnecessary.
- The new not operator is usable from an ASCII terminal without a cheat.
- Isn't "circumflex" the "not operator" in CECP 500 after all?
The IBM 7171
This 3270 protocol converter was initially designed to support US
ASCII only and uses the de-facto EBCDIC. However, customized translation
tables using the APL feature can make an IBM EBCDIC mainframe appear as
an ISO 8859 host to the ASCII terminals. The translation tables can adapt
any CECP to ISO. The CECP is chosen on initial connection by replying the
corresponding terminal type. A single code (ISO 8859) on the
communication line reduces the Nonvolatile RAM requirements.
One problem is that the 7171 forces the communication line to be 7-
bit and that the terminal MUST use the SO/SI protocol for input AND
output. For its input (terminal keyboard), the 7171 can also be
programmed to accept a non-locking shift escape sequence in front of each
character of the GR set.
File transfer is best done in transparent mode that operates without
translation, but is also restricted to 7-bit and needs 8-bit to 7-bit
encoding.
Asynchronous communication
Thanks to the interest of Frank da Cruz and Christine Gianone,
Kermit now defines specifications to support ISO 8859 (and other codes if
needed) on the communication line in terminal and file transfer mode. It
has provision to extend to mixed codes files too.
John Chandler has extended the traditional translation made by his
remarkable IBM mainframe Kermits to the specific choice of any CECP or
the extended de-facto EBCDIC to ISO 8859-1.
The impressive MSDOS Kermit by Joe Doupnik now also supports
translation of PC code pages to ISO8859-1.
Thanks to Paul Placeway, Macintosh Kermit now supports ISO 8859-1 as
an 8-bit line terminal.
I think I can speak on behalf on the international computing
community and enthusiastically thank these people for a work most useful
to us.
TCP/IP
Despite a mention I have read in an introduction to the TCP/IP
communication protocols "provision for hosts with different character
sets", I don't think the idea extends much beyond the problem of the
EBCDIC code restricted to the US ASCII character set. For international
characters users, the same problem exists for any pair of hosts not using
the same 8-bit code. Or, said with the standards in mind, a host not
using ISO 8859.
However, it is just a matter of what a protocol states, and, indeed,
the specifications of X-Windows state that ISO 8859-1 is the code that
must be used to exchange text between the client and the server of that
protocol.
What is needed is a general TCP/IP statement saying what single code
its application protocols use on communication lines: temptatively ISO
8859 with future migration to ISO 10646.
TCP/IP has 8-bit data transport but usually no translation, except
for EBCDIC mainframes. Telnet and SMTP mention restriction to 7-bit ASCII
with high-order bit set to zero. Yet, SMTP does not say if some
intermediate agent is in right to zero a bit that was set to one by the
source, and it is not clear if the intention is to forbid a "random"
high-order bit and allow for a future extension, rather than disallow it.
It would be much welcome that an 8-bit code be allowed at least in the
mail body and, further, specified: a version of ISO 8859, like for X-
Windows.
RFC 821 (4.5.2) states that data transforms must be reversible.
Speaking of BITNET/ASCII gateways, if the whole BITNET network is
considered as one system, this means that all gateways must use the same
translation tables; not knowing which caused evident failures to do so.
Moreover, beyond a strict SMTP concern, it is difficult to implement an
invertible translation between an inherently 8-bit EBCDIC and a 7-bit
code. It should be extended to 8-bit, strictly specified and invertible.
Telnet line communication code should be ISO 8859 by both the client
and server as explained in general terms above. Making TN3270 transfer
ISO 8859 would have been difficult because it would have envolved some
redefinition of 3270 data. Yet, it must be observed that the general
programming method making a communication program process ISO 8859 in
memory still holds for 3270 when ISO/EBCDIC translation is performed in
the line buffers encoding/decoding routines.
The same general rules for translation as explained above for file
transfer apply to FTP.
General conclusions
1) Every effort should be made so that all operating systems' codes be
unique and universal, i. e. ISO 8859-x for an 8-bit code, while waiting
for the perfect unicity of a single multibyte code.
2) Failing that, communication software must palliate a particular system
weakness and translate data so that it appears to the outside world to
use the unique data interchange code.
3) Programers must deal with 8-bit character codes (and prepare for
multibytes ones).
While waiting.
Failing to receive precise invertible translation tables from the
manufacturers, we must do our best to make our own agreement about the
translation of the code points that are undefined.
I have been looking for the most widely accepted complete tables and I
explain the reasons of the choices. However, I cannot guarantee that
another translation will not be used someday. The data correspond to my
explanations. That's all I can say.
DEC
Easy case first. DEC uses ISO 8859. Nothing to do except making sure
the 8 bits go through.
IBM (EBCDIC mainframes first)
With the Communication Manager of OS/2, IBM uses highly coherent
invertible translation tables between mainframes and PCs. One can
translate from any of the numerous EBCDIC CECPs to any of the codepages
of the PC, data is never lost and comes back unaltered, whatever the trip
fom one code to another (this is called "round trip integrity"). Such a
coherence is not fortuitous, nor only the case of the Communication
Manager. I expect that deriving all the code pages from ISO 8859-1 was
widely planned and that all the products based on them are coherent. For
example, I have verified that the tables that GDDM uses to translate from
one CECP to another are coherent with the Communication Manager.
The good news is that once we know a translation, we know them all
by "mathematical deduction". The bad news is that the Communication
Manager tells us only how to translate between any code of the set of PC
and CECPs codepages to another, not ISO 8859-1.
Because of the character representation, we know how CECP 037
translates to ISO 8859-1 except for the 32 control characters. So, if we
can find a clue for those characters, we know all the translations.
The people on the mailing list ISO8859 have found the most probable
one. Except for correcting an invalid ISO 9F=>EBCDIC E1, because E1 is
"Divide sign", it is identical to:
"VS/Fortran Language & Library Reference Manual, Rel 4.1, SC26-4119-1"
GOST 19768-87
MTS sites translation
Unix file conversion "dd conv=ibm"
JNET EBCDIC/ASCII network gateways (except for another difference for ISO
85 and 8A)
If the ASCII world (I mean ISO) is to be served, we must also be
compatible with what they have been using for years and define an
extension of the de-facto EBCDIC in addition to the 9 official CECPs. A
word of warning: This EBCDIC definition is not official, but the most
sensible compromise for compatibility with the de-facto EBCDIC and
official CECPs.
The following tables translate ISO 8859-1 to EBCDIC and are followed
by the inverse translation. In all cases, the translation of the 80-A0
range of ISO 8859-1 is the best guess of the list ISO8859.
"Extended de-facto EBCDIC".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 5A 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 AD E0 BD 5F 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 A1 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA 4A B1 9F B2 6A B5 BB B4 9A 8A B0 CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC BA AE 59
44 45 42 46 43 47 9C 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 70 DD DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 E5 E7 F1 A2 2E 3C 28 2B 7C
26 E9 EA EB E8 ED EE EF EC DF 21 24 2A 29 3B 5E
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 A6 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A 23 40 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 7E 73 74 75 76 77 78 79 7A A1 BF D0 5B DE AE
AC A3 A5 B7 A9 A7 B6 BC BD BE DD A8 AF 5D B4 D7
7B 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
7D 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 037".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 5A 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 BA E0 BB B0 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 A1 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA 4A B1 9F B2 6A B5 BD B4 9A 8A 5F CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
44 45 42 46 43 47 9C 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 70 DD DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 E5 E7 F1 A2 2E 3C 28 2B 7C
26 E9 EA EB E8 ED EE EF EC DF 21 24 2A 29 3B AC
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 A6 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A 23 40 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 7E 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
5E A3 A5 B7 A9 A7 B6 BC BD BE 5B 5D AF A8 B4 D7
7B 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
7D 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 273".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
B5 C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 63 EC FC 5F 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 43 BB DC 59 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 B1 9F B2 CC 7C BD B4 9A 8A BA CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 4A 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF E0 BF 80 FD FE FB 5A AD AE A1
44 45 42 46 C0 47 9C 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF 6A E1 70 DD DE DB D0 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 7B E0 E1 E3 E5 E7 F1 C4 2E 3C 28 2B 21
26 E9 EA EB E8 ED EE EF EC 7E DC 24 2A 29 3B 5E
2D 2F C2 5B C0 C1 C3 C5 C7 D1 F6 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A 23 A7 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 DF 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 A3 A5 B7 A9 40 B6 BC BD BE AC 7C AF A8 B4 D7
E4 41 42 43 44 45 46 47 48 49 AD F4 A6 F2 F3 F5
FC 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB 7D F9 FA FF
D6 F7 53 54 55 56 57 58 59 5A B2 D4 5C D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB 5D D9 DA 9F
"CECP 277".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F 4A 67 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
80 C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 9E E0 9F 5F 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 9C BB 47 DC 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 B1 5A B2 70 B5 BD B4 9A 8A BA CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 5B 7B 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 7C FD FE FB FC AD AE 59
44 45 42 46 43 D0 C0 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 6A DD DE DB A1 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 7D E7 F1 23 2E 3C 28 2B 21
26 E9 EA EB E8 ED EE EF EC DF A4 C5 2A 29 3B 5E
2D 2F C2 C4 C0 C1 C3 24 C7 D1 F8 2C 25 5F 3E 3F
A6 C9 CA CB C8 CD CE CF CC 60 3A C6 D8 27 3D 22
40 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA 7B B8 5B 5D
B5 FC 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 A3 A5 B7 A9 A7 B6 BC BD BE AC 7C AF A8 B4 D7
E6 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
E5 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB 7E F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 278".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F 63 67 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
EC C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 B5 71 9F 5F 6D
51 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 43 BB 47 DC 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 B1 5A B2 CC 4A BD B4 9A 8A BA CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 7B 5B 9E 68 74 E0 72 73 78 75 76 77
AC 69 ED EE EB EF 7C BF 80 FD FE FB FC AD AE 59
44 45 42 46 C0 D0 9C 48 54 79 52 53 58 55 56 57
8C 49 CD CE CB CF 6A E1 70 DD DE DB A1 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 7B E0 E1 E3 7D E7 F1 A7 2E 3C 28 2B 21
26 60 EA EB E8 ED EE EF EC DF A4 C5 2A 29 3B 5E
2D 2F C2 23 C0 C1 C3 24 C7 D1 F6 2C 25 5F 3E 3F
F8 5C CA CB C8 CD CE CF CC E9 3A C4 D6 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 5D
B5 FC 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 A3 A5 B7 A9 5B B6 BC BD BE AC 7C AF A8 B4 D7
E4 41 42 43 44 45 46 47 48 49 AD F4 A6 F2 F3 F5
E5 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB 7E F9 FA FF
C9 F7 53 54 55 56 57 58 59 5A B2 D4 40 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 280".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F B1 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
B5 C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 90 48 51 5F 6D
DD 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 44 BB 54 58 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 7B 9F B2 CD 7C BD B4 9A 8A BA CA AF BC
4A 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
C0 45 42 46 43 47 9C E0 D0 5A 52 53 A1 55 56 57
8C 49 6A CE CB CF CC E1 70 79 DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 7B E1 E3 E5 5C F1 B0 2E 3C 28 2B 21
26 5D EA EB 7D ED EE EF 7E DF E9 24 2A 29 3B 5E
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 F2 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC F9 3A A3 A7 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
5B 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 EC 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 23 A5 B7 A9 40 B6 BC BD BE AC 7C AF A8 B4 D7
E0 41 42 43 44 45 46 47 48 49 AD F4 F6 A6 F3 F5
E8 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC 60 FA FF
E7 F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 284".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 BB 7F 69 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 4A E0 5A BA 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 BD 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 B1 9F B2 49 B5 A1 B4 9A 8A 5F CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 7B ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
44 45 42 46 43 47 9C 48 54 51 52 53 58 55 56 57
8C 6A CD CE CB CF CC E1 70 DD DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 E5 E7 A6 5B 2E 3C 28 2B 7C
26 E9 EA EB E8 ED EE EF EC DF 5D 24 2A 29 3B AC
2D 2F C2 C4 C0 C1 C3 C5 C7 23 F1 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A D1 40 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 A8 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 A3 A5 B7 A9 A7 B6 BC BD BE 5E 21 AF 7E B4 D7
7B 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
7D 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 285".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 5A 7F 7B 4A 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 B1 E0 BB BA 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 BC 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 5B 9F B2 6A B5 BD B4 9A 8A 5F CA AF A1
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
44 45 42 46 43 47 9C 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 70 DD DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 E5 E7 F1 24 2E 3C 28 2B 7C
26 E9 EA EB E8 ED EE EF EC DF 21 A3 2A 29 3B AC
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 A6 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A 23 40 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 AF 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 5B A5 B7 A9 A7 B6 BC BD BE 5E 5D 7E A8 B4 D7
7B 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
7D 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 297".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F B1 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
44 C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 90 48 B5 5F 6D
A0 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 51 BB 54 BD 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 7B 9F B2 DD 5A A1 B4 9A 8A BA CA AF BC
4A 8F EA FA BE 79 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
7C 45 42 46 43 47 9C E0 D0 C0 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 70 6A DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 40 E1 E3 E5 5C F1 B0 2E 3C 28 2B 21
26 7B EA EB 7D ED EE EF EC DF A7 24 2A 29 3B 5E
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 F9 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC B5 3A A3 E0 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
5B 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
60 A8 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 23 A5 B7 A9 5D B6 BC BD BE AC 7C AF 7E B4 D7
E9 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
E8 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC A6 FA FF
E7 F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
"CECP 500".
00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
40 4F 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 4A E0 5A 5F 6D
79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 BB D0 A1 07
20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E FF
41 AA B0 B1 9F B2 6A B5 BD B4 9A 8A BA CA AF BC
90 8F EA FA BE A0 B6 B3 9D DA 9B 8B B7 B8 B9 AB
64 65 62 66 63 67 9E 68 74 71 72 73 78 75 76 77
AC 69 ED EE EB EF EC BF 80 FD FE FB FC AD AE 59
44 45 42 46 43 47 9C 48 54 51 52 53 58 55 56 57
8C 49 CD CE CB CF CC E1 70 DD DE DB DC 8D 8E DF
---- inverted ----
00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F
10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F
80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07
90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A
20 A0 E2 E4 E0 E1 E3 E5 E7 F1 5B 2E 3C 28 2B 21
26 E9 EA EB E8 ED EE EF EC DF 5D 24 2A 29 3B 5E
2D 2F C2 C4 C0 C1 C3 C5 C7 D1 A6 2C 25 5F 3E 3F
F8 C9 CA CB C8 CD CE CF CC 60 3A 23 40 27 3D 22
D8 61 62 63 64 65 66 67 68 69 AB BB F0 FD FE B1
B0 6A 6B 6C 6D 6E 6F 70 71 72 AA BA E6 B8 C6 A4
B5 7E 73 74 75 76 77 78 79 7A A1 BF D0 DD DE AE
A2 A3 A5 B7 A9 A7 B6 BC BD BE AC 7C AF A8 B4 D7
7B 41 42 43 44 45 46 47 48 49 AD F4 F6 F2 F3 F5
7D 4A 4B 4C 4D 4E 4F 50 51 52 B9 FB FC F9 FA FF
5C F7 53 54 55 56 57 58 59 5A B2 D4 D6 D2 D3 D5
30 31 32 33 34 35 36 37 38 39 B3 DB DC D9 DA 9F
IBM PC
Because only code page 850 contains all the characters of ISO 8859-
1, it seems reasonable to require that the PC use code page 850 during
terminal mode. If it uses another code page instead, many international
characters will still be readable.
Here are the invertible translations of PC codepages from/to ISO
8859-1. They are deduced from Communication Manager so that, when
combined with the CECP tables above, the compound table produces the same
translation. The same remark applies to the the otherwise undetermined
translation of the 80-A0 range of ISO 8859-1.
"IBM PC code page 850"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C4 B3 C0 D9 BF DA C3 C1 B4 C2 C5 B0 B1 B2 D5 F2
CD BA C8 BC BB C9 CC CA B9 CB CE DF DC DB FE 9F
FF AD BD 9C CF BE DD F5 F9 B8 A6 AE AA F0 A9 EE
F8 F1 FD FC EF E6 F4 FA F7 FB A7 AF AC AB F3 A8
B7 B5 B6 C7 8E 8F 92 80 D4 90 D2 D3 DE D6 D7 D8
D1 A5 E3 E0 E2 E5 99 9E 9D EB E9 EA 9A ED E8 E1
85 A0 83 C6 84 86 91 87 8A 82 88 89 8D A1 8C 8B
D0 A4 95 A2 93 E4 94 F6 9B 97 A3 96 81 EC E7 98
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C7 FC E9 E2 E4 E0 E5 E7 EA EB E8 EF EE EC C4 C5
C9 E6 C6 F4 F6 F2 FB F9 FF D6 DC F8 A3 D8 D7 9F
E1 ED F3 FA F1 D1 AA BA BF AE AC BD BC A1 AB BB
8B 8C 8D 81 88 C1 C2 C0 A9 98 91 94 93 A2 A5 84
82 87 89 86 80 8A E3 C3 92 95 97 99 96 90 9A A4
F0 D0 CA CB C8 8E CD CE CF 83 85 9D 9C A6 CC 9B
D3 DF D4 D2 F5 D5 B5 FE DE DA DB D9 FD DD AF B4
AD B1 8F BE B6 A7 F7 B8 B0 A8 B7 B9 B3 B2 9E A0
"IBM PC code page 437"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 B0 B1 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
B7 B8 B9 BB C4 C5 CA CB CC CD CF D0 D1 D2 D3 D8
D9 DA DC DD DE DF E0 E2 E3 E5 E9 EB EC EF 9E C9
FF AD 9B 9C A9 9D B3 15 FE 9F A6 AE AA E8 D7 E4
F8 F1 FD DB BF E6 14 FA CE EE A7 AF AC AB FC A8
B4 B5 B2 B6 8E 8F 92 80 BE 90 BC BD C2 F3 C0 C1
D4 A5 F7 F0 F5 F9 99 E7 C3 F4 EA FB 9A D5 D6 E1
85 A0 83 F2 84 86 91 87 8A 82 88 89 8D A1 8C 8B
C6 A4 95 A2 93 ED 94 F6 BA 97 A3 96 81 C7 C8 98
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 B6 A7 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C7 FC E9 E2 E4 E0 E5 E7 EA EB E8 EF EE EC C4 C5
C9 E6 C6 F4 F6 F2 FB F9 FF D6 DC A2 A3 A5 9E A9
E1 ED F3 FA F1 D1 AA BA BF A4 AC BD BC A1 AB BB
14 15 C2 A6 C0 C1 C3 80 81 82 F8 83 CA CB C8 B4
CE CF CC D8 84 85 F0 FD FE 9F 86 87 88 89 B8 8A
8B 8C 8D 8E D0 DD DE AE 8F 90 91 B3 92 93 94 95
96 DF 97 98 AF 99 B5 D7 AD 9A DA 9B 9C F5 B9 9D
D3 B1 E3 CD D9 D4 F7 D2 B0 D5 B7 DB BE B2 A8 A0
"IBM PC code page 860"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 F4 F5 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C4 B3 C0 D9 BF DA C3 C1 B4 C2 C5 B0 B1 B2 D5 F2
CD BA C8 BC BB C9 CC CA B9 CB CE DF DC DB FE EF
FF AD 9B 9C CF BE E4 15 F9 B8 A6 AE AA F0 E0 EE
F8 F1 FD FC E3 E6 14 FA F7 FB A7 AF AC AB F3 A8
91 86 8F 8E C7 D2 DE 80 92 90 89 D3 98 8B D7 D8
D1 A5 A9 9F 8C 99 EB 9E D6 9D 96 EA 9A ED E8 E1
85 A0 83 84 B5 B6 DD 87 8A 82 88 B7 8D A1 BD C6
D0 A4 95 A2 93 94 E2 F6 D4 97 A3 E5 81 EC E7 E9
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 B6 A7 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C7 FC E9 E2 E3 E0 C1 E7 EA CA E8 CD D4 EC C3 C2
C9 C0 C8 F4 F5 F2 DA F9 CC D5 DC A2 A3 D9 D7 D3
E1 ED F3 FA F1 D1 AA BA BF D2 AC BD BC A1 AB BB
8B 8C 8D 81 88 E4 E5 EB A9 98 91 94 93 EE A5 84
82 87 89 86 80 8A EF C4 92 95 97 99 96 90 9A A4
F0 D0 C5 CB F8 8E D8 CE CF 83 85 9D 9C E6 C6 9B
AE DF F6 B4 A6 FB B5 FE DE FF DB D6 FD DD AF 9F
AD B1 8F BE 14 15 F7 B8 B0 A8 B7 B9 B3 B2 9E A0
"IBM PC code page 863"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C4 B3 C0 D9 BF DA C3 C1 B4 C2 C5 B0 B1 B2 D5 F2
CD BA C8 BC BB C9 CC CA B9 CB CE DF DC DB FE 9F
FF EF 9B 9C 98 BE A0 8F A4 B8 E2 AE AA F0 A9 A7
F8 F1 FD A6 A1 E6 86 FA A5 FB EA AF AC AB AD F3
8E B5 84 C7 D3 D4 EE 80 91 90 92 94 DE D6 A8 95
D1 D7 E3 E0 99 E5 FC F4 DD 9D E9 9E 9A ED E8 E1
85 B7 83 C6 B6 BD EB 87 8A 82 88 89 8D D2 8C 8B
D0 CF F7 A2 93 E4 F5 F6 D8 97 A3 96 81 EC E7 F9
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C7 FC E9 E2 C2 E0 B6 E7 EA EB E8 EF EE EC C0 A7
C9 C8 CA F4 CB CF FB F9 A4 D4 DC A2 A3 D9 DB 9F
A6 B4 F3 FA A8 B8 B3 AF CE AE AC BD BC BE AB BB
8B 8C 8D 81 88 C1 E4 E1 A9 98 91 94 93 E5 A5 84
82 87 89 86 80 8A E3 C3 92 95 97 99 96 90 9A F1
F0 D0 ED C4 C5 8E CD D1 F8 83 85 9D 9C D8 CC 9B
D3 DF AA D2 F5 D5 B5 FE DE DA BA E6 FD DD C6 A1
AD B1 8F BF D7 F6 F7 F2 B0 FF B7 B9 D6 B2 9E A0
"IBM PC code page 865"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 F4 F5 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C4 B3 C0 D9 BF DA C3 C1 B4 C2 C5 B0 B1 B2 D5 F2
CD BA C8 BC BB C9 CC CA B9 CB CE DF DC DB FE 9F
FF AD BD 9C AF BE DD 15 F9 B8 A6 AE AA F0 A9 EE
F8 F1 FD FC EF E6 14 FA F7 FB A7 CF AC AB F3 A8
B7 B5 B6 C7 8E 8F 92 80 D4 90 D2 D3 DE D6 D7 D8
D1 A5 E3 E0 E2 E5 99 9E 9D EB E9 EA 9A ED E8 E1
85 A0 83 C6 84 86 91 87 8A 82 88 89 8D A1 8C 8B
D0 A4 95 A2 93 E4 94 F6 9B 97 A3 96 81 EC E7 98
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 B6 A7 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C7 FC E9 E2 E4 E0 E5 E7 EA EB E8 EF EE EC C4 C5
C9 E6 C6 F4 F6 F2 FB F9 FF D6 DC F8 A3 D8 D7 9F
E1 ED F3 FA F1 D1 AA BA BF AE AC BD BC A1 AB A4
8B 8C 8D 81 88 C1 C2 C0 A9 98 91 94 93 A2 A5 84
82 87 89 86 80 8A E3 C3 92 95 97 99 96 90 9A BB
F0 D0 CA CB C8 8E CD CE CF 83 85 9D 9C A6 CC 9B
D3 DF D4 D2 F5 D5 B5 FE DE DA DB D9 FD DD AF B4
AD B1 8F BE 14 15 F7 B8 B0 A8 B7 B9 B3 B2 9E A0
Apple Macintosh
Paul Placeway and I have been looking for an official translation
table by Apple Inc. that would fulfill the data processing requirement of
being invertible for the 256 code points. We found none, and Apple
remained silent to this request. So, I've had to build one. I tried to
make it compatible with existing translation tables, mainly the official
"Apple File Exchange" from Apple Inc. that translates between IBM PC code
and Apple's (hence, indirectly to ISO 8859-1). Many characters of the
Apple fonts belong to ISO 8859-1 and caused no problem. The translation
of some characters became incompatible, because the "Apple File Exchange"
is homographic, which fails to be invertible (e. g. 2 superscript
translates to plain 2). Others, because the AFE is based on IBM PC 437
that contains some characters of the Macintosh set that have been
replaced (giving IBM PC code page 850) with characters of ISO 8859-1.
(For example, it matched Mac Omega to a 437 Omega that became a 850 U
circumflex that now has to match the Mac's F3.) Translations that
remained undefined were chosen to be homographic or mnemonic. Leftovers
from the 80-FF Mac range have simply be lined up in the 80-9F range of
ISO 8859-1 without any particular reason.
After the tables, you will find comments about the choices (why):
Blank: compatible with AFE (same in both PC 437 and 850).
S: not in 437/AFE, but ISO character is in "Standard Apple Character Set"
E: same for "SACS with extensions". Means keyable on newer systems only.
L: look-alike choice.
M: mnemonic choice.
C: "happens" to be compatible with AFE.
A: arbitrary.
"Standard Apple Macintosh Character Set with extensions"
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
A5 AA AD B0 B3 B7 BA BD C3 C5 C9 D1 D4 D9 DA DC
DD E0 E2 E3 E4 F0 F6 F7 F9 FA FB FD FE FF F5 C4
CA C1 A2 A3 DB B4 A0 A4 AC A9 BB C7 C2 D0 A8 F8
A1 B1 D3 D2 AB B5 A6 E1 FC D5 BC C8 B9 B8 B2 C0
CB E7 E5 CC 80 81 AE 82 E9 83 E6 E8 ED EA EB EC
C6 84 F1 EE EF CD 85 D7 AF F4 F2 F3 86 DF CE A7
88 87 89 8B 8A 8C BE 8D 8F 8E 90 91 93 92 94 95
B6 96 98 97 99 9B 9A D6 BF 9D 9C 9E 9F DE CF D8
---- inverted ----
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
C4 C5 C7 C9 D1 D6 DC E1 E0 E2 E4 E3 E5 E7 E9 E8
EA EB ED EC EE EF F1 F3 F2 F4 F6 F5 FA F9 FB FC
A6 B0 A2 A3 A7 80 B6 DF AE A9 81 B4 A8 82 C6 D8
83 B1 BE 84 A5 B5 F0 85 BD BC 86 AA BA 87 E6 F8
BF A1 AC 88 9F 89 D0 AB BB 8A A0 C0 C3 D5 DE FE
AD 8B B3 B2 8C B9 F7 D7 FF 8D 8E A4 8F 90 FD DD
91 B7 92 93 94 C2 CA C1 CB C8 CD CE CF CC D3 D4
95 D2 DA DB D9 9E 96 97 AF 98 99 9A B8 9B 9C 9D
ISO Mac AFE 850 Why Mac name
80 | A5 | F0 | BA | A | bullet
81 | AA | F0 | CD | A | trade mark
82 | AD | F0 | C9 | A | not equal
83 | B0 | F0 | BB | A | infinity
84 | B3 | F0 | C8 | A | greater than or equal to
85 | B7 | F0 | BC | A | Uppercase Sigma (Summation)
86 | BA | F0 | CC | A | integral
87 | BD | F0 | B9 | A | Uppercase Omega
88 | C3 | F0 | CB | A | radical (square root)
89 | C5 | F0 | CA | A | approx equal
8A | C9 | F0 | CE | A | elipsis (...)
8B | D1 | F0 | DF | A | em dash
8C | D4 | F0 | DC | A | left singlequote ( ` )
8D | D9 | F0 | DB | A | Y dieresis
8E | DA | F0 | FE | A | divide (a / with less slope)
8F | DC | B3 | F2 | A | single left guil (like < )
90 | DD | F0 | B3 | A | single left guil (like > )
91 | E0 | F0 | C4 | A | double dagger
92 | E2 | F0 | DA | A | baseline single close quote
93 | E3 | F0 | BF | A | baseline double close quote
94 | E4 | F0 | C0 | A | per thousand
95 | F0 | F0 | D9 | A | (closed) Apple
96 | F6 | F0 | C3 | A | circumflex
97 | F7 | F0 | B4 | A | tilde
98 | F9 | F0 | C2 | A | breve
99 | FA | F0 | C1 | A | dot accent
9A | FB | F0 | C5 | A | ring accent
9B | FD | F0 | B0 | A | Hungarian umlaut
9C | FE | F0 | B1 | A | ogonek
9D | FF | F0 | B2 | A | caron
9E | F5 | F0 | D5 | AL | dotless i
9F | C4 | C4 | 9F | AC | florin
A0 | CA | FF | FF | AL | non-printing space
A1 | C1 | C1 | AD | | inverted !
A2 | A2 | F0 | BD | S | cent
A3 | A3 | A3 | 9C | | sterling
A4 | DB | F0 | CF | E | generic curency
A5 | B4 | F0 | BE | S | yen
A6 | A0 | F0 | DD | AL | dagger
A7 | A4 | BA | F5 | S | section
A8 | AC | A5 | F9 | S | dieresis (AKA umlaut)
A9 | A9 | F0 | B8 | | copyright ( (C) )
AA | BB | BB | A6 | | feminine ordinal
AB | C7 | C7 | AE | | left guillemot (like << )
AC | C2 | C2 | AA | | logical not
AD | D0 | 3D | F0 | AL | en dash
AE | A8 | D1 | A9 | S | registered ( (R) )
AF | F8 | 45 | EE | AL | macron
B0 | A1 | A1 | F8 | | superscript ring
B1 | B1 | B1 | F1 | | plus minus
B2 | D3 | 32 | FD | AM | right doublequote ( '' )
B3 | D2 | 6E | FC | AM | left doublequote ( `` )
B4 | AB | 55 | EF | S | acute accent
B5 | B5 | B5 | E6 | | greek lowercase mu
B6 | A6 | BA | F4 | S | paragraph
B7 | E1 | E1 | FA | EC | centered (small) dot
B8 | FC | C5 | F7 | E | cedilla
B9 | D5 | C3 | FB | AM | right singlequote ( ' )
BA | BC | BC | A7 | | masculine ordinal
BB | C8 | C8 | AF | | right guillemot (like >> )
BC | B9 | 34 | AC | A | lowercase pi
BD | B8 | 32 | AB | A | Uppercase Pi (Power)
BE | B2 | B2 | F3 | AC | less than or equal to
BF | C0 | C0 | A8 | | inverted ?
C0 | CB | F0 | B7 | S | A grave
C1 | E7 | F0 | B5 | E | A accute
C2 | E5 | F0 | B6 | E | A circumflex
C3 | CC | F0 | C7 | S | A tilde
C4 | 80 | 80 | 8E | | A dieresis
C5 | 81 | 81 | 8F | | A ring
C6 | AE | AE | 92 | | AE
C7 | 82 | 82 | 80 | | C cedilla
C8 | E9 | F0 | D4 | E | E grave
C9 | 83 | 83 | 90 | | E accute
CA | E6 | F0 | D2 | S | E circumflex
CB | E8 | F0 | D3 | E | E dieresis
CC | ED | F0 | DE | E | I grave
CD | EA | F0 | D6 | E | I accute
CE | EB | F0 | D7 | E | I circumflex
CF | EC | F0 | D8 | E | I dieresis
D0 | C6 | F0 | D1 | AL | Uppercase Delta
D1 | 84 | 84 | A5 | | N tilde
D2 | F1 | B9 | E3 | E | O grave
D3 | EE | 61 | E0 | E | O accute
D4 | EF | C2 | E2 | E | O circumflex
D5 | CD | 6F | E5 | S | O tilde
D6 | 85 | 85 | 99 | | O dieresis
D7 | D7 | 50 | 9E | AM | lozenge (open diamond)
D8 | AF | B4 | 9D | E | O slash
D9 | F4 | B6 | EB | E | U grave
DA | F2 | BC | E9 | E | U accute
DB | F3 | BD | EA | E | U circumflex
DC | 86 | 86 | 9A | | U dieresis
DD | DF | AF | ED | AM | fl
DE | CE | DB | E8 | AL | OE
DF | A7 | A7 | E1 | | Es-zed (German double s)
E0 | 88 | 88 | 85 | | a grave
E1 | 87 | 87 | A0 | | a accute
E2 | 89 | 89 | 83 | | a circumflex
E3 | 8B | F0 | C6 | S | a tilde
E4 | 8A | 8A | 84 | | a dieresis
E5 | 8C | 8C | 86 | | a ring
E6 | BE | BE | 91 | | ae
E7 | 8D | 8D | 87 | | c cedilla
E8 | 8F | 8F | 8A | | e grave
E9 | 8E | 8E | 82 | | e accute
EA | 90 | 90 | 88 | | e circumflex
EB | 91 | 91 | 89 | | e dieresis
EC | 93 | 93 | 8D | | i grave
ED | 92 | 92 | A1 | | i accute
EE | 94 | 94 | 8C | | i circumflex
EF | 95 | 95 | 8B | | i dieresis
F0 | B6 | F0 | D0 | AL | partial
F1 | 96 | 96 | A4 | | n tilde
F2 | 98 | 98 | 95 | | o grave
F3 | 97 | 97 | A2 | | o accute
F4 | 99 | 99 | 93 | | o circumflex
F5 | 9B | B7 | E4 | S | o tilde
F6 | 9A | 9A | 94 | | o dieresis
F7 | D6 | D6 | F6 | | divide
F8 | BF | A2 | 9B | S | o slash
F9 | 9D | 9D | 97 | | u grave
FA | 9C | 9C | A3 | | u accute
FB | 9E | 9E | 96 | | u circumflex
FC | 9F | 9F | 81 | | u dieresis
FD | DE | B0 | EC | AM | fi
FE | CF | A0 | E7 | AM | oe
FF | D8 | D8 | 98 | | y dieresis
ISO 8859-1
Here is a names list and graphic representation of the ISO 8859-1
code. The well-known ASCII part and control characters have been left out
to shorten the text. They are included for practical programming help
only. In particular, the "bitmaps" are nothing official. For convenience,
two lists of names and acronyms are given: the first comes from IBM, the
second from a list of characters of the standard IS0 6937.
Code point in hexadecimal / Acronym / Name. Origin: IBM.
A0 | SP30 | required space D0 | LD62 | Eth islandic capital
A1 | SP03 | exclamation point inv D1 | LN20 | N tilde capital
A2 | SC04 | cent sign D2 | LO14 | O grave capital
A3 | SC02 | pound sign D3 | LO12 | O acute capital
A4 | SC01 | int. currency symbol D4 | LO16 | O circumflex capital
A5 | SC05 | Yen sign D5 | LO20 | O tilde capital
A6 | SM65 | Vertical Line, Broken D6 | LO18 | O diaeresis capital
A7 | SM24 | section/paragraph symb D7 | SA07 | Multiply sign
A8 | SD17 | diaeresis,umlaut acc D8 | LO62 | O slash capital
A9 | SM52 | Copyright sign D9 | LU14 | U grave capital
AA | SM21 | ordinal indicator fem DA | LU12 | U acute capital
AB | SP17 | left angle quotes DB | LU16 | U circumflex capital
AC | SM66 | logical NOT, EOL symb DC | LU18 | U diaeresis capital
AD | SP32 | Syllabe Hyphen DD | LY12 | Y acute Capital
AE | SM53 | Regist.Trade Mark sym DE | LT64 | Thorn islandic capital
AF | SM15 | overline DF | LS61 | sharp s small
B0 | SM19 | Degree Symbol E0 | LA13 | a grave small
B1 | SA02 | plus or minus sign E1 | LA11 | a acute small
B2 | ND021| 2 superscript E2 | LA15 | a circumflex small
B3 | ND031| 3 superscript E3 | LA19 | a tilde small
B4 | SD11 | acute accent E4 | LA17 | a diaeresis small
B5 | SM17 | micro symbol E5 | LA27 | a overcircle small
B6 | SM25 | paragraph symbol USA E6 | LA51 | ae diphthong small
B7 | SD63 | Middle dot accent E7 | LC41 | c cedilla small
B8 | SD41 | cedilla accent E8 | LE13 | e grave small
B9 | ND011| 1 superscript E9 | LE11 | e acute small
BA | SM20 | ordinal indicator mas EA | LE15 | e circumflex small
BB | SP18 | right angle quotes EB | LE17 | e diaeresis small
BC | NF04 | one quarter EC | LI13 | i grave small
BD | NF01 | one half ED | LI11 | i acute small
BE | NF05 | three quarters EE | LI15 | i circumflex small
BF | SP16 | Question mark inverted EF | LI17 | i diaeresis small
C0 | LA14 | A grave capital F0 | LD63 | Eth Islandic small
C1 | LA12 | A acute capital F1 | LN19 | n tilde small
C2 | LA16 | A circumflex capital F2 | LO13 | o grave small
C3 | LA20 | A tilde capital F3 | LO11 | o acute small
C4 | LA18 | A diaeresis capital F4 | LO15 | o circumflex small
C5 | LA28 | A overcircle capital F5 | LO19 | o tilde small
C6 | LA52 | AE diphthong capital F6 | LO17 | o diaeresis small
C7 | LC42 | C cedilla capital F7 | SA06 | Divide sign
C8 | LE14 | E grave capital F8 | LO61 | o slash small
C9 | LE12 | E acute capital F9 | LU13 | u grave small
CA | LE16 | E circumflex capital FA | LU11 | u acute small
CB | LE18 | E diaeresis capital FB | LU15 | u circumflex small
CC | LI14 | I grave capital FC | LU17 | u diaeresis small
CD | LI12 | I acute capital FD | LY11 | y acute small
CE | LI16 | I circumflex capital FE | LT63 | Thorn islandic small
CF | LI18 | I diaeresis capital FF | LY17 | y diaeresis small
Names and slightly different acronyms from the ISO 6937 repertoire
A0 SP31 NO-BREAK SPACE
A1 SP03 INVERTED EXCLAMATION MARK
A2 SC04 CENT SIGN
A3 SC02 POUND SIGN
A4 SC01 CURRENCY SIGN
A5 SC05 YEN SIGN
A6 SM65 BROKEN BAR
A7 SM24 PARAGRAPH SIGN
A8 SD17 DIAERESIS
A9 SM52 COPYRIGHT SIGN
AA SM21 FEMININE ORDINAL INDICATOR
AB SP17 LEFT POINTING DOUBLE ANGLE QUOTATION MARK
AC SM66 NOT SIGN
AD SP32 SOFT HYPHEN
AE SM53 REGISTERED TRADE MARK SIGN
AF SD31 MACRON
B0 SM19 DEGREE SIGN
B1 SA02 PLUS-MINUS SIGN
B2 NS02 SUPERSCRIPT TWO
B3 NS03 SUPERSCRIPT THREE
B4 SD11 ACUTE ACCENT
B5 SM17 MICRO SIGN
B6 SM25 PILCHROW SIGN
B7 SM26 MIDDLE DOT
B8 SD41 CEDILLA
B9 NS01 SUPERSCRIPT ONE
BA SM20 MASCULINE ORDINAL INDICATOR
BB SP18 RIGHT POINTING DOUBLE ANGLE QUOTATION MARK
BC NF04 VULGAR FRACTION ONE-QUARTER
BD NF01 VULGAR FRACTION ONE-HALF
BE NF05 VULGAR FRACTION THREE-QUARTERS
BF SP16 INVERTED QUESTION MARK
C0 LA14 LATIN CAPITAL LETTER A WITH GRAVE ACCENT
C1 LA12 LATIN CAPITAL LETTER A WITH ACUTE ACCENT
C2 LA16 LATIN CAPITAL LETTER A WITH CIRCUMFLEX ACCENT
C3 LA20 LATIN CAPITAL LETTER A WITH TILDE
C4 LA18 LATIN CAPITAL LETTER A WITH DIAERESIS
C5 LA28 LATIN CAPITAL LETTER A WITH RING ABOVE
C6 LA52 LATIN CAPITAL LIGATURE AE
C7 LC42 LATIN CAPITAL LETTER C WITH CEDILLA
C8 LE14 LATIN CAPITAL LETTER E WITH GRAVE ACCENT
C9 LE12 LATIN CAPITAL LETTER E WITH ACUTE ACCENT
CA LE16 LATIN CAPITAL LETTER E WITH CIRCUMFLEX ACCENT
CB LE18 LATIN CAPITAL LETTER E WITH DIAERESIS
CC LI14 LATIN CAPITAL LETTER I WITH GRAVE ACCENT
CD LI12 LATIN CAPITAL LETTER I WITH ACUTE ACCENT
CE LI16 LATIN CAPITAL LETTER I WITH CIRCUMFLEX ACCENT
CF LI18 LATIN CAPITAL LETTER I WITH DIAERESIS
D0 LD62 LATIN CAPITAL LETTER D WITH STROKE
D1 LN20 LATIN CAPITAL LETTER N WITH TILDE
D2 LO14 LATIN CAPITAL LETTER O WITH GRAVE ACCENT
D3 LO12 LATIN CAPITAL LETTER O WITH ACUTE ACCENT
D4 LO16 LATIN CAPITAL LETTER O WITH CIRCUMFLEX ACCENT
D5 LO20 LATIN CAPITAL LETTER O WITH TILDE
D6 LO18 LATIN CAPITAL LETTER O WITH DIAERESIS
D7 SA07 MULTIPLICATION SIGN
D8 LO62 LATIN CAPITAL LETTER O WITH OBLIQUE STROKE
D9 LU14 LATIN CAPITAL LETTER U WITH GRAVE ACCENT
DA LU12 LATIN CAPITAL LETTER U WITH ACUTE ACCENT
DB LU16 LATIN CAPITAL LETTER U WITH CIRCUMFLEX ACCENT
DC LU18 LATIN CAPITAL LETTER U WITH DIAERESIS
DD LY12 LATIN CAPITAL LETTER Y WITH ACUTE ACCENT
DE LT64 LATIN CAPITAL LETTER ICELANDIC THORN
DF LS61 LATIN SMALL LETTER GERMAN SHARP S
E0 LA13 LATIN SMALL LETTER A WITH GRAVE ACCENT
E1 LA11 LATIN SMALL LETTER A WITH ACUTE ACCENT
E2 LA15 LATIN SMALL LETTER A WITH CIRCUMFLEX ACCENT
E3 LA19 LATIN SMALL LETTER A WITH TILDE
E4 LA17 LATIN SMALL LETTER A WITH DIAERESIS
E5 LA27 LATIN SMALL LETTER A WITH RING ABOVE
E6 LA51 LATIN SMALL LIGATURE AE
E7 LC41 LATIN SMALL LETTER C WITH CEDILLA
E8 LE13 LATIN SMALL LETTER E WITH GRAVE ACCENT
E9 LE11 LATIN SMALL LETTER E WITH ACUTE ACCENT
EA LE15 LATIN SMALL LETTER E WITH CIRCUMFLEX ACCENT
EB LE17 LATIN SMALL LETTER E WITH DIAERESIS
EC LI13 LATIN SMALL LETTER I WITH GRAVE ACCENT
ED LI11 LATIN SMALL LETTER I WITH ACUTE ACCENT
EE LI15 LATIN SMALL LETTER I WITH CIRCUMFLEX ACCENT
EF LI17 LATIN SMALL LETTER I WITH DIAERESIS
F0 LD63 LATIN SMALL LETTER ICELANDIC ETH
F1 LN19 LATIN SMALL LETTER N WITH TILDE
F2 LO13 LATIN SMALL LETTER O WITH GRAVE ACCENT
F3 LO11 LATIN SMALL LETTER O WITH ACUTE ACCENT
F4 LO15 LATIN SMALL LETTER O WITH CIRCUMFLEX ACCENT
F5 LO19 LATIN SMALL LETTER O WITH TILDE
F6 LO17 LATIN SMALL LETTER O WITH DIAERESIS
F7 SA06 DIVISION SIGN
F8 LO61 LATIN SMALL LETTER O WITH OBLIQUE STROKE
F9 LU13 LATIN SMALL LETTER U WITH GRAVE ACCENT
FA LU11 LATIN SMALL LETTER U WITH ACUTE ACCENT
FB LU15 LATIN SMALL LETTER U WITH CIRCUMFLEX ACCENT
FC LU17 LATIN SMALL LETTER U WITH DIAERESIS
FD LY11 LATIN SMALL LETTER Y WITH ACUTE ACCENT
FE LT63 LATIN SMALL LETTER ICELANDIC THORN
FF LY17 LATIN SMALL LETTER Y WITH DIAERESIS
ISO 8859-1 by pictures
-------------------------------------------------------------------------
| A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| | XX | XX | XXX | | XX XX | XX | XXXXX |
| | | XX | XX XX |XX XX | XX XX | XX | XX X|
| | XX | XXXXXX | XX X | XXXXX | XXXX | XX | XXXX |
| | XX |XX |XXXX |XX XX | XXXXXX | | XX XX |
| | XXXX |XX | XX |XX XX | XX | | XX XX |
| | XXXX | XXXXXX | XX XX | XXXXX | XXXXXX | XX | XXXX |
| | XX | XX |XXXXXX |XX XX | XX | XX |X XX |
| | | XX | | | XX | XX | XXXXX |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| A8 | A9 | AA | AB | AC | AD | AE | AF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| | XXXXXX | XXXX | | | | XXXXXX |XXXXXXXX|
|XX XX |X X| XX XX | XX XX| | |X X| |
| |X XXX X| XX XX | XX XX | | |X XXX X| |
| |X X X| XXXXX |XX XX |XXXXXXX | XXXXXX |X X X X| |
| |X X X| | XX XX | XX | |X XXX X| |
| |X XXX X| XXXXXX | XX XX| XX | |X X X X| |
| |X X| | | | |X X| |
| | XXXXXX | | | | | XXXXXX | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XXX | XX | XXXX | XXXX | XX | | XXXXXXX| |
| XX XX | XX | XX | XX | XX | |XX XX XX| |
| XX XX | XXXXXX | XX | XXX | XX | XX XX |XX XX XX| |
| XXX | XX | XX | XX | | XX XX | XXXX XX| XX |
| | XX | XXXXX | XXXX | | XX XX | XX XX| |
| | | | | | XX XX | XX XX| |
| | XXXXXX | | | | XXXXX | XX XX| |
| | | | | |XX | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| B8 | B9 | BA | BB | BC | BD | BE | BF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| | XX | XXX | | XX XX| XX XX|XXX X| XX |
| | XXX | XX XX |XX XX |XXX XX |XXX XX | XX X | |
| | XX | XX XX | XX XX | XX XX | XX XX |XXX X | XX |
| | XX | XXX | XX XX| XXXX X | XXXXXX | XXX X | XX |
| | XXXX | | XX XX | XX XX | XX XX|XXXX XX | XX |
| XX | | XXXXX |XX XX | XX X X | XX XX | X X X | XX XX|
| XX | | | |XX XXXXX|XX XX | X XXXXX| XXXXX |
| XXX | | | | XX | XXXX|X XX | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| C0 | C1 | C2 | C3 | C4 | C5 | C6 | C7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XX | XX | XXXXX | XXX XX |XX XX | XXX | XXXXX | XXXXX |
| XX | XX |X X |XX XXX | XXX | XX XX | XX XX |XX XX |
| XXX | XXX | XXX | XXX | XX XX | XXXXX |XX XX |XX |
| XX XX | XX XX | XX XX | XX XX |XX XX |XX XX |XXXXXXX |XX |
|XX XX |XX XX |XX XX |XX XX |XXXXXXX |XXXXXXX |XX XX |XX XX |
|XXXXXXX |XXXXXXX |XXXXXXX |XXXXXXX |XX XX |XX XX |XX XX | XXXXX |
|XX XX |XX XX |XX XX |XX XX |XX XX |XX XX |XX XXX | XX |
| | | | | | | | XXXX |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| C8 | C9 | CA | CB | CC | CD | CE | CF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XX | XX | XXXXX |XX XX | XX | XX | XXXX | XX XX |
| XX | XX |X X | | XX | XX | X X | |
|XXXXXXX |XXXXXXX |XXXXXXX |XXXXXXX | XXXX | XXXX | XXXX | XXXX |
|XX |XX |XX |XX | XX | XX | XX | XX |
|XXXXXX |XXXXX |XXXXXX |XXXXXX | XX | XX | XX | XX |
|XX |XX |XX |XX | XX | XX | XX | XX |
|XXXXXXX |XXXXXXX |XXXXXXX |XXXXXXX | XXXX | XXXX | XXXX | XXXX |
| | | | | | | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
|XXXXX | XXX XX | XX | XX | XXXXX | XXX XX |XX XX | |
| XX XX |XX XXX | XX | XX |X X |XX XXX | XXX |XX XX |
| XX XX | | XXX | XXX | XXX | XXX | XX XX | XX XX |
|XXXX XX |XXX XX | XX XX | XX XX | XX XX | XX XX |XX XX | XXX |
| XX XX |XXXX XX |XX XX |XX XX |XX XX |XX XX |XX XX | XX XX |
| XX XX |XX XXXX | XX XX | XX XX | XX XX | XX XX | XX XX |XX XX |
|XXXXX |XX XXX | XXX | XXX | XXX | XXX | XXX | |
| | | | | | | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| D8 | D9 | DA | DB | DC | DD | DE | DF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XXX X | XX | XX | XXXXX |XX XX | XX |XXXX | XXXX |
| XX XX | XX | XX |X X | | XX | XX |XX XX |
|XX XXX |XX XX |XX XX | |XX XX | XX XX | XXXXX |XX XX |
|XX X XX |XX XX |XX XX |XX XX |XX XX | XX XX | XX XX |XX XX |
|XXX XX |XX XX |XX XX |XX XX |XX XX | XXXX | XXXXX |XX XX |
| XX XX |XX XX |XX XX |XX XX |XX XX | XX | XX |XX XX |
|X XXX | XXXXX | XXXXX | XXXXX | XXXXX | XXXX |XXXX |XX XX |
| | | | | | | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| E0 | E1 | E2 | E3 | E4 | E5 | E6 | E7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XX | XX | XXXXX | XXX XX |XX XX | XX | | |
| XX | XX |X X |XX XXX | | XX | | |
| XXXX | XXXX | XXXX | XXXXX | XXXX | XXXX | XXXXXX | XXXXXX |
| XX | XX | XX | XX | XX | XX | X X |XX |
| XXXXX | XXXXX | XXXXX | XXXXXX | XXXXX | XXXXX |XXXXXXX |XX |
|XX XX |XX XX |XX XX |XX XX |XX XX |XX XX |X X | XXXXXX |
| XXX XX | XXX XX | XXX XX | XXXXXX | XXX XX | XXX XX |XXXXXXX | XX |
| | | | | | | | XXX |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| E8 | E9 | EA | EB | EC | ED | EE | EF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XX | XX | XXXXX |XX XX | XX | XX | XXXXX | XX XX |
| XX | XX |X X | | XX | XX |X X | |
| XXXXX | XXXXX | XXXXX | XXXXX | | | XXX | XXX |
|XX XX |XX XX |XX XX |XX XX | XXX | XXX | XX | XX |
|XXXXXXX |XXXXXXX |XXXXXXX |XXXXXXX | XX | XX | XX | XX |
|XX |XX |XX |XX | XX | XX | XX | XX |
| XXXXX | XXXXX | XXXXX | XXXXX | XXXX | XXXX | XXXX | XXXX |
| | | | | | | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 |
|--------|--------|--------|--------|--------|--------|--------|--------|
| XX | XXX XX | XX | XX | XXXXX | XXX XX |XX XX | |
| XXXXXX |XX XXX | XX | XX |X X |XX XXX | | XX |
| XX | | XXXXX | XXXXX | XXXXX | XXXXX | XXXXX | |
| XXXXX |XX XXX |XX XX |XX XX |XX XX |XX XX |XX XX | XXXXXX |
|XX XX | XX XX |XX XX |XX XX |XX XX |XX XX |XX XX | |
|XX XX | XX XX |XX XX |XX XX |XX XX |XX XX |XX XX | XX |
| XXXX | XX XX | XXXXX | XXXXX | XXXXX | XXXXX | XXXXX | |
| | | | | | | | |
-------------------------------------------------------------------------
-------------------------------------------------------------------------
| F8 | F9 | FA | FB | FC | FD | FE | FF |
|--------|--------|--------|--------|--------|--------|--------|--------|
| | XX | XX | XXXX |XX XX | XX |XXX |XX XX |
| X | XX | XX |X X | | XX | XX | |
| XXXXX |XX XX |XX XX | |XX XX |XX XX | XXXXX |XX XX |
|XX XXX |XX XX |XX XX |XX XX |XX XX |XX XX | XX XX |XX XX |
|XX X XX |XX XX |XX XX |XX XX |XX XX |XX XX | XX XX |XX XX |
|XXX XX |XX XX |XX XX |XX XX |XX XX | XXXXXX | XXXXX | XXXXXX |
| XXXXX | XXX XX | XXX XX | XXX XX | XXX XX | XX | XX | XX |
|X | | | | |XXXXXX |XXXX |XXXXXX |
-------------------------------------------------------------------------
Andr'e PIRARD
SEGI Univ. de Li`ege
B26 - Sart Tilman
B-4000 Li`ege 1 (Belgium)
PIRARD@BLIULG11 on EARN alias BITNET
pirard@vm1.ulg.ac.be on Internet