[Simh] Simulating a GT40

Mark Pizzolato Mark at infocomm.com
Wed Sep 5 06:16:48 EDT 2018


On Tuesday, September 4, 2018 at 12:21 PM, Timothe Litt wrote:
> On 04-Sep-18 15:09, Paul Koning wrote:
> > On Sep 4, 2018, at 3:06 PM, Lars Brinkhoff <lars at nocrew.org> wrote:
> > > Timothe Litt wrote:
> > > > If a ROM device is added to the -11, I suggest that:
> > > > a) It be capable of multiple units
> > > > b) each unit with a start address (in I/O space) & length
> > >
> > > I was going to do this, but I quickly learned that a SIMH 
> > > unit can't have a base address of its own.  All units share 
> > > the address region defined by the governing device.
> > 
> > Another way to handle ROM would be to have a switch on the 
> > LOAD command that tells it to permit binaries that have load 
> > addresses in I/O space.  Then your current ROM devices config 
> > would be "whatever is loaded by the load commands I have issued".
>
> That's an interesting approach, but it may or may not provide the 
> correct length.  And it doesn't handle power-on boot/dip switches.

All true.  Your general suggestion are 100% appropriate for a general
ROM solution.

A while back, someone came along wanting to submit a simulator for 
multiple MRV11-Ds which seemed to have the ability to have several 
different blocks of ROM and/or RAM.  The proposed implementation 
changed the DEVICE, DIB structures.  Additionally there would be 
complex issues about memory was represented and programmatically 
accessed in the simulator.  Due to the extensive changes required in 
many places, this didn't get accepted.

I would hope that support for the full MRV11-D functionality would
also be part of the general ROM solution.

The simh generic approach to booting devices has each device supply 
code which implements its boot activity.  This functionality goes back 
to the earliest simh implementation and has allowed the plethora of 
PDP11 models to be implemented in a single simulator without having
to support the many different system specific boot mechanisms.

This built-in, per device, boot support is orthogonal to the specific goal 
of adding generic ROM capabilities to the PDP11 simulator.

You had said:
> With this architecture, adding a boot (or device) ROM becomes as 
> simple as distributing the ROM image.  

Absolutely.

> And SimH doesn't have to compile-in every ROM.  

There is absolutely no intention of compiling-in every ROM image.  In 
all simulators that have ROMs that are part of the simulator, a user can 
load absolutely any data they want in the ROM in their configuration 
file or by hand.  The built-in ROM functionality for the VAX simulators 
provides the default ROM in the event that a user hasn't loaded a 
different one.  This default behavior serves 99%+ of the use cases 
without a user having to hunt for a separate ROM image before they 
get to doing what they really want to do, which normally is interacting 
with the running simulator rather dealing with complicated steps 
getting it started.

The simh per device boot code (and boot ROMs for that matter) are 
merely shortcuts for getting the system started.  It saves the user all the 
tedium of manually toggling in the boot program into memory via the 
front panel... :-)  Having default ROM images built into the simulator are 
merely similar steps to reducing the amount of switch toggling.
 
> And it would bring us closer to being able to handle PDP-11 host and 
> network boot.

A ROM could be used to network boot a PDP11 just as it could be used to
boot from a disk.  The network (XQ) and all disks are already bootable in 
the PDP11 simulator with the per device boot mechanisms.

- Mark



More information about the Simh mailing list