Seattle Computer Products (SCP) introduced their 8086 16-bit computer system in October 1979, nearly two years before the introduction of the IBM PC. By "computer system", I actually mean a set of three plug-in cards for the S-100 bus: the 8086 CPU card, the CPU Support Card, and the 8/16 RAM. At that time SCP did not manufacture the S-100 chassis these cards would plug into. That chassis and a computer terminal would be needed to make a complete working computer.
The S-100 Bus
Inside of a modern personal computer you'll find a motherboard crammed with the heart of the computer system: CPU, memory, disk interface, network interface, USB interface, etc. Off in one corner you usually find four or five PCI slots for add-in cards, but for most people no additional cards are needed (except maybe a graphics card).
In contrast, the S-100 Bus motherboard contained no components at all. A full-size motherboard had nothing but 18 – 22 card slots. Each slot accepted a 5" x 10" S-100 card with its 100-pin edge connector. A typical computer system would have a card with a CPU, possibly several cards with memory, a card for a floppy disk interface, a card for serial I/O, possibly a video card, etc.
This arrangement was started by MITS with the Altair 8800 computer, but eventually became standardized by the Institute of Electrical and Electronics Engineers as IEEE-696. During the standardization process, the S-100 bus was extended from being an 8-bit bus (typically used by 8080 and Z80 processors) to a 16-bit bus. It was this extension to 16-bits that made the S-100 bus a suitable target for the 8086 computer from SCP.
SCP also wanted to take advantage of the vast range of existing cards for the S-100 bus. They didn't need to make cards for disk interface, serial I/O, video, etc. since they were already available. Even the (empty) chassis itself was a standard item. An existing computer owner could simply swap out his 8-bit CPU card and replace it with the 16-bit SCP card, and all the hardware would work together (but the software was another matter).
The SCP 16-bit Computer System
The 8086 CPU card was an Intel 8086 microprocessor with dozens of logic chips needed to interface it to the S-100 bus. The signals and timings of the bus were built around the original 8-bit Intel 8080, and it took a lot of "glue" logic to create the same signals with a different microprocessor (this was also true for the Z80). For the 8086, however, there was also a significant added layer of working in "8-bit mode" or "16-bit mode". These modes were defined by the IEEE standard so that a 16-bit CPU could be used with existing 8-bit memory with a performance penalty, or with new 16-bit memory at full speed. Essentially, the CPU card could request 16 bits for each memory access. If there was no response, the card went into 8-bit mode: the microprocessor would be stopped momentarily while logic on the card ran two consecutive 8-bit memory cycles to fetch the required 16 bits.
The SCP 8086 CPU had a mechanical switch on it that allowed the microprocessor to run at either 4 MHz or 8 MHz (while a processor you get today would run at around 3,000 MHz = 3 GHz). When SCP first started sales, Intel could not yet provide the 8 MHz CPU chip so early units could only be run at 4 MHz.
The CPU Support Card was a collection of stuff needed to make a working computer. The most important items were:
- A boot ROM with debugger.
- A serial port to connect to a computer terminal.
- A time-of-day clock.
The 8/16 RAM had 16 KB (not MB!) of memory. It could operate in "16-bit mode" so the 16-bit processor could run at full speed. In the early days, using four of these cards to build a system with 64 KB of memory would have been considered plenty.
The only 16-bit software available when the system was first released was Microsoft Stand-Alone Disk BASIC. SCP did not make a floppy disk controller, but supported disk controllers made by Cromemco and Tarbell.
Development Timeline
I earned my BS in Computer Science in June of 1978 and started work at SCP. Intel just announced their new 8086 microprocessor, and I was sent to a technical seminar to check it out. The May 1978 issue of IEEE Computer Magazine had published the first draft of the S-100 standard which included 16-bit extensions, so I was excited about the possibility of making a 16-bit S-100 computer. My primary duties at SCP were to improve and create new S-100 memory cards, which at that time were SCP's only products. But I was given the go-ahead to investigate a computer design when I had the time.
By January of 1979 my design for the 8086 CPU and CPU Support Card had been realized in prototypes. I was able to do some testing, but then hardware development needed to be put on hold while I wrote some software. Not even Intel could provide me with an 8086 assembler to do the most basic programming, so I wrote one myself. It was actually a Z80 program that ran under CP/M, but it generated 8086 code. Next I wrote a debugger that would fit into the 2 KB ROM on the CPU Support Card.
In May we began work with Microsoft to get their BASIC running on our machine. I brought the computer to their offices and sat side by side with Bob O'Rear as we debugged it. I was very impressed with how quickly he got it working. They had not used a real 8086 before, but they had simulated it so BASIC was nearly ready to go when I arrived. At Microsoft's invitation, I took the 8086 computer to New York to demonstrate it at the National Computer Conference in the first week of June.
There was a small setback when the June 1979 issue of IEEE Computer Magazine came out. The draft of the IEEE S-100 standard had changed significantly. I got involved in the standards process to correct some errors that had been introduced. But I still had to make design changes to the 8086 CPU which required a whole new layout of the circuit board, with a risk of introducing new errors. It turned out, however, that no mistakes were made so production was able to start 3 months later.
Evolution
The 16 KB memory card was eventually replaced by a 64 KB card. Intel introduced the 8087 coprocessor that performed floating-point math, and SCP made an adapter that plugged into the 8086 microprocessor socket that made room for it. Later SCP updated the 8086 CPU card so it had space for the 8087.
The software situation did not change until I wrote DOS for this machine, first shipping it in August 1980.
When IBM introduced their PC in August 1981, its 8088 processor used 8-bit memory, virtually identical in performance to using 8-bit memory with the SCP 8086 CPU. Except IBM ran their processor at 4.77 MHz while the SCP machine ran at 8 MHz. So the SCP 8086 computer system was about three times faster than the IBM PC.
IBM also reintroduced memory limitations that I had specifically avoided in designing the 8086 CPU. For S-100 computers, a low-cost alternative to using a regular computer terminal was to use a video card. The video card, however, used up some of the memory address space. The boot ROM would normally use up address space as well. SCP systems were designed to be used with a terminal, and the boot ROM could be disabled after boot-up. This made the entire 1 MB of memory address space available for RAM. IBM, on the other hand, had limited the address space in their PC to 640 KB of RAM due to video and boot/BIOS ROM. This limitation has been called the "DOS 640K barrier", but it had nothing to do with DOS.
Microsoft took full advantage of the SCP system capability. In 1988, years after SCP had shut down, they were still using the SCP system for one task only it could perform ("linking the linker"). Their machine was equipped with the full 1 MB of RAM – 16 of the 64 KB cards. That machine could not be retired until 32-bit software tools were developed for Intel's 386 microprocessor.
5 comments:
Have you read the Wikipedia article about you? Looks like they're have difficulty finding info. Did you publish anything that might expand the article?
those were good times.. 1979-81 i was first learning about operating systems from Tandy's Model I, which i think was a z80 with a BASIC interpreter.. tried to make a database for my dad's engineering firm but dBase came out while i was debugging..
anyway.. do you still think about software? i've been trying to work out a replacement for Turing's math using geodesic Synergetics from Fuller, and multiwavelength transistor bandgaps..where the octave is represented by twelve tones in the 2^(n/12) algorithm from classical music theory.
"Except IBM ran their processor at 4.77 MHz while the SCP machine ran at 8 MHz. So the SCP 8086 computer system was about three times faster than the IBM PC."
That was fixed later when the clones came by. That, BTW, was the origin of the "Turbo" button, which could be used to switch between running the CPU at 4.77 MHz and the full 8 MHz
Duis pede. Nulla ipsum. Morbi vestibulum tincidunt mauris! Mauris tincidunt, dui bibendum molestie pharetra, felis ipsum mollis massa, et sollicitudin sem enim sed erat. Mauris odio purus, eleifend ac, dignissim vitae, laoreet sed, diam? Phasellus porta porttitor lectus? Morbi sem. Pellentesque a nulla. Proin aliquet dolor! Duis adipiscing dui quis lacus. Donec eros dui, rhoncus eget, ullamcorper a, placerat dapibus, magna. Aenean luctus. Morbi vel lorem a arcu tempor mollis? Aenean interdum condimentum ipsum. Cras erat massa, varius non, interdum vitae, porta nec, enim. Proin interdum consequat magna. Maecenas et metus. Etiam accumsan interdum eros.
Integer arcu quam, ornare eget; varius in, pulvinar ac, magna. Proin vel magna elementum nisi rhoncus cursus. Nulla risus! Praesent rhoncus, augue vel elementum interdum, est ligula lacinia nulla, nec consequat enim massa sodales arcu! Fusce a nulla. Vivamus magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent posuere lacus et lacus. Donec lacinia, urna ac vulputate mattis, mauris ligula rutrum augue, ut ullamcorper massa libero ut justo. Nunc vel felis? Nulla facilisi. Fusce condimentum. Duis pretium auctor leo. Duis quis risus rhoncus arcu semper pharetra. Vivamus id ante.
Donec ac eros. Vestibulum pretium commodo dui? Integer sit amet lacus non velit lobortis sollicitudin! Quisque eu lectus in metus vehicula sagittis. Mauris consectetuer molestie erat. Phasellus sem orci, tempus convallis, cursus venenatis, molestie eget; ligula. In felis lectus, porta semper, lobortis quis, dapibus et, lacus? In nunc massa, elementum vitae, dignissim eu, fringilla sit amet; justo. Praesent ultrices magna sed odio feugiat vestibulum. Nulla quis nunc id quam lacinia volutpat. Ut in tellus sed est rhoncus laoreet. Ut sit amet mauris sit amet erat aliquet pellentesque.
Nullam mi ligula; rhoncus nec, dictum ac, luctus a, risus. Curabitur posuere scelerisque sem. Sed mollis velit quis arcu ornare laoreet. Praesent ornare enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus elit leo, auctor vel, accumsan sed; rutrum sed, erat. Quisque tristique accumsan libero. Praesent rutrum, diam vel semper gravida; justo nisi cursus purus, porta commodo tellus eros a arcu. Nam eget arcu. Fusce varius.
Pellentesque scelerisque libero eget risus. Vivamus ligula nisi, feugiat sit amet; faucibus in, malesuada sit amet, ipsum. Sed ullamcorper; ante vitae placerat aliquet, dolor dolor placerat ipsum, sit amet euismod nisl purus id orci. Phasellus eu augue ac arcu mollis tincidunt? Ut tristique nisl vel diam. Morbi quam quam, consectetuer ac, pharetra ac; pretium quis, augue. Integer leo erat, placerat vel, lacinia eget, viverra sit amet, lorem. Sed dolor velit, imperdiet ac, tincidunt ac, suscipit eget; lorem. Phasellus sollicitudin! Cras ornare quam eu ligula!
Aenean in odio! Integer lobortis sem sed nulla viverra egestas! Aenean eu augue in massa tincidunt condimentum. In quis sapien. Suspendisse fringilla mauris vel justo. Donec scelerisque, nunc in elementum tempor, lectus sem hendrerit lorem, eget lobortis felis lacus in ipsum. Curabitur venenatis dui vitae purus. Phasellus accumsan tellus in sapien. Aenean mi. Nunc imperdiet mauris eget massa. Nam eget felis. Nam bibendum purus fermentum massa?
Nulla id pede at magna consectetuer lobortis. Nulla facilisi. Donec dui turpis, pharetra nec, ullamcorper vel; mattis laoreet, odio. Nullam faucibus, nisl ut iaculis lacinia, massa libero dapibus turpis, vitae aliquet nisl est sed sem. Integer dictum. Sed et nunc. Nulla consequat viverra nulla. Sed sit amet sem et eros suscipit posuere! Aliquam vitae ante. Mauris a elit. Fusce blandit accumsan elit. Sed non augue. Sed ut nisi! Donec vestibulum orci at felis! In hac habitasse platea dictumst. Maecenas nec augue a pede semper ultricies. Aenean placerat, sem quis rutrum sodales, velit eros viverra lorem, ac placerat orci metus et risus. In hac habitasse platea dictumst.
Etiam laoreet; risus et aliquet sagittis,
Thanks for writing this.
Post a Comment