[Simh] Problem with MT_ASTLVL on the VAX-11/780

Johnny Billquist bqt at softjar.se
Thu May 18 03:26:22 EDT 2017


On 2017-05-18 03:23, Paul Koning wrote:
>
>> On May 17, 2017, at 8:00 PM, Matt Burke <matt at 9track.net> wrote:
>>
>> On 18/05/2017 00:18, Johnny Billquist wrote:
>>>
>>> Hum. Do I remember wrong? I seem to remember that when you MOVB to a
>>> register, the value should be sign extended. So not just the low byte
>>> should have been modified.
>>>
>>>    Johnny
>>>
>>
>> I think you may be thinking of MOVZBL (and MOVZWL for words).
>
> Or the PDP11, where indeed MOVB sign extends.

Yeah, it definitely does it on the PDP-11. I always feel divided on 
whether I think it should or not.

But I was obviously remembering wrong. MOV instructions on the VAX does 
not sign extend. The CVT instructions are used if you want that.

> Is MT_ASTLVL defined as a register where only the low byte has meaning?

Seems like it was using even fewer than 8 bits... Looked like it was 
only 3 bits. But the register itself seems to be defined as 32 bits. I'm 
not even sure any processor internal registers can be anything else.

All that said, Matt Burke seems like he already identified the issue 
pretty correctly. The VAX 11/780 Hardware Handbook seems to clearly say 
that bit 3-31 are ignored, and returns as 0 on read. So for that model, 
I guess the value should be masked.

However, this might be different on different CPU models, so I suspect 
this should be applied with care. He was testing VAX/VMS V4.5, which is 
pretty ancient. The models supported by that version would probably only 
be the VAX-11 models. (And yes, I include the 86x0 in the VAX-11 series.)

	Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Simh mailing list