The bVME register class is used for block mode VME accesses.

The register value is a sequence of data items. The first data item corresponds to the VME address obtained by adding the -a and -o attribute values. Subsequent data items are obtained by incrementing the VME address by 2 or 4 bytes as determined by the -d attribute.

The class accepts data values in decimal, hexadecimal or binary format.

All address variables are VME addresses and are thus expressed in units of bytes (8 bits).

Register values for the bVME class are text strings.

Attributes :-

-a    VME base address

-o    offset

-w    width of VME address in bits. Options are 16; 24; 32.

-d    width of VME data access in bits. Options are 16; 32.

-u    use. Options are d (data); p (program).

-m    mode. Options are n (non-privileged); s (supervisory).

-m    VME address modifier.

If a numeric value is supplied this is taken to be a VME address modifier and the -u and -w attributes are ignored. Otherwise the -m, -u and -w attributes are taken to define the VME address modifier.

-p    access permission (rw, ro, wo)

-z    data format

-l    length

-i    initial value

default attributes     :   -a 0x0 -o 0x0 -w 32 -d 32 -u d -m n -p rw -l 1 -z x
The default address modifier is thus 0x09 (A32 data access non-privileged)
The default attribute value is used for any attribute not defined by a write-attributes procedure call.

data for write operations may be supplied in any format but the data format attribute (-z) will determine the format used when returning data for read operations.

The absolute VME address of the start address of a block access is given by data area base address + block offset.

The WRITE and READ operations transfer a number (given by the -l attribute) of data words (of width given by the -w attribute).
The INITIALISE operation writes the data value given by the -i attribute to a number of locations given by the -l attribute. This is useful for setting all locations in a data buffer to a given value.