[Info-vax] VAX vs. MV/8000 [was Re: Hard links on VMS ODS5 disks]

Chris Scheers chris at applied-synergy.com
Sun Aug 27 02:56:31 EDT 2023


Arne Vajhøj wrote:

> DG approach seems more elegant as it must have
> allowed new 32 bit code to call old 16 bit code
> within the same program. If someone knew how to
> ensure that everything got set up properly (somewhat
> similar to VMS code today using 64 bit pointers needing
> to call code using 32 bit pointers - you better have
> the data in P0 and not P2).

Actually, DG's approach allows mixing NOVA, Eclipse, and MV instructions 
in the same instruction stream.  Actually, it not only allowed, it is 
normal to do this.

The advantage is instruction size. NOVA instructions are one word (16 
bits). Eclipse instructions are 1 or 2 word, and MV instructions are 1 
to 4 words. They are actually pretty elegant about how you can mix them.

If you need a 32 bit result, you use an MV instruction.

If you need a 16 bit (or less) result, you can use any of the instructions.

In general, MV instructions can reference the whole 4GB memory space 
directly.

NOVA and Eclipse instructions are still 16 bit, but 32 bit aware.

PC relative branches can use NOVA or Eclipse instructions if the branch 
destination is in the range of the shorter offset in the instruction. 
Otherwise, MV instructions are used for "long" branches.

NOVA and Eclipse instructions running on an MV can directly address the 
first 32KW of the current ring.

16 bit results in registers are extended to 32 bits.

A lot of DG programming is based on the idea of a conditional skip. A 
skip increments the PC by 1.  So it is very common to have an MV 
instruction with a conditional skip that is directly followed by a NOVA 
or (one word) Eclipse instruction.

-- 
-----------------------------------------------------------------------
Chris Scheers, Applied Synergy, Inc.

Voice: 817-237-3360            Internet: chris at applied-synergy.com
   Fax: 817-237-3074



More information about the Info-vax mailing list