Post by Dan EspenSure, the IBM card is the same way, you can punch any of the 256
values. But IBM didn't assign characters to all the positions. A big
mistake in my opinion. To this day, when you ftp data from a
mainframe with ebcdic-ascii translation, you're going to lose some
data because IBM didn't assign characters to all the positions and
didn't have the imagination to pick arbitrary, unique values.
trivia: CP67 as delivered to univ had terminal support for 1052 & 2741
... including being able to automagically doing terminal type on each
line/port (by using terminal controller "SAD" CCW to switch terminal
type line scanner type for the line and seeing what data worked and what
didn't). Univ. had some number of TTY33s ... so I had to add ASCII TTY
support, translate tables between ASCII<->EBCDIC and also extended the
automagic terminal type identification to TTY.
I then wanted to extend automagic terminal type to dial-up ... being
able to have single dialup number for all terminals ... single "hunt
group" dial-in number
https://en.wikipedia.org/wiki/Line_hunting
it almost worked ... except overlooked that IBM had taken short-cut in
the terminal controllers and while the terminal type line scanner could
be switched for every line, line speed was hard wired (tty line speed
different from 1052&2741). This was somewhat motivation for univ. to
start its own clone terminal controller project, build a channel
interface board for Interdata/3 programmed to emulate IBM terminal
controller ... with the addition it could do automagic terminal line
speed.
One of the first testing bugs was IBM channel had max. duration that
each controller could hold the channel (& memory bus). 360/67 had high
speed clock that updated storage location 80 every 13microseconds. If
clock went to update memory with timer tic and a previous timer tic
memory update was still pending, it would "red light" and the processor
stop. Channel interface board had to make sure it released the channel
interface (and memory bus) at least once every time tic interval.
The next was overlooked that IBM terminal controllers was doing
bit-reversed ascii ... leading bit went in the byte low order bit
position ... so every ascii character arriving in memory was bit
reversed pattern (and similarly on transmission) ... and IBM translate
tables had to handle the byte bit-reversed convention (note that IBM
"selectric" terminals didn't actually do EBCDIC ... they did tilt-rotate
code to select position on the selectric typeball, so had to do
EBCDIC<->tilt/rotate ... and account for the byte bit-reversed
convention).
I also had to somewhat arbritarily select mappings between EBCDIC
characters that weren't in ASCII ... especially for CMS line-editing
cent-sign. at-sign, "@" was "character-delete" , lower-case on far right
of keyboard; "line-delete" was cent-sign, upper case on the same key,
but no ascii equivalent. TTY had left&right bracket on same key at same
keyboard location ... so guess what I choose?
Interdata (later Perkin-Elmer) were selling the boxes as IBM clone
controller and four of us get written up as responsible for (some part
of) the IBM clone controller business.
When I was doing the TTY code ... I played some games with one byte
length values (even tho they were two byte fields). Later Van Vleck
https://www.multicians.org/thvv/
was supporting CP67/CMS system at the MIT Urban Systems lab (USL)
and he patched the max. ASCII line length to 1200(?), I think
for ascii plotter device done at Harvard ... which the one
byte stuff resulted in wrong length calculation which overran
the buffer and crashed CP/67 27times in single day.
https://www.multicians.org/thvv/360-67.html
trivia: IBM Science Center (& Multics/project mac) were in 545 tech sq,
USL was in tech square bldg on the opposite side of the quad ... and
Land's two story Polaroid bldg was on the street side between the two
bldgs (science center offices on the 4th flr overlooked Land's balcony
... one day we watched Land taking pictures of a model with the
unannounced SX-70).
other trivia: IBM later would have had to have two different
EBCDIC<->ASCII translate tables ... one for terminals with bit-reversed
ASCII (terminal controller) convention and another for straight ASCII.
--
virtualization experience starting Jan1968, online at home since Mar1970