Setup my Intel 4004 system

A couple years ago I get a white ceramic gold pinned Intel 4004 processor. I was so happy to have it and I put it in a very nice box. Later I ask myself: “Could it work”. Or a better question: “Could I bring this 4004 processor  to live”.

2 Years ago a read the blog from Frank Buss and this was my start to build around and program the Intel 4004 processor. Frank Buss use a Pic-processor to clock the 4004 and also hold the ROM image with the program for the 4004 processor. I have make some project’s with the Propellerchip from Parallax and decide to use this chip as clock and also as ROM, but the ROM-image for the 4004 I store on a SD-cart. So when I want to change a program for the 4004 I need to change the file on the SD-cart. On a vero bord I build a system for the 4004. I use a couple 16-pin’s ZIF-socket for the 4001, 4002 and 4004.

2016_1005_b

There are 3 powersupply’s, the first is a 15 Volt for the MCS-4 chipset and the second is a 3.3 Volt for the Propellerchip. There are some glue-chip’s to convert the 15 Volt from the MCS-3 chipset to the 3.3 Volt of the Propellerchip. And at the left under side there is the SD-cart in it’s holder.

The Intel 4004 processor is a 4 bit processor with a 4-bit multiplexed adres bus. An 4001 ROM contain’s 256 byte memory and 4-bit’s I/O. You could connect 16 ROM’s to the system wich give’s you a 4K memory.  A 4002 RAM hold’s 4 bank’s of 20 4-bit’s memory’s and 4-bit output. And there is a 4003 serial in, paralel output chip. This 4 chip’s are called together the MCS-4 chipset.

I decide to use only the originel MCS-4 chip’s added with the propellerchip with act as ROM for the 4004-program. The I/O from the 4004 to the real world I want to do with the 4001 and 4002.  This bring’s me to a big problem. The normal around these time’s of the 4004 you send your papertape with the program for the ROM to Intel and the make them. Include the metal-mask setting’s for the I/O. You must to specify the pin’s for Input or Output. When I want to use a real ROM as input of my system I need a 4001 which have NOT the internal numer of zero (because the system start on ROM page-0 witch is the propellerchip) but the I/O pin’s set to Input. So I search on the internet for 4001-ROM chip’s. I buy 10 of them and first I read the internal page-number. 6 of the 10 have the number-zero so the are useless for me. The other 4001-ROM’s I tested to write to and read from the I/O and at least 1 4001-ROM have 4 Input’s.

So I have a 4004 microprocessor, a good 4001 ROM with 4 Input pin’s and a 4002 RAM with 4 Output pin’s. With this I could build a system to control a robot.

 

 

 

Author: avretro

I am a member of some section's of a computerclub in Holland, called the Hobby Computer Club or HCC. That section's are the Retro-, AI- and Robotica-section. Writing in Englische is not very easy for me, so don't blame me for it.

7 thoughts on “Setup my Intel 4004 system”

  1. Hi, Great project !
    I am working on a 4004 project to make it run
    Can you tell us more about how you made the ROM emulator with a Propeller chip ?
    Why do you still need a 4001 chip ?

    Like

    1. Hello Tphil. We use the Propellerchip to read the binairy file with hex from an SD-kart into the RAM of the Propellerchip. Then the Propeller chip act as Clock to the i4004. The i4004 “ask” in 3 clock-stage for an value of a 12 bit adres. The Propeller give this “back” in 2 clock stage and the i4004 processed this in 2 clock-stage and “ask” for the next byte. I use a couple level-converters to adapt the 3.3 Volt on the Propeller chip to the 15 Volt of the i4004.
      I use a 4001 because i want to read a switch and some sensor’s, and only on a 4001 you could have input’s. In the past, when you order a 4001 by Intel with your own program in it, you must give the information to Intel with I/O must be an input or output and they made it by metal mask. So I must buyed 20 i4001 IC’s before i have found an 4001 with was NOT internal number-0 and have 4 input’s. The most 4001 have internal numer-0. On the 4002 you have only 4 input’s.

      Like

  2. Thank you for your answer. You went the purist way, with a real bare metal 4001 chip !
    I found 3 other 4004 revival projects and none of them used a real 4001.

    I understand the I/O pins issue, but why you cannot use a 4001 chip with internal number zero ? is it not possible to emulate the response to any internal nb from the Propellerchip ?
    Would you publish your schematics and code ?

    Like

    1. Ah, I understand for the chip#=0 from your post, if the 4001 has chip#0 there is a conflict with the ROM emulator when the CPU is booting.
      The two phase clock generation may be tricky by software.
      Would you publish your schematics and code ?

      Like

  3. Hi AvRetro
    It is great to see another I4004 project. I’m also working on one myself. I like the idea of using one of these new ARM chips to be clock and ROM. I’m doing a slightly different project, see:
    https://github.com/prog4004/I4004-projects
    I have a working SIM4-01 but recently I’ve started on a project to recover some old software to a working machine. It was originally a project by one of Dr. Kildall’s students. It is what is called a maneuver board. It is a little larger a project than your setup can handle without some modifications. It uses 9 4002s and close to 4K of code. Still, if you modified your interface to the uP to be the RAM as well as ROM you could then run a real application on your machine.
    I have tools written in Forth ( maybe a chance for you to learn Forth ). I have a simulator, assembler and disassembler. I’ve also written debug operations to instrument the Maneuver Board I/O to the assembler. I’ve used it to debug the translation of the original code.
    If you get a copy of win32forth you can play with the stuff I have an write code to do interesting things.
    Dwight

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s