[Simh] Recent bug fixes
R. Voorhorst
simh at swabhawat.com
Sun Oct 13 17:20:43 EDT 2013
Bob Supnik <bob at ...> writes:
>
> Message: 5
> Date: Fri, 06 Sep 2013 17:40:19 +0200
> From: Johnny Billquist<bqt at ...>
> To:simh at ...
> Subject: Re: [Simh] Various PDP11 fixes and enhancements
> Message-ID:<5229F763.8090807 at ...>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 2013-09-06 17:13, Bob Supnik wrote:
>
> > 2. RS03/RS04 - third Massbus adapter with RS03/RS04 fixed head disk.
> > Only tested with RT11, as M+ and RSTS/E support requires a unique
> > SYSGENs. Feel free to hack on it.
>
> Is this something specific to a third massbus, or just a case of the
> RS03/RS04 devices as such? I mean, on M+ you can have all type of
> devices on the same massbus.
>
> >>> The Massbus implementation links an RH to a single device type.
> >>> This is an artifact of the simulator, not of real life.
> >>> Three RH adapters allows for 8 RP/RM units, 8 TU units, and 8 RS
units.
>
> > 3. PDP11 CPU - MMR1 no longer tracks changes to the PC. The issue that
> > it should not track changes in floating point instructions is still
open.
>
> I wasn't aware of any discussions. Could you, or someone sum it up? Is
> it a question of whether MMR1 should reflect changes to the general
> registers if a FP instruction is aborted? If so, I'm pretty sure they
> should be. I think I have read it somewhere in some documentation, and
> could try and locate it, if that really is the question.
>
> Also, MMR1 might reflect changes to the PC as well, as far as I can read
> documentation... But it's "complicated".
>
> Johnny
>
> >>> Looking at the J-11 microcode:
> >>> MMR1 does not track FP changes. This is because in early systems, like
> >>> the 11/45, it didn't have enough bits to record an 8 byte register
change.
> >>> The J-11 goes through great pains to undo register changes before it
> >>> springs a trap or memory management abort.
> >>> Likewise, the J-11 never tracks PC changes in MMR1. The instruction
> >>> stream is read through a special microinstruction, because the
hardware
> >>> always prefetches the next instruction word. Even modes 47 and 57,
which
> >>> make no sense, don't update MMR1.
>
> /Bob Supnik
>
Initially testing this on RSX11MP and RstsE required some toying with
Sysgen.
I did so with Rsx11MPlus 4.6-BL87 (only, not with M itself but there will
be little differences with respect to RH behaviour) and RstsE V10.1-L.
We have the following case:
The Massbus device variants on both OS's are:
1. RP's (except RP07 > DB:),
2. RM's (and RP07 > DR:),
3. RS'es (RS03/04 > DS:) and
4. TU's (TU10-77 > MM:).
Both OS's support 4 RHX maximum as does the hardware.
At the moment Simh supports only 3 RH's of the maximum of 4, but moreover
ties the different devicetype groups to one RH controller per group in a
fixed sequential order: RP/RM on RHA, TU on RHB and RS on RHC.
Simh also combines the devicetypes RP (DB:)and RM (DR:) into one group of
maximally 8 drives tied to (one) RH(A) only, thereby limiting the maximum
amount of 16 disks.
In supporting this Simh configuration, RSX11MPlus is the most flexible and
forgiving as it's Sygen supports 2 modes:
1. Mixed Massbus mode where every devicetype can be tied to any port on any
Massbus controller, and
2. Traditional mode with all device types on separate RH controllers.
RSX11MP shows it's great configurational flexibility bedcause in both modes
every RH controller can be tied to any required Csr/Vector address
combination
RstsE 10.1 is much more choosy and supports only the traditional
configuration of every of the total 4 devicetypes on one specific
controller, however every type is even tied to a specific RHX with a fixed
certain Csr and Vector address; while Rsts does allow for changing the Csr
afterwards, that is not the case for the vector address.
RstsE expects the following types on the following RH's on Csr/Vectors:
1. DB drives (RP04-06) are expected on RH#? (RB:) with Csr=176700
Vector=254
2. DR drives (RMxx, RP07) are expected on RH#? (RR:)with Csr=176300
Vector=150
3. DS drives (RS03/04) are expected on RH#? (RS:) with Csr=172040
Vector=204
4. TU drives (TU15-77) are expected on RH#? (TU:) with Csr=172440
Vector=224
The current Simh implementation is hampering a Rsts configuration in two
ways:
1. Standard only RP's drives (DB:) can be specified because of it's ties
with the Simh RHA.
2. There is no controller for RM (DR:) drives so the maximum $ of 16 drives
is limited to 8.
Point 1 can be alleviated by forcing in Simh the RHA controller to the
Csr/Vector as expected for RM drives; then however the RP drives disappear;
Conclusion is as follows:
1. The traditional mode on Rsx and Rsts is not completely supported.
2. Mixed mode in RSX is not supported unless restricted to a RP/RM
combination on RHA only.
3. Having RP drives also doubling up as RM drives in traditional mode
confuses things in the OS as RP drives remain DB' s.
Solution to support the full traditional modes while retaining the tying
mechanism of RH' s to device groups:
1. Split the RP multifunction group and expand to an 8 RP (DB) and an 8 RM
(DR) group.
2. Introduce a 4th RH tied to the RM group.
Solution to support complete Rsx11 mixed mode:
1. Split the RP multifunction group and expand to an 8 RP (DB) and an 8 RM
(DR) group.
2. Introduce an attach function in the RH controller in the same way that
Rsx handles mixed mode: ATT RHXi YYj with X=one of (A, B, C, D), YY=one of
(RP, RM, RS, TU) and i,j=one of (1..9). Attachment can then be spefied to a
group (the original setup: ATT RHA RP)
or per unit: ATT RHA3 TU5.
In all this your mileage may vary according to the amount of work to
realise things.
Supporting the full traditional mode with an extra RH and
splitting/expanding the RP/RM might deliver the optimum in a cost effective
way.
On RstsE 10.1-L fooling RHA with a different Csr/vector pair looked as
follows:
RSTS V10.1-L RSTS (DU0) INIT V10.1-0L
13.10.12 23:25
Start timesharing? <Yes> NO
Option: <Start> HA
HARDWR suboption? LI
Name Address Vector Comments
TT0: 177560 060
RS0: 172040 204 Units: 0(RS04) 1(RS04) 2(RS04) 3(RS04)
4(RS04) 5(RS04) 6(RS04) 7(RS04)
RL0: 174400 160 Units: 0(RL01) 1(RL01) 2(RL01) 3(RL01)
RR0: 176300 150 Units: 0(RM03) 1(RM03) 2(RM03) 3(RM03)
4(RM03) 5(RM03) 6(RM03) 7(RM03)
RU0: 172150 P310 RQDX3 Units: 0(RA90) 1(RD54) 2(RD54) 3(RX50)
MU0: 174500 P314 TK50 Units: 0(TK50) 1(TK50) 2(TK50) 3(TK50)
TU0: 172440 224 Units: 0(TE16 @TM03 #0) 1(TE16 @TM03 #0)
2(TE16 @TM03 #0) 3(TE16 @TM03 #0)
4(TE16 @TM03 #0) 5(TE16 @TM03 #0)
6(TE16 @TM03 #0) 7(TE16 @TM03 #0)
PR0: 177550 070
PP0: 177554 074
LP0: 177514 200
RX0: 177170 264 Units: 0(RX01) 1(RX01)
CR0: 177160 230
DZ0: 160100 300 Sub-lines: 8
KW11L 177546 100
Hertz = 50.
Other: FPU, CIS, 22-Bit, Data space, J11-E CPU
HARDWR suboption?
In the mean time, as a funny side effect with the new RHC/RS03,04’s
suddenly popping up, the venerable VAX 11/780 and 8600/50 were suddenly
found trying to recognize the even more arcane RS03/04 drives on RHC and,
while autogenning in the startup phase, trying desperately to find a non-
existing RSDRIVER for every drive configured and massively complaining
about it. Needless to say these efforts were in vain J but it kept one
pondering what was going on at that instant ...
Best regards,
R. Voorhorst
More information about the Simh
mailing list