Image Map Image Map
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 22

Thread: Interest in I4004

  1. #11


    These are the 2 applications that were from Kildall's students. There may have been others but these were the two that I found.

    Rather than posting two large pdfs, I don't own, here are two search strings that
    will get you the files. Use Google and look for the pdf from Calhoun.

    maneuvering board problem kerns calhoun

    helicopter flight system microprocessor eloe


  2. #12
    Join Date
    Jun 2014
    Salt Lake City, Utah
    Blog Entries


    Thanks guys! The his inspires me to work the 4004 into my project queue this year.

    Spread the joy of Vintage Addiction


  3. #13


    I just went back and made another edit to my SKIP post I forgot a 0.
    0001 0000 is a SKIP or for 3 letters SKP
    0001 1111 is a short Jump on page. You night call it a JPG. It is not vary useful as a JUN takes the same number of bits.

    Another case for skip
    FF2P  LDM $F    ; Write all 1's to port
    Z2P   LDM $0   ; write all 0's to port
    A2P   SKIP        ; write ACC to port
    Z2P   LDM $0   ; write all 0's to port
    Last edited by Dwight Elvey; March 9th, 2018 at 10:14 AM.

  4. #14


    Hi All
    I thought I'd post an update on a project I started working on. I have been off and on transcribing the listing for the Maneuvering Board program, written by one of Gary Kildall's students. I got more serious about 2 weeks ago and finished my transcribing.
    I've been debugging using my own simulator and have finally got the code working. At times, I had the feeling that maybe the listing didn't have totally working code. Unlike a current listing, there was no Hex assembled values, just line number and address in both octal and hex.
    I fought many 0s and Cs that looked much alike. Things like F and P were not as big a problem as they were only an issues for labels and not confused with different assembly code.
    Anyway, I got the last bug out of the code earlier to day. I expect to start working on a PCB.
    I'd been slow at getting things started until recently I found some 4002-2 parts that were relatively cheap. The project needs 4 each of the 4002-2 and 5 of the 4002-1. It has been a while since I've seen 4002-2s for less than $75 each. I just got the last part I need and that is a 4289 chip. I'm not planning on using 4001s as they are mask made and 1702As would still need an interface. I'll be using a 2732 as the code is less than 4K.
    I'll have a switch array. It needs 25 buttons ( of course part is 10 number keys ).
    It was a good thing that the original pdf had a couple of working examples. As I mentioned before, I expect to use other than the original displays but will leave it open for possible future to make a more complete setup with 16 LEDs for the display.
    I had to make enhancements to my simulator. I originally wrote it when working with my SIM4-01 setup. I wrote a 1702A copy program that I could use on the SIM-01. It normally takes 7 minutes to program a 1702A as 5 minutes to down load BPNF data. In now takes all of 2 minutes but does take a little attention as the SIM4-01 only has enough RAM for half of a 1702A.
    Any way I'll start my board design soon now that I have working code. It is fun in that on the I4004 it takes about 5 seconds to complete the calculations. On my simulator is responds back as soon as I hit the return. This includes all of the hooks I've got in my simulator for debug assistance.

  5. #15


    Definitely interested, this year FOR SURE I will build a 4004, probably as a wall-mounted clock. One of the PITA aspects of building a small one is the +5/-10V supplies, but I found a nice small DC-DC converter on eBay that can be powered by an orphan laptop power supply. I don't have any 4002-2's but I probably won't need any, I have the -1's; I have a tube of 4289's but I also have a 4008/4009 set (which is really a bit more period correct for the 4004). Hope they work!

  6. #16


    Having only -1's shouldn't be an issue. You'll just have a breaks in your memory map. As I recall, it goes through the two hardwired addresses first and then the -1/-2 steps. So if you only need 2 RAMs you'll have a continuous memory map.
    I was wondering about the I/O of the 4289. It looks like the strobes are 0 strobes for TTL what I'm not sure about is the I/O1 to I/O4. Are these outputs inverted from PMOS levels to TTL levels? The data sheets are not clear. I know that the 4001/4002 I/O signals are PMOS levels. I suspect these I/Os are as well.
    It does make a difference for the PCB I'm expecting to make.
    On my Maneuver board project, I've found some funny code in the display routine. I'd been taking the display directly from the RAM in my simulator to see what was being displayed. Now that I'm dealing with real hardware, I'm looking at the code driven display. It is a scanned output but I can't figure how the hardware worked. If I use it as is, on each call to the scan, it displays all 16 digits but shifts 4 digits for the first digit on each call to the display. I'm not sure that is intended. A minor change to the software makes it scan as I'd think it should. I can't figure how that was right.
    On the decimal point, it looks like it only powers it once in 16 times. I've seen this as a problem in other displays, the decimal point is too bright. I'm expecting to adjust the decimal points brightness with an additional resistor and use it for all scans. I suspect it is already push with the 16 digits to be divided by another 16 would seem to be making it close to visible flicker. A minor mod should fix that.

  7. #17


    OK, I went back and looked at my notes as I translated from the listing. In the listing it was FIM L1 "CC" but many of the letters were missing the right part so it could have been FIM L1 "00". The FIM sets a pair of registers in the 4004. L1 = 14 ( in the listing numbers without "" are decimal and numbers in "" are hex ). I'd assumed it was 00 but it just wasn't working right. I couldn't imagine how the original hardware worked like that. It was sending out nibbles without proper alignment. The register pair was L1 = 14 and L2 = 15. The name was L for loop counter. The 4004 has an instruction ISZ used for looping. The usage is increment-skip-if-not-zero-else-jump. After some thought, I realized that one of the values had to be C or in hex 10 - 4 = C. This is because the decimal point is in one of the status nibbles for only 4 digits and there are 4 nibbles used for 16 digits. It became clear that it had to be "CC" and not "00" as 4 x 4 = 16. Almost always in the listing "CC" turned out to be "00" but in this one case it was "CC". I'd thought I'd gotten all these bugs out of the code because I was displaying the value directly and not using the display scan routine.
    Now that I'm looking at putting in real hardware, I'm watching the values sent to the port and things were not making sense.

  8. #18


    Also if someone wanted to build this, there are different types of 7 segment displays, common anode and common cathode. Since the original author noted using a 7447, it would most likely have been common anode. The displays also come with the decimal point on the left or the right of the digit. When running a scan display one needs to associate it with the correct display digit. The original code expected it to be on the left of the digit. I bought displays with the decimal point on the right.
    The code on my github is for them on the left, as original. One can easily modify the source and reassemble or simply edit the binary. I have comments in the source or use the following to edit the binary:
    Addr, Left, Right
    1D8, D2, D1
    1E2, D2, D1
    1EC, D2, D1
    1F6, D8, D4


  9. #19


    This thread inspired me to attempt to build a 4004 and a 4040... I had the chips lying around. I might make "clocks" or I might make something similar to boards I made 20 years ago to demo the 8008 and 8080 with a short description of the chips.

    Much of the design was shamelessly stolen from jim121049's posting in this thread and link. For the power supply, I'm using a pretty nice +12 to +/- converter from China that is maybe 1.5x3". The 4004 is "done" and I believe it to work judging by the signals I see, but a UVEPROM eraser failure has stymied further hardware progress. i'm using AS(W) as an assembler and I got it working in Windows 10 but it just doesn't want to find include files. I can live with this.
    Attached Images Attached Images
    Last edited by Slob; February 9th, 2019 at 06:27 PM. Reason: Can't read or spell anymore

  10. #20
    Join Date
    Jun 2011
    Portsmouth, England


    In September 1977 a British magazine called Practical Electronics began a series of articles giving full constructional details of a 4004 development system called P.E Champ it ran for at least four issues.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts