Xref: utzoo comp.misc:2980 comp.arch:5903 Path: utzoo!utgpu!attcan!uunet!husc6!bloom-beacon!mit-eddie!uw-beaver!uw-june!geops!johnf From: johnf@geops.UUCP (John Firestone) Newsgroups: comp.misc,comp.arch Subject: Re: History of PCs (also kind of long) Summary: History of PC's (yet more on the COSMAC 1802) Keywords: history, pc, workstation Message-ID: <426@geops.geops.UUCP> Date: 4 Aug 88 18:36:01 GMT References: <5946@venera.isi.edu> <5458@ecsvax.uncecs.edu> <1876@looking.UUCP> <1193@ficc.UUCP> Organization: Geophysics, U of W, Seattle Lines: 44 In an article, Karl Lehenbauer writes: : As I recall, the RCA 1802 has eight 16-bit registers. . . . As someone who built and programmed an 1802 microcomputer system starting from a bunch of chips, a surplus teletype, and many pads of paper (boy, I didn't know what I was getting into), I would like to offer a few corrections and additions regarding this unusual but neat microprocessor. As I believe the part is still being sold, I will use the present tense. The 1802 actually has sixteen 16-bit registers which are almost completely interchangeable except that: - register R0 becomes a DMA data pointer if you use DMA - register R1 becomes the interrupt service program counter and register R2 becomes the stack pointer if you use interrupts - register R0 can not be used with the Load via Rn instruction as the required opcode is assigned to the IDLE instruction One of the most powerful features of the 1802's instruction set is that any of these registers can serve as a program counter or index register and that it is very easy to switch the working set. This makes it easy to use coroutines (a single instruction switches back and forth) and to write instruction emulators and threaded/knotted code interpreters. In fact, often the best way to program the 1802 is to construct an application-specific, meta-machine first. Perhaps this is what makes the 1802 seem "weird". While the 1802 has no multiply and divide instructions, RCA does sell a compatible multiply/divide chips. By dedicating a register or two as instruction program counters, workable multiply/divide instructions can be added to the instruction set. The main drawbacks of the 1802 are that it does not do instruction pipelining and that you have to route all data through its 8 bit D-register; start emulating a lot of instructions and it can become very slow. In some applications, though, power not speed is important. Since the 1802 is constructed in classic CMOS, you almost can reduce its power consumption to whatever level you want by slowing or stopping its clock. If you weren't in a hurry, the 1802 was a good chip to look at. John Firestone Geophysics, AK-50 University of Washington Seattle, WA 98195