From: Dr Ivan D. Reid on
On Sun, 8 Aug 2010 21:47:15 +1000, robin <robin51(a)dodo.com.au>
wrote in <4c5e9948$0$34572$c30e37c6(a)exi-reader.telstra.net>: > "Dr Ivan
D. Reid" <Ivan.Reid(a)ivan.fsnet.co.uk> wrote in message
news:slrni5nem7.1uk.Ivan.Reid(a)smtp.orangehome.co.uk...

>| My experience with a Cyber in 1978 was that it had a 60-bit word
>| but integer multiply/divide only worked up to 48 bits. To shift a 48-bit
>| integer to 60 bits to add a 5th 12-bit byte I had to use successive adds
>| (i=i+i).

> There was a shift instruction that would have done the job in one step.

In FORTRAN?

--
Ivan Reid, School of Engineering & Design, _____________ CMS Collaboration,
Brunel University. Ivan.Reid@[brunel.ac.uk|cern.ch] Room 40-1-B12, CERN
KotPT -- "for stupidity above and beyond the call of duty".
From: robin on

"Nick Maclaren" <nmm(a)gosset.csi.cam.ac.uk> wrote in message news:i3m9g1$bba$1(a)gosset.csi.cam.ac.uk...
| In article <i3m8ad$99i$1(a)news.eternal-september.org>,
| mecej4 <mecej4.nyetspam(a)opFeramail.com> wrote:
| >
| >This is speculation on my part, but this may throw some light on why two
| >colons had quite a different effect than the once-repeated effect of a
| >single colon.
|
| I would trust what Richard Maine says, and ignore anything that
| conflicts with it. Certainly in this context.

Maine has been wrong on both matters that he contributed :-
1. He said that integer operations were produced by floating-point op codes,
and as a consequence, that results were 48 bits.
(untrue; instructions for 60-bit integer addition and subtraction had
separate op-codes from the floating-point equivalents);
2. that of the 64-character set, CDC used one character value (the double colon)
to signify end-of-line, which created a conflict because there were
then effectively 65 different purposes obtained from those 6 bits.

And no, the colon wasn't an escape character.
Had it been an escape character, there would have been
two escape codes -- the double zero to signify end-of-line,
and zero with a non-zero to indicate a colon.
That wasn't done. Instead, a double colon in the 9th and 10th character
positions (modulo 10) produced a line feed, and the double colon was
not printed.


From: robin on
"Dr Ivan D. Reid" <Ivan.Reid(a)ivan.fsnet.co.uk> wrote in message news:slrni5tk95.94f.Ivan.Reid(a)smtp.orangehome.co.uk...
| On Sun, 8 Aug 2010 21:47:15 +1000, robin <robin51(a)dodo.com.au>
| wrote in <4c5e9948$0$34572$c30e37c6(a)exi-reader.telstra.net>: > "Dr Ivan
| D. Reid" <Ivan.Reid(a)ivan.fsnet.co.uk> wrote in message
| news:slrni5nem7.1uk.Ivan.Reid(a)smtp.orangehome.co.uk...
|
| >| My experience with a Cyber in 1978 was that it had a 60-bit word
| >| but integer multiply/divide only worked up to 48 bits. To shift a 48-bit
| >| integer to 60 bits to add a 5th 12-bit byte I had to use successive adds
| >| (i=i+i).
|
| > There was a shift instruction that would have done the job in one step.
|
| In FORTRAN?

ISHFT in FORTRAN,
and a shift instruction in machine code.


From: Ron Shepard on
In article <4c5ed409$0$34573$c30e37c6(a)exi-reader.telstra.net>,
"robin" <robin51(a)dodo.com.au> wrote:

> Maine has been wrong on both matters that he contributed :-
> 1. He said that integer operations were produced by floating-point op codes,
> and as a consequence, that results were 48 bits.
> (untrue; instructions for 60-bit integer addition and subtraction had
> separate op-codes from the floating-point equivalents);
> 2. that of the 64-character set, CDC used one character value (the double
> colon)
> to signify end-of-line, which created a conflict because there were
> then effectively 65 different purposes obtained from those 6 bits.

I'm not particularly interested in this discussion of character sets
on ancient machines that I never used, but I have to say that the
above two sentences are not accurate representations of posts to
this thread for the past few days.

You have to wonder why this incorrect summary would be posted when
it is so easy to read back through the threads to see what Richard
Maine actually said.

$.02 -Ron Shepard
From: robin on
"Richard Maine" <nospam(a)see.signature> wrote in message news:1jmw8bk.11rn30t1asz51cN%nospam(a)see.signature...

| CDC machines of that era did not have bytes. At all.
| ...
| If this represents something about memory (as is plausible - the CM in
| LCM might stand for core memory), the units are probably 60-bit words.
| That's the units that memory was measured in. As noted previously,
| characters were 6 bits, but the machine could not physically address
| individual characters

The CDC Cyber 70 series could. They had a character unit,
and when supplied with a length and an offset,
character instructions could move N characters starting anywhere
in a word to a destination starting anywhere else in a word.
There were two formats, one for short strings and another for
long strings.
The only machine in the series that could not be fitted with the
character unit was the largest/fastest in the range --
sort of a downwards compatible instruction set.
On the slowest machine in the range, the character unit was
compulsory; on the middle machine(s) it was optional extra,
and on the fastest, it was omitted (and not available).

| and there wasn't really a term used to refer to
| the storage used by a character. On occasion, you might here someone
| talking about the machines having a 6-bit byte, but I don't consider
| that accurate; they just didn't have bytes of any size - only words.

They did, as I described above.

And with or without the character unit, characters could still
be still manipulated by using the integer, mask, and shifting instructions.