MAINSAIL Language Manual, Appendix D

previous   next   top   contents   index   framed top   this page unframed


D. Target System Attributes

This appendix describes the bits that may be set in the system macro $attributes. The identifiers denoting them are:

$bigEndian
$fileNamesAreCaseSensitive
$halfDuplex
$hasFileVersions
$onesComplement

The programmer must use the identifiers rather than the associated values, since XIDAK reserves the right to change the values. If necessary, values may be examined with MAINDEBUG.

$bigEndian is set in $attributes for a given system if and only if the high-order byte of a (LONG) INTEGER or (LONG) BITS value is stored at the lowest address (of all the bytes containing the value), and vice versa. A system where this is true is said to be big-endian; the opposite (little-endian) means that low-order bytes are stored at low addresses, and high-order bytes at high addresses.

$fileNamesAreCaseSensitive is set if case is distinguished on operating system file names, as on UNIX; case is considered to be distinguished if it is possible, for example, for FOO and foo to refer to different files.

$halfDuplex is set if full-duplex terminal I/O is not supported.

$hasFileVersions is set if the target operating system's file system supports file version numbers, as on VAX/VMS. $hasFileVersions is also maintained on a per-device-MODULE basis, and may be set in the $fileAttr field of the $fileInfoCls record returned by $fileInfo if the device on which the file resides has file versions; see Section 35.4.

$onesComplement is set if negative INTEGERs are represented in ones'-complement form (the two's-complement form is far more common).


previous   next   top   contents   index   framed top   this page unframed

MAINSAIL Language Manual, Appendix D