RCA 1802

RCA 1802

The RCA (CDP)1802 (aka RCA COSMAC*, COSMAC 1802) is an 8-bit CMOS microprocessor (µP) introduced by RCA in early 1976, and currently being manufactured by Intersil Corporation. The 1802 has an architecture quite different from most other 8-bit microprocessors.

(* "COSMAC" is an acronym for "COmplementary Silicon Metal-oxide Conductor", which was RCA's term for its first CMOS (COS/MOS) semiconductor technology.)


The RCA 1802—which is actually the one-chip implementation of the earlier two-chip RCA 1801—has a static CMOS design with no minimum clock frequency, so that it can be run at very low speeds and low power. It has an 8-bit parallel bus with a bidirectional data bus and a multiplexed address bus (i.e., the high order byte of the 16-bit address and the low order byte of the address take turns in using the 8-bit physical address bus lines, by accessing the bus lines in different clock cycles). It has a single bit, programmable output port, and four input pins which are directly tested by branch instructions. Its I/O mode is flexible and programmable, and it has a single-phase clock with an on-chip oscillator. Its register set consists of sixteen 16-bit registers. The program counter (PC) can reside in any of these, providing a simple way to implement multiple PCs, pointers, or registers.


From the outset the 1802 has also been available fabricated in Silicon on Sapphire semiconductor process technology, which gives it a degree of resistance to radiation and electrostatic discharge (ESD). Along with its extreme low-power abilities, this makes the chip well-suited in space applications (also, at the time the 1802 was introduced, very few, if any, other radiation-hardened microprocessors were available in the market). The 1802 was used in the Voyager, Viking, and Galileo spacecraft, and has been widely used in Earth-orbiting satellites. The Voyager spacecraft have three 1802s running at 6.4 MHz. All these CPUs sent to space were operating at full military specification temperatures (-55 to +125 °C).

The 1802 was also used in ACAL, a microprocessor based system for the detection of gasses in chemical warfare. ACAL was designed by Oldelft / Delft Instruments, a Dutch company in the military & defence business. ACAL only got as far as prototype stage and never made production.

Commercial applications included the MIL Key building access control system, made in Australia, and marketed by Philips in Europe in the 1980s.

A number of were based on the 1802, including the Comx-35, COSMAC ELF, COSMAC VIP, ELF II, SuperELF, Finnish Telmac_1800 and Oscom Nano, and Yugoslav Pecom 32 and 64, as well as the RCA Studio II video game console (one of the first consoles to use bitmapped graphics).

The first high-level language available for the 1802 was Forth, provided by Forth, Inc. in 1976.

Technical description

Registers and I/O

An important feature of the 1802 is the register file of sixteen registers of 16 bits each. Using the SEP instruction, you can select any of the 16 registers to be the program counter; using the SEX instruction, you can select any of the 16-bit registers to be the index register. Register R0 has the special use of holding the memory address for the built-in DMA controller.

The processor has 5 special I/O lines. There's a single Q output that can be set with the SEQ instruction and reset with the REQ instruction. There are four external flag inputs: EF1, EF2, EF3, EF4 and there are 8 dedicated branch instructions to conditionally branch based on the state of those input lines. The EF and Q lines were typically overused on RCA 1802 based hobbyist computers because of the lines' favorable handling. It was typical for the Q line to drive a status LED, a cassette interface, an RS-232 interface, and the speaker. This meant that the user could actually hear RS-232 and cassette data being transmitted.

ubroutine calls

The processor does not have standard subroutine CALL immediate and RET instructions, though they can be emulated. The register file makes possible some interesting subroutine call and return mechanisms, though they are better suited to small programs than general purpose coding. A few commonly used subroutines can be called quickly by keeping their address in one of the 16 registers; the SEP instruction is used to call a subroutine pointed to by one of the 16 bit registers and another SEP to return to the caller. Before a subroutine returns, it jumps to the location immediately preceding its entry point so that after the SEP instruction returns control to the caller, the register will be pointing to the right value for next time. An interesting variation of this scheme is to have two or more subroutines in a ring so that they are called in round robin order. On early hobbyist computers, tricks like this were commonly used in the horizontal refresh interrupt to reprogram the scan line address to repeat each scan line 4 times for the video controller. Computed subroutine calls were no problem because all CALL instructions were indexed (some processors only had CALL immediate).

DMA; Clock cycles

The built-in DMA controller is typically used to load or view program memory, depending on the state of the write enable signal, after the processor has been reset but still being held in a special wait state.

Clock cycle efficiency is poor in comparison to most other similar processors. Eight clock cycles makes up one machine cycle. Most instructions take two machine cycles to execute.

upport chips


In early microcomputers the companion graphics Video Display Controller chip, CDP1861 for the NTSC video format, (CDP1864 variant for PAL), used the built-in DMA controller to display bitmapped graphics.

The 1861 chip could display 64 pixels horizontally and 128 pixels vertically, though by reloading the R0 register, the resolution could be reduced to 64×64 or 64×32 to use less memory or to make square pixels. Since the frame buffer was similar in size to the memory size, it was not unusual to display your program/data on the screen allowing you to watch the computer "think" (i.e. process its data).

Programs which ran amok and accidentally overwrote themselves could be spectacular. Although the faster version of 1802 could operate at 5 MHz (at 5 V; it was faster at 10 V), it was usually operated at 3.58 MHz/2 to suit the requirements of the 1861 chip which gave a speed of a little over 100,000 instructions per second.

Code samples

This code snippet tests ALU OPS, it is a diagnostic routine.

.. TEST ALU OPS0000 90 GHI 0 .. SET UP R60001 B6 PHI 60002 F829 LDI DOIT .. FOR INPUT OF OPCODE0004 A6 PLO 60005 E0 SEX 0 .. (X=0 ALREADY)0006 6400 OUT 4,00 .. ANNOUNCE US READY0008 E6 SEX 6 .. NOW X=60009 3F09 BN4 * .. WAIT FOR IT000B 6C INP 4 .. OK, GET IT000C 64 OUT 4 .. AND ECHO TO DISPLAY000D 370D B4 * .. WAIT FOR RELEASE000F F860 LDI #60 .. NOW GET READY FOR0011 A6 PLO 6 .. FIRST OPERAND0012 E0 SEX 0 .. SAY SO0013 6401 OUT 4,010015 3F15 BN4 *0017 E6 SEX 6 .. TAKE IT IN AND ECHO0018 6C INP 4 .. (TO 0060)0019 64 OUT 4 .. (ALSO INCREMENT R6)001A 371A B4 *001C E0 SEX 0 .. DITTO SECOND OPERAND001D 6402 OUT 4,02001F E6 SEX 60020 3F20 LOOP: BN4 * .. WAIT FOR IT0022 6C INP 4 .. GET IT (NOTE: X=6)0023 64 OUT 4 .. ECHO IT0024 3724 B4 * .. WAIT FOR RELEASE0026 26 DEC 6 .. BACK UP R6 TO 00600027 26 DEC 60028 46 LDA 6 .. GET 1ST OPERAND TO D0029 C4 DOIT: NOP .. DO OPERATION002A C4 NOP .. (SPARE)002B 26 DEC 6 .. BACK TO 0060002C 56 STR 6 .. OUTPUT RESULT002D 64 OUT 4 .. (X=6 STILL)002E 7A REQ .. TURN OFF Q002F CA0020 LBNZ LOOP .. THEN IF ZERO,0032 7B SEQ .. TURN IT ON AGAIN0033 3020 BR LOOP .. REPEAT IN ANY CASE

External links

* [http://homepage.mac.com/ruske/cosmacelf/cdp1802.pdf CDP1802 datasheet] (PDF)
* [http://www.cosmacelf.com/ COSMAC ELF website]
* [http://www.sparetimegizmos.com/Hardware/Elf2K.htm Spare Time Gizmos ELF 2K page]
* [http://www.elf-emulation.com/ Elf/1802 Emulation]
* [http://www.ittybittycomputers.com/IttyBitty/ShortCor.htm A Short Course in Programming] (1980 text on RCA 1802 assembler)
* [http://ringcomps.co.uk/hhc Early homebrew handheld computer using RCA 1802] and Forth
* [http://members.lycos.nl/Jondor/index.html Cosmicos 1802 computer]

"Minor parts of this article were originally based on material from the Free On-line Dictionary of Computing, which is under the GFDL".

Wikimedia Foundation. 2010.

Нужно сделать НИР?

Look at other dictionaries:

  • RCA 1802 — RCA CDP 1802. RCA (CDP) 1802 (также известен как RCA COSMAC, COSMAC 1802)  8 разрядный микропроцессор, представленный компанией Radio Corporation of America (RCA) весной 1976 года. В настоящее время пр …   Википедия

  • RCA Studio II — Производитель RCA …   Википедия

  • RCA CDP1861 — электронный компонент, микросхема видеоконтроллера, выпущенная компанией Radio Corporation of America (RCA) в середине 1970 х годов. Входила в набор микросхем поддержки микропроцессора RCA 1802 и использовалась в системах, построенных на его… …   Википедия

  • RCA Studio II — TOC The RCA Studio II is a videogame console made by RCA that debuted in January 1977. The graphics of Studio II games were black and white and resembled those of earlier Pong consoles and their clones. The Studio II also did not have joysticks… …   Wikipedia

  • RCA (CDP) 1802 — …   Википедия

  • Comx-35 — Type Home computer Release date 1983 Operating system COMX BASIC V1.0 CPU …   Wikipedia

  • Microprocessor — Intel 4004, the first general purpose, commercial microprocessor A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single integrated circuit,[1] (IC) or at most a few integrated circuits …   Wikipedia

  • RCA1802 — CPU RCA1802. Der RCA 1802[1] ist 1974 als erster CMOS Mikroprozessor auf den Markt gekommen. Er kann mit einer Betriebsspannung von bis zu 10 V und einer Taktfrequenz von maximal 6,4 MHz betrieben werden. Bei niedrigen Spannungen entsprechend… …   Deutsch Wikipedia

  • COSMAC ELF — The COSMAC ELF was an RCA 1802 microprocessor based computer based on a series of construction articles in Popular Electronics magazine in 1976 and 1977. Through the back pages of electronics magazines, both Netronics and Quest Electronics… …   Wikipedia

  • Programme Viking — Pour les articles homonymes, voir Viking (homonymie). Décollage de Viking 1 à bord d une fusée Titan Centaur. Le programme Viking était composé de deux missions di …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”