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(a)classiccmp.org>
Sent: Tuesday, November 21, 2023 1:03 AM
To: General Discussion: On-Topic and Off-Topic Posts <cctalk(a)classiccmp.org>
Cc: ED SHARPE <couryhouse(a)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(a)classiccmp.org>
wrote: someone should build it in minecrsft
On Mon, Nov 20, 2023 at 7:01 PM ben via cctalk <cctalk(a)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-400…
THE DIY VERSION