Hulkort
Behovet for lagring af maskin-læsbare data opstod længe før computeren eksisterede. Det vigtigste lagringsmedie i forhold den videre historiske udvikling var hulkortet opfundet af Herman Hollerith i slutningen af 1800-tallet. Man skriver på et hulkort med en perforator. Disse kan være håndholdte eller være på størrelse med et skrivebord. Der sættes ét tal - senere også bogstav - i hver kolonne. Aflæsning af hullerne i hulkort kan ske både ved mekaniske kontaktfjedre (der kan slutte en elektrisk strøm) eller optisk (lysstråle der går igennem hullet og registreres) eller alternativt kapacitivt (luft og pap har forskellige elektriske egenskaber).
Der findes også "hulkort", hvor informationen markeres med en blød blyant - de såkaldte stregmarkeringskort (i midten til højre på billedet). En blyantstreg indeholder grafit, der kan lede elektrisk strøm mellem kontakter - og således vise om kortet er markeret i den pågældende position.
Hulkortsudstyr
Inden computeren var opfundet blev der fremstillet en del mekaniske maskiner til at behandle data på hulkortene. Det drejer sig om sortering, optælling, samle to stakke af kort på en nøgle m.m. I halvtredserne og tresser oprettede de store virksomheder hulkortafdelinger til at lave disse opgaver.
-
IBM 011 Electric Punch
-
IBM 029 Card Punch
-
IBM 129 Card Data Recorder
-
IBM 082 Card Sorter
-
Brochure for GIER hulkort læser (forside)
-
Brochure for GIER hulkort læser (bagside)
-
Powers-SAMAS læser og perforator
-
IBM Port-A-Punch
Efter de blev almindelige i virksomhederne blev behandlingen af data udført med computere. Specialmaskinerne blev hurtigt udfaset og det eneste udstyr der blev brugt var kortlæsere og perforatorer. IBM 029 Card Punch fra 1964 var det mest typiske udstyr til at perforere hulkort.
Tegnsæt
Hollerithkort
Den tidligste udgave af hulkort havde 10 rækker og 45 kolonner. Det var kun muligt at skrive tal, og det var designet således at kun blev lavet ét hul per kolonne. "0" var et hul i række 1, "1" i række 2 osv. Øverst til venstre på billedet er et 45-hullers kort fra slutningen af 1800-tallet.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
Række 1 | ⬤ | |||||||||
Række 2 | ⬤ | |||||||||
Række 3 | ⬤ | |||||||||
Række 4 | ⬤ | |||||||||
Række 5 | ⬤ | |||||||||
Række 6 | ⬤ | |||||||||
Række 7 | ⬤ | |||||||||
Række 8 | ⬤ | |||||||||
Række 9 | ⬤ | |||||||||
Række 10 | ⬤ |
Mest kendt er nok IBMs 80-kolonners hulkort fra 1928.
I slutningen af 1920erne opstod der et behov for at kunne gemme bogstaver såvel som tal på et hulkort og i 1928 introducerede IBM et nyt kort med 2 ekstra rækker og 80 kolonner i samme fysiske format - 7⅜ x 3¼ engelske tommer. Hullerne blev gjort rektangulære for at kunne få flere kolonner. De to nye rækker blev placeret i toppen af kortet som række 11 og 12. De bliver betegnet zoner. Rækkerne 1 til 10 blev omnummereret til at matche det tal de kunne indeholde, altså række 0 til 9. Tallet 0 (række 0) bliver også brugt som zone. Hvis der er to huller i en kolonne, så bruges zonerne, ellers er det et tal fra 0 til 9, '&' eller '-' og er derved bagudkompatibelt med Hollerith formatet.
Af hensyn til pladsen viser et tal/bogstav viser hvad hulpositionen betyder. F.eks. hvis en kolonne har huller i række 12 og række 6 er det et 'F'. Hvis der er et enkelt hul i kolonnen i række 12, er det et '&'. Den eneste kombination hvor der er to huller tæt på hinanden i en kolonne er skråstreg ('/').
Række 12 | & | ▮ | ||
---|---|---|---|---|
Række 11 | - | ▮ | ||
Række 0 | 0 | ▮ | ||
Række 1 | 1 | A | J | / |
Række 2 | 2 | B | K | S |
Række 3 | 3 | C | L | T |
Række 4 | 4 | D | M | U |
Række 5 | 5 | E | N | V |
Række 6 | 6 | F | O | W |
Række 7 | 7 | G | P | X |
Række 8 | 8 | H | Q | Y |
Række 9 | 9 | I | R | Z |
Mellemrum er repræsenteret ved intet hul i kolonnen.
De forskellige computerfirmaer opfandt forskellige måder at gemme hulkorts informationen i hukommelse, typisk i 2+4 bit, således at zonerne
bliver til de to første bit, og resten kodes i 4 bit. Ingen zone
kodes til 00, zone 12
til 01, zone 11
til 10 og 0
til 11.
Der var ingen standardisering, ikke engang i samme firma, og det var også muligt at se Ingen-0-11-12.
Når 10 muligheder indkodes i 4 bit, så bliver der 6 pladser tilovers. Det blev udnyttet til at få flere tegn og dermed blev Binary-Coded Decimal (BCD) etableret.
Binary-Coded Decimal (BCD)
BCD betegner en række løsninger for at kode hulkortsdata i 6 bit. For at kunne udnytte alle 64 muligheder blev 8-tallet (række 8) indraget som zone og der kan være tre huller i en kolonne. Nedenstående er et eksempel på et tegnsæt i IBM 716 printeren.
Række 12 | & | ▮ | ▮ | |||||
---|---|---|---|---|---|---|---|---|
Række 11 | - | ▮ | ▮ | |||||
Række 0 | 0 | ▮ | ▮ | |||||
Række 1 | 1 | A | J | / | ||||
Række 2 | 2 | B | K | S | + | . | $ | , |
Række 3 | 3 | C | L | T | - | ⌑ | * | % |
Række 4 | 4 | D | M | U | ||||
Række 5 | 5 | E | N | V | ||||
Række 6 | 6 | F | O | W | ||||
Række 7 | 7 | G | P | X | ||||
Række 8 | 8 | H | Q | Y | ▮ | ▮ | ▮ | ▮ |
Række 9 | 9 | I | R | Z |
EBCDIC
Extended Binary Coded Decimal Interchange Code (EBCDIC) er et tegnsæt, der bliver primært brugt på IBM mainframes. Det blev etableret i 1964 sammen med IBMs System/360 produktlinje for bla. at have små bogstaver og flere specialtegn. For at kunne læse/skrive til hulkort blev 9-tallet nu også brugt som zone til kontroltegn. Der kan derfor være op til 3 huller i en kolonne. EBCDIC tabel for IBM 029 Card Punch vist som det ville være kodet på et hulkort. Zone 9 er ikke vist i tabellen.
Række 12 | & | ▮ | ▮ | ▮ | ▮ | Zone 12 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Række 11 | - | ▮ | ▮ | ▮ | ▮ | Zone 11 | ||||||
Række 0 | 0 | ▮ | ▮ | ▮ | ▮ | Zone 0 | ||||||
Række 1 | 1 | A | J | / | a | j | ° | : | ¢ | ! | ||
Række 2 | 2 | B | K | S | b | k | s | # | . | $ | , | |
Række 3 | 3 | C | L | T | c | l | t | @ | < | * | % | |
Række 4 | 4 | D | M | U | d | m | u | ' | ( | ) | _ | |
Række 5 | 5 | E | N | V | e | n | v | = | + | ; | > | |
Række 6 | 6 | F | O | W | f | o | w | " | | | ¬ | ? | |
Række 7 | 7 | G | P | X | g | p | x | |||||
Række 8 | 8 | H | Q | Y | h | q | y | ▮ | ▮ | ▮ | ▮ | Zone 8 |
Række 9 | 9 | I | R | Z | i | r | z | Zone 9 |