[Simh] EXT :Re: Issue #731 Related General review of simh PDP11 ability to set addr and set vector for all device where autoconfig is disabled - possible KDP bug

Geoff Conway gconway at bigpond.net.au
Thu Aug 1 09:37:21 EDT 2019


1234567890123456789012345678901234567890123456789012345678901234567890123456
On 1 August 2019 03:35 Geoff Conway

> On Wednesday, 31 July 2019 22:02 Johnny Billquist wrote:
>
> > On 2019-07-31 05:18, Geoff Conway wrote:
> > > I spent a few hours yesterday investigating how the XU, XUB and XQ,
> > > XQB> > devices interact within simh with respect of having CSR and 
> > > vectors
> > assigned with or without autoconfig enabled.
> > >
> > > Unlike every other device the DEUNA XU & XUB behaviour in not auto-
> > assigning the vectors within simh as the OS assigns them appears to be
> > inconsistent with every other PDP device I've used so far in simh -
> > and is the only device that won't work if autoconfig has been disabled
> > before their vector value has been autoconfigured in simh as there is
> > no way to manually assign the needed vector for either of XU & XUB.
> >
> > If you cannot assign a vector, then there is a bug there.
> > Essentially, it is an absolutely requirement that you can set the
> > vector, if you are configuring manually, as that is what you'd do on the 
> > real
> hardware.

< a whole lot of repetitive stuff culled>

Thanks to  Mark for the MTAB bug correction (that fixed the issue I found as 
well as Johnny for his explanations correcting some of my erroneous suggested 
options to correct the XU no vector setting capability as I had wrongly 
suggested that the DEUNA might have programmable vector assignment which due 
to its age it does not. The majority of simh devices use manual address & 
vector assignment just like in the real world.

Due to my unfamiliarity of simh XU device source I wasn't aware until then of 
the MTAB table that specifies which simh commands are allowed for a device 
which Mark provided the solution for.

The simplest solution of allowing set xu(b) vector=val was the appropriate 
answer to the bug that I found.

This has now been corrected in pdp11_xu.c and Mark late yesterday his time 
built a new simh windows binaries distribution set.

I have since verified that this XU bug has been fixed and also checked every 
device in the simh PDP11 hardware list and confirmed that where autoconfig has 
been disabled that the commands set <device name> address=val and set  <device 
name> vector=val are allowed.

While the sysadmin normally specifies the CSR addresses and vectors by using 
sysgen and netgen the hardware devices in simh also have to match the sysadmin 
specified csr & vectors.

There is one exception in the simh list of devices and it appears to be with 
the KDP device for DECNet that is using the simh KMC device at the lower 
level.

The help set kdp command lists that it can set the address=val as well as a 
line that says set address interrupt vector which possibly means the modifier 
table isn't configured correctly.

The KDP device is a new DECNet device for simh and likely works  ok when 
autoconfig is enabled. It is assigned floating addresses and vectors so both 
addr and vector commands should be allowed. However set kdp vector is not as 
it appears wrongly matched to address in its MTAB table.

The first 2 MTAB entries show the problem (line 3 is the *possible bug).

{ MTAB_XTD|MTAB_VDV, 010, "ADDRESS", "ADDRESS",
        &set_addr, &show_addr, NULL, "Bus address" },
    { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "VECTOR", "ADDRESS",
        &set_vec, &show_vec, NULL, "Interrupt vector" },

If I am correct in my analysis I believe that the 3rd line
    { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "VECTOR", "ADDRESS",
Should be
    { MTAB_XTD|MTAB_VDV|MTAB_VALR, 0, "VECTOR", "VECTOR",

Mark can you please have a look to see if this is in error as I suspect ?

At the moment the command set vector is not allowed and I'm not sure what it 
is trying to do with line 3 - not what was intended anyway!

Every other device in simh allows both the set vector and set address 
commands - exceptions being certain devices only at one fixed address without 
a vector or devices with programmable vectors which are the only devices that 
the OS can directly set the vector within the simh devices - xq, rq, tq.

Other devices with alterable CSR and vector addresses will in the real world 
have switchpack settings for this purpose so will in simh have set addr and 
set vector commands allowed for where manual simh config is used..


Geoff




More information about the Simh mailing list