There is little surviving software for the 4004. There are a few places with 
snippets of code to do things like add or subtract several digits but my 
searches of the internet have shown little actual code. The NBS has some code 
to track satellites and correct for time delays from their clocks ( think GPS ).
I'd had a spare 4004 and always wanted to do something with it. I found that 
the library for work done at the Navy Post Graduate School in Monterey 
California had 2 projects that students of Gary Kildall created. One was a load 
calculator for helicopters and the other was for calculating closest point of 
approach for ships. I'd been unsuccessful at down loading the helicopter code 
but was able to down load the ships document.
I'd let the listing sit for 10's of years while always on the back burner. Over 
the years I'd acquired the needed parts. I did make a few substitutions, 
though. The original used 13 each 1702A EPROMs. Since that exceed my budget for 
a PC board space, I chose the option of using a 4289 and a 2732 EPROM. I did 
use the original designs number of 4002s, as using RAM through the 4289 would 
have made significant changes to the software.
The problem of the circuit needed to be dealt with. The document had a page 
labelled 'schematic' that turned out to be the keyboard layout and display 
layout( both of which I ignored and used my own layout that I though was better 
).
Before getting to the board design, I needed to get working software. The 
listing was done on a ASR33 with a deeply rutted platen, typical of 
hand-me-down things used by a school's command. Letters like R or P would look 
like F and 0 would look like C. Other letters were easy to figure out but still 
often had their right edge missing.
After entering the list by hand, I'd feed it into my assembler and the tried to 
run it with my simulator.
I'd make corrections as I got the code running.
I need to create the circuitry for the keyboard decoder, that took 25 buttons 
to the 4 bit data bus input of the 4004. There was enough description in the 
document to create the LED display but I did missed one thing ( that I'll 
mention later ).
I created the board with my typical incorrect wiring, requiring several extra 
cuts and jumpers. ( the concept was right but I got the pins of the 7402 mixed 
up.) The one thing that I'd missed was the order of the digit scan. I assumed 
left to right but the code was actually right to left. After so many cuts and 
jumpers to get the keyboard right, I dreaded more to fix the scan order so I 
made the one change to the original software to do right to left ( I still feel 
bad about that change ).
I thought I'd talk a little about how a Closest Point of Approach Calculation 
is done. Normally it had been done by a graphical method of line drawing on 
what is called a plotting maneuver board. One used graphical calculations for 
the trig used. It was all done by pencil and parallel. It is so important that, 
I believe, that to this day a ship's pilot still needs to be able to do this 
calculation on a maneuver board, even though such graphical displays are 
capable of doing such, today. Large ships require significant knowledge of 
where they are relative to other fixed and moving objects in order to determine 
the safest path to proceed. A broken display is not time to learn how to do 
such a calculation.
This 4004 calculator used a newly found way of doing tangent calculations, 
called the CORDIC method. One could clearly see the influence of Gary Kildall's 
hand in this code. It is noted that he wrote the division routine used and the 
organization of the code clearly shows the influence of a seasoned programmer. 
Bring such code back to life was almost as much as making a 4004 processor from 
discrete transistors but I felt was for me as part of my bucket list.
Things I needed to do, included writing an assembler, writing a simulator, 
learn a PC board CAD, transcribing a poor quality listing, debugging the poorly 
transcribed listing, creating the keyboard decoder and instrumenting my 
simulator to be the calculator.
Dwight


________________________________
From: ED SHARPE via cctalk <cctalk@classiccmp.org>
Sent: Tuesday, November 21, 2023 1:03 AM
To: General Discussion: On-Topic and Off-Topic Posts <cctalk@classiccmp.org>
Cc: ED SHARPE <couryho...@aol.com>
Subject: [cctalk] Re: Intel 4004

So what are the other contenders and what do they bring to table


Sent from AOL on Android

  On Mon, Nov 20, 2023 at 9:06 PM, Adrian Stoness via 
cctalk<cctalk@classiccmp.org> wrote:   someone should build it in minecrsft

On Mon, Nov 20, 2023 at 7:01 PM ben via cctalk <cctalk@classiccmp.org>
wrote:

> On 2023-11-20 5:36 p.m., Murray McCullough via cctalk wrote:
> > On Nov. 15, 1971 Intel commercially released the 4004 microprocessor
> which
> > some consider to be the first. Nonetheless, even if not in agreement, it
> > made possible the instrument which drives the classic-computing industry
> or
> > at the very least our hobby!
> >
> > Happy computing.
> >
> > Murray 🙂
>
>
> https://retrocomputingforum.com/t/swiss-physicist-builds-complete-intel-4004-computer-out-of-smd-transistors/3738
> THE DIY VERSION
>
>

Reply via email to