Andreas Bombe: PDP-8/e Replicated Introduction
I am creating a replica of the DEC PDP-8/e architecture in an FPGA from
schematics of the original hardware. So how did I end up with a project like
this?
The story begins with me wanting to have a computer with one of those front
panels that have many, many lights where you can really see, in real time, what
the computer is doing while it is executing code. Not because I am nostalgic
for a prior experience with any of those I was born a bit too late for that
and my first computer as a kid was a Commodore 64.
Now, the front panel era ended around 40 years ago with the advent of
microprocessors and computers of that age and older that are complete and
working are hard to find and not cheap. And even if you do, there s the issue
of weight, size (complete systems with peripherals fill at least a rack) and
power consumption. So what to do build myself a small one with modern
technology of course.
While there s many computer architectures of that era to choose from, the
various PDP machines by DEC are significant and well known (and documented) due
to their large numbers. The most important are probably the 12 bit PDP-8, the 16
bit PDP-11 and the 36 bit PDP-10. While the PDP-11 is enticing because of the
possibility to run UNIX I wanted to start with something simpler, so I chose the
PDP-8.
The Original
DEC started the PDP-8 line of
The Original
DEC started the PDP-8 line of computers programmed data processors designed
as low cost machines in 1965. It is a quite minimalist 12 bit architecture based
on the earlier PDP-5, and by minimalist I mean seriously minimal. If you are
familiar with early 8 bit microprocessors like the 6502 or 8080 you will find
them luxuriously equipped in comparison.
The PDP-8 base architecture has a program counter (PC) and an accumulator
(AC)1. That s it. There are no pointer or index registers2.
There is no stack. It has addition and AND instructions but subtractions and OR
operations have to be manually coded. The optional Extended Arithmetic Element
adds the MQ register but that s really it for visible registers. The Wikipedia
page on the PDP-8 has a good detailed
description.
Regarding technology, the PDP-8 series has been in production long enough to get
the whole range of implementations from discrete transistor logic to
microprocessors. The 8/e which I target was right in the middle, implemented
in TTL logic where each IC contains multiple logic elements. This allowed the
CPU itself (including timing generator) to fit on three large circuit boards
plugged into a backplane. Complete systems would have at least another board for
the front panel and multiple boards for the core memory, then additional boards
for whatever options and peripherals were desired.
Design Choices and Comparisons
I m not the only one who had the idea to build something like that, of course.
Among the other modern PDP-8 implementations with a front panel, probably the
most prominent project is the Spare Time Gizmos
SBC6120 which is a
PDP-8 single board computer built around the Harris/Intersil HD-6120
microprocessor, which implementes the PDP-8 architecture, combined with a nice
front panel. Another is the
PiDP-8/I, which is
another nice front panel (modeled after the 8/i which has even more lights)
driven by the simh simulator running under
Linux on a Raspberry Pi.
My goal is to get front panel lights that appear exactly like the real ones in
operation. This necessitates driving the lights at full speed as they change
with every instruction or even within instructions for some display selections.
For example, if you run a tight loop that does nothing but increment AC while
displaying that register, it would appear that all lights are lit at equal but
less than full brightness. The reason is that the loop runs at such a high speed
that even the most significant bit, which is blinking the slowest, is too fast
to see flicker. Hence they are all effectively 50% on, just at different
frequencies, and appear to be constantly light at the same brightness.
This is where the other projects lack what I am looking for. The PiDP-8/I is a
multiplexed display which updates at something like 30 Hz or 60 Hz, taking
whatever value is current in the simulation software at the time. All the
states the lights took inbetween are lost and consequently there is flickering
where there shouldn t be. On the SBC6120 at least the address lines appear to
update at full speed as these are the actual RAM address lines. However the
used 6120 microprocessor does not have required data for the indicator display
externally available. Instead, the SBC6120 runs an interrupt at 30 Hz to trap
into its firmware/monitor program which then reads the current state and writes
it to the front panel display, which is essentially just another peripheral. A
different considerable problem with the SBC6120 is its use of the 6100
microprocessor family ICs, which are themselves long out of production and not
trivial (or cheaply) to come by.
Given that the way to go is to drive all lights in step with every
cycle3, this can be done by a software running on a dedicated
microcontroller which is how I started or by implementing a real CPU with
all the needed outputs in an FPGA which is the project I am writing about.
In the next post I give an overview of the
hardware I built so far and some of the features that are yet to be
implemented.
- With an associated link bit which is a little different from a carry bit in that it is treated as a thirteenth bit, i.e. it will be flipped rather than set when a carry occurs.
[return]
- Although there are 8 specially treated memory addresses that will pre-increment when used in indirect addressing.
[return]
- Basic cycles on the PDP-8/e are 1.4 s for memory modifying cycles and fast cycles of 1.2 s for everything else. Instructions can be one to three cycles long.
[return]
- With an associated link bit which is a little different from a carry bit in that it is treated as a thirteenth bit, i.e. it will be flipped rather than set when a carry occurs. [return]
- Although there are 8 specially treated memory addresses that will pre-increment when used in indirect addressing. [return]
- Basic cycles on the PDP-8/e are 1.4 s for memory modifying cycles and fast cycles of 1.2 s for everything else. Instructions can be one to three cycles long. [return]
As you can see, the latency goes up, up, up until Nageru figures it's now
safe to drop a frame, and then does it in one clean drop event; no more
hundreds on drops involved. There are very late frame arrivals involved in
this run two extra frame drops, to be precise but the algorithm simply
determines immediately that they are outliers, and drops them without letting
them linger in the queue. (Immediate dropping is usually preferred to
sticking around for a bit and then dropping it later, as it means you only
get one disturbance event in your stream as opposed to two. Of course, you
can only do it if you're reasonably sure it won't lead to more underruns
later.)
Nageru 1.6.1 will ship before
I've just released version 1.22 of Obnam, my backup application. It is
the first release for this year. Packages are available on
code.liw.fi/debian and in Debian unstable, and source is in git. A
summary of the user-visible changes is below.
For those interested in living dangerously and accidentally on purpose
deleting all their data, the link below shows that status and roadmap
for FORMAT GREEN ALBATROSS.
Here's a nice comment I received by email this morning. I guess
somebody was upset by
my
Yesterday I uploaded the first packages of
I mentioned already in a 




Dear all, an
While the above medical device is similar, mine had a cross, the needle was much shorter and is injected into the vein. After that all injections are injected into that including common liquid which is salt,water and something commonly given to patients to stabilize first. I am not remembering the name atm.
I also had a urine bag which was attached to my penis in a non-invasive manner. Both my grandfather and grandma used to cry when things went wrong while I didn t feel any pain but when the urine bag was disattached and attached again, so seems things have improved there.
I was also very conscious of getting bed sores as both my grandpa and grandma had them when in hospital. As I had no strength I had to beg. plead do everything to make sure that every few hours I was turned from one side to other. I also had an air bag which is supposed to alleviate or relief this condition.
Constant physiotherapy every day for a while slowly increased my strength and slowly both the vigo and feeding tube put inside my throat was removed.
I have no remembrance as to when they had put the feeding tube as it was all rubber and felt bad when it came out.
Further physiotherapy helped me crawl till the top of the bed, the bed was around 6 feet in length and and more than enough so I could turn both sides without falling over.
Few days later I found I could also sit up using my legs as a lever and that gave confidence to the doctors to remove the air bed so I could crawl more easily.
Couple of more days later I stood on my feet for the first time and it was like I had lead legs. Each step was painful but the sense and feeling of independence won over whatever pain was there.
I had to endure wet wipes from nurses and ward boys in place of a shower everyday and while they were respectful always it felt humiliating.
The first time I had a bath after 2 weeks or something, every part of my body cried and I felt like a weakling. I had thought I wouldn t be able to do justice to the physiotherapy session which was soon after but after the session was back to feeling normal.
For a while I was doing the penguin waddle which while painful was also had humor in it. I did think of shooting the penguin waddle but decided against it as I was half-naked most of the time ( the hospital clothes never fit me properly)
Cut to today and I was able to climb up and down the stairs on my own and circled my own block, slowly but was able to do it on my own by myself.
While I always had a sense of wonderment for bi-pedal motion as well as all other means of transport, found much more respect of walking. I live near a fast food eating joint so I see lot of youngsters posing in different ways with their legs to show interest to their mates. And this I know happens both on the conscious and sub-conscious levels. To be able to see and discern that also put a sense of wonder in nature s creations.
All in all, I m probabl6y around 40% independent and still 60% interdependent. I know I have to be patient with myself and those around me and explain to others what I m going through.
For e.g. I still tend to spill things and still can t touch-type much.
So, the road is long, I can only pray and hope best wishes for anybody who is my condition and do pray that nobody goes through what I went through, especiallly not children.
I am also hoping that things like
In my
Bem vindo ao Debian Stretch!
Ontem, 17 de junho de 2017, o Debian 9 (Stretch) foi lan ado. Eu gostaria de falar sobre alguns procedimentos b sicos e regras para migrar do Debian 8 (Jessie).
Passos iniciais
Nos dois casos, recomend vel que voc escolha por instalar a nova vers o do arquivo de configura o. Isso porque o novo arquivo de configura o estar totalmente adaptado aos novos servi os instalados e poder ter muitas op es novas ou diferentes. Mas n o se preocupe, pois as suas configura es n o ser o perdidas. Haver um backup das mesmas. Assim, para shell, escolha a op o "Y" e, no caso de janela, escolha a op o "instalar a vers o do mantenedor do pacote". muito importante anotar o nome de cada arquivo modificado. No caso da janela anterior, trata-se do arquivo /etc/samba/smb.conf. No caso do shell o arquivo foi o /etc/rsyslog.conf.
Depois de completar a migra o, voc poder ver o novo arquivo de configura o e o original. Caso o novo arquivo tenha sido instalado ap s uma escolha via shell, o arquivo original (o que voc tinha anteriormente) ter o mesmo nome com a extens o .dpkg-old. No caso de escolha via janela, o arquivo ser mantido com a extens o .ucf-old. Nos dois casos, voc poder ver as modifica es feitas e reconfigurar o seu novo arquivo de acordo com as necessidades.
Caso voc precise de ajuda para ver as diferen as entre os arquivos, voc poder usar o comando diff para compar -los. Fa a o diff sempre do arquivo novo para o original. como se voc quisesse ver como fazer com o novo arquivo para ficar igual ao original. Exemplo:


At
TL;DR: if you applied for a DebConf 17 travel bursary, and you haven t accepted it yet, login to
Welcome to the seventh post in the rarely relevant R ramblings series, or
Like