New PDP-8 emulator - and (maybe) more

510 views
Skip to first unread message

Romilly Cocking

unread,
Jun 1, 2018, 7:03:39 AM6/1/18
to PiDP-8
I've *nearly* finished a PDP8 emulator written in Python.

It's on GitHub: https://github.com/romilly/pdp8

I still need to implement auto-increment registers (trivial) and interrupts (easy to add, harder to test).

I'm planning to run this on a Pi zero using Oscar Vermeulen's PiDP-8 front apnel; I have yet to write the interface software, but I have done plenty of physical computing on the Pi before and I don't anticipate problems.

I have another PDP-8 project in mind, and I could use some advice.

I want to build a hardware version of the PDP-8/S using (largely) 74HC00 series ICs.  It would interface with a PiDP-8 front panel. The serial architecture of the S reduces the chip count, but it would still be quite a complex project.

Does this sound feasible, and might anyone else be interested in collaborating (or at least providing a sanity check as the project progresses)?

The last time I used 7400 series chips was in the 70s/80s, and I have never built any hardware that complex.
OTOH it looks as if Logisim would let me test and debug a design before committing to a PCB layout.

I'm currently proposing to use an FRAM chip as a substitute for core memory, which should mean that I don't need to toggle in the bootloader unless I want to :)

Oscar Vermeulen

unread,
Jun 1, 2018, 8:27:38 AM6/1/18
to Romilly Cocking, PiDP-8
Romilly,

On Fri, 1 Jun 2018 at 13:03, Romilly Cocking <romilly...@gmail.com> wrote:
I want to build a hardware version of the PDP-8/S using (largely) 74HC00 series ICs.  It would interface with a PiDP-8 front panel. The serial architecture of the S reduces the chip count, but it would still be quite a complex project.

Does this sound feasible, and might anyone else be interested in collaborating (or at least providing a sanity check as the project progresses)?

I'd be somewhat out of my depth, but if I can help in any way I'd be happy to.

I have a slight fascination with serial computers, made a replica of the LGP-30 once. (But a much better one is actually available as a kit from Jürgen Müller in Germany, http://www.e-basteln.de/lgp30/lgp30_intro.html)

I can also make a revised front panel for the 8/S.

I'm currently proposing to use an FRAM chip

That makes sense! I hope you'll do this.

Kind regards,

Oscar.

Neil Higgins

unread,
Jun 1, 2018, 8:33:44 AM6/1/18
to PiDP-8
This kind of thing has been done before: Oldies, especially Australians, may remember the EDUC-8 computer (https://en.m.wikipedia.org/wiki/EDUC-8), which was devised by Jim Rowe and published by “Electronics Australia” magazine. It was a PDP-8-like machine implemented in bit-serial fashion using 7400-series logic. It’s release co-incided with the availability of the first microprocessors, so unfortunatley not many were built. However there are adfficionados out there who still make EDUC-8s from time to time. So a full blown PDP-8 in bit serial form is achievable, but yes, a big project.

Romilly Cocking

unread,
Jun 1, 2018, 8:50:40 AM6/1/18
to Neil Higgins, PiDP-8
I recently discovered a great book - Winkel's 'Art of Digital Design' - in which he described the detailed design of a 7400-based series PDP-8 kit his company made back in the 80s.

It would need adapting to the PDP-8/S's serial architecture, but that's mostly a matter of removing stuff :)

The first computer that I programmed (as an 11-year-old,, in 1958) was a serial machine - the Ferranti Pegasus.
I was lucky enough to have a program run by my mother's boss.
Computer time was an expensive luxury in 1958!

I've got enough components to start protoyping memory access and the registers.
Finding the time is more of a problem, as I am writing a book on the micro:bit at the moment.

While I'm developing it I'll probably use a Pi zero as a microprogram controller to run the control gates, and replace that with ICs when everything works.

On 1 June 2018 at 13:33, Neil Higgins <1955...@gmail.com> wrote:
This kind of thing has been done before: Oldies, especially Australians, may remember the EDUC-8 computer (https://en.m.wikipedia.org/wiki/EDUC-8), which was  devised by Jim Rowe and published by “Electronics Australia” magazine. It was a PDP-8-like machine implemented in bit-serial fashion using 7400-series logic. It’s release co-incided with the availability of the first microprocessors, so unfortunatley not many were built. However there are adfficionados out there who still make EDUC-8s from time to time. So a full blown PDP-8 in bit serial form is achievable, but yes, a big project.

--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+unsubscribe@googlegroups.com.
To post to this group, send email to pid...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-8/54420221-3c17-4e74-850f-633eff1b0ecc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
personal:@romillyc work:@rareblog skype:romilly.cocking web:http://blog.rareschool.com/

clasystems

unread,
Jun 1, 2018, 7:59:54 PM6/1/18
to PiDP-8
While I appreciate your zeal in a PDP-8/S project, you are likely not fully cognizant of the consequences unless small changes are made.

In the PDP-8 world, there is a term [well, originally a MARKETING term, but it is valid] known as "the family of 8".  In a nutshell, despite the fact that FOCAL, 1969 has kludges to run on the PDP-5 and the PDP-8.S, they are the EXCEPTION that proves the rule.  Other than the 4K Disk Monitor System, NOTHING RUNS on the PDP-8/S that is based on a storage device of any description whatsoever.

Moreover, the 4K Disk Monitor System can NOT be adapted to any other devices.  The few are the DF32 and the RF08 and the TC08 DECtape.  This is because the first two are word-transfer-oriented devices and the notion of a blocksize of 129 words/block is alien to all design, and it is just an aberration of the three that it runs on, not a feature.  Technically, due to the sloth, it ONLY runs on an 8/S on the special SLOWED-DOWN version of the DF32 with 4:1 interleave because the DMA speed is inadquate to transfer the data.

All of this can easily be solved by NOT being slavish to the PDP-8/S per se.

1) The Disk Monitor System cannot be used if you do not have one of those three and nothing else.  As such, it is "walled off" so to speak.

2) All of the rest of the software anyone here has heard of requires the PDP-8 instruction set, which was released EARLIER!  Yes, the PDP-8/S was the only model with the dubious distinction of having an instruction set LESS COMPLETE than the previous models.

Thus, just adjust your sights in the following way:

1) The serial nature is not the issue; you do have to implement at least a few additionalo operate instruction combinations.  I believe the deal-breaker is it cannot complement and rotate in the same instruction.

2) You have to at least become fully OPERATE-compatible with the original PDP-8, but you do NOT have to implement the MQ and all things EAE.  By leaving out all group III operate instructions yet having sat least the group 1 instructions of the PDP-8 you are not only compatible, but you have a unique combination that can be identified by modifying my model identification routine to look for the combination of proper group 1 and also no group 3 like the PDP-8/L, but the PDP-8/L also implements even more things that the PDP-8 and the PDP-8/S cannot implement such as combining IAC with the rotate operations.  This is not necessary to be compatible and leaving it out means my updated routines can identify the uniqiue model of a "corrected" PDP-8/S.  Ignoring that, it still passes as a PDP-8 [original].

But more importantly, now it can run ALL of the software.  This should not be a major departure from your intentions, but it adds all these benefits.

I assume you will not "authentically" implement the SLOTH of the machine!  [/sarc]

cjl

Neil Higgins

unread,
Jun 1, 2018, 9:14:58 PM6/1/18
to PiDP-8
Great post, Charles! The devil is in the detail, eh? And wow, you do know the detail!

Romilly Cocking

unread,
Jun 2, 2018, 6:04:57 AM6/2/18
to PiDP-8
Thanks! That's very useful information, and it's made me clarify my objectives.

I want to explore and document the architecture of a computer that's powerful enough to run real programs, but is simple enough that one person can hold the architecture in his/her head.

A member of the PDP-8 family seems to be ideal.

I'm happy to build a machine that uses serial architecture but which avoids the quirks of the PDP-8/S instruction set.

The SLOTH has already been implemented in my Python emulator :)

Oscar Vermeulen

unread,
Jun 2, 2018, 8:13:41 AM6/2/18
to Romilly Cocking, PiDP-8
On Sat, 2 Jun 2018 at 12:04, Romilly Cocking <romilly...@gmail.com> wrote:
 
I'm happy to build a machine that uses serial architecture but which avoids the quirks of the PDP-8/S instruction set.

Hmm. To argue the other way, the simplifications in the 8/S instruction must've been there for good reason - as in, minimising parts count.

We have plenty of full-8 options already - from simh to 6120 and whatnot.
I'd be interested in a design using the absolute minimal 74 series logic, because it's the design is interesting.

If, as I assume must be true as the 8/S does so, cutting out some operate instruction combinations means a meaningful simplification of the design and chip count, that is worth it. A bit-serial implementation doesn't need to run all that much software to be interesting. You could always edit/recompile anything you insist on running. Part of the fun.

Recently, someone came out with this design (Gigatron). Just a tiny handful of *the simplest* 74 ICs made for a complete CPU (with a computer to drive it thrown in). So elegant.

Doing a bit-serial PDP-8 CPU could be an even more educational, minimalist design. I would think. Foresaking some combinations of operate instructions is probably required for that. I'd care more about elegant hardware minimalism than software running out of the box. Because the 8/S is only exciting from the perspective of hardware minimalism. From any other perspective, it's just an awful machine... so why compromise on the minimalism!

Just my opinion :)

Oscar.

Romilly Cocking

unread,
Jun 2, 2018, 8:38:50 AM6/2/18
to Oscar Vermeulen, PiDP-8
I'm not yet sure but I suspect the chip count can be kept low by using 3 x universal shift registers for the accumulator, and some extra cycles.
I think that would allow one to implement operate combinations which were illegal on the S.

But I need to explore the design a bit to ensure that.

CLASystems

unread,
Jun 2, 2018, 9:59:54 AM6/2/18
to Romilly Cocking, Oscar Vermeulen, PiDP-8
I have to disagree with OSCAR [Hey OSCAR, I am trying to e-mail you on unrelated matters we spoke to a long time ago! I will send a new round of email, etc.]

No, the PDP-8/S is 100% identical to the PDP-5; they just didn't check what Edson De Castro was doing and ASSUMED no changes!

Moreover, the exact packaging of the PDP-8/S includes well-reasoned notions of what would be OPTIONAL which didn't have to be done precisely the way it was done.

For example, the memory could have been designed to be removed and replaced with a different form of DMA grant device where the memory was instead plugged into, etc.  And many of those options were seldom implemnented at all, but were part of the design, so cost on an absoluete basis clearly is NOT the deciding favtor.  Thus, the PDP-8/S is more of a mistake than a deliberate design.  It is the exception to the rule that each new model can at  least perform what the predecessors can, and not use the old PDP-5 sans the program counter kludge as the model. I admit they let the PDP-5 design do their thinking for them, but R-series modules are a whole lot smaller.

On the contrary, I am suggesting a serial speedy machine and I identified a niche in the scheme of things that makes sense to be a unique in-between model not quite as capable as the PDP-8/I which is fine, EAE doesn't work on all nmodels, and past the PDP-8/E/A you cannot even get it.

On the PDP-8/L, group III OPR is inhibited, so that simplefies the design even there.  But it also adds the missing quirk to prove the CPU is NOT the PDP-8.I.

The PDP-8/I CAN have EAE.  As such the instruction 7601 DOES clear the AC, but not so on the PDP-8/L.

This design also would ignore group II as in the 8/S already.  But having ful compatibility with the PDP-8 all EAE cosiderations ignored yet does the full OPR implementation is a goal in and of itself.

TTL can be a lot faster than R-series in serial configurations, so it would not be worthless, etc.

cjl pagain, Oscar, check for e-mail from me, etc.]


--
You received this message because you are subscribed to a topic in the Google Groups "PiDP-8" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pidp-8/GIJzPsZMlps/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pidp-8+unsubscribe@googlegroups.com.

To post to this group, send email to pid...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
"In the future, OS/2 will be on everyone's desktop"

Bill Gates, 1992

Obsolescence

unread,
Jun 2, 2018, 8:29:49 PM6/2/18
to PiDP-8
Charles, Romilly,


On Saturday, June 2, 2018 at 3:59:54 PM UTC+2, clasystems wrote:
No, the PDP-8/S is 100% identical to the PDP-5; they just didn't check what Edson De Castro was doing and ASSUMED no changes!

Really! I never realised it was basically a serial take on the PDP-5. That is interesting.

 
And many of those options were seldom implemnented at all, but were part of the design, so cost on an absoluete basis clearly is NOT the deciding favtor.

So not quite the mean and lean minimalism I imagined it would be. Creating the liberty to rethink it.

 
cjl pagain, Oscar, check for e-mail from me, etc.]

Pinged! I must have missed an email.

Kind regards,

Oscar.

Neil Higgins

unread,
Jun 2, 2018, 8:50:21 PM6/2/18
to PiDP-8
Depends in whether you want an 8 (capable of running 8 software), an actual 8/S, a “Gigatron”, or something else. So (obviously) the motivation for doing it has to be the first issue to resolve.

clasystems

unread,
Jun 3, 2018, 8:40:00 PM6/3/18
to PiDP-8
Clearly serial implementation has its own rewards.  SATA is in vogue and even somewhat faster than the previous PATA standard, but the compatibility was slightly overrated leading to have to support true "compatibility mode" because it's fastest implementation could not be compatible with the previous.

But you can tweak anything and get fast.  There is even serial SCSI, etc.

It's really not an architectural issue so much as an implementation detail if you do it well.  Unfortunately, the 8/S became a little dead end of its own for the want of a few serial nails.

cjl
Reply all
Reply to author
Forward
0 new messages