Punch Card Decoder / Encoder
A punch card decoder turns the holes in an 80-column Hollerith card back into text. This one reads a card under every common card code at once — IBM 029, IBM 026, DEC 029 and IBM's full EBCDIC card code — and ranks the readings, so you can solve a card without knowing which keypunch made it, entirely in your browser.
The keypunch of the System/360 era and the usual code for a card in a CTF. Its punctuation is EBCDIC's: ¢ ¬ | and ! where ASCII would put [ ] \ and ^. Used for punching text and for the characters printed along the top of the card; the readings below try every code.
Column 1, row 12: 12-8, which IBM 029 (EBCDIC) reads as "H".
Working from a photo? Click the holes onto the card above instead — count columns from the left edge and rows from the top: 12, 11, then the printed 0 to 9.
- IBM 029 (EBCDIC)Best matchevery column reads
HELLO, PUNCH CARD!
- IBM 029 (FORTRAN glyphs)every column reads
HELLO, PUNCH CARD]
- DEC 029 (ASCII)every column reads
HELLO, PUNCH CARD!
- EBCDIC card code (code page 037)every column reads
HELLO, PUNCH CARD!
- IBM 026 commercial (BCD-A)1 unreadable column
HELLO, PUNCH CARD�
- IBM 026 FORTRAN (BCD-H)1 unreadable column
HELLO, PUNCH CARD�
� marks a column the code has no character for. Letters and digits punch the same in every code, so codes only disagree on punctuation — if two readings differ, the one whose punctuation makes sense is usually right.
About Punch Card Decoder / Encoder
A standard IBM card is 7⅜ by 3¼ inches with 80 columns and 12 rows, and each column holds one character as a pattern of rectangular holes. Digits are a single punch in rows 0 to 9. Letters add a zone punch in one of the three rows at the top — 12, 11 or 0 — so A is 12-1, J is 11-1 and S is 0-2. That much goes back to Herman Hollerith's cards for the 1890 US census, and it is the same on every machine. Punctuation is where cards disagree, and it's why a card that decodes cleanly in one tool comes out as nonsense in another. IBM's 026 keypunch of 1949 had 48 characters, in two keycap sets: the commercial set read 12 as & and 8-3 as #, the FORTRAN set read the same holes as + and =. The 029 of 1964 moved to EBCDIC's 64 printing characters and reassigned FORTRAN's punctuation, so a FORTRAN deck punched on an 026 reads wrong on an 029. DEC adapted the 029 to ASCII and put [ ] \ and ^ where IBM had ¢ ! ¬ and |. EBCDIC itself defines a punch pattern for all 256 byte values, lowercase and control characters included, which no keypunch could type in one keystroke. So this tool doesn't ask which code you have. It decodes the card under each one and puts first the reading that explains every column; a column a code has no character for shows as �. Letters and digits read the same everywhere, so readings only differ in their punctuation — and the one whose punctuation makes sense is nearly always right. Every table is checked against an independent published source by an automated test: the IBM 029 is built from the EBCDIC card code and tested against Douglas W. Jones's diagram of the keypunch, and DEC's code against the version in DEC's 1973 handbook. To copy a card from a photo, click its holes onto the card here, counting columns from the left and rows from the top: 12, 11, then the printed 0 to 9. You can also paste hole notation such as 12-1 11-5 0-8-3, a 12-row grid of O and dots (with or without row labels, so a diagram copied from a reference page works), or one octal or hex number per column as emulators write them. The card can be typed on like a keypunch, too, and downloaded as a PNG or SVG with the interpretation printed along the top edge.
What Punch Card Decoder / Encoder does
- Decodes under six card codes at once and ranks them by how many columns each one explains
- IBM 029 with EBCDIC or FORTRAN glyphs, DEC 029, IBM 026 commercial and FORTRAN, and the full EBCDIC card code
- Click holes onto an 80-column card, or type on it like a keypunch
- Reads hole notation, 12-row grids with or without row labels, and octal or hex column codes
- Punches text one line per card and lists any characters the code can't represent
- Downloads the card as PNG or SVG with the interpretation printed along the top
- Every code table checked against an independent published source
When to reach for Punch Card Decoder / Encoder
- Solving a CTF challenge that hands you an image of a punch card
- Reading an old card found in a book, an archive or a relative's papers
- Making a punch card with your name or a message on it
- Checking how a FORTRAN or COBOL statement would have been punched
How to use Punch Card Decoder / Encoder
- 01
Copy the card
Click each hole onto the card, or paste hole notation, a 12-row grid or octal codes into Read a card. Columns count from the left; rows run 12, 11, then the printed 0 to 9.
- 02
Read the results
Readings lists every code, best match first. A column a code can't read shows as �, and letters and digits are the same in every code.
- 03
Check doubtful columns
Click a column to see its punches and how the selected code reads them. A single misplaced hole usually turns one letter into another or into �.
- 04
Punch your own
Type text, pick a card code and press Punch — one line per card — then download the card as PNG or SVG.
When to use Punch Card Decoder / Encoder vs alternatives
| Alternative | Use Punch Card Decoder / Encoder when… | Use the alternative when… |
|---|---|---|
| The Virtual Keypunch (masswerk.at) | you need to decode a card rather than make one, or the card wasn't punched with IBM 029 codes. | you want the full keypunch experience, with FORTRAN and COBOL card designs. |
| An image-based punch card reader | your picture is a photo taken at an angle or in uneven light, or you need to know which code the card uses. | you have a straight, high-contrast scan of a card punched in the code the reader expects. |
| A decoding script | you have one card or a handful and want every code's reading side by side. | you are processing a whole deck of scanned cards. |