1802 RCA COSMAC ELF CDP1802

Wichit Sirichote 1802 Microprocessor

The 1802 Tester

2020-12-10 I have been selling 1802 CPU on my web store from the beginning and occasionally on eBay. One of the advantages I've had has been that I can know with confidence if the CPU is working before I sell one. I test every CPU sold before it leaves here. This is how I do that.

1802-Tester-PCB-03.png

I am the lucky owner of an 1802 CPU Tester. It is designed and manufactured by Molnar Kalman in Hungary.

You can get them here at CPUShack. RCA 1802 CPU Tester You can get the PDF manual at this link RCA1802_testboard_manual.pdf

You can get the schematic RCA_CDP180x_tester-v1_0_sch.pdf You can find Molnar's email address in the PDF manual.

When I purchased mine a few years ago I purchased on eBay. They are selling for $US 90 there using paypal. I highly recommend these 1802 CPU Tester, I have been using it for several years.

I mounted mine with brass standoffs onto a small piece of acrylic with rubber bumpers mounted on the bottom. You should mount it on something you can drag around your work bench safely with power on.

If you are looking to purchase some 1802 CPU, please purchase CDP1802ACE Harris 1802 CPU H9640 NEW TESTED at Hardware for Hackers.

Overview
The CDP1802 test board is intended to test the working condition of RCA CDP1802 COSMAC and compatible CPUs.
The board consists of the base components of RCA CDP1802 test system:

  • 40-pin ZIF socket – for CDP1802 CPU – provides easy replacement of the CPUs.
  • 2.4MHz crystal oscillator connected to CPU for generating system clock.
  • Address latch for bits A15-A8 of address BUS

A 2716 2KB EPROM holds the test program. This program supports 4 push buttons as inputs, and 8 LEDs, as output devices. It also provides basic and special feature test routines.
The board requires a single +5V power supply (200mA) provided through a mini-USB connector.
There is a power switch and power indicator LED in the upper left corner of the test board.
Address, data, system control and power lines are attached to the three 16-pin expansion headers, so that the board may be used for other projects.

1802-Tester-PCB-02.png
  1. Mini-USB 5V power supply connector: The board consumes around 200mA current so a computer USB connector or cell phone charger that can provide at least 300mA may be used as power source.
  2. Switch: Power supply can be turned on and off by the sliding switch at the bottom right corner.
  3. Green LED: next to the power switch, indicates the power level of 5V.
  4. Reset Button: The board contains a Power-Up reset circuit, but can be reset manually by pressing Reset button.
  5. 40-pin ZIF socket: for the CDP1802 CPU. Ensure proper CPU orientation!!! The pin-1 is at upper-right corner, next to the release lever of the socket.
  6. Red LED: Labeled Q, indicates the status of the CPU output Q.
  7. Eight output LEDs: – Show simple animations, flashes – indicate that the CPU is working.
  8. Four push buttons: Used for testing inputs and changing animation sequences.

Usage
Before changing the CPU in the ZIF socket, make sure the power is off. All power indicator LEDs should be off!
Place the CPU into the socket (socket lever should be in the UP position). Ensure proper orientation to prevent damage to the test board and CPU! Pin 1 must be at the upper-right corner, next to the release lever of the ZIF socket. Then lock the socket by moving the lever down into the lock position.
Connect the power through the USB connector and switch the power switch to ON.
The power indicator LED should be illuminated.
If the CPU is in working condition the 8 output LEDs should be flashing (1s on/1s off pattern).
At this point the CPU can be considered WORKING. Congrats!

Base Function Test
When you press any of the four push buttons (SW1 – 4) the output LEDs copy the state of the buttons, duplicated in the low and high nibbles.
Press and Releasing the buttons causes one of the four different animation sequences to start, corresponding to the button released last.
During the animations selected by SW2 or SW3 the Q LED blinks periodically.
These test routines use the base instructions and features of CDP1802 CPU.

Special Feature Test
These test routines check if the inserted CPU can execute the enhanced instructions of CDP1804, 1805 and 1806 CPUs, then check the timer function and the internal RAM.
To activate the special feature test SW1 and SW4 should be pressed together and held for 3 seconds.
First the enhanced instruction capability is tested and the result shown on LED D1& D2.
Then the timer functionality is tested. It takes about 1s and the Q LED blinks rapidly during the test. The result is displayed on LED D3 & D7.
Finally the internal RAM of CDP1805 is tested. The result is shown on LED D4 & D8.

  • D1 – CPU type 1802
  • D2 – CPU type 1804, 1805 or 1806
  • D3 – Timer OK
  • D4 – RAM OK
  • D7 – Timer failure
  • D8 – RAM failure


2019-02-19 I finally received the board and I am very happy! It is so much easier to work with than the Membership Card. You can learn a lot more about the CDP1802 Microprocessor Kit from Wichit Sirichote.

2019-02-19-CDP1802-02-crop.png

blinkQ.asm

R1      EQU     1
start   ORG     8000H
        REQ
L0:     LDI     10H
        PHI     R1
L1:     DEC     R1
        GHI     R1
        BNZ     L1
        BQ      start
        SEQ
        BR      L0
        END

blinkQ.list
   0001                 R1      EQU     1
   8000                 start   ORG     8000H
   8000   7a                    REQ
   8001   f8 10         L0:     LDI     10H
   8003   b1                    PHI     R1
   8004   21            L1:     DEC     R1
   8005   91                    GHI     R1
   8006   3a 04                 BNZ     L1
   8008   31 00                 BQ      start
   800a   7b                    SEQ
   800b   30 01                 BR      L0
   800d                         END

8001  L0            8004  L1            0001  R1            8000  start

blinkQ.hex
:0D8000007AF810B121913A0431007B300173
:00800D0172

You can get a18 from Herb Johnson version of a18 It compiles fine on Ubuntu 18.02.

gcc -I. -o a18 a18.c a18util.c a18eval.c
len@spectral:~/Cosmac_Elf/a18$ ./a18 blinkQ.asm -l blinkQ.list -o blinkQ.hex
1802/1805A Cross-Assembler (Portable) Ver 2.5+
Copyright (c) 1985 William C. Colley, III
fixes for LCC/Windows by HRJ Aug 2010

No Errors
len@spectral:~/Cosmac_Elf/a18$

The best way to load programs is to use the LOAD key, which accepts input from the serial terminal.
You will need to set a character delay. I normally use Linux, so it's minicom, which is easy you enter the terminal settings menu and add (example) 4ms delay.
That was enough to solve my problems, your situation may be different depending on uart, cables, etc.

minicom-terminal-settings.jpg

Once you've set the right character delay within your terminal program paste the hex code into the terminal.

1802-load.jpg

If the paste worked you will see "0 error…" but this is a misnomer as well because I've had it drop hex characters with "0 errors" but loaded garbled code. If you use a character delay you will be fine, however.