How are the X-instructions encoded?

XDECO

XDECO has operation code X'53'. It is a simple type RX instruction, 4 bytes long.

Example: XDECO 6,12(0,15)

This is encoded as: X'5360F00C'.


XDECI

XDECI has operation code X'52'. It is a simple type RX instruction, 4 bytes long.

Example: XDECI 8,20(0,12)

This is encoded as: C'5280C014'


XREAD

XREAD has an operation code which is essentially 1.5 bytes long, that is a byte plus an extra hex digit known as a "mask". Its operation code is X'E00' or X'E0' with a mask of 0.

It is encoded in the following format:

     opcode    mask   index   base    displacement   length

The length is encoded as a D(B) value with B = 0.

XREAD is encoded in 6 bytes.

Example: XREAD 42(4,15),80

This is encoded as: X'E004F02A0050' where:


XPRNT

XPRNT has an operation code which is essentially 1.5 bytes long, that is a byte plus an extra hex digit known as a "mask". Its operation code is X'E02' or X'E0' with a mask of 2.

It is encoded in the following format:

     opcode    mask   index   base    displacement   length

The length is encoded as a D(B) value with B = 0.

XPRNT is encoded in 6 bytes.

Example: XPRNT 60(5,11),121

This is encoded as: X'E025B03C0079' where:


XDUMP (no arguments)

If XDUMP is used with no arguments, it has operation code X'E1'. It is encoded as 6 bytes: 1 byte for the operation code followed by 5 bytes which are ignored.

Example: XDUMP

This may be encoded as X'E10000000000' (but actually the last 5 bytes could contain anything and will be ignored).


XDUMP (with arguments)

XDUMP has an operation code which is essentially 1.5 bytes long, that is a byte plus an extra hex digit known as a "mask". Its operation code is X'E00' or X'E0' with a mask of 6.

It is encoded in the following format:

     opcode    mask   index   base    displacement   length

The length is encoded as a D(B) value with B = 0.

XDUMP is encoded in 6 bytes.

Example: XDUMP 14(3,10),28

This is encoded as: X'E063A00E001C' where: