CDC 6600 - Why so awesome?

Rich Alderson RichA at LivingComputerMuseum.org
Wed Jun 22 18:46:38 CDT 2016


From: Swift Griggs
Sent: Wednesday, June 22, 2016 1:58 PM

On Wed, 22 Jun 2016, Chuck Guzis wrote:

>> I think Paul's covered that pretty well.  I'll add that the more complex
>> the display, the more flicker was present.

> The descriptions are fascinating. I hope I can see one operating some day. 
> Do you know of any still operational ?

We have one running at LCM, attached to an instance of dtCyber, the 6000/Cyber
simulator, via John Zabolitzky's Xilinx-based display adapter.  We're in the
process of refurbing the one that came with the 6500, which we may attach to
the system at some point.

>> Well, SCOPE had INTERCOM, an interactive facility, as well as 
>> EXPORT/IMPORT which was an RJE facility.  But the system was targeted 
>> primarily at batch jobs.

> Hmm, after reading the responses, I'm guessing most folks just showed up 
> with an armload of punch cards and didn't bother with keying things on the 
> console at the altar of the system.

Not a matter of "didn't bother with", but rather "were never allowed to".
You don't get to fuck with the console of a multimillion dollar machine if
you're not part of the operations or systems programming staff.

And it's rarely an armload.  Most programs fit into a deck of a few dozen
cards or so.  If you can't wrap a rubber band around the deck, you kept it
in the box.  (Oh, yeah, you bought cards in boxes of 2000.  About 16" long,
IIRC.)

>> As an aside, take a look at the UNIVAC 1107/1108 instruction set from 
>> roughly the same period.  It has an instruction to define the byte size 
>> (36 bit words).

> Hmm, interesting. I can't really even wrap my head around the implications.
> If you can't change the register sizes, why would you want to do that?  Was
> it just to shorten certain operations by increasing or decreasing their width?

For the same reason you do it in the PDP-6/PDP-10:  Data often comes in the
form of text characters, which are much smaller than the word size, so it makes
sense to pack them in.

On the 6/10, the common method was 7-bit ASCII packed 5 per word.  With
instructions for operating on byte pointers available, you set your initial
pointer up such that an increment will end up pointing at the first byte in a
word; Macro-10 had a pseudo-op for doing that (or pointing at any other byte in
the word, depending on what you needed to do).  In addition to the byte size
and location within the word, the indexed and/or indirected address of the word
is in the one-word byte pointer.

The most commonly used instructions are ILDB (Increment pointer and LoaD Byte
into AC) and IDPB (Increment pointer and DePosit Byte); there are also LDB and
DPB (good for status-checking operations, for example), IBP (Increment Byte
Pointer), and on the KL-10 and later processors, ADJBP (ADJust Byte Pointer,
which can back up as well as move forward).  If the byte size is such that no
room is left in the current word, the first byte in the next word in memory is
addressed.

The networking code uses a lot of 8- and 16-bit byte pointers, to handle the
fields in IP datagrams.  Other I/O code uses other byte sizes, to pull out or
set the relevant parts of device register values.

A quick example, which substitutes a space for a rubout in a text string
without having to copy it into a second:

txtptr: point 7,string          ; sets up to point to the non-existent byte
                                ; before string

        move  10,txtptr         ; initialize pointer in loop
top:    ildb  11,10             ; increments pointer, copies byte into AC 11
        skipn 11                ; non-null value?
         jrst bottom            ; no, end of string, exit loop
        caie  11,177            ; is it a rubout character
         jrst top               ; no, get next character in string
        movei 11,40             ; change a rubout to a space
        dpb   11,10             ; deposit byte into same location it came from
        jrst  top               ; and continue
bottom: <whatever>

PDP-10 operating systems in general use null-terminated strings.

Hope that helps you with capital wrapping.

                                                                Rich


Rich Alderson
Vintage Computing Sr. Systems Engineer
Living Computer Museum
2245 1st Avenue S
Seattle, WA 98134

mailto:RichA at LivingComputerMuseum.org

http://www.LivingComputerMuseum.org/


More information about the cctech mailing list