Kódování BCDIC vycházela z kódu děrných štítků, které společnost IBM představila v roce 1928. Na štítek o velikosti 187×83 mm (7 3⁄8 × 3 1⁄4 palce) bylo možné zaznamenat až 80 desítkových číslic, z nichž každá byla reprezentována vyděrováním jednoho otvoru v řádcích označených 0 až 9; sloupec bez děrování kódoval mezeru. Po roce 1931 začala společnost IBM štítky používat i pro záznam velkých písmen anglické abecedy a některých speciálních symbolů. Písmena byla kódována dvěma otvory v jednom sloupci; jeden z nich byl v řádcích 1 až 9, druhý v jednom ze dvou řádků umístěných ještě nad řádkem nula a označovaných 12 a 11, nebo v řádku nula. Většina speciálních znaků byla reprezentována dvěma otvory v řádcích 1 až 9 a žádným nebo jedním otvorem v řádcích 12, 11 nebo 0. Pro uložení ve vnitřní paměti byly kombinace otvorů reprezentovány šestibitovým číslem. Protože písmena i číslice měly ve spodních čtyřech bitech hodnoty 0 až 9, stejně jako je tomu u BCD reprezentace čísel, do názvu kódování se dostalo Binary-Coded Decimal (BCD).
Nástupcem BCDIC byla skupina osmibitových kódování EBCDIC vytvořených v roce 1963 pro řadu počítačů IBM System/360 a které se používalo na sálových a středních počítačích různých firem.
IBM 48-character BCDIC code
První verze kódu BCDIC měla 48 znaků, protože vycházela ze vzorů děrných štítků a znakových sad tiskáren, což jsou zařízení, u kterých nebyl žádný důvod, aby velikost znakové sady byla mocninou čísla dvě.
Základem kódování byl 40znakový kód děrných štítků, který obsahoval 10 číslic, 26 velkých písmen anglické abecedy a mezeru a tři komerčně často používané znaky přidané kolem roku 1932:[3]:s.67znaménko minus používané pro tisk kreditních zůstatků, používané i jako spojovník v textech, znak ampersand používaný ve jménech firem a adresách (Procter & Gamble, Mr. & Mrs. Smith) a hvězdička používaná na vyplnění prázdných polí při tisku peněžních částek.
Varianty kódu BCDIC
V průběhu času se používalo mnoho variant šestibitového kódu BCDIC, jejichž odlišnosti spočívají v následujících rozdílech:
Zobrazení zóny (zakódované otvory v řádcích 12, 11 a 0) na dva nejvyšší bity. Ve všech kódováních se převádí žádné děrování v řádcích zóny na bitový vzorek 00, ale některá kódují otvory v zóně v pořadí 12-11-0, čímž se zachovává abecední pořadí znaků, jiná v pořadí 0-11-12, čímž se tři části abecedy objeví v opačném pořadí.
Zobrazení číslice 0. Přímočarý převod z vyděrovaného otvoru v řádku 0 umisťuje před číslice 1–9 znak mezera, zatímco znak 0 se objeví na začátku řádku obsahujícího znak 'S'. Všechny kódy však mají určité zpracovávání speciálních případů, které buď převádí číslici 0 na kód nula (a mezeru kódují jinak), nebo číslici nula kódují binárně 001010 (desítkový 10) a znak reprezentovaný otvory 8+2 kódují jinak.
Přiřazení speciálních znaků. Kódy přiřazované nealfanumerickým znakům se měnily dokonce i u jednoho modelu počítače. Na některých počítačích[pozn. 1] měly znaky procento a lozenge (U+2311 ⌑{{{2}}}) kódy, které na jiných počítačích měly kulaté závorky.[pozn. 2]
Protože v původním kódování neexistoval znak “Ñ“ používaný ve španělsky mluvících zemích, většina výrobců, jako Bull, NCR, a Control Data, pro něj použila kód znaku “@“; kvůli nekonzistencím při slučování databáze do sedmibitového kódování ASCII, kdy byl vybrán znak “/“, v důsledku čehož měl stejný znak dva různé kódy.
Operating System - GCOS 8 Operating System - Programmer's Guide - Bull NovaScale 9000 Series Assembly Instructions - GCOS 8. [s.l.]: Bull S.A. CEDOC, November 2003. Dostupné v archivu pořízeném dne 2015-02-12. 67 A2 RJ78 REV00.
BONTEN, Jo H. M. Data formats in old 48- and 36-bits computers: Six-bits characters [online]. Geldrop, Netherlands: 2009-03-08 [cit. 2016-06-16]. Dostupné v archivu pořízeném z originálu dne 2016-06-16.