Support for the m9312 boot roms

174 views
Skip to first unread message

Jos Fries

unread,
Feb 20, 2021, 11:36:23 AM2/20/21
to [PiDP-11]

During the Christmas holidays I built my PiDP11 kit and then found out that boot rom support in the PiDP11 was lacking and that the way to boot a system – a choice via the switch register resulting in a simh boot command – was not authentic. As I now had a “real” PDP-11/70 console, I also wanted to use it the way I used to boot a regular PDP-11/70 as a systems programmer in the 70’s.

The most extensive and latest boot roms for the PDP-11's are the m9312 roms and I decided to implement the m9312 in simh. The sources for these roms are available (at https://www.ak6dn.com/PDP-11/M9312/) and I used and adapted some tooling to assemble these sources and create C header files from the object files. These header files I then used in my implementation of the m9312 device. With this device I am able to boot a device by commands such as "go 173004".

The next challenge was the execution of the diagnostic boot rom code for the 11/70. That diagnostic failed on a check of the functionality of the hitmiss register of the cache. To be able to use the original boot rom code, I added simple support for that register in simh and I then was able to execute all m9312 roms.

In the next step I added the m9312 and hitmiss support code to the Blinkenbone simh version (on which the PiDP11 is based) to find that the switches weren't correctly functioning. A LOAD ADDRS - START sequence e.g. didn’t work. To solve that problem I merged the latest simh sources with the Blinkenbone and PiDP versions and then reached my goal! I now have a PiDP11 I can boot by means of the m9312 boot code, just the way I would boot a regular PDP-11/70!

I would like to share this code so all PDP-11 fans can enjoy this sensation :-) and give the PiDP11 switches their proper functionality. What would be the best way to go to get my m9312 implementation in the official code base? I could issue pull requests to the simh and Blinkenbone github repositories, but I am not sure what the official PiDP repository is.

Regards,

Jos

Mark Pizzolato - Info Comm

unread,
Feb 21, 2021, 6:38:53 AM2/21/21
to Jos Fries, [PiDP-11]

Hi Jos,

 

You could start with a pull request in the https://github.com/simh/simh repository.  Since you’ve touched things in several areas, this may need to be decomposed into several pieces depending on what is actually affected where, but I can’t suggest details until I get a look at things.

 

  • Mark

 

--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/befcc6b7-5575-4365-950e-a68d129b2288n%40googlegroups.com.

Tom Lake

unread,
Feb 21, 2021, 4:45:43 PM2/21/21
to [PiDP-11]
"The next challenge was the execution of the diagnostic boot rom code for the 11/70. That diagnostic failed on a check of the functionality of the hitmiss register of the cache. To be able to use the original boot rom code, I added simple support for that register in simh and I then was able to execute all m9312 roms. "

Did the support you added allow the diagnostics to run OK? 

Jos Fries

unread,
Feb 22, 2021, 5:30:53 AM2/22/21
to [PiDP-11]
Hi Tom,

Yes it does. The only diagnostic that failed was the cache data memory test and after I added simple support for the hitmiss register (all reads are hits, all writes are misses) simh passes that test too.

Jos Fries

unread,
Feb 23, 2021, 4:12:13 AM2/23/21
to [PiDP-11]
Hi Mark,

I issued a pull request just now. As  I stated in the comment I tried to decompose the pull request but that was impractical as the m9312 changes build on the changes in pdp11_sys.c for the HITMISS implementation.

Kind regards,

Jos
Reply all
Reply to author
Forward
0 new messages