Image Map Image Map
Page 1 of 3 123 LastLast
Results 1 to 10 of 22

Thread: Interest in I4004

  1. #1

    Default Interest in I4004

    I'm posting this to maybe stir up some interest in the I4004. This is some code I wrote for my MCS-4 setup. It is complete with the SIM4-01 and MP7 1702A programmer. Normally I use it to read and/or program 1702As. I wrote this program to speed up the programming of multiple EPROMs. Because the normal code that is used with this setup is normally fed from a paper tape at 110 baud and in BNPF format, it takes 7 minutes to program a 1702A. The data sheet says you can program a 1702A in 2 minutes. The extra 5 minutes is used to down load the data at 110 baud. When programming multiple EPROMs with the same code, it would be great to copy them and do it in the 2 minutes.
    This is 4004 code to do just that. It is not in standard Intel format but if you know 4004 code, I'm sure you can figure it out. It is an assembler I wrote for the 4004. I is a single pass assembler so forward references are a little different. Other than that and the fact that the instruction in in RPN, it should still be readable.
    The file is a Forth source but I've changed the extension to .txt from .f so that it can be posted here ( also easier to view ).
    If you have a I4004 program that you've written, either for a 4004 machine you have or one of the simulators, you might post it here. That is the intend of my posting it here.
    Even if your not going to post a 4004 program you might have fun trying to understand the peculiar 4004 instructions. Bitsavers has a number of resources to look at for the 4004 instruction set.
    Dwight

    ONECOPY.txt

  2. #2

  3. #3
    Join Date
    Jun 2014
    Location
    Salt Lake City, Utah
    Posts
    509
    Blog Entries
    1

    Default

    Hi Dwight,

    What is your MSC-4 setup? and Intellect 4?

    At some point I'd like to put together something with my box of 4004 family chips. At the 4004.com site I see a reference to a single board 4004 trainer. Except for the 4003's I have pretty much everything. (http://www.4004.com/busicom-replica.html) It would be cool to have something running.

    len
    Spread the joy of Vintage Addiction

    -->www.chronworks.com/<--->www.i8008.net/<--

  4. #4

    Default

    Quote Originally Posted by 8008guy View Post
    Hi Dwight,

    What is your MSC-4 setup? and Intellect 4?

    At some point I'd like to put together something with my box of 4004 family chips. At the 4004.com site I see a reference to a single board 4004 trainer. Except for the 4003's I have pretty much everything. (http://www.4004.com/busicom-replica.html) It would be cool to have something running.

    len
    This is a picture of my machine. It was taken a number of years ago at Stan Seeler's (sp?). There are LEDs for most every thing. There is a serial connector. The board in front emulates a 4001 ports, both input and/or output.There are two 4002-1 and two 4002-2. It was intended to be used to breadboard an application. The board in back programs 1702 and 1702A chips, with the firmware you see in the picture ( 1702s require the third IC to have different code, mostly different delays ). The code I wrote runs in the first socket to the left ( doesn't need the other two but no need to remove them ). 4 of the LEDs are used to keep track of what operation, Master, EPROM, Master EPROM when doing the copy.
    Dwight

    4004sm.jpg

  5. #5

    Default

    Quote Originally Posted by jim121049 View Post
    There are a couple of applications that is in the archives of the NPG school in Monterey,Ca. It is used to calculate the maximum weight your helicopter can take off with. It would most likely run on your machine with some modification to the I/O.
    There is also an other that is a calculator for closest point of approach. This would be used for ships. You'd enter the vector and range of other ships. I think it can handle 5 ships This is important, not only to avoid hitting them but also, knowing when a possible target would be in range. I suspect you'd need to increase your ROM space to do that one.
    Both are PDFs of printout done on a ASR33 with poor registration, meaning 0 sometimes look like C. It would be great to get either working as these are real world applications.
    I've been meaning to put together a 4040 setup using a 4289 ( think that's right ) and a number of 4265's. These only work right with the 4040 but they are really flexible I/O chips.
    I have the two PDFs someplace if anyone is interested.
    Dwight

  6. #6
    Join Date
    Jun 2014
    Location
    Salt Lake City, Utah
    Posts
    509
    Blog Entries
    1

    Default

    Quote Originally Posted by jim121049 View Post
    Jim,

    That is cool and helpful, did you write any applications for your board?

    len
    Spread the joy of Vintage Addiction

    -->www.chronworks.com/<--->www.i8008.net/<--

  7. #7
    Join Date
    Jun 2014
    Location
    Salt Lake City, Utah
    Posts
    509
    Blog Entries
    1

    Default

    Quote Originally Posted by Dwight Elvey View Post
    I've been meaning to put together a 4040 setup using a 4289 ( think that's right ) and a number of 4265's. These only work right with the 4040 but they are really flexible I/O chips.
    I have the two PDFs someplace if anyone is interested.
    Dwight
    Yes, please post the pdfs!

    len
    Spread the joy of Vintage Addiction

    -->www.chronworks.com/<--->www.i8008.net/<--

  8. #8
    Join Date
    Jun 2014
    Location
    Salt Lake City, Utah
    Posts
    509
    Blog Entries
    1

    Default

    Quote Originally Posted by Dwight Elvey View Post
    This is a picture of my machine. It was taken a number of years ago at Stan Seeler's (sp?). There are LEDs for most every thing. There is a serial connector. The board in front emulates a 4001 ports, both input and/or output.There are two 4002-1 and two 4002-2. It was intended to be used to breadboard an application. The board in back programs 1702 and 1702A chips, with the firmware you see in the picture ( 1702s require the third IC to have different code, mostly different delays ). The code I wrote runs in the first socket to the left ( doesn't need the other two but no need to remove them ). 4 of the LEDs are used to keep track of what operation, Master, EPROM, Master EPROM when doing the copy.
    Dwight

    4004sm.jpg
    Did you design/build that, or was it commercially made? Do you have a larger image?

    Thanks

    len
    Spread the joy of Vintage Addiction

    -->www.chronworks.com/<--->www.i8008.net/<--

  9. #9

    Default

    This was an Intel product before the MOD4. They gave many of these away to various companies with hopes that they'd create products. I suspect they eventually charged for these but all the stories of these indicate that they were handed out free. I got this one 3rd or 4th hand. The entire unit is described in the MCS-4 manual found on bitsavers.
    It came with the code described as A0540/1/3 that is the code to run the MP7 board to program 1702As. The code for A0542 is combined with A0541 and A0542 to be for 1702 (non-A). These require shorter pulses and more delay between pulse. Programming time for the 1702 is 20 minutes while the 1702A is 2 minute.
    There is one other piece of code mentioned in the manual, it is the A0740/1/2/3 PROM set. I've been look for this set for a number of years. A friend in Norway finally located a set but I'm afraid the A0743 EPROM has serious bit rot. The other three look to be in good shape. This code is said to be an assembler for the 4004. I've been running what I can on my simulator but without the last EPROM it doesn't get to far. From what I was told by people that worked at Intel at the time, the code was written by Tom Pittman, of Tiny Basic fame. He'd done this in exchange for the setup, like I have. It seems he wrote a mail program that he use for the "Home Brew Computer Club". I've contacted Tom but he says most all of that stuff is lost over the years.
    I've not given up on the A0743 EPROM, I'm making a setup that can vary the voltage and threshold to read these. It should be able to pull and residual values out of the EPROMs. Hopefully I can get that little bit of charge to read out.
    On the PDF's This was code written by students of Gary Kildall, while he was teaching at the NPS.
    One coding, I've found that has another useful instruction. It is the SKIP instruction. It is most useful for causing the execution of with multiple values into a subroutine. It is a JCN instruction that has no condition. Instead of the address, you have a LDM instruction ( or similar ). Say you had a PRINT subroutine, you could precede it with multiple of these skips. Something like
    LINEFEED SKIP
    LDM $0A
    RETURN SKIP
    LDM $0D
    PRINT ......
    This code doesn't make much sense since it is only 4 bit and not 8 but you get the idea.

    You'd need to add this instruction to your assembler or do it as a DB.
    I was decoding some code on a board the fellow in Norway found and it had a few locations with these SKIPs in it. It didn't make sense at first because it was a JCN without any condition to check. Then I realized it was a clever trick to have a repeated parameter to a subroutine. If you used that parameter more than once it made sense to have the multiple skips at the beginning. It had one subroutine with 5 of these in a row. It is an Always Don't Jump instruction.
    The code looked like some key pad entry code ( a typical application for the 4004 ).
    I'll dig that code up if interested.
    Dwight
    Last edited by Dwight Elvey; March 7th, 2018 at 06:32 AM.

  10. #10

    Default

    On the SKIP instruction, how it works, from the manual

    JUMP IF
    !C1 * ( (ACC==0) * C2 ) * ( (CY==1) * C3 ) * ( !TEST * C4 ) |
    C1 * ( (ACC<>0) | !C2 ) * ( (CY==0) | !C3 ) * ( TEST | !C4 )
    ENDIF

    If C1 is 0 the bottom terms are always 0.
    If C2, C3, C4 = 0 then the top term is also 0.
    so, the instruction bits 00010000 is a SKIP. It will skip over any 8 bit instruction.

    Note my edit!!! Typing too fast without thinking.

    A better example:

    Code:
    USE0    LDM 0
            SKIP
    USE1    LDM 1
            SKIP
    USE2    LDM 2
             ......   some code to use ACC
    Dwight
    Last edited by Dwight Elvey; March 9th, 2018 at 09:37 AM.

Bookmarks

Posting Permissions

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