A fairly accurate rendition of the 5×7 dot matrix font printed at the
top of punched cards by the IBM Type 29 Card Punch (1965).
Local copy: Keypunch029.zip.
Fontlibrary link: Keypunch029
The 029 (as it is sometimes known) generated a bitmap font from an engraved metal plate pressing on a matrix of pins. A picture of this plate from a field engineering manual was used to re-create the pin matrices, and thus an outline font.
Historical Accuracy
The 029 could have many different code plates, but the one used here contained the characters:
<=>¬|_-,;:!?/.'"()@¢$*&#%+0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
The character glyphs have been sized such that if printed at 12 points, the 029’s character pitch of 0.087″ is accurately reproduced. No attempt to research the pin matrix pitch or pin diameter has been made: the spacing was eyeballed from a couple of punched cards in my collection.
The earlier IBM Type 26 Card Punch (“026”) included a glyph for a square lozenge (Unicode U+2311, ⌑). The 029 code plate did not include this character, but I added it here for completeness.
The character set was extended to include:
- all of ASCII, with lower case characters repeating the upper case glyphs;
- sterling currency symbol; and
- euro currency symbol.
While there may have been official IBM renditions of some of these additional glyphs (with the exception of euro) no attempt has been made to research the original shapes. This font set is intended to help with the visually accurate reproduction of 1960s-era punched cards, mostly coinciding with my interest in the FORTRAN programming language. No attempt has been made to use historical BCD/EBCDIC encodings in these fonts. We have Unicode now.
The 029 card punch could not produce any bold or italic font variants, but FontForge can, so I did.
Things I learned in making these fonts
- The 029 card punch printer could be damaged if you tried to print binary cards, as there was no way to disengage the code plate from the punch mechanism.
- FontForge really hates to have paths in a glyph just touching. Either keep them more than one unit apart, or overlap them and merge the overlapping paths.
- EBCDIC is weird.
Sources
- Norbert Landsteiner’s amazing Punched Card Typography Explained page describes how the code plate system worked, and has JavaScript animations showing how characters were decoded (entirely mechanically) from the plate.
- IBM029-Field-Eng-Maint-Man-r.pdf – see page 59 for the code plate image. The site’s owner is part of the IBM 1401 Demo Lab and Restoration Project.
- Douglas W. Jones’s punched card index is all about punched cards.
These aren’t sources, but are punched-cardy nonetheless: Do Not Fold, Spindle or Mutilate — THE ‘HOLE’ STORY OF PUNCHED CARDS and Programming with Punched Cards.
Hey just an FYI, I used this font to make a really nifty looking LED display for my VCV Rack modules (https://github.com/baconpaul/BaconPlugs/blob/master/README.md – page down to the KarplusStrongPoly module). I credited you and your blog in the license section and all, but also just wanted to drop in here and say thanks!
Thanks, Paul! You don’t need to credit me, but it’s appreciated!
I’ve messed with Rack before, but got nowhere with it. Starting with an empty frame is a bit daunting.