[Simh] EXTERNAL: Problem booting an emulated VAX-11/780 from a Massbus disk drive

Hittner, David T (IS) david.hittner at ngc.com
Tue Jan 25 15:55:25 EST 2011


Congratulations, you have found a "Devil in the details"!

Over the years, VMS driver internal implementations have changed substantially. What you are experiencing is that VMS V4 appears to interact with the RP controller (not just the RP06 drive) differently than later versions of VMS. It  appears that there was a substantial driver standardization/rewrite effort that occurred around the VMS V4/V5 era from the later driver comments that I have seen.

The way to find the exact problem is to either walk your way through the VMS driver with the VMS source code, and see where the controller simulation is behaving differently than expected, OR put some breakpoints in the simulated read/write routines, and try to intuit the correct controller behavior from what you see happening from the driver. The second way is harder, but sometimes it's the only way if you don't have source code.

In many hangs, the problem turns out to be a timing issue - the controller simulation is responding too fast or too slow, based on the behavior that the driver expects to see. VMS may be hung waiting for an interrupt that has already fired or a register value that has already been overwritten - that is, the simulation is "too fast" and needs to delay things with a timer.

I've just finished debugging a similar problem in the VMS DEUNA driver, where later versions of VMS work fine, but the earlier VMS V3/V4 drivers left the controller not functional.  Using the second method (because I don't have any VMS sources earlier than 7.2), I watched the DELUA registers and intuited that the problem was incorrect behavior in the DEUNA SELFTEST command, since that's the point where the VMS driver quit trying to work with the card. My DEUNA patch will appear in the next full release of SIMH.

If you can't debug the problem yourself, you can always ask someone in the SIMH community to step up and take a crack at it.
Or ignore the problem and use your RA81 workaround.
Good luck.

Dave Hittner

From: simh-bounces at trailing-edge.com [mailto:simh-bounces at trailing-edge.com] On Behalf Of Peter Allan
Sent: Tuesday, January 25, 2011 3:00 PM
To: simh at trailing-edge.com
Subject: EXTERNAL:[Simh] Problem booting an emulated VAX-11/780 from a Massbus disk drive

I started this thread over on comp.os.vms in case anyone knew of VMS cause of my problem, but it seems to be a problem with simh.

have been trying to set up the VAX780 emulator in simh to boot VMS 4.6 from an RP06 disk drive and I have failed.

My tests have been the following.

I installed VMS 4.6 (and 4.0 and 4.2) on an RP06 drive. When I try to boot from the RP06, then VMS starts up, displays a line like

    VAX/VMS Version  KG  15-Jun-1987 10:00

and sits there forever. The "KG" is because I have not yet been able to apply the mandatory update. Clearly the 780 is booting from the disk since it displays the one line message.

If I boot with the command

    b rp0/r5:1

then I get into SYSBOOT, but everything appears to be fine. Typing "CONTINUE" returns to the hung state.


Next I tried installing VMS 4.6 on to an RA81 disk drive. This works fine, so I copied the contents of the RA81 to an RP06 drive using stand alone backup and tried booting from the RP06, but still the system hung during the boot process. So the problem appears to be with the RP06 drive, not with VMS or with the installation procedure.

I tried changing the RP06 disk type to all other possible Massbus disk types (RP04/05/07, RM02/03/05/80) and installing VMS 4.6. These all act in the same way as the RP06.

However, I have also tried to install VMS 5.0 and VMS 7.3 on to an RP06. This works fine!

So, the problem occurs with the specific mixture of a Massbus disk drive and VMS 4.x (I have tried x = 0, 2, 6)


I have just examined the code of pdp11_rp.c, which contains at the end of the file:


/* Boot routine */

#if defined (VM_PDP11)

<< lines deleted >>

t_stat rp_boot (int32 unitno, DEVICE *dptr)
{

<< code concerned with booting from an rp type drive >>

#else

t_stat rp_boot (int32 unitno, DEVICE *dptr)
{
return SCPE_NOFNC;
}

#endif


Is this code really only needed for a PDP11, or does it apply to a VAX780 as well? I tried changing VM_PDP11 to VAX_780, just for a test, but I got some error messages, so I thought I better ask for help rather than blundering about in the code.

I am very confused since the vax780 emulator WILL boot successfully from a Massbus disk for VMS 5.0 and 7.3, but it does not for VMS 4.0, 4.2 and 4.6.

Can anyone shed any light on this - or even offer a solution?

I have been doing nearly all of this on Linux (CentOS 5.5), but I did try to install VMS 4.6 on to an RP06 using the Windows version of the system "just in case". That gave the same problem.

Peter Allan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20110125/b4ed1399/attachment-0002.html>


More information about the Simh mailing list