Max, I'm still using the Intel hex format to program 8051s. The 8051s are part of USB device chips I use to feed data to modern processors. -- also, I was glad to see and converse with you at ESC Boston, PeteTA
@Max the Magnificent: Due to the fact that IBM sold its computer systems around the world, it had to create multiple versions of EBCDIC. In fact, 57 different national variants were eventually wending their way across the planet.
Heinz 57 varieties? :-)
Eric is the currrrent maintainer of the Jargon File, which if the canonical listing of hacker jargon. The entry for EBCDIC is amusing: http://catb.org/~esr/jargon/html/E/EBCDIC.html
I worked in an IBM shop a long time ago and was aware of EBCDIC, but never had to deal with the variants.
I had more fun dealing with "Extended ASCII". The ASCII spec defined the first 127 characters possible in an 8 bit byte, The rest were undefined, and vendors rolled their own on what got put there. The IBM PC used 128-256 for line drawing characters. math symbols and the like, but that range got used for accented national characters as well. It survives today as code pages, and being sure you are using the right code page to properly display content in a console window.
@Max the Magnificent: Thanks for sharing -- I LOVE this stuff!!!
I thought you would appreciate it. Eric got a lot of commentary from other old timers in his blog, and had to say "That's good stuff, but I have to draw the line somewhere about what to include in this piece", and drop stuff as not in scope.
There's all sort of fun stuff in the blog commentary that didn't make the cut for the final version.
A similar sort of technique was used for variable-length records on magnetic tape. Many IBM shops simply used tapes as a way to keep punched cards that wouldn't turn into confetti in the readers, but others had more complicated data structures to transmit. (E.g. invoices with a fixed vendor/buyer part, and a variable number of line items.)
I forget the precise details, (the therapy is obviously working), but essentially the start of the block or record contained a count of how many characters were in the variable part. I seem to recall it also being used in early hard drives, until the simplicity of reading fixed-length blocks and then sorting out the contents with software became obvious.
@Traneus Rex: ...Their records are delimited by character count, not by record-ending character...
Hi Peter -- thansk for sharing this info -- very interesting -- I love learning the little tricks of the trade they used in ye olden days to save memory and clock cycles -- also, it was great seeing you at ESC Boston -- Max
@DMcCunney: See also open source advocate Eric S. Raymond's blog post "Things Every Hacker Once Knew" at http://www.catb.org/esr/faqs/things-every-hacker-once-knew/ for more ASCII (and other) information...
@DMcCunney: ...Note as well that EBCDIC never really got a standard. There seems to have been several not quite compatible variants in use on different IBM hardware...
I actually mention this in this column -- my exact words were:
Due to the fact that IBM sold its computer systems around the world, it had to create multiple versions of EBCDIC. In fact, 57 different national variants were eventually wending their way across the planet. (A "standard" with 57 variants! You can only imagine how much fun everybody had when transferring files from one country to another).