From: Eric Fischer Newsgroups: alt.folklore.computers Subject: "Hollerith" card code to EBCDIC conversion Date: 30 Jul 2001 22:33:34 GMT Organization: EnterAct Corp Turbo-Elite News Server Lines: 12 Message-ID: <9k4nbu$nur$1@bob.news.rcn.net> X-Trace: UmFuZG9tSVa2CHRipWWn9mQ1DmLvHAXZ99YqwcJQRxupOKW7AtJG0/gAtl34Wsti X-Complaints-To: abuse@rcn.com NNTP-Posting-Date: 30 Jul 2001 22:33:34 GMT X-Newsreader: trn 4.0-test72 (19 April 1999) Originator: enf@enteract.com (Eric Fischer) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!feed2.news.rcn.net!feed1.news.rcn.net!rcn!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:86171 There are lots of special cases in the conversion between the "Hollerith" card code and its representation as 8-bit EBCDIC. How do IBM 360-series systems deal with this? Is there a lookup table? Hardware assistance? The conversion to 6-bit BCDIC doesn't have as many special cases, but does have a few. IBM 70x systems had to read cards bit-by-bit, right? Was there a standard algorithm that everyone used to do the conversion? Thanks for any information you can offer. Eric Fischer enf@pobox.com ###### From: "Charlie Gibbs" Newsgroups: alt.folklore.computers Subject: Re: "Hollerith" card code to EBCDIC conversion Date: 31 Jul 01 00:41:07 -0800 Organization: http://extra.newsguy.com Lines: 54 Message-ID: <2174.612T358T413675@nowhere.in.particular> References: <9k4nbu$nur$1@bob.news.rcn.net> NNTP-Posting-Host: p-728.newsdawg.com X-Newsreader: THOR 2.5a (Amiga;TCP/IP) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.bme.hu!andromeda.datanet.hu!newsfeed.gamma.ru!Gamma.RU!pln-e!spln!dex!extra.newsguy.com!newsp.newsguy.com!news3 Xref: chonsp.franklin.ch alt.folklore.computers:86202 In article <9k4nbu$nur$1@bob.news.rcn.net> enf@pobox.com (Eric Fischer) writes: >There are lots of special cases in the conversion between the >"Hollerith" card code and its representation as 8-bit EBCDIC. >How do IBM 360-series systems deal with this? Is there a >lookup table? Hardware assistance? I didn't work with IBM hardware much, but I presume it was done by hardware. You're right, there are so many exceptions that the hardware people must have been grumbling a lot. It would have been easy with a 256x8 ROM, but those didn't exist back then. The Univac 9300, which I did get to know fairly intimately, couldn't read EBCDIC directly. Its two modes were column binary, which worked the same as the IBM counterpart (one column into the low-order 6 bits of two consecutive bytes); and "compressed mode", which encoded one column into one byte in a manner that was totally consistent and therefore required little hardware to implement. Rows 12, 11, 0, and 8 went directly to the low-order 4 bits (7, 6, 5, and 4 respectively - remember that bits were numbered starting at the high-order end). Row 9 went to the high order bit (bit 7). Rows 1 through 7 went into the 3 remaining bits as follows: Row Bits (.XXX....) --- ---- 1 011 2 101 3 001 4 010 5 100 6 111 7 110 If none of rows 1 through 7 were punched, these 3 bits were set to 000. If more than one of rows 1 through 7 were punched, the resulting bit patterns were ORed together. (The reader didn't have enough smarts to do validity checks.) Once you got this pattern read into memory, EBCDIC was just a TR instruction away; you'd find a translation table called TBRD linked in somewhere (plus its inverse, TBPU, if you wanted to punch anything). Object decks were left in compressed mode; not only did it make the loader smaller, you could disassemble object code by eyeball. You could tell the portion of your program that contained the character strings; areas initialized to blanks (0x40 in EBCDIC) would show up as runs of 5s. -- cgibbs@nowhere.in.particular (Charlie Gibbs) I'm switching ISPs - watch this space. ###### Sender: lynn@LYNNPC Newsgroups: alt.folklore.computers Subject: Re: "Hollerith" card code to EBCDIC conversion References: <9k4nbu$nur$1@bob.news.rcn.net> Reply-To: Anne & Lynn Wheeler From: Anne & Lynn Wheeler Organization: Wheeler&Wheeler User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 Message-ID: Lines: 83 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 30 Jul 2001 23:48:35 GMT NNTP-Posting-Host: 64.156.39.221 X-Complaints-To: abuse@earthlink.net X-Trace: newsread1.prod.itd.earthlink.net 996536915 64.156.39.221 (Mon, 30 Jul 2001 16:48:35 PDT) NNTP-Posting-Date: Mon, 30 Jul 2001 16:48:35 PDT X-Received-Date: Mon, 30 Jul 2001 16:46:06 PDT (newsmaster1.prod.itd.earthlink.net) Path: chonsp.franklin.ch!pfaff.ethz.ch!news-zh.switch.ch!news-ge.switch.ch!news.maxwell.syr.edu!netnews.com!xfer02.netnews.com!newsfeed2.earthlink.net!newsfeed.earthlink.net!newsmaster1.prod.itd.earthlink.net!newsread1.prod.itd.earthlink.net.POSTED!not-for-mail Xref: chonsp.franklin.ch alt.folklore.computers:86175 Eric Fischer writes: > There are lots of special cases in the conversion between the "Hollerith" > card code and its representation as 8-bit EBCDIC. How do IBM 360-series > systems deal with this? Is there a lookup table? Hardware assistance? > > The conversion to 6-bit BCDIC doesn't have as many special cases, but > does have a few. IBM 70x systems had to read cards bit-by-bit, right? > Was there a standard algorithm that everyone used to do the conversion? > i worked with 2540 card reader that was originally (I believe attached) to 1401 ... and then attached to a 360m30 (running both 1401 emulation and os/360). I had a job to rewrite the 1401 unit record (ur<->tape) front-end for 709 to run on 360m30. While I was writing the program, they would switch the machine back & forth between 1401-mode and running other 360 programs (and testing my program). Cards could be either binary or bcd. If they were binary, you would read with column-binary command which would place 80 columns of data into 160 bytes (effectively two 6-bit values per column mapped into two 8-bit bytes). If it was BCD ... then it was just BCD read into one byte. "greencard" gives the mapping of bit patterns to punch holes for BCDIC & EBCDIC (as well as mapping to 7track tape). The issue wasn't so much what the bit pattern was ... but what character the bit pattern represented depending on whether you were treating it as BCDIC or EBCDIC ... aka punch 0-6-8 comes in as hex "6E" ... but is backslash in BCDIC and greater-than in EBCDIC. random refs: http://www.garlic.com/~lynn/93.html#15 unit record & other controllers http://www.garlic.com/~lynn/93.html#17 unit record & other controllers http://www.garlic.com/~lynn/93.html#23 MTS & LLMPS? http://www.garlic.com/~lynn/94.html#53 How Do the Old Mainframes http://www.garlic.com/~lynn/95.html#4 1401 overlap instructions http://www.garlic.com/~lynn/96.html#20 1401 series emulation still running? http://www.garlic.com/~lynn/97.html#7 Did 1401 have time? http://www.garlic.com/~lynn/97.html#21 IBM 1401's claim to fame http://www.garlic.com/~lynn/98.html#9 ** Old Vintage Operating Systems ** http://www.garlic.com/~lynn/98.html#14 S/360 operating systems geneaology http://www.garlic.com/~lynn/98.html#53 punch card editing, take 2 http://www.garlic.com/~lynn/98.html#55 Multics http://www.garlic.com/~lynn/99.html#13 Old Computers http://www.garlic.com/~lynn/99.html#59 Living legends http://www.garlic.com/~lynn/99.html#86 1401 Wordmark? http://www.garlic.com/~lynn/99.html#87 1401 Wordmark? http://www.garlic.com/~lynn/99.html#93 MVS vs HASP vs JES (was 2821) http://www.garlic.com/~lynn/99.html#130 early hardware http://www.garlic.com/~lynn/99.html#137 Mainframe emulation http://www.garlic.com/~lynn/99.html#155 checks (was S/390 on PowerPC?) http://www.garlic.com/~lynn/99.html#194 1403 printer on a 1401? http://www.garlic.com/~lynn/2000.html#55 OS/360 JCL: The DD statement and DCBs http://www.garlic.com/~lynn/2000.html#79 Mainframe operating systems http://www.garlic.com/~lynn/2000b.html#6 ascii to binary http://www.garlic.com/~lynn/2000c.html#11 IBM 1460 http://www.garlic.com/~lynn/2000d.html#34 Assembly language formatting on IBM systems http://www.garlic.com/~lynn/2001.html#11 IBM 1142 reader/punch (Re: First video terminal?) http://www.garlic.com/~lynn/2001.html#16 Sv: IBM 1142 reader/punch (Re: First video terminal?) http://www.garlic.com/~lynn/2001.html#17 IBM 1142 reader/punch (Re: First video terminal?) http://www.garlic.com/~lynn/2001b.html#20 HELP http://www.garlic.com/~lynn/2001b.html#22 HELP http://www.garlic.com/~lynn/2001b.html#27 HELP http://www.garlic.com/~lynn/2001c.html#15 OS/360 (was LINUS for S/390) http://www.garlic.com/~lynn/2001c.html#22 OS for IBM 370 http://www.garlic.com/~lynn/2001c.html#87 "Bootstrap" http://www.garlic.com/~lynn/2001e.html#13 High Level Language Systems was Re: computer books/authors (Re: FA: http://www.garlic.com/~lynn/2001f.html#5 Emulation (was Re: Object code (was: Source code - couldn't resist compiling it :-)) http://www.garlic.com/~lynn/2001f.html#36 Ancient computer humor - The Condemned http://www.garlic.com/~lynn/2001f.html#37 Ancient computer humor - Memory http://www.garlic.com/~lynn/2001f.html#38 Ancient computer humor - Gen A Sys http://www.garlic.com/~lynn/2001f.html#39 Ancient computer humor - DEC WARS http://www.garlic.com/~lynn/2001g.html#22 Golden Era of Compilers http://www.garlic.com/~lynn/2001g.html#27 Golden Era of Compilers http://www.garlic.com/~lynn/2001h.html#10 VM: checking some myths. -- Anne & Lynn Wheeler | lynn@garlic.com - http://www.garlic.com/~lynn/