|Jack Ganssle's Blog
This is Jack's outlet for thoughts about designing and programming embedded systems. It's a complement to my bi-weekly newsletter The Embedded Muse. Contact me at firstname.lastname@example.org. I'm an old-timer engineer who still finds the field endlessly fascinating (bio).
|For novel ideas about building embedded systems (both hardware and firmware), join the 40,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
My GP-8E Computer
June 22, 2020
In a recent blog post Jacob Beningo reminisced about a project he built as a teenager. It reminded me about some of my early flirtations with digital circuits.
In Embedded Muse 400 I cited a quote by DEC's Ken Olsen that he felt, in 1977, that no one would want a computer in their home. That, of course, wasn't true, and many of us were busy building machines for personal use at that time. But as a confirmed nerd I wanted one long before that.
In 1969 I learned Fortran and started programming, at first on a time-shared Honeywell machine at a friend's high school. They had an ASR-33 teletype. For $4/hour we could connect to the remote machine and run our code. I was making $1.60/hour at the time, so that $4 was precious. We'd type up our programs off-line (for free) and punch a paper tape before connecting to the mainframe. It seemed logical that building a computer would save a lot of money.
But I only knew Fortran and had no idea that machine language existed, so designed a succession of machines that spoke a degraded Fortran as their native instruction sets. Though I built circuit boards for some of these ridiculous designs, none were ever completed. And none could have worked. Most used RTL logic as that's what we used at work.
In 1971 I started college and gained access to the 1108 Univac there. A friend turned me on to the wonderful world of assembly language, and suddenly the design of a computer that worked became apparent. I remember writing code but having no idea how to print results, later learning that one did system calls to access printers and mass storage devices.
Now a personal computer seemed possible.
Each of my previous failed attempts had a name: GP-number, GP being for "general purpose." The latest machine was the GP-8E. A 16 bit CPU would have been perfect, but would cost too much. Eight bits seemed primitive so the machine used a 12-bit word. Learning assembly taught me about instruction pointers, registers, and the like, and the GP-8E was a pretty conventional design. Though I wrote a manual that included the instruction set, that disappeared decades ago, and my memory is vague about some of the details.
It used TTL logic, several hundred 74xx-series ICs. The ALU used three 74181 4-bit math units that could add, subtract, and do a handful of other, mostly less useful, functions. Assembled on multiple vectorboards each chip was socketed and interconnected with, ah, "liberated" Bell Telephone wire. Somehow (I don't remember how) I snagged some Intel 1101 256 bit SRAM chips, and wired 36 of these to get 768 12-bit words of memory. Later a pair of 1702 EPROMs were added, which contained a boot loader.
One of my teachers in the EE department, Professor Ligomenides, had become a friend and I showed him some of the work in progress on the GP-8E. He gave me three free credits every semester for doing this as long as I came in once a week and chatted with him about it. He was brilliantly inspirational.
The machine was fully static. For a clock source I used a Heathkit audio oscillator. Debugging the hardware meant cranking the oscillator to 1 Hz or less; a voltmeter could probe nodes instead of an oscilloscope.
It took about a year to build the thing and make it work. But it did work. The machine became unstable at clock rates higher than a few tens of KHz, no doubt to all of that wire interconnecting the chips.
For $50 I bought a WWII-era model 15 teletype. This was a monstrous beast with a huge motor that made my room shake. It was a weather machine: some of the special characters were weather symbols. And the model 15 didn't speak ASCII. It used BAUDOT, a five-bit code. That permits only 32 characters, so it supported shift-in and shift-up codes which toggled the five bits from letters to numbers and symbols.
I wrote a bit-banging interface to the teletype. This was code that toggled a GPIO bit at the right rate to transmit characters, and more that read the incoming serial stream. The monitor in EPROM read a boot loader from the teletype's tape reader; that loader would then bring in useful programs from the same reader.
Old timers remember the minicomputers that were so ubiquitous in the 60s and 70s. The GP-8E looked like those. The front panel had rows of switches for toggling in code and LEDs to display registers.
As noted, the machine did eventually work but never did any useful work. I had planned to write an assembler but never finished it. For at this time Intel's 8008 had appeared. Where I worked part-time as an electronics technician they adopted that CPU but no one knew any programming. I was appointed as the digital department and had so much fun learning about this marvelous new world of microprocessors I lost interest in the GP-8E.
Pretty soon I moved into a VW microbus to save money to buy a sailboat, and that computer wound up in a dumpster. I wished I had saved the schematics and user manual.
Five decades later we all have PCs. I have no interest in them other than as useful tools. But the world of deep hardware and software diving is as fascinating as ever.
Feel free to email me with comments.
Back to Jack's blog index page.
If you'd like to post a comment without logging in, click in the "Name" box under "Or sign up with Disqus" and click on "I'd rather post as a guest."
Recent blog postings:
- A Canticle for Leibowitz - One of my favorite books.
- A 72123 beats per minute heart rate - Is it possible?
- Networking Did Not Start With The IoT! - Despite what the marketing folks claim
- In-Circuit Emulators - Does anyone remember ICEs?
- My GP-8E Computer - About my first (working!) computer
- Humility - On The Death of Expertise and what this means for engineering
- On Checklists - Relying on memory is a fool's errand. Effective people use checklists.
- Why Does Software Cost So Much? - An exploration of this nagging question.
- Is the Future All Linux and Raspberry Pi? - Will we stop slinging bits and diddling registers?
- Will Coronavirus Spell the End of Open Offices - How can we continue to work in these sorts of conditions?
- Problems in Ramping Up Ventilator Production - It's not as easy as some think.
- Lessons from a Failure - what we can learn when a car wash goes wrong.
- Life in the Time of Coronavirus - how are you faring?
- Superintelligence - A review of Nick Bostrom's book on AI.
- A Lack of Forethought - Y2K redux
- How Projects Get Out of Control - Think requirements churn is only for software?
- 2019's Most Important Lesson. The 737 Max disasters should teach us one lesson.
- On Retiring - It's not quite that time, but slowing down makes sense. For me.
- On Discipline - The one thing I think many teams need...
- Data Seems to Have No Value - At least, that's the way people treat it.
- Apollo 11 and Navigation - In 1969 the astronauts used a sextant. Some of us still do.
- Definitions Part 2 - More fun definitions of embedded systems terms.
- Definitions - A list of (funny) definitions of embedded systems terms.
- On Meta-Politics - Where has thoughtful discourse gone?
- Millennials and Tools - It seems that many millennials are unable to fix anything.
- Crappy Tech Journalism - The trade press is suffering from so much cost-cutting that it does a poor job of educating engineers.
- Tech and Us - I worry that our technology is more than our human nature can manage.
- On Cataracts - Cataract surgery isn't as awful as it sounds.
- Can AI Replace Firmware - A thought: instead of writing code, is the future training AIs?
- Customer non-Support - How to tick off your customers in one easy lesson.
- Learn to Code in 3 Weeks! - Firmware is not simply about coding.
- We Shoot For The Moon - a new and interesting book about the Apollo moon program.
- On Expert Witness Work - Expert work is fascinating but can be quite the hassle.
- Married To The Team - Working in a team is a lot like marriage.
- Will We Ever Get Quantum Computers - Despite the hype, some feel quantum computing may never be practical.
- Apollo 11, The Movie - A review of a great new movie.
- Goto Considered Necessary - Edsger Dijkstra recants on his seminal paper
- GPS Will Fail - In April GPS will have its own Y2K problem. Unbelievable.
- LIDAR in Cars - Really? - Maybe there are better ideas.
- Why Did You Become an Engineer? - This is the best career ever.
- Software Process Improvement for Firmware - What goes on in an SPI audit?
- 50 Years of Ham Radio - 2019 marks 50 years of ham radio for me.
- Medical Device Lawsuits - They're on the rise, and firmware is part of the problem.
- A retrospective on 2018 - My marketing data for 2018, including web traffic and TEM information.
- Remembering Circuit Theory - Electronics is fun, and reviewing a textbook is pretty interesting.
- R vs D - Too many of us conflate research and development
- Engineer or Scientist? - Which are you? John Q. Public has a hard time telling the difference.
- A New, Low-Tech, Use for Computers - I never would have imagined this use for computers.
- NASA's Lost Software Engineering Lessons - Lessons learned, lessons lost.
- The Cost of Firmware - A Scary Story! - A hallowean story to terrify.
- A Review of First Man, the Movie - The book was great. The movie? Nope.
- A Review of The Overstory - One of the most remarkable novels I've read in a long time.
- What I Learned About Successful Consulting - Lessons learned about successful consulting.
- Low Power Mischief - Ultra-low power systems are trickier to design than most realize.
- Thoughts on Firmware Seminars - Better Firmware Faster resonates with a lot of people.
- On Evil - The Internet has brought the worst out in many.
- My Toothbrush has Modes - What! A lousy toothbrush has a UI?
- Review of SUNBURST and LUMINARY: An Apollo Memoir - A good book about the LM's code.
- Fun With Transmission Lines - Generating a step with no electronics.
- On N-Version Programming - Can we improve reliability through redundancy? Maybe not.
- On USB v. Bench Scopes - USB scopes are nice, but I'll stick with bench models.