[Simh] simh/VAX: DIVW3 problem ?

Peter R. Trimmel peter.trimmel at austrocontrol.at
Tue Jun 29 06:33:30 EDT 2004


When trying to run some VAX S/W on simh 3.2-0 I encountered sudden and
unexpected crashes
that can't be seen on 'real' H/W. I traced them down and found a 'DIVW3' VAX
instruction
that caused the pain by unexpectedly writing a LONG to the destination
instead of a WORD, destroying the memory location right after the
destination operand's address.

This instruction is used rarely by VMS but extensively by our S/W, which
used to be portable among PDP/11 and VAXen and therefore uses a 16bit
compiler (for the language RTL) to generate MACRO/11 code. So, all INTs are
16Bit, arithmetic operations are 16bit; we use MOVW, DIVW, ADDW all over the
place.

I looked at the code in VAX/vax_cpu.c and realised that it would take some
time to understand what's going on there. Maybe someone with a deeper
understanding of the VAX instruction emulation can provide some hints.

Please find attached some forensic investigations.

regards,
Peter

PS: we successfully run the Austrian Air Traffic Control System S/W on simh
now. Well, not for live operations ;-) but for inhouse tests it prooved to
be a very reliable environment.
This can be seen as a huge success for this project!

attached: rdp.crash.txt
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rdp.crash.txt
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20040629/a90fca7a/attachment-0001.txt>


More information about the Simh mailing list