COSMAC ELF (Membership Card)

I have to publicly Thank Mr. Lee Hart and Mr. Herb Johnson for all their kindness and advice and most of all their patience.

CDP 1802 Manual

cdp1802.pdf

Membership Card Rev. J Schematic

mem_revJ_sch.pdf

2018-06-21 I have always wanted to get one of these so recently I purchased it from Lee Hart. You can get them from his site at http://www.sunrise-ev.com/membershipcard.htm. I got the full kit with the cover card which was about $98. The day I got it I immediately began building, populating all of the resistors and capacitors. I should have made some images before I started and while I was adding components but I didn't seem to have the time.

2018-06-21-001-membrship.jpg

Today I started soldering the sockets onto the board (there are only two, the one for the 1802 CPU and the one for the RAM/ROM. So far the only difficult thing has been getting the 30-pin header (P1) properly installed. It would have been easier if I had a 30-pin female connector but I did not so I ended up with header pins askew and having to be physically re-aligned a few times.

2018-06-25 I am making progress. This was before I soldered all the front-panel stuff. I am stalled waiting for my 32-ram chip to arrive so I can have 64K ram installed. I ordered same from Mouser. 727-CY7C199D-10VXI CY7C199D-10VXI Cypress SRAM US HTS:8542320041 ECCN:EAR99 COO:CN

2018-06-25-003-membrship.jpg

The front panel is very cool. I also cut out some insulating paper to put under the bottom circuit board after it is installed into the Altoids tin. There is no way it won't short out unless you protect it. The paper is only temporary as I locate some plastic insulation sheets.

2018-06-25-002-membrship.jpg

**2018-07-10* I finally obtained the right DIP package and was able to install U8 (32K Static RAM) last night.. It still does not fit into the Altoids case well and protrudes a bit so I am going to work with it outside a case for now. I might find a way to mount it in some kind of acrylic design.

2018-07-06 I am still waiting for the CY7C199 (U8) I keep ordering the wrong DIP package. I checked most of the well-known electronics stores and they are all out of stock an marked obsolete. I found 5 of them on eBay and just ordered them yesterday.

2018-07-09 I finally got the right DIP package version of the CY7C199 and I soldered it in tonight.

2018-07-09-001-membrship.jpg

There is not much space here around U2 and U8.

2018-07-09-002-membrship.jpg

This is what it looks like and I understand that this DIP package format for U2 is quickly becoming unobtainium.

2018-07-09-003-membrship.jpg

Not much more left to do until I start testing. I hope I haven't made any mistakes. I am trying to locate a molex connector to power up the card safely.

2018-07-10 I ran across the schematic for Rev. J cards so here it is:

I am ready to power up the 1802 but discovered I had no molex connectors that fit so I am ordering a few from Mouser. The connector body is Molex part number 22-01-2061 and the pins are 08-55-0102.

I sacrificed some male-female jumpers and added one of those SparkFunm USB cards for power.

2018-07-11-01-membership.jpg

2018-07-15

I finally had a chance to work on the 1802 card today and I replaced J1 (all the headers removed and a new header installed.) This time I opted to leave the plastic strip attached and do not care about fitting it into an Altoids tin. I loaded a few test programs but need to write some custom code to test upper memory (65K)

2018-07-18 I finally got the Molex connector and pins needed for the P4 connector. The Mouser P/N for the plastic body is 538-22-01-2061 MFG P/N 22-01-2016. The Mouser P/N for the pin inserts is 538-08-55-0102 MFG P/N 08-55-0102.

I obtained the version of A18 from the GitHub repo maintained by the person who ported A18 to unix (Mark Sherman). I tried Herb Johnsons' version and it won't even come close to compiling with gcc on linux. See https://github.com/carangil/A18 I have a link to a zip file made from a pull on 2018-07-18. See A18-master.zip

Here is the sample output from test18.asm

:20010000000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1FEF
:20012000202122232425262728292A2B2C2D2E2F30003100320033003400350036003700AB
:20014000380039003A003B003C003D003E003F00404142434445464748494A4B4C4D4E4F4B
:20016000505152535455565758595A5B5C5D5E5F6061626364656667696A6B6C6D6E6F7087
:200180007172737475767778797A7B7C007D007E7F00808182838485868788898A8B8C8DFC
:2001A0008E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACAD8F
:2001C000AEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC00100C10100C20100C30100C4C5B7
:2001E000C6C7C80100C90100CA0100CB0100CCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDD57
:20020000DEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F800F900FA0022
:09022000FB00FC00FD00FEFF00E4
:200300006800680168026803680468056806680768086809680A680B680C680D6820010049
:20032000682101006822010068230100682401006825010068260100682701006828010051
:2003400068290100682A0100682B0100682C0100682D0100682E0100682F0100683E00687C
:200360003F006860686168626863686468656866686768686869686A686B686C686D686E1D
:20038000686F687468766877687C00687F006880010068810100688201006883010068848C
:2003A00001006885010068860100688701006888010068890100688A0100688B0100688CB1
:2003C0000100688D0100688E0100688F01006890689168926893689468956896689768985B
:2003E0006899689A689B689C689D689E689F68A068A168A268A368A468A568A668A768A875
:2004000068A968AA68AB68AC68AD68AE68AF68B068B168B268B368B468B568B668B768B854
:2004200068B968BA68BB68BC68BD68BE68BF68C0010068C1010068C2010068C3010068C4EA
:20044000010068C5010068C6010068C7010068C8010068C9010068CA010068CB010068CC10
:20046000010068CD010068CE010068CF010068F468F768FC0068FF00F801B2F800A2FF000C
:05048000010000FFFF78
:05048000010000FFFF78
:090495004558504C4F53494F4E9D
:00049E015D

2018-07-20

I have a couple sets of firmware (IDIOT) coming for my first two membership cards and also some BASIC firmware to try out. I need a few basic tools before I can actually use the system for what I want to do.

I want to initially use the system as a controller for hardware that I will either build or other devices I need to monitor.

I really like the low-power consumption of the system and I am beginning to like it's I/O design very straightforward.

I was able to design a way to create memory-mapped I/O too by adding an address decoder that sits on the address bus and carves out a chunk of memory for whatever expansion hardware you wanted that is controlled by for using something like the MCP23017. You would have to probably add another card below the cpu card with double-sided headers for J1 to stack another card. I have been thinking about doing that for some kind of stationary membership card in some kind of chassis so I could break out the address lines to start breadboarding some new I/O devices.

By just writing a value to a "memory location" that is decoded by a new output buffer circuit sitting on the third card that you just built and then the sky is the limit as you add further addresses to handle configuration registers and voila suddenly you have something really useful. It will have been created using assembler and solder.

2018-07-25

2018-07-25-01-membership.jpg

I created this little adapter board to provide power and a "run" jumper (instead of an "on" switch using pin 1 of the connector on the front panel card. I also connected the TTL TX/RX pins out to the prototype board but have so far been unable to get any serial communications working.

Fortunately Lee Hart is helping me figure out what is wrong. I am using the BASIC firmware he gave me and it should have worked.

I will keep working on that.

2018-07-25

I am building a second membership card. I finished the CPU card today. Here are some pictures I made while assembling the cpu board today.

2018-07-31

I finished the entire second system a few days ago — with the exception of installing Q3, Q4, Q7 which are supposed to be FJN4303 transistors. There was a mistake when the kit was sent with only FJV3303 transistors. There is supposed to be (3) FJN4303 and only (2) FJN3303. I am getting some FJN4303 transistors soon.

2018-07-29-01-membership.jpg
This is system #2

I attempted to use blue LEDs for D0-D7 but they burned out. I am looking into whether or not I can replace R11 with a higher resistance but it isn't a priority for me at the moment. I simply unsoldered the failed blue LEDs and installed the original red LEDs provided with the kit. I need to pay better attention to details. You know, things like forward voltages on diodes

2018-08-01

2018-08-01-02-membership.jpg
This is system #2 which really isn't finished yet I am waiting tor some FJN3303 transistors.

I made a couple of adapters to get access to the serial port on the system. I will also be attaching some sort of cable to get the I/O pins out to a breadboard. This is one of them attached to a straight-through DB-9 cable. The black serial cable is DB-9 M-F and the adapter cable I fabricated has a female DB-9 solder-cup connector and a DB-25 male solder-cup connector. Note the (now) red LEDs.

This is configured as a "null modem" as you can see TXD/RXD swapped.

Serial-Pins.jpg
DB9 DB25
PIN 2 - TXD PIN 20 - RXD
PIN 3 - RXD PIN 15 - TXD
PIN 5 - GND PIN 21 - GND

2018-08-02

I ran across this wonderful 30-page 1802 Instruction Set document at http://laurencescotford.co.uk/wp-content/uploads/2013/07/RCA1802-Instruction-Set.pdf the Laurence Scotford web site. There is also a local copy here in case that one ever disappears.

RCA1802-Instruction-Set.pdf

2018-08-03

2018-08-04-01-membership.jpg

I began work on the adapter i made earlier to also let me extend the outputs (O0-O7) to a breadboard. I am looking to install some jumper pins on the end of these lines. The pin-outs for my output lines O0-O7 are as follows.

DB-25 SIGNAL DB25 PIN COLOR
O0 25 Black
O1 24 Blue
O2 23 Red
O3 22 Blue/White
O4 13 Yellow
O5 12 Green
O6 10 Orane
O7 11 White

I soldered header pins to the ends of the raw wire so I can plug them into a breadboard. I can't wait to start trying to write code that can output logic levels to external prototype circuits. Even if it is just lighting some LED.

2018-08-30-01-membership.jpg
Here you see the cable with the soldered pins plugged into the breadboard.

2018-08-16

I finally had a chance to install the (3) missing FJN4304 transistors and my second membership card is working!

2018-08-16-01-membership.jpg
Here it is running the 'blink q' loop.