On Thu, Aug
09, 2001 at 08:13:20PM -0600, Mark Green wrote:
The CDC Cyber series had many different character
sets, which was a
major pain in the ass for anyone maintaining software for them. I
spent several years working on the Pascal compiler for the CDC
machines (the orignal implementation from ETH).
Ah, back at the U of Minn, we used CDC mainframes for our programming
classes. I tried using as much lower case as the Pascal books did,
and that did not make things happy.
If I remember correctly the compiler was never modified to
handle lower case letters, but I think the run-time support
could handle them. I worked on the run-time part of the
system, and I recall dealing with the various characters sets.
I also put in the ability to call PPU programs from Pacal
programs. This could also be done directly in Pascal, but
required a fair amount of knowldege and several compiler
cheats, so it wasn't recommended (which is why I did it that
way most of the time). The CDC machines were the first ones
that I used that had real parallelism, learned a hell of a
lot the hard way!
I was granted access to the source for the CDC BASIC 2.1 compiler,
and added ASC() and CHR() to it. I specifically coded it to handle
both types of ASCII support that CDC provided- the 76 octal prefix
version in which characters that mapped to display code equivalents
were 6 bits, and those that didn't map to D.C. got six bits in the
form of the 76 prefix and then another six bits specifying the character.
The TELEX timesharing subsystem also provided another mode, that was
straight ASCII, albeit 8 bits right-justified in a 12-bit byte. You'd
prefix a block of data with 4000 octal and then a stream of this type
of ASCII; if anything interrupted the stream while being output, TELEX
would not realize it was ASCII and would just puke out display code
until it saw another 4000 code.
All this work was to support a cursor-addressed Star Trek game that
needed to run on at least a dozen different terminal types.
Regards,
-dq