I designate the rows in a 80-column card from top to bottom by Y,
X and the digits 0 to 9. Other publications use
for the top rows the combinations A and B, or
12 and 11 or 10 and 11, or the reversal
of one of these four pairs.
I distinguish the following types for 80-column punched card codes:
In card codes multiple punches in a single column can be used, how this
is done is the distinguishing feature in the above groups. In Hollerith
coding the Y, X and 0 punch can be used in combination
with other punches (i.e. are zone punches). 3 Zone Hollerith does not use
0 for zone, 4 Zone Hollerith uses all three. In the extended
versions there are also other punches that can be used as zone. BCD
and EBCD are specific in that the additional zone punch is 8,
but only in combination with one of the digit punches 2 to 7
plus possibly an additional zone punch. The difference between BCD and
EBCD is that in BCD the combination of 0 with one of the zone
punches Y or X is allowed. BCD and EBCD extended codes use
additional (non-standard) punch combinations. Non-Hollerith codes use a
different scheme. Finally, the binary zone codes and tiered codes are special.
3 Zone Hollerith
All these codes have a lack of positions for all letters and digits, so
some symbols have a dual function. I know of the following:
Powers 29-character
The most limited of all, 7 letters are missing they are defined as
alternate meanings of other symbols:
symbol alternate meaning
0 O
1 I
2 Z
6 G
8 S
K X
U V
Powers 32-character
A little bit less limiting, V, X and Z have now their own punch, but
O, I, G and S are still alternate meanings for 0, 1, 6 and 8.
British Tab Machines (ICT Revised Hollerith)
The limits are the same as with the previous code, the only difference
is the actual coding.
4 Zone Hollerith
These codes all have three zone punches (Y, X and 0),
the remainder is normal punches.
IBM World Trade
Curious in this code is the reverse meaning of the digit punches 0
to 9 with respect to all other card codes I know.
British Tab Machines Old Hollerith
Here we have a curious placement of the letters alphabetic along the
columns rather than the rows.
Powers 40-character
The codes for 10 and 11 are of course typical British.
4 Zone Hollerith plus extensions
The codes below have one or more punches that serve a dual meaning,
either as normal punch or as zone punch. Because of this dual meaning
some codes could be placed in two positions in the tables given, I
have hatched one of the two. Also hatched are of course those positions
that have the same punch both in the row as in the column. I know the
following codes:
ICT New Hollerith
Here digit punch 1 serves a dual purpose as a zone punch.
EMI
Here 3, 4 and 5 serve a dual purpose as a
zone punch.
BCD Hollerith
In BCD Hollerith 0 is used as zone punch, but also as digit punch
and can be combined with the Y or X punch. In the latter
combinations mostly the punches represent +0 and -0 that are often not
considered symbols (but are shown below), somtimes however they are used
for true symbols. In these codes the 8 punch is also used as
zone punch, however in the displays it is not shown as zone but as
multipunch with another digit punch. The following codes are shown:
BCD 40-Character
The first BCD code. Only a single 8 zone punch code is defined.
BCD-A to BCD-K
The standardized BCD code. Here the zone 8 punch is combined with
either digit 3 or 4 punch, possibly also with another zone
punch. However, rather than standardizing a single code, IBM felt it
impudent to define 10 standard codes at once. They are called BCD-A to
BCD-K (omitting BCD-I). They differed in 8 code positions. Above is
shown the full code table for BCD-A. Below are for the 10 different
codes the actual symbols for particular punches given:
Full BCD
The later development where zone 8 was now combined with all
digit punches from 2 to 7. This code had many control
symbols.
BCD-CDC
CDC's own variant of the BCD code.
BCD Hollerith plus extensions
Sometimes the BCD Hollerith codes were extended with other punch combinations
that did not fall in ansy scheme. I know of one:
NCR-304
A BCD Hollerith based code from NCR. The 8 zone punch was used with
non-zone punches 3 to 5 and 7 and in addition five
extraordinary punch combinations were used, shown on the right.
EBCD Hollerith
The difference between BCD and EBCD Hollerith is that in EBCD Holerith
the 0 punch occurs as zone punch only. Also from the start EBCD
had the 8-2 to 8-7 multipunches (note that
these nicely add to 10 to 15). There have been quite a few versions
of this code, a number is shown here. Look for the sometimes subtle
differences.
EBCD
One of the original definitions of Extended BCD card codes by IBM. I have
no idea why they called this code EBCD because it is missing quite a lot
from the EBCDIC code. (Actually I know it but will explain it in the
section on these pages devoted to the Standard
EBCDIC code.)
IBM-EL
The version for the Dutch Electrologica computers.
BCL
Another version, now for BCL computers.
General Electric
This one was used by General Electric.
ICT 1900
For the British ICT (later merged into ICL) 1900.
EBCD-CDC
The CDC Scientific character set on card.
Philco 2000
Philco 2000 computers used this one. I have no idea why the lower
case letters e and n are present.
EBCD Hollerith plus extensions
Also the BCD Hollerith codes were sometimes extended with other punch
combinations that did not fall in ansy scheme. Also here I know of one:
USS-80
An EBCD Hollerith based code from USS. The 8 zone punch was not used
with non-zone punches 2 and 5 to 7 but four
extraordinary punch combinations were used, shown on the right.
Non-Hollerith
At this moment I know only the Bull card codes where 7, 8
and 9 are used as zone punches:
Bull
The original Bull code. The digits 0 and 1 serve a dual purpose as the
letters O and I.
Bull T8
The Bull code was extended by the addition of the Y punch.
Moreover zone punch 9 could be used in a dual zone punch
with either 7 or 8. The original Bull code is a
subset of this code, hence the strange placement of the letters
O and I.
Bull T8 Scientific
The code was changed later to accomodate computer programming. Many
symbols were changed, but also four more punch combinations were added.
It is strange that these were incompatible with the other punches (and
so are shown in a separate subtable) rather than with a 7-8
double zone punch.
Binary Zone
In binary zone codes there are a few punch rows used for zone and any
number of zone punches could be used. I know of the following:
Decimal Ascii
The zone punches Y, X and 0 could be used in any
combination. Clearly the ASCII character set is imposed on the
resulting matrix with a few row interchanges. These were so that no
normal symbol had three zone punches and that most digits had their
normal code. A problem is of course that the no punch symbol is digit
0 while the space has a 0 punch. I do not know whether this
code has been used much, if any.
EBCDIC
A curious code, I do not know whether it has been used in full much. Apart
from the standard zone punches also 8 and 9 act as
zone punches. Any number of zone punches can be used. The displayed
format is a bit different because this shows more closely the
relationship with other codes. In the upper part 9 is only digit
punch, and comparing to other codes the 8-1 combination is
added. In the lower part 9 functions only as zone punch. There
is a translation for all codes (also the undefined ones) from internal
EBCDIC to this card code. The basic outline
is as follows (from left to right you will find the punch combinations
used for a particular internal code, two digits separated by a slash
means that all digit punches from the first upto and including the last
should be used in succession). There are different lines depending on
the value of the first four bits in the EBCDIC code:
first bits card punches used
00 Y-0-9-8-1 Y-9-1/8 Y-9-8-1/7
01 Y-X-9-8-1 X-9-1/8 X-9-8-1/7
02 X-0-9-8-1 0-9-1/8 0-9-8-1/7
03 Y-X-0-9-8-1 9-1/8 9-8-1/7
04 Y-0 Y-0-9-1/8 Y-8-1/7
05 Y-X Y-X-9-1/8 X-8-1/7
06 X-0 X-0-9-1/8 0-8-1/7
07 Y-X-0 Y-X-0-9-1/8 8-1/7
10 Y-0-8-1 Y-0-1/9 Y-0-8-2/7
11 Y-X-8-1 Y-X-1/9 Y-X-8-2/7
12 X-0-8-1 X-0-1/9 X-0-8-2/7
13 Y-X-0-8-1 Y-X-0-1/9 Y-X-0-8-2/7
14 Y Y-1/9 Y-0-9-8-2/7
15 X X-1/9 Y-X-9-8-2/7
16 0 0-1/9 X-0-9-8-2/7
17 - 1/9 Y-X-0-9-8-2/7
Note that except for the first column the remainder is done in four blocks,
but the separation is staggered, punch 9 is only used as digit
punch in the second half. The reason of the actual pairing of the
(upper case) single zone punches with the (lower case) double zone
punches is lost in the course of time. I would have thought that
flipping all three zone punches was be more logical. Of course there
must be exceptions:
EBCDIC coding expected
100 - Y-0
120 Y Y-X
140 X Y-0
141 0-1 X-0-9-1
152 Y-X 0-8-2
300 Y-0 Y
320 X-0 X
340 0-8-2 0
341 X-0-9-1 0-1
360 0 -
The exceptions are however less numerous than for the
96-column card code, but the
basic translation is a bit more problematical. There were
deep reasons behind this all. And again 0-8-2 is a victim, one
of the most problematical punches in the history of IBM. There
is a tale behind this: when the 029 card punch was designed at
IBM it could punch in a single step all combinations of an
X, Y or 0 punch with any digit punch or the
digit punch 8 plus the digit punches 2 to 7.
This yielded 64 possible punches. However, the console of that
time was able to display only 63 different graphic symbols (including
space). So it was decided that the 0-8-2 punch could be punched by
the 029 puncher but had no graphic symbol assigned. This still shows
in this code.
GOST 19768/74
This card code has been used on the IBM clones (the EC series) produced in
the Soviet Union. It is based on the EBCDIC internal code defined in
standard GOST 19768/74. The translation to card code is based on what IBM
used for its translation, however only a limited number of symbols is
actually used in the card codes. Those used are shown. But even there,
those with a green border in the chart are replaced by the codes for the
appropriate, similar, latin script symbols, so they were also not used.
It appears that the hard sign (a 'b' with a bar to the left) may have been
coded as the 'B' in the chart above. But there is no documentation about
that. Thanks to Uwe for a pointer to this code. The chart is based on
the EBCDIC codes, but with omissions and some replacements. The code is
called KPK-12 (Kod dlya PerfoKart).
GOST 10859
This code is a bit strange compared to the others, it precedes the GOST code
I just gave earlier. In the chart above the digit 0 is given with a red
border, this is because the actual punch for this symbol is not "no punch",
but the single punch 0, actually the only symbol that uses that
punch! A column with no punches would be ignored on reading. The zones are
X, Y and the punch combination 3-9 (10, 11 and
12?). When 3 is used in the zone punch combination the digit punch
3 is replaced by the combination 1-2, similar, if
9 is used in the zone punch the digit punch 9 is replaced by
8-1. This is the card code for the
Soviet standard code of that time.
Like in that standard only the upper four rows could be used, in that case
DEL replaces the letter D.
Tiered Code
In a tiered code the 12 rows are viewed as a set of groups of rows, the
punchings in each groups are independent of the punchings in the other
groups. I know of only one tiered code:
Bendix Tiered Code
In this code the 12 rows are grouped from top to bottom in four tiers of
three rows, so Y, X and 0 were grouped together, and
1, 2 and 3, etc. In each tier zero or one punches
were allowed. This gives a total of 256 code positions with at most
4 punches in a column. Compare this with the EBCDIC card code, also
256 code positions but upto 6 punches in a column. I do not have the
details for this code, so no code chart is shown, alas. But it is of
note that most standard card punch codes would be allowable combinations
in this code! The only exceptions from the Hollerith codes shown on
this page are those that combine 7 and 8 and those that
combine 0 with either X or Y.