Following a very busy second half of 2014 it looks like I may have some time early in 2015 to resume my "ancient Unix on Cortex class hardware" project. First a quick stock take of where it is at:
- Al Beard open sourced his C compiler for the geneve and it now lives on in the WHTech archive
- The Ritchie C compiler was ported to the 9995 and works well enough to compile significant software
- The 1983 edition of Xinu for the PDP-11 was ported and runs on Stuart's 9995 bread board
- A Unix V6 user land runs on a 9995 emulator, with the OS calls handled by the emulator direct
- Stuart's bread board was enhanced with a CF card interface
- MDEX was ported to the enhanced bread board
For reference see:
The
software repository
The
bread board schematics (warning: 4MB scan)
A
picture of the bread board
A
screen shot of MDEX running
I'm pondering where to go next. The breadboard hardware could probably use simple memory mapping hardware, using the 7 spare lines of the LS259. I think with two more TTL chips I can create a design with 8 pages of 60KB each and the top 4KB always mapped to page 0. With the kernel running on page 0, that leaves room for 7 processes without swapping. I think this may work for porting the MDEX successor NOS as well, assuming that it has survived.
On the software side, the LSX Unix kernel already compiles (but not sure if there are compiler bugs remaining). I'm a bit hesitant to debug that kernel on the real hardware, probably should try that on emulated hardware first. I have thought about adding write protect to the first and last 4KB, but I don't see a simple way to do it.
Perhaps I should move the hardware to a PCB first. Jim, I noticed the MPE CPU-E manual on your site. The MPE E_BUS 9995 board looks like a nice start, and not a million miles away from what I ended up with on the breadboard. Do you have that MPE board? Perhaps a few hires photo's to have a baseline understanding of component placement and routing?
The chip count of my breadboard design could probably be significantly reduced by using one or two GAL's, I noticed that Reichelt still stocks a 24 pin DIP GAL, but getting it programmed may be a hurdle that increases build complexity rather than reducing it; for sure I don't have a GAL programmer and have no GAL know-how.
Also thinking ahead about building a small 99105 based system, to get the separate I/D address space and the supervisor/user modes, so that a process crashing doesn't bring down the whole system. Anybody working on/with 99105 based designs?
All creative thoughts and support welcome.