Interesting People mailing list archives
IP: WORTH READING History of 8008?
From: Dave Farber <dave () farber net>
Date: Sat, 11 May 2002 14:36:09 -0400
------ Forwarded Message From: gep2 () terabites com Date: Sat, 11 May 2002 12:56:15 -0500 To: wharton () shasta Stanford EDU Cc: dave () farber net, joschmid () nortelnetworks com Subject: History of 8008? Howdy!
I just read the article you posted to Dave Farber's IP list. Your history
of the 8008 is interesting, but I'm still a bit confused. I'll try to resolve that! :-)
You began with the line,
Lest anyone be misled by the following, please note for the record ...
That seems to say there's something in the original class announcement that
was false, misleading, or in need of correction. Could you explain what it is you're taking exception to? Sure. The line in question says:
In 1969 Stan joined the then-startup Intel Corporation, where he
developed architecture specifications for the industry's first microprocessors, including the Intel 4004 and 8080, for which he shares the fundamental design patents. You'll note that it says "he developed architecture specifications for the industry's first microprocessors, including the Intel 4004 and 8080, for which he shares the fundamental design patents." That's misleading on SEVERAL grounds. First, it suggests (strongly) that the 4004 and 8080 were "the industry's first microprocessors" which totally ignores the 8008, which was in fact the industry's first general-purpose eight-bit microprocessor on a single chip. Second, it suggests that Stan designed the important architectural features of the 8080 (which one might presume includes the instruction set, endian choice, subroutine linking approach, register architecture, and so on and so forth) when in fact those (for the 8008) were designed by Datapoint. The 8080 is in fact virtually identical, architecture-wise, with the (Datapoint-designed) 8008... the main difference being that the 8080 is in a bigger package and doesn't multiplex the output pins like the (physically smaller) 8008 does, which means the 8008 had to have more auxiliary circuitry to demux those lines. I don't know what "fundamental" design patents Stan may have on the 8080, but it's clear that the 8080 (which is in fact only a slightly modified 8008) is "fundamentally" Datapoint's architecture and design. I would have no reason to dispute that Stan maybe was involved with INTERNAL design decisions, i.e. how the adder was designed or how the processor INTERNALLY was architected and so forth (and I don't really know what he actually did at Intel on the design, so that's speculation), but you ought to understand that even here, Datapoint (Computer Terminal Corporation at the time) already had a working processor (made of MSI and TTL parts) which in any case implemented essentially the 8008 on one largeish (oh, maybe 8" x 15" or so) and one smaller (about half that size) board. The 8008 and the Datapoint 2200 share the same register architecture, the same stack technique for subroutine linkage, the same instruction set (opcode mnemonics, binary op codes, etc), I/O scheme, and more. (They are in fact all but identical, programmer-wise... the main difference being that the 8008 added a simple/direct "increment" instruction which the Datapoint 2200 did not have). In fact, the instruction set and register architecture for what became the 8008 was designed by a man named Vic Poor (who went on to become eventually Sr VP of R&D for Datapoint). Another fellow named Harry Pyle (a brilliant young man who Vic came to meet through a common interest in ham radio) was the person who chose the use of the hardware stack for subroutine linkage. Harry Pyle went on to become the key principal programmer who wrote the assembler, CTOS (the 2200's Cassette Tape Operating System), as well as the initial Databus high level language compilers and runtime interpreters as well as later the first three releases of Datapoint's Disk Operating System. [I took over development work on Datapoint's DOS in 1974.] Another fellow named Gary Asbell, I believe, was heavily responsible for Datapoint's own hardware implementation of the processor and went on to become chief processor design guy at Datapoint. Gary, for example, designed the microsequencer which was key to the RIM, which was Datapoint's initial implementation of the ARCnet LAN interface... the world's first commercially available local area network... which was working in 1976 and was first shipped to an out-of-house customer (Chase Manhattan Bank, in fact) in September 1977. (That product was announced officially in NYC on Dec 1, 1977... which means this is the 25th anniversary year of the local area network, by the way).
(I.e., Stan Mazor's biographical sketch in the class announcement mentions
just the 4004 and 8080 processors, while your "rebuttal" relates just to the 8008. What's the discrepancy?) The fact that the HUGE contribution of CTC/Datapoint in conceiving (designing and in fact basically commissioning the product) of the first 8-bit general-purpose microprocessor, which Intel didn't intend to make, was swept under the rug as if it didn't happen!!
Also, my understanding is that DataPoint planned to use the 8008 just to
control the CRT, and that any "general-purpose desktop microcomputer system" capabilities would have required a different processor. Are you saying the 8008 was a general-purpose CPU that would have performed both functions? No. Datapoint in fact had circuitry already which controlled the CRT (not just for the 2200, but also for their 24x80 3000, 3360, and 3300 display terminals), and the 8008 would not have been nearly fast enough to do that. Datapoint used what they called a "diddle scan" (which in fact Datapoint held a patent on) which is what allowed Datapoint to in fact use MOS memories (shift registers!) for the screen refresh buffer. The diddle scan differs from a conventional raster scan in that a diddle scan displays a given character completely, COLUMN-BY-COLUMN in terms of pixels, before continuing to draw the next character of the row to the screen. After the 80 characters are displayed on one row, it then proceeds to display the next row of characters, and so forth. The important thing about the diddle scan is that a 1024-byte shift register memory can contain the entire screen refresh memory for a 12 x 80 display, cycling once around for each complete screen refresh, without the need to refetch the bytes of a given row for each raster scan line like 'normal' raster scan displays need to do. The 2200 was going to use the 8008 (and in fact used its own implementation of the 8008) to run the CTOS, compilers, assembler, editor, terminal emulators, device drivers for the digital cassette tape drives, etc etc... in fact all the functions of a general-purpose business microcomputer system. Unlike the hobbyist Altair and such which followed, however, (and which were essentially one-chip-microprocessor versions of the bare-CPU "minicomputer" systems of the era) the Datapoint 2200 was a COMPLETE and SELF-CONTAINED system which was the size and shape of an office electric typewriter. The 2200 also eliminated console switches and console lights (near-obligatory on computers of the time) and used instead the keyboard and display for 'everything'. The 2200 booted by rewinding and transferring (in hardware) the first [boot!] block on the tape in the rear cassette tape drive into memory starting at location zero, and then passing control to memory location zero. That initial boot block contained the logic necessary, obviously, to further initialize the system and boot the rest of the operating system from the same rear tape. Note that the main memory of the Datapoint 2200 (type 1, the first incarnation of the 2200) *also* used MOS shift register memory... which meant that for performance reasons one tended to favor inline code, which could be executed by stepping to the next location in memory. Subroutine call-and-return meant that one had to wait for the memory to cycle fully around to get back to the return location so execution of the caller routine could be resumed! :-) Likewise, JUMP instructions took a variable amount of time depending on how long it took to cycle the memory around to the desired address. :-) The use of shift register main memory also dictated the use of the little-endian architecture for the computer (and which Intel of course still uses to this day), since one wanted to be able to increment (or otherwise add to) a (two-byte) address (again, frequently the second and third bytes of a jump instruction... since that meant not having to fetch out-of-line memory which was slow!) and propagate the carry into the high-order byte without having to "waste" a complete cycle-around of the memory. The Type 1 2200 had a maximum of 8K bytes of MOS shift register main memory, 2K was the minimum and you could add up to three more 2K memory cards. The Type 1 was fairly rapidly supplanted by the Type 2, which was nearly identical programming-wise but which changed the machine to type 2102 1kbit DRAM chip main memory... coming with 4K bytes and with the ability to add (again) three more boards, totalling 16K bytes of memory in a fully-configured 2200. The Type 2 machine, while capable of running all Type 1 programs, was obviously faster since the 'memory cycling' wasn't any longer a concern and permitted writing much more ambitious programs. The Type 2 2200, using a Datapoint model 350 (later called the 9350) disk cartridge drive (a 2.5Mb unit based on the then-ubiquitous Diablo series 30 drive) and Datapoint's DOS, was capable of supporting (and astonishingly well, in fact!) up to 8 Datapoint 3360 display terminals in an innovative multiuser transaction-oriented business configuration based on Datapoint's DATASHARE programming language, which was a further development of the DATABUS business programming languages which ran under CTOS. There were a whole number of reasons why a machine with the seemingly limited capacity of the Type 2 2200 was able to support eight terminals so well (for example, the size of program allowed EACH terminal was a compilation listing typically well over a hundred printout pages long, and each terminal could be running of course a different program concurrently)... including a very compact bytecode interpreter, a specialized virtual-memory architecture where data used by each user program was permanently resident but bytecode (which was never modified) was dynamically swapped into (and executed directly out of) speed buffers in the disk controller, and the use of one-millisecond timer interrupts to handle serial I/O to and from the terminals from the permanently resident-in-memory user data areas. Note again that your understanding as you said above (quoting again):
Also, my understanding is that DataPoint planned to use the 8008 just to
control the CRT, and that any "general-purpose desktop microcomputer system" capabilities would have required a different processor. Are you saying the 8008 was a general-purpose CPU that would have performed both functions? ...was WAY wide of the mark, given that all of the functionality I'm describing here (eight DATASHARE users running business-oriented high level language programs on serial terminals via a multiuser business transaction-oriented operating system, a full DOS operating system with dynamic file structure (including ISAM/physical-random/sequential access, automatic space allocation (that even IBM's *mainframe* DOS didn't have back then), a subdirectory disk architecture, and more all ran (and quite respectably in fact) on the 2200 Type 2 computer system which used Datapoint's MSI-and-TTL implementation of the 8008. So YES, I'm saying that the 8008 was in fact VERY MUCH a general-purpose CPU, AND that the architecture was absolutely used that way by Datapoint in the 2200. :-))
Would you mind elaborating on this?
I've covered the topic (for the record!) reasonably well here, and would be glad to provide any further details you require if I can.
And could you point me to the source of information you have on the Datapoint
2200 architecture? Sure. The definitive public document on the original Datapoint 2200 is a looseleaf binder (published by Computer Terminal Corporation) called the Datapoint 2200 Programmer's Manual, (which incorporates a "Reference Manual" completely describing the CPU hardware, instruction set, and built-in I/O facilities of the 2200). The rest of the binder contains tabbed sections: Introduction The Operating System (CTOS) Assembler Source Code Editor The Assembler Advanced Operating System Command and Subroutine Usage (keyboard/display/catalog/debugger/symbolic loader/tape file access/etc) Appendix (containing a complete assembler source listing of the CTOS operating system, dated 02/05/71 in fact). The Databus business programming language (which for CTOS came in at least five or six versions having different combinations of features, and thus being able to run in larger or smaller memory capacity processor configurations) was documented in separate books (but used the exact same programmer's editor as the "assembler source code editor" mentioned above in the Programmer's Manual). Note that the public announcement of the 8008 appeared in Electronics magazine issue of March 13, 1972 (page 143 in fact... sample quantities were being offered by Intel at $200 each.) The Electronics article, of course, does not mention Computer Terminal Corporation or the Datapoint 2200. :-) However, it's very clear (based on the facts that Datapoint had a running operating system and user documentation for the complete and user-available 2200 system more than a year before the public announcement of the 8008, and the fact that the architecture, assembler mnemonics, and even binary op codes are identical to those of the 8008) that the "Intel" 8008 was indeed Datapoint's design.
Thanks much.
You're welcome! Glad to have an opportunity to get a bunch of this stuff on the record.
--John Wharton
650-856-8051 Gordon Peterson http://personal.terabites.com/ Support the Anti-SPAM Amendment! Join at http://www.cauce.org/ 12/19/98: Partisan Republicans scornfully ignore the voters they "represent". 12/09/00: the date the Republican Party took down democracy in America. ------ End of Forwarded Message For archives see: http://www.interesting-people.org/archives/interesting-people/
Current thread:
- IP: WORTH READING History of 8008? Dave Farber (May 11)