EBCDIC is an 8-bit code that originally used only 128 of the 256 possible
code values. These 128 characters have almost the same graphic
representations as the traditional 7-bit, 128-character, USASCII code.
Three characters are different. USASCII has the left and right
square brackets ( [ and ] ) and the caret (^), while EBCDIC
includes the American cent (¢), the logical OR (|), and the
logical NOT (¬).
The EBCDIC code was modified to accommodate the extra characters
required by European languages. For example, when the German EBCDIC
was defined some less important characters were traded for German
national characters, and the vertical bar (|) became lower case n.
Similar things happened to create EBCDIC codes for Norwegian/Danish,
Swedish/Finnish, Spanish, Belgian, Italian, Portuguese, French, and
English in the UK.
The 128 unused positions in the various national language EBCDIC codes
were later used to accommodate all national characters which appeared
in any of the EBCDIC codes. Each resulting country extended code page
became a superset of each existing national EBCDIC. In the German table,
the empty space was used to accommodate characters from other languages,
but the traditional German characters (L, N, O, and ß)
retained their original position in the German national EBCDIC.
There are many country extended code pages now, all showing exactly
the same characters, but showing them in different locations
for example, the character that has decimal code 161 (octal 241,
hexadecimal A1). In original EBCDIC, it is the ~ (tilde); in German,
the sharp ß; in French, the ¨ (diaeresis accent); in
Swedish/Finnish and Norwegian/Danish, the lower case ü in
Italian, the lower case ì and in Portuguese, the lower
case ç.
This situation makes it necessary to map the Hewlett-Packard ROMAN8
character set to the many different EBCDIC country extended code pages.