Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

:=

=

@

ACCOUNTING

ALLOCATE

ANALYZE

APPEND

ASSIGN

ATTACH

AUTHORIZE

AUTOGEN

BACKUP

CALL

CANCEL

CLOSE

CONNECT

CONTINUE

CONVERT

COPY

CREATE

DEALLOCATE

DEASSIGN

DEBUG

DECK

DEFINE

DELETE

DEPOSIT

DIFFERENCES

DIRECTORY

DISCONNECT

DISKQUOTA

DISMOUNT

DUMP

EDIT

ENCRYPT

EOD

EOJ

EXAMINE

EXCHANGE

EXIT

FDL

GOSUB

GOTO

HELP

IF

INITIALIZE

INQUIRE

INSTALL

JOB

LATCP

LIBRARY

LICENSE

LINK

LOGIN

LOGOUT

MACRO

MAIL

MERGE

MESSAGE

MONITOR

MOUNT

NCP

NCS

ON

OPEN

PASSWORD

PATCH

PHONE

PRINT

PURGE

READ

RECALL

RECOVER

RENAME

REPLY

REQUEST

RETURN

RMS

RUN

RUNOFF

SEARCH

SET

SHOW

SORT

SPAWN

START

STOP

SUBMIT

SYNCHRONIZE

SYSGEN

SYSMAN

TFF

TYPE

UNLOCK

WAIT

WRITE

Errors

Hints

Instructions

Lexicals

Line editing

Queues

RTL Routines

Specify

Symbol Assign

System Services

V50 NewFeatures

Batch and print jobs

Command procedures

Contacting people

Creating processes

Developing programs

Executing programs

Files and directories

Logical names

Operators in expressions

Physical devices

System management

Terminal environment

User environment

F$CVSI

F$CVTIME

F$CVUI

F$DIRECTORY

F$EDIT

F$ELEMENT

F$ENVIRONMENT

F$EXTRACT

F$FAO

F$FILE_ATTRIBUTES

F$GETDVI

F$GETJPI

F$GETQUI

F$GETSYI

F$IDENTIFIER

F$INTEGER

F$LENGTH

F$LOCATE

F$MESSAGE

F$MODE

F$PARSE

F$PID

F$PRIVILEGE

F$PROCESS

F$SEARCH

F$SETPRV

F$STRING

F$TIME

F$TRNLNM

F$TYPE

F$USER

F$VERIFY

Return Value

bit-position

width

string

Examples

Return Value

input time

output time

field

Examples

Return Value

bit-position

width

string

Example

Return Value

example

Return Value

string

edit-list

Examples

Return Value

element-number

delimiter

string

Example

Return Value

item

Examples

Return Value

offset

length

string

Examples

Return Value

control-string

arg1,arg2...arg15

Examples

Return Value

file-spec

item

Examples

Return Value

device-name

item

Example

Return Value

pid

item

Example

Return Value

function

item

object-id

flags

Examples

Return Value

item

node

Examples

Return Value

identifier

conversion-type

Examples

Return Value

expression

Example

Return Value

string

Example

Return Value

substring

string

Examples

Return Value

status-code

Example

Return Value

Example

Return Value

file-spec

default-spec

related-spec

field

parse-type

Examples

Return Value

context-symbol

Example

Return Value

priv-states

Example

Return Value

Example

Return Value

file-spec

stream-id

Examples

Return Value

priv-states

Examples

Return Value

expression

Example

Return Value

Example

Return Value

logical-name

table

index

mode

case

item

Examples

Return Value

symbol

Examples

Return Value

Example

Return Value

procedure-value

image-value

Examples

DTK$

LIB$

MTH$

OTS$

PPL$

SMG$

STR$

DTK$ANSWER_PHONE

DTK$CHECK_HDWR_STATUS

DTK$DIAL_PHONE

DTK$HANGUP_PHONE

DTK$INITIALIZE

DTK$LOAD_DICTIONARY

DTK$READ_KEYSTROKE

DTK$READ_STRING

DTK$RETURN_LAST_INDEX

DTK$SET_INDEX

DTK$SET_KEYPAD_MODE

DTK$SET_LOGGING_MODE

DTK$SET_MODE

DTK$SET_SPEECH_MODE

DTK$SET_TERMINAL_MODE

DTK$SET_VOICE

DTK$SPEAK_FILE

DTK$SPEAK_PHONEMIC_TEXT

DTK$SPEAK_TEXT

DTK$SPELL_TEXT

DTK$TERMINATE

LIB$ADAWI

LIB$ADD_TIMES

LIB$ADDX

LIB$ANALYZE_SDESC

LIB$ASN_WTH_MBX

LIB$AST_IN_PROG

LIB$ATTACH

LIB$BBCCI

LIB$BBSSI

LIB$CALLG

LIB$CHAR

LIB$CONVERT_DATE_STRING

LIB$CRC

LIB$CRC_TABLE

LIB$CREATE_DIR

LIB$CREATE_USER_VM_ZONE

LIB$CREATE_VM_ZONE

LIB$CRF_INS_KEY

LIB$CRF_INS_REF

LIB$CRF_OUTPUT

LIB$CURRENCY

LIB$CVT_DX_DX

LIB$CVT_FROM_INTERNAL_TIME

LIB$CVTF_FROM_INTERNAL_TIME

LIB$CVT_TO_INTERNAL_TIME

LIB$CVTF_TO_INTERNAL_TIME

LIB$CVT_VECTIM

LIB$DATE_TIME

LIB$DAY

LIB$DAY_OF_WEEK

LIB$DECODE_FAULT

LIB$DEC_OVER

LIB$DELETE_FILE

LIB$DELETE_LOGICAL

LIB$DELETE_SYMBOL

LIB$DELETE_VM_ZONE

LIB$DIGIT_SEP

LIB$DISABLE_CTRL

LIB$DO_COMMAND

LIB$EDIV

LIB$EMODD

LIB$EMODF

LIB$EMODG

LIB$EMODH

LIB$EMUL

LIB$ENABLE_CTRL

LIB$ESTABLISH

LIB$EXTV

LIB$EXTZV

LIB$FID_TO_NAME

LIB$FILE_SCAN

LIB$FILE_SCAN_END

LIB$FIND_FILE

LIB$FIND_FILE_END

LIB$FIND_IMAGE_SYMBOL

LIB$FIND_VM_ZONE

LIB$FIXUP_FLT

LIB$FLT_UNDER

LIB$FORMAT_DATE_TIME

LIB$FREE_DATE_TIME_CONTEXT

LIB$FREE_EF

LIB$FREE_LUN

LIB$FREE_TIMER

LIB$FREE_VM

LIB$FREE_VM_PAGE

LIB$GETDVI

LIB$GETJPI

LIB$GETQUI

LIB$GETSYI

LIB$GET_COMMAND

LIB$GET_COMMON

LIB$GET_DATE_FORMAT

LIB$GET_EF

LIB$GET_FOREIGN

LIB$GET_INPUT

LIB$GET_LUN

LIB$GET_MAXIMUM_DATE_LENGTH

LIB$GET_SYMBOL

LIB$GET_USERS_LANGUAGE

LIB$GET_VM

LIB$GET_VM_PAGE

LIB$ICHAR

LIB$INDEX

LIB$INIT_DATE_TIME_CONTEXT

LIB$INIT_TIMER

LIB$INSERT_TREE

LIB$INSQHI

LIB$INSQTI

LIB$INSV

LIB$INT_OVER

LIB$LEN

LIB$LOCC

LIB$LOOKUP_KEY

LIB$LOOKUP_TREE

LIB$LP_LINES

LIB$MATCHC

LIB$MATCH_COND

LIB$MOVC3

LIB$MOVC5

LIB$MOVTC

LIB$MOVTUC

LIB$MULT_DELTA_TIME

LIB$MULTF_DELTA_TIME

LIB$PAUSE

LIB$POLYD

LIB$POLYF

LIB$POLYG

LIB$POLYH

LIB$PUT_COMMON

LIB$PUT_OUTPUT

LIB$RADIX_POINT

LIB$REMQHI

LIB$REMQTI

LIB$RENAME_FILE

LIB$RESERVE_EF

LIB$RESET_VM_ZONE

LIB$REVERT

LIB$RUN_PROGRAM

LIB$SCANC

LIB$SCOPY_DXDX

LIB$SCOPY_R_DX

LIB$SET_LOGICAL

LIB$SET_SYMBOL

LIB$SFREE1_DD

LIB$SFREEN_DD

LIB$SGET1_DD

LIB$SHOW_TIMER

LIB$SHOW_VM

LIB$SHOW_VM_ZONE

LIB$SIGNAL

LIB$SIG_TO_RET

LIB$SIG_TO_STOP

LIB$SIM_TRAP

LIB$SKPC

LIB$SPANC

LIB$SPAWN

LIB$STAT_TIMER

LIB$STAT_VM

LIB$STOP

LIB$SUB_TIMES

LIB$SUBX

LIB$SYS_ASCTIM

LIB$SYS_FAO

LIB$SYS_FAOL

LIB$SYS_GETMSG

LIB$TPARSE

LIB$TRA_ASC_EBC

LIB$TRA_EBC_ASC

LIB$TRAVERSE_TREE

LIB$TRIM_FILESPEC

LIB$VERIFY_VM_ZONE

LIB$WAIT

LIB$CVT xTB

LIB$FFx

MTH$CCOS

MTH$CEXP

MTH$CLOG

MTH$CMPLX

MTH$CONJG

MTH$CSIN

MTH$CSQRT

MTH$HACOS

MTH$HACOSD

MTH$HASIN

MTH$HASIND

MTH$HATAN

MTH$HATAND

MTH$HATAN2

MTH$HATAND2

MTH$HATANH

MTH$HCOS

MTH$HCOSD

MTH$HCOSH

MTH$HEXP

MTH$HLOG

MTH$HLOG2

MTH$HLOG10

MTH$HSIN

MTH$HSIND

MTH$HSINH

MTH$HSQRT

MTH$HTAN

MTH$HTAND

MTH$HTANH

MTH$RANDOM

MTH$UMAX

MTH$UMIN

MTH$xACOS

MTH$xACOSD

MTH$xASIN

MTH$xASIND

MTH$xATAN

MTH$xATAND

MTH$xATAN2

MTH$xATAND2

MTH$xATANH

MTH$CxABS

MTH$CxCOS

MTH$CxEXP

MTH$CxLOG

MTH$xCMPLX

MTH$xCONJG

MTH$xCOS

MTH$xCOSD

MTH$xCOSH

MTH$CxSIN

MTH$CxSQRT

MTH$CVT x x

MTH$CVT xA xA

MTH$xEXP

MTH$xIMAG

MTH$xLOG

MTH$xLOG2

MTH$xLOG10

MTH$xREAL

MTH$xSIN

MTH$xSINCOS

MTH$xSINCOSD

MTH$xSIND

MTH$xSINH

MTH$xSQRT

MTH$xTAN

MTH$xTAND

MTH$xTANH

OTS$CNVOUT

OTS$CVT_L_TB

OTS$CVT_L_TI

OTS$CVT_L_TL

OTS$CVT_L_TO

OTS$CVT_L_TU

OTS$CVT_L_TZ

OTS$CVT_TB_L

OTS$CVT_TI_L

OTS$CVT_TL_L

OTS$CVT_TO_L

OTS$CVT_TU_L

OTS$CVT_TZ_L

OTS$DIV_PK_LONG

OTS$DIV_PK_SHORT

OTS$MOVE3

OTS$MOVE5

OTS$POWDD

OTS$POWDJ

OTS$POWDR

OTS$POWGG

OTS$POWGJ

OTS$POWHH_R3

OTS$POWHJ_R3

OTS$POWII

OTS$POWJJ

OTS$POWLULU

OTS$POWRD

OTS$POWRJ

OTS$POWRR

OTS$SCOPY_DXDX

OTS$SCOPY_R_DX

OTS$SFREE1_DD

OTS$SFREEN_DD

OTS$SGET1_DD

OTS$CVT T z

OTS$CVT T z

OTS$DIVCx

OTS$MULCx

OTS$POWCxCx

OTS$POWCxJ

OTS$POWxLU

PPL$ADJUST_QUORUM

PPL$AWAIT_EVENT

PPL$CREATE_BARRIER

PPL$CREATE_EVENT

PPL$CREATE_SEMAPHORE

PPL$CREATE_SHARED_MEMORY

PPL$CREATE_SPIN_LOCK

PPL$CREATE_VM_ZONE

PPL$DECREMENT_SEMAPHORE

PPL$DELETE_SHARED_MEMORY

PPL$ENABLE_EVENT_AST

PPL$ENABLE_EVENT_SIGNAL

PPL$FIND_SYNCH_ELEMENT_ID

PPL$FLUSH_SHARED_MEMORY

PPL$GET_INDEX

PPL$INCREMENT_SEMAPHORE

PPL$INDEX_TO_PID

PPL$INITIALIZE

PPL$PID_TO_INDEX

PPL$READ_BARRIER

PPL$READ_EVENT

PPL$READ_SEMAPHORE

PPL$RELEASE_SPIN_LOCK

PPL$SEIZE_SPIN_LOCK

PPL$SET_QUORUM

PPL$SPAWN

PPL$STOP

PPL$TERMINATE

PPL$TRIGGER_EVENT

PPL$UNIQUE_NAME

PPL$WAIT_AT_BARRIER

SMG$ADD_KEY_DEF

SMG$BEGIN_DISPLAY_UPDATE

SMG$BEGIN_PASTEBOARD_UPDATE

SMG$CANCEL_INPUT

SMG$CHANGE_PBD_CHARACTERISTICS

SMG$CHANGE_RENDITION

SMG$CHANGE_VIEWPORT

SMG$CHANGE_VIRTUAL_DISPLAY

SMG$CHECK_FOR_OCCLUSION

SMG$CONTROL_MODE

SMG$COPY_VIRTUAL_DISPLAY

SMG$CREATE_KEY_TABLE

SMG$CREATE_MENU

SMG$CREATE_PASTEBOARD

SMG$CREATE_SUBPROCESS

SMG$CREATE_VIRTUAL_DISPLAY

SMG$CREATE_VIRTUAL_KEYBOARD

SMG$CREATE_VIEWPORT

SMG$CURSOR_COLUMN

SMG$CURSOR_ROW

SMG$DEFINE_KEY

SMG$DEL_TERM_TABLE

SMG$DELETE_CHARS

SMG$DELETE_KEY_DEF

SMG$DELETE_LINE

SMG$DELETE_MENU

SMG$DELETE_PASTEBOARD

SMG$DELETE_SUBPROCESS

SMG$DELETE_VIEWPORT

SMG$DELETE_VIRTUAL_DISPLAY

SMG$DELETE_VIRTUAL_KEYBOARD

SMG$DISABLE_BROADCAST_TRAPPING

SMG$DISABLE_UNSOLICITED_INPUT

SMG$DRAW_CHARACTER

SMG$DRAW_LINE

SMG$DRAW_RECTANGLE

SMG$ENABLE_UNSOLICITED_INPUT

SMG$END_DISPLAY_UPDATE

SMG$END_PASTEBOARD_UPDATE

SMG$ERASE_CHARS

SMG$ERASE_COLUMN

SMG$ERASE_DISPLAY

SMG$ERASE_LINE

SMG$ERASE_PASTEBOARD

SMG$EXECUTE_COMMAND

SMG$FIND_CURSOR_DISPLAY

SMG$FLUSH_BUFFER

SMG$GET_BROADCAST_MESSAGE

SMG$GET_CHAR_AT_PHYSICAL_CURSOR

SMG$GET_DISPLAY_ATTR

SMG$GET_KEY_DEF

SMG$GET_KEYBOARD_ATTRIBUTES

SMG$GET_NUMERIC_DATA

SMG$GET_PASTEBOARD_ATTRIBUTES

SMG$GET_PASTING_INFO

SMG$GET_TERM_DATA

SMG$GET_VIEWPORT_CHAR

SMG$HOME_CURSOR

SMG$INIT_TERM_TABLE

SMG$INIT_TERM_TABLE_BY_TYPE

SMG$INSERT_CHARS

SMG$INSERT_LINE

SMG$INVALIDATE_DISPLAY

SMG$KEYCODE_TO_NAME

SMG$LABEL_BORDER

SMG$LIST_KEY_DEFS

SMG$LIST_PASTING_ORDER

SMG$LOAD_KEY_DEFS

SMG$LOAD_VIRTUAL_DISPLAY

SMG$MOVE_TEXT

SMG$MOVE_VIRTUAL_DISPLAY

SMG$NAME_TO_KEYCODE

SMG$PASTE_VIRTUAL_DISPLAY

SMG$POP_VIRTUAL_DISPLAY

SMG$PRINT_PASTEBOARD

SMG$PUT_CHARS

SMG$PUT_CHARS_HIGHWIDE

SMG$PUT_CHARS_MULTI

SMG$PUT_CHARS_WIDE

SMG$PUT_HELP_TEXT

SMG$PUT_LINE

SMG$PUT_LINE_HIGHWIDE

SMG$PUT_LINE_MULTI

SMG$PUT_LINE_WIDE

SMG$PUT_PASTEBOARD

SMG$PUT_STATUS_LINE

SMG$READ_COMPOSED_LINE

SMG$READ_FROM_DISPLAY

SMG$READ_KEYSTROKE

SMG$READ_STRING

SMG$READ_VERIFY

SMG$REMOVE_LINE

SMG$REPAINT_LINE

SMG$REPAINT_SCREEN

SMG$REPASTE_VIRTUAL_DISPLAY

SMG$REPLACE_INPUT_LINE

SMG$RESTORE_PHYSICAL_SCREEN

SMG$RETURN_CURSOR_POS

SMG$RETURN_INPUT_LINE

SMG$RING_BELL

SMG$SAVE_PHYSICAL_SCREEN

SMG$SAVE_VIRTUAL_DISPLAY

SMG$SCROLL_DISPLAY_AREA

SMG$SCROLL_VIEWPORT

SMG$SELECT_FROM_MENU

SMG$SET_BROADCAST_TRAPPING

SMG$SET_CURSOR_ABS

SMG$SET_CURSOR_MODE

SMG$SET_CURSOR_REL

SMG$SET_DEFAULT_STATE

SMG$SET_DISPLAY_SCROLL_REGION

SMG$SET_KEYPAD_MODE

SMG$SET_OUT_OF_BAND_ASTS

SMG$SET_PHYSICAL_CURSOR

SMG$SET_TERM_CHARACTERISTICS

SMG$SNAPSHOT

SMG$UNPASTE_VIRTUAL_DISPLAY

STR$ADD

STR$ANALYZE_SDESC

STR$APPEND

STR$CASE_BLIND_COMPARE

STR$COMPARE

STR$COMPARE_EQL

STR$COMPARE_MULTI

STR$CONCAT

STR$COPY_DX

STR$COPY_R

STR$DIVIDE

STR$DUPL_CHAR

STR$ELEMENT

STR$FIND_FIRST_IN_SET

STR$FIND_FIRST_NOT_IN_SET

STR$FIND_FIRST_SUBSTRING

STR$FREE1_DX

STR$GET1_DX

STR$LEFT

STR$LEN_EXTR

STR$MATCH_WILD

STR$MUL

STR$POSITION

STR$POS_EXTR

STR$PREFIX

STR$RECIP

STR$REPLACE

STR$RIGHT

STR$ROUND

STR$TRANSLATE

STR$TRIM

STR$UPCASE

UIC

Date Time

Expression

File Spec

Integer

Privilege

Protection

String

Symbol

Absolute

Combination

Delta

Arithmetic

String

ACNT

ALL

ALLSPOOL

ALTPRI

BUGCHK

BYPASS

CMEXEC

CMKRNL

DETACH

DIAGNOSE

EXQUOTA

GROUP

GRPNAM

GRPPRV

LOG_IO

MOUNT

NETMBX

OPER

PFNMAP

PHY_IO

PRMCEB

PRMGBL

PRMMBX

PSWAPM

READALL

SECURITY

SETPRV

SHARE

SHMEM

SYSGBL

SYSLCK

SYSNAM

SYSPRV

TMPMBX

VOLPRO

WORLD

Parameters

Examples

String Assign

Parameters

Examples

$ABORT_RU

$ADD_HOLDER

$ADD_IDENT

$ADJSTK

$ADJWSL

$ALLOC

$ASCEFC

$ASCTIM

$ASCTOID

$ASSIGN

$BINTIM

$BRKTHRU

$BRKTHRUW

$CANCEL

$CANEXH

$CANTIM

$CANWAK

$CHANGE_ACL

$CHECK_ACCESS

$CHKPRO

$CLREF

$CMEXEC

$CMKRNL

$CNTREG

$COMMIT_RU

$CRELNM

$CRELNT

$CREMBX

$CREPRC

$CREATE_RDB

$CRETVA

$CRMPSC

$DACEFC

$DALLOC

$DASSGN

$DCLAST

$DCLCMH

$DCLEXH

$DELLNM

$DELMBX

$DELPRC

$DELTVA

$DEQ

$DGBLSC

$DISMOU

$DLCEFC

$END_RU

$ENQ

$ENQW

$ERAPAT

$EXIT

$EXPREG

$FAO

$FILESCAN

$FIND_HELD

$FIND_HOLDER

$FINISH_RDB

$FORCEX

$FORMAT_ACL

$GETDVI

$GETDVIW

$GETJPI

$GETJPIW

$GETLKI

$GETLKIW

$GETMSG

$GETQUI

$GETQUIW

$GETSYI

$GETSYIW

$GETTIM

$GETUAI

$GRANTID

$HIBER

$IDTOASC

$LCKPAG

$LKWSET

$MGBLSC

$MOD_HOLDER

$MOD_IDENT

$MOUNT

$MTACCESS

$NUMTIM

$PARSE_ACL

$PREPARE_RU

$PURGWS

$PUTMSG

$QIO

$QIOW

$READEF

$REM_HOLDER

$REM_IDENT

$RESUME

$REVOKID

$SCHDWK

$SETAST

$SETEF

$SETEXV

$SETIME

$SETIMR

$SETPRA

$SETPRI

$SETPRN

$SETPRT

$SETPRV

$SETRWM

$SETSFM

$SETSSF

$SETSTK

$SETSWM

$SETUAI

$SNDERR

$SNDJBC

$SNDJBCW

$SNDOPR

$START_RU

$SUSPND

$SYNCH

SYS$RMSRUNDWN

SYS$SETDDIR

SYS$SETDFPROT

$TRNLNM

$ULKPAG

$ULWSET

$UNWIND

$UPDSEC

$UPDSECW

$WAITFR

$WAKE

$WFLAND

$WFLOR

HELP — VMS 5.0

Additional information available:

:==@ACCOUNTINGALLOCATEANALYZE
APPENDASSIGNATTACHAUTHORIZEAUTOGENBACKUP
CALLCANCELCLOSECONNECTCONTINUECONVERTCOPY
CREATEDEALLOCATEDEASSIGNDEBUGDECKDEFINE
DELETEDEPOSITDIFFERENCESDIRECTORYDISCONNECT
DISKQUOTADISMOUNTDUMPEDITENCRYPTEOD
EOJEXAMINEEXCHANGEEXITFDLGOSUBGOTO
HELPIFINITIALIZEINQUIREINSTALLJOBLATCP
LIBRARYLICENSELINKLOGINLOGOUTMACROMAIL
MERGEMESSAGEMONITORMOUNTNCPNCSON
OPENPASSWORDPATCHPHONEPRINTPURGEREAD
RECALLRECOVERRENAMEREPLYREQUESTRETURNRMS
RUNRUNOFFSEARCHSETSHOWSORTSPAWN
STARTSTOPSUBMITSYNCHRONIZESYSGENSYSMAN
TFFTYPEUNLOCKWAITWRITE

ErrorsHintsInstructionsLexicalsLine editingQueuesRTL Routines
SpecifySymbol AssignSystem ServicesV50 NewFeatures

Errors

 Errors are displayed in the format:

       %facility-l-ident, text

 facility   is the name of the facility that produced the  error  (for
           example, CLI for the Command Language Interpreter).

 l          is a one letter code indicating the severity of the error.
           The severities are:

                I - Informational      E - Error
                S - Success            F - Severe error
                W - Warning

 ident      is an abbreviation for the message text.

 text       is a short description of the nature of the error.

Hints

 Type the name of one of the categories listed below to obtain a list
 of related commands and topics.  To obtain detailed information on a
 topic, press the RETURN key until you reach the "Topic?" prompt and then
 type the name of the topic.

 Topics that appear in all upper case are DCL commands.

Additional information available:

Batch and print jobsCommand proceduresContacting peopleCreating processes
Developing programsExecuting programsFiles and directoriesLogical names
Operators in expressionsPhysical devicesSystem managementTerminal environment
User environment

Batch and print jobs

   Submitting batch and print jobs and controlling batch and print queues.

 ASSIGN/MERGE      Moves jobs from one queue to another.
 ASSIGN/QUEUE      Assigns a queue to a device.
 DEASSIGN/QUEUE    Deassigns a queue from a device.
 DELETE/ENTRY      Deletes a job or jobs from a queue.
 DELETE/QUEUE      Deletes a queue and all its jobs.
 INITIALIZE/QUEUE  Creates and initializes a queue.
 PRINT             Places a job in a print queue.
 SET QUEUE         Changes the current status or attributes of a queue.
 SET QUEUE/ENTRY   Changes the attributes of a job.
 SHOW PRINTER      Displays default characteristics defined for a printer.
 SHOW QUEUE        Displays the attributes of the jobs in a queue.
 START/QUEUE       Starts or restarts a queue.
 STOP/QUEUE        Stops a queue.
 SUBMIT            Places a job in a batch queue.
 SYNCHRONIZE       Suspends processing until a specified job completes.

 Type ? to display the list of HINTS.
 Type BATCH_AND_PRINT_JOBS to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Command procedures

   Performing operations specific to command procedures.

 @                 Describes how to invoke command procedures.
 Lexical           Describes functions that can be used in expressions.
 Specify           Describes valid values and expressions.
 Symbol_Assign     Describes symbol assigments statements.

 CALL              Transfers control to a labeled subroutine in a
                   command prodecure and creates a new procedure level.
 DECK              Marks the beginning of a special input stream.
 DELETE/SYMBOL     Deletes one or more names from a symbol table.
 ENDSUBROUTINE     Ends a CALL subroutine and returns control to the
                   command following the CALL command.
 EOD               Marks the end of a special input stream.
 EXIT              Terminates a command procedure.
 GOSUB             Transfers control to a labeled subroutine in a
                   command procedure.
 GOTO              Transfers control to a label in a command procedure.
 IF                Executes a command only if an expression is true.
 INQUIRE           Requests input and assigns the result to a symbol.
 ON                Specifies an action to perform when a condition occurs.
 RETURN            Terminates a GOSUB subroutine procedure and returns
                   control to the command following the calling GOSUB
                   command.
 SET CONTROL       Controls the use of the CTRL/T and CTRL/Y keys.
 SET ON            Sets error checking on or off.
 SET RESTART_VALUE Sets the value of a batch job restart symbol.
 SET VERIFY        Displays command input as it is read.
 SHOW SYMBOL       Displays the value of a symbol.
 SUBROUTINE        Begins a CALL subroutine.
 WAIT              Suspends processing for a specified period of time.

 OPEN              Makes a file available for reading or writing.
 CLOSE             Terminates processing of a file.
 READ              Reads and optionally deletes a record from an open file.
 WRITE             Writes a record to an open file.

 Type ? to display the list of HINTS.
 Type COMMAND_PROCEDURES to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Contacting people

   Communicating with other people using the system.

 MAIL              Sends/reads messages to/from other users.
 PHONE             Permits users to communicate by typing messages to
                   one another's terminal screens.
 REPLY             Displays a message on one or more terminal screens.
 REQUEST           Displays a message on the operator's console.

 SHOW USERS        Lists the interactive users on the system.

 Type ? to display the list of HINTS.
 Type CONTACTING_PEOPLE to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Creating processes

   Create and switch control between user processes.
   (Also see Batch_and_print_jobs)

 Login             Initiates an interactive terminal session.
 LOGOUT            Terminates an interactive terminal session.
 SET PASSWORD      Changes your password.

 ANALYZE/PROCESS   Analyzes a process dump.
 ATTACH            Switches your terminal between SPAWNed processes.
 CONNECT           Connects a physical terminal to a virtual terminal.
 DISCONNECT        Disconnects a physical terminal from a virtual terminal.
 PRINT             Creates a print job.
 RUN/PROCESS       Creates a detached process or subprocess.
 SET HOST          Connects your terminal to another system via DECnet.
 SHOW NETWORK      Displays the nodes you can reach from your system.
 SPAWN             Creates a subprocess with a similar environment.
 SUBMIT            Creates a batch job.

 Type ? to display the list of HINTS.
 Type CREATING_PROCESSES to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Developing programs

   Creating and debugging images.
   (Also see Executing_programs and Files_and_directories)

 ANALYZE/IMAGE     Analyzes an image file.
 ANALYZE/OBJECT    Analyzes an object module.
 DEBUG             Invokes the symbolic debugger after a CTRL/Y.
 DEPOSIT           Changes the contents of memory.
 DIFFERENCES       Displays differences in content between two files.
 DUMP              Displays the uninterpreted contents of a file.
 EDIT              Creates (optionally) and edits a file.
 EXAMINE           Displays the contents of memory.
 LIBRARY           Creates or modifies various kinds of libraries.
 LINK              Creates images from object modules.
 MACRO             Creates object modules from macro source programs.
 MESSAGE           Creates object modules from message source programs.
 PATCH             Patches an image.
 RUN               Runs an executable image.
 SET COMMAND       Updates the commands available to the process.

 Type ? to display the list of HINTS.
 Type DEVELOPING_PROGRAMS to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Executing programs

   Running executable images.
   (Also see Developing_programs and Files_and_directories)

 CANCEL            Cancels a scheduled wakeup request.
 CONTINUE          Resumes execution of an interrupted command.
 DEBUG             Invokes the VMS Debugger after a CTRL/Y.
 DEPOSIT           Changes the contents of memory.
 EXAMINE           Displays the contents of memory.
 EXIT              Terminates execution of an image or command procedure.
 RUN               Runs an image.
 SET COMMAND       Updates the commands available to the process.
 STOP              Abruptly terminates execution of an image, process, or
                   command procedure.

 Type ? to display the list of HINTS.
 Type EXECUTING_PROGRAMS to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Files and directories

   Saving and cataloging information on storage devices.
   (Also see Developing_programs and Executing_programs)

 APPEND            Appends one file to another.
 COPY              Creates a copy of an existing file or files.
 CREATE            Creates a new file.
 DELETE            Deletes a file or files.
 DIFFERENCES       Displays differences in content between two files.
 DIRECTORY         Displays the names of the files in a directory.
 EDIT              Creates (optionally) and edits a file.
 MERGE             Merges sorted files.
 PRINT             Prints the contents of a file.
 PURGE             Deletes old versions of a file or files.
 RENAME            Recataloges an existing file.
 SEARCH            Locates a character string within a file or files.
 SORT              Sorts the data in a file.
 TYPE              Displays the contents of a file.

 SET DEFAULT       Changes the default device and directory.
 SHOW DEFAULT      Displays the default device and directory.

 ANALYZE/RMS_FILE  Analyzes the internal structure of a file.
 CONVERT           Changes the attributes of a file.
 CONVERT/RECLAIM   Reclaims unused space in an indexed file.
 CREATE/DIRECTORY  Creates a new directory or subdirectory.
 CREATE/FDL        Creates a new file with tailored attributes.
 DUMP              Displays the uninterpreted contents of a file.
 EDIT/FDL          Creates a file definition file.
 EDIT/SUM          Updates a file with multiple files of edit commands.
 EXCHANGE          Reformats files formatted by other operating systems.
 LIBRARY           Creates or modifies various kinds of libraries.
 RUNOFF            Formats one or more documents (text files).
 SET DIRECTORY     Changes the characterisitcs of a directory.
 SET FILE          Changes the characteristics of a file.
 SET PROTECTION    Changes the protection of a file.
 SET PROTECT/DEF   Changes the default protection given to files.
 SET RMS_DEFAULT   Changes the default block and buffer count values.
 SHOW PROTECTION   Displays the default protection.
 SHOW QUOTA        Displays your quota of space on a disk volume.
 SHOW RMS_DEFAULT  Displays the default block and buffer count values.
 UNLOCK            Closes a file accidentally left open.

 Type ? to display the list of HINTS.
 Type FILES_AND_DIRECTORIES to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Logical names

   Using higher-level names in place of device and file names.
   (Also see Physical_devices)

 ASSIGN            Equates a logical name to an equivalence string.
 CREATE/NAME_TABLE Creates a logical name table.
 DEASSIGN          Deletes a logical name.
 DEFINE            Equates a logical name to an equivalence string.
 SHOW LOGICAL      Displays logical names and their equivalencies.
 SHOW TRANSLATION  Displays a logical name and its first equivalence.

 Type ? to display the list of HINTS.
 Type LOGICAL_NAMES to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Operators in expressions

 Operands in an expression are connected by operators.  If there is more
 than one operator in an expression, the  operator  having  the  highest
 precedence is evaluated first. If an expression contains operators that
 have the same order of precedence, the operations  are  performed  from
 left to  right.  Use  parentheses  to  override  the  normal  order  of
 precedence.

     Operator  Precedence  Description

        +         7        Indicates a positive number
        --        7        Indicates a negative number
        *         6        Multiplies two numbers
        /         6        Divides two numbers
        +         5        Adds two numbers or concatenates two character
                           strings
        --        5        Subtracts two numbers or reduces a string
       .EQS.      4        Tests if two character strings are equal
       .GES.      4        Tests if first string is greater than or equal
                           to second
       .GTS.      4        Tests if first string is greater than second
       .LES.      4        Tests if first string is less than or equal to
                           second
       .LTS.      4        Tests if first string is less than second
       .NES.      4        Tests if two strings are not equal
       .EQ.       4        Tests if two numbers are equal
       .GE.       4        Tests if first number is greater than or equal
                           to second
       .GT.       4        Tests if first number is greater than second
       .LE.       4        Tests if first number is less than or equal
                           to second
       .LT.       4        Tests if first number is less than second
       .NE.       4        Tests if two numbers are not equal
       .NOT.      3        Logically negates a number
       .AND.      2        Combines two numbers with a logical AND
       .OR.       1        Combines two numbers with a logical OR

Physical devices

   Using physical devices.
   (Also see Logical_names, and Terminal_environment)

 ALLOCATE          Allocates a device for your exclusive use.
 DEALLOCATE        Releases an allocated device for general use.
 DISMOUNT          Makes a storage device unavailable for processing.
 INITIALIZE        Formats a storage device.
 MOUNT             Makes a storage device available for processing.

 ANALYZE/DISK      Checks the readability and validity of disks.
 ANALYZE/ERROR_LOG Displays the contents of the system error log.
 ANALYZE/MEDIA     Analyzes the format of a storage device.
 BACKUP            Saves or restores files from storage devices.
 SET CARD_READER   Sets the translation mode for a card reader.
 SET DEVICE        Sets device characteristics.
 SET MAGTAPE       Sets magnetic tape device characteristics.
 SET PRINTER       Sets line printer characteristics.
 SET PROTECT/DEV   Sets protection on a non-files device.
 SET VOLUME        Sets mounted volume characteristics.
 SHOW DEVICES      Displays the status of devices.
 SHOW ERROR        Displays device error counts.
 SHOW MAGTAPE      Displays magnetic tape characteristics.
 SHOW PRINTER      Displays line printer characteristics.

 Type ? to display the list of HINTS.
 Type PHYSICAL_DEVICES to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

System management

   Monitoring, maintaining, tuning, and trouble-shooting the system.
   (Also see Batch_and_print_jobs, Logical_names, and Physical_devices)

 ACCOUNTING        Collects, records, and reports accounting information.
 ANALYZE/CRASH     Analyzes a system dump.
 ANALYZE/DISK      Checks the readability and validity of disks.
 ANALYZE/ERROR_LOG Displays the contents of the system error log.
 ANALYZE/MEDIA     Analyzes the format of a storage device.
 ANALYZE/RMS_FILE  Analyzes the internal structure of a file.
 ANALYZE/SYSTEM    Analyzes the running system.
 BACKUP            Saves or restores files from storage devices.
 MONITOR           Displays performance information on the running system.
 REPLY             Displays a message on one or more terminal screens.
 REQUEST           Displays a message on the operator's console.
 SET ACCOUNTING    Initializes the accounting log file.
 SET AUDIT         Enables auditing of security events.
 SET COMMAND       Updates the commands available to the system.
 SET DAY           Changes the day type.
 SET LOGINS        Sets a limit on the number of interactive users.
 SET TIME          Resets the system clock.
 SHOW ERROR        Displays processor, memory, and device error counts.
 SHOW MEMORY       Displays usage information on memory.
 SHOW SYSTEM       Lists the processes on the running system.
 SHOW USER         Lists the interactive users on the running system.

 Type ? to display the list of HINTS.
 Type SYSTEM_MANAGEMENT to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Terminal environment

   Manipulating your terminal-specific interactive environment
   (Also see Physical_devices)

 Line_editing      Describes how to recall and edit commands.

 CONNECT           Connects a physical terminal to a virtual terminal.
 DEFINE/KEY        Equates terminal function keys to command lines.
 DELETE/KEY        Deletes a terminal function key definition.
 DISCONNECT        Disconnects a physical terminal from a virtual terminal.
 RECALL            Recalls previously entered interactive commands.
 SET CONTROL       Controls the use of the CTRL/T and CTRL/Y keys.
 SET HOST          Connects your terminal to another system via DECnet.
 SET PROMPT        Sets the interactive command prompt.
 SET TERMINAL      Sets terminal characteristics.
 SHOW KEY          Displays one or more function key definitions.
 SHOW TERMINAL     Displays terminal characteristics.

 Type ? to display the list of HINTS.
 Type TERMINAL_ENVIRONMENT to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

User environment

   Examining and controling the user environment.
   (Also see Logical_names, Physical_devices, and Terminal_environment)

 SET COMMAND       Updates the commands available to the process.
 SET CONTROL       Controls the use of the CTRL/T and CTRL/Y keys.
 SET DEFAULT       Changes the default device and directory.
 SET HOST          Connects your terminal to another system via DECnet.
 SET MESSAGE       Overrides or supplements system messages.
 SET PASSWORD      Changes your password.
 SET PROCESS       Changes your process characteristics.
 SET PROMPT        Sets the interactive command prompt.
 SET PROTECT/DEF   Changes the default protection given to files.
 SET RMS_DEFAULT   Changes the default block and buffer count values.
 SET UIC           Changes the UIC of your process.
 SET WORKING_SET   Changes your working set limit or quota.

 SHOW DEFAULT      Displays the default device and directory.
 SHOW KEY          Displays one or more function key definitions.
 SHOW LOGICAL      Displays logical names and their equivalencies.
 SHOW PROCESS      Displays your process characteristics.
 SHOW PROTECTION   Displays the default protection.
 SHOW QUOTA        Displays your quota of space on a disk volume.
 SHOW RMS_DEFAULT  Displays the default block and buffer count values.
 SHOW STATUS       Displays brief process characteristics.
 SHOW SYMBOL       Displays the value of a symbol.
 SHOW TERMINAL     Displays terminal characteristics.
 SHOW TIME         Displays the current date and time.
 SHOW TRANSLATION  Displays a logical name and its first equivalence.
 SHOW WORKING_SET  Displays your working set limit and quota.

 Type ? to display the list of HINTS.
 Type USER_ENVIRONMENT to redisplay this particular hint.
 Press the RETURN key before typing a command or topic name.

Instructions

 Invoking the HELP utility
 -------------------------
 The HELP utility displays information about requested VMS topics.  From
 DCL command level (in response to the $ prompt), you can display a list
 of topics for which help information is available by typing HELP and
 pressing the RETURN key.  The system responds by displaying a brief
 description of how to use HELP, followed by a list of topics for which
 help is available, followed by the prompt "Topic?".

 You can exit from the HELP facility by typing CTRL/Z (that is, pressing
 the CONTROL and Z keys simultaneously) in response to any prompt.

 Specifying topic names
 ----------------------
 To display information on a particular topic, respond to the prompt
 by typing the name of the topic and pressing the RETURN key.

 If you are not sure of the name of the topic for which you need help,
 type the name HINTS.

 To display information on all available topics, type an asterisk (*).

 To display all the information on a topic, type the topic name
 immediately follwed by an ellipsis (...), e.g., SHOW...

 You  can  specify  percent signs  (%) and  asterisks  (*)  in the
 keyword as wild card (i.e., match all) characters.  Abbreviations
 result in all matches being displayed.

 Subtopic information
 --------------------
 The information displayed by HELP on a particular topic includes a
 description of the topic and a list of subtopics that further describe
 the topic.  To display subtopic information, type one of the subtopic
 names from the list in response to the "Subtopic?" prompt.


 Special responses to prompts
 ----------------------------
 If you press RETURN in response to the "Subtopic?" prompt instead of
 typing a subtopic name, the "Topic?" prompt reappears,  enabling you to
 enter another topic name.  If you press RETURN in response to the
 "Topic?" prompt, you will exit from HELP.

 You can type a question mark (?) in response to any of the prompts to
 to redisplay the most recently requested text and a list of topic or
 subtopic names.  For example, if you type ? in response to the "Subtopic?"
 prompt, a list of subtopics is displayed followed by the "Subtopic?"
 prompt.

Lexicals

 A set of functions that return information  about  character  strings
 and attributes of the current process.

Additional information available:

F$CVSIF$CVTIMEF$CVUIF$DIRECTORYF$EDITF$ELEMENT
F$ENVIRONMENTF$EXTRACTF$FAOF$FILE_ATTRIBUTES
F$GETDVIF$GETJPIF$GETQUIF$GETSYIF$IDENTIFIERF$INTEGER
F$LENGTHF$LOCATEF$MESSAGEF$MODEF$PARSEF$PID
F$PRIVILEGEF$PROCESSF$SEARCHF$SETPRVF$STRINGF$TIME
F$TRNLNMF$TYPEF$USERF$VERIFY

F$CVSI

 Extracts bit fields from  character  string  data  and  converts  the
 result, as a signed value, to an integer.

 Format:

      F$CVSI(bit-position,width,string)

Additional information available:

Return Valuebit-positionwidthstringExamples

Return Value

 The integer equivalent of the extracted bit  field,  converted  as  a
 signed value.

bit-position

 The  offset  of  the  first  bit  to  be  extracted.   The  low-order
 (rightmost)  bit of a string is position number 0 for determining the
 offset.  Specify the offset as an integer expression.

width

 The number of bits that are to be  extracted  for  conversion  to  an
 integer value.  Specify the width as an integer expression.

string

 The string from which the bits are taken.  Specify the  string  as  a
 character string expression.

Examples

 1.   $ A[0,32] = %X2B
      $ SHOW SYMBOL A
        A = "+"
      $ X = F$CVSI(0,4,A)
      $ SHOW SYMBOL X
        X = -5   Hex = FFFFFFFB  Octal = 177773

 This example uses an arithmetic overlay  to  assign  the  hexadecimal
 value  2B to all 32 bits of the symbol A.  See the description of the
 Assignment Statement for more information on arithmetic overlays.

 The symbol A has a string value after  the  overlay  because  it  was
 previously  undefined.   (If  a  symbol is undefined, it has a string
 value as a  result  of  an  arithmetic  overlay.   If  a  symbol  was
 previously defined, it retains the same data type after the overlay.)
 The hexadecimal value 2B corresponds to the ASCII value of  the  plus
 sign (+).

 Next, the F$CVSI function extracts the  low-order  4  bits  from  the
 symbol  A;  the low order 4 bits contain the binary representation of
 the hexadecimal value B.  These  bits  are  converted,  as  a  signed
 value,  to  an integer.  The converted value, -5, is assigned to the
 symbol X.

F$CVTIME

 Converts an absolute or a combination time string to a string of  the
 form "yyyy-mm-dd hh:mm:ss.cc".  The F$CVTIME function can also return
 information about an absolute, combination, or delta time string.

 Format:

      F$CVTIME([input_time] [,output_time] [,field])

Additional information available:

Return Valueinput timeoutput timefieldExamples

Return Value

 A character string containing the requested information.

input time

 The time string for which  information  is  requested.   Specify  the
 input  time string as a character string expression.  You can specify
 the input time string as an absolute, combination or delta time.   If
 you  omit  the  time  argument  or  if you specify the time as a null
 string, the current date and time, in absolute time format, is used.

output time

 The time format for the information you want returned.   Specify  the
 output item argument as a character string expression that equates to
 one of the following strings:   ABSOLUTE  The  requested  information
 should be returned in absolute time format "dd-mmm-yyyy hh:mm:ss.cc".
 COMPARISON The requested information should be returned in  the  form
 "yyyy-mm-dd  hh:mm:ss.cc".  DELTA The requested information should be
 returned in delta format.  If you specify DELTA as  the  output  time
 argument,  then  you must also provide a delta time specification for
 the input time argument.

 ABSOLUTE     The requested information should be returned in absolute
              time format.

 COMPARISON   The requested information should be returned in the form
              "yyyy-mm-dd hh:mm:ss.cc".

 DELTA        The requested information should be  returned  in  delta
              format.   If  you  specify  DELTA  as  the  output  time
              argument,  then you  must  also  provide  a  delta  time
              specification for the input time argument.

 If you omit the output time argument, the default is COMPARISON.

field

 The type of information to be returned.  The information is  returned
 in the time format specified by the output time argument.

 Specify the field argument as  a  character  string  expression  that
 evaluates to one of the following strings:

 DATE       The date field is returned.

 DATETIME   The entire date and time string is returned.

 DAY        The day field is returned.

 HOUR       The hour field is returned.

 HUNDREDTH  The hundredth of a second field is returned.

 MINUTE     The minute field is returned.

 MONTH      The month field is returned.  You cannot specify MONTH  if
            you  also specify  a delta input time and the DELTA output
            time argument.

 SECOND     The second field is returned.

 TIME       The time field is returned.

 WEEKDAY    The weekday that corresponds with the input time  argument
            is  returned.   You  cannot  specify  WEEKDAY if  you also
            specify  a delta input time  and  the  DELTA  output  time
            argument.  When the  weekday is returned, the first letter
            is  in  uppercase,   and  the  following  letters  are  in
            lowercase.

 YEAR       The year field is returned.  You cannot  specify  YEAR  if
            you  also specify  a delta input time and the DELTA output
            time argument.

 If you do not specify a field  argument,  the  default  is  DATETIME.

Examples

 1.   $ TIME = F$TIME()
      $ SHOW SYMBOL TIME
        TIME = "15-APR-1987 10:56:23.10"
      $ TIME = F$CVTIME(TIME)
      $ SHOW SYMBOL TIME
        TIME = "1987-04-15 10:56:23.10"

 This example uses the F$TIME function to return the system time as  a
 character  string,  and  to assign the time to the symbol TIME.  Then
 the F$CVTIME function is used  to  convert  the  system  time  to  an
 alternate  time format.  Note that you do not need to place quotation
 marks around the argument TIME because it is a symbol.   Symbols  are
 automatically  evaluated  when they are used as arguments for lexical
 functions.

 You can use the resultant string to compare two  dates  (using  .LTS.
 and  .GTS.  operators).  For example, you can use F$CVTIME to convert
 two time strings and store the results  in  the  symbols  TIME_1  and
 TIME_2.  You can compare the two values, and branch to a label, based
 on the results as shown below:

      $ IF TIME_1 .LTS. TIME_2 THEN GOTO FIRST

 2.  $ NEXT = F$CVTIME("TOMORROW",,"WEEKDAY")
     $ SHOW SYMBOL NEXT
       NEXT = "Tuesday"

 In this example, the F$CVTIME returns the weekday that corresponds to
 the absolute time keyword "TOMORROW".  You must enclose the arguments
 "TOMORROW"  and  "WEEKDAY"  in  quotation  marks  because  they   are
 character  string  expressions.   Also, you must include a comma as a
 placeholder for the output time argument that is omitted.

F$CVUI

 Extracts bit fields from  character  string  data  and  converts  the
 result, as an unsigned value, to an integer.

 Format:

      F$CVUI(bit-position,width,string)

Additional information available:

Return Valuebit-positionwidthstringExample

Return Value

 The integer equivalent of the extracted bit field,  converted  as  an
 unsigned value.

bit-position

 The  offset  of  the  first  bit  to  be  extracted.   The  low-order
 (rightmost)  bit of a string is position number 0 for determining the
 offset.  Specify the offset as an integer expression.

width

 The number of bits that are to be  extracted  for  conversion  to  an
 integer value.  Specify the width as an integer expression.

string

 The string from which the bits are taken.  Specify the  string  as  a
 character string expression.

Example

 1.   $ A[0,32] = %X2B
      $ SHOW SYMBOL A
        A = "+"
      $ X = F$CVUI(0,4,A)
      $ SHOW SYMBOL X
        X = 11   Hex = 0000000B  Octal = 000013

 This example uses an arithmetic overlay  to  assign  the  hexadecimal
 value  2B  to all 32 bits of the symbol A.  The symbol A has a string
 value after the overlay because it was previously undefined.   (If  a
 symbol  is  undefined,  it  has  a  string  value  as  a result of an
 arithmetic overlay.  If a symbol was previously defined,  it  retains
 the  same  data  type  after  the  overlay.) The hexadecimal value 2B
 corresponds to the ASCII character "+".

 Next, the F$CVUI function extracts the  low-order  4  bits  from  the
 symbol  A;  the low-order 4 bits contain the binary representation of
 the hexadecimal value B.  These  bits  are  converted, as an unsigned
 value,  to  an  integer.  The converted value, 11, is assigned to the
 symbol X.

F$DIRECTORY

 Returns the current default directory name string.   The  F$DIRECTORY
 function has no arguments but must be followed by parentheses.

 Format:

      F$DIRECTORY()

Additional information available:

Return Valueexample

Return Value

 A character string for the current default directory name,  including
 square brackets ([]).  If you use the SET DEFAULT command and specify
 angle brackets (<>) in a  directory  specification,  the  F$DIRECTORY
 function returns angle brackets in the directory string.

example

 1.   $ SAVE_DIR = F$DIRECTORY()
      $ SET DEFAULT [MALCOLM.TESTFILES]
         .
         .
         .
      $ SET DEFAULT 'SAVE_DIR'

 This example shows an excerpt from a command procedure that uses  the
 F$DIRECTORY  function  to save the current default directory setting.
 The assignment statement equates the symbol SAVE_DIR to  the  current
 directory.   Then  the  SET DEFAULT command establishes a new default
 directory.  Later, the symbol SAVE_DIR is used  in  the  SET  DEFAULT
 command that restores the original default directory.

 Note that you can use the F$ENVIRONMENT  function  with  the  DEFAULT
 keyword to return the default disk and directory.  You should use the
 F$ENVIRONMENT  function  rather  than  the  F$DIRECTORY  function  in
 situations involving more than one disk.

F$EDIT

 Edits a string  expression  based  on  the  edits  specified  in  the
 edit-list.

 Format:

      F$EDIT(string, edit-list)

Additional information available:

Return Valuestringedit-listExamples

Return Value

 A character string containing the specified edits.

string

 A string to be edited.  Specify the string argument  as  a  character
 string expression.

edit-list

 A keyword or a list of keywords that specify the types of edits to be
 made  to  the  string.   If you use a list of keywords, separate them
 with commas.  You cannot abbreviate these keywords.

 Specify the edit-list argument as a character string expression.

 COLLAPSE    Removes all spaces and tabs from the string.

 COMPRESS    Replaces multiple spaces and tabs with a single space.

 LOWERCASE   Makes the string lower case.

 TRIM        Removes leading and trailing spaces  and  tabs  from  the
             string.

 UNCOMMENT   Removes comments from the string.

 UPCASE      Makes the string upper case.

 Edits are not applied to quoted sections of strings.  Therefore, if a
 string  contains quotation marks, the characters within the quotation
 marks are not affected by the edits specified in the edit list.

Examples

 1.   $ LINE = "    THIS    LINE    CONTAINS A ""  QUOTED  "" WORD"
      $ SHOW SYMBOL LINE
        LINE =  "    THIS    LINE    CONTAINS A "  QUOTED  " WORD"
      $ NEW_LINE = F$EDIT(LINE, "COMPRESS, TRIM")
      $ SHOW SYMBOL NEW_LINE
        NEW_LINE = "THIS LINE CONTAINS A "  QUOTED  " WORD"

 This example uses the F$EDIT function to compress and trim  a  string
 by  replacing  multiple  blanks  with a single blank, and by removing
 leading and trailing blanks.   The  string  LINE  contains  quotation
 marks  around  the  word  QUOTED.   (To  enter quotation marks into a
 character string, use double quotations in the assignment statement.)

 Note that the F$EDIT function does not compress  the  spaces  in  the
 quoted  section  of  the  string;  therefore, the spaces are retained
 around the word QUOTED.

 2.  $ LOOP:
      $      READ/END_OF_FILE = DONE INPUT_FILE RECORD
      $      RECORD = F$EDIT(RECORD, "TRIM, UPCASE")
      $      WRITE OUTPUT_FILE RECORD
      $      GOTO LOOP
         .
         .
         .

 This example sets up a loop to read records from a file,  edit  them,
 and  write  them  to an output file.  The edited records have leading
 and trailing blanks removed, and are converted to uppercase.

F$ELEMENT

 Extracts an element from a string in which the elements are separated
 by a specified delimiter.

 Format:

      F$ELEMENT(element-number, delimiter, string)

Additional information available:

Return Valueelement-numberdelimiterstringExample

Return Value

 A character string containing the specified element.

element-number

 The number of the element to be  retrieved.   Element  numbers  start
 with  zero.   Specify  the  element-number  argument  as  an  integer
 expression.

 If the element-number exceeds the number of elements in  the  string,
 the delimiter is returned.

delimiter

 The delimiter used to separate  the  elements  in  the  string.   The
 delimiter can be only one character long.  Specify the delimiter as a
 character string expression.

string

 A string containing a delimited list of elements.  Specify the string
 as a character string expression.

Example

 1.   $ DAY_LIST = "MON/TUE/WED/THU/FRI/SAT/SUN"
      $ INQUIRE DAY "ENTER DAY (MON TUE WED THU FRI SAT SUN)"
      $ NUM = 0
      $ LOOP:
      $       LABEL = F$ELEMENT(NUM,"/",DAY_LIST)
      $       IF LABEL .EQS. "/" THEN GOTO ERROR
      $       IF DAY .EQS. LABEL THEN GOTO 'LABEL'
      $       NUM = NUM +1
      $       GOTO LOOP
      $
      $ MON:
         .
         .
         .

 This example sets up a loop  to  test  an  input  value  against  the
 elements  in  a  list of values.  If the value for DAY matches one of
 the elements in DAY_LIST, control  is  passed  to  the  corresponding
 label.   If  the value returned by the F$ELEMENT function matches the
 delimiter, then the value DAY was not present in  the  DAY_LIST,  and
 control is passed to the label ERROR.

F$ENVIRONMENT

 Obtains information on aspects of the DCL command environment.

 Format:

      F$ENVIRONMENT(item)

Additional information available:

Return ValueitemExamples

Return Value

 Information that corresponds to the specified item.  The return value
 can  be  either  an  integer  or a character string, depending on the
 specified item.

item

 A keyword that specifies the type of information to be returned.  You
 cannot  abbreviate  keywords  for the F$ENVIRONMENT lexical function.
 Specify the item argument as a character string expression.

 CAPTIVE         Returns either the character string "TRUE" or "FALSE"
                 to  indicate  whether  you  are logged into a captive
                 account.

 CONTROL         Returns the control  characters  that  are  currently
                 enabled  with  the SET CONTROL command.  The  control
                 characters are returned as a character string.

 DEFAULT         Returns the  current  default  device  and  directory
                 name.   This  information  is returned as a character
                 string;  the returned  string  is  the  same  as  the
                 output from the SHOW DEFAULT command.

 DEPTH           Returns the current command procedure  depth,  as  an
                 integer.

 INTERACTIVE     Returns either the character string "TRUE" or "FALSE"
                 to indicate whether the process is interactive.

 KEY_STATE       Returns a character  string  indicating  the  current
                 locked keypad state.

 MAX_DEPTH       Returns an integer specifying the  maximum  allowable
                 command procedure depth.

 MESSAGE         Returns a character  string  containing  the  current
                 setting of the the SET MESSAGE command.

 NOCONTROL       Returns the control  characters  that  are  currently
                 disabled   with  the  SET  NOCONTROL   command.   The
                 control  characters  are  returned  as  a   character
                 string.

 ON_CONTROL_Y    If issued from a command  procedure,  returns  either
                 the   character  string "TRUE" or "FALSE" to indicate
                 whether ON CONTROL_Y is specified.

 ON_SEVERITY     If  issued  from  a  command  procedure,  returns   a
                 character  string  indicating  the  severity level at
                 which  the action specified with the  ON  command  is
                 taken.

 OUTPUT_RATE     Returns a delta time string  containing  the  default
                 output   rate.   The  output rate indicates how often
                 data is written to  a batch job log  file  while  the
                 batch job is executing.

 PROCEDURE       Returns  the  file  specification  for  the   command
                 procedure  from  which the F$ENVIRONMENT("PROCEDURE")
                 function  is  issued.   The   file  specification  is
                 returned as a character string.

 PROMPT          Returns a character  string  containing  the  current
                 prompt string.

 PROMPT_CONTROL  Returns either the character string "TRUE" or "FALSE"
                 to  indicate  whether  a  Carriage  Return/Line  Feed
                 precedes the prompt.

 PROTECTION      Returns a character  string  indicating  the  current
                 default file protection.

 SYMBOL_SCOPE    Returns the character string "[NO]LOCAL,  [NO]GLOBAL"
                 to indicate the current symbol scoping state.

 VERIFY_IMAGE    Returns either the character string "TRUE" or "FALSE"
                 to  indicate  whether the SET VERIFY=IMAGE command is
                 in effect.

 VERIFY_PROCEDURE  Returns  either  the  character  string  "TRUE"  or
                  "FALSE" to indicate whether the SET VERIFY=PROCEDURE
                  command is in effect.

Examples

 1.   $ SAVE_MESSAGE = F$ENVIRONMENT("MESSAGE")
      $ SET MESSAGE/NOFACILITY/NOIDENTIFICATION
         .
         .
         .

      $ SET MESSAGE'SAVE_MESSAGE'

 This example uses the F$ENVIRONMENT  function  to  save  the  current
 message  setting  before  changing  the  setting.   At the end of the
 command procedure, the original message  setting  is  restored.   The
 apostrophes  surrounding  the  symbol  SAVE_MESSAGE indicate that the
 value for the symbol should be substituted.

 2.  $ MAX = F$ENVIRONMENT("MAX_DEPTH")
     $ SHOW SYMBOL MAX
       MAX = 16   Hex = 00000010  Octal = 000020

 This example uses the F$ENVIRONMENT function to determine the maximum
 depth allowable within command procedures.

 3.  $ SAVE_PROT = F$ENVIRONMENT("PROTECTION")
     $ SET PROTECTION = (SYSTEM:RWED,OWNER:RWED,GROUP,WORLD)/DEFAULT
         .
         .
         .

     $ SET PROTECTION = ('SAVE_PROT')/DEFAULT

 This example uses the F$ENVIRONMENT  function  to  save  the  current
 default protection before changing the protection.  At the end of the
 command procedure, the original protection  is  restored.   You  must
 place  apostrophes  around  the  symbol  SAVE_PROT  to request symbol
 substitution.

F$EXTRACT

 Extracts a substring from a character string expression.

 Format:

      F$EXTRACT(offset,length,string)

Additional information available:

Return ValueoffsetlengthstringExamples

Return Value

 A character string containing the substring that is delimited by  the
 offset and length arguments.

offset

 The position, relative to the beginning of the string, that marks the
 beginning  of  the substring you want to extract.  Specify the offset
 as an integer expression that is greater than or  equal  to  0.   The
 offset 0 indicates the first character in the string.

length

 The number of characters you want to extract.  Specify the length  as
 an integer expression that is greater than or equal to 0.

string

 The string from which the substring is to be extracted.  Specify  the
 string as a character string expression.

Examples

 1.   $ NAME = "JOE SMITH"
      $ FIRST = F$EXTRACT(0,3,NAME)
      $ SHOW SYMBOL FIRST
        FIRST = "JOE"

 This portion of a command procedure uses the  F$EXTRACT  function  to
 extract the first three characters from the character string assigned
 to the symbol NAME.  The offset and length  arguments  are  integers,
 and  the  string  argument  is  a  symbol.   You  do  not need to use
 quotations around integers or symbols when they are used as arguments
 for lexical functions.

 2.  $ P1 = "MYFILE.DAT"
     $ FILENAME = F$EXTRACT(0,F$LOCATE(".",P1),P1)

 This portion of a command procedure shows how to locate  a  character
 within  a  string,  and  how  to  extract  a substring ending at that
 location.

 The lexical function F$LOCATE gives the  numeric  value  representing
 the  offset position of a period in the character string value of P1.
 (The offset position of the period is equal  to  the  length  of  the
 substring before the period.)

 This F$LOCATE function is  used  as  an  argument  in  the  F$EXTRACT
 function  to  specify  the  number  of characters to extract from the
 string.  If a procedure is invoked  with  the  parameter  MYFILE.DAT,
 these  statements result in the symbol FILENAME being given the value
 MYFILE.

 Note that the F$LOCATE function in the above example assumes that the
 file  specification  does  not  contain  a  node  name or a directory
 specification containing a subdirectory name.   To  obtain  the  file
 name from a full file specification, use the F$PARSE function.

 3.  $ IF F$EXTRACT(12,2,F$TIME()) .GES. "12" THEN GOTO AFTERNOON
     $ MORNING:
     $ WRITE SYS$OUTPUT "Good morning!"
     $ EXIT
     $ AFTERNOON:
     $ WRITE SYS$OUTPUT "Good afternoon!"
     $ EXIT

 This example shows a procedure that  displays  a  different  message,
 depending  on  whether  the current time is morning or afternoon.  It
 first obtains the current time of day by using the  F$TIME  function.
 The  F$TIME  function returns a character string, which is the string
 argument  for  the  F$EXTRACT  function.   The  F$TIME  function   is
 automatically evaluated when it is used as an argument, so you do not
 need to use quotation marks.

 Next, the F$EXTRACT function extracts the hours  from  the  date  and
 time string returned by F$TIME.  The string returned by F$TIME always
 contains the hours field beginning at an offset of 12 characters from
 the start of the string.

 The F$EXTRACT function  extracts  two  characters  from  the  string,
 beginning  at  this  offset,  and compares the string value extracted
 with the string value 12.   If  the  comparison  is  true,  then  the
 procedure  writes  "Good  afternoon!".   Otherwise,  it  writes "Good
 morning!".

 Note that you can also use the F$CVTIME function to extract the  hour
 field  from a time specification.  This method is easier than the one
 shown in the above example.

F$FAO

 Invokes the $FAO system service  to  convert  the  specified  control
 string  to  a formatted ASCII output string.  By specifying arguments
 for FAO directives in the control  string,  you  can  use  the  F$FAO
 function to:

 o  Insert variable character string data into an output string

 o  Convert integer values into the  ASCII  representations  of  their
    decimal,  hexadecimal,  and  octal equivalents, and substitute the
    results into the output string

 Format:

      F$FAO(control-string[,arg1,arg2...arg15])

Additional information available:

Return Valuecontrol-stringarg1,arg2...arg15Examples

Return Value

 A character string containing formatted ASCII  output.   This  output
 string  is  created  from  the  fixed  text and FAO directives in the
 control string.

control-string

 The fixed text of  the  output  string,  plus  FAO  directives.   The
 control  string  may  be any length and may contain any number of FAO
 directives.   Specify  the  control  string  as  a  character  string
 expression.

 The F$FAO function uses FAO directives to modify or insert ASCII data
 into the fixed text in the control string.

 Following is a summary of the FAO directives:



      Character string insertion

  !AS       Inserts a character string as is

      Zero-filled numeric conversion

  !OB       Converts a byte to octal notation
  !OW       Converts a word to octal notation
  !OL       Converts a longword to octal notation
  !XB       Converts a byte to hexadecimal notation
  !XW       Converts a word to hexadecimal notation
  !XL       Converts a longword to hexadecimal notation
  !ZB       Converts a byte to decimal notation
  !ZW       Converts a word to decimal notation
  !ZL       Converts a longword to decimal notation

      Blank-filled numeric conversion

  !UB       Converts a byte to decimal notation without
              adjusting for negative numbers
  !UW       Converts a word to decimal notation without
              adjusting for negative numbers
  !UL       Converts a longword to decimal notation without
              adjusting for negative numbers
  !SB       Converts a byte to decimal notation with
              negative numbers converted properly
  !SW       Converts a word to decimal notation with
              negative numbers converted properly
  !SL       Converts a longword to decimal notation negative
              numbers converted properly

      Special formatting:

  !/        Inserts a carriage return and a line feed
  !_        Inserts a tab
  !^        Inserts a form feed
  !!        Inserts an exclamation mark
  !%I       Converts a longword integer to a named UIC in
              the format [group-identifier,member-identifier]
  !%S       Inserts an "s" if the most recently converted
              number is not 1 (Not recommended for use with
              multilingual products.)
  !%U       Converts a longword integer to a numeric UIC in
              the format [g,m], where g is the group number
              and m is the member number. The directive inserts
              the brackets and the comma
  !n<...!>  Left-justifies and blank-fills all data represented
              by the instructions ... in fields n characters wide
  !n*c      Repeats the character represented by c for n times
  !%T       Inserts the current time
  !%D       Inserts the current date/time

      Argument interpretation

  !-        Reuses the last argument
  !+        Skips the next argument

arg1,arg2...arg15

 Arguments that are required by the FAO directives used in the control
 string.   Specify  the  arguments  arg1,arg2...arg15  as  integer  or
 character string expressions.

 If you specify an argument whose type (integer or  string)  does  not
 match that of the corresponding directive, unpredictable results will
 be returned.

Examples

 1.   $ COUNT = 57
      $ REPORT = F$FAO("NUMBER OF FORMS = !SL",COUNT)
      $ SHOW SYMBOL REPORT
      $ REPORT = "NUMBER OF FORMS = 57"

 In this command procedure, the FAO directive !SL is used in a control
 string  to  convert  the  number  equated  to  the  symbol COUNT to a
 character string.  The converted string is inserted into the  control
 string.

 Note that COUNT is assigned  an  integer  value  of  57.   The  F$FAO
 function  returns  the  ASCII  string,  "NUMBER  OF  FORMS = 57", and
 assigns the string to the symbol REPORT.

 2.  $ A = "ERR"
     $ B = "IS"
     $ C = "HUM"
     $ D = "AN"
     $ PHRASE = F$FAO("TO !3(AS)",A,B,C+D)
     $ SHOW SYMBOL PHRASE
     $ PHRASE = "TO ERRISHUMAN"

 In this command procedure, the !AS directive is used  to  insert  the
 values  assigned  to  the  symbols  A,  B,  C, and D into the control
 string.

 Since the specified repeat count for the !AS directive  is  3,  F$FAO
 looks for three arguments.  The arguments in this example include the
 symbol A ("ERR"),  the  symbol  B  ("IS"),  and  the  expression  C+D
 ("HUMAN").   Note  that  the  values  of  these  string arguments are
 concatenated to form the string "ERRISHUMAN".

 3.  $ A = "ERR"
     $ B = "IS"
     $ C = "HUMAN"
     $ PHRASE = F$FAO("TO !#(#AS)",3,6,A,B,C)
     $ SHOW SYMBOL PHRASE
     $ PHRASE = "TO ERR   IS    HUMAN "

 In this command procedure, the F$FAO function is used  with  the  !AS
 directive  to  format  a character string.  The first number sign (#)
 represents the repeat count given by  the  first  argument,  3.   The
 second  number sign (#) represents the field size given by the second
 argument, 6.  The next three arguments (A,B,C)  provide  the  strings
 that  are  placed into the control string each time the !AS directive
 is repeated.

 Each argument string is output to a field  having  a  length  of  six
 characters.   Since  each  string  is  less than six characters, each
 field is left-justified and padded with blank spaces.  The  resulting
 string is assigned to the symbol PHRASE.

F$FILE_ATTRIBUTES

 Returns attribute information for a specified file.

 Format:

      F$FILE_ATTRIBUTES(file-spec,item)

Additional information available:

Return Valuefile-specitemExamples

Return Value

 Either an integer or a character string, depending on  the  item  you
 request.

file-spec

 The name of the file about which you are requesting information.  You
 must specify the file name as a character string expression.

 Only one file name may be  specified.   No  wildcard  characters  are
 allowed in the file specification.

item

 Indicates which attribute of the file is to be  returned.   The  item
 must  be  specified  as a character string expression, and can be any
 one of the VAX RMS field names listed below:

 ALQ BDT BKS BLS CBT CDT CTG DEQ DID DVI EDT EOF FID FSZ GRP KNOWN MBM
 MRN MRS NOA NOK ORG PRO PVN RAT RCK RDT RFM RVN UIC WCK

Examples

 1.   $ FILE_ORG = F$FILE_ATTRIBUTES("QUEST.DAT","ORG")
      $ SHOW SYMBOL FILE_ORG
        FILE_ORG = "SEQ"

 This example uses the F$FILE_ATTRIBUTES function to assign the  value
 of   the   file  organization  type  to  the  symbol  FILE_ORG.   The
 F$FILE_ATTRIBUTES function returns the character string "SEQ" to show
 that QUEST.DAT is a sequential file.

 The QUEST.DAT and ORG arguments for  the  F$FILE_ATTRIBUTES  function
 are  string  literals,  and  must be enclosed in quotation marks when
 used in expressions.

 2.  $ RFM = F$FILE_ATTRIBUTES("KANSAS::USE$:[CARS]SALES.CMD","RFM")
     $ SHOW SYMBOL RFM
       RFM = "VAR"

 This  example  uses  the   F$FILE_ATTRIBUTES   function   to   return
 information  about a file on a remote node.  The function returns the
 record format  string  VAR,  indicating  that  records  are  variable
 length.

F$GETDVI

 Invokes the $GETDVI system service to  return  a  specified  item  of
 information  for  a specified device.  This function allows a process
 to obtain information for a device  to  which  the  process  has  not
 necessarily assigned a channel.

 Format:

      F$GETDVI(device-name,item)

Additional information available:

Return Valuedevice-nameitemExample

Return Value

 Either an integer or a character string, depending on  the  item  you
 request.

device-name

 A physical device name or a logical name equated to a physical device
 name.  Specify the device name as a character string expression.

item

 Specifies the type of device information to be  returned.   The  item
 must  be  specified  as a character string expression.  Specifies the
 type of  device  information  to  be  returned.   The  item  must  be
 specified  as a character string expression.  You may specify any one
 of  the  items  listed   below:

        ACPPID          ACPTYPE        ALL            ALLOCLASS
        ALT_HOST_AVAIL  ALT_HOST_NAME  ALT_HOST_TYPE  AVL
        CCL             CLUSTER        CONCEALED      CYLINDERS
        DEVBUFSIZ       DEVCHAR        DEVCHAR2       DEVCLASS
        DEVDEPEND       DEVDEPEND2     DEVNAM         DEVSTS
        DEVTYPE         DIR            DMT            DUA
        ELG             ERRCNT         EXISTS         FOD
        FOR             FREEBLOCKS     FULLDEVNAM     GEN
        HOST_AVAIL      HOST_COUNT     HOST_NAME      HOST_TYPE
        IDV             LOCKID         LOGVOLNAM      MAXBLOCK
        MAXFILES        MBX            MNT            MOUNTCNT
        NET             NEXTDEVNAM     ODV            OPCNT
        OPR             OWNUIC         PID            RCK
        RCT             REC            RECSIZ         REFCNT
        REMOTE_DEVICE   RND            ROOTDEVNAM     RTM
        SDI             SECTORS        SERIALNUM      SERVED_DEVICE
        SHR             SPL            SPLDEVNAM      SQD
        STS             SWL            TRACKS         TRANSCNT
        TRM             TT_ALTYPEAHD   TT_ANSICRT     TT_APP_KEYPAD
        TT_AUTOBAUD     TT_AVO         TT_BLOCK       TT_BRDCSTMBX
        TT_CRFILL       TT_DECCRT      TT_DIALUP      TT_DISCONNECT
        TT_DMA          TT_DRCS        TT_EDIT        TT_EDITING
        TT_EIGHTBIT     TT_ESCAPE      TT_FALLBACK    TT_HALFDUP
        TT_HANGUP       TT_HOSTSYNC    TT_INSERT      TT_LFFILL
        TT_LOCALECHO    TT_LOWER       TT_MBXDSABL    TT_MECHFORM
        TT_MECHTAB      TT_MODEM       TT_MODHANGUP   TT_NOBRDCST
        TT_NOECHO       TT_NOTYPEAHD   TT_OPER        TT_PAGE
        TT_PASTHRU      TT_PHYDEVNAM   TT_PRINTER     TT_READSYNC
        TT_REGIS        TT_REMOTE      TT_SCOPE       TT_SECURE
        TT_SETSPEED     TT_SIXEL       TT_TTSYNC      TT_WRAP
        UNIT            VOLCOUNT       VOLNAM         VPROT
        WCK

 The following F$GETDVI items apply to Volume Shadowing only:

       SHDW_CATCHUP_COPYING            SHDW_FAILED_MEMBER
       SHDW_MASTER                     SHDW_MASTER_NAME
       SHDW_MEMBER                     SHDW_MERGE_COPYING
       SHDW_NEXT_MBR_NAME

Example

 1.   $ ERR = F$GETDVI("_DQA0","ERRCNT")
      $ SHOW SYMBOL ERR
        ERR = 0  Hex = 00000000 Octal = 000000

 This example shows how to use the  F$GETDVI  function  to  return  an
 error  count  for  the  device  DQA0.  You must place quotation marks
 around the device-name _DQA0 and the item  ERRCNT  because  they  are
 string literals.

F$GETJPI

 Invokes the $GETJPI system service to return accounting, status,  and
 identification information on the specified process.  GROUP privilege
 is required to obtain information on  other  processes  in  the  same
 group.   WORLD  privilege  is  required  to obtain information on any
 other processes in the system.

 Format:

      F$GETJPI(pid,item)

Additional information available:

Return ValuepiditemExample

Return Value

 Either an integer or a character string, depending on  the  item  you
 request.

pid

 The identification number of the process  for  which  information  is
 being  reported.   Specify  the  pid  argument  as a character string
 expression.

item

 The type of process information to be  returned.   Specify  the  item
 argument  as  a character string expression.  You may specify any one
 of the following items:

     ACCOUNT     APTCNT      ASTACT      ASTCNT      ASTEN
     ASTLM       AUTHPRI     AUTHPRIV    BIOCNT      BIOLM
     BUFIO       BYTCNT      BYTLM       CPULIM      CPUTIM
     CURPRIV     DFPFC       DFWSCNT     DIOCNT      DIOLM
     DIRIO       EFCS        EFCU        EFWM        ENQCNT
     ENQLM       EXCVEC      FILCNT      FILLM       FINALEXC
     FREP0VA     FREP1VA     FREPTECNT   GPGCNT      GRP
     IMAGECOUNT  IMAGNAME    IMAGPRIV    INQUAN      JOBPRCCNT
     LOGIN       LOGINTIM    MEM         MODE        MSGMASK
     MASTER_PID  OWNER       PAGEFLTS    PAGFILCNT   PAGFILLOC
     PGFLQUOTA   PHDFLAGS    PID         PPGCNT      PRCCNT
     PRCLM       PRCNAM      PRI         PRIB        PROCPRIV
     SITESPEC    STATE       STS         SWPFILLOC   TERMINAL
     TMBU        TQCNT       TQLM        UIC         USERNAME
     VIRTPEAK    VOLUMES     WSAUTH      WSAUTHEXT   WSEXTENT
     WSPEAK      WSQUOTA     WSSIZE

Example

 1.   $ NAME = F$GETJPI("3B0018","USERNAME")
      $ SHOW SYMBOL NAME
        NAME = "JANE        "

 This example shows how to use the F$GETJPI  function  to  return  the
 username  for the process number 3B0018.  The username is assigned to
 the symbol NAME.

F$GETQUI

 Invokes the  $GETQUI  system  service  to  return  information  about
 queues,  batch  and  print  jobs  currently  in  those  queues, forms
 definitions, and characteristics definitions kept in the  system  job
 queue file.

 Requires READ access to the  job  or  SYSPRV  or  OPER  privilege  to
 obtain job and file information.

 Format:


      F$GETQUI(function,item,object-id,flags)

Additional information available:

Return Valuefunctionitemobject-idflagsExamples

Return Value

 Either  an  integer or a character string, depending on the item you
 request. For items that return a Boolean value, the string is "TRUE"
 or "FALSE."

function

 Specifies the function that $GETQUI is to perform. $GETQUI function
 codes correspond to one of the following keywords:

      CANCEL_OPERATION
      DISPLAY_CHARACTERISTIC
      DISPLAY_ENTRY
      DISPLAY_FILE
      DISPLAY_FORM
      DISPLAY_JOB
      DISPLAY_QUEUE
      TRANSLATE_QUEUE

item

 Corresponds to a $GETQUI output item code.  Item specifies the  kind
 of information you want returned  about  a  particular  queue,  job,
 file, form, or characteristic. Item keywords are  the  same  as  the
 $GETQUI system service item code names, minus  the  "QUI$_"  prefix.
 For example, QUEUE_NAME  is  the  keyword  for  the  QUI$_QUEUE_NAME
 output item code.

object-id

 Corresponds to the $GETQUI search-name or  search-number  input  item
 codes. Object-id specifies either the name or  number  of  an  object
 (for example, a specific queue  name  or  form  number)  about  which
 $GETQUI is to return information.  Wildcard names are allowed for the
 following functions:

      DISPLAY_CHARACTERISTICS
      DISPLAY_ENTRY
      DISPLAY_FORM
      DISPLAY_QUEUE

 When a wildcard name is used, each call returns information for  the
 next object (queue, form, and so on) in the list. A null string ("")
 is returned when the end of the list  is  reached.  A  wildcard  can
 represent only object names, not object numbers.

flags

 A list of keywords, separated by commas,  that  corresponds  to  the
 flags defined for the  $GETQUI search-flags input item  code.  These
 flags are used to define the scope of the object search specified in
 the  call  to  $GETQUI. Options  of  the  $GETQUI search-flags input
 item code correspond to the following keywords:

      ALL_JOBS
      BATCH
      EXECUTING_JOBS
      FREEZE_CONTEXT
      GENERIC
      HOLDING_JOBS
      PENDING_JOBS
      PRINTER
      RETAINED_JOBS
      SERVER
      SYMBIONT (Same as "PRINTER,SERVER,TERMINAL")
      TERMINAL
      THIS_JOB
      TIMED_RELEASE_JOBS
      WILDCARD

Examples

 1.   $ BLOCKS = F$GETQUI("DISPLAY_ENTRY", "JOB_SIZE", 1347)

  In this example, the F$GETQUI lexical function is used to obtain the
  size  in  blocks  of print job 1347. The value returned reflects the
  total number of blocks occupied by the  files  associated  with  the
  job.


 2.  $ IF F$GETQUI("DISPLAY_QUEUE", "QUEUE_STOPPED", "VAX1_BATCH") -
        THEN GOTO 500

  In  this  example, the F$GETQUI lexical function is used to return a
  value of "TRUE" or "FALSE" depending on whether the queue VAX1_BATCH
  is in a stopped state.


 3.  $ TEMP = F$GETQUI("CANCEL_OPERATION")
     $LOOP1:
     $ QNAME = F$GETQUI("DISPLAY_QUEUE","QUEUE_NAME","*","GENERIC,BATCH")
     $ IF QNAME .EQS. "" THEN EXIT
     $ WRITE SYS$OUTPUT "Jobs in generic batch queue ", QNAME, " are:"
     $LOOP2:
     $ JNAME = F$GETQUI("DISPLAY_JOB", "JOB_NAME",,"ALL_JOBS")
     $ IF JNAME .EQS. "" THEN GOTO LOOP1
     $ WRITE SYS$OUTPUT "    ", JNAME
     $ GOTO LOOP2

  This  sample command procedure searches through generic batch queues
  and displays all jobs currently residing in each  queue.  Because  a
  wildcard  queue  name  is specified ("*"), wildcard queue context is
  maintained across calls to F$GETQUI. This context is dissolved  when
  the  list  of  matching  queues  is exhausted. Furthermore, F$GETQUI
  returns a null string ("") to denote that no more objects match  the
  specified  search  criteria. Finally, an initial cancel operation is
  performed to dissolve any wildcard context for the process that  may
  still  exist from a previously aborted search sequence (for example,
  abort of a SHOW  QUEUE  command  or  the  running  of  this  command
  procedure).

F$GETSYI

 Invokes  the  $GETSYI   system   service   to   return   status   and
 identification information about the local system (or about a node in
 the local VAXcluster, if your system is part of a VAXcluster).

 Format:

      F$GETSYI(item [,node])

Additional information available:

Return ValueitemnodeExamples

Return Value

 Either an integer or a character string, depending on  the  item  you
 request.

item

 The type of information to be reported about the local node (or about
 another  node  in  your  VAXcluster,  if  your  system  is  part of a
 VAXcluster).  Specify the item as a character string expression.  You
 may  specify  one  of  the  following  items for the local node only:

    ARCHFLAG              BOOTTIME             CHARACTER_EMULATED
    CPU                   DECIMAL_EMULATED     D_FLOAT_EMULATED
    F_FLOAT_EMULATED      G_FLOAT_EMULATED     PAGEFILE_FREE
    PAGEFILE_PAGE         SID                  SWAPFILE_FREE
    SWAPFILE_PAGE         VERSION

 You may specify one  of  the following items for the local node or in
 the VAXCluster:

    ACTIVECPU_CNT         AVAILCPU_CNT         ERRORLOGBUFFERS
    CLUSTER_FSYSID        CLUSTER_FTIME        CLUSTER_MEMBER
    CLUSTER_NODES         CLUSTER_QUORUM       CLUSTER_VOTES
    NODENAME              NODE_AREA            NODE_CSID
    NODE_HWTYPE           NODE_HWVERS          NODE_NUMBER
    NODE_QUORUM           NODE_SWINCARN        NODE_SWTYPE
    NODE_SWVERS           NODE_SYSTEMID        NODE_VOTES
    SCS_EXISTS

node

 The node in your VAXcluster for which information is to be  returned.
 Specify  the  node  as a character string expression.  (This argument
 can be specified only if your system is part of  a  VAXcluster.)

Examples

 1.   $ SYSID = F$GETSYI("SID")
      $ SHOW SYMBOL SYSID
        SID = 19923201  Hex = 01300101 Octal = 000401

 This example shows how to use the F$GETSYI  function  to  return  the
 information  in  the  system  identification register.  Use quotation
 marks around the argument SID because it is a  string  literal.   The
 value  returned  by  the  F$GETSYI function is assigned to the symbol
 SYSID.  Because a node  is  not  specified,  information  about  your
 current node is returned.

 2.  $ MEM = F$GETSYI("CLUSTER_MEMBER", "LONDON")
     $ SHOW SYMBOL MEM
       MEM = "TRUE"

 This example uses the F$GETSYI function to determine whether the node
 LONDON  is  a  member  of the local VAXcluster.  The "TRUE" indicates
 that the remote node LONDON is a member of the VAXcluster.

 3.  $ LIM = F$GETSYI("BJOBLIM")
     $ SHOW SYMBOL LIM
       LIM = 16   Hex = 00000010  Octal = 00000000020

 This example uses the SYSGEN parameter BJOBLIM as as argument for the
 F$GETSYI function.  This argument returns the batch job limit for the
 current system.

F$IDENTIFIER

 Converts an identifier in named format to its integer equivalent,  or
 vice  versa.   An  identifier  is  a name or number that identifies a
 category of users of a data resource.  The system uses identifiers to
 determine a user's access to a resource.

 Format:

      F$IDENTIFIER(identifier,conversion-type)

Additional information available:

Return Valueidentifierconversion-typeExamples

Return Value

 An integer value if you are converting an identifier from a  name  to
 an  integer.   The  F$IDENTIFIER function returns a string if you are
 converting an identifier from an integer to a name.

 If you specify an identifier that  is  not  valid,  the  F$IDENTIFIER
 function  returns a null string (if you are converting from number to
 name) or a zero (if you are converting from name to number.)

identifier

 The identifier to be converted.  Specify the identifier as an integer
 expression  if  you are converting an integer to a name.  Specify the
 identifier as a character string expression if you are  converting  a
 name to an integer.

 The F$IDENTIFIER function does not convert letters in the  identifier
 to  uppercase.   Therefore,  you must specify the identifier the same
 way it is defined in the "rights database".   If  the  identifier  is
 defined  using uppercase letters, you must use uppercase letters when
 you specify the identifier for the F$IDENTIFIER function.

conversion-type

 The type of conversion to be performed.  Specify the conversion  type
 as  a  character  string  expression  that  evaluates  to  one of the
 following strings:  "NAME_TO_NUMBER" or "NUMBER_TO_NAME".

Examples

 1.   $ UIC_INT= F$IDENTIFIER("SLOANE","NAME_TO_NUMBER")
      $ SHOW SYMBOL UIC_INT
        UIC_INT = 15728665   Hex = 00F00019  Octal = 00074000031
      $ UIC = F$FAO("!%U",UIC_INT)
      $ SHOW SYMBOL UIC
        UIC = [360,031]

 This example uses the F$IDENTIFIER to convert the  member  identifier
 from  the  UIC  [MANAGERS,SLOANE]  to  an  integer.  The F$IDENTIFIER
 function shows that the member identifier SLOANE is equivalent to the
 integer  15728665.   Note that you must specify the identifier SLOANE
 using uppercase letters.

 To convert this octal number to a standard numeric UIC, use the F$FAO
 function with the !%U directive.  (This directive converts a longword
 to a UIC in named format.) In this  example,  the  member  identifier
 SLOANE is equivalent to the numeric UIC [360,031].

 2.  $ UIC_INT = (%O31 + (%X10000 * %O360))
     $ UIC_NAME = F$IDENTIFIER(UIC_INT,"NUMBER_TO_NAME")
     $ SHOW SYMBOL UIC_NAME
       UIC_NAME = "ODONNELL"

 This example obtains the alphanumeric identifier associated with  the
 numeric  UIC  [360,031].  First, you must obtain the longword integer
 that corresponds to the UIC [360,031].  To do this, place the  member
 number  into  the low order word, and place the group number into the
 high order word.  Next, use the F$IDENTIFIER function to  return  the
 named identifier associated with the integer.

F$INTEGER

 Returns the  integer  equivalent  of  the  result  of  the  specified
 expression.

 Format:

      F$INTEGER(expression)

Additional information available:

Return ValueexpressionExample

Return Value

 An integer value which is equivalent to the specified expression.

expression

 The expression to be evaluated by the F$INTEGER expression.  You  can
 specify either an integer or a character string expression.

Example

 1.   $ A = "23"
      $ B = F$INTEGER("-9" + A)
      $ SHOW SYMBOL B
        B = -923 Hex=FFFFFC65 Octal=176145

 This example shows how to use the  F$INTEGER  function  to  equate  a
 symbol to the integer value returned by the function.

 The F$INTEGER function in  the  above  example  returns  the  integer
 equivalent  of  the  string  expression  ("-9"  +  A).   First,  the
 F$INTEGER function evaluates the string expression  by  concatenating
 the string literal "-9" with the string literal "23".  Note that the
 value of the symbol  A  is  automatically  substituted  in  a  string
 expression.    Also   note  that  the  plus  sign  (+)  is  a  string
 concatenation operator since both arguments are string literals.

 After the string expression  is  evaluated,  the  F$INTEGER  function
 converts  the resulting character string ("-923") to an integer, and
 returns  the value -923.  This  integer  value  is  assigned  to  the
 symbol B.

F$LENGTH

 Returns the length of a specified string.

 Format:

      F$LENGTH(string)

Additional information available:

Return ValuestringExample

Return Value

 An integer value for the length of the string.

string

 The character  string  of  which  you  are  determining  the  length.
 Specify the string argument as a character string expression.

Example

 1.   $ MESSAGE = F$MESSAGE(%X1C)
      $ SHOW SYMBOL MESSAGE
        MESSAGE = "%SYSTEM-F-EXQUOTA, exceeded quota"
      $ STRING_LENGTH = F$LENGTH(MESSAGE)
      $ SHOW SYMBOL STRING_LENGTH
        STRING_LENGTH = 33   Hex = 00000021  Octal = 000041

 The first assignment statement uses the F$MESSAGE function to  return
 the  message  which  corresponds  to  the  hexadecimal value 1C.  The
 message is returned as a character string  and  is  assigned  to  the
 symbol MESSAGE.

 The F$LENGTH function is then  used  to  return  the  length  of  the
 character  string assigned to the symbol MESSAGE.  You do not need to
 use quotation marks when you use the symbol MESSAGE  as  an  argument
 for  the  F$LENGTH  function.   (Quotation  marks are not used around
 symbols in character string expressions.)

 The F$LENGTH function returns the length of the character string  and
 assigns  it  to the symbol STRING_LENGTH.  At the end of the example,
 the  symbol  STRING_LENGTH  has  a  value  equal  to  the  number  of
 characters in the value of the symbol named MESSAGE, that is, 33.

F$LOCATE

 Locates a character  or  character  substring  within  a  string  and
 returns  its offset within the string.  If the character or character
 substring is not found, the function returns the length of the string
 that was searched.

 Format:

      F$LOCATE(substring,string)

Additional information available:

Return ValuesubstringstringExamples

Return Value

 An integer value representing the offset of the  substring  argument.
 An  offset  is the position of a character or a substring relative to
 the beginning of the string.  The first  character  in  a  string  is
 always  offset  position  0  from  the beginning of the string (which
 always begins at the leftmost character).

 If the substring argument is not found, the F$LOCATE function returns
 an  offset  of  1  more  than the offset of the last character in the
 string.  (This equals the length of the string.)

substring

 The string of characters that you want to locate within  the  string.
 Specify the substring as a character string expression.

string

 The string in which the characters are  to  be  found.   Specify  the
 string as a character string expression.

Examples

 1.   $ FILE_SPEC = "MYFILE.DAT;1"
      $ NAME_LENGTH = F$LOCATE(".",FILE_SPEC)

 The F$LOCATE function in this example returns  the  position  of  the
 period  in  the  string  with respect to the beginning of the string.
 The period is in offset position 6, so the value 6 is assigned to the
 symbol  NAME_LENGTH.  Note that NAME_LENGTH also equals the length of
 the file name portion of the file specification MYFILE.DAT, that  is,
 6.

 The substring argument, the period, is specified as a string  literal
 and is therefore enclosed in quotation marks.  The argument FILE_SPEC
 is a symbol, so it should not be placed within quotation  marks.   It
 is  automatically replaced by its current value during the processing
 of the function.

 2.  $ INQUIRE TIME "Enter time"
     $ IF F$LOCATE(":",TIME) .EQ. F$LENGTH(TIME) THEN -
       GOTO NO_COLON

 This section of a command  procedure  compares  the  results  of  the
 F$LOCATE  and  F$LENGTH  functions  to  see  if they are equal.  This
 technique is commonly  used  to  determine  whether  a  character  or
 substring is contained in a string.

 In the example, the INQUIRE command prompts  for  a  time  value  and
 assigns  the  user-supplied  time to the symbol TIME.  The IF command
 checks for the presence of a colon in the string entered in  response
 to the prompt.  If the value returned by the F$LOCATE function equals
 the value returned  by  the  F$LENGTH  function,  the  colon  is  not
 present.   You use the .EQ.  operator (rather than .EQS.) because the
 F$LOCATE and F$LENGTH functions return integer values.

 Note that quotation marks are used around the substring argument, the
 colon, because it is a string literal.  However, the symbol TIME does
 not require quotation marks because it is automatically evaluated  as
 a string expression.

F$MESSAGE

 Returns a character string containing  the  message  text  associated
 with a specific system status code.

 Format:

      F$MESSAGE(status-code)

Additional information available:

Return Valuestatus-codeExample

Return Value

 A character string containing the system message which corresponds to
 the argument you specify.

status-code

 The status code for which you are requesting error message text.  You
 must specify the status code as an integer expression.

Example

 1.   $ ERROR_TEXT = F$MESSAGE(%X1C)
      $ SHOW SYMBOL ERROR_TEXT
        ERROR_TEXT = "%SYSTEM-F-EXQUOTA, exceeded quota"

 This example shows how to use the F$MESSAGE function to determine the
 message associated with the status code %X1C.  The F$MESSAGE function
 returns  the  message  string,  which  is  assigned  to  the   symbol
 ERROR_TEXT.

F$MODE

 Returns a character string showing the mode in  which  a  process  is
 executing.   The  F$MODE  function  has  no  arguments,  but  must be
 followed by parentheses.

 Format:

      F$MODE()

Additional information available:

Return ValueExample

Return Value

 The string "INTERACTIVE" for interactive processes.  If  the  process
 is  noninteractive,  the  string  "BATCH",  "NETWORK"  or  "OTHER" is
 returned.  Note that the  return  string  always  contains  uppercase
 letters.

Example

 1.   $ IF F$MODE() .NES. "INTERACTIVE" THEN GOTO NON_INT_DEF
      $ INTDEF:         ! Commands for interactive terminal sessions
         .
         .
         .
      $ EXIT
      $ NON_INT_DEF:         !Commands for non-interactive processes
         .
         .
         .

 This example shows the beginning of a login  command  file.   The  IF
 command  compares  the  character  string returned by F$MODE with the
 character string INTERACTIVE; if they are not equal, control branches
 to  the  label  NON_INT_DEF.  Otherwise, the statements following the
 label  INTDEF  are  executed  and  the  procedure  exits  before  the
 statements  at  NON_INT_DEF.   Therefore, this login.com file has two
 sets of initialization commands:  one for interactive  mode  and  one
 for noninteractive mode (including batch and network jobs).

F$PARSE

 Invokes the $PARSE RMS service to  parse  a  file  specification  and
 return  either the expanded file specification or the particular file
 specification field that you request.

 Format:

 F$PARSE(file-spec[,default-spec][,related-spec][,field][,parse-type])

Additional information available:

Return Valuefile-specdefault-specrelated-specfieldparse-typeExamples

Return Value

 A character string containing the expanded file specification or  the
 field you specify.

file-spec

 The file specification to be  parsed.   You  must  specify  the  file
 specification as a character string expression.

default-spec

 A default file specification.  You  must  specify  the  default  file
 specification as a character string expression.

related-spec

 A related file specification.  You  must  specify  the  related  file
 specification as a character string expression.

field

 The name of a field in a file specification.   This  argument  causes
 F$PARSE  to  return  a  specific  portion  of  a  file specification.
 Specify the field argument as a character string expression.  You can
 specify  one  of  the  following  field names:

                         NODE           Node name
                         DEVICE         Device name
                         DIRECTORY      Directory name
                         NAME           File name
                         TYPE           File type
                         VERSION        File version number
The field name can not be abbreviated.

parse-type

 The type of  parsing  to  be  performed.   By  default,  the  F$PARSE
 function verifies that the directory in the file specification exists
 on the device in the file specification.  Note that  the  device  and
 directory  can be explicitly given in one of the arguments, or can be
 provided by default.

 Also, by default the F$PARSE function  translates  logical  names  if
 they  are  provided  in  any  of the arguments.  The F$PARSE function
 stops iterative translation when it encounters a  logical  name  with
 the CONCEALED attribute.

 You can change how the F$PARSE function parses a  file  specification
 by using one of the following keywords:

 NO_CONCEAL    Logical names are  not  concealed.  Therefore,  logical
               name  translation does not end when a concealed logical
               name is encountered.

 SYNTAX_ONLY   The syntax of the file specification is checked without
               verifying  that  the  specified directory exists on the
               specified device.

Examples

 1.   $ SET DEF DISK2:[FIRST]
      $ SPEC = F$PARSE("JAMES.MAR","[ROOT]",,,"SYNTAX_ONLY")
      $ SHOW SYMBOL SPEC
        SPEC = "DISK2:[ROOT]JAMES.MAR;"

 In this example, the  F$PARSE  function  returns  the  expanded  file
 specification   for   the  file  JAMES.MAR.   The  example  uses  the
 SYNTAX_ONLY keyword to request that F$PARSE should check the  syntax,
 but should not verify that the [ROOT] directory exists on DISK2.

 The default  device  and  directory  are  DISK2:[FIRST].   Since  the
 directory  name  [ROOT]  is specified as the default-spec argument in
 the assignment statement, it is used as the  directory  name  in  the
 output  string.   Note that the default device returned in the output
 string is DISK2 and the default version number for the file is  null.
 You  must  place  quotation  marks around the arguments JAMES.MAR and
 ROOT because they are string literals.

 If you had not specified syntax-only parsing, and [ROOT] were not  on
 DISK2, a null string would have been returned.

 2.  $ SET DEFAULT DB1:[VARGO]
     $ SPEC = F$PARSE("INFO.COM",,,"DIRECTORY")
     $ SHOW SYMBOL SPEC
       SPEC = "[VARGO]"

 In this example the F$PARSE function returns the  directory  name  of
 the   file   INFO.COM.    Note   that,  since  the  default-spec  and
 related-spec are omitted from the argument list, commas (,)  must  be
 inserted in their place.

 3.  $ SPEC = F$PARSE("DENVER::DB1:[PROD]RUN.DAT",,,"TYPE")
     $ SHOW SYMBOL SPEC
       SPEC = ".DAT"

 In this example, the  F$PARSE  function  is  used  to  parse  a  file
 specification  containing  a node name.  The F$PARSE function returns
 the file type DAT for the file RUN.DAT at the remote node DENVER.

F$PID

 The F$PID function returns a process identification (PID) number, and
 updates  the  context  symbol to point to the current position in the
 system's process list.

 Format:

      F$PID(context-symbol)

Additional information available:

Return Valuecontext-symbolExample

Return Value

 A character string containing the process identification (PID) number
 of a process in the system's list of processes.

 The PIDs returned by the F$PID function depend on  the  privilege  of
 your  process.   If  you  have  GROUP  privilege,  the F$PID function
 returns  PIDs  of  processes  in  your  group.   If  you  have  WORLD
 privilege,  the  F$PID  function returns PIDs of all processes on the
 system.  If you lack GROUP or WORLD privileges,  the  F$PID  function
 returns only your process PID.

 After the last PID in the system's  process  list  is  returned,  the
 F$PID function returns a null string.

context-symbol

 A symbol that DCL uses to store a pointer into the system's  list  of
 processes.  The F$PID function uses this pointer to return a PID.

Example

 1.   $ CONTEXT = ""
      $ START:
      $     PID = F$PID(CONTEXT)
      $     IF PID .EQS. "" THEN EXIT
      $     SHOW SYMBOL PID
      $     GOTO START

 This command procedure uses the F$PID function to display a  list  of
 PIDs.  The assignment statement declares the symbol CONTEXT, which is
 used as the context-symbol argument for the F$PID function.   Because
 CONTEXT  is  equated to a null string, the F$PID function will return
 the first PID in the process  list  that  it  has  the  privilege  to
 access.

 The PIDs displayed by this command procedure depend on the  privilege
 of your process.  When run with GROUP privilege, the PIDs of users in
 your group are displayed.  When run with WORLD privilege, the PIDS of
 all  users  on  the  system  are  displayed.   Without GROUP or WORLD
 privilege, only your PID is displayed.

F$PRIVILEGE

 Returns a value of either "TRUE" or  "FALSE",  depending  on  whether
 your  current  process  privileges match the privileges listed in the
 argument.

 Format:

      F$PRIVILEGE(priv-states)

Additional information available:

Return Valuepriv-statesExample

Return Value

 A character string containing  the  value  "TRUE"  or  "FALSE".   The
 F$PRIVILEGE  function  returns  the  string "FALSE" if any one of the
 privileges in the priv-states list is false.

priv-states

 A privilege or a list of privileges separated by commas.  Specify the
 priv-states  argument  as  a  character  string  expression.  You can
 specify any privilege except [NO]ALL.

Example

 1.   $ PROCPRIV = F$PRIVILEGE("OPER,GROUP,TMPMBX,NONETMBX")
      $ SHOW SYMBOL PROCPRIV
        PROCPRIV = "FALSE"

 The F$PRIVILEGE function is used to  test  whether  the  process  has
 OPER, USER, TMPMBX, and NETMBX privileges.

 The process in this example  has  OPER,  GROUP,  TMPMBX,  and  NETMBX
 privileges.   Therefore,  a  value of "FALSE" is returned because the
 process has NETMBX privilege,  but  NONETMBX  was  specified  in  the
 priv-states  list.   Although  the Boolean result for the other three
 keywords is true, the entire expression is declared false  since  the
 result for NONETMBX was false.

F$PROCESS

 Obtains the current process name string.  The F$PROCESS function  has
 no arguments, but must be followed by parentheses.

 Format:

      F$PROCESS()

Additional information available:

Return ValueExample

Return Value

 A character string containing the current process name.

Example

 1.   $ NAME = F$PROCESS()
      $ SHOW SYMBOL NAME
        NAME = "MARTIN"

 In this example, the F$PROCESS function returns the  current  process
 name and assigns it to the symbol NAME.

F$SEARCH

 Invokes the $SEARCH RMS service to search a directory file and return
 the full file specification for a file you name.

 Format:

      F$SEARCH(file-spec[,stream-id])

Additional information available:

Return Valuefile-specstream-idExamples

Return Value

 A character string containing the expanded file specification for the
 file-spec  argument.  If the F$SEARCH function does not find the file
 in the directory, the function returns a null ("") string.

file-spec

 The file specification to be searched  for.   You  must  specify  the
 file-spec argument as a character string expression.

 If you omit the device or  directory  names,  the  F$SEARCH  function
 supplies  defaults from your current default disk and directory.  The
 F$SEARCH function does not supply defaults for a file name  or  type.
 If  you  omit  the  version number, the F$SEARCH function returns the
 specification for the file with the highest version number.

 You can use wildcards in the file-spec argument.

stream-id

 A search stream identification number.   Specify  the  search  stream
 identification number as a positive integer expression.

 If you omit the stream-id argument, the F$SEARCH function assumes  an
 implicit  single  search stream.  That is, the F$SEARCH function will
 start searching at the beginning of the directory file each time  you
 specify a different file-spec argument.

Examples

 1.   $ START:
      $     FILE = F$SEARCH("SYS$SYSTEM:*.EXE")
      $     IF FILE .EQS. "" THEN EXIT
      $     SHOW SYMBOL FILE
      $     GOTO START

 This command procedure displays the file-specs of the latest  version
 of  all  .EXE  files  in  the SYS$SYSTEM directory.  (Only the latest
 version is returned because a wildcard is not  used  as  the  version
 number.)  The  file-spec  argument  SYS$SYSTEM:*.EXE is surrounded by
 quotation marks because it is a character string expression.

 Because no stream-id argument  is  specified,  the  F$SEARCH  uses  a
 single  search  stream.   Each  subsequent F$SEARCH function uses the
 same file-spec argument to return the next file specification  of  an
 .EXE  file  from  SYS$SYSTEM:.  After the latest version of each .EXE
 file has been displayed, the F$SEARCH function returns a null  string
 and the procedure exits.

 2.  $ START:
     $    COM = F$SEARCH ("*.COM;*",1)
     $    DAT = F$SEARCH ("*.DAT;*",2)
     $    SHOW SYMBOL COM
     $    SHOW SYMBOL DAT
     $    IF (COM.EQS. "") .AND. (DAT.EQS. "") THEN EXIT
     $    GOTO START

 This command procedure searches the default disk  and  directory  for
 both  COM  and DAT files.  Notice that the stream-id is specified for
 each F$SEARCH function  so  that  the  context  for  each  search  is
 maintained.

 The first F$SEARCH function starts searching  from  the  top  of  the
 directory  file  for  a file with a type of COM.  When it finds a COM
 file, a pointer is set to maintain  the  search  context.   When  the
 F$SEARCH  function is used the second time, it again starts searching
 from the top of the directory file for a file with  a  type  of  DAT.
 When  the  procedure  loops  back  to  the label START, the stream-id
 argument allows each F$SEARCH function  to  start  searching  in  the
 correct  place  in the directory file.  After all versions of COM and
 DAT files are returned, the procedure exits.

 3.  $ FILESPEC = F$SEARCH("TRNTO""SMITH SALLY""::DBA1:[PROD]*.DAT")
     $ SHOW SYMBOL FILESPEC
       FILESPEC = "TRNTO"smith password"::DBA1:[PROD]CARS.DAT"

 This  example  uses  the  F$SEARCH  function   to   return   a   file
 specification for a file at a remote node.  The access control string
 is enclosed in double  quotation  marks  because  it  is  part  of  a
 character  string  expression when it is an argument for the F$SEARCH
 function; to include quotation marks in a character string expression
 you must specify two sets of quotation marks.

 Note that, when the F$SEARCH function returns a node name  containing
 an  access control string, it substitutes the word "password" for the
 actual user password.

F$SETPRV

 Returns a list of keywords indicating user privileges.  In  addition,
 the F$SETPRV function invokes the $SETPRV system service to enable or
 disable specified user  privileges.   The  return  string  shows  the
 status  of  user privileges before changes are made with the F$SETPRV
 function.

 In order to enable  or  disable  privileges,  your  process  must  be
 authorized  to set the specified privilege.  For detailed information
 on privilege restrictions, see the description of the $SETPRV  system
 service in the VMS System Services Manual.

 Format:

      F$SETPRV(priv-states)

Additional information available:

Return Valuepriv-statesExamples

Return Value

 A character  string  containing  keywords  for  the  current  process
 privileges before they were changed by the F$SETPRV function.

priv-states

 A privilege or a list of privileges separated by commas.  Specify the
 priv-states argument as a character string expression.

Examples

 1.   $ OLDPRIV = F$SETPRV("OPER,NOTMPMBX")
      $ SHOW SYMBOL OLDPRIV
        OLDPRIV = "NOOPER,TMPMBX"

 In this example, the process is authorized to  change  the  OPER  and
 TMPMBX  privileges.  The F$SETPRV function enables the OPER privilege
 and  disables  the  TMPMBX  privilege.   In  addition,  the  F$SETPRV
 function returns the keywords NOOPER and TMPMBX, showing the state of
 these privileges before they were changed.

 You must place quotation marks around the list of privilege  keywords
 because it is a string literal.

 2.  $ SAVPRIV = F$SETPRV("NOGROUP")
     $ SHOW SYMBOL SAVPRIV
       SAVPRIV = "GROUP"
     $ TEST = F$PRIVILEGE("GROUP")
     $ SHOW SYMBOL TEST
       TEST = "TRUE"

 In this example, the process is not authorized to  change  the  GROUP
 privilege.   However, the F$SETPRV function still returns the current
 setting for the GROUP privilege.

 The F$PRIVILEGE function is used to see whether the process has GROUP
 privilege.   The  return string, TRUE, indicates that the process has
 GROUP privilege, even  though  the  F$SETPRV  function  attempted  to
 disable the privilege.

F$STRING

 Returns  the  string  equivalent  of  the  result  of  the  specified
 expression.

 Format:

      F$STRING(expression)

Additional information available:

Return ValueexpressionExample

Return Value

 A character string which is equivalent to the specified expression.

expression

 The expression to be evaluated by the F$STRING expression.   You  can
 specify either an integer or a character string expression.

Example

 1.   $ A = 5
      $ B = F$STRING(-2 + A)
      $ SHOW SYMBOL B
        B = "3"

 The F$STRING function in the above example converts the result of the
 integer  expression (-2 + A) to the numeric string, "3".  First, the
 F$STRING function evaluates the expression  (-2 + A).  Note  that  5,
 the  value of symbol A, is automatically substituted when the integer
 expression is evaluated.

 After the integer expression  is  evaluated,  the  F$STRING  function
 converts the resulting integer, 3, to the string "3".  This string is
 assigned to the symbol B.

F$TIME

 Returns the current date and time string.  The F$TIME function has no
 arguments, but must be followed by parentheses.

 Format:

      F$TIME()

Additional information available:

Return ValueExample

Return Value

 A character  string  containing  the  current  date  and  time.   The
 returned string has the following fixed, 23-character format:
      dd-mmm-yyyy hh:mm:ss.cc

Example

 1.   $ OPEN/WRITE OUTFILE DATA.DAT
      $ TIME_STAMP = F$TIME()
      $ WRITE OUTFILE TIME_STAMP

 This example shows how to use the F$TIME  function  to  time-stamp  a
 file  that  you  create  from  a  command  procedure.  OUTFILE is the
 logical name for the file DATA.DAT, which is opened for writing.  The
 F$TIME function returns the current date and time string, and assigns
 this string to the symbol TIME_STAMP.  The WRITE command  writes  the
 date and time string to OUTFILE.

F$TRNLNM

 Translates a logical name and returns the equivalence name string, or
 the requested attributes of the logical name.  The translation is not
 iterative; the equivalence string is not checked to determine whether
 it is a logical name.

 Format:

      F$TRNLNM(logical-name [,table] [,index] [,mode] [,case] [,item])

Additional information available:

Return Valuelogical-nametableindexmodecaseitem
Examples

Return Value

 The equivalence name or attribute of the specified logical name.  The
 return  value  can  be a character string or an integer, depending on
 the arguments you specify with the F$TRNLNM function.

 The F$TRNLNM function returns a null string if no match is found.

logical-name

 The logical name to be translated.  You must specify the logical-name
 argument as a string expression.

table

 The logical name table or tables that the  F$TRNLNM  function  should
 search  to  translate the logical name.  The table argument must be a
 logical name that translates to a logical name table, or to a list of
 table names.  Specify the table argument as a string expression.

 If you do not specify a table, the default value is LNM$DCL_LOGICAL.

index

 The index of the equivalence name to be returned.

 If you do not specify an index, the default is 0.

mode

 The access mode for the translation.  Specify the access  mode  as  a
 character  string  expression  that evaluates to one of the following
 strings:

          USER, SUPERVISOR, EXECUTIVE, or KERNEL.

 If you do not specify an access mode, the default mode is USER.

case

 The type of case translation  to  be  performed.   Specify  the  case
 argument as a character string that evaluates to one of the following
 strings:

            CASE_BLIND or CASE_SENSITIVE.

 If you do not specify the case argument, the default is CASE_BLIND.

item

 The type  of  information  that  F$TRNLNM  should  return  about  the
 specified  logical  name.   You  can specify any one of the following
 strings as an item:

 ACCESS_MODE   Returns the access  mode  associated with  the  logical
               name.   The  access  mode  is  returned  as  one of the
               following  character  strings:   "USER",  "SUPERVISOR",
               "EXECUTIVE", "KERNEL".

 CONCEALED     Returns one of the character strings "TRUE"  or "FALSE"
               to   indicate   whether  the  CONCEALED  attribute  was
               specified with  the  /TRANSLATION_ATTRIBUTES  qualifier
               when  the  logical  name  was  created.   The CONCEALED
               attribute is used to create a concealed logical name.

 CONFINE       Returns one of the character strings "TRUE"  or "FALSE"
               to  indicate  whether the logical name is confined.  If
               the logical name is confined (TRUE), then the name will
               not  be copied to subprocesses.  If the logical name is
               not confined (FALSE), then the name will be  copied  to
               subprocesses.

 CRELOG        Returns one of the character strings "TRUE"  or "FALSE"
               to  indicate  whether the logical name was created with
               the $CRELOG system service or with the  $CRELNM  system
               service, using the CRELOG attribute.

               If the logical name was created with the $CRELOG system
               service  or  with the $CRELNM system service, using the
               CRELOG attribute, then the string "TRUE"  is  returned.
               Otherwise, the string "FALSE" is returned.

 LENGTH        Returns the length of the equivalence  name  associated
               with  the  specified logical name.  If the logical name
               has  more  than  one  equivalence  name,  the  F$TRNLNM
               function  returns  the  length of the name specified by
               the index argument.   The  length  is  returned  as  an
               integer.

 MAX_INDEX     Returns the largest index defined for the logical name.
               The   index   shows  how  many  equivalence  names  are
               associated with a logical  name.   The  index  is  zero
               based; that is, the index 0 refers to the first name in
               a list of equivalence names.  The index is returned  as
               an integer.

 NO_ALIAS      Returns one of the character strings "TRUE"  or "FALSE"
               to  indicate  whether the logical name has the NO_ALIAS
               attribute.  The NO_ALIAS attribute means that a logical
               name  with  the same name cannot be created in an outer
               access mode.

 TABLE         Returns one of the character strings "TRUE"  or "FALSE"
               to  indicate  whether the logical name is the name of a
               logical name table.

 TABLE_NAME    Returns the name of the table where the logical name was
               found.   The  table  name  is  returned  as a character
               string.

 TERMINAL      Returns one of the character strings "TRUE"  or "FALSE"
               to   indicate   whether   the  TERMINAL  attribute  was
               specified with  the  /TRANSLATION_ATTRIBUTES  qualifier
               when  the  logical  name  was  created.   The  TERMINAL
               attribute indicates that the  logical  name  is  not  a
               candidate for iterative translation.

 VALUE         Returns  the  equivalence  name  associated  with   the
               specified  logical  name.  If the logical name has more
               than  one  equivalence  name,  the  F$TRNLNM   function
               returns  the name specified by the index argument.  The
               equivalence name is returned  as  a  character  string.
               VALUE  is  the  default  if  you do not specify an item
               argument.

Examples

 1.   $ SAVE_DIR = F$TRNLNM("SYS$DISK")+F$DIRECTORY()
         .
         .
         .

      $ SET DEFAULT 'SAVE_DIR'

 The assignment statement concatenates  the  values  returned  by  the
 F$DIRECTORY  and F$TRNLNM functions, and assigns the resulting string
 to the symbol SAVE_DIR.  The  symbol  SAVE_DIR  consists  of  a  full
 device and directory name string.

 The argument SYS$DISK is enclosed in quotation marks because it is  a
 character string.  (The command interpreter treats all arguments that
 begin with alphabetic characters as  symbols  or  lexical  functions,
 unless  the  arguments  are enclosed within quotation marks.) None of
 the optional arguments are specified, so the F$TRNLNM  function  uses
 the defaults.

 At the end of the command procedure, the original  default  directory
 is  reset.   When you reset the directory, you must place apostrophes
 around the symbol SAVE_DIR to force symbol substitution.

 2.  $ DEFINE/TABLE=LNM$GROUP TERMINAL 'F$TRNLNM("SYS$OUTPUT")'

 This example shows a line from a command procedure that (1) uses  the
 F$TRNLNM  function to determine the name of the current output device
 and (2) creates a  group  logical  name  table  entry  based  on  the
 equivalence string.

 You must place the argument SYS$OUTPUT within quotation marks because
 it is a character string.

 Also, in this example you must place  the  F$TRNLNM  function  within
 single  quotes  to  force  the  lexical  function  to  be  evaluated.
 Otherwise, the DEFINE command will  not  automatically  evaluate  the
 lexical function.

F$TYPE

 Determines the data type of a symbol.

 Format:

      F$TYPE(symbol-name)

Additional information available:

Return ValuesymbolExamples

Return Value

 The string "INTEGER" if the symbol is equated to an  integer,  or  if
 the  symbol  is  equated  to  a string in which the characters form a
 valid integer.  The F$TYPE function returns the  string  "STRING"  if
 the  symbol  is equated to a character string in which the characters
 do not form a valid integer.  A null string is returned if the symbol
 is undefined.

symbol

 The name of symbol that is evaluated.

Examples

 1.   $ NUM = "52"
      $ TYPE = F$TYPE(NUM)
      $ SHOW SYMBOL TYPE
        TYPE = "INTEGER"

 This example uses the F$TYPE function to determine the data  type  of
 the  symbol  NUM.   NUM  is  equated  to  the  character string "52".
 Because the characters in the string form a valid integer, the F$TYPE
 function returns the string "INTEGER".

 2.  $ NUM = 52
     $ TYPE = F$TYPE(NUM)
     $ SHOW SYMBOL TYPE
       TYPE = "INTEGER"

 In this example, the symbol NUM is equated to the  integer  52.   The
 F$TYPE function shows that the symbol has an integer data type.

 3.  $ CHAR = "FIVE"
     $ TYPE = F$TYPE(CHAR)
     $ SHOW SYMBOL TYPE
       TYPE = "STRING"

 In this example, the symbol CHAR is equated to the  character  string
 "FIVE".   Because  the  characters in this string do not form a valid
 integer, the F$TYPE function shows  that  the  symbol  has  a  string
 value.

F$USER

 Returns the current user identification code (UIC), in named  format.
 The  F$USER  function  has  no  arguments,  but  must  be followed by
 parentheses.

 Format:

      F$USER()

Additional information available:

Return ValueExample

Return Value

 A character string containing the current user identification  (UIC),
 including  square  brackets.   The  UIC  is  returned  in  the format
 [group-identifier, member-identifier].

Example

 1.   $ UIC = F$USER()
      $ SHOW SYMBOL UIC
        UIC = "[GROUP6,JENNIFER]"

 In  this  example  the  F$USER  function  returns  the  current  user
 identification code and assigns it to the symbol UIC.

F$VERIFY

 Returns  an  integer   value   indicating   whether   the   procedure
 verification setting is currently on or off.  If used with arguments,
 the F$VERIFY function can turn the procedure and  image  verification
 settings  on  or  off.   You  must  include the parentheses after the
 F$VERIFY function, whether or not you specify arguments.

 Format:

      F$VERIFY([procedure-value] [,image-value])

Additional information available:

Return Valueprocedure-valueimage-valueExamples

Return Value

 The integer 0 if the procedure verification setting is  off,  or  the
 integer 1 if the procedure verification setting is on.

procedure-value

 An  integer  expression  with  a  value  of  0  to   turn   procedure
 verification off, or 1 to turn procedure verification on.

image-value

 An integer expression with a value of 0 to  turn  image  verification
 off, or 1 to turn image verification on.

Examples

 1.   $ SAVE_PROC_VERIFY = F$ENVIRONMENT("VERIFY_PROCEDURE")
      $ SAVE_IMAGE_VERIFY = F$ENVIRONMENT("VERIFY_IMAGE")
      $ SET NOVERIFY
         .
         .
         .

      $ TEMP = F$VERIFY(SAVE_PROC_VERIFY, SAVE_IMAGE_VERIFY)

 This example shows an excerpt from a command  procedure.   The  first
 assignment  statement  assigns  the  current  procedure  verification
 setting  to  the  symbol  SAVE_PROC_VERIFY.   The  second  assignment
 statement  assigns  the  current  image  verification  setting to the
 symbol SAVE_IMAGE_VERIFY.

 Then,  the  SET  NOVERIFY  command  disables  procedure   and   image
 verification.   Later,  the F$VERIFY function resets the verification
 settings,  using  the  original  values  (equated  to   the   symbols
 SAVE_PROC_VERIFY  and  SAVE_IMAGE_VERIFY).   The symbol TEMP contains
 the procedure verification before it is  changed  with  the  F$VERIFY
 function.  (In this example the value of TEMP is not used.)

 2.
       $ VERIFY = F$VERIFY(0)
         .
         .
         .

       $ IF VERIFY .EQ. 1 THEN SET VERIFY

 This example shows an excerpt from a command procedure that uses  the
 F$VERIFY  function to save the current procedure verification setting
 and to turn both procedure and image verification off.  At the end of
 the  command  procedure, if procedure verification was originally on,
 both the procedure and image verification are turned on.

Line editing

 Your terminal has special keys that allow you to recall and edit
 previous commands.  These keys are described below.  Note that some
 of these keys may not be available on your keyboard.

 Recalling Commands
 ------------------
 The system saves and allows you to access up to 20 of your most recently
 entered commands.  It saves less than 20 if your commands are very long.
 Use the UP-ARROW or CTRL/B keys to recall previously entered commands.
 Use the DOWN-ARROW key to reexamine a command that you had retrieved
 using UP-ARROW.

 If you are supplying commands or data to a program or utility, the
 system saves and allows you to access only your single most recently
 entered command.


 Editing Commands
 ----------------
 To enable the editing keys, execute the command

        SET TERMINAL/LINE_EDITING

 Append /OVERSTRIKE or /INSERT to the command to specify the default
 editing mode that you prefer.  /OVERSTRIKE causes a character that you
 type to be written over the character that the cursor is currently
 pointing at.  /INSERT causes the character to be inserted before the
 cursor.

 Edit Key        Function
 --------        --------
 CTRL/A or       Switches between overstrike mode and insert mode. The
 F14             default mode is reset at the beginning of each line.

 CTRL/D or       Moves the cursor one character to the left.
 LEFT-ARROW

 CTRL/E          Moves the cursor to the end of the line.

 CTRL/F or       Moves the cursor one character to the right.
 RIGHT-ARROW

 CTRL/H or       Moves the cursor to the beginning of the line.
 BACKSPACE or
 F12

 CTRL/J or       Deletes the word to the left of the cursor.
 LINEFEED or
 F13

 CTRL/U          Deletes characters from the beginning of the line to the
                 cursor.

Queues

 The following DCL commands can be used to control print and batch queues
 and the entries in them.

   ASSIGN/MERGE      Move jobs from one queue to another
   ASSIGN/QUEUE      Assign a queue to a device
   DEASSIGN/QUEUE    Deassign a queue from a device
   DELETE/ENTRY      Delete a pending entry from a queue
   DELETE/QUEUE      Delete a queue and all its entries
   INITIALIZE/QUEUE  Create and initialize a queue
   PRINT             Place an entry in a print queue
   SET ENTRY         Change the status of a pending entry in a queue
                     (supersedes the SET QUEUE/ENTRY command)
   SET QUEUE/ENTRY   Change the status of a pending entry in a queue
   SHOW QUEUE        Display status of entries in a queue
   START/QUEUE       Start or restart a queue
   STOP/QUEUE        Control queue or current entry in it
   STOP/REQUEUE      Stop and requeue an entry in a print queue
   SUBMIT            Place an entry in a batch queue
   SYNCHRONIZE       Wait for completion of a batch entry

RTL Routines

  The  VAX   Run-Time   Library  is  a   collection  of  procedures
  available  to  native  mode images  at run  time.   These library
  procedures are  common to  all native  mode images, regardless of
  the language processor used to compile or assemble the program.


Additional information available:

DTK$LIB$MTH$OTS$PPL$SMG$STR$

DTK$

Additional information available:

DTK$ANSWER_PHONEDTK$CHECK_HDWR_STATUSDTK$DIAL_PHONE
DTK$HANGUP_PHONEDTK$INITIALIZEDTK$LOAD_DICTIONARY
DTK$READ_KEYSTROKEDTK$READ_STRINGDTK$RETURN_LAST_INDEX
DTK$SET_INDEXDTK$SET_KEYPAD_MODEDTK$SET_LOGGING_MODE
DTK$SET_MODEDTK$SET_SPEECH_MODEDTK$SET_TERMINAL_MODE
DTK$SET_VOICEDTK$SPEAK_FILEDTK$SPEAK_PHONEMIC_TEXT
DTK$SPEAK_TEXTDTK$SPELL_TEXTDTK$TERMINATE

DTK$ANSWER_PHONE

  The Wait for Phone to Ring and Answer routine waits  for  the  phone
  connected to the DECtalk device to ring and then answers it.

     Format:

       DTK$ANSWER_PHONE  voice-id [,number-of-rings] [,text] [,timeout]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  number-of-rings

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of rings DECtalk waits for before answering the  phone.   The
  optional  number-of-rings  argument  is  the  address  of  a  signed
  longword containing this number.  The default is 1 ring.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text that DECtalk speaks after answering the  phone.   The  optional
  text argument is the address of a descriptor pointing to the text.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of seconds that DECtalk  allows  the  phone  to  ring  before
  answering.  The optional timeout argument is the address of a signed
  longword containing this timeout value.  There is no default value.

DTK$CHECK_HDWR_STATUS

  The Check Hardware Status routine checks the  DECtalk  hardware  for
  hardware malfunctions.

     Format:

       DTK$CHECK_HDWR_STATUS  voice-id ,hdwr-status

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the  DECtalk.   The  voice-id  argument  is  the
  address  of  an  unsigned  longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  hdwr-status

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives  the  hardware  status  of  the   DECtalk   machine.    The
  hdwr-status argument is the address of an unsigned longword bit mask
  that receives the status.

DTK$DIAL_PHONE

  The Dial the Telephone routine dials the  specified  number  on  the
  telephone.

     Format:

       DTK$DIAL_PHONE  voice-id ,phone-number [,dial-mode] [,text]
                  [,timeout]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk machine.  The voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  phone-number

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Phone number to dial.  The phone-number argument is the address of a
  descriptor pointing to the specified phone number.

  dial-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode to use when dialing the phone.  The optional dial-mode argument
  is the address of an unsigned longword containing this mode.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be spoken after the phone is answered.  The text argument is
  the address of a descriptor pointing to the specified text.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of seconds to  wait  for  the  phone  to  be  answered.   The
  optional  timeout  argument  is  the  address  of  a signed longword
  containing this timeout value.  If omitted, DECtalk dials the  phone
  and then returns control to the calling program immediately.

DTK$HANGUP_PHONE

  The Hang Up the Phone routine speaks an optional  message  and  then
  hangs up the phone.

     Format:

       DTK$HANGUP_PHONE  voice-id [,text]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be spoken before hanging up the phone.   The  optional  text
  argument  is  the  address of a descriptor pointing to the specified
  text.

DTK$INITIALIZE

  The Initialize DECtalk routine  initializes  a  DECtalk  device  and
  returns the device's assigned voice identifier.

     Format:

       DTK$INITIALIZE  voice-id ,output-device [,device-type]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Voice identifier of the newly created DECtalk device.  The  voice-id
  argument  is  the address of an unsigned longword that receives this
  identifier.

  output-device

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  File specification or logical name to which  the  output  associated
  with  the  DECtalk device is written.  The output-device argument is
  the address of a descriptor pointing to this logical name.

  device-type

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Device type of the  newly  created  DECtalk  device.   The  optional
  device-type  argument  is  the  address  of  a  signed longword that
  receives the device-type information.  The two  valid  device  types
  are:

       DTK$K_DTC_01      For DECtalk I.

       DTK$K_DTC_03      For DECtalk III.

DTK$LOAD_DICTIONARY

  The Load a Word into the DECtalk Dictionary routine loads a phonemic
  definition of a word into the DECtalk dictionary.

     Format:

       DTK$LOAD_DICTIONARY  voice-id ,text ,substitution

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Word to be loaded into the DECtalk dictionary.  The text argument is
  the address of a descriptor pointing to the specified word.

  substitution

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Phonemic definition of the word specified by the text argument.  The
  substitution argument is the address of a descriptor pointing to the
  phonemic representation of the specified word.

DTK$READ_KEYSTROKE

  The Read a Key Entered on the Keypad routine reads a key entered  on
  the phone keypad.

     Format:

       DTK$READ_KEYSTROKE  voice-id ,key-code [,prompt-string]
                  [,timeout]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  key-code

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  The DTK$K_TRM_xxxx code for the key  entered  on  the  keypad.   The
  key-code  argument is the address of a signed longword that receives
  this code.  The valid codes are listed in DTKDEF.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text  to  be  spoken  before  waiting  for  input.    The   optional
  prompt-string  argument  is  the address of a descriptor pointing to
  this text.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of seconds to wait for input.  The optional timeout  argument
  is  the address of a signed longword containing the specified number
  of seconds the DECtalk device  waits  for  input.   If  the  timeout
  argument    is   omitted,   DTK$READ_KEYSTROKE   waits   for   input
  indefinitely.

DTK$READ_STRING

  The Read a Series of Keys Entered on  the  Keypad  routine  reads  a
  series of keys entered on the phone keypad.

     Format:

       DTK$READ_STRING  voice-id ,resultant-string [,prompt-string]
                  [,timeout] [,longword-integer-termin-code]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  into  which  the  keys  being   read   are   written.    The
  resultant-string argument is the address of a descriptor pointing to
  this string.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text  to  be  spoken  before  waiting  for  input.    The   optional
  prompt-string  argument  is  the address of a descriptor pointing to
  this text.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of seconds DECtalk waits for  input.   The  optional  timeout
  argument  is  the address of a signed longword containing the number
  of seconds DECtalk waits for input.   If  the  timeout  argument  is
  omitted, DTK$READ_STRING waits for input indefinitely.

  longword-integer-termin-code

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  The DTK$K_TRM_xxxx code for terminating key entered.   The  optional
  longword-integer-termin-code  argument  is  the  address of a signed
  longword that receives this code.  The valid codes  are  located  in
  DTKDEF.

DTK$RETURN_LAST_INDEX

  The Return Last Index Spoken routine returns the last index spoken.

     Format:

       DTK$RETURN_LAST_INDEX  voice-id ,p-index

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  p-index

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Index to be returned.  The p-index argument  is  the  address  of  a
  signed longword that receives the index identifier.

DTK$SET_INDEX

  The Insert an Index at the Current Position routine inserts an index
  into the current output stream.

     Format:

       DTK$SET_INDEX  voice-id ,p-index

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  p-index

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Index to be inserted.  The p-index argument  is  the  address  of  a
  signed longword containing the index value.  Valid values are in the
  range of 1 to 32767.  An index  of  zero  is  reserved  for  use  by
  DIGITAL.

DTK$SET_KEYPAD_MODE

  The Turn the Phone Keypad On and Off routine  turns  recognition  of
  the telephone keypad on or off.

     Format:

       DTK$SET_KEYPAD_MODE  voice-id ,keypad-mode

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  keypad-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode that determines  the  status  of  the  telephone  keypad.   The
  keypad-mode   argument  is  the  address  of  an  unsigned  longword
  containing this mode.  The valid mode specifiers are:

       DTK$K_KEYPAD_ON        Turns the keypad on.

       DTK$K_KEYPAD_OFF       Turns the keypad off.

       DTK$K_KEYPAD_AUTO      Turns the keypad on with autostop.

DTK$SET_LOGGING_MODE

  The Set the Logging Mode for the Video  Terminal  Connected  to  the
  DECtalk Device routine controls the information that is displayed on
  the video terminal while the DECtalk device is functioning.

     Format:

       DTK$SET_LOGGING_MODE  voice-id [,new-mode] [,old-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  new-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  DECtalk mode to be set.   The  optional  new-mode  argument  is  the
  address of a longword bit mask containing the specified mode.  Valid
  values for new-mode are:

  o  DTK$M_TEXT

  o  DTK$M_PHONEME

  o  DTK$M_RAWHOST

  o  DTK$M_INHOST

  o  DTK$M_OUTHOST

  o  DTK$M_ERROR

  o  DTK$M_TRACE

  o  DTK$M_DEBUG

  old-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Current mode settings of the DECtalk device.  The optional  old-mode
  argument  is  the  address  of a longword bit mask that receives the
  current DECtalk settings.

DTK$SET_MODE

  The Set the Mode for the DECtalk Terminal routine sets or resets the
  mode settings of the DECtalk terminal.

     Format:

       DTK$SET_MODE  voice-id [,new-mode] [,old-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  new-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  DECtalk mode to be set.   The  optional  new-mode  argument  is  the
  address of a longword bit mask containing the specified mode.  Valid
  values for new-mode are:

  o  DTK$M_SQUARE

  o  DTK$M_ASCII (valid for the DTC01 device only)

  o  DTK$M_MINUS

  o  DTK$M_EUROPE (valid for the DTC03 device only)

  o  DTK$M_SPELL (valid for the DTC03 device only)

  old-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Current mode settings of the DECtalk device.  The optional  old-mode
  argument  is  the  address  of a longword bit mask that receives the
  current DECtalk settings.

DTK$SET_SPEECH_MODE

  The Turn Speech Mode On and Off routine either starts or  stops  the
  DECtalk device's speech.

     Format:

       DTK$SET_SPEECH_MODE  voice-id ,new-mode [,old-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  new-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode to be set.  The new-mode argument is the address of an unsigned
  longword containing the specified mode.  Valid values are:

       DTK$K_SPEAK        Start speaking.

       DTK$K_STOP         Stop   speaking   when   current   text   is
                            completed.

       DTK$K_HALT         Stop speaking immediately.

  old-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Current speech mode of the DECtalk device.   The  optional  old-mode
  argument  is  the  address of an unsigned longword that receives the
  current mode setting before  enabling  the  new  mode.   The  values
  returned  in  old-mode  are the same as those valid for the new-mode
  argument.

DTK$SET_TERMINAL_MODE

  The Set the Mode for the Video Terminal  Connected  to  the  DECtalk
  Device  routine  controls  the  attributes  of  the  video  terminal
  connected to the DECtalk device.

     Format:

       DTK$SET_TERMINAL_MODE  voice-id [,new-mode] [,old-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  new-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  DECtalk mode to be set.   The  optional  new-mode  argument  is  the
  address of a longword bit mask containing the specified mode.  Valid
  values for new-mode are:

  o  DTK$M_HOST

  o  DTK$M_SPEAK

  o  DTK$M_EDITED

  o  DTK$M_HARD

  o  DTK$M_SETUP

  o  DTK$M_FILTER

  old-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Current mode settings of the DECtalk device.  The optional  old-mode
  argument  is  the  address  of a longword bit mask that receives the
  current DECtalk settings.

DTK$SET_VOICE

  The Set Voice Characteristics  routine  changes  the  DECtalk  voice
  characteristics to match those specified.

     Format:

       DTK$SET_VOICE  voice-id [,new-voice] [,speech-rate]
                  [,comma-pause] [,period-pause]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  new-voice

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Type of voice.  The optional new-voice argument is the address of  a
  signed  longword containing any valid new-voice value.  Valid values
  for new-voice are:

       DTK$K_VOICE_MALE               Standard male voice

       DTK$K_VOICE_FEMALE             Standard female voice

       DTK$K_VOICE_CHILD              Standard child voice

       DTK$K_VOICE_DEEP_MALE          Deep male voice

       DTK$K_VOICE_DEEP_FEMALE        Deep female voice

       DTK$K_VOICE_OLDER_MALE         Older male voice

       DTK$K_VOICE_LIGHT_FEMALE       Light female voice

  speech-rate

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Rate at which DECtalk speaks, measured in  words  per  minute.   The
  optional  speech-rate  argument  is the address of a signed longword
  containing this rate.  The valid range of values for speech-rate  is
  120 to 350 words per minute.

  comma-pause

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Number of milliseconds by which to increase the time DECtalk  pauses
  after  a comma.  The optional comma-pause argument is the address of
  a signed longword containing this number.  A value  of  zero  resets
  the pause time to the hardware default value.

  period-pause

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Number of milliseconds by which to increase the time DECtalk  pauses
  after  a  period.  The optional period-pause argument is the address
  of a signed longword containing this number.  A value of zero resets
  the pause time to the hardware default value.

DTK$SPEAK_FILE

  The Speak the Text in a  Specified  File  routine  speaks  the  text
  contained in the specified file.

     Format:

       DTK$SPEAK_FILE  voice-id ,filespec [,completion-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File specification of the file containing the  text  to  be  spoken.
  The  filespec  argument  is  the address of a descriptor pointing to
  this file.

  completion-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode characteristic.  The optional completion-mode argument  is  the
  address  of  an  unsigned  longword  containing  the specified mode.
  Valid values for the completion-mode argument are:

       DTK$K_IMMED          Return to the user immediately (default).

       DTK$K_WAIT           Wait until the text is completely spoken.

       DTK$K_STATUS         Wait until the text is completely  spoken,
                              and then return a phone status.

DTK$SPEAK_PHONEMIC_TEXT

  The Speak the Specified Phonemic Text routine  sends  the  specified
  phonemic text to the DECtalk device to be spoken.

     Format:

       DTK$SPEAK_PHONEMIC_TEXT  voice-id ,text [,completion-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Phonemic text to be spoken.  The text argument is the address  of  a
  descriptor  pointing to the specified phonemic representation of the
  text.

  completion-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode characteristic.  The optional completion-mode argument  is  the
  address  of  an  unsigned  longword  containing  the specified mode.
  Valid values for the completion-mode argument are:

       DTK$K_IMMED          Return to the user immediately (default).

       DTK$K_WAIT           Wait until the text is completely spoken.

       DTK$K_STATUS         Wait until the text is completely  spoken,
                              and then return a phone status.

DTK$SPEAK_TEXT

  The Speak the Specified Text routine sends the specified text to the
  DECtalk device to be spoken.

     Format:

       DTK$SPEAK_TEXT  voice-id ,text [,completion-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be spoken.  The text argument is the address of a descriptor
  pointing to the specified text.

  completion-mode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mode characteristic.  The optional completion-mode argument  is  the
  address  of  an  unsigned  longword  containing  the specified mode.
  Valid values for the completion-mode argument are:

       DTK$K_IMMED          Return to the user immediately (default).

       DTK$K_WAIT           Wait until the text is completely spoken.

       DTK$K_STATUS         Wait until the text is completely  spoken,
                              and then return a phone status.

DTK$SPELL_TEXT

  The Spell Text routine causes DECtalk to pronounce  each  letter  of
  the specified text.

     Format:

       DTK$SPELL_TEXT  voice-id ,text [,completion-mode]

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be spelled out by DECtalk.  The text argument is the address
  of a descriptor pointing to the specified string.

  completion-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The optional completion mode  characteristic.   The  completion-mode
  argument  is  the  address  of  a  longword  bit mask containing the
  specified mode.  Valid values for the completion-mode argument are:

       DTK$K_IMMED          Return to the user immediately (default).

       DTK$K_WAIT           Wait until the text is completely spoken.

       DTK$K_STATUS         Wait until the text is completely  spoken,
                              and then return a phone status.

DTK$TERMINATE

  The Terminate DECtalk routine terminates the use of  an  initialized
  DECtalk.

     Format:

       DTK$TERMINATE  voice-id

     Arguments:

  voice-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Voice identifier of the DECtalk device.  The  voice-id  argument  is
  the address of an unsigned longword containing this identifier.  The
  voice identifier is returned by the DTK$INITIALIZE routine.

LIB$

Additional information available:

LIB$ADAWILIB$ADD_TIMESLIB$ADDXLIB$ANALYZE_SDESCLIB$ASN_WTH_MBX
LIB$AST_IN_PROGLIB$ATTACHLIB$BBCCILIB$BBSSILIB$CALLG
LIB$CHARLIB$CONVERT_DATE_STRINGLIB$CRCLIB$CRC_TABLE
LIB$CREATE_DIRLIB$CREATE_USER_VM_ZONELIB$CREATE_VM_ZONE
LIB$CRF_INS_KEYLIB$CRF_INS_REFLIB$CRF_OUTPUTLIB$CURRENCY
LIB$CVT_DX_DXLIB$CVT_FROM_INTERNAL_TIMELIB$CVTF_FROM_INTERNAL_TIME
LIB$CVT_TO_INTERNAL_TIMELIB$CVTF_TO_INTERNAL_TIMELIB$CVT_VECTIM
LIB$DATE_TIMELIB$DAYLIB$DAY_OF_WEEKLIB$DECODE_FAULT
LIB$DEC_OVERLIB$DELETE_FILELIB$DELETE_LOGICALLIB$DELETE_SYMBOL
LIB$DELETE_VM_ZONELIB$DIGIT_SEPLIB$DISABLE_CTRL
LIB$DO_COMMANDLIB$EDIVLIB$EMODDLIB$EMODF
LIB$EMODGLIB$EMODHLIB$EMULLIB$ENABLE_CTRL
LIB$ESTABLISHLIB$EXTVLIB$EXTZVLIB$FID_TO_NAMELIB$FILE_SCAN
LIB$FILE_SCAN_ENDLIB$FIND_FILELIB$FIND_FILE_ENDLIB$FIND_IMAGE_SYMBOL
LIB$FIND_VM_ZONELIB$FIXUP_FLTLIB$FLT_UNDERLIB$FORMAT_DATE_TIME
LIB$FREE_DATE_TIME_CONTEXTLIB$FREE_EFLIB$FREE_LUN
LIB$FREE_TIMERLIB$FREE_VMLIB$FREE_VM_PAGELIB$GETDVI
LIB$GETJPILIB$GETQUILIB$GETSYILIB$GET_COMMAND
LIB$GET_COMMONLIB$GET_DATE_FORMATLIB$GET_EF
LIB$GET_FOREIGNLIB$GET_INPUTLIB$GET_LUNLIB$GET_MAXIMUM_DATE_LENGTH
LIB$GET_SYMBOLLIB$GET_USERS_LANGUAGELIB$GET_VM
LIB$GET_VM_PAGELIB$ICHARLIB$INDEXLIB$INIT_DATE_TIME_CONTEXT
LIB$INIT_TIMERLIB$INSERT_TREELIB$INSQHILIB$INSQTILIB$INSV
LIB$INT_OVERLIB$LENLIB$LOCCLIB$LOOKUP_KEYLIB$LOOKUP_TREE
LIB$LP_LINESLIB$MATCHCLIB$MATCH_CONDLIB$MOVC3
LIB$MOVC5LIB$MOVTCLIB$MOVTUCLIB$MULT_DELTA_TIME
LIB$MULTF_DELTA_TIMELIB$PAUSELIB$POLYDLIB$POLYFLIB$POLYG
LIB$POLYHLIB$PUT_COMMONLIB$PUT_OUTPUTLIB$RADIX_POINT
LIB$REMQHILIB$REMQTILIB$RENAME_FILELIB$RESERVE_EF
LIB$RESET_VM_ZONELIB$REVERTLIB$RUN_PROGRAMLIB$SCANC
LIB$SCOPY_DXDXLIB$SCOPY_R_DXLIB$SET_LOGICALLIB$SET_SYMBOL
LIB$SFREE1_DDLIB$SFREEN_DDLIB$SGET1_DDLIB$SHOW_TIMER
LIB$SHOW_VMLIB$SHOW_VM_ZONELIB$SIGNALLIB$SIG_TO_RET
LIB$SIG_TO_STOPLIB$SIM_TRAPLIB$SKPCLIB$SPANCLIB$SPAWN
LIB$STAT_TIMERLIB$STAT_VMLIB$STOPLIB$SUB_TIMES
LIB$SUBXLIB$SYS_ASCTIMLIB$SYS_FAOLIB$SYS_FAOL
LIB$SYS_GETMSGLIB$TPARSELIB$TRA_ASC_EBCLIB$TRA_EBC_ASC
LIB$TRAVERSE_TREELIB$TRIM_FILESPECLIB$VERIFY_VM_ZONE
LIB$WAIT

LIB$CVT xTBLIB$FFx

LIB$ADAWI

  The Add Aligned Word with  Interlock  routine  allows  the  user  to
  perform an interlocked add operation using an aligned word.

     Format:

       LIB$ADAWI  add ,sum ,result

     Arguments:

  add

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  The addend operand to be  added  to  the  value  of  sum.   The  add
  argument  is  the  address of a signed word that contains the addend
  operand.

  sum

  VMS usage: word_signed
  type: word integer (signed)
  access: modify
  mechanism: by reference

  The word to which add is added.  The sum argument is the address  of
  a signed word integer containing this value.

  result

  VMS usage: word_signed
  type: word integer (signed)
  access: modify
  mechanism: by reference

  The result of adding add  and  sum.   The  result  argument  is  the
  address of a signed word integer containing the result.

LIB$ADD_TIMES

  The Add Two Quadword Times routine adds two VMS internal time format
  times.

     Format:

       LIB$ADD_TIMES  time1 ,time2 ,resultant-time

     Arguments:

  time1

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  First time that LIB$ADD_TIMES adds to the second  time.   The  time1
  argument is the address of an unsigned quadword containing the first
  time to be added.  Time1 may be either a delta time or  an  absolute
  time;  however,  at least one of the arguments, time1 or time2, must
  be a delta time.

  time2

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Second time that LIB$ADD_TIMES adds to the first  time.   The  time2
  argument  is  the  address  of  an  unsigned quadword containing the
  second time to be added.  Time2 may be either a  delta  time  or  an
  absolute  time;  however,  at  least  one of the arguments, time1 or
  time2, must be a delta time.

  resultant-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The result of adding time1 and time2.  The  resultant-time  argument
  is  the  address  of an unsigned quadword containing the result.  If
  both time1 and time2 are delta times, then resultant-time is a delta
  time.  Otherwise, resultant-time is an absolute time.

LIB$ADDX

  The Add Two  Multiple-Precision  Binary  Numbers  routine  adds  two
  signed two's complement integers of arbitrary length.

     Format:

       LIB$ADDX  addend-array ,augend-array ,resultant-array
                  [,array-length]

     Arguments:

  addend-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  First multiple-precision,  signed  two's  complement  integer  which
  LIB$ADDX   adds   to  the  second  two's  complement  integer.   The
  addend-array argument is the address of  the  array  containing  the
  two's complement number to be added.

  augend-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Second multiple-precision, signed two's  complement  integer,  which
  LIB$ADDX   adds   to   the  first  two's  complement  integer.   The
  augend-array argument is the address of  the  array  containing  the
  two's complement number.

  resultant-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: write only
  mechanism: by reference, array reference

  Multiple-precision, signed two's complement integer  result  of  the
  addition.   The resultant-array argument is the address of the array
  into which LIB$ADDX writes the result of the addition.

  array-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Length in longwords of the arrays to be operated on; each  array  is
  of length len.  The len argument is the address of a signed longword
  integer containing the length.  Len must not be negative.   This  is
  an optional argument.  If omitted, the default is 2.

LIB$ANALYZE_SDESC

  The Analyze String Descriptors routine extracts the length  and  the
  address  at which the data starts for a variety of string descriptor
  classes.

     Format:

       LIB$ANALYZE_SDESC  input-descriptor ,data-length ,data-address

     Arguments:

  input-descriptor

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Input descriptor from which  LIB$ANALYZE_DESC  extracts  the  data's
  length  and  starting address.  The input-descriptor argument is the
  address of a descriptor pointing to this descriptor.

  data-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the data; LIB$ANALYSE_DESC extracts this length value from
  the input descriptor.  The data-length argument is the address of an
  unsigned  word  integer  into  which  LIB$ANALYZE_SDESC  writes  the
  length.

  data-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting address of the data; LIB$ANALYZE_DESC extracts this address
  from the input descriptor.  The data-address argument is the address
  of an unsigned  longword  into  which  LIB$ANALYZE_DESC  writes  the
  starting address of the data.

LIB$ASN_WTH_MBX

  The Assign Channel with Mailbox  routine  assigns  a  channel  to  a
  specified  device  and  associates  a  mailbox  with the device.  It
  returns both the device channel and the mailbox channel.

     Format:

       LIB$ASN_WTH_MBX  device-name ,maximum-message-size
                  ,buffer-quota ,device-channel ,mailbox-channel

     Arguments:

  device-name

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  Device name which LIB$ASN_WTH_MBX passes  to  the  $ASSIGN  service.
  The  device-name argument is the address of a descriptor pointing to
  the device name.

  maximum-message-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Maximum  message  size  that   can   be   sent   to   the   mailbox;
  LIB$ASN_WTH_MBX  passes  this  argument to the $CREMBX service.  The
  maximum-message-size argument is the address of  a  signed  longword
  integer containing this maximum message size.

  buffer-quota

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of system dynamic memory bytes that can  be  used  to  buffer
  messages  sent  to the mailbox; LIB$ASN_WTH_MBX passes this argument
  to the $CREMBX service.  The buffer-quota argument is the address of
  a signed longword integer containing this buffer quota.

  device-channel

  VMS usage: word_unsigned
  type: word integer (unsigned)
  access: write only
  mechanism: by reference

  Device channel  which  LIB$ASN_WTH_MBX  receives  from  the  $ASSIGN
  service.   The device-channel argument is the address of an unsigned
  word integer into which $ASSIGN writes the device channel.

  mailbox-channel

  VMS usage: channel
  type: word integer (unsigned)
  access: write only
  mechanism: by reference

  Mailbox channel which  LIB$ASN_WTH_MBX  receives  from  the  $CREMBX
  service.  The mailbox-channel argument is the address of an unsigned
  word integer into which $CREMBX writes the mailbox channel.

LIB$AST_IN_PROG

  The AST in Progress routine indicates whether an AST is currently in
  progress.

     Format:

       LIB$AST_IN_PROG

     NONE

LIB$ATTACH

  The  Attach  Terminal  to  Process  routine  requests  the   calling
  process's  Command Language Interpreter (CLI) to detach the terminal
  of the calling process and to reattach it to a different process.

     Format:

       LIB$ATTACH  process-id

     Argument

  process-id

  VMS usage: process_id
  type: longword integer (unsigned)
  access: read only
  mechanism: by reference

  Identification of the  process  to  which  LIB$ATTACH  requests  the
  calling  process to attach its terminal.  The process-id argument is
  the address of an unsigned longword integer containing  the  process
  identification.   The  specified  process must be currently detached
  (by means of a SPAWN or ATTACH command, or by a call to LIB$SPAWN or
  LIB$ATTACH) and must be part of the caller's job.

LIB$BBCCI

  The Test and Clear Bit with Interlock routine  tests  and  clears  a
  selected  bit under memory interlock.  LIB$BBCCI makes the VAX BBCCI
  instruction available as a callable procedure.

     Format:

       LIB$BBCCI  position ,bit-zero-address

     Arguments:

  position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Bit  position,  relative  to  bit-zero-address,  of  the  bit  which
  LIB$BBCCI tests and clears.  The position argument is the address of
  a signed longword integer containing the bit position.   A  position
  of  zero  denotes  the  low-order  bit  of  the  byte base.  The bit
  position is equal to the offset of the  bit  chosen  from  the  base
  position.   This  offset  may  span  the  entire  range  of a signed
  longword integer; negative offsets access  bits  in  lower-addressed
  bytes.

  bit-zero-address

  VMS usage: address
  type: unspecified
  access: read only
  mechanism: by reference

  Address of the byte containing bit zero of the field that  LIB$BBCCI
  references.   The  bit-zero-address  argument  is the address of the
  base position.  The bit that LIB$BBCCI tests and clears is  position
  bits offset from the low bit of bit-zero-address.

LIB$BBSSI

  The Test and Set  Bit  with  Interlock  routine  tests  and  sets  a
  selected  bit under memory interlock.  LIB$BBSSI makes the VAX BBSSI
  instruction available as a callable procedure.

     Format:

       LIB$BBSSI  position ,bit-zero-address

     Arguments:

  position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Bit  position,  relative  to  bit-zero-address,  of  the  bit  which
  LIB$BBSSI tests and sets.  The position argument is the address of a
  signed longword integer containing the bit position.  A position  of
  zero  denotes  the low-order bit of the byte base.  The bit position
  is equal to the offset of the bit chosen  from  the  base  position.
  This  offset may span the entire range of a signed longword integer;
  negative offsets access bits in lower-addressed bytes.

  bit-zero-address

  VMS usage: address
  type: unspecified
  access: read only
  mechanism: by reference

  Address of the byte containing bit zero of the field that  LIB$BBSSI
  references.   The  bit-zero-address  argument  is the address of the
  base position.  The bit that LIB$BBSSI tests and  sets  is  position
  bits offset from the low bit of bit-zero-address.

LIB$CALLG

  The Call Procedure  with  General  Argument  List  routine  calls  a
  procedure  with an argument list specified as an array of longwords,
  the first of which is a count of the remaining longwords.  LIB$CALLG
  is a callable version of the VAX CALLG instruction.

     Format:

       LIB$CALLG  argument-list ,user-procedure

     Arguments:

  argument-list

  VMS usage: arg_list
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Argument list which LIB$CALLG uses to call the specified  procedure.
  The  argument-list  argument is the address of an array of longwords
  containing the argument list.  The first longword must  contain  the
  count of the remaining longwords.  The maximum value of the count is
  255.

  user-procedure

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  Procedure which LIB$CALLG calls with the  specified  argument  list.
  The  user-procedure  argument  is the address of the procedure entry
  mask for this procedure.

LIB$CHAR

  The Transform Byte to First Character of String routine transforms a
  single  8-bit  ASCII  character  to  an ASCII string consisting of a
  single character followed by trailing spaces, if needed, to fill out
  the string.  The range of the input byte is 0 through 255.

     Format:

       LIB$CHAR  one-character-string ,ascii-code

     Arguments:

  one-character-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  ASCII character string consisting of a single character followed  by
  trailing spaces, if needed, that LIB$CHAR creates when it transforms
  the ASCII character code.  The one-character-string argument is  the
  address  of  a  descriptor  pointing  to  the  character string that
  LIB$CHAR writes.

  ascii-code

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Single 8-bit ASCII character code that  LIB$CHAR  transforms  to  an
  ASCII string.  The ascii-code argument is the address of an unsigned
  byte containing the ASCII character code.

LIB$CONVERT_DATE_STRING

  The Convert Date String to Quadword  routine  converts  an  absolute
  date string into a VMS internal format date-time quadword.

     Format:

       LIB$CONVERT_DATE_STRING  date-string ,date-time [,user-context]
                  [,flags] [,defaults] [,defaulted-fields]

     Arguments:

  date-string

  VMS usage: time_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor

  Date string that specifies the absolute time to be converted  to  an
  internal  system time.  The date-string argument is the address of a
  descriptor pointing to this date string.

  date-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  Receives the converted time.  The date-time argument is the  address
  of an unsigned quadword that contains this converted time.

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context variable that retains the translation context over  multiple
  calls  to this routine.  The user-context argument is the address of
  an unsigned longword that contains this context.  The initial  value
  of  the context variable must be zero.  Thereafter, the user program
  must not write to the cell.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies which date or time fields might be omitted so that default
  values  are  applied.   The   flags  argument  is  the  address of a
  longword bit mask that contains these flags.  A  set  bit  indicates
  that  the  field  may  be omitted.  The bit definitions for the mask
  correspond to the fields in a $NUMTIM "timbuf" structure as follows:

       Field                Bit Number     Mask

       Year                 0              1

       Month                1              2

       Day of month         2              4

       Hours                3              8

       Minutes              4              16

       Seconds              5              32

       Fractional seconds   6              64

  defaults

  VMS usage: vector_word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Supplies the defaults to be used for omitted fields.   The  defaults
  argument  is  the  address  of an array of unsigned words containing
  these default values.  This array corresponds to  a  7-word  $NUMTIM
  "timbuf" structure.

  defaulted-fields

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Indicates which date  or  time  fields  have  been  defaulted.   The
  defaulted-fields argument is the address of a longword bit mask that
  specifies these fields.  The bit definitions are identical to  those
  of  the  input-flags  bit  mask.   A set bit indicates the field was
  defaulted.  Bits 7  through  31,  which  are  reserved  for  use  by
  DIGITAL, are zeroed.

LIB$CRC

  The Calculate a  Cyclic  Redundancy  Check  routine  calculates  the
  cyclic  redundancy check (CRC) for a data stream.  LIB$CRC makes the
  VAX CRC instruction available as a callable procedure.

     Format:

       LIB$CRC  crc-table ,initial-crc ,stream

     Arguments:

  crc-table

  VMS usage: vector_longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference, array reference

  The 16-longword cyclic redundancy check table, created by a call  to
  LIB$CRC_TABLE.   The  crc-table  argument is the address of a signed
  longword integer containing  this  table.   Because  this  table  is
  created  by  LIB$CRC_TABLE  and  then used as input in LIB$CRC, your
  program must call LIB$CRC_TABLE before it calls LIB$CRC.

  initial-crc

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Initial cyclic redundancy check.  The initial-crc  argument  is  the
  address  of  a signed longword integer containing the initial cyclic
  redundancy check.

  stream

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Data stream for which LIB$CRC is calculating the  CRC.   The  stream
  argument is the address of a descriptor pointing to the data stream.

LIB$CRC_TABLE

  The Construct a Cyclic Redundancy Check Table routine  constructs  a
  16-longword  table  that  uses  a cyclic redundancy check polynomial
  specification as a bit mask.

     Format:

       LIB$CRC_TABLE  polynomial-coefficient ,crc-table

     Arguments:

  polynomial-coefficient

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A bit mask  indicating  which  polynomial  coefficients  are  to  be
  generated  by LIB$CRC_TABLE.  The polynomial-coefficient argument is
  the address of an unsigned  longword  integer  containing  this  bit
  mask.

  crc-table

  VMS usage: vector_longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference, array reference

  The 16-longword table that LIB$CRC_TABLE  produces.   The  crc-table
  argument  is the address of a signed longword integer containing the
  table.

LIB$CREATE_DIR

  The Create a Directory routine creates a directory or subdirectory.

     Format:

       LIB$CREATE_DIR  device-directory-spec [,owner-UIC]
                  [,protection-enable] [,protection-value]
                  [,maximum-versions] [,relative-volume-number]

     Arguments:

  device-directory-spec

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  Directory  specification  of  the  directory  or  subdirectory  that
  LIB$CREATE_DIR  will  create.  The device-directory-spec argument is
  the  address  of   a   descriptor   pointing   to   this   directory
  specification.

  owner-UIC

  VMS usage: uic
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  User Identification Code (UIC) identifying the owner of the  created
  directory or subdirectory.  The owner-UIC argument is the address of
  an unsigned longword that contains the UIC.  If owner-UIC  is  zero,
  the owner UIC is that of the parent directory.

  protection-enable

  VMS usage: mask_word
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Mask specifying  the  bits  of  protection-value  to  be  set.   The
  protection-enable  argument  is  the  address  of  an  unsigned word
  containing this protection mask.

  protection-value

  VMS usage: file_protection
  type: word (unsigned)
  access: read only
  mechanism: by reference

  System/Owner/Group/World protection value of the directory  you  are
  creating.   The  protection-value  argument  is  the  address  of an
  unsigned word which contains this protection mask.

  maximum-versions

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Maximum number of versions allowed for files created  in  the  newly
  created  directories.   The maximum-versions argument is the address
  of an unsigned word containing the value of the  maximum  number  of
  versions.

  relative-volume-number

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Relative volume number within a volume set on which the directory or
  subdirectory is created.  The relative-volume-number argument is the
  address of an unsigned word containing the relative  volume  number.
  The  relative-volume-number  argument  is  optional.  The default is
  arbitrary placement within the volume set.

LIB$CREATE_USER_VM_ZONE

  The  Create  User-Defined  Storage  Zone  routine  creates   a   new
  user-defined storage zone.

     Format:

       LIB$CREATE_USER_VM_ZONE  zone-id [,user-argument]
                  [,user-allocation-routine]
                  [,user-deallocation-routine] [,user-reset-routine]
                  [,user-delete-routine] [,zone-name]

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Zone identifier.  The zone-id argument is the address of a  longword
  that is set to the identifier of the newly created zone.

  user-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  User argument.  The user-argument argument  is  the  address  of  an
  unsigned      longword     containing     the     user     argument.
  LIB$CREATE_USER_VM_ZONE  copies  the  value  of  user-argument   and
  supplies the value to all user-routines invoked.

  user-allocation-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User allocation routine.  The  user-allocation-routine  argument  is
  the  address  of  the  procedure  entry  mask  for the optional user
  routine that is invoked each time LIB$GET_VM is called for the zone.

  user-deallocation-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User deallocation routine.  The  user-deallocation-routine  argument
  is  the  address  of  the procedure entry mask for the optional user
  routine that is invoked each time  LIB$FREE_VM  is  called  for  the
  zone.

  user-reset-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User routine to reset the zone.  The user-reset-routine argument  is
  an optional user routine that is invoked each time LIB$RESET_VM_ZONE
  is called for the zone.

  user-delete-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User routine to delete the zone.  The  user-delete-routine  argument
  is  an optional user routine that is invoked when LIB$DELETE_VM_ZONE
  is called for the zone.

  zone-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name to be associated with the zone  being  created.   The  optional
  zone-name  argument  is  the address of a descriptor pointing to the
  zone name.  If zone-name is not specified, the zone will not have an
  associated name.

LIB$CREATE_VM_ZONE

  The Create a New Zone routine creates a new storage  zone  according
  to specified arguments.

     Format:

       LIB$CREATE_VM_ZONE  zone-id [,algorithm] [,algorithm-argument]
                  [,flags] [,extend-size] [,initial-size] [,block-size]
                  [,alignment] [,page-limit] [,smallest-block-size]
                  [,zone-name] [,number-of-areas] [,get-page]
                  [,free-page]

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Zone identifier.  The zone-id argument is the address of a  longword
  that is set to the zone identifier of the newly created zone.

  algorithm

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Algorithm.  The algorithm argument is  the  address  of  a  longword
  integer that represents the code for one of the LIB$VM algorithms:

           1       LIB$K_VM_FIRST_FIT     First fit

           2       LIB$K_VM_QUICK_FIT     Quick fit, lookaside list

           3       LIB$K_VM_FREQ_SIZES    Frequent  sizes,   lookaside
                                       list

           4       LIB$K_VM_FIXED         Fixed size blocks

  algorithm-argument

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Algorithm argument.  The algorithm-argument argument is the  address
  of  a longword integer that contains a value that is specific to the
  particular allocation algorithm.

       Algorithm            Value

       First fit            Not used, may be omitted.

       Quick fit            The number of lookaside  lists  used.  The
                              number  of  lists  must be between 1 and
                              128.

       Frequent sizes       The number of lookaside  lists  used.  The
                              number  of  lists  must be between 1 and
                              16.

       Fixed size blocks    The fixed request size (in bytes) for each
                              get  or  free.  The request size must be
                              greater than 0.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Flags.  The flags argument is the  address  of  a  longword  integer
  which contains flag bits that control various options:

       Bit   Value                    Description

       Bit 0 LIB$M_VM_BOUNDARY_TAGS   Boundary tags for faster freeing

                                      Adds a minimum of eight bytes to
                                        each block

       Bit 1 LIB$M_VM_GET_FILL0       LIB$GET_VM; fill with bytes of 0

       Bit 2 LIB$M_VM_GET_FILL1       LIB$GET_VM; fill with  bytes  of
                                        FF (hexadecimal)

       Bit 3 LIB$M_VM_FREE_FILL0      LIB$FREE_VM; fill with bytes  of
                                        0

       Bit 4 LIB$M_VM_FREE_FILL1      LIB$FREE_VM; fill with bytes  of
                                        FF (hexadecimal)

       Bit 5 LIB$M_VM_EXTEND_AREA     Add extents to existing areas if
                                        possible

  extend-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Zone extend size.  The extend-size argument  is  the  address  of  a
  longword integer which contains the number of (512-byte) pages to be
  added to the zone each time it is extended.

  initial-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Initial size for the zone.  The initial-size argument is the address
  of  a longword integer which contains the number of (512-byte) pages
  to be allocated for the zone as the zone is created.

  block-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Block size of the zone.  The block-size argument is the address of a
  longword  integer  specifying  the allocation quantum (in bytes) for
  the zone.  All blocks allocated are rounded  up  to  a  multiple  of
  block-size.

  alignment

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Block alignment.   The  alignment  argument  is  the  address  of  a
  longword  integer which specifies the required address alignment (in
  bytes) for each block allocated.

  page-limit

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Maximum page limit.  The page-limit argument is  the  address  of  a
  longword  integer  which  specifies the maximum number of (512-byte)
  pages that can be allocated for the zone.  The value  of  page-limit
  must  be  between  0 and 32,767.  Note that part of the zone is used
  for header information.

  smallest-block-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Smallest  block  size.   The  smallest-block-size  argument  is  the
  address  of  a  longword  integer which specifies the smallest block
  size (in bytes)  that  has  a  lookaside  list  for  the  quick  fit
  algorithm.

  zone-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name to be associated with the zone  being  created.   The  optional
  zone-name  argument  is  the address of a descriptor pointing to the
  zone name.  If zone-name is not specified, the zone will not have an
  associated name.

  number-of-areas

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference


  Number  of  areas  into  which  the  memory  should  be  subdivided.
  The  number-of-areas  argument is the  address of a longword integer
  containing the number of subdivided memory areas.

  get-page

  VMS usage: procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  Routine that allocates pages of memory. The get-page argument is the
  address of a procedure entry mask used to allocate pages of memory.

  free-page

  VMS usage: procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  Routine that deallocates pages of memory.  The free-page argument is
  the address of a  procedure entry mask  used to  deallocate pages of
  memory.

LIB$CRF_INS_KEY

  The Insert Key in Cross-Reference Table routine inserts  information
  about a key into a cross-reference table.

     Format:

       LIB$CRF_INS_KEY  control-table ,key-string ,symbol-value ,flags

     Arguments:

  control-table

  VMS usage: vector_longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference, array reference

  Cross-reference table into which LIB$CRF_INS_KEY inserts information
  about  the  key.   The  control-table  argument  is the address of a
  signed longword integer pointing to the cross-reference table.   You
  must  name this table each time you call a cross-reference procedure
  because  you  can  accumulate  information   for   more   than   one
  cross-reference table at a time.

  key-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  A counted ASCII string that contains a symbol name  or  an  unsigned
  binary  longword.   The  key-string  argument  is  the  address of a
  descriptor pointing to the key.

  symbol-value

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Symbol value, the address of which LIB$CRF_INS_KEY  inserts  in  the
  cross-reference  table.  The symbol-value argument is the address of
  a signed longword integer containing this value.  Both the  key  and
  value  addresses  must  be  permanent addresses in the user's symbol
  table.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Value used in selecting the contents of the KEY2  and  VAL2  fields;
  flags  is  stored with the entry.  The flags argument is the address
  of an unsigned longword containing the flags.   When  preparing  the
  output  line,  LIB$CRF_OUTPUT  uses flags and the 16-bit mask in the
  field descriptor table to extract the data.  The high-order  bit  of
  the word is reserved for LIB$CRF_INS_KEY.

LIB$CRF_INS_REF

  The Insert Reference to a Key in the Cross-Reference  Table  routine
  inserts a reference to a key in a cross-reference symbol table.

     Format:

       LIB$CRF_INS_REF  control-table ,longword-integer-key
                  ,reference-string ,longword-integer-reference
                  ,ref-definition-indicator

     Arguments:

  control-table

  VMS usage: vector_longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference, array reference

  Control   table   associated   with   this   cross-reference.    The
  control-table  argument  is  the  address of an array containing the
  control table.

  longword-integer-key

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Key  referred  to  by  LIB$CRF_INS_REF.   The   longword-integer-key
  argument  is the address of a signed longword integer containing the
  key.  The key is a counted ASCII string that contains a symbol  name
  or  an  unsigned binary longword.  It must be a permanent address in
  the user's symbol table.

  reference-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Counted ASCII string with a maximum of 31 characters, not  including
  the  byte  count.  The reference-string argument is the address of a
  descriptor pointing to the counted ASCII string.

  longword-integer-reference

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  The 16-bit value used in selecting the contents of the  REF1  field.
  The  longword-integer-reference  argument is the address of a signed
  longword integer containing this value.  When preparing  the  output
  line,  LIB$CRF_OUTPUT  uses  longword-integer-reference  and the bit
  mask in the  field  descriptor  table  to  extract  the  data.   The
  high-order bit of the word is reserved for LIB$CRF_INS_REF.

  ref-definition-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Reference/definition  indicator   that   LIB$CRF_INS_REF   uses   to
  distinguish  between  a  reference to a symbol and the definition of
  the symbol.  The ref-definition-indicator argument is the address of
  a  signed  longword  integer  containing  this  indicator.  The only
  difference between  processing  a  symbol  reference  and  a  symbol
  definition is where LIB$CRF_INS_REF stores the information.

LIB$CRF_OUTPUT

  The Output Cross-Reference Table Information  routine  extracts  the
  information  from  the cross-reference tables and formats the output
  pages.

     Format:

       LIB$CRF_OUTPUT  control-table ,output-line-width ,page1
                  ,page2 ,mode-indicator ,delete-save-indicator

     Arguments:

  control-table

  VMS usage: vector_longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference, array reference

  Control   table   associated   with   the   cross-reference.     The
  control-table  argument  is  the  address of an array containing the
  control table.  The table contains the address of the  user-supplied
  routine that prints the lines formatted by LIB$CRF_OUTPUT.

  output-line-width

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Width of the output line.  The  output-line-width  argument  is  the
  address of a signed longword integer containing the width.

  page1

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of lines on the first page of the output.  The page1 argument
  is  the address of a signed longword integer containing this number.
  This allows the user to reserve space to print header information on
  the first page of the cross-reference.

  page2

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of lines per page for the other pages.  The page2 argument is
  the address of a signed longword integer containing this number.

  mode-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Output mode indicator.  The  mode-indicator  is  the  address  of  a
  signed longword integer containing the mode indicator.

  delete-save-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Delete/save indicator which LIB$CRF_OUTPUT uses to determine whether
  the  table's built-in accumulating symbol information is to be saved
  or   deleted   once   the   cross-reference   is   produced.     The
  delete-save-indicator  is  the  address of a signed longword integer
  containing the delete/save indicator.

LIB$CURRENCY

  The Get System Currency Symbol routine returns the system's currency
  symbol.

     Format:

       LIB$CURRENCY  currency-string [,resultant-length]

     Arguments:

  currency-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Currency symbol.  The currency-string argument is the address  of  a
  descriptor pointing to the currency symbol.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number  of   characters   that   LIB$CURRENCY   has   written   into
  currency-string,  not counting padding in the case of a fixed-length
  string.  The resultant-length argument is the address of an unsigned
  word  containing  the  length  of the currency symbol.  If the input
  string is truncated to the size  specified  in  the  currency-string
  descriptor,  resultant-length  is  set  to  this  size.   Therefore,
  resultant-length can always be used by the calling program to access
  a valid substring of currency-string.

LIB$CVT_DX_DX

  The General Data Type Conversion routine  converts  a  VAX  standard
  atomic  or  string datum described by a source descriptor to another
  VAX standard atomic or  string  datum  described  by  a  destination
  descriptor.   This  conversion is supported over a subset of the VAX
  standard data types.

     Format:

       LIB$CVT_DX_DX  source-item ,destination-item
                  [,word-integer-dest-length]

     Arguments:

  source-item

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by descriptor

  Source item  to  be  converted  by  LIBCVT_DX_DX.   The  source-item
  argument  is the address of a descriptor pointing to the source item
  to be converted.  The type of the item to be converted is  contained
  in the descriptor.

  destination-item

  VMS usage: unspecified
  type: unspecified
  access: write only
  mechanism: by descriptor

  Destination of the conversion.  The destination-item argument is the
  address  of  a  descriptor  pointing  to  the destination item.  The
  destination descriptor specifies the data type to which  the  source
  item is converted.

  word-integer-dest-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length in bytes of the destination item (when that item is a string)
  that  has  been  converted by LIB$CVT_DX_DX, not including any space
  filling.  The word-integer-dest-length argument contains the address
  of an unsigned word containing this length.

LIB$CVT_FROM_INTERNAL_TIME

  The Convert Internal Time  to  External  Time  routine  converts  an
  internal VMS system time (either absolute or delta) into an external
  longword time.

     Format:

       LIB$CVT_FROM_INTERNAL_TIME  operation ,resultant-time
                  [,input-time]

     Arguments:

  operation

  VMS usage: function_code
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The conversion to be  performed.   The  operation  argument  is  the
  address of an unsigned longword containing the operation.

  resultant-time

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The  external  time  that  results   from   the   conversion.    The
  resultant-time  argument  is  the  address  of  an unsigned longword
  containing the result.

  input-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Optional absolute or delta time to  be  converted.   The  input-time
  argument is the address of an unsigned quadword containing the time.
  If you do not supply a value for input-time, the current system time
  is used.

LIB$CVTF_FROM_INTERNAL_TIME

  The Convert Internal Time to External Time routine (F-floating point
  value)  converts  a  delta internal VMS system time into an external
  F-floating time.

     Format:

       LIB$CVTF_FROM_INTERNAL_TIME  operation ,resultant-time
                  ,input-time

     Arguments:

  operation

  VMS usage: function_code
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The conversion to be  performed.   The  operation  argument  is  the
  address  of  an  unsigned  longword containing the operation.  Valid
  values for operation are the following:

       Operation                        Interpretation

       LIB$K_DELTA_WEEKS_F              Fractional weeks

       LIB$K_DELTA_DAYS_F               Fractional days

       LIB$K_DELTA_HOURS_F              Fractional hours

       LIB$K_DELTA_MINUTES_F            Fractional minutes

       LIB$K_DELTA_SECONDS_F            Fractional seconds

  resultant-time

  VMS usage: floating_point
  type: F-floating
  access: write only
  mechanism: by reference

  The  external  time  that  results   from   the   conversion.    The
  resultant-time  argument is the address of an F-floating point value
  containing the result.

  input-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Delta time to be converted.  The input-time argument is the  address
  of an unsigned quadword containing the time.

LIB$CVT_TO_INTERNAL_TIME

  The Convert External Time  to  Internal  Time  routine  converts  an
  external time interval into a VMS internal format delta time.

     Format:

       LIB$CVT_TO_INTERNAL_TIME  operation ,input-time
                  ,resultant-time

     Arguments:

  operation

  VMS usage: function_code
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The conversion to be  performed.   The  operation  argument  is  the
  address  of  an  unsigned  longword containing the operation.  Valid
  values for operation are the following:

       Operation                   Interpretation

       LIB$K_DELTA_WEEKS           Whole weeks in delta time

       LIB$K_DELTA_DAYS            Whole days in delta time

       LIB$K_DELTA_HOURS           Whole hours in delta time

       LIB$K_DELTA_MINUTES         Whole minutes in delta time

       LIB$K_DELTA_SECONDS         Whole seconds in delta time

  input-time

  VMS usage: varying_arg
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Time to be converted.  The input-time argument  is  the  address  of
  this  input  time.   The value you supply for input-time must not be
  negative nor equivalent to greater than 10,000 days.

  resultant-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The VMS internal format delta time that results from the conversion.
  The  resultant-time  argument is the address of an unsigned quadword
  containing the result.

LIB$CVTF_TO_INTERNAL_TIME

  The Convert External Time to Internal Time routine (F-floating point
  value) converts an external time interval into a VMS internal format
  F-floating delta time.

     Format:

       LIB$CVTF_TO_INTERNAL_TIME  operation ,input-time
                  ,resultant-time

     Arguments:

  operation

  VMS usage: function_code
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The conversion to be  performed.   The  operation  argument  is  the
  address  of  an  unsigned  longword containing the operation.  Valid
  values for operation are the following:

       Operation                        Interpretation

       LIB$K_DELTA_WEEKS_F              Fractional weeks

       LIB$K_DELTA_DAYS_F               Fractional days

       LIB$K_DELTA_HOURS_F              Fractional hours

       LIB$K_DELTA_MINUTES_F            Fractional minutes

       LIB$K_DELTA_SECONDS_F            Fractional seconds

  input-time

  VMS usage: varying_arg
  type: F-floating
  access: read only
  mechanism: by reference

  Delta time to be converted.  The input-time argument is the  address
  of this input time.  The value you supply for input-time must not be
  negative nor equivalent to greater than 10,000 days.

  resultant-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The VMS internal format delta time that results from the conversion.
  The  resultant-time  argument is the address of an unsigned quadword
  containing the result.

LIB$CVT xTB

  The  Convert  Numeric  Text  to  Binary  routines  return  a  binary
  representation of the ASCII text string representation of a decimal,
  hexadecimal, or octal number.

     Format:

       LIB$CVT_DTB  byte-count ,numeric-string ,result

       LIB$CVT_HTB  byte-count ,numeric-string ,result

       LIB$CVT_OTB  byte-count ,numeric-string ,result

     Arguments:

  byte-count

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Byte count of the input ASCII text string.  The byte-count  argument
  is  a signed longword integer containing the byte count of the input
  string.

  numeric-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by reference

  ASCII text string representation of a decimal, hexadecimal, or octal
  number  which  LIB$CVTxTB  converts  to  binary representation.  The
  numeric-string  argument  is  the  address  of  a  character  string
  containing this input string to be converted.

  result

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Binary representation of the input string.  The result  argument  is
  the  address  of  a signed longword integer containing the converted
  string.

LIB$CVT_VECTIM

  The Convert Seven-Word Vector to Internal Time  routine  converts  a
  seven-word vector into a VMS internal format delta or absolute time.

     Format:

       LIB$CVT_VECTIM  input-time
                  ,resultant-time

     Arguments:

  input-time

  VMS usage: vector_word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Time to be converted.  The input-time argument is the address  of  a
  seven-word  structure  containing  this time.  The following diagram
  depicts the fields in this structure.


  31                              15                              0
  __________________________________________________________________
  |        month of year           |       year since 0            |
  |________________________________|_______________________________|
  |        hour of day             |       day of month            |
  |________________________________|_______________________________|
  |        second of minute        |       minute of hour          |
  |________________________________|_______________________________|
                                   |       hundredths of second    |
                                   |_______________________________|


  resultant-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The VMS internal format delta or absolute time that results from the
  conversion.   The  resultant-time  argument  is  the  address  of an
  unsigned quadword containing the result.

LIB$DATE_TIME

  The Date and Time Returned as  a  String  routine  returns  the  VMS
  system date and time in the semantics of a user-provided string.

     Format:

       LIB$DATE_TIME  date-time-string

     Argument

  date-time-string

  VMS usage: time_name
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which LIB$DATE_TIME writes the  system  date
  and  time.   The  date-time-string  argument  is  the  address  of a
  descriptor pointing to the destination string.

LIB$DAY

  The Day Number Returned as a Longword Integer  routine  returns  the
  number  of  days since the system zero date of November 17, 1858, or
  the number of days from November 17, 1858, to a user-supplied date.

     Format:

       LIB$DAY  number-of-days [,user-time] [,day-time]

     Arguments:

  number-of-days

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Number of days since  the  system  zero  date.   The  number-of-days
  argument  is the address of a signed longword integer containing the
  day number.

  user-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  User-supplied time, in 100-nanosecond units.  The user-time argument
  is  the  address  of  a  signed quadword integer containing the user
  time.  A positive value indicates an absolute time, while a negative
  value  indicates  a  delta  time.  This is an optional argument.  If
  omitted, the default is the current system time.  This quadword time
  value is obtained by calling the system service SYS$BINTIM.

  day-time

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Number of 10-millisecond  units  since  midnight  of  the  user-time
  argument.  The day-time argument is the address of a signed longword
  integer into which LIB$DAY writes this number of units.

LIB$DAY_OF_WEEK

  The Show Numeric Day of Week routine returns the numeric day of  the
  week  for  an  input  time value.  If 0 is the input time value, the
  current day of the week  is  returned.   The  days  are  numbered  1
  through 7, with Monday as day 1 and Sunday as day 7.

     Format:

       LIB$DAY_OF_WEEK  user-time ,day-number

     Arguments:

  user-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Time to be translated to a day of the week, or zero.  The  user-time
  argument is the address of an unsigned quadword containing the value
  of time.  Time must be supplied as  an  absolute  system  time.   To
  obtain  this  time  value  in proper quadword format call the system
  service SYS$BINTIM.

  day-number

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Numeric day of week.  The day-number argument is the  address  of  a
  longword   into  which  LIB$DAY_OF_WEEK  writes  the  integer  value
  representing the day of the week.

LIB$DECODE_FAULT

  The Decode Instruction Stream During Fault routine  is  a  tool  for
  building   condition   handlers   which  process  instruction  fault
  exceptions.  It is called from a condition handler.

     Format:

       LIB$DECODE_FAULT  signal-arguments ,mechanism-arguments
                  ,user-routine [,unspecified-user-argument]
                  [,instruction-definitions]

     Arguments:

  signal-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Signal arguments array that was passed from VMS  to  your  condition
  handler.  The signal-arguments argument is the address of the signal
  arguments array.

  mechanism-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Mechanism arguments array that was passed from VMS to your condition
  handler.   The  mechanism-arguments  argument  is the address of the
  mechanism arguments array.

  user-routine

  VMS usage: procedure
  type: bound procedure value or procedure entry mask
  access: call after stack unwind
  mechanism: by descriptor, procedure descriptor

  User-supplied action routine that LIB$DECODE_FAULT calls  to  handle
  the  exception.   The  user-routine  argument  is  the  address of a
  descriptor pointing to your user action routine.   user-routine  may
  be  of  type  "bound  procedure value" when called by languages with
  up-level  addressing.   If  user-routine  is  not  of  type   "bound
  procedure value," it is assumed to be the address of an entry mask.

  unspecified-user-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  Additional   information   passed   from   your   handler    without
  interpretation     to     your    user    action    routine.     The
  unspecified-user-argument  argument  contains  the  value  of   this
  additional  information.   This is an optional argument; if omitted,
  zero is used.

  instruction-definitions

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference, array reference

  Array  of  bytes  specifying   instruction   opcodes   and   operand
  definitions   which  are  to  replace  or  supplement  the  standard
  instruction definitions.  The  instruction-definitions  argument  is
  the address of this array.

LIB$DEC_OVER

  The Enable or Disable Decimal Overflow Detection routine enables  or
  disables  decimal  overflow  detection  for  the  calling  procedure
  activation.  The previous decimal overflow setting is returned.

     Format:

       LIB$DEC_OVER  new-setting

     ARGUMENT

  new-setting

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  New decimal overflow enable setting.  The  new-setting  argument  is
  the  address  of  an unsigned longword that contains the new decimal
  overflow enable setting.  Bit 0 set to 1 means enable; bit 0 set  to
  0 means disable.

LIB$DELETE_FILE

  The Delete One or More Files routine deletes one or more files.  The
  specification of the file(s) to be deleted may include wildcards.

  LIB$DELETE_FILE is similar in function to the DCL command DELETE.

     Format:

       LIB$DELETE_FILE  filespec [,default-filespec]
                  [,related-filespec] [,user-success-routine]
                  [,user-error-routine] [,user-confirm-routine]
                  [,user-specified-argument] [,resultant-name]
                  [,file-scan-context]

     Arguments:

  filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  containing  the  Record  Management  Services   (RMS)   file
  specification  of  the file(s) to be deleted.  The filespec argument
  is the address of a descriptor pointing to the  file  specification.
  If  the specification includes wildcards, each file that matches the
  specification is deleted.  The string must not contain more than 255
  characters.  Any string class is supported.

  default-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Default file specification  of  the  file(s)  to  be  deleted.   The
  default-filespec argument is the address of a descriptor pointing to
  the default file specification.  This is an  optional  argument;  if
  omitted,  the  default  is  the  null  string.   Any string class is
  supported.

  related-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Related file specification  of  the  file(s)  to  be  deleted.   The
  related-filespec argument is the address of a descriptor pointing to
  the related file specification.   Any  string  class  is  supported.
  This  is  an  optional argument; if omitted, the default is the null
  string.

  user-success-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied success routine that LIB$DELETE_FILE  calls  after  it
  successfully  deletes  a file.  The user-success-routine argument is
  the address of the entry mask of the success routine.

  user-error-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied error  routine  that  LIB$DELETE_FILE  calls  when  it
  detects an error.  The user-error-routine argument is the address of
  the entry mask of this routine.

  user-confirm-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied confirm routine that LIB$DELETE_FILE calls before each
  file  is  deleted.  The user-confirm-routine argument is the address
  of the entry mask of  this  routine.   The  value  returned  by  the
  confirm  routine determines whether or not the file will be deleted.
  The confirm routine  can  be  used  to  select  specific  files  for
  deletion based on criteria such as expiration date, size, and so on.

  user-specified-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  User-supplied argument that LIB$DELETE_FILE  passes  to  the  error,
  success  and  confirm  routines each time they are called.  Whatever
  mechanism  is  also  used   to   pass   user-specified-argument   to
  LIB$DELETE_FILE  is  used  to  pass  it to the routines.  This is an
  optional argument; if omitted, zero is passed by value.

  resultant-name

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which LIB$DELETE_FILE  writes  the  RMS  resultant  file
  specification  of  the  last  file  processed.   The  resultant-name
  argument is the address of a descriptor pointing  to  the  resultant
  name.

  file-scan-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context for deleting a list  of  filespecs.   The  file-scan-context
  argument is the address of a longword containing the context value.

LIB$DELETE_LOGICAL

  The Delete Logical  Name  routine  requests  the  calling  process's
  Command  Language  Interpreter  (CLI)  to  delete  a supervisor-mode
  process logical name.  LIB$DELETE_LOGICAL provides the same function
  as the DCL command DEASSIGN.

     Format:

       LIB$DELETE_LOGICAL  logical-name [,table-name]

     Arguments:

  logical-name

  VMS usage: logical_name
  type: character string
  access: read only
  mechanism: by descriptor

  Logical name to  be  deleted.   The  logical-name  argument  is  the
  address  of  a descriptor pointing to this logical name string.  The
  maximum length of a logical name is 255 characters.

  table-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the table from which the logical name is to be deleted.  The
  table-name  argument is the address of a descriptor pointing to this
  name string.   This  is  an  optional  argument.   If  omitted,  the
  LNM$PROCESS table is used.

LIB$DELETE_SYMBOL

  The Delete CLI Symbol routine requests the calling process's Command
  Language Interpreter (CLI) to delete an existing CLI symbol.

     Format:

       LIB$DELETE_SYMBOL  symbol [,table-type-indicator]

     Arguments:

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the symbol to be deleted by LIB$DELETE_SYMBOL.   The  symbol
  argument  is  the  address  of  a descriptor pointing to this symbol
  string.  The symbol name is  converted  to  uppercase  and  trailing
  blanks are removed before use.

  table-type-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Indicator of the table which contains the symbol to be deleted.  The
  table-type-indicator  argument  is  the address of a signed longword
  integer that is this table indicator.

LIB$DELETE_VM_ZONE

  The Delete Virtual Memory Zone routine deletes a  zone  and  returns
  all pages owned by the zone to the processwide page pool.

     Format:

       LIB$DELETE_VM_ZONE  zone-id

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Zone identifier.  The zone-id is the  address  of  a  longword  that
  contains  the  identifier  of  a  zone created by a previous call to
  LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ZONE.

LIB$DIGIT_SEP

  The Get Digit Separator Symbol routine returns  the  system's  digit
  separator symbol.

     Format:

       LIB$DIGIT_SEP  digit-separator-string [,resultant-length]

     Arguments:

  digit-separator-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Digit   separator   symbol   returned   by    LIB$DIGIT_SEP.     The
  digit-separator-string  argument  is  the  address  of  a descriptor
  pointing to the digit separator.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number  of  characters  written  into  digit-separator-string,   not
  counting  padding  in  the  case  of  a  fixed-length  string.   The
  resultant-length  argument  is  the  address  of  an  unsigned  word
  containing  the  length of the digit separator symbol.  If the input
  string   is   truncated   to   the    size    specified    in    the
  digit-separator-string  descriptor,  resultant-length is set to this
  size.  Therefore, resultant-length can always be used by the calling
  program to access a valid substring of digit-separator-string.

LIB$DISABLE_CTRL

  The Disable CLI Interception of Control Characters routine  requests
  the  calling  process's  Command  Language  Interpreter (CLI) to not
  intercept the selected control characters when they are typed during
  an interactive terminal session.  LIB$DISABLE_CTRL provides the same
  function as the DCL command SET NOCONTROL.

     Format:

       LIB$DISABLE_CTRL  disable-mask [,old-mask]

     Arguments:

  disable-mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit  mask  indicating  which  control  characters  are  not  to   be
  intercepted.   The  disable-mask  argument  is  the  address  of  an
  unsigned longword containing this bit mask.

  old-mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Previous bit mask.  The old-mask  argument  is  the  address  of  an
  unsigned  longword  into  which  LIB$DISABLE_CTRL writes the old bit
  mask.  The old bit mask is of the same form as disable-mask.

LIB$DO_COMMAND

  The Execute Command routine stops program execution and directs  the
  Command  Language  Interpreter to execute a command which you supply
  as the argument.  If  successful,  LIB$DO_COMMAND  does  not  return
  control  to  the  calling  program.   Instead, LIB$DO_COMMAND begins
  execution of the specified command.

  If you want control to return to the caller, use LIB$SPAWN instead.

     Format:

       LIB$DO_COMMAND  command-string

     Argument

  command-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text  of   the   command   which   LIB$DO_COMMAND   executes.    The
  command-string  argument  is the address of a descriptor pointing to
  the command  text.   The  maximum  length  of  the  command  is  255
  characters.

LIB$EDIV

  The Extended-Precision Divide  routine  performs  extended-precision
  division.   LIB$EDIV  makes  the VAX EDIV instruction available as a
  callable procedure.

     Format:

       LIB$EDIV  longword-integer-divisor ,quadword-integer-dividend
                  ,longword-integer-quotient ,remainder

     Arguments:

  longword-integer-divisor

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Divisor.  The longword-integer-divisor argument is the address of  a
  signed longword integer containing the divisor.

  quadword-integer-dividend

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: read only
  mechanism: by reference

  Dividend.  The quadword-integer-dividend argument is the address  of
  a signed quadword integer containing the dividend.

  longword-integer-quotient

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Quotient.  The longword-integer-quotient argument is the address  of
  a signed longword integer containing the quotient.

  remainder

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Remainder.  The remainder  argument  is  the  address  of  a  signed
  longword integer containing the remainder.

LIB$EMODD

  The Extended  Multiply  and  Integerize  routine  (D-floating  point
  values) allows higher-level language users to perform accurate range
  reduction of D-floating arguments.

     Format:

       LIB$EMODD  floating-point-multiplier ,multiplier-extension
                  ,floating-point-multiplicand ,integer-portion
                  ,fractional-portion

     Arguments:

  floating-point-multiplier

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by reference

  Multiplier.  The floating-point-multiplier argument is a  D_floating
  number.

  multiplier-extension

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  The     left-justified     multiplier-extension      bits.       The
  multiplier-extension argument is an unsigned byte.

  floating-point-multiplicand

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by reference

  Multiplicand.   The  floating-point-multiplicand   argument   is   a
  D_floating number.

  integer-portion

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Integer portion of the result.  The integer-portion argument is  the
  address  of a signed longword integer containing the integer portion
  of the result.

  fractional-portion

  VMS usage: floating_point
  type: D_floating
  access: write only
  mechanism: by reference

  Fractional portion of the result.  The  fractional-portion  argument
  is a D_floating number.

LIB$EMODF

  The Extended  Multiply  and  Integerize  routine  (F-floating  point
  values) allows higher-level language users to perform accurate range
  reduction of F-floating arguments.

     Format:

       LIB$EMODF  floating-point-multiplier ,multiplier-extension
                  ,floating-point-multiplicand ,integer-portion
                  ,fractional-portion

     Arguments:

  floating-point-multiplier

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  Multiplier.  The floating-point-multiplier argument is  the  address
  of an F_floating number containing the number.

  multiplier-extension

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  The     left-justified     multiplier-extension      bits.       The
  multiplier-extension  argument  is  the  address of an unsigned byte
  containing these multiplier extension bits.

  floating-point-multiplicand

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  Multiplicand.   The  floating-point-multiplicand  argument   is   an
  F_floating number.

  integer-portion

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Integer portion of the result.  The integer-portion argument is  the
  address  of a signed longword integer containing the integer portion
  of the result.

  fractional-portion

  VMS usage: floating_point
  type: F_floating
  access: write only
  mechanism: by reference

  Fractional portion of the result.  The  fractional-portion  argument
  is  the  address  of  an F_floating number containing the fractional
  portion of the result.

LIB$EMODG

  The Extended  Multiply  and  Integerize  routine  (G-floating  point
  values) allows higher-level language users to perform accurate range
  reduction of G-floating arguments.

     Format:

       LIB$EMODG  floating-point-multiplier ,multiplier-extension
                  ,floating-point-multiplicand ,integer-portion
                  ,fractional-portion

     Arguments:

  floating-point-multiplier

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by reference

  Multiplier.  The floating-point-multiplier argument is a  G_floating
  number.

  multiplier-extension

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  The     left-justified     multiplier-extension      bits.       The
  multiplier-extension argument is an unsigned word.

  floating-point-multiplicand

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by reference

  Multiplicand.   The  floating-point-multiplicand   argument   is   a
  G_floating number.

  integer-portion

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Integer portion of the result.  The integer-portion argument is  the
  address  of a signed longword integer containing the integer portion
  of the result.

  fractional-portion

  VMS usage: floating_point
  type: G_floating
  access: write only
  mechanism: by reference

  Fractional portion of the result.  The  fractional-portion  argument
  is a G_floating number.

LIB$EMODH

  The Extended  Multiply  and  Integerize  routine  (H-floating  point
  values) allows higher-level language users to perform accurate range
  reduction of H-floating arguments.

     Format:

       LIB$EMODH  floating-point-multiplier ,multiplier-extension
                  ,floating-point-multiplicand ,integer-portion
                  ,fractional-portion

     Arguments:

  floating-point-multiplier

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Multiplier.  The floating-point-multiplier argument is an H_floating
  number.

  multiplier-extension

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  The     left-justified     multiplier-extension      bits.       The
  multiplier-extension argument is an unsigned word.

  floating-point-multiplicand

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Multiplicand.   The  floating-point-multiplicand  argument   is   an
  H_floating number.

  integer-portion

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Integer portion of the result.  The integer-portion argument is  the
  address  of a signed longword integer containing the integer portion
  of the result.

  fractional-portion

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Fractional portion of the result.  The  fractional-portion  argument
  is an H_floating number.

LIB$EMUL

  The Extended-Precision Multiply routine performs  extended-precision
  multiplication.   LIB$EMUL  makes the VAX EMUL instruction available
  as a callable procedure.

     Format:

       LIB$EMUL  longword-integer-multiplier
                  ,longword-integer-multiplicand ,addend ,product

     Arguments:

  longword-integer-multiplier

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Multiplier   used   by   LIB$EMUL    in    the    extended-precision
  multiplication.   The  longword-integer-multiplier  argument  is the
  address of a signed longword integer containing the multiplier.

  longword-integer-multiplicand

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Multiplicand   used   by   LIB$EMUL   in   the    extended-precision
  multiplication.   The  longword-integer-multiplicand argument is the
  address of a signed longword integer containing the multiplicand.

  addend

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Addend used by LIB$EMUL in  the  extended-precision  multiplication.
  The  addend  argument  is  the  address of a signed longword integer
  containing the addend.

  product

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: write only
  mechanism: by reference

  Product  of  the  extended-precision  multiplication.   The  product
  argument  is  the  address  of  a signed quadword integer into which
  LIB$EMUL writes the product.

LIB$ENABLE_CTRL

  The Enable CLI Interception of Control Characters  routine  requests
  the  calling  process's Command Language Interpreter (CLI) to resume
  interception of the selected control characters when they are  typed
  during  an  interactive  terminal session.  LIB$ENABLE_CTRL provides
  the same function as the DCL command SET CONTROL.

     Format:

       LIB$ENABLE_CTRL  enable-mask [,old-mask]

     Arguments:

  enable-mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask indicating for which control characters LIB$ENABLE_CTRL  is
  to  enable interception.  The enable-mask argument is the address of
  an unsigned longword containing this bit mask.  Each of the 32  bits
  corresponds  to one of the 32 possible control characters.  If a bit
  is set, the corresponding control character is  intercepted  by  the
  CLI.   Currently,  only  bits 20 and 25, corresponding to CTRL/T and
  CTRL/Y, are recognized.

  old-mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Previous bit mask.  The old-mask  argument  is  the  address  of  an
  unsigned  longword containing the old bit mask.  The old bit mask is
  of the same form as enable-mask.

LIB$ESTABLISH

  The Establish a Condition Handler routine moves  the  address  of  a
  condition handling routine (which can be a user-written or a library
  procedure) to longword 0  of  the  stack  frame  of  the  caller  of
  LIB$ESTABLISH.

     Format:

       LIB$ESTABLISH  new-handler

     Argument

  new-handler

  VMS usage: procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  Routine to be set up as  the  condition  handler.   The  new-handler
  argument is the address of the procedure entry mask to this routine.

LIB$EXTV

  The Extract a Field and Sign-Extend routine returns a  sign-extended
  longword  field  that has been extracted from the specified variable
  bit field.  LIB$EXTV makes the VAX EXTV instruction available  as  a
  callable procedure.

     Format:

       LIB$EXTV  position ,size ,base-address

     Arguments:

  position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Position (relative to the base address) of  the  first  bit  in  the
  field  that LIB$EXTV extracts.  The position argument is the address
  of a signed longword integer containing the position.

  size

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Size of the bit field LIB$EXTV extracts.  The size argument  is  the
  address  of  an unsigned byte containing the size.  The maximum size
  is 32 bits.

  base-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Base address of the bit field LIB$EXTV extracts from  the  specified
  variable  bit  field.   The  base-address  argument  is  an unsigned
  longword that contains this base address.

LIB$EXTZV

  The  Extract  a  Zero-Extended  Field  routine  returns  a  longword
  zero-extended  field  that  has  been  extracted  from the specified
  variable bit field.   LIB$EXTZV  makes  the  VAX  EXTZV  instruction
  available as a callable procedure.

     Format:

       LIB$EXTZV  position ,size ,base-address

     Arguments:

  position

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Position (relative to the base address) of  the  first  bit  in  the
  field LIB$EXTZV extracts.  The position argument is the address of a
  signed longword integer containing the position.

  size

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Size of the bit field LIB$EXTZV extracts.  The size argument is  the
  address  of  an unsigned byte containing the size.  The maximum size
  is 32 bits.

  base-address

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Base address of the bit field LIB$EXTZV  extracts.  The base-address
  argument is an unsigned longword that contains this base address.

LIB$FFx

  The Find First Clear or Set Bit routines search the field  specified
  by  the  start  position,  size, and base for the first clear or set
  bit.  LIB$FFC and LIB$FFS make the  VAX  FFC  and  FFS  instructions
  available as callable procedures.

     Format:

       LIB$FFC  position ,size ,base ,find-position

       LIB$FFS  position ,size ,base ,find-position

     Arguments:

  position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Starting position, relative to the base address, of the bit field to
  be  searched  by LIB$FFx.  The position argument is the address of a
  signed longword integer containing the starting position.

  size

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Number of bits to be searched by LIB$FFx.  The size argument is  the
  address  of an unsigned byte containing the size of the bit field to
  be searched.  The maximum size is 32 bits.

  base

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Base address of the bit field  which  LIB$FFx  searches.   The  base
  argument  is the address of an unsigned longword containing the base
  address.

  find-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Bit position of the first bit in the specified state (clear or set),
  relative  to  the  base  address.  The find-position argument is the
  address of a signed longword integer into which LIB$FFC  writes  the
  position  of  the  first clear bit and into which LIB$FFS writes the
  position of the first set bit.

LIB$FID_TO_NAME

  The Convert  Device  and  File  ID  to  File  Specification  routine
  converts   a  disk  device  name  and  file  identifier  to  a  file
  specification.

     Format:

       LIB$FID_TO_NAME  device-name ,file-id ,file-spec
                  [,file-spec-length] [,directory-id] [,acp-status]

     Arguments:

  device-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Device name to  be  converted.   The  device-name  argument  is  the
  address  of  a  descriptor pointing to the device name.  Device-name
  must reference a disk device, and  must  contain  64  characters  or
  less.   LIB$FID_TO_NAME obtains device-name from the NAM$T_DVI field
  of a VAX RMS name block.

  file-id

  VMS usage: vector_word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Specifies the file identifier.  The file-id argument is the  address
  of  an  array  of  three  words  containing the file identification.
  LIB$FID_TO_NAME obtains file-id from the NAM$W_FID field  of  a  VAX
  RMS name block.  The $FIDDEF macro defines the structure of file-id.

  file-spec

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the file specification.   The  file-spec  argument  is  the
  address of a descriptor pointing to the file specification string.

  file-spec-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Receives the number of characters written into file-spec,  excluding
  padding  in  the  case  of  a  fixed-length  string.   The  optional
  file-spec-length  argument  is  the  address  of  an  unsigned  word
  containing the number of characters.

  directory-id

  VMS usage: vector_word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Specifies a directory file identifier.  The directory-id argument is
  the address of an array of three words containing the directory file
  identifier.  LIB$FID_TO_NAME obtains this array from  the  NAM$W_DID
  field  of  a  VAX  RMS  name  block.   The $FIDDEF macro defines the
  structure of directory-id.

  acp-status

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The status  resulting  from  traversing  the  backward  links.   The
  optional  acp-status argument is the address of an unsigned longword
  containing the status.

LIB$FILE_SCAN

  The File Scan routine searches an area, such as a directory, for all
  files  matching  the  file specification given and transfers program
  execution to the  specified  user-written  routine.   Wildcards  are
  acceptable.   An action routine is called for each file and/or error
  found.  LIB$FILE_SCAN allows the search sequence to continue even if
  an error occurs while processing a particular file.

     Format:

       LIB$FILE_SCAN  fab ,user-success-routine ,user-error-routine
                  [,context]

     Arguments:

  fab

  VMS usage: fab
  type: unspecified
  access: read only
  mechanism: by reference

  File Access Block (FAB) referencing a  valid  NAM  block.   The  fab
  argument  is  the  address of the FAB which contains the address and
  length  of  the   file   specification   being   searched   for   by
  LIB$FILE_SCAN.

  user-success-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied success routine that LIB$FILE_SCAN calls when  a  file
  is  found.   The user-success-routine argument is the address of the
  procedure entry mask to the success routine.  The success routine is
  invoked  with the FAB address that was passed to LIB$FILE_SCAN.  The
  user context may be pased to this routine using the FAB$L_CTX  field
  in the FAB.

  user-error-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied  error  routine  that  LIB$FILE_SCAN  calls  when   it
  encounters an error.  The user-error-routine argument is the address
  of the procedure entry mask to the error routine.  The error routine
  is called with the FAB argument that was passed to LIB$FILE_SCAN.

  context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Default file context used  in  processing  file  specifications  for
  multiple  input  files.   The  context  argument is the address of a
  longword, which must be initialized to zero by your  program  before
  the   first   call   to   LIB$FILE_SCAN.    After  the  first  call,
  LIB$FILE_SCAN maintains this longword.   You  must  not  change  the
  value of context in subsequent calls to LIB$FILE_SCAN.

LIB$FILE_SCAN_END

  The End of File Scan routine is called after each sequence of  calls
  to  LIB$FILE_SCAN.   LIB$FILE_SCAN_END  deallocates any saved Record
  Management Service (RMS)  context  and/or  deallocates  the  virtual
  memory  that  had  been  allocated  for  holding  the  related  file
  specification information.

     Format:

       LIB$FILE_SCAN_END  [fab] [,context]

     Arguments:

  fab

  VMS usage: fab
  type: unspecified
  access: modify
  mechanism: by reference

  File access block (FAB) used with LIB$FILE_SCAN.  The  optional  fab
  argument  is  the  address  of the FAB that contains the address and
  length of the file specification.

  context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Temporary default  context  used  in  LIB$FILE_SCAN.   The  optional
  context  argument  is  the  address  of  a  longword containing this
  temporary default context.

LIB$FIND_FILE

  The Find File routine is called with a wildcard  file  specification
  for   which   it   searches.    LIB$FIND_FILE   returns   all   file
  specifications that satisfy that wildcard file specification.

     Format:

       LIB$FIND_FILE  filespec ,resultant-filespec ,context
                  [,default-filespec] [,related-filespec]
                  [,status-value] [,flags]

     Arguments:

  filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File specification, which may contain wildcards, that  LIB$FIND_FILE
  uses  to  search for the desired file.  The filespec argument is the
  address of a descriptor pointing to  the  file  specification.   The
  maximum length of a file specification is 255 bytes.

  resultant-filespec

  VMS usage: char_string
  type: character string
  access: modify
  mechanism: by descriptor

  Resultant file specification  that  LIB$FIND_FILE  returns  when  it
  finds  a  file  that  matches  the  specification  in  the  filespec
  argument.  The resultant-filespec  argument  is  the  address  of  a
  descriptor pointing to the resultant file specification.

  context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Zero or an address of an internal FAB/NAM  buffer  from  a  previous
  call to LIB$FIND_FILE.  The context argument is an unsigned longword
  integer containing the address of the context.   LIB$FIND_FILE  uses
  this  argument  to retain the context when processing multiple input
  files.  Portions of file  specifications  that  the  user  does  not
  specify are inherited from the last files processed because the file
  contexts are retained in this argument.

  default-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Default file specification.  The default-filespec  argument  is  the
  address of a descriptor pointing to the default file specification.

  related-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Related file specification containing the context of the  last  file
  processed.   The  related-filespec  argument  is  the  address  of a
  descriptor pointing to the related file specification.

  status-value

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Record Management  Service  (RMS)  secondary  status  value  from  a
  failing  RMS  operation.   The  status-value argument is an unsigned
  longword containing the  address  of  a  longword-length  buffer  to
  receive the RMS secondary status value (usually returned in the file
  access block field, FAB$L_STV).

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  User flags.  The flags  argument  is  the  address  of  an  unsigned
  longword containing the user flags.

LIB$FIND_FILE_END

  The End of Find File routine is called once after each  sequence  of
  calls  to  LIB$FIND_FILE.   LIB$FIND_FILE_END  deallocates any saved
  Record Management Service (RMS) context and deallocates the  virtual
  memory used to hold the allocated context block.

     Format:

       LIB$FIND_FILE_END  context

     Arguments:

  context

  VMS usage: context
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Zero or the address of a FAB/NAM buffer  from  a  previous  call  to
  LIB$FIND_FILE.   The  context  argument is the address of a longword
  that contains this context.

LIB$FIND_IMAGE_SYMBOL

  The Find Universal Symbol in  Shareable  Image  File  routine  reads
  universal  symbols from the shareable image file.  This routine then
  dynamically activates a shareable image into the P0 address space of
  a process.

     Format:

       LIB$FIND_IMAGE_SYMBOL  filename ,symbol ,symbol-value

     Arguments:

  filename

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the file for which LIB$FIND_IMAGE_SYMBOL is searching.   The
  filename  argument  is  the address of a descriptor pointing to this
  file name string.  This argument may contain  only  the  file  name.
  File   type   cannot   be  indicated.   If  any  file  specification
  punctuation  characters  (:,  [,  <,  .)  are  present,  the   error
  SS$_IVLOGNAM is returned.

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Symbol for which LIB$FIND_IMAGE_SYMBOL is searching in the  filename
  file.   The  symbol argument is the address of a descriptor pointing
  to the symbol name string.  The symbol name string must be input  in
  uppercase   letters;   this   routine  does  not  perform  uppercase
  conversion.

  symbol-value

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Symbol  value   that   LIB$FIND_IMAGE_SYMBOL   has   located.    The
  symbol-value  argument  is  the address of a signed longword integer
  into which LIB$FIND_IMAGE_SYMBOL returns the symbol value.   If  the
  symbol is relocatable, the starting virtual address of the shareable
  image in memory will be added to the symbol value.

LIB$FIND_VM_ZONE

  The Return the Next Valid Zone Identifier routine returns  the  zone
  identifier of the next valid zone in the heap management database.

     Format:

       LIB$FIND_VM_ZONE  context ,zone-id

     Arguments:

  context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context specifier.  The  context  argument  is  the  address  of  an
  unsigned longword used to keep the scan context for finding the next
  valid zone.  Context must be 0 to initialize the scan and  to  start
  with the first returnable zone id.

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Zone identifier.  The zone-id argument is the address of an unsigned
  longword that receives the zone identifier for the next zone.

LIB$FIXUP_FLT

  The Fix Floating Reserved Operand routine finds the reserved operand
  of any F_floating, D_floating, G_floating, or H_floating instruction
  (with some exceptions) after  a  reserved  operand  fault  has  been
  signaled.   LIB$FIXUP_FLT changes the reserved operand from --0.0 to
  the value of the new-operand argument, if present;  or  to  +0.0  if
  new-operand is absent.

     Format:

       LIB$FIXUP_FLT  signal-arguments ,mechanism-arguments
                  [,new-operand]

     Arguments:

  signal-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Signal  argument  vector.   The  signal-arguments  argument  is  the
  address  of  an  array  of  unsigned longwords containing the signal
  argument vector.

  mechanism-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Mechanism argument vector.  The mechanism-arguments argument is  the
  address  of  an array of unsigned longwords containing the mechanism
  argument vector.

  new-operand

  VMS usage: floating-point
  type: F_floating
  access: read only
  mechanism: by reference

  An  F_floating  value  to  replace  the   reserved   operand.    The
  new-operand   argument  is  the  address  of  an  F_floating  number
  containing the new operand.   This  is  an  optional  argument.   If
  omitted, the default value is +0.0.

LIB$FLT_UNDER

  The Floating-Point Underflow Detection routine enables  or  disables
  floating-point   underflow   detection  for  the  calling  procedure
  activation.  The previous setting is returned as a function value.

     Format:

       LIB$FLT_UNDER  new-setting

     Argument

  new-setting

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  New  floating-point  underflow  enable  setting.   The   new-setting
  argument  is  the  address  of  an  unsigned byte containing the new
  setting.  Bit 0 set to 1 means enable; bit 0 set to 0 means disable.

LIB$FORMAT_DATE_TIME

  The Format Date And/Or Time routine allows the user to select at run
  time a specific output language and format for a date and/or time.

     Format:

       LIB$FORMAT_DATE_TIME  date-string [,date] [,user-context]
                  [,date-length] [,flags]

     Arguments:

  date-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the requested date and/or time  in  the  specified  format.
  The  date-string argument is the address of a descriptor pointing to
  this string.

  date

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  The date and/or time to be formatted for output.  The date  argument
  is  the  address  of an unsigned quadword that contains the absolute
  date and/or time to be formatted.  If you omit this argument, or  if
  you  supply  a zero passed by value, then the current system time is
  used.  Note that the date argument must represent an absolute  time,
  not a delta time.

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  User context that maintains information used by this  routine.   The
  user-context  argument  is  the  address  of  an  unsigned  longword
  containing this context.  If you  omit  the  user-context  argument,
  this  context  information is maintained internally, and the routine
  invocation is not reentrant.

  date-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes of text (not characters) written to the  date-string
  argument.   The  date-length  argument is the address of an unsigned
  word that  receives  this  string  length.   Note  that  date-length
  specifies the number of bytes of text, not the number of characters,
  written to date-string.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that allows the user to specify whether the date, time,  or
  both  are  output.  The flags argument is the address of an unsigned
  bit  mask  containing  the  specified  values.   Valid  values   are
  LIB$M_DATE_FIELDS and LIB$M_TIME_FIELDS.

LIB$FREE_DATE_TIME_CONTEXT

  The Free The Context Area Used  When  Formatting  Date  And/Or  Time
  routine  frees  the  virtual memory associated with the context area
  used by the date/time formatting routines.

     Format:

       LIB$FREE_DATE_TIME_CONTEXT  [user-context]

     Arguments:

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context variable passed to the  LIB$FORMAT_DATE_TIME  routine.   The
  user-context  argument  is  the address of an unsigned longword that
  contains  this  context.   If  the  user-context  argument  was  not
  specified     in     the    call    to    LIB$FORMAT_DATE_TIME    or
  LIB$CONVERT_DATE_STRING, then no  argument  should  be  passed  when
  calling LIB$FREE_DATE_TIME_CONTEXT.

LIB$FREE_EF

  The Free Event Flag routine frees  a  local  event  flag  previously
  allocated   by   LIB$GET_EF.    LIB$FREE_EF  is  the  complement  of
  LIB$GET_EF.

     Format:

       LIB$FREE_EF  event-flag-number

     Argument

  event-flag-number

  VMS usage: ef_number
  type: longword integer (unsigned)
  access: read only
  mechanism: by reference

  Event  flag  number  to  be   deallocated   by   LIB$FREE_EF.    The
  event-flag-number  argument  is  the  address  of  a signed longword
  integer that contains the event flag  number,  which  is  the  value
  returned to the user by LIB$GET_EF.

LIB$FREE_LUN

  The Free Logical Unit Number routine releases a logical unit  number
  allocated   by   LIB$GET_LUN  to  the  pool  of  available  numbers.
  LIB$FREE_LUN is the complement of LIB$GET_LUN.

     Format:

       LIB$FREE_LUN  logical-unit-number

     Argument

  logical-unit-number

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Logical unit number  to  be  deallocated.   The  logical-unit-number
  argument  is  the address of a signed longword integer that contains
  this logical unit number, which is the value previously returned  by
  LIB$GET_LUN.

LIB$FREE_TIMER

  The Free Timer  Storage  routine  frees  the  storage  allocated  by
  LIB$INIT_TIMER.

     Format:

       LIB$FREE_TIMER  handle-address

     Argument

  handle-address

  VMS usage: address
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Pointer to a block of storage containing the  value  returned  by  a
  previous   call   to   LIB$INIT_TIMER;  this  is  the  storage  that
  LIB$FREE_TIMER deallocates.   The  handle-address  argument  is  the
  address of an unsigned longword containing that value.

LIB$FREE_VM

  The Free Virtual Memory from Program Region routine  deallocates  an
  entire  block  of contiguous bytes that were allocated by a previous
  call to LIB$GET_VM.  The  arguments  passed  are  the  same  as  for
  LIB$GET_VM.

     Format:

       LIB$FREE_VM  number-of-bytes ,base-address [,zone-id]

     Arguments:

  number-of-bytes

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of contiguous bytes to be deallocated  by  LIB$FREE_VM.   The
  number-of-bytes argument is the address of a signed longword integer
  that contains this number.  The value  of  number-of-bytes  must  be
  greater than zero.

  base-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Address of the first byte to be  deallocated  by  LIB$FREE_VM.   The
  base-address  argument  contains the address of an unsigned longword
  that is this address.  The value of base-address must be the address
  of  a  block  of  memory  that  was  allocated by a previous call to
  LIB$GET_VM.

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The zone-id argument is the address of a longword  that  contains  a
  zone  identifier created by a previous call to LIB$CREATE_VM_ZONE or
  LIB$CREATE_USER_VM_ZONE.

LIB$FREE_VM_PAGE

  The  Free  Virtual  Memory  Page  routine  deallocates  a  block  of
  contiguous   pages   that   were  allocated  by  previous  calls  to
  LIB$GET_VM_PAGE.

     Format:

       LIB$FREE_VM_PAGE  number-of-pages ,base-address

     Arguments:

  number-of-pages

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of pages.  The number-of-pages argument is the address  of  a
  longword  integer  which specifies the number of contiguous pages to
  be deallocated.  The value of number-of-pages must be  greater  than
  zero.

  base-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Block address.  The  base-address  argument  is  the  address  of  a
  longword  which  contains the address of the first byte of the first
  page to be deallocated.

LIB$GETDVI

  The Get Device/Volume  Information  routine  provides  a  simplified
  interface  to  the  $GETDVI  system service.  It returns information
  about the primary and secondary device  characteristics  of  an  I/O
  device.  The calling process need not have a channel assigned to the
  device about which it wants information.

     Format:

       LIB$GETDVI  item-code [,channel] [,device-name]
                  [,longword-integer-value] [,resultant-string]
                  [,resultant-length]

     Arguments:

  item-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Code specifying the item of information  you  are  requesting.   The
  item-code  argument  is  the  address  of  an  unsigned word integer
  containing the item code.  All valid $GETDVI item codes whose  names
  begin with DVI$_ are accepted.

  channel

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by reference

  VMS I/O channel assigned to the device for which LIB$GETDVI  returns
  information.   The  channel  argument  is the address of an unsigned
  word containing  the  channel  specification.   If  channel  is  not
  specified,  device-name  is  used  instead.  You must specify either
  channel or device-name, but not both.  If neither is specified,  the
  error status SS$_IVDEVNAM is returned.

  device-name

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the device for which LIB$GETDVI  returns  information.   The
  device-name  argument is the address of a descriptor pointing to the
  device name string.  If this string contains a colon, the colon  and
  the characters that follow it are ignored.

  longword-integer-value

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Numeric    value    of    the    information     requested.      The
  longword-integer-value  argument is the address of a signed longword
  containing the  numeric  value.   If  an  item  is  listed  as  only
  returning a string value, this argument is ignored.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String   representation   of   the   information   requested.    The
  resultant-string argument is the address of a descriptor pointing to
  this information.  If resultant-string is not specified and  if  the
  value  returned  has  only a string representation, the error status
  LIB$_INVARG is returned.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of significant  characters  written  to  resultant-string  by
  LIB$GETDVI.   The  resultant-length  argument  is  the address of an
  unsigned word containing this length.

LIB$GETJPI

  The  Get  Job/Process  Information  routine  provides  a  simplified
  interface  to  the  $GETJPI system service.  It provides accounting,
  status, and identification information about a specified process.

  LIB$GETJPI obtains only one item of information in a single call.

     Format:

       LIB$GETJPI  item-code [,process-id] [,process-name]
                  [,resultant-value] [,resultant-string]
                  [,resultant-length]

     Arguments:

  item-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Item identifier code specifying the  item  of  information  you  are
  requesting.   The  item-code  argument is the address of an unsigned
  word integer containing the item code.  You  may  request  only  one
  item in each call to LIB$GETJPI.

  process-id

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification of the process for which you  are  requesting
  information.   The process-id argument is the address of an unsigned
  longword containing the  process  identification.   If  you  do  not
  specify process-id, process-name is used.

  process-name

  VMS usage: process_name
  type: character string
  access: read only
  mechanism: by descriptor

  A 1- to 15-character string specifying the name of the  process  for
  which  you  are  requesting  information.   The name must correspond
  exactly to the name of the process  for  which  you  are  requesting
  information;   LIB$GETJPI   does   not   allow  trailing  blanks  or
  abbreviations.

  resultant-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Numeric value of the information you request.   The  resultant-value
  argument  is  the  address  of  a  longword  or  quadword into which
  LIB$GETJPI writes the numeric value of this information. If the item
  you request returns only a string value, this argument is ignored.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  representation  of  the  information   you   request.    The
  resultant-string  argument is the address of a character string into
  which  LIB$GETJPI   writes   the   string   representation.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of significant  characters  written  to  resultant-string  by
  LIB$GETJPI.   The  resultant-length  argument  is  the address of an
  unsigned word integer into which LIB$GETJPI  writes  the  number  of
  characters.

LIB$GETQUI

  The Get Queue Information routine provides a simplified interface to
  the   $GETQUI   system  service.   It  provides  queue,  job,  file,
  characteristic, and form information about a specified process.

  LIB$GETQUI obtains only one item of information in a single call.

     Format:

       LIB$GETQUI  function-code [,item-code] [,search-number]
                  [,search-name] [,search-flags] [,resultant-value]
                  [,resultant-string] [,resultant-length]

     Arguments:

  function-code

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Function code specifying the function that LIB$GETQUI is to perform.
  The  function-code  argument  is  the address  of  a signed longword
  integer containing the function code.

  item-code

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Item identifier code specifying the  item  of  information  you  are
  requesting.   The  item-code  argument  is  the  address of a signed
  longword integer containing the item code.  You may request only one
  item in each call to LIB$GETQUI.

  search-number

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Numeric value used  to  process  your  request.   The  search-number
  argument  is the address of a signed longword integer containing the
  number needed  to  process  your  request.   Search-number  directly
  corresponds to QUI$_SEARCH_NUMBER as described by the $GETQUI system
  service.

  search-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Character string used to  process  your  request.   The  search-name
  argument  is  the  address  of a string descriptor that provides the
  name  needed  to  process  your   request.    Search-name   directly
  corresponds  to  QUI$_SEARCH_NAME as described by the $GETQUI system
  service.

  search-flags

  VMS usage: longword_unsigned
  type: longword integer (unsigned)
  access: read only
  mechanism: by reference

  Optional  bit  mask  indicating  request  to  be   performed.    The
  search-flags argument is the address of an unsigned longword integer
  containing the  bit  mask.   Search-flags  directly  corresponds  to
  $QUI_SEARCH_FLAGS as described by the $GETQUI system service.

  resultant-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Numeric value of the information you requested.  The resultant-value
  argument  is  the  address  of a longword, quadword or octaword into
  which LIB$GETQUI writes  the  numeric  value  of  this  information.
  If the item you requested returns only a string value, this argument
  is ignored.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  representation  of  the  information  you  requested.    The
  resultant-string  argument is the address of a character string into
  which  LIB$GETQUI   writes   the   string   representation.

  resultant-length

  VMS usage: word_signed
  type: word integer (signed)
  access: write only
  mechanism: by reference

  Number of significant  characters  written  to  resultant-string  by
  LIB$GETQUI.   The  resultant-length  argument  is  the  address of a
  signed word integer into  which  LIB$GETQUI  writes  the  number  of
  characters.

LIB$GETSYI

  The  Get  Systemwide  Information  routine  provides  a   simplified
  interface to the $GETSYI system service.  The $GETSYI system service
  obtains status and  identification  information  about  the  system.
  LIB$GETSYI returns only one item of information in a single call.

     Format:

       LIB$GETSYI  item-code [,resultant-value] [,resultant-string]
                  [,resultant-length] [,cluster-system-id] [,node-name]

     Arguments:

  item-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Item code specifying the desired item of information.  The item-code
  argument  is the address of an unsigned word integer containing this
  item code.  All valid $GETSYI item codes are accepted.

  resultant-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Numeric value returned by LIB$GETSYI.  The resultant-value  argument
  is  the address of a longword or quadword containing this value.  If
  an item is listed as returning only a string value, this argument is
  ignored.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Information returned by LIB$GETSYI.  The  resultant-string  argument
  is the address of a descriptor pointing to the character string that
  will receive this information.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of significant characters written  to  resultant-string,  not
  including    blank    padding    or   truncated   characters.    The
  resultant-length argument is the address of an  unsigned  word  into
  which LIB$GETSYI returns this number.

  cluster-system-id

  VMS usage: identifier
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Cluster  system  identification  (CSID)  of  the  node   for   which
  information  is  to  be returned.  The cluster-system-id argument is
  the address of this CSID.  If cluster-system-id is specified and  is
  non-zero,  node-name is not used.  If cluster-system-id is specified
  as  zero,  LIB$GETSYI   uses   node-name   and   writes   into   the
  cluster-system-id  argument  the  CSID  corresponding  to  the  node
  identified by node name.

  node-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the node for which  information  is  to  be  returned.   The
  node-name  argument  is  the address of a descriptor pointing to the
  node name string.  If  cluster-system-id  is  not  specified  or  is
  specified  as  zero,  node-name  is  used.  If neither node-name nor
  cluster-system-id is specified, the caller's node is used.  See  the
  cluster-system-id argument for more information.

LIB$GET_COMMAND

  The Get Line from SYS$COMMAND routine gets one record of ASCII  text
  from  the current controlling input device, specified by the logical
  name SYS$COMMAND.

     Format:

       LIB$GET_COMMAND  resultant-string [,prompt-string]
                  [,resultant-length]

     Arguments:

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String   that   LIB$GET_COMMAND   gets   from   SYS$COMMAND.     The
  resultant-string argument is the address of a descriptor pointing to
  this string.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Prompt message that  LIB$GET_COMMAND  displays  on  the  controlling
  terminal.  The prompt-string argument is the address of a descriptor
  pointing to the prompt.  A valid prompt consists of text followed by
  no  carriage-return/line-feed combination.  A colon(:) and one space
  are optional.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes written into  resultant-string  by  LIB$GET_COMMAND,
  not   counting   padding  in  the  case  of  a  fixed  string.   The
  resultant-length  argument  is  the  address  of  an  unsigned  word
  containing  this  length.   If  the input string is truncated to the
  size specified in the resultant-string descriptor,  resultant-length
  is set to this size.  Therefore, resultant-length can always be used
  by  the  calling  program   to   access   a   valid   substring   of
  resultant-string.

LIB$GET_COMMON

  The Get String from Common routine copies a  string  in  the  common
  area  to  the  destination  string.   (The common area is an area of
  storage which remains defined across multiple image activations in a
  process.)  The string length is taken from the first longword of the
  common area.

     Format:

       LIB$GET_COMMON  resultant-string [,resultant-length]

     Arguments:

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string  into  which  LIB$GET_COMMON  writes  the  string
  copied  from  the common area.  The resultant-string argument is the
  address of a descriptor pointing to the destination string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number   of   characters   written    into    resultant-string    by
  LIB$GET_COMMON,  not  counting padding in the case of a fixed-length
  string.  The resultant-length argument is the address of an unsigned
  word  integer  containing  the  number of characters copied.  If the
  input  string  is  truncated  to   the   size   specified   in   the
  resultant-string  descriptor,  resultant-length is set to this size.
  Therefore, resultant-length  can  always  be  used  by  the  calling
  program to access a valid substring of resultant-string.

LIB$GET_DATE_FORMAT

  The Get The User's Date Input  Format  routine  returns  information
  about the user's choice of a date/time input format.

     Format:

       LIB$GET_DATE_FORMAT  format-string [,user-context]

     Arguments:

  format-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the translation of LIB$DT_INPUT_FORMAT.  The  format-string
  argument  is  the  address  of  a descriptor pointing to this format
  string.

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context variable that retains the translation context over  multiple
  calls  to this routine.  The user-context argument is the address of
  an unsigned longword that contains this context.  The initial  value
  of  the context variable must be zero.  Thereafter, the user program
  must not write to the cell.

LIB$GET_EF

  The Get Event Flag routine allocates one local  event  flag  from  a
  process-wide  pool  and  returns the number of the allocated flag to
  the caller.  If no flags are available, LIB$GET_EF returns an  error
  as its function value.

     Format:

       LIB$GET_EF  event-flag-number

     Argument

  event-flag-number

  VMS usage: ef_number
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Number of the local event flag that LIB$GET_EF allocated, or --1  if
  no  local  event flag was available.  The event-flag-number argument
  is the address of a signed longword integer  into  which  LIB$GET_EF
  writes the number of the local event flag that it allocates.

LIB$GET_FOREIGN

  The Get Foreign Command Line routine requests  the  calling  image's
  Command  Language  Interpreter  (CLI)  to return the contents of the
  "foreign command" line that activated the current image.

     Format:

       LIB$GET_FOREIGN  resultant-string [,prompt-string]
                  [,resultant-length] [,flags]

     Arguments:

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String which LIB$GET_FOREIGN uses to  receive  the  foreign  command
  line.   The resultant-string argument is the address of a descriptor
  pointing to this string.  If the foreign command text  returned  was
  obtained  by  prompting to SYS$INPUT (see the description of flags),
  the text is translated to uppercase so as to be more consistent with
  text returned from the CLI.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional user-supplied prompt for text which LIB$GET_FOREIGN uses if
  no  command-line  text  is available.  The prompt-string argument is
  the address of  a  descriptor  pointing  to  the  user  prompt.   If
  omitted,   no  prompting  is  performed.   It  is  recommended  that
  prompt-string be specified.  If prompt-string is omitted and  if  no
  command-line  text  is  available,  a  zero-length  string  will  be
  returned.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes written into  resultant-string  by  LIB$GET_FOREIGN,
  not counting padding in the case of a fixed-length resultant-string.
  The resultant-length argument is the address  of  an  unsigned  word
  into which LIB$GET_FOREIGN writes the number of bytes.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Value which LIB$GET_FOREIGN uses to control whether or not prompting
  is  to  be performed.  The flags argument is the address of a signed
  longword integer containing this value.  If the low bit of flags  is
  zero, or if flags is omitted, prompting is done only if the CLI does
  not return a command line.  If the low bit is 1, prompting  is  done
  unconditionally.   If  specified, flags is set to 1 before returning
  to the caller.

LIB$GET_INPUT

  The Get Line from SYS$INPUT routine gets one record  of  ASCII  text
  from the current controlling input device, specified by SYS$INPUT.

     Format:

       LIB$GET_INPUT  resultant-string [,prompt-string]
                  [,resultant-length]

     Arguments:

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  which  LIB$GET_INPUT  gets  from  the  input  device.    The
  resultant-string argument is the address of a descriptor pointing to
  the character  string  into  which  LIB$GET_INPUT  writes  the  text
  received from the current input device.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Prompt message that is displayed on the controlling  terminal.   The
  prompt-string argument is the address of a descriptor containing the
  prompt.  A valid prompt consists of text followed by a colon (:),  a
  space,  and  no  carriage-return/line-feed combination.  The maximum
  size of the prompt message is 255 characters.   If  the  controlling
  input device is not a terminal, this argument is ignored.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes written into resultant-string by LIB$GET_INPUT,  not
  counting   padding   in   the   case   of   a   fixed  string.   The
  resultant-length  argument  is  the  address  of  an  unsigned  word
  containing  this  number.   If  the input string is truncated to the
  size specified in the resultant-string descriptor,  resultant-length
  is set to this size.  Therefore, resultant-length can always be used
  by  the  calling  program   to   access   a   valid   substring   of
  resultant-string.

LIB$GET_LUN

  The Get Logical Unit  Number  routine  allocates  one  logical  unit
  number from a process-wide pool.  If a unit is available, its number
  is returned to the caller.  Otherwise, an error is returned  as  the
  function value.

     Format:

       LIB$GET_LUN  logical-unit-number

     Arguments:

  logical-unit-number

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Allocated logical unit number or --1 if  none  was  available.   The
  logical-unit-number argument is the address of a longword into which
  LIB$GET_LUN returns the value of the allocated logical unit.

LIB$GET_MAXIMUM_DATE_LENGTH

  Given an output format and language, the Retrieve the Maximum Length
  of a Date/Time String routine determines the maximum possible length
  for the date-string string returned by LIB$FORMAT_DATE_TIME.

     Format:

       LIB$GET_MAXIMUM_DATE_LENGTH  date-length [,user-context]
                                    [,flags]

     Arguments:

  date-length

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Receives  the maximum possible length  of  the  date-string argument
  returned by  LIB$FORMAT_DATE_TIME.  The  date-length argument is the
  address of a signed longword that receives this maximum length.  The
  length written to  date-length reflects the greatest possible length
  of  an output  date/time string  for the  currently  selected output
  format and natural language.

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context variable that retains the  translation context over multiple
  calls to this routine.  The  user-context argument is the address of
  an unsigned longword that contains this context.  The  initial value
  of the context variable must be zero.  Thereafter,  the user program
  must not write to the cell.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that allows the user to specify whether the date, time,  or
  both  are  to be included  in  the calculation  of the  maximum date
  length.  The  flags argument  is the address of an unsigned bit mask
  containing the specified values.  Valid values are LIB$M_DATE_FIELDS
  and  LIB$M_TIME_FIELDS.    The   values  specified  for  flags  must
  correspond  to  the  flags argument  passed to LIB$FORMAT_DATE_TIME.

LIB$GET_SYMBOL

  The Get Value of CLI Symbol routine requests the  calling  process's
  Command  Language  Interpreter  (CLI)  to  return the value of a CLI
  symbol as a string.  LIB$GET_SYMBOL then returns the string  to  the
  caller.   Optionally,  LIB$GET_SYMBOL  can  return the length of the
  returned value and the table in which the symbol was found.

     Format:

       LIB$GET_SYMBOL  symbol ,resultant-string [,resultant-length]
                  [,table-type-indicator]

     Arguments:

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the symbol for which LIB$GET_SYMBOL  searches.   The  symbol
  argument  is the address of a descriptor pointing to the name of the
  symbol.  LIB$GET_SYMBOL converts the symbol name  to  uppercase  and
  removes trailing blanks before the search.  Symbol must begin with a
  letter or dollar sign ($).  The maximum  length  of  symbol  is  255
  characters.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Value of the returned symbol.  The resultant-string argument is  the
  address  of  a  descriptor pointing to a character string into which
  LIB$GET_SYMBOL writes the value of the symbol.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length  of  the  symbol  value  returned  by  LIB$GET_SYMBOL.    The
  resultant-length argument is the address of an unsigned word integer
  into which LIB$GET_SYMBOL writes the length.

  table-type-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Indicator   of   which   table   contained    the    symbol.     The
  table-type-indicator  argument  is  the address of a signed longword
  integer into which LIB$GET_SYMBOL writes the table indicator.

LIB$GET_USERS_LANGUAGE

  The Return The User's Language routine determines the user's  choice
  of  a natural language.  The choice is determined by translating the
  logical SYS$LANGUAGE.

     Format:

       LIB$GET_USERS_LANGUAGE  language

     Arguments:

  language

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the translation of SYS$LANGUAGE.  The language argument  is
  the address of a descriptor pointing to this language name.

LIB$GET_VM

  The Allocate Virtual Memory routine allocates a specified number  of
  contiguous  bytes  in  the  program  region  and returns the virtual
  address of the first byte allocated.

     Format:

       LIB$GET_VM  number-of-bytes, base-address [,zone-id]

     Arguments:

  number-of-bytes

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number  of  contiguous  bytes  that   LIB$GET_VM   allocates.    The
  number-of-bytes  argument  is  the  address  of  a  longword integer
  containing the number of bytes.  LIB$GET_VM allocates enough  memory
  to  satisfy  the  request.   Your  program  should  not reference an
  address before the first byte address  allocated  (base-address)  or
  beyond the last byte allocated (base-address + number-of-bytes -- 1)
  since that space may be assigned to another procedure.  The value of
  number-of-bytes must be greater than zero.

  base-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  First virtual address of the contiguous block of bytes allocated  by
  LIB$GET_VM.  The base-address argument is the address of an unsigned
  longword containing this base address.

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The zone-id argument is the address of a longword  that  contains  a
  zone  identifier created by a previous call to LIB$CREATE_VM_ZONE or
  LIB$CREATE_USER_VM_ZONE.  This argument is optional.  If zone-id  is
  omitted  or  if  the longword contains the value 0, LIB$VM's default
  zone is used.

LIB$GET_VM_PAGE

  The Get Virtual Memory Page routine allocates a specified number  of
  contiguous  pages  of  memory  in the program region and returns the
  virtual address of the first page allocated.

     Format:

       LIB$GET_VM_PAGE  number-of-pages ,base-address

     Arguments:

  number-of-pages

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of pages.  The number-of-pages argument is the address  of  a
  longword  integer  which specifies the number of contiguous pages to
  be allocated.  The value of number-of-pages  must  be  greater  than
  zero.

  base-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Block address.  The  base-address  argument  is  the  address  of  a
  longword  which is set to the address of the first byte of the newly
  allocated block of pages.

LIB$ICHAR

  The Convert First Character of String to  Integer  routine  converts
  the  first  character  of  a source string to an 8-bit ASCII integer
  extended to a longword.

     Format:

       LIB$ICHAR  source-string

     ARGUMENT

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string whose first character is converted to  an  integer  by
  LIB$ICHAR.   The  scr-str  argument  is  the address of a descriptor
  pointing to this source string.

LIB$INDEX

  The Index to Relative  Position  of  Substring  routine  returns  an
  index,  which  is the relative position of the first occurrence of a
  substring in the source string.

     Format:

       LIB$INDEX  source-string ,sub-string

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string  to  be  searched  by  LIB$INDEX.   The  source-string
  argument  is  the  address  of  a descriptor pointing to this source
  string.

  sub-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Substring to be found.  The sub-string argument is the address of  a
  descriptor pointing to this substring.

LIB$INIT_DATE_TIME_CONTEXT

  The Initialize The Context Area Used In Formatting Date And/Or  Time
  routine  allows  the  user to preinitialize the context area used by
  LIB$FORMAT_DATE_TIME  or   LIB$CONVERT_DATE_STRING   with   specific
  strings, instead of through logical name translation.

     Format:

       LIB$INIT_DATE_TIME_CONTEXT  user-context ,component
                  ,init-string

     Arguments:

  user-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context defined by the user to maintain the context of  the  logical
  name  translations.   The user-context argument is the address of an
  unsigned longword that contains this context.

  component

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The component  of  the  context  that  is  being  initialized.   The
  component  argument  is  the  address  of  a  signed  longword  that
  indicates this component.  Only one component can be initialized per
  call to LIB$INIT_DATE_TIME; these component codes are

  o  LIB$K_MONTH_NAME

  o  LIB$K_MONTH_NAME_ABB

  o  LIB$K_FORMAT_MNEMONICS

  o  LIB$K_WEEKDAY_NAME

  o  LIB$K_WEEKDAY_NAME_ABB

  o  LIB$K_RELATIVE_DAY_NAME

  o  LIB$K_MERIDIEM_INDICATOR

  o  LIB$K_OUTPUT_FORMAT

  o  LIB$K_INPUT_FORMAT

  init-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The characters which are to be used in formatting date  and/or  time
  text.   The  init-string  argument  is  the  address of a descriptor
  pointing to this string.

LIB$INIT_TIMER

  The Initialize Times and Counts routine stores the current values of
  specified   times   and   counts   for   use  by  LIB$SHOW_TIMER  or
  LIB$STAT_TIMER.

     Format:

       LIB$INIT_TIMER  [context]

     Argument

  context

  VMS usage: address
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Pointer to a control block where the values of times and counts will
  be  stored.   The handle-address argument contains the address of an
  unsigned  longword  that   is   this   pointer.    When   you   call
  LIB$INIT_TIMER,  you  must  use the optional handle-address argument
  only  if  you  want  to  maintain   several   sets   of   statistics
  simultaneously.

  o  If handle-address is omitted, the control block is  allocated  in
     static storage.  This method is not AST reentrant.

  o  If handle-address is  zero,  a  control  block  is  allocated  in
     dynamic  heap  storage.   The  times and counts will be stored in
     that  block  and  the  address   of   the   block   returned   in
     handle-address.  This method is fully reentrant and modular.

  o  If handle-address is nonzero, it is considered to be the  address
     of   a   control   block   previously  allocated  by  a  call  to
     LIB$INIT_TIMER.  If so, the control block is  reused,  and  fresh
     times and counts are stored in it.

LIB$INSERT_TREE

  The Insert Entry in a Balanced Binary Tree routine inserts a node in
  a balanced binary tree.

     Format:

       LIB$INSERT_TREE  treehead ,symbol ,flags ,user-compare-routine
                  ,user-allocation-routine ,new-node [,user-data]

     Arguments:

  treehead

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Tree head for the binary tree.  The treehead argument is the address
  of a longword that is this tree head.

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Key to be inserted.   The  symbol  argument  is  the  address  of  a
  descriptor pointing to the symbol key.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Control flags.  The flags argument is the  address  of  the  control
  flags.  Currently only bit zero is used.

       Bit     Description

       0       If clear, the address of the existing  duplicate  entry
                 is returned. If set, duplicate entries are inserted.

  user-compare-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied compare routine that LIB$INSERT_TREE calls to  compare
  a  symbol  with  a  node.   The user-compare-routine argument is the
  address  of  the  entry  mask   to   the   compare   routine.    The
  user-compare-routine  argument  is  required; LIB$INSERT_TREE always
  calls the compare  routine.   The  value  returned  by  the  compare
  routine  indicates  the  relationship between the symbol key and the
  node.

  user-allocation-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied  allocate  routine  that  LIB$INSERT_TREE   calls   to
  allocate  virtual  memory  for  a node.  The user-allocation-routine
  argument is the address of the entry mask to the  allocate  routine.
  The  user-allocation-routine  argument  is required; LIB$INSERT_TREE
  always calls the allocate routine.

  new-node

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Location where the new key is inserted.  The  new-node  argument  is
  the address of an unsigned longword that is this new node location.

  user-data

  VMS usage: user_arg
  type: unspecified
  access: unspecified
  mechanism: unspecified

  User data that LIB$INSERT_TREE passes to the  compare  and  allocate
  routines.  User-data is an optional argument.

LIB$INSQHI

  The Insert Entry at Head of Queue routine inserts a queue  entry  at
  the   head   of   the  specified  self-relative  interlocked  queue.
  LIB$INSQHI makes the VMS INSQHI instruction available as a  callable
  procedure.

     Format:

       LIB$INSQHI  entry ,header [,retry-count]

     Arguments:

  entry

  VMS usage: unspecified
  type: unspecified
  access: modify
  mechanism: by reference, array reference

  Entry to be inserted by LIB$INSQHI.  The entry argument contains the
  address  of this signed quadword-aligned array that must be at least
  eight bytes long.  Bytes following the first eight bytes can be used
  for any purpose by the calling program.

  header

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: modify
  mechanism: by reference

  Queue header  specifying  the  queue  into  which  entry  is  to  be
  inserted.   The  header argument contains the address of this signed
  aligned quadword integer.  Header must be initialized to zero before
  first use of the queue; zero means an empty queue.

  retry-count

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The number of times the insertion  is  to  be  retried  in  case  of
  secondary-interlock   failure   of   the   queue  instruction  in  a
  processor-shared memory application.  The  retry-count  argument  is
  the  address  of  an unsigned longword that contains the retry count
  value.  A value of 1 causes no retries.  The default value is 10.

LIB$INSQTI

  The Insert Entry at Tail of Queue routine inserts a queue  entry  at
  the   tail   of   the  specified  self-relative  interlocked  queue.
  LIB$INSQTI makes the VAX INSQTI instruction available as a  callable
  procedure.

     Format:

       LIB$INSQTI  entry ,header [,retry-count]

     Arguments:

  entry

  VMS usage: unspecified
  type: unspecified
  access: modify
  mechanism: by reference, array reference

  Entry to be inserted at the tail of the queue  by  LIB$INSQTI.   The
  entry  argument contains the address of this signed quadword-aligned
  array that must be at least eight bytes long.  Bytes  following  the
  first  eight  bytes  can  be  used  for  any  purpose by the calling
  program.

  header

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: modify
  mechanism: by reference

  Queue header specifying the queue into which the queue entry  is  to
  be  inserted.   The  header  argument  contains  the address of this
  signed aligned quadword integer.  Header must be initialized to zero
  before first use of the queue; zero means an empty queue.

  retry-count

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The number of times the insertion  is  to  be  retried  in  case  of
  secondary-interlock   failure   of   the   queue  instruction  in  a
  processor-shared memory application.  The  retry-count  argument  is
  the address of a longword which contains the retry count value.  The
  default value is 10.

LIB$INSV

  The Insert a Variable Bit Field routine replaces  the  variable  bit
  field  specified by the base, position, and size arguments with bits
  0 through ( size - 1) of the source field.  If the size of  the  bit
  field  is  zero,  nothing  is inserted.  LIB$INSV makes the VAX INSV
  instruction available as a callable procedure.

     Format:

       LIB$INSV  longword-integer-source ,position ,size ,base-address

     Arguments:

  longword-integer-source

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Source    field    to    be    inserted    by     LIB$INSV.      The
  longword-integer-source argument is the address of a signed longword
  integer that contains this source field.

  position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Bit position  relative  to  the  base  address  where  insertion  of
  longword-integer-source  is  to begin.  The position argument is the
  address of a  longword  integer  that  contains  this  relative  bit
  position.

  size

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Size of the bit field to be inserted by LIB$INSV.  The size argument
  is  the  address of an unsigned byte which contains the size of this
  bit field.  The maximum size is 32 bits.

  base-address

  VMS usage: address
  type: unspecified
  access: write only
  mechanism: by reference

  Field into which LIB$INSV writes the source field.  The base-address
  argument contains the base address of this aligned bit string.

LIB$INT_OVER

  The Integer Overflow Detection routine enables or  disables  integer
  overflow  detection  for  the  calling  procedure  activation.   The
  previous integer overflow enable setting is returned.

     Format:

       LIB$INT_OVER  new-setting

     Argument

   new-setting

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  New integer overflow enable setting.  The  new-setting  argument  is
  the  address  of an unsigned longword which contains the new integer
  overflow enable setting.  Bit 0 set to 1 means enable, bit 0 set  to
  0 means disable.

LIB$LEN

  The Length of String Returned as Longword Value routine returns  the
  length of a string.

     Format:

       LIB$LEN  source-string

     Argument

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source  string  whose  length   is   returned   by   LIB$LEN.    The
  source-string argument contains the address of a descriptor pointing
  to this source string.

LIB$LOCC

  The Locate a Character routine locates a character in  a  string  by
  comparing   successive  bytes  in  the  string  with  the  character
  specified.  The search continues until the character is found or the
  string  has  no  more  characters.   LIB$LOCC  makes  the  VAX  LOCC
  instruction available as a callable procedure.

     Format:

       LIB$LOCC  character-string ,source-string

     Arguments:

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String whose initial character is used by LIB$LOCC  in  the  search.
  The  character-string  argument contains the address of a descriptor
  pointing  to   this   string.    Only   the   first   character   of
  character-string is used, and its length is not checked.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String to be searched by LIB$LOCC.  The  source-string  argument  is
  the address of a descriptor pointing to this character string.

LIB$LOOKUP_KEY

  The Look Up Keyword In Table routine scans a table  of  keywords  to
  find  one that matches the keyword or keyword abbreviation specified
  by search-string.

     Format:

       LIB$LOOKUP_KEY  search-string ,key-table-array [,key-value]
                  [,keyword-string] [,resultant-length]

     Arguments:

  search-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String for which LIB$LOOKUP_KEY will search in  the  keyword  table.
  The  search-string  argument is the address of a descriptor pointing
  to this string.

  key-table-array

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Keyword table.  The key-table-array argument contains the address of
  an array that is this keyword table.

  key-value

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Value  of  the  keyword  found  by  LIB$LOOKUP_KEY.   The  key-value
  argument  contains  the address of an unsigned longword that is this
  keyword value.  LIB$LOOKUP_KEY writes the address of  this  unsigned
  longword into key-value.

  keyword-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Full  keyword  match.   The  keyword-string  argument  contains  the
  address   of   a   descriptor   pointing   to  the  keyword  string.
  LIB$LOOKUP_KEY  writes  the  address   of   this   descriptor   into
  keyword-string if the full keyword is matched.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of characters in the keyword, independent  of  padding.   The
  resultant-length argument is the address of an unsigned word integer
  that  contains  the   number   of   characters   in   the   keyword.
  LIB$LOOKUP_KEY  writes  the address of this signed word integer into
  resultant-length.

LIB$LOOKUP_TREE

  The Look Up an Entry in a Balanced Binary Tree routine looks  up  an
  entry in a balanced binary tree.

     Format:

       LIB$LOOKUP_TREE  treehead ,symbol ,user-compare-routine ,new-node

     Arguments:

  treehead

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Tree head for the binary tree.  The treehead argument is the address
  of an unsigned longword that is this tree head.

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Key to be looked up in the binary tree.  The symbol argument is  the
  address of a descriptor pointing to the symbol key.

  user-compare-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by reference, procedure reference

  User-supplied compare routine that LIB$LOOKUP_TREE calls to  compare
  a  symbol  with  a  node.   The user-compare-routine argument is the
  address of the  entry  mask  to  the  compare  routine.   The  value
  returned  by  the compare routine indicates the relationship between
  the symbol key and the current node.

  new-node

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Location where the new symbol was found.  The new-node  argument  is
  the address of an unsigned longword that is the new node location.

LIB$LP_LINES

  The Lines on Each Printer Page routine computes the  default  number
  of  lines  on  a  printer  page.   This  procedure  can  be  used by
  native-mode  VMS  utilities  that  produce  listing  files  and   do
  pagination.

     Format:

       LIB$LP_LINES

     NONE

LIB$MATCHC

  The Match Characters and Return Relative Position routine searches a
  source  string for a specified substring and returns an index, which
  is the relative position of the first occurrence of a  substring  in
  the  source  string.   LIB$MATCHC  makes  the VAX MATCHC instruction
  available as a callable procedure.

     Format:

       LIB$MATCHC  sub-string ,source-string

     Arguments:

  sub-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Substring to be found.  The sub-string argument is the address of  a
  descriptor pointing to this substring.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string to  be  searched  by  LIB$MATCHC.   The  source-string
  argument  is  the  address  of  a descriptor pointing to this source
  string.

LIB$MATCH_COND

  The Match  Condition  Values  routine  checks  to  see  if  a  given
  condition value matches a list of condition values that you supply.

     Format:

       LIB$MATCH_COND  match-condition-value
                      ,compare-condition-value ,...

     Arguments:

  match-condition-value

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Condition value to be matched.  The  match-condition-value  argument
  is  the address of an unsigned longword that contains this condition
  value.

  compare-condition-value

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The condition value(s) to be compared to match-condition-value.  The
  compare-condition-value  argument(s)  are  the  address(es)  of  the
  unsigned longword(s) that contain these condition value(s).

LIB$MOVC3

  The  Move  Characters  routine  makes  the  VAX  MOVC3   instruction
  available  as a callable procedure.  The source item is moved to the
  destination item.  Overlap of the source and destination items  does
  not affect the result.

     Format:

       LIB$MOVC3  word-integer-length ,source ,destination

     Arguments:

  word-integer-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Number of bytes to be moved from source to destination by LIB$MOVC3.
  The  word-integer-length argument is the address of an unsigned word
  which contains this number of bytes.  The maximum transfer is 65,535
  bytes.

  source

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by reference

  Item to be moved.  The source argument is the address of this item.

  destination

  VMS usage: unspecified
  type: unspecified
  access: write only
  mechanism: by reference

  Item into which source will be moved.  The destination  argument  is
  the address of this item.

LIB$MOVC5

  The  Move  Characters  with  Fill  routine  makes  the   VAX   MOVC5
  instruction  available  as a callable procedure.  The source item is
  moved  to  the  destination  item.   Overlap  of  the   source   and
  destination items does not affect the result.

     Format:

       LIB$MOVC5  word-integer-source-length ,source ,fill
                  ,word-integer-destination-length ,destination

     Arguments:

  word-integer-source-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Number of bytes in the source item.  The  word-integer-source-length
  argument  is  the  address  of  an  unsigned word that contains this
  number of bytes.  The maximum length of source is 65,535 bytes.

  source

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by reference

  Item to be moved by LIB$MOVC5.  The source argument is  the  address
  of  this  item.   If  word-integer-source-length is zero, indicating
  that destination is to be entirely filled  by  the  fill  character,
  then source is ignored by LIB$MOVC5.

  fill

  VMS usage: byte_signed
  type: byte integer (signed)
  access: read only
  mechanism: by reference

  Character used to pad source to the length of destination.  The fill
  argument  is the address of a signed byte integer that contains this
  fill character.

  word-integer-destination-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Length of destination in bytes.  The word-integer-destination-length
  argument  is  the  address  of  an  unsigned word that contains this
  number      of      bytes.       The      maximum      value      of
  word-integer-destination-length is 65,535 bytes.

  destination

  VMS usage: unspecified
  type: unspecified
  access: write only
  mechanism: by reference

  Item into which source will be moved.  The destination  argument  is
  the address of this item.

LIB$MOVTC

  The Move Translated Characters  routine  moves  the  source  string,
  character  by character, to the destination string after translating
  each character using the  specified  translation  table.   LIB$MOVTC
  makes the VAX MOVTC instruction available as a callable procedure.

     Format:

       LIB$MOVTC  source-string ,fill-character ,translation-table
                  ,destination-string

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source  string  to  be  translated  and  moved  by  LIB$MOVTC.   The
  source-string  argument  is  the address of a descriptor pointing to
  this source string.

  fill-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Fill  character  used  to  pad  source-string  to  the   length   of
  destination-string.  The fill-character argument is the address of a
  descriptor pointing to a string.  The first character of this string
  is  used  as  the  fill character.  The length of this string is not
  checked and fill-character is not translated.

  translation-table

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Translation table used by LIB$MOVTC.  The translation-table argument
  is  the  address  of  a descriptor pointing to the translation table
  string.   The  translation  table  string  is  assumed  to  be   256
  characters long.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination  string  into  which  LIB$MOVTC  writes  the  translated
  source-string.   The destination-string argument is the address of a
  descriptor pointing to this destination string.

LIB$MOVTUC

  The Move Translated Until Character routine moves the source string,
  character  by character, to the destination string after translating
  each character using the specified translation table until the  stop
  character   is   encountered.    LIB$MOVTUC  makes  the  VAX  MOVTUC
  instruction available as a callable procedure.

     Format:

       LIB$MOVTUC  source-string ,stop-character ,translation-table
                  ,destination-string [,fill-character]

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string  to  be  translated  and  moved  by  LIB$MOVTUC.   The
  source-string  argument  is  the address of a descriptor pointing to
  this source string.

  stop-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Stop character that causes LIB$MOVTUC to stop translating the source
  string.   The stop-character argument is the address of a descriptor
  pointing to a string.  The first character of this string is used as
  the  stop  character.   The length of this string is not checked and
  stop-character is not translated.

  translation-table

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Translation  table  used  by  LIB$MOVTUC.    The   translation-table
  argument  is the address of a descriptor pointing to the translation
  table string.  The translation table string is  assumed  to  be  256
  characters long.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string  into  which  LIB$MOVTUC  writes  the  translated
  source-string.   The destination-string argument is the address of a
  descriptor pointing to this destination string.

  fill-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Character   used   to   pad   source-string   to   the   length   of
  destination-string.  The fill-character argument is the address of a
  descriptor pointing to a string.  The first character of this string
  is  used  as  the  fill character.  The length of this string is not
  checked and fill-character is not translated.

LIB$MULT_DELTA_TIME

  The Multiply Delta Time by Scalar routine multiplies a delta time by
  a longword integer scalar.

     Format:

       LIB$MULT_DELTA_TIME  multiplier ,delta-time

     Arguments:

  multiplier

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The value by which LIB$MULT_DELTA_TIME multiplies  the  delta  time.
  The  multiplier  argument  is  the  address  of  a  signed  longword
  containing the integer  scalar.   If  multiplier  is  negative,  the
  absolute value of multiplier is used.

  delta-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  The delta time to be multiplied.  The  delta-time  argument  is  the
  address  of  an  unsigned  quadword  containing  the  number  to  be
  multiplied.  Delta-time  must  be  less  than  10,000  days.   After
  LIB$MULT_DELTA_TIME  performs  the  multiplication,  the  result  is
  returned to delta-time.  (The original delta-time is overwritten.)

LIB$MULTF_DELTA_TIME

  The Multiply Delta Time by an F-Floating Scalar routine multiplies a
  delta time by an F-floating scalar.

     Format:

       LIB$MULTF_DELTA_TIME  multiplier ,delta-time

     Arguments:

  multiplier

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  The value by which LIB$MULTF_DELTA_TIME multiplies the  delta  time.
  The  multiplier  argument  is  the  address  of  an F-floating value
  containing the scalar.  If  multiplier  is  negative,  the  absolute
  value of multiplier is used.

  delta-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  The delta time to be multiplied.  The  delta-time  argument  is  the
  address  of  an  unsigned  quadword  containing  the  number  to  be
  multiplied.  Delta-time  must  be  less  than  10,000  days.   After
  LIB$MULTF_DELTA_TIME  performs  the  multiplication,  the  result is
  returned to delta-time.  (The original delta-time is overwritten.)

LIB$PAUSE

  The Pause Program Execution routine suspends program  execution  and
  returns control to the calling command level.

     Format:

       LIB$PAUSE

     NONE

LIB$POLYD

  The Evaluate Polynomials routine (D-floating  point  values)  allows
  higher-level  language  users  to  evaluate  D-floating  point value
  polynomials.

     Format:

       LIB$POLYD  polynomial-argument ,degree ,coefficient
                  ,floating-point-result

     Arguments:

  polynomial-argument

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by reference

  Argument for the polynomial.  The  polynomial-argument  argument  is
  the  address of a floating-point number that contains this argument.
  The polynomial-argument argument is a D_floating number.

  degree

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by reference

  Highest  numbered  non-zero  coefficient  to  participate   in   the
  evaluation.   The  degree  argument  is the address of a signed word
  integer that contains this highest-numbered coefficient.

  coefficient

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by reference, array reference

  Floating-point  coefficients.   The  coefficient  argument  is   the
  address of an array of floating-point coefficients.  The coefficient
  of the highest-order term of the polynomial is the  lowest-addressed
  element  in  the  array.   The  coefficient  argument is an array of
  D_floating numbers.

  floating-point-result

  VMS usage: floating_point
  type: D_floating
  access: write only
  mechanism: by reference

  Result of the calculation.  The  floating-point-result  argument  is
  the  address  of  a floating-point number that contains this result.
  LIB$POLYD  writes  the  address  of  floating-point-result  into   a
  D_floating number.

LIB$POLYF

  The Evaluate Polynomials routine (F-floating  point  values)  allows
  higher-level   language   users   to   evaluate   F-floating   point
  polynomials.

     Format:

       LIB$POLYF  polynomial-argument ,degree ,coefficient
                  ,floating-point-result

     Arguments:

  polynomial-argument

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  Argument for the polynomial.  The  polynomial-argument  argument  is
  the  address of a floating-point number that contains this argument.
  The polynomial-argument argument is an F_floating number.

  degree

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  Highest  numbered  nonzero  coefficient  to   participate   in   the
  evaluation.   The  degree  argument  is the address of a signed word
  integer that contains this highest-numbered coefficient.

  coefficient

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference, array reference

  Floating-point  coefficients.   The  coefficient  argument  is   the
  address of an array of floating-point coefficients.  The coefficient
  of the highest-order term of the polynomial is the  lowest-addressed
  element  in  the  array.   The  coefficient  argument is an array of
  F_floating numbers.

  floating-point-result

  VMS usage: floating_point
  type: F_floating
  access: write only
  mechanism: by reference

  Result of the calculation.  The  floating-point-result  argument  is
  the  address  of  a floating-point number that contains this result.
  LIB$POLYF  writes  the  address  of  floating-point-result  into  an
  F_floating number.

LIB$POLYG

  The Evaluate Polynomials routine (G-floating  point  values)  allows
  higher-level  language  users  to  evaluate  G-floating  point value
  polynomials.

     Format:

       LIB$POLYG  polynomial-argument ,degree ,coefficient
                  ,floating-point-result

     Arguments:

  polynomial-argument

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by reference

  Argument for the polynomial.  The  polynomial-argument  argument  is
  the  address of a floating-point number that contains this argument.
  The polynomial-argument argument is an G_floating number.

  degree

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by reference

  Highest  numbered  non-zero  coefficient  to  participate   in   the
  evaluation.   The  degree  argument  is the address of a signed word
  integer that contains this highest-numbered coefficient.

  coefficient

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by reference, array reference

  Floating-point  coefficients.   The  coefficient  argument  is   the
  address of an array of floating-point coefficients.  The coefficient
  of the highest-order term of the polynomial is the  lowest-addressed
  element  in  the  array.   The  coefficient  argument is an array of
  G_floating numbers.

  floating-point-result

  VMS usage: floating_point
  type: G_floating
  access: write only
  mechanism: by reference

  Result of the calculation.  The  floating-point-result  argument  is
  the  address  of  a floating-point number that contains this result.
  LIB$POLYG  writes  the  address  of  floating-point-result  into  an
  G_floating number.

LIB$POLYH

  The Evaluate Polynomials routine (H-floating  point  values)  allows
  higher-level  language  users  to  evaluate  H-floating  point value
  polynomials.

     Format:

       LIB$POLYH  polynomial-argument ,degree ,coefficient
                  ,floating-point-result

     Arguments:

  polynomial-argument

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Argument for the polynomial.  The  polynomial-argument  argument  is
  the  address of a floating-point number that contains this argument.
  The polynomial-argument argument is an H_floating number.

  degree

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by reference

  Highest  numbered  non-zero  coefficient  to  participate   in   the
  evaluation.   The  degree  argument  is the address of a signed word
  integer that contains this highest-numbered coefficient.

  coefficient

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference, array reference

  Floating-point  coefficients.   The  coefficient  argument  is   the
  address of an array of floating-point coefficients.  The coefficient
  of the highest-order term of the polynomial is the  lowest-addressed
  element  in  the  array.   The  coefficient  argument is an array of
  H_floating numbers.

  floating-point-result

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Result of the calculation.  The  floating-point-result  argument  is
  the  address  of  a floating-point number that contains this result.
  LIB$POLYH  writes  the  address  of  floating-point-result  into  an
  H_floating number.

LIB$PUT_COMMON

  The Put String to Common routine copies the  contents  of  a  string
  into  the  common area.  The common area is an area of storage which
  remains defined across multiple  image  activations  in  a  process.
  Optionally,  LIB$PUT_COMMON  returns the actual number of characters
  copied.  The maximum number of characters that can be copied is 252.

     Format:

       LIB$PUT_COMMON  source-string [,resultant-length]

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string to be copied to the  common  area  by  LIB$PUT_COMMON.
  The  source-string  argument is the address of a descriptor pointing
  to this source string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of characters copied by LIB$PUT_COMMON to  the  common  area.
  The  resultant-length  argument  is  the address of an unsigned word
  integer that contains this  number  of  characters.   LIB$PUT_COMMON
  writes this number into the resultant-length argument.

LIB$PUT_OUTPUT

  The Put Line to SYS$OUTPUT routine writes a record  to  the  current
  controlling output device, specified by SYS$OUTPUT using the VAX RMS
  $PUT service.

     Format:

       LIB$PUT_OUTPUT  message-string

     ARGUMENT

  message-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Message string written to the current controlling output  device  by
  LIB$PUT_OUTPUT.   The  message-string  argument  is the address of a
  descriptor pointing to this message string.   VAX  RMS  handles  all
  formatting,  so  the  message  does  not  need to include such ASCII
  formatting instructions as carriage return (CR).

LIB$RADIX_POINT

  The Radix Point Symbol routine  returns  the  system's  radix  point
  symbol.   This  symbol is used inside a digit string to separate the
  integer  part  from  the  fraction  part.   This  routine  works  by
  attempting  to  translate  the  logical  name  SYS$RADIX_POINT  as a
  process, group, or system logical name.

     Format:

       LIB$RADIX_POINT  radix-point-string [,resultant-length]

     Arguments:

  radix-point-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Radix point string.  The radix-point-string argument is the  address
  of a descriptor pointing to this radix point string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  The  number  of  characters  written  into  radix-point-string,  not
  counting  padding  in  the  case  of  a  fixed-length  string.   The
  resultant-length argument is the address of an  unsigned  word  that
  contains this number.

LIB$REMQHI

  The Remove Entry from Head of Queue routine removes  an  entry  from
  the   head   of   the  specified  self-relative  interlocked  queue.
  LIB$REMQHI makes the VAX REMQHI instruction available as a  callable
  procedure.

     Format:

       LIB$REMQHI  header ,remque-address [,retry-count]

     Arguments:

  header

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: modify
  mechanism: by reference

  Queue header specifying the queue from which entry will be  removed.
  The  header  argument  contains  the  address of this signed aligned
  quadword integer.  Header must be initialized to zero  before  first
  use of the queue; zero means an empty queue.

  remque-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address of the removed entry.  The remque-address  argument  is  the
  address  of an unsigned longword that contains this address.  If the
  queue was empty, remque-address is set to the address of the header.

  retry-count

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The number of times the operation  is  to  be  retried  in  case  of
  secondary-interlock   failure   of   the   queue  instruction  in  a
  processor-shared memory application.  The  retry-count  argument  is
  the  address  of  a longword that contains the retry count value.  A
  value of 1 causes no retries.  The default value is 10.

LIB$REMQTI

  The Remove Entry from Tail of Queue routine removes  an  entry  from
  the   tail   of   the  specified  self-relative  interlocked  queue.
  LIB$REMQTI makes the VAX REMQTI instruction available as a  callable
  procedure.

     Format:

       LIB$REMQTI  header ,remque-address [,retry-count]

     Arguments:

  header

  VMS usage: quadword_signed
  type: quadword integer (signed)
  access: modify
  mechanism: by reference

  Queue header specifying the queue from which  the  entry  is  to  be
  deleted.   The  header  argument contains the address of this signed
  aligned quadword integer.  Header must be initialized to zero before
  first use of the queue; zero means an empty queue.

  remque-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address of the removed entry.  The remque-address  argument  is  the
  address  of a longword that contains this address.  If the queue was
  empty, remque-address is set to the address of the header.

  retry-count

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The number of times the operation  is  to  be  retried  in  case  of
  secondary-interlock   failure   of   the   queue  instruction  in  a
  processor-shared memory application.  The  retry-count  argument  is
  the  address  of a longword that is this retry count value.  A value
  of 1 causes no retries.  The default value is 10.

LIB$RENAME_FILE

  The Rename One or More Files routine changes the name(s) of  one  or
  more  files.   The  specification  of  the file(s) to be renamed may
  include wildcards.

  LIB$RENAME_FILE is similar in function to the DCL command RENAME.

     Format:

       LIB$RENAME_FILE  old-filespec ,new-filespec [,default-filespec]
                  [,related-filespec] [,flags] [,user-success-routine]
                  [,user-error-routine] [,user-confirm-routine]
                  [,user-specified-argument] [,old-resultant-name]
                  [,new-resultant-name] [,file-scan-context]

     Arguments:

  old-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File specification of the file(s) to be renamed.   The  old-filespec
  argument  is  the  address  of a descriptor pointing to the old file
  specification.  The specification may include  wildcards,  in  which
  case each file which matches the specification will be renamed.  The
  string must not contain more than 255 characters.  Any string  class
  is supported.

  new-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File specification for  the  new  file  name(s).   The  new-filespec
  argument  is  the  address  of a descriptor pointing to the new file
  specification.

  default-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Default file specification  of  the  file(s)  to  be  renamed.   The
  default-filespec argument is the address of a descriptor pointing to
  the default file specification.

  related-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Related file specification  of  the  file(s)  to  be  renamed.   The
  related-filespec argument is the address of a descriptor pointing to
  the related file specification.  This is an  optional  argument;  if
  omitted,  the  default  is  the  null  string.   Any string class is
  supported.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Longword of flag bits  designating  optional  behavior.   The  flags
  argument  is the address of an unsigned longword containing the flag
  bits.  This is an optional argument; if omitted, the default is that
  all flags are clear.

  user-success-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied success routine that LIB$RENAME_FILE calls after  each
  successful rename.  The user-success-routine argument is the address
  of the entry mask to the success routine.

  user-error-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied error  routine  that  LIB$RENAME_FILE  calls  when  it
  detects an error.  The user-error-routine argument is the address of
  the entry mask to the error routine.   The  value  returned  by  the
  error  routine  determines  whether  LIB$RENAME_FILE  processes more
  files.

  user-confirm-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied confirm routine that LIB$RENAME_FILE calls  before  it
  renames a file.  The user-confirm-routine argument is the address of
  the entry mask to the confirm routine.  The value  returned  by  the
  confirm  routine  determines  whether or not LIB$RENAME_FILE renames
  the file.

  user-specified-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  Value that LIB$RENAME_FILE passes to the success, error and  confirm
  routines  each  time they are called.  Whatever mechanism is used to
  pass user-specified-argument to LIB$RENAME_FILE is also used to pass
  it  to the user-supplied routines.  This is an optional argument; if
  omitted, zero is passed by value.

  old-resultant-name

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which LIB$RENAME_FILE  copies  the  old  resultant  file
  specification  of  the  last  file  processed.   This is an optional
  argument.  If present, it is used to store  the  file  specification
  passed  to  the user-supplied routines instead of a default class S,
  type T string.  Any string class is supported.

  new-resultant-name

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which LIB$RENAME_FILE writes the new RMS resultant  file
  specification  of  the  last file processed.  The new-resultant-name
  argument is the address of a descriptor pointing to  the  new  name.
  This  is  an optional argument.  If present, it is used to store the
  file specification passed to the user-supplied routines instead of a
  class S, type T string.  Any string class is supported.

  file-scan-context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context for renaming a list of filespecs.  The file-scan-context  is
  the  address  of  a  longword which contains this context.  You must
  initialize this longword to zero before the first  of  a  series  of
  calls  to  LIB$RENAME_FILE.   LIB$RENAME_FILE  uses  the  file  scan
  context to retain the file context for multiple input files.

LIB$RESERVE_EF

  The Reserve Event Flag routine allocates a local event  flag  number
  specified by event-flag-number.

     Format:

       LIB$RESERVE_EF  event-flag-number

     argument

  event-flag-number

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Event  flag  number  to  be  allocated   by   LIB$RESERVE_EF.    The
  event-flag-number argument contains the address of a signed longword
  integer that is this event flag number.

LIB$RESET_VM_ZONE

  The Reset Virtual Memory Zone routine frees  all  blocks  of  memory
  that were previously allocated from the zone.

     Format:

       LIB$RESET_VM_ZONE  zone-id

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Zone identifier.  The zone-id is the  address  of  a  longword  that
  contains  the  identifier  of  a  zone created by a previous call to
  LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ZONE.

LIB$REVERT

  The Revert to the Handler of the Procedure Activator routine deletes
  the  condition  handler established by LIB$ESTABLISH by clearing the
  address  pointing  to  the  condition  handler  from  the  activated
  procedure's stack frame.

     Format:

       LIB$REVERT

     NONE

LIB$RUN_PROGRAM

  The Run New Program routine  causes  the  current  program  to  stop
  running and begins execution of another program.

     Format:

       LIB$RUN_PROGRAM  program-name

     Argument

  program-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File name of the program to be run in place of the current  program.
  The  program-name  argument  contains  the  address  of a descriptor
  pointing to this file name string.

LIB$SCANC

  The Scan for Characters and Return Relative Position routine is used
  to  find  a  specified  set  of  characters  in  the  source string.
  LIB$SCANC makes the VAX SCANC instruction available  as  a  callable
  procedure.

     Format:

       LIB$SCANC  source-string ,table-array ,byte-integer-mask

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string  used  by  LIB$SCANC  to  index  into  a  table.   The
  source-string argument contains the address of a descriptor pointing
  to this source string.

  table-array

  VMS usage: vector_mask_byte
  type: byte (unsigned)
  access: read only
  mechanism: by reference, array reference

  Table   that   LIB$SCANC   indexes   into   and   ANDs   with    the
  byte-integer-mask  byte.   The  table-array  argument  contains  the
  address of an unsigned byte array that is this table.

  byte-integer-mask

  VMS usage: mask_byte
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Mask that is ANDed with bytes in table-array.  The byte-integer-mask
  argument contains the address of an unsigned byte that is this mask.

LIB$SCOPY_DXDX

  The Copy Source String Passed by Descriptor to  Destination  routine
  copies a source string passed by descriptor to a destination string.

     Format:

       LIB$SCOPY_DXDX  source-string ,destination-string

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source  string  to  be  copied  to   the   destination   string   by
  LIB$SCOPY_DXDX.   The source-string argument contains the address of
  a descriptor pointing to this source string.  The  descriptor  class
  can   be   unspecified,   fixed-length,   decimal   string,   array,
  noncontiguous array, varying, or dynamic.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string to  which  the  source  string  is  copied.   The
  destination-string  argument  contains  the  address of a descriptor
  pointing to this destination string.

LIB$SCOPY_R_DX

  The Copy Source String Passed by  Reference  to  Destination  String
  routine  copies a source string passed by reference to a destination
  string.

     Format:

       LIB$SCOPY_R_DX  word-integer-source-length
                  ,source-string-address ,destination-string

     Arguments:

  word-integer-source-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Length  of  the  source  string.    The   word-integer-source-length
  argument  contains  the  address  of  an  unsigned word that is this
  length.

  source-string-address

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by reference

  Source  string  to  be  copied  to   the   destination   string   by
  LIB$SCOPY_R_DX.   The  source-string-address argument is the address
  of this source string.

  destination-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Destination string to  which  the  source  string  is  copied.   The
  destination-string  argument  contains  the  address of a descriptor
  pointing to this destination string.

LIB$SET_LOGICAL

  The Set Logical Name routine requests the calling process's  Command
  Language  Interpreter  (CLI) to define or redefine a supervisor-mode
  process logical name.  It provides the  same  function  as  the  DCL
  DEFINE command.

     Format:

       LIB$SET_LOGICAL  logical-name [,value-string] [,table]
                  [,attributes] [,item-list]

                  Either the item-list or value-string argument must be
                  specified.  If  both  item-list and value-string  are
                  specified, the value-string argument is ignored.

     Arguments:

  logical-name

  VMS usage: logical_name
  type: character string
  access: read only
  mechanism: by descriptor

  Logical name to be defined or redefined.  The logical-name  argument
  contains  the  address of a descriptor pointing to this logical name
  string.  The maximum length of a logical name is 255 characters.

  value-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Value to be given to the logical name.   The  value-string  argument
  contains  the address of a descriptor pointing to this value string.
  The maximum length of a logical name value is 255 characters.

  table

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the table in which to create the logical  name.   The  table
  argument  contains  the  address  of  a  descriptor  pointing to the
  logical name table.  If no table is specified, LNM$PROCESS  is  used
  as the default.

  attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Logical name or translation attributes.  The attributes argument  is
  the address of a longword bit mask that contains the logical name or
  translation attributes.

  item-list

  VMS usage: item_list_2
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Item list describing the equivalence names for  this  logical  name.
  The  item-list  argument  contains  the  address  of  an  array that
  contains this item list.  If item-list is not specified, the logical
  name  will  have  only  one  value, as specified in the value-string
  argument.

LIB$SET_SYMBOL

  The Set Value of CLI Symbol routine requests the  calling  process's
  Command  Language  Interpreter  (CLI)  to  define  or redefine a CLI
  symbol.

     Format:

       LIB$SET_SYMBOL  symbol ,value-string [,table-type-indicator]

     Arguments:

  symbol

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the symbol to be defined or modified by LIB$SET_SYMBOL.  The
  symbol  argument  is  the  address  of a descriptor pointing to this
  symbol string.  If you redefine a previously defined CLI symbol, the
  symbol value is modified to the new value that you provide.

  value-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Value to be given to the symbol.  The value-string argument  is  the
  address of a descriptor pointing to this value string.

  table-type-indicator

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Indicator of the table which will contain the defined  symbol.   The
  table-type-indicator  argument  is  the address of a signed longword
  integer that is this table indicator.

LIB$SFREE1_DD

  The Free One Dynamic String routine returns one dynamic string  area
  to free storage.

     Format:

       LIB$SFREE1_DD  descriptor-address

     ARGUMENT

  descriptor-address

  VMS usage: quadword_unsigned
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  Dynamic descriptor specifying  the  area  to  be  deallocated.   The
  descriptor-address  argument  is the address of an unsigned quadword
  that is this descriptor.  The descriptor is assumed  to  be  dynamic
  and its class field is not checked.

LIB$SFREEN_DD

  The Free One or More Dynamic Strings routine  returns  one  or  more
  dynamic strings to free storage.

     Format:

       LIB$SFREEN_DD  number-of-descriptors ,first-descriptor-array

     Arguments:

  number-of-descriptors

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Number of adjacent descriptors to  be  flagged  by  LIB$FREEN_DD  as
  having  no  allocated area (DSC$A_POINTER = 0 and DSC$W_LENGTH = 0).
  The  number-of-descriptors  argument  contains  the  address  of  an
  unsigned  longword  that  is  this  number.  The deallocated area is
  returned to free storage.

  first-descriptor-array

  VMS usage: vector_quadword_unsigned
  type: quadword (unsigned)
  access: modify
  mechanism: by reference, array reference

  First   descriptor   of    an    array    of    descriptors.     The
  first-descriptor-array  argument contains the address of an unsigned
  quadword that is this first descriptor.  The descriptors are assumed
  to be dynamic, and their class fields are not checked.

LIB$SGET1_DD

  The Get One Dynamic String routine allocates dynamic virtual  memory
  to the string descriptor you specify.

     Format:

       LIB$SGET1_DD  word-integer-length ,descriptor-part

     Arguments:

  word-integer-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Number of bytes  of  dynamic  virtual  memory  to  be  allocated  by
  LIB$SGET1_DD.  The word-integer-length argument is the address of an
  unsigned word that contains this  number.   The  amount  of  storage
  allocated  may  be rounded up automatically.  If the number of bytes
  is zero, a small amount of space is allocated.

  descriptor-part

  VMS usage: quadword_unsigned
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  Descriptor of the dynamic string to which LIB$SGET1_DD will allocate
  the  dynamic  virtual memory.  The descriptor-part argument contains
  the address of an unsigned quadword that is this descriptor.

LIB$SHOW_TIMER

  The Show Accumulated Times and  Counts  routine  returns  times  and
  counts  accumulated  since  the  last  call  to  LIB$INIT_TIMER  and
  displays them on SYS$OUTPUT.  A  user-supplied  action  routine  may
  change this default behavior.

     Format:

       LIB$SHOW_TIMER  [handle-address] [,code] [,user-action-routine]
                  [,user-argument-value]

     Arguments:

  handle-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Block of storage containing the value returned by a previous call to
  LIB$INIT_TIMER.   The  handle-address  argument is the address of an
  unsigned longword integer containing that value.

  o  If specified, the pointer must be the same value  returned  by  a
     previous call to LIB$INIT_TIMER.

  o  If omitted, LIB$SHOW_TIMER will use a block of  memory  allocated
     by LIB$INIT_TIMER.

  o  If handle-address is omitted  and  LIB$INIT_TIMER  has  not  been
     called   previously,   the   error   LIB$_INVARG   is   returned.
     LIB$INIT_TIMER must be called prior to a call to LIB$SHOW_TIMER.

  code

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Integer specifying the statistic you want; if it is omitted or zero,
  all  five statistics are returned on one line.  The code argument is
  the address of a signed longword integer  containing  the  statistic
  code.

  user-action-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied  action  routine  called   by   LIB$SHOW_TIMER.    The
  user-action-routine  argument  is  the  address of the entry mask to
  this routine.  The default action of LIB$SHOW_TIMER is to write  the
  results  to  SYS$OUTPUT.  An action routine is useful if you want to
  write the results to a file, or  in  general,  anywhere  other  than
  SYS$OUTPUT.

  user-argument-value

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: by value

  A  32-bit  value  to  be  passed  to  the  action  routine   without
  interpretation.   If  omitted, LIB$SHOW_TIMER passes a zero by value
  to the user routine.

LIB$SHOW_VM

  The Show Virtual Memory Statistics routine  returns  the  statistics
  accumulated     from    calls    to    LIB$GET_VM/LIB$FREE_VM    and
  LIB$GET_VM_PAGE/LIB$FREE_VM_PAGE.

     Format:

       LIB$SHOW_VM  [code] [,user-action-routine]
                  [,user-specified-argument]

     Arguments:

  code

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Code  specifying  any  one  of  the  statistics  to  be  written  to
  SYS$OUTPUT  or passed to an action routine for processing.  The code
  argument is the address of a signed longword integer containing  the
  statistic  code.   This  is  an optional argument.  If the statistic
  code is omitted or is zero, statistics for values 1, 2,  and  3  are
  returned on one line.

  user-action-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied action routine called  by  LIB$SHOW_VM.   By  default,
  LIB$SHOW_VM  returns statistics to SYS$OUTPUT.  An action routine is
  useful when you want to return statistics to a file or, in  general,
  to anyplace other than SYS$OUTPUT.  The user-action-routine argument
  is the address of the entry mask to the action routine.  The routine
  returns  either  a success or failure condition value, which will be
  returned as the value of LIB$SHOW_VM.

  user-specified-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  A 32-bit value to be passed directly to the action  routine  without
  interpretation.   That  is,  the contents of the argument list entry
  user-specified-argument are copied to the argument  list  entry  for
  user-action-routine.

LIB$SHOW_VM_ZONE

  The Return  Information  About  a  Zone  routine  returns  formatted
  information  about the specified zone, detailing such information as
  the zone's name, characteristics, and areas,  and  then  passes  the
  information to the specified or default action routine.

     Format:

       LIB$SHOW_VM_ZONE  zone-id [,detail-level] [,user-action-routine]
                  [,user-arg]

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Zone identifier.  The zone-id argument is the address of an unsigned
  longword  containing  this  identifier.   Use  zero  to indicate the
  default zone.

  detail-level

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  An identifier code specifying the level of detail  required  by  the
  user.  The detail-level argument is the address of a signed longword
  containing this code.  The  default  is  minimal  information.   The
  following are valid values for detail-level:

       0       zone-id and name

       1       zone-id, name, algorithm, flags and size information

       2       zone-id,  name,  algorithm,  flags,  size  information,
                 cache information and area summary

       3       zone-id,  name,  algorithm,  flags,  size  information,
                 cache information, area summary and queue validation

  user-action-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  Optional user-supplied action routine  called  by  LIB$SHOW_VM_ZONE.
  The user-action-routine argument is the address of the entry mask of
  the action routine.  By default, LIB$SHOW_VM_ZONE prints  statistics
  to  SYS$OUTPUT via LIB$PUT_OUTPUT.  An action routine is useful when
  you want to return statistics to a  file  or,  in  general,  to  any
  location  other  than  SYS$OUTPUT.   If  user-action-routine  fails,
  LIB$SHOW_VM_ZONE terminates and returns  a  failure  code.   Success
  codes are ignored.

  user-arg

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Optional 32-bit value to be passed directly to  the  action  routine
  without  interpretation.  That is, the contents of the argument list
  entry  user-arg  are  copied  to  the  argument   list   entry   for
  user-action-routine.

LIB$SIGNAL

  The Signal Exception  Condition  routine  generates  a  signal  that
  indicates  that an exception condition has occurred in your program.
  If a condition handler does  not  take  corrective  action  and  the
  condition is severe, then your program will exit.

     Format:

       LIB$SIGNAL  condition-value1 [,number-of-arguments1]
                  [,FAO-argument1...] [,condition-value2]
                  [,number-of-arguments2] [,FAO-argument2...]

                  Only the  condition-value1 argument must be specified;
                  other arguments are optional. The number-of-arguments1
                  argument,  if  specified,  contains  the number of FAO
                  arguments    that    will    be    associated     with
                  condition-value1.   The  condition-value2  argument is
                  optional;  it  may  be  specified  with or without the
                  number-of-arguments2  or  FAO-argument2 arguments. The
                  number-of-arguments2 argument,  if specified, contains
                  the  number of FAO arguments  that  will be associated
                  with     condition-value2.       You    may    specify
                  condition-value3,  condition-value4, condition-value5,
                  and    so   on,    along   with   their  corresponding
                  number-of-arguments and FAO arguments.

     Arguments:

  condition-value1

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  VAX 32-bit condition value.  The  condition-value1  argument  is  an
  unsigned longword that contains this condition value.

  number-of-arguments1

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of FAO arguments associated with the  condition  value.   The
  optional  number-of-arguments1 argument is a signed longword integer
  that contains this number.  If omitted or specified as zero, no  FAO
  arguments follow.

  FAO-argument1

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by value

  Optional FAO (formatted ASCII output) argument  that  is  associated
  with the specified condition value.

  condition-value2

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  VAX 32-bit condition value.  The optional condition-value2  argument
  is an unsigned longword that contains this condition value.

  number-of-arguments2

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of FAO arguments associated with the  condition  value.   The
  optional  number-of-arguments2 argument is a signed longword integer
  that contains this number.  If omitted or specified as zero, no  FAO
  arguments follow.

  FAO-argument2

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by value

  Optional FAO (formatted ASCII output) argument  that  is  associated
  with the specified condition value.

LIB$SIG_TO_RET

  The Signal  Converted  to  a  Return  Status  routine  converts  any
  signaled  condition  value  to  a value returned as a function.  The
  signaled condition is returned to the caller of the  user  procedure
  that  established  the handler that is calling LIB$SIG_TO_RET.  This
  routine may be established as or called from a condition handler.

     Format:

       LIB$SIG_TO_RET  signal-arguments ,mechanism-arguments

     Arguments:

  signal-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Signal argument vector.  The signal-arguments argument contains  the
  address of an array that is this signal argument vector stack.

  mechanism-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Mechanism  arguments  vector.   The   mechanism-arguments   argument
  contains  the  address  of an array that is this mechanism arguments
  vector stack.

LIB$SIG_TO_STOP

  The Convert a Signaled Condition to a Signaled Stop routine converts
  a  signaled  condition  to  a  signaled  condition  that  cannot  be
  continued.

     Format:

       LIB$SIG_TO_STOP  signal-arguments ,mechanism-arguments

     Arguments:

  signal-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: modify
  mechanism: by reference, array reference

  Signal argument vector.  The signal-arguments argument contains  the
  address  of  an  array  of  unsigned  longwords  that is this signal
  argument vector stack.

  mechanism-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Mechanism  argument  vector.    The   mechanism-arguments   argument
  contains the address of an array of longwords that is this mechanism
  argument vector stack.

LIB$SIM_TRAP

  The Simulate Floating  Trap  routine  converts  floating  faults  to
  floating  traps.  It can be enabled as a condition handler or can be
  called by one.

     Format:

       LIB$SIM_TRAP  signal-arguments ,mechanism-arguments

     Arguments:

  signal-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: modify
  mechanism: by reference, array reference

  Signal argument vector.  The signal-arguments argument contains  the
  address of an array that is this signal argument vector stack.

  mechanism-arguments

  VMS usage: vector_longword_unsigned
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Mechanism  argument  vector.    The   mechanism-arguments   argument
  contains  the  address  of  an array that is this mechanism argument
  vector stack.

LIB$SKPC

  The Skip Equal Characters routine compares each character of a given
  string  with  a given character and returns the relative position of
  the first nonequal character as an index.  LIB$SKPC  makes  the  VAX
  SKPC instruction available as a callable procedure.

     Format:

       LIB$SKPC  character-string ,source-string

     Arguments:

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String whose initial character is to be  used  by  LIB$SKPC  in  the
  comparison.  The character-string argument contains the address of a
  descriptor pointing to this string.  Only  the  first  character  of
  character-string  is used, and the length of character-string is not
  checked.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String to be  searched  by  LIB$SKPC.   The  source-string  argument
  contains the address of a descriptor pointing to this string.

LIB$SPANC

  The Skip Selected Characters routine is used to skip a specified set
  of  characters  in the source string.  LIB$SPANC makes the VAX SPANC
  instruction available as a callable procedure.

     Format:

       LIB$SPANC  source-string ,table-array ,byte-integer-mask

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string used by LIB$SPANC  to  index  into  table-array.   The
  source-string argument contains the address of a descriptor pointing
  to this source string.

  table-array

  VMS usage: vector_mask_byte
  type: byte (unsigned)
  access: read only
  mechanism: by reference, array reference

  Table   that   LIB$SPANC   indexes   into   and   ANDs   with    the
  byte-integer-mask  byte.   The  table-array  argument  contains  the
  address of an unsigned byte array that is this table.

  byte-integer-mask

  VMS usage: mask_byte
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Mask that is ANDed with bytes in table-array.  The byte-integer-mask
  argument contains the address of an unsigned byte that is this mask.

LIB$SPAWN

  The  Spawn  Subprocess  routine  requests   the   command   language
  interpreter  (CLI)  of the calling process to spawn a subprocess for
  executing CLI commands.  LIB$SPAWN provides the same function as the
  DCL SPAWN command.

     Format:

       LIB$SPAWN  [command-string] [,input-file] [,output-file] [,flags]
                  [,process-name] [,process-id] [,completion-status]
                  [,byte-integer-event-flag-num] [,AST-address]
                  [,varying-AST-argument] [,prompt-string] [,cli]

     Arguments:

  command-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  CLI  command  to  be  executed  by  the  spawned  subprocess.    The
  command-string  argument  is the address of a descriptor pointing to
  this CLI command string.  If omitted, commands are  taken  from  the
  file specified by input-file.

  input-file

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Equivalence name to be associated with the logical name SYS$INPUT in
  the  logical name table for the subprocess.  The input-file argument
  is the address of a descriptor pointing to this equivalence  string.
  If omitted, the default is the caller's SYS$INPUT.

  output-file

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Equivalence name to be associated with the logical names  SYS$OUTPUT
  and  SYS$ERROR  in  the  logical name table for the subprocess.  The
  output-file argument is the address of a descriptor pointing to this
  equivalence  string.   If  omitted,  the  default  is  the  caller's
  SYS$OUTPUT.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Flag bits that designate optional behavior.  The flags  argument  is
  the  address  of an unsigned longword that contains these flag bits.
  By default, all flags are clear.

  process-name

  VMS usage: process_name
  type: character string
  access: read only
  mechanism: by descriptor

  Name defined for the subprocess.  The process-name argument  is  the
  address of a descriptor pointing to this name string.  If omitted, a
  unique process name will be generated.  If you supply a name and  it
  is   not   unique,   LIB$SPAWN   will  return  the  condition  value
  SS$_DUPLNAM.

  process-id

  VMS usage: process_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Process identification of the spawned  subprocess.   The  process-id
  argument  is  the address of an unsigned longword that contains this
  process identification value.

  completion-status

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The   final   completion   status   of    the    subprocess.     The
  completion-status  argument  is the address of an unsigned longword.
  LIB$SPAWN writes the address of the final completion status  of  the
  subprocess into completion-status.

  byte-integer-event-flag-num

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  The number of a  local  event  flag  to  be  set  when  the  spawned
  subprocess  completes.   The byte-integer-event-flag-num argument is
  the address of an  unsigned  byte  that  contains  this  event  flag
  number.  If omitted, no event flag is set.

  AST-address

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by reference

  Entry mask of a procedure to be called by means of an AST  when  the
  subprocess  completes.   The  AST-address argument is the address of
  this procedure entry mask.

  varying-AST-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  A  value  to  be  passed  to  the  AST  procedure.   Typically,  the
  varying-AST-argument  argument  is the address of a block of storage
  the AST procedure will use.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Prompt string to use in the subprocess.  The prompt-string  argument
  is  the  address of a descriptor pointing to this prompt string.  If
  omitted, the subprocess will use the same  prompt  string  that  the
  parent process uses.

  cli

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File specification for the command language interpreter (CLI) to  be
  run in the subprocess.  The cli argument is the address of this file
  specification string's descriptor.  The CLI specified must reside in
  SYS$SYSTEM  with  a  file type of EXE, and it must be installed.  No
  directory or file type may be specified.

LIB$STAT_TIMER

  The Statistics, Return Accumulated Times and Counts routine  returns
  to its caller one of five available statistics accumulated since the
  last call to LIB$INIT_TIMER.  Unlike LIB$SHOW_TIMER,  which  formats
  the  values  for  output,  LIB$STAT_TIMER  returns  the  value as an
  unsigned longword or quadword.

     Format:

       LIB$STAT_TIMER  code ,value-argument [,handle-address]

     Arguments:

  code

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Code which  specifies  the  statistic  to  be  returned.   The  code
  argument  contains  the address of a signed longword integer that is
  this code.  It must be an integer from 1 to 5.

  value-argument

  VMS usage: user_arg
  type: unspecified
  access: write only
  mechanism: by reference

  The  statistic  returned  by  LIB$STAT_TIMER.   The   value-argument
  argument contains the address of a longword or quadword that is this
  statistic.  All statistics  are  longword  integers  except  elapsed
  time, which is a quadword.

  handle-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Pointer to a block of storage.  The optional handle-address argument
  contains the address of an unsigned longword that is this pointer.

LIB$STAT_VM

  The Return Virtual Memory Statistics routine returns to  its  caller
  one of six statistics available from calls to LIB$GET_VM/LIB$FREE_VM
  and  LIB$GET_VM_PAGE/LIB$FREE_VM_PAGE.   Unlike  LIB$SHOW_VM,  which
  formats  the  values  for  output  and  displays them on SYS$OUTPUT,
  LIB$STAT_VM returns the statistic in  the  value-argument  argument.
  Only one of the statistics is returned by each call to LIB$STAT_VM.

     Format:

       LIB$STAT_VM  code ,value-argument

     Arguments:

  code

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Code specifying  which  statistic  is  to  be  returned.   The  code
  argument  contains  the address of a signed longword integer that is
  this code.

       Code    Statistic

       1       Number of successful calls to LIB$GET_VM

       2       Number of successful calls to LIB$FREE_VM

       3       Number of bytes allocated by  LIB$GET_VM  but  not  yet
                 deallocated by LIB$FREE_VM

       5       Number of calls to LIB$GET_VM_PAGE

       6       Number of calls to LIB$FREE_VM_PAGE

       7       Number of pages allocated by  LIB$GET_VM_PAGE  but  not
                 yet deallocated by LIB$FREE_VM_PAGE

  value-argument

  VMS usage: user_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Value of the statistic returned by LIB$STAT_VM.  The  value-argument
  argument  contains  the address of a signed longword integer that is
  this value.

LIB$STOP

  The Stop Execution and Signal  the  Condition  routine  generates  a
  signal  that  indicates  that an exception condition has occurred in
  your program.  Exception conditions signaled by LIB$STOP  cannot  be
  continued from the point of the signal.

     Format:

       LIB$STOP  condition-value1 [,number-of-arguments1]
                  [,FAO-argument1...] [,condition-value2]
                  [,number-of-arguments2] [,FAO-argument2...]

                  Only the  condition-value1 argument must be specified;
                  other arguments are optional. The number-of-arguments1
                  argument,   if  specified,  contains the number of FAO
                  arguments     that    will    be    associated    with
                  condition-value1.  The   condition-value2  argument is
                  optional;   it  may  be specified  with or without the
                  number-of-arguments2  or  FAO-argument2 arguments. The
                  number-of-arguments2 argument,  if specified, contains
                  the  number of  FAO arguments  that will be associated
                  with     condition-value2.       You    may    specify
                  condition-value3,  condition-value4, condition-value5,
                  and  so  on,     along    with    their  corresponding
                  number-of-arguments and FAO arguments.

     Arguments:

  condition-value1

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  VAX 32-bit condition value.  The  condition-value1  argument  is  an
  unsigned longword that contains this condition value.

  number-of-arguments1

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of FAO arguments associated with the  condition  value.   The
  optional  number-of-arguments1 argument is a signed longword integer
  that contains this number.  If omitted or specified as zero, no  FAO
  arguments follow.

  FAO-argument1

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  Optional FAO (formatted ASCII output) argument  that  is  associated
  with the specified condition value.

  condition-value2

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  VAX 32-bit condition value.  The optional condition-value2  argument
  is an unsigned longword that contains this condition value.

  number-of-arguments2

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Optional FAO argument associated  with  the  condition  value.   The
  number-of-arguments2  argument  is  a  signed  longword integer that
  contains this number.  If omitted  or  specified  as  zero,  no  FAO
  arguments follow.

  FAO-argument2

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  FAO (formatted ASCII output) argument that is  associated  with  the
  specified condition value.

LIB$SUB_TIMES

  The Subtract Two Quadword Times routine subtracts two  VMS  internal
  time format times.

     Format:

       LIB$SUB_TIMES  time1 ,time2 ,resultant-time

     Arguments:

  time1

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  First time, from which LIB$SUB_TIMES subtracts the second time.  The
  time1  argument  is  the  address of an unsigned quadword containing
  this number.  Time1 must represent a later time  or  a  longer  time
  interval  than  time2.   Time1  may be either absolute time or delta
  time as long as time2 is of the same type.  If time1 and  time2  are
  of different types, time1 must be the absolute time.

  time2

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Second time, which LIB$SUB_TIMES subtracts from the first time.  The
  time2  argument  is  the  address of an unsigned quadword containing
  this number.  Time2 must represent an earlier time or a shorter time
  interval  than  time1.   Time2  may be either absolute time or delta
  time as long as time1 is of the same type.  If time2 and  time1  are
  of different types, time2 must be the delta time.

  resultant-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The result of subtracting  time2  from  time1.   The  resultant-time
  argument  is  the  address  of  an  unsigned quadword containing the
  result.   If  both  time1  and   time2   are   delta   times,   then
  resultant-time  is  a  delta  time.   If  both  time1  and time2 are
  absolute times, then resultant-time is a delta time.  If time1 is an
  absolute  time  and time2 is a delta time, then resultant-time is an
  absolute time.

LIB$SUBX

  The   Multiple-Precision   Binary   Subtraction   routine   performs
  subtraction on signed two's complement integers of arbitrary length.

     Format:

       LIB$SUBX  minuend-array ,subtrahend-array ,difference-array
                  [,array-length]

     Arguments:

  minuend-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Minuend; a multiple-precision, signed two's complement integer.  The
  minuend-array argument is the address of an array of signed longword
  integers that contains the minuend.

  subtrahend-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: read only
  mechanism: by reference, array reference

  Subtrahend; a multiple-precision, signed two's  complement  integer.
  The  subtrahend-array  argument is the address of an array of signed
  longword integers that contains the subtrahend.

  difference-array

  VMS usage: vector_longword_signed
  type: unspecified
  access: write only
  mechanism: by reference, array reference

  Difference; a multiple-precision, signed  two's  complement  integer
  result.  The difference-array argument is the address of an array of
  signed longword integers that contains the difference.

  array-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Length in longwords of the arrays to be  operated  on  by  LIB$SUBX.
  The  array-length argument contains the address of a signed longword
  integer that is this length.  Array-length  must  not  be  negative.
  The default length is 2.

LIB$SYS_ASCTIM

  The Invoke $ASCTIM to Convert Binary Time to  ASCII  String  routine
  calls  the  system service $ASCTIM to convert a binary date and time
  value, returning  the  ASCII  string  using  the  semantics  of  the
  caller's string.

     Format:

       LIB$SYS_ASCTIM  [resultant-length] ,time-string  [,user-time]
                  [,flags]

     Arguments:

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes written into time-string, not  counting  padding  in
  the  case  of  a fixed-length string.  The resultant-length argument
  contains the address of  an  unsigned  word  integer  that  is  this
  number.

  time-string

  VMS usage: time_name
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which LIB$SYS_ASCTIM writes the  ASCII  time
  string.    The  time-string  argument  contains  the  address  of  a
  descriptor pointing to the destination string.

  user-time

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Value that  LIB$SYS_ASCTIM  converts  to  ASCII  string  form.   The
  user-time argument contains the address of a signed quadword integer
  that is this value.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Conversion  indicator  specifying  which  date   and   time   fields
  LIB$SYS_ASCTIM  should return.  The flags argument is the address of
  an unsigned bit mask that contains this conversion indicator.

LIB$SYS_FAO

  The Invoke $FAO System Service to Format Output routine calls  $FAO,
  returning  a  string  in  the semantics you provide.  If called with
  other than a fixed-length string  for  output,  the  length  of  the
  resultant string is limited to 256 bytes and truncation will occur.

     Format:

       LIB$SYS_FAO  character-string [,resultant-length]
                  ,resultant-string [,directive-argument ,...]

     Arguments:

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  ASCII control string, consisting of the fixed  text  of  the  output
  string  and  FAO directives.  The character-string argument contains
  the address of a descriptor pointing to this control string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the output string.  The resultant-length argument contains
  the address of an unsigned word integer that is this length.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Fully  formatted  output  string  returned  by   LIB$SYS_FAO.    The
  resultant-string  argument  contains  the  address  of  a descriptor
  pointing to this output string.

  directive-argument(s)

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: unspecified

  Directive argument(s) contained  in  longwords.   Depending  on  the
  directive,  a  directive-argument  argument  can  be  a  value to be
  converted, the address of the string to be inserted, or a length  or
  argument  count.   The passing mechanism for each of these arguments
  should be the one expected by the $FAO system service.

LIB$SYS_FAOL

  The Invoke $FAOL System Service to Format Output routine  calls  the
  system  service routine $FAOL, returning the string in the semantics
  you provide.  If called with other than a  fixed-length  string  for
  output,  the  length of the resultant string is limited to 256 bytes
  and truncation will occur.

     Format:

       LIB$SYS_FAOL  character-string ,[resultant-length]
                  ,resultant-string ,directive-argument-address ,...

     Arguments:

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  ASCII control string, consisting of the fixed  text  of  the  output
  string  and  FAO directives.  The character-string argument contains
  the address of a descriptor pointing to this control string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the output string.  The resultant-length argument contains
  the address of an unsigned word integer that is this length.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Fully  formatted  output  string  returned  by  LIB$SYS_FAOL.    The
  resultant-string  argument  contains  the  address  of  a descriptor
  pointing to this output string.

  directive-argument-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: unspecified

  Directive argument(s).  The directive-argument-address arguments are
  contained  in  an  array  of  unsigned longword directive arguments.
  Depending on the directive,  a  directive-argument-address  argument
  can  be  a  value  to  be converted, the address of the string to be
  inserted, or a length or argument count.  The passing mechanism  for
  each  of  these  arguments  should  be the one expected by the $FAOL
  system service.

LIB$SYS_GETMSG

  The Invoke $GETMSG System Service to Get Message Text routine  calls
  the  System  Service  $GETMSG  and  returns  a  message  string into
  destination-string using the semantics of the caller's string.

     Format:

       LIB$SYS_GETMSG  message-id ,[message-length] ,destination-string
                  [,flags] [,unsigned-resultant-array]

     Arguments:

  message-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Message identification  to  be  retrieved  by  LIB$SYS_GETMSG.   The
  message-id  argument  contains  the  address of an unsigned longword
  integer that is this message identification.

  message-length

  VMS usage: word_unsigned
  type: word integer (unsigned)
  access: write only
  mechanism: by reference

  Number of characters written into destination-string,  not  counting
  padding  in  the  case of a fixed-length string.  The message-length
  argument contains the address of an unsigned word  integer  that  is
  this number.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string.  The destination-string  argument  contains  the
  address  of  a  descriptor  pointing  to  this  destination  string.
  LIB$SYS_GETMSG writes the message that has been returned by  $GETMSG
  into destination-string.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Four flag bits for message  content.   The  flags  argument  is  the
  address  of an unsigned longword that contains these flag bits.  The
  default value is a longword with bits zero through 3 set to 1.   The
  flags  argument is passed to LIB$SYS_GETMSG by reference and changed
  to value for use by $GETMSG.

  unsigned-resultant-array

  VMS usage: unspecified
  type: unspecified
  access: write only
  mechanism: by reference, array reference

  A  4-byte  array  to  receive  message-specific  information.    The
  unsigned-resultant-array  argument  contains  the  address  of  this
  array.

LIB$TPARSE

  The Table-Driven Finite State Parser routine is  a  general-purpose,
  table-driven  parser  implemented  as a finite-state automaton, with
  extensions that make it suitable for a wide range  of  applications.
  LIB$TPARSE  parses a string and returns a message indicating whether
  or not the input string is valid.

     Format:

       LIB$TPARSE  argument-block ,state-table ,key-table

     Arguments:

  argument-block

  VMS usage: address
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  LIB$TPARSE argument block.  The argument-block argument contains the
  address of this argument block.

  state-table

  VMS usage: address
  type: unspecified
  access: read only
  mechanism: by reference

  Starting state in the state table.  The state-table argument is  the
  address of this starting state.

  key-table

  VMS usage: address
  type: unspecified
  access: read only
  mechanism: by reference

  Keyword table.  The  key-table  argument  is  the  address  of  this
  keyword table.

LIB$TRA_ASC_EBC

  The Translate ASCII to EBCDIC routine translates an ASCII string  to
  an EBCDIC string.

     Format:

       LIB$TRA_ASC_EBC  source-string ,byte-integer-dest-string

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string (ASCII) to be translated  by  LIB$TRA_ASC_EBC  .   The
  source-string argument contains the address of a descriptor pointing
  to this source string.

  byte-integer-dest-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string (EBCDIC).  The byte-integer-dest-string  argument
  contains  the  address  of a descriptor pointing to this destination
  string.

LIB$TRA_EBC_ASC

  The Translate EBCDIC to ASCII routine translates an EBCDIC string to
  an ASCII string.

     Format:

       LIB$TRA_EBC_ASC  byte-integer-source-string ,destination-string

     Arguments:

  byte-integer-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  (EBCDIC)  to  be   translated   by   LIB$TRA_EBC_ASC.    The
  byte-integer-source-string   argument  contains  the  address  of  a
  descriptor pointing to this source string.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination  string  (ASCII).    The   destination-string   argument
  contains the address of the descriptor of this destination string.

LIB$TRAVERSE_TREE

  The Traverse a Balanced Binary Tree routine calls an action  routine
  for each node in a binary tree.

     Format:

       LIB$TRAVERSE_TREE  treehead ,user-action-routine
                  [,user-data-address]

     Arguments:

  treehead

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Tree head of the binary tree.  The treehead argument is the  address
  of  an  unsigned  longword  that is the tree head in the binary tree
  traversal.

  user-action-routine

  VMS usage: procedure
  type: procedure entry mask
  access: function call (before return)
  mechanism: by value

  User-supplied action routine called by  LIB$TRAVERSE_TREE  for  each
  node  in  the tree.  The user-action-routine argument is the address
  of the entry mask to the action routine.

  user-data-address

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: by reference

  User data that LIB$TRAVERSE_TREE passes to your action routine.  The
  user-data-address  argument  contains the address of this user data.
  This is an optional argument; the default value is zero.

LIB$TRIM_FILESPEC

  The Fit Long File Specification into Fixed  Field  routine  takes  a
  file  specification,  such  as  an  RMS  resultant  name string, and
  shortens it (if necessary) so that it fits into  a  field  of  fixed
  width.

     Format:

       LIB$TRIM_FILESPEC  old-filespec ,new-filespec
                  [,word-integer-width] [,resultant-length]

     Arguments:

  old-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  File  specification  to  be  trimmed.   The  old-filespec   argument
  contains   the  address  of  a  descriptor  pointing  to  this  file
  specification string.

  new-filespec

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Trimmed file specification.  The new-filespec argument contains  the
  address  of a descriptor pointing to this trimmed file specification
  string.  LIB$TRIM_FILESPEC writes  the  trimmed  file  specification
  into new-filespec.

  word-integer-width

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Maximum field width desired.  The word-integer-width argument is the
  address of an unsigned word that contains this maximum field width.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the trimmed file specification, not  including  any  blank
  padding  or  truncated characters.  The resultant-length argument is
  the address of an unsigned word that contains this length.  This  is
  an optional argument.

LIB$VERIFY_VM_ZONE

  The Verify a Zone routine performs verification of a zone.

     Format:

       LIB$VERIFY_VM_ZONE  zone-id

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Zone identifier of the zone to be verified.  The zone-id argument is
  the  address  of  an  unsigned  longword  that  contains  this  zone
  identifier.  A value of zero indicates the default zone.

LIB$WAIT

  The Wait a Specified Period  of  Time  routine  places  the  current
  process  into hibernation for the number of seconds specified in its
  argument.

     Format:

       LIB$WAIT  seconds

     ARGUMENT

  seconds

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  The number of seconds to wait.  The seconds  argument  contains  the
  address of an F_floating number that is this number.

MTH$

Additional information available:

MTH$CCOSMTH$CEXPMTH$CLOGMTH$CMPLXMTH$CONJG
MTH$CSINMTH$CSQRTMTH$HACOSMTH$HACOSD
MTH$HASINMTH$HASINDMTH$HATANMTH$HATAND
MTH$HATAN2MTH$HATAND2MTH$HATANHMTH$HCOS
MTH$HCOSDMTH$HCOSHMTH$HEXPMTH$HLOGMTH$HLOG2
MTH$HLOG10MTH$HSINMTH$HSINDMTH$HSINH
MTH$HSQRTMTH$HTANMTH$HTANDMTH$HTANH
MTH$RANDOMMTH$UMAXMTH$UMIN

MTH$xACOSMTH$xACOSDMTH$xASINMTH$xASIND
MTH$xATANMTH$xATANDMTH$xATAN2MTH$xATAND2
MTH$xATANHMTH$CxABSMTH$CxCOSMTH$CxEXP
MTH$CxLOGMTH$xCMPLXMTH$xCONJGMTH$xCOS
MTH$xCOSDMTH$xCOSHMTH$CxSINMTH$CxSQRT
MTH$CVT x xMTH$CVT xA xAMTH$xEXPMTH$xIMAG
MTH$xLOGMTH$xLOG2MTH$xLOG10MTH$xREAL
MTH$xSINMTH$xSINCOSMTH$xSINCOSDMTH$xSINDMTH$xSINH
MTH$xSQRTMTH$xTANMTH$xTANDMTH$xTANH

MTH$xACOS

  Given the cosine of an angle, the Arc Cosine of Angle  Expressed  in
  Radians routine returns that angle (in radians).

     Format:

       MTH$ACOS  cosine

       MTH$DACOS  cosine

       MTH$GACOS  cosine

                  Each of the above three formats accepts as input one
                  of the floating-point types.

     Arguments:

  cosine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The cosine of the angle whose value (in radians) is to be  returned.
  The  cosine  argument is the address of a floating-point number that
  is this cosine.  The absolute value of cosine must be less  than  or
  equal  to  1.   For MTH$ACOS, cosine specifies an F_floating number.
  For MTH$DACOS, cosine specifies a D_floating number.  For MTH$GACOS,
  cosine specifies a G_floating number.

MTH$xACOSD

  Given the cosine of an angle, the Arc Cosine of Angle  Expressed  in
  Degrees routine returns that angle (in degrees).

     Format:

       MTH$ACOSD  cosine

       MTH$DACOSD  cosine

       MTH$GACOSD  cosine

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  cosine

  VMS usage: floating_point
  type: F_floating, G_floating, D_floating
  access: read only
  mechanism: by reference

  Cosine of the angle whose value (in degrees) is to be returned.  The
  cosine  argument  is  the address of a floating-point number that is
  this cosine.  The absolute value of cosine  must  be  less  than  or
  equal  to  1.  For MTH$ACOSD, cosine specifies an F_floating number.
  For  MTH$DACOSD,  cosine  specifies  a   D_floating   number.    For
  MTH$GACOSD, cosine specifies a G_floating number.

MTH$xASIN

  Given the sine of an angle, the Arc Sine in Radians routine  returns
  that angle (in radians).

     Format:

       MTH$ASIN  sine

       MTH$DASIN  sine

       MTH$GASIN  sine

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The sine of the angle whose value (in radians) is  to  be  returned.
  The  sine argument is the address of a floating-point number that is
  this sine.  The absolute value of sine must be less than or equal to
  1.    For  MTH$ASIN,  sine  specifies  an  F_floating  number.   For
  MTH$DASIN, sine specifies a D_floating number.  For MTH$GASIN,  sine
  specifies a G_floating number.

MTH$xASIND

  Given the sine of an angle, the Arc Sine in Degrees routine  returns
  that angle (in degrees).

     Format:

       MTH$ASIND  sine

       MTH$DASIND  sine

       MTH$GASIND  sine

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Sine of the angle whose value (in degrees) is to be  returned.   The
  sine argument is the address of a floating-point number that is this
  sine.  The absolute value of sine must be less than or equal  to  1.
  For MTH$ASIND, sine specifies an F_floating number.  For MTH$DASIND,
  sine specifies a D_floating number.  For MTH$GASIND, sine  specifies
  a G_floating number.

MTH$xATAN

  Given the tangent of an angle, the Arc Tangent  in  Radians  routine
  returns that angle (in radians).

     Format:

       MTH$ATAN  tangent

       MTH$DATAN  tangent

       MTH$GATAN  tangent

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  tangent

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The tangent of the angle whose value (in radians) is to be returned.
  The  tangent argument is the address of a floating-point number that
  is this tangent.  For  MTH$ATAN,  tangent  specifies  an  F_floating
  number.   For MTH$DATAN, tangent specifies a D_floating number.  For
  MTH$GATAN, tangent specifies a G_floating number.

MTH$xATAND

  Given the tangent of an angle, the Arc Tangent  in  Degrees  routine
  returns that angle (in degrees).

     Format:

       MTH$ATAND  tangent

       MTH$DATAND  tangent

       MTH$GATAND  tangent

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  tangent

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The tangent of the angle whose value (in degrees) is to be returned.
  The  tangent argument is the address of a floating-point number that
  is this tangent.  For MTH$ATAND,  tangent  specifies  an  F_floating
  number.  For MTH$DATAND, tangent specifies a D_floating number.  For
  MTH$GATAND, tangent specifies a G_floating number.

MTH$xATAN2

  Given sine and cosine, the Arc Tangent in Radians with Two Arguments
  routine returns the angle (in radians) whose tangent is given by the
  quotient of sine and cosine, (sine/cosine).

     Format:

       MTH$ATAN2  sine ,cosine

       MTH$DATAN2  sine ,cosine

       MTH$GATAN2  sine ,cosine

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Dividend.  The sine argument is  the  address  of  a  floating-point
  number  that  is  this  dividend.   For MTH$ATAN2, sine specifies an
  F_floating number.  For  MTH$DATAN2,  sine  specifies  a  D_floating
  number.  For MTH$GATAN2, sine specifies a G_floating number.

  cosine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Divisor.  The cosine argument is the  address  of  a  floating-point
  number  that  is  this  divisor.  For MTH$ATAN2, cosine specifies an
  F_floating number.  For MTH$DATAN2, cosine  specifies  a  D_floating
  number.  For MTH$GATAN2, cosine specifies a G_floating number.

MTH$xATAND2

  Given sine and cosine, the Arc Tangent in Degrees with Two Arguments
  routine returns the angle (in degrees) whose tangent is given by the
  quotient of sine and cosine, (sine/cosine).

     Format:

       MTH$ATAND2  sine ,cosine

       MTH$DATAND2  sine ,cosine

       MTH$GATAND2  sine ,cosine

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Dividend.  The sine argument is  the  address  of  a  floating-point
  number  that  is  this  dividend.  For MTH$ATAND2, sine specifies an
  F_floating number.  For MTH$DATAND2,  sine  specifies  a  D_floating
  number.  For MTH$GATAND2, sine specifies a G_floating number.

  cosine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Divisor.  The cosine argument is the  address  of  a  floating-point
  number  that  is  this divisor.  For MTH$ATAND2, cosine specifies an
  F_floating number.  For MTH$DATAND2, cosine specifies  a  D_floating
  number.  For MTH$GATAND2, cosine specifies a G_floating number.

MTH$xATANH

  Given the hyperbolic tangent of an angle, the Hyperbolic Arc Tangent
  routine returns the hyperbolic arc tangent of that angle.

     Format:

       MTH$ATANH  hyperbolic-tangent

       MTH$DATANH  hyperbolic-tangent

       MTH$GATANH  hyperbolic-tangent

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  hyperbolic-tangent

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Hyperbolic tangent of an angle.  The hyperbolic-tangent argument  is
  the  address  of  a  floating-point  number  that is this hyperbolic
  tangent.  For MTH$ATANH, hyperbolic-tangent specifies an  F_floating
  number.   For  MTH$DATANH, hyperbolic-tangent specifies a D_floating
  number.  For MTH$GATANH, hyperbolic-tangent specifies  a  G_floating
  number.

MTH$CxABS

  The Complex Absolute Value routine returns the absolute value  of  a
  complex number (r,i).

     Format:

       MTH$CABS  complex-number

       MTH$CDABS  complex-number

       MTH$CGABS  complex-number

                  Each of the above three formats accepts as input one
                  of the three floating-point complex types.

     ARGUMENT

  complex-number

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i),  where  r  and  i  are  both  floating-point
  complex  values.  The complex-number argument is the address of this
  complex  number.   For   MTH$CABS,   complex-number   specifies   an
  F_floating  complex number.  For MTH$CDABS, complex-number specifies
  a  D_floating  complex  number.    For   MTH$CGABS,   complex-number
  specifies a G_floating complex number.

MTH$CCOS

  The Complex Cosine (F-floating Value) routine  returns  the  complex
  cosine of a complex number as an F-floating value.

     Format:

       MTH$CCOS  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i) where r and  i  are  floating-point  numbers.
  The  complex-number  argument is the address of this complex number.
  For MTH$CCOS, complex-number specifies an F_floating complex number.

MTH$CxCOS

  The Complex Cosine routine returns the complex cosine of  a  complex
  number.

     Format:

       MTH$CDCOS  complex-cosine ,complex-number

       MTH$CGCOS  complex-cosine ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-cosine

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  Complex cosine of the complex-number.  The complex  cosine  routines
  that  have  D_floating and G_floating complex input values write the
  address of the complex cosine into the complex-cosine argument.  For
  MTH$CDCOS,   the  complex-cosine  argument  specifies  a  D_floating
  complex  number.   For  MTH$CGCOS,   the   complex-number   argument
  specifies a G_floating complex number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i) where r and  i  are  floating-point  numbers.
  The  complex-number  argument is the address of this complex number.
  For MTH$CDCOS, complex-number specifies a D_floating complex number.
  For MTH$CGCOS, complex-number specifies a G_floating complex number.

MTH$CEXP

  The Complex  Exponential  (F-floating  Value)  routine  returns  the
  complex exponential of a complex number as an F-floating value.

     Format:

       MTH$CEXP  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  Complex number whose complex exponential is to  be  returned.   This
  complex  number  has  the form (r,i), where "r" is the real part and
  "i" is the imaginary  part.   The  complex-number  argument  is  the
  address  of  this  complex  number.   For  MTH$CEXP,  complex-number
  specifies an F_floating number.

MTH$CxEXP

  The Complex Exponential routine returns the complex exponential of a
  complex number.

     Format:

       MTH$CDEXP  complex-exponent ,complex-number

       MTH$CGEXP  complex-exponent ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-exponent

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  Complex exponential  of  complex-number.   The  complex  exponential
  routines  that  have D_floating complex and G_floating complex input
  values  write  the  complex-exponent  into   this   argument.    For
  MTH$CDEXP,  complex-exponent argument specifies a D_floating complex
  number.  For  MTH$CGEXP,  complex-exponent  specifies  a  G_floating
  complex number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  Complex number whose complex exponential is to  be  returned.   This
  complex  number  has  the form (r,i), where "r" is the real part and
  "i" is the imaginary  part.   The  complex-number  argument  is  the
  address  of  this  complex  number.   For  MTH$CDEXP, complex-number
  specifies  a  D_floating  number.   For  MTH$CGEXP,   complex-number
  specifies a G_floating number.

MTH$CLOG

  The Complex Natural Logarithm (F-floating Value) routine returns the
  complex  natural  logarithm  of  a  complex  number as an F-floating
  value.

     Format:

       MTH$CLOG  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  Complex number whose complex natural logarithm is  to  be  returned.
  This  complex  number has the form (r,i), where "r" is the real part
  and "i" is the imaginary part.  The complex-number argument  is  the
  address  of  this  complex  number.   For  MTH$CLOG,  complex-number
  specifies an F_floating number.

MTH$CxLOG

  The Complex Natural Logarithm routine returns  the  complex  natural
  logarithm of a complex number.

     Format:

       MTH$CDLOG  complex-natural-log ,complex-number

       MTH$CGLOG  complex-natural-log ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-natural-log

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  Natural logarithm of the complex number specified by complex-number.
  The  complex natural logarithm routines that have D_floating complex
  and G_floating complex input values write the address of the complex
  natural  logarithm  into  complex-natural-log.   For  MTH$CDLOG, the
  complex-natural-log argument specifies a D_floating complex  number.
  For   MTH$CGLOG,   the   complex-natural-log  argument  specifies  a
  G_floating complex number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  Complex number whose complex natural logarithm is  to  be  returned.
  This  complex  number has the form (r,i), where "r" is the real part
  and "i" is the imaginary part.  The complex-number argument  is  the
  address  of  this  complex  number.   For  MTH$CDLOG, complex-number
  specifies  a  D_floating  number.   For  MTH$CGLOG,   complex-number
  specifies a G_floating number.

MTH$CMPLX

  The Complex Number Made  from  F-floating-Point  routine  returns  a
  complex number from two floating-point input values.

     Format:

       MTH$CMPLX  real-part ,imaginary-part

     Arguments:

  real-part

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  Real part of a  complex  number.   The  real-part  argument  is  the
  address  of  a floating-point number that contains this real part, r
  of (r,i).  For MTH$CMPLX, real-part specifies an F_floating number.

  imaginary-part

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by reference

  Imaginary part of a complex number.  The imag-parg argument  is  the
  address  of  a  floating-point  number  that contains this imaginary
  part, i  of  (r,i).   For  MTH$CMPLX,  imaginary-part  specifies  an
  F_floating number.

MTH$xCMPLX

  The Complex Number Made from D- or G-floating-Point routine  returns
  a complex number from two D- or G-floating input values.

     Format:

       MTH$DCMPLX  complx ,real-part ,imaginary-part

       MTH$GCMPLX  complx ,real-part ,imaginary-part

                  Each of the above formats accepts as input one of
                  floating-point complex types.

     Arguments:

  complx

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  The floating-point complex value of a complex number.   The  complex
  exponential  functions  that  have D_floating complex and G_floating
  complex input  values  write  the  address  of  this  floating-point
  complex  value  into  complx.   For  MTH$DCMPLX,  complx specifies a
  D_floating complex  number.   For  MTH$GCMPLX,  complx  specifies  a
  G_floating complex number.  For MTH$CMPLX, complx is not used.

  real-part

  VMS usage: floating_point
  type: D_floating, G_floating
  access: read only
  mechanism: by reference

  Real part of a  complex  number.   The  real-part  argument  is  the
  address  of  a floating-point number that contains this real part, r
  of (r,i).  For MTH$DCMPLX, real-part specifies a D_floating  number.
  For MTH$GCMPLX, real-part specifies a G_floating number.

  imaginary-part

  VMS usage: floating_point
  type: D_floating, G_floating
  access: read only
  mechanism: by reference

  Imaginary part of a complex number.  The imag-parg argument  is  the
  address  of  a  floating-point  number  that contains this imaginary
  part, i  of  (r,i).   For  MTH$DCMPLX,  imaginary-part  specifies  a
  D_floating  number.   For  MTH$GCMPLX,  imaginary-part  specifies  a
  G_floating number.

MTH$CONJG

  The Conjugate of a Complex Number (F-floating Value) routine returns
  the  complex  conjugate  (r,-i)  of  a  complex  number  (r,i) as an
  F-floating value.

     Format:

       MTH$CONJG  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i), where r and i  are  floating-point  numbers.
  The  complex-number  argument  is the address of this floating-point
  complex  number.   For  MTH$CONJG,   complex-number   specifies   an
  F_floating number.

MTH$xCONJG

  The Conjugate of  a  Complex  Number  routine  returns  the  complex
  conjugate (r,-i) of a complex number (r,i).

     Format:

       MTH$DCONJG  complex-conjugate ,complex-number

       MTH$GCONJG  complex-conjugate ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-conjugate

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  The complex conjugate (r,-i) of  the  complex  number  specified  by
  complex-number.  MTH$DCONJG and MTH$GCONJG write the address of this
  complex  conjugate  into  complex-conjugate.   For  MTH$DCONJG,  the
  complex-conjugate  argument  specifies  the  address of a D_floating
  complex number.   For  MTH$GCONJG,  the  complex-conjugate  argument
  specifies the address of a G_floating complex number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i), where r and i  are  floating-point  numbers.
  The  complex-number  argument  is the address of this floating-point
  complex  number.   For  MTH$DCONJG,   complex-number   specifies   a
  D_floating  number.   For  MTH$GCONJG,  complex-number  specifies  a
  G_floating number.

MTH$xCOS

  The Cosine of Angle Expressed in Radians routine returns the  cosine
  of a given angle (in radians).

     Format:

       MTH$COS  angle-in-radians

       MTH$DCOS  angle-in-radians

       MTH$GCOS  angle-in-radians

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-radians

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The angle in radians.  The angle-in-radians argument is the  address
  of  a  floating-point  number.   For MTH$COS, angle-in-radians is an
  F_floating  number.   For  MTH$DCOS,  angle-in-radians  specifies  a
  D_floating  number.   For  MTH$GCOS,  angle-in-radians  specifies  a
  G_floating number.

MTH$xCOSD

  The Cosine of Angle Expressed in Degrees routine returns the  cosine
  of a given angle (in degrees).

     Format:

       MTH$COSD  angle-in-degrees

       MTH$DCOSD  angle-in-degrees

       MTH$GCOSD  angle-in-degrees

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-degrees

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Angle (in degrees).  The angle-in-degrees argument is the address of
  a  floating-point  number.  For MTH$COSD, angle-in-degrees specifies
  an F_floating number.  For MTH$DCOSD, angle-in-degrees  specifies  a
  D_floating  number.   For  MTH$GCOSD,  angle-in-degrees  specifies a
  G_floating number.

MTH$xCOSH

  The Hyperbolic Cosine routine returns the hyperbolic cosine  of  the
  input value.

     Format:

       MTH$COSH  floating-point-input-value

       MTH$DCOSH  floating-point-input-value

       MTH$GCOSH  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address      of     this     input     value.      For     MTH$COSH,
  floating-point-input-value  specifies  an  F_floating  number.   For
  MTH$DCOSH, floating-point-input-value specifies a D_floating number.
  For MTH$GCOSH,  floating-point-input-value  specifies  a  G_floating
  number.

MTH$CSIN

  The Complex  Sine  of  Complex  Number  (F-floating  Value)  routine
  returns  the complex sine of a complex number (r,i) as an F-floating
  value.

     Format:

       MTH$CSIN  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i), where r and i  are  floating-point  numbers.
  The  complex-number  argument is the address of this complex number.
  For MTH$CSIN, complex-number specifies an F_floating complex number.

MTH$CxSIN

  The Complex Sine of Complex Number routine returns the complex  sine
  of a complex number (r,i).

     Format:

       MTH$CDSIN  complex-sine ,complex-number

       MTH$CGSIN  complex-sine ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-sine

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  Complex sine of the complex number.  The complex sine routines  with
  D_floating  complex  and  G_floating  complex input values write the
  complex  sine  into  this  complex-sine  argument.   For  MTH$CDSIN,
  complex-sine  specifies a D_floating complex number.  For MTH$CGSIN,
  complex-sine specifies a G_floating complex number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  A complex number (r,i), where r and i  are  floating-point  numbers.
  The  complex-number  argument is the address of this complex number.
  For MTH$CDSIN, complex-number specifies a D_floating complex number.
  For MTH$CGSIN, complex-number specifies a G_floating complex number.

MTH$CSQRT

  The Complex Square  Root  (F-floating  Value)  routine  returns  the
  complex square root of a complex number (r,i).

     Format:

       MTH$CSQRT  complex-number

     Arguments:

  complex-number

  VMS usage: complex_number
  type: F_floating complex
  access: read only
  mechanism: by reference

  Complex number (r,i).   The  complex-number  argument  contains  the
  address  of  this  complex  number.   For  MTH$CSQRT, complex-number
  specifies an F_floating number.

MTH$CxSQRT

  The Complex Square Root routine returns the complex square root of a
  complex number (r,i).

     Format:

       MTH$CDSQRT  complex-square-root ,complex-number

       MTH$CGSQRT  complex-square-root ,complex-number

                  Each of the above formats accepts as input one of
                  the floating-point complex types.

     Arguments:

  complex-square-root

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: write only
  mechanism: by reference

  Complex  square  root   of   the   complex   number   specified   by
  complex-number.    The   complex  square  root  routines  that  have
  D_floating complex and G_floating complex  input  values  write  the
  complex  square  root  into  complex-square-root.   For  MTH$CDSQRT,
  complex-square-root specifies  a  D_floating  complex  number.   For
  MTH$CGSQRT,   complex-square-root  specifies  a  G_floating  complex
  number.

  complex-number

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  Complex number (r,i).   The  complex-number  argument  contains  the
  address  of  this  complex  number.   For MTH$CDSQRT, complex-number
  specifies  a  D_floating  number.   For  MTH$CGSQRT,  complex-number
  specifies a G_floating number.

MTH$CVT x x

  The  Convert  One  Double-Precision  Value  routines   convert   one
  double-precision  value  to the destination data type and return the
  result as a function value.  MTH$CVT_D_G converts a D_floating value
  to  G_floating  and  MTH$CVT_G_D  converts  a  G_floating value to a
  D_floating value.

     Format:

       MTH$CVT_D_G  floating-point-input-val

       MTH$CVT_G_D  floating-point-input-val

     ARGUMENT

  floating-point-input-val

  VMS usage: floating_point
  type: D_floating, G_floating
  access: read only
  mechanism: by reference

  The  input  value  to be converted.   The   floating-point-input-val
  argument  is  the address of this input value.  For MTH$CVT_D_G, the
  floating-point-input-val  argument  specifies  a  D_floating number.
  For  MTH$CVT_G_D,  the  floating-point-input-val  argument specifies
  a G_floating number.

MTH$CVT xA xA

  The Convert an Array of Double-Precision Values routines  convert  a
  contiguous  array of double-precision values to the destination data
  type and return the results as  an  array.   MTH$CVT_DA_GA  converts
  D_floating   values   to   G_floating   and  MTH$CVT_GA_DA  converts
  G_floating values to D_floating.

     Format:

       MTH$CVT_DA_GA  floating-point-input-array
                  ,floating-point-dest-array [,array-size]

       MTH$CVT_GA_DA  floating-point-input-array
                  ,floating-point-dest-array [,array-size]

     Arguments:

  floating-point-input-array

  VMS usage: floating_point
  type: D_floating, G_floating
  access: read only
  mechanism: by reference, array reference

  Input    array    of    values     to     be     converted.      The
  floating-point-input-array  argument  is  the address of an array of
  floating-point         numbers.          For          MTH$CVT_DA_GA,
  floating-point-input-array specifies an array of D_floating numbers.
  For MTH$CVT_GA_DA, floating-point-input-array specifies an array  of
  a G_floating numbers.

  floating-point-dest-array

  VMS usage: floating_point
  type: D_floating, G_floating
  access: write only
  mechanism: by reference, array reference

  Output array of  converted  values.   The  floating-point-dest-array
  argument  is the address of an array of floating-point numbers.  For
  MTH$CVT_DA_GA,  floating-point-dest-array  specifies  an  array   of
  G_floating  numbers.   For  MTH$CVT_GA_DA, floating-point-dest-array
  specifies an array of D_floating numbers.

  array-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of array elements to be converted.  The default value  is  1.
  The array-size argument is the address of this number of elements.

MTH$xEXP

  The Exponential routine returns the exponential of the input value.

     Format:

       MTH$EXP  floating-point-input-value

       MTH$DEXP  floating-point-input-value

       MTH$GEXP  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address     of    a    floating-point    number.     For    MTH$EXP,
  floating-point-input-value  specifies  an  F_floating  number.   For
  MTH$DEXP,  floating-point-input-value specifies a D_floating number.
  For  MTH$GEXP,  floating-point-input-value  specifies  a  G_floating
  number.

MTH$HACOS

  Given the cosine of an angle, the Arc Cosine of Angle  Expressed  in
  Radians  (H-floating  Value) routine returns that angle (in radians)
  in H-floating-point precision.

     Format:

       MTH$HACOS  h-radians ,cosine

     Arguments:

  h-radians

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in  radians)  whose  cosine  is  specified  by  cosine.   The
  h-radians  argument  is  the address of an H_floating number that is
  this  angle.   MTH$HACOS  writes  the  address  of  the  angle  into
  h-radians.   The  h-radians  argument  is used only by the MTH$HACOS
  routine.

  cosine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The cosine of the angle whose value (in radians) is to be  returned.
  The  cosine  argument is the address of a floating-point number that
  is this cosine.  The absolute value of cosine must be less  than  or
  equal to 1.  For MTH$HACOS, cosine specifies an H_floating number.

MTH$HACOSD

  Given the cosine of an angle, the Arc Cosine of Angle  Expressed  in
  Degrees  (H-Floating  Value) routine returns that angle (in degrees)
  as an H-floating value.

     Format:

       MTH$HACOSD  h-degrees ,cosine

     Arguments:

  h-degrees

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in  degrees)  whose  cosine  is  specified  by  cosine.   The
  h-degrees  argument  is  the address of an H_floating number that is
  this angle.   MTH$HACOSD  writes  the  address  of  the  angle  into
  h-degrees.   The  h-degrees  argument is used only by the MTH$HACOSD
  routine.

  cosine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Cosine of the angle whose value (in degrees) is to be returned.  The
  cosine  argument  is  the address of a floating-point number that is
  this cosine.  The absolute value of cosine  must  be  less  than  or
  equal to 1.  For MTH$HACOSD, cosine specifies an H_floating number.

MTH$HASIN

  Given the sine of an angle, the  Arc  Sine  in  Radians  (H-floating
  Value)  routine  returns  that  angle  (in radians) as an H-floating
  value.

     Format:

       MTH$HASIN  h-radians ,sine

     Arguments:

  h-radians

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in radians) whose sine is specified by sine.   The  h-radians
  argument  is the address of an H_floating number that is this angle.
  MTH$HASIN writes the address  of  the  angle  into  h-radians.   The
  h-radians argument is used only by the MTH$HASIN routine.

  sine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The sine of the angle whose value (in radians) is  to  be  returned.
  The  sine argument is the address of a floating-point number that is
  this sine.  The absolute value of sine must be less than or equal to
  1.  For MTH$HASIN, sine specifies an H_floating number.

MTH$HASIND

  Given the sine of an angle, the  Arc  Sine  in  Degrees  (H-Floating
  Value)  routine  returns  that  angle  (in degrees) as an H-floating
  value.

     Format:

       MTH$HASIND  h-degrees ,sine

     Arguments:

  h-degrees

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in degrees) whose sine is specified by sine.   The  h-degrees
  argument  is the address of an H_floating number that is this angle.
  MTH$HASIND writes the address of  the  angle  into  h-degrees.   The
  h-degrees argument is used only by the MTH$HASIND routine.

  sine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Sine of the angle whose value (in degrees) is to be  returned.   The
  sine argument is the address of a floating-point number that is this
  sine.  The absolute value of sine must be less than or equal  to  1.
  For MTH$HASIND, sine specifies an H_floating number.

MTH$HATAN

  Given  the  tangent  of  an  angle,  the  Arc  Tangent  in   Radians
  (H-floating  Value)  routine  returns  that angle (in radians) as an
  H-floating value.

     Format:

       MTH$HATAN  h-radians ,tangent

     Arguments:

  h-radians

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in radians) whose  tangent  is  specified  by  tangent.   The
  h-radians  argument  is  the address of an H_floating number that is
  this  angle.   MTH$HATAN  writes  the  address  of  the  angle  into
  h-radians.   The  h-radians  argument  is used only by the MTH$HATAN
  routine.

  tangent

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The tangent of the angle whose value (in radians) is to be returned.
  The  tangent argument is the address of a floating-point number that
  is this tangent.  For MTH$HATAN,  tangent  specifies  an  H_floating
  number.

MTH$HATAND

  Given  the  tangent  of  an  angle,  the  Arc  Tangent  in   Degrees
  (H-floating  Value)  routine  returns  that angle (in degrees) as an
  H-floating point value.

     Format:

       MTH$HATAND  h-degrees ,tangent

     Arguments:

  h-degrees

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in degrees) whose  tangent  is  specified  by  tangent.   The
  h-degrees  argument  is  the address of an H_floating number that is
  this angle.   MTH$HATAND  writes  the  address  of  the  angle  into
  h-degrees.   The  h-degrees  argument is used only by the MTH$HATAND
  routine.

  tangent

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The tangent of the angle whose value (in degrees) is to be returned.
  The  tangent argument is the address of a floating-point number that
  is this tangent.  For MTH$HATAND, tangent  specifies  an  H_floating
  number.

MTH$HATAN2

  Given sine and cosine, the Arc Tangent in Radians (H-floating Value)
  with  Two  Arguments  routine  returns  the angle (in radians) as an
  H-floating value whose tangent is given by the quotient of sine  and
  cosine, (sine/cosine).

     Format:

       MTH$HATAN2  h-radians ,sine ,cosine

     Arguments:

  h-radians

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in radians) whose tangent is specified by (sine/cosine).  The
  h-radians  argument  is  the address of an H_floating number that is
  this angle.   MTH$HATAN2  writes  the  address  of  the  angle  into
  h-radians.   The  h-radians  argument is used only by the MTH$HATAN2
  routine.

  sine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Dividend.  The sine argument is  the  address  of  a  floating-point
  number  that  is  this  dividend.  For MTH$HATAN2, sine specifies an
  H_floating number.

  cosine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Divisor.  The cosine argument is the  address  of  a  floating-point
  number  that  is  this divisor.  For MTH$HATAN2, cosine specifies an
  H_floating number.

MTH$HATAND2

  Given sine and cosine, MTH$xHTAND2 returns the  angle  (in  degrees)
  whose  tangent  is  given  by  the  quotient  of  sine  and  cosine,
  (sine/cosine).

     Format:

       MTH$HATAND2  h-degrees ,sine ,cosine

     Arguments:

  h-degrees

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Angle (in degrees) whose tangent is specified by (sine/cosine).  The
  h-degrees  argument  is  the address of an H_floating number that is
  this angle.  MTH$HATAND2  writes  the  address  of  the  angle  into
  h-degrees.   The  h-degrees argument is used only by the MTH$HATAND2
  routine.

  sine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Dividend.  The sine argument is  the  address  of  a  floating-point
  number  that  is  this dividend.  For MTH$HATAND2, sine specifies an
  H_floating number.

  cosine

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Divisor.  The cosine argument is the  address  of  a  floating-point
  number  that  is this divisor.  For MTH$HATAND2, cosine specifies an
  H_floating number.

MTH$HATANH

  Given the hyperbolic tangent of an angle, the Hyperbolic Arc Tangent
  (H-floating Value) routine returns the hyperbolic arc tangent (as an
  H-floating value) of that angle.

     Format:

       MTH$HATANH  h-atanh ,hyperbolic-tangent

     Arguments:

  h-atanh

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Hyperbolic arc  tangent  of  the  hyperbolic  tangent  specified  by
  hyperbolic-tangent.   The  h-atanh  argument  is  the  address of an
  H_floating number that is this hyperbolic arc  tangent.   MTH$HATANH
  writes  the address of the hyperbolic arc tangent into h-atanh.  The
  h-atanh argument is used only by the MTH$HATANH routine.

  hyperbolic-tangent

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Hyperbolic tangent of an angle.  The hyperbolic-tangent argument  is
  the  address  of  a  floating-point  number  that is this hyperbolic
  tangent.  For MTH$HATANH, hyperbolic-tangent specifies an H_floating
  number.

MTH$HCOS

  The Cosine of Angle Expressed in Radians (H-floating Value)  routine
  returns  the  cosine  of a given angle (in radians) as an H-floating
  value.

     Format:

       MTH$HCOS  h-cosine ,angle-in-radians

     Arguments:

  h-cosine

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Cosine of the angle specified  by  angle-in-radians.   The  h-cosine
  argument is the address of an H_floating number that is this cosine.
  MTH$HCOS writes the  address  of  the  cosine  into  h-cosine.   The
  h-cosine argument is used only by the MTH$HCOS routine.

  angle-in-radians

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The angle in radians.  The angle-in-radians argument is the  address
  of   a   floating-point   number.   For  MTH$HCOS,  angle-in-radians
  specifies an H_floating number.

MTH$HCOSD

  The Cosine of Angle Expressed in Degrees (H-floating Value)  routine
  returns  the  cosine  of a given angle (in degrees) as an H-floating
  value.

     Format:

       MTH$HCOSD  h-cosine ,angle-in-degrees

     Arguments:

  h-cosine

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Cosine of the angle specified  by  angle-in-degrees.   The  h-cosine
  argument is the address of an H_floating number that is this cosine.
  MTH$HCOSD writes this cosine into h-cosine.  The  h-cosine  argument
  is used only by the MTH$HCOSD routine.

  angle-in-degrees

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Angle (in degrees).  The angle-in-degrees argument is the address of
  a  floating-point number.  For MTH$HCOSD, angle-in-degrees specifies
  an H_floating number.

MTH$HCOSH

  The Hyperbolic Cosine routine returns the hyperbolic cosine  of  the
  input value as an H-floating value.

     Format:

       MTH$HCOSH  h-cosh ,floating-point-input-value

     Arguments:

  h-cosh

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Hyperbolic   cosine   of    the    input    value    specified    by
  floating-point-input-value.   The  h-cosh argument is the address of
  an H_floating number that  is  this  hyperbolic  cosine.   MTH$HCOSH
  writes the address of the hyperbolic cosine into h-cosh.  The h-cosh
  argument is used only by the MTH$HCOSH routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address     of     this     input     value.      For     MTH$HCOSH,
  floating-point-input-value specifies an H_floating number.

MTH$HEXP

  The Exponential routine returns the exponential of the  input  value
  as an H-floating value.

     Format:

       MTH$HEXP  h-exp ,floating-point-input-value

     Arguments:

  h-exp

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Exponential     of     the     input     value     specified      by
  floating-point-input-value.  The h-exp argument is the address of an
  H_floating number that is this  exponential.   MTH$HEXP  writes  the
  address  of  the exponential into h-exp.  The h-exp argument is used
  only by the MTH$HEXP routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address    of    a    floating-point    number.     For    MTH$HEXP,
  floating-point-input-value specifies an H_floating number.

MTH$HLOG

  The  Logarithm  ,Natural  (H-floating  Value)  routine  returns  the
  natural  (base  e)  logarithm of the input argument as an H-floating
  value.

     Format:

       MTH$HLOG  h-natlog ,floating-point-input-value

     Arguments:

  h-natlog

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Natural  logarithm  of  floating-point-input-value.   The   h-natlog
  argument is the address of an H_floating number that is this natural
  logarithm.  MTH$HLOG writes the address of  this  natural  logarithm
  into  h-natlog.   The h-natlog argument is used only by the MTH$HLOG
  routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point  number  that  is  this  value.   For
  MTH$HLOG, floating-point-input-value specifies an H_floating number.

MTH$HLOG2

  The Logarithm, Base 2 (H-floating Value) routine returns the base  2
  logarithm of the input value specified by floating-point-input-value
  as an H-floating value.

     Format:

       MTH$HLOG2  h-log2 ,floating-point-input-value

     Arguments:

  h-log2

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Base 2 logarithm of floating-point-input-value.  The h-log2 argument
  is  the  address  of  an  H_floating  number  that  is  this  base 2
  logarithm.  MTH$HLOG2 writes the  address  of  this  logarithm  into
  h-log2.  The h-log2 argument is used only by the MTH$HLOG2 routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point number that is this input value.  For
  MTH$HLOG2,  floating-point-input-value   specifies   an   H_floating
  number.

MTH$HLOG10

  The Logarithm, Common (H-floating Value) routine returns the  common
  (base 10) logarithm of the input argument as an H-floating value.

     Format:

       MTH$HLOG10  h-log10 ,floating-point-input-value

     Arguments:

  h-log10

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Common   logarithm    of    the    input    value    specified    by
  floating-point-input-value.   The h-log10 argument is the address of
  an H_floating number that  is  this  common  logarithm.   MTH$HLOG10
  writes  the  address  of  the  common  logarithm  into h-log10.  The
  h-log10 argument is used only by the MTH$HLOG10 routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address    of    a    floating-point    number.    For   MTH$HLOG10,
  floating-point-input-value specifies an H_floating number.

MTH$HSIN

  The Sine of Angle Expressed in Radians  (H-floating  Value)  routine
  returns  the  sine  of  a  given angle (in radians) as an H-floating
  value.

     Format:

       MTH$HSIN  h-sine ,angle-in-radians

     Arguments:

  h-sine

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  The sine of the angle specified  by  angle-in-radians.   The  h-sine
  argument  is  the address of an H_floating number that is this sine.
  MTH$HSIN writes the address of the sine  into  h-sine.   The  h-sine
  argument is used only by the MTH$HSIN routine.

  angle-in-radians

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Angle (in radians).  The angle-in-radians argument is the address of
  a   floating-point   number  that  is  this  angle.   For  MTH$HSIN,
  angle-in-radians specifies an H_floating number.

MTH$HSIND

  The Sine of Angle Expressed in Degrees  (H-floating  Value)  routine
  returns  the  sine  of  a  given angle (in degrees) as an H-floating
  value.

     Format:

       MTH$HSIND  h-sine ,angle-in-degrees

     Arguments:

  h-sine

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Sine  of  the  angle  specified  by  angle-in-degrees.   The  h-sine
  argument  is  the address of an H_floating number that is this sine.
  MTH$HSIND writes the address of the angle into h-sine.   The  h-sine
  argument is used only by the MTH$HSIND routine.

  angle-in-degrees

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Angle (in degrees).  The angle-in-degrees argument is the address of
  a   floating-point  number  that  is  this  angle.   For  MTH$HSIND,
  angle-in-degrees specifies an H_floating number.

MTH$HSINH

  The  Hyperbolic  Sine  (H-floating  Value)   routine   returns   the
  hyperbolic    sine    of    the    input    value    specified    by
  floating-point-input-value as an H-floating value.

     Format:

       MTH$HSINH  h-sinh ,floating-point-input-value

     Arguments:

  h-sinh

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Hyperbolic    sine    of    the    input    value    specified    by
  floating-point-input-value.   The  h-sinh argument is the address of
  an H_floating number that is this hyperbolic sine.  MTH$HSINH writes
  the address of the hyperbolic sine into h-sinh.  The h-sinh argument
  is used only by the MTH$HSINH routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point  number  that  is  this  value.   For
  MTH$HSINH,  floating-point-input-value   specifies   an   H_floating
  number.

MTH$HSQRT

  The Square Root (H-floating Value) routine returns the  square  root
  of  the  input  value  floating-point-input-value  as  an H-floating
  value.

     Format:

       MTH$HSQRT  h-sqrt ,floating-point-input-value

     Arguments:

  h-sqrt

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Square    root    of    the     input     value     specified     by
  floating-point-input-value.   The  h-sqrt argument is the address of
  an H_floating number that is this square root.  MTH$HSQRT writes the
  address of the square root into h-sqrt.  The h-sqrt argument is used
  only by the MTH$HSQRT routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  Input value.  The floating-point-input-value argument is the address
  of  a  floating-point  number  that  contains this input value.  For
  MTH$HSQRT, an H_floating number.

MTH$HTAN

  The Tangent of Angle Expressed in Radians (H-floating Value) routine
  returns  the  tangent of a given angle (in radians) as an H-floating
  value.

     Format:

       MTH$HTAN  h-tan ,angle-in-radians

     Arguments:

  h-tan

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Tangent of the  angle  specified  by  angle-in-radians.   The  h-tan
  argument  is  the  address  of  an  H_floating  number  that is this
  tangent.  MTH$HTAN writes the address of  the  tangent  into  h-tan.
  The h-tan argument is used only by the MTH$HTAN routine.

  angle-in-radians

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input angle (in radians).  The angle-in-radians argument is  the
  address  of  a  floating-point  number  that  is  this  angle.   For
  MTH$HTAN, angle-in-radians specifies an H_floating number.

MTH$HTAND

  The Tangent of Angle Expressed in Degrees (H-floating Value) routine
  returns  the  tangent of a given angle (in degrees) as an H-floating
  value.

     Format:

       MTH$HTAND  h-tan ,angle-in-degrees

     Arguments:

  h-tan

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Tangent of the  angle  specified  by  angle-in-degrees.   The  h-tan
  argument  is  the  address  of  an  H_floating  number  that is this
  tangent.  MTH$HTAND writes the address of the  tangent  into  h-tan.
  The h-tan argument is used only by the MTH$HTAN routine.

  angle-in-degrees

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input angle (in degrees).  The angle-in-degrees argument is  the
  address  of  a  floating-point  number  which  is  this  angle.  For
  MTH$HTAND, angle-in-degrees specifies an H_floating number.

MTH$HTANH

  The  Compute  the  Hyperbolic  Tangent  (H-floating  Value)  routine
  returns  the  hyperbolic tangent of the input value as an H-floating
  value.

     Format:

       MTH$HTANH  h-tanh ,floating-point-input-value

     Arguments:

  h-tanh

  VMS usage: floating_point
  type: H_floating
  access: write only
  mechanism: by reference

  Hyperbolic     tangent     of     the     value     specified     by
  floating-point-input-value.  The h-tanh argument is the address of a
  H_floating number that is this hyperbolic tangent.  MTH$HTANH writes
  the  address  of  the  hyperbolic  tangent  into h-tanh.  The h-tanh
  argument is used only by the MTH$TANH routine.

  floating-point-input-value

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a floating-point number that contains this input value.
  For MTH$HTANH, floating-point-input-value  specifies  an  H_floating
  number.

MTH$xIMAG

  The Imaginary Part of a Complex Number routine returns the imaginary
  part of a complex number.

     Format:

       MTH$AIMAG  complex-number

       MTH$DIMAG  complex-number

       MTH$GIMAG  complex-number

                  Each of the above three formats corresponds to one
                  of the three floating-point complex types.

     ARGUMENT

  complex-number

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  The input  complex  number.   The  complex-number  argument  is  the
  address  of  this  floating-point  complex  number.   For MTH$AIMAG,
  complex-number  specifies  an  F_floating  number.   For  MTH$DIMAG,
  complex-number   specifies  a  D_floating  number.   For  MTH$GIMAG,
  complex-number specifies a G_floating number.

MTH$xLOG

  The  Logarithm,  Natural  routine  returns  the  natural  (base   e)
  logarithm of the input argument.

     Format:

       MTH$ALOG  floating-point-input-value

       MTH$DLOG  floating-point-input-value

       MTH$GLOG  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point  number  that  is  this  value.   For
  MTH$ALOG, floating-point-input-value specifies an F_floating number.
  For  MTH$DLOG,  floating-point-input-value  specifies  a  D_floating
  number.   For  MTH$GLOG,  floating-point-input-value   specifies   a
  G_floating number.

MTH$xLOG2

  The Logarithm, Base 2 routine returns the base 2  logarithm  of  the
  input value specified by floating-point-input-value.

     Format:

       MTH$ALOG2  floating-point-input-value

       MTH$DLOG2  floating-point-input-value

       MTH$GLOG2  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point number that is this input value.  For
  MTH$ALOG2,  floating-point-input-value   specifies   an   F_floating
  number.    For  MTH$DLOG2,  floating-point-input-value  specifies  a
  D_floating  number.    For   MTH$GLOG2,   floating-point-input-value
  specifies a G_floating number.

MTH$xLOG10

  The Logarithm, Common routine returns the common (base 10) logarithm
  of the input argument.

     Format:

       MTH$ALOG10  floating-point-input-value

       MTH$DLOG10  floating-point-input-value

       MTH$GLOG10  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address    of    a    floating-point    number.    For   MTH$ALOG10,
  floating-point-input-value  specifies  an  F_floating  number.   For
  MTH$DLOG10,   floating-point-input-value   specifies   a  D_floating
  number.   For  MTH$GLOG10,  floating-point-input-value  specifies  a
  G_floating number.

MTH$RANDOM

  The Random-Number Generator,  Uniformly  Distributed  routine  is  a
  general random-number generator.

     Format:

       MTH$RANDOM  seed

     ARGUMENT

  seed

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  The integer seed, a 32-bit  number  whose  high-order  24  bits  are
  converted  by  MTH$RANDOM  to an F_floating random number.  The seed
  argument is the address of an unsigned longword that  contains  this
  integer seed.  The seed is modified by each call to MTH$RANDOM.

MTH$xREAL

  The Real Part of a Complex Number routine returns the real part of a
  complex number.

     Format:

       MTH$REAL  complex-number

       MTH$DREAL  complex-number

       MTH$GREAL  complex-number

                  Each of the above three  formats accepts as input
                  one of the three floating-point complex types.

     ARGUMENT

  complex-number

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by reference

  The complex number whose real part is  returned  by  MTH$REAL.   The
  complex-number  argument  is  the  address  of  this  floating-point
  complex number.   For  MTH$REAL,  complex-number  is  an  F_floating
  complex  number.   For  MTH$DREAL,  complex-number  is  a D_floating
  complex number.   For  MTH$GREAL,  complex-number  is  a  G_floating
  complex number.

MTH$xSIN

  The Sine of Angle Expressed in Radians routine returns the sine of a
  given angle (in radians).

     Format:

       MTH$SIN  angle-in-radians

       MTH$DSIN  angle-in-radians

       MTH$GSIN  angle-in-radians

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-radians

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Angle (in radians).  The angle-in-radians argument is the address of
  a   floating-point   number   that  is  this  angle.   For  MTH$SIN,
  angle-in-radians specifies  an  F_floating  number.   For  MTH$DSIN,
  angle-in-radians  specifies  a  D_floating  number.   For  MTH$GSIN,
  angle-in-radians specifies a G_floating number.

MTH$xSINCOS

  The Sine and Cosine of Angle Expressed in  Radians  routine  returns
  the sine and the cosine of a given angle (in radians).

     Format:

       MTH$SINCOS  angle-in-radians ,sine ,cosine

       MTH$DSINCOS  angle-in-radians ,sine ,cosine

       MTH$GSINCOS  angle-in-radians ,sine ,cosine

       MTH$HSINCOS  angle-in-radians ,sine ,cosine

                  Each of the above four formats accepts as input one
                  of the four floating-point types.

     Arguments:

  angle-in-radians

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: read only
  mechanism: by reference

  Angle (in radians) whose sine and cosine are to  be  returned.   The
  angle-in-radians  argument is the address of a floating-point number
  that  is  this  angle.   For  MTH$SINCOS,  angle-in-radians  is   an
  F_floating   number.    For   MTH$DSINCOS,   angle-in-radians  is  a
  D_floating  number.   For   MTH$GSINCOS,   angle-in-radians   is   a
  G_floating   number.    For   MTH$HSINCOS,  angle-in-radians  is  an
  H_floating number.

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: write only
  mechanism: by reference

  Sine of the angle specified by angle-in-radians.  The sine  argument
  is  the  address  of  a floating-point number.  MTH$SINCOS writes an
  F_floating number into sine.  MTH$DSINCOS writes a D_floating number
  into  sine.   MTH$GSINCOS  writes  a  G_floating  number  into sine.
  MTH$HSINCOS writes an H_floating number into sine.

  cosine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: write only
  mechanism: by reference

  Cosine of the  angle  specified  by  angle-in-radians.   The  cosine
  argument  is  the  address  of  a floating-point number.  MTH$SINCOS
  writes an F_floating  number  into  cosine.   MTH$DSINCOS  writes  a
  D_floating  number  into  cosine.   MTH$GSINCOS  writes a G_floating
  number into cosine.  MTH$HSINCOS writes an  H_floating  number  into
  cosine.

MTH$xSINCOSD

  The Sine and Cosine of Angle Expressed in  Degrees  routine  returns
  the sine and cosine of a given angle (in degrees).

     Format:

       MTH$SINCOSD  angle-in-degrees ,sine ,cosine

       MTH$DSINCOSD  angle-in-degrees ,sine ,cosine

       MTH$GSINCOSD  angle-in-degrees ,sine ,cosine

       MTH$HSINCOSD  angle-in-degrees ,sine ,cosine

                  Each of the above four formats accepts as input one
                  of the four floating-point types.

     Arguments:

  angle-in-degrees

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: read only
  mechanism: by reference

  Angle  (in  degrees)  whose  sine  and  cosine   are   returned   by
  MTH$xSINCOSD.   The  angle-in-degrees  argument  is the address of a
  floating-point  number  that  is  this  angle.    For   MTH$SINCOSD,
  angle-in-degrees   is   an  F_floating  number.   For  MTH$DSINCOSD,
  angle-in-degrees  is  a  D_floating   number.    For   MTH$GSINCOSD,
  angle-in-degrees   is   a   G_floating  number.   For  MTH$HSINCOSD,
  angle-in-degrees is an H_floating number.

  sine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: write only
  mechanism: by reference

  Sine of the angle specified by angle-in-degrees.  The sine  argument
  is  the  address  of a floating-point number.  MTH$SINCOSD writes an
  F_floating number  into  sine.   MTH$DSINCOSD  writes  a  D_floating
  number  into  sine.   MTH$GSINCOSD  writes  a G_floating number into
  sine.  MTH$HSINCOSD writes an H_floating number into sine.

  cosine

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: write only
  mechanism: by reference

  Cosine of the  angle  specified  by  angle-in-degrees.   The  cosine
  argument  is  the  address  of a floating-point number.  MTH$SINCOSD
  writes an F_floating number  into  cosine.   MTH$DSINCOSD  writes  a
  D_floating  number  into  cosine.   MTH$GSINCOSD writes a G_floating
  number into cosine.  MTH$HSINCOSD writes an H_floating  number  into
  cosine.

MTH$xSIND

  The Sine of Angle Expressed in Degrees routine returns the sine of a
  given angle (in degrees).

     Format:

       MTH$SIND  angle-in-degrees

       MTH$DSIND  angle-in-degrees

       MTH$GSIND  angle-in-degrees

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-degrees

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Angle (in degrees).  The angle-in-degrees argument is the address of
  a   floating-point   number  that  is  this  angle.   For  MTH$SIND,
  angle-in-degrees specifies an  F_floating  number.   For  MTH$DSIND,
  angle-in-degrees  specifies  a  D_floating  number.   For MTH$GSIND,
  angle-in-degrees specifies a G_floating number.

MTH$xSINH

  The Hyperbolic Sine routine returns the hyperbolic sine of the input
  value specified by floating-point-input-value.

     Format:

       MTH$SINH  floating-point-input-value

       MTH$DSINH  floating-point-input-value

       MTH$GSINH  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a  floating-point  number  that  is  this  value.   For
  MTH$SINH, floating-point-input-value specifies an F_floating number.
  For  MTH$DSINH,  floating-point-input-value  specifies  a D_floating
  number.   For  MTH$GSINH,  floating-point-input-value  specifies   a
  G_floating number.

MTH$xSQRT

  The Square Root routine returns the square root of the  input  value
  floating-point-input-value.

     Format:

       MTH$SQRT  floating-point-input-value

       MTH$DSQRT  floating-point-input-value

       MTH$GSQRT  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  Input value.  The floating-point-input-value argument is the address
  of  a  floating-point  number  that  contains this input value.  For
  MTH$SQRT, floating-point-input-value specifies an F_floating number.
  For  MTH$DSQRT,  floating-point-input-value  specifies  a D_floating
  number.   For  MTH$GSQRT,  floating-point-input-value  specifies   a
  G_floating number.

MTH$xTAN

  The Tangent of  Angle  Expressed  in  Radians  routine  returns  the
  tangent of a given angle (in radians).

     Format:

       MTH$TAN  angle-in-radians

       MTH$DTAN  angle-in-radians

       MTH$GTAN  angle-in-radians

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-radians

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input angle (in radians).  The angle-in-radians argument is  the
  address of a floating-point number that is this angle.  For MTH$TAN,
  angle-in-radians specifies  an  F_floating  number.   For  MTH$DTAN,
  angle-in-radians  specifies  a  D_floating  number.   For  MTH$GTAN,
  angle-in-radians specifies a G_floating number.

MTH$xTAND

  The Tangent of  Angle  Expressed  in  Degrees  routine  returns  the
  tangent of a given angle (in degrees).

     Format:

       MTH$TAND  angle-in-degrees

       MTH$DTAND  angle-in-degrees

       MTH$GTAND  angle-in-degrees

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  angle-in-degrees

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input angle (in degrees).  The angle-in-degrees argument is  the
  address  of  a  floating-point  number  which  is  this  angle.  For
  MTH$TAND, angle-in-degrees  specifies  an  F_floating  number.   For
  MTH$DTAND,  angle-in-degrees  specifies  a  D_floating  number.  For
  MTH$GTAND, angle-in-degrees specifies a G_floating number.

MTH$xTANH

  The Compute the Hyperbolic Tangent routine  returns  the  hyperbolic
  tangent of the input value.

     Format:

       MTH$TANH  floating-point-input-value

       MTH$DTANH  floating-point-input-value

       MTH$GTANH  floating-point-input-value

                  Each of the above formats accepts as input one of
                  the floating-point types.

     Arguments:

  floating-point-input-value

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating
  access: read only
  mechanism: by reference

  The input value.  The  floating-point-input-value  argument  is  the
  address  of  a floating-point number that contains this input value.
  For MTH$TANH,  floating-point-input-value  specifies  an  F_floating
  number.    For  MTH$DTANH,  floating-point-input-value  specifies  a
  D_floating  number.    For   MTH$GTANH,   floating-point-input-value
  specifies a G_floating number.

MTH$UMAX

  The Compute Unsigned Maximum routine computes the unsigned  longword
  maximum of n unsigned longword arguments, where n is greater than or
  equal to 1.

     Format:

       MTH$UMAX  argument [argument,...]

     Arguments:

  argument

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Argument whose maximum MTH$UMAX computes.  Each argument argument is
  an unsigned longword that contains one of these values.

  argument

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Additional arguments whose maximum MTH$UMAX computes.  Each argument
  argument is an unsigned longword that contains one of these values.

MTH$UMIN

  The Compute Unsigned Minimum routine computes the unsigned  longword
  minimum of n unsigned longword arguments, where n is greater than or
  equal to 1.

     Format:

       MTH$UMIN  argument [argument,...]

     Arguments:

  argument

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Argument whose minimum MTH$UMIN computes.  Each argument argument is
  an unsigned longword that contains one of these values.

  argument

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Additional arguments whose minimum MTH$UMIN computes.  Each argument
  argument is an unsigned longword that contains one of these values.

OTS$

Additional information available:

OTS$CNVOUTOTS$CVT_L_TBOTS$CVT_L_TIOTS$CVT_L_TL
OTS$CVT_L_TOOTS$CVT_L_TUOTS$CVT_L_TZOTS$CVT_TB_L
OTS$CVT_TI_LOTS$CVT_TL_LOTS$CVT_TO_LOTS$CVT_TU_L
OTS$CVT_TZ_LOTS$DIV_PK_LONGOTS$DIV_PK_SHORTOTS$MOVE3
OTS$MOVE5OTS$POWDDOTS$POWDJOTS$POWDR
OTS$POWGGOTS$POWGJOTS$POWHH_R3OTS$POWHJ_R3
OTS$POWIIOTS$POWJJOTS$POWLULUOTS$POWRD
OTS$POWRJOTS$POWRROTS$SCOPY_DXDXOTS$SCOPY_R_DX
OTS$SFREE1_DDOTS$SFREEN_DDOTS$SGET1_DD

OTS$CVT T zOTS$CVT T zOTS$DIVCxOTS$MULCx
OTS$POWCxCxOTS$POWCxJOTS$POWxLU

OTS$CNVOUT

  The  Convert  Floating  to  Character  String  routines  convert   a
  D_floating, G_floating or H_floating number to a character string in
  the FORTRAN E format.

     Format:

       OTS$CNVOUT  D-G-or-H-float-pt-input-val
                  ,fixed-length-resultant-string ,digits-in-fraction

       OTS$CNVOUT_G  D-G-or-H-float-pt-input-val
                  ,fixed-length-resultant-string ,digits-in-fraction

       OTS$CNVOUT_H  D-G-or-H-float-pt-input-val
                  ,fixed-length-resultant-string ,digits-in-fraction

     Arguments:

  D-G-or-H-float-pt-input-val

  VMS usage: floating_point
  type: D_floating, G_floating, H_floating
  access: read only
  mechanism: by reference

  Value  that  OTS$CNVOUT  converts  to  a  character   string.    For
  OTS$CNVOUT,  the D-G-or-H-float-pt-input-val argument is the address
  of a D_floating number containing the value.  For OTS$CNVOUT_G,  the
  D-G-or-H-float-pt-input-val  argument is the address of a G_floating
  number   containing    the    value.     For    OTS$CNVOUT_H,    the
  D-G-or-H-float-pt-input-val argument is the address of an H_floating
  number containing the value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed length

  Output string into which  OTS$CNVOUT  writes  the  character  string
  result   of   the   conversion.   The  fixed-length-resultant-string
  argument is the address of  a  descriptor  pointing  to  the  output
  string.

  digits-in-fraction

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of digits in the  fractional  portion  of  the  result.   The
  digits-in-fraction  argument  is an unsigned longword containing the
  number of digits to be written to  the  fractional  portion  of  the
  result.

OTS$CVT_L_TB

  The Convert an Unsigned Integer to Binary Text routine  converts  an
  unsigned  integer value of arbitrary length to binary representation
  in an ASCII text string.  By default, a longword is converted.

     Format:

       OTS$CVT_L_TB  varying-input-value ,fixed-length-resultant-string
                  [,number-of-digits] [,input-value-size]

     Arguments:

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Unsigned  integer  value  that  OTS$CVT_L_TB  converts   to   binary
  representation  in  an  ASCII  text string.  The varying-input-value
  argument is the address of this integer value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed-length

  ASCII text string that OTS$CVT_L_TB creates  when  it  converts  the
  integer  value.   The  fixed-length-resultant-string argument is the
  address of a descriptor pointing to this  ASCII  text  string.   The
  string is assumed to be fixed length (DSC$K_CLASS_S).

  number-of-digits

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Minimum  number  of  digits  in  the  binary  representation  to  be
  generated.   The  number-of-digits  argument  is  a  signed longword
  integer  containing  this  minumum  number.   This  is  an  optional
  argument.   If  omitted,  the default is 1.  If the actual number of
  significant digits is  less  than  the  minimum  number  of  digits,
  leading zeros are produced.  If the minimum number of digits is zero
  and the  value  of  the  integer  to  be  converted  is  also  zero,
  OTS$CVT_L_TB creates a blank string.

  input-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Size of the integer to be converted, in bytes.  The input-value-size
  argument  is  a  signed  longword  integer containing the byte size.
  This is an optional argument.  If omitted, the default is 4.

OTS$CVT_L_TI

  The Convert Signed Integer to Decimal Text routine converts a signed
  integer  to  a  decimal  ASCII text string.  This procedure supports
  FORTRAN Iw and Iw.m output and BASIC output conversion.

     Format:

       OTS$CVT_L_TI  varying-input-value ,fixed-length-resultant-string
                  [,number-of-digits] [,input-value-size] [,flags-value]

     Arguments:

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Signed integer value that OTS$CVT_L_TI converts to a  decimal  ASCII
  text  string.   The  varying-input-value  argument is the address of
  this integer value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed length

  Decimal ASCII text string that OTS$CVT_L_TI creates when it converts
  the  signed  integer.  The fixed-length-resultant-string argument is
  the address of a descriptor  pointing  to  this  text  string.   The
  string is assumed to be fixed-length (DSC$K_CLASS_S).

  number-of-digits

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Minimum number of digits to be generated when OTS$CVT_L_TI  converts
  the   signed   integer   to   a  decimal  ASCII  text  string.   The
  number-of-digits argument is a signed  longword  integer  containing
  this number.  This is an optional argument.  If omitted, the default
  value is 1.  If the actual number of significant digits is  smaller,
  OTS$CVT_L_TI  inserts  leading  zeros  into  the  output string.  If
  number-of-digits  is   zero   and   varying-input-value   is   zero,
  OTS$CVT_L_TI writes a blank string to the output string.

  input-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by the value to be converted to text.   The
  input-value-size  argument  is  a signed longword integer containing
  this value size.  The value size must be either  1,  2,  or  4.   If
  value  size  is  1  or  2,  the value is sign-extended to a longword
  before conversion.  This is an optional argument.  If  omitted,  the
  default is 4.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Caller-supplied flags that you may use if you want  OTS$CVT_L_TI  to
  insert  a  plus  sign  before the converted number.  The flags-value
  argument is an unsigned longword containing the flags.

OTS$CVT_L_TL

  The Convert Integer to Logical Text routine converts an  integer  to
  ASCII text string representation using FORTRAN L (logical) format.

     Format:

       OTS$CVT_L_TL  longword-integer-value
                     ,fixed-length-resultant-string

     Arguments:

  longword-integer-value

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Value that OTS$CVT_L_TL converts  to  an  ASCII  text  string.   The
  longword-integer-value  argument is the address of a signed longword
  integer containing this integer value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed length

  Output string that OTS$CVT_L_TL creates when it converts the integer
  value  to  an  ASCII text string.  The fixed-length-resultant-string
  argument is the address of a descriptor pointing to this ASCII  text
  string.

OTS$CVT_L_TO

  The Convert Unsigned Integer  to  Octal  Text  routine  converts  an
  unsigned  integer  to  an  octal  ASCII  text  string.  OTS$CVT_L_TO
  supports FORTRAN Ow and Ow.m output conversion formats.

     Format:

       OTS$CVT_L_TO  varying-input-value ,fixed-length-resultant-string
                  [,number-of-digits] [,input-value-size]

     Arguments:

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Integer value that OTS$CVT_L_TO converts  to  an  octal  ASCII  text
  string.   The  varying-input-value  argument  is the address of this
  integer value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed length

  Output string that OTS$CVT_L_TO creates when it converts the integer
  value     to     an     octal     ASCII     text     string.     The
  fixed-length-resultant-string  argument  is   the   address   of   a
  descriptor  pointing  to the octal ASCII text string.  The string is
  assumed to be fixed-length (DSC$K_CLASS_S).

  number-of-digits

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Minimum  number  of  digits  that  OTS$CVT_L_TO  generates  when  it
  converts  the  integer  value  to  an  octal ASCII text string.  The
  number-of-digits argument is a signed  longword  integer  containing
  the  minimum  number  of  digits.  This is an optional argument.  If
  omitted, the default is 1.  If  the  actual  number  of  significant
  digits  in  the  octal  ASCII  text  string is less than the minimum
  number of digits, OTS$CVT_L_TO inserts leading zeros into the output
  string.   If  number-of-digits  is  zero  and varying-input-value is
  zero, OTS$CVT_L_TO writes a blank string to the output string.

  input-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Size of the integer to be converted, in bytes.  The input-value-size
  argument is a signed longword integer containing the number of bytes
  in the integer to be converted by OTS$CVT_L_TO.  This is an optional
  argument.  If omitted, the default is 4.

OTS$CVT_L_TU

  The Convert Unsigned Integer to  Decimal  Text  routine  converts  a
  byte,  word  or longword value to unsigned decimal representation in
  an ASCII text string.  By default, a longword is converted.

     Format:

       OTS$CVT_L_TU  varying-input-value ,fixed-length-resultant-string
                  [,number-of-digits] [,input-value-size]

     Arguments:

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Unsigned byte,  word  or  longword  that  OTS$CVT_L_TU  converts  to
  unsigned decimal representation in an ASCII text string.  (The value
  of    the    input-value-size    argument     determines     whether
  varying-input-value    is   a   byte,   word   or   longword.)   The
  varying-input-value argument is the address of the unsigned integer.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed-length

  Output string  (fixed-length)  that  OTS$CVT_L_TU  creates  when  it
  converts  the integer value to unsigned decimal representation in an
  ASCII text string.  The  fixed-length-resultant-string  argument  is
  the address of a descriptor pointing to this ASCII text string.

  number-of-digits

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Minimum number of digits in the ASCII text string that  OTS$CVT_L_TU
  creates.   The  number-of-digits  argument  is  an unsigned longword
  containing the minimum number.  This is an  optional  argument.   If
  omitted, the default is 1.

  input-value-size

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Size  of  the  integer  value  to  be  converted,  in  bytes.    The
  input-value-size  argument  is  an  unsigned longword containing the
  size of the integer  value.   This  is  an  optional  argument.   If
  omitted, the default is 4.  The only values that OTS$CVT_L_TU allows
  are 1, 2 and 4.  If any other value is specified, OTS$CVT_L_TU  uses
  the default value, 4.

OTS$CVT_L_TZ

  The Convert Integer to Hexadecimal Text routine converts an unsigned
  integer  to  a hexadecimal ASCII text string.  OTS$CVT_L_TZ supports
  FORTRAN Zw and Zw.m output conversion formats.

     Format:

       OTS$CVT_L_TZ  varying-input-value ,fixed-length-resultant-string
                  [,number-of-digits] [,input-value-size]

     Arguments:

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Integer value that OTS$CVT_L_TZ converts to a hexadecimal ASCII text
  string.   The  varying-input-value  argument  is the address of this
  integer value.

  fixed-length-resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor, fixed length

  Output string that OTS$CVT_L_TZ creates when it converts the integer
  value     to    a    hexidecimal    ASCII    text    string.     The
  fixed-length-resultant-string  argument  is   the   address   of   a
  descriptor  pointing  to  this  ASCII  text  string.   The string is
  assumed to be fixed-length (DSC$K_CLASS_S).

  number-of-digits

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Minimum number of digits in the ASCII text string that  OTS$CVT_L_TZ
  creates when it converts the integer.  The number-of-digits argument
  is a signed longword integer containing this minimum  number.   This
  is  an  optional  argument.   If  omitted, the default is 1.  If the
  actual  number  of  significant  digits  in  the  text  string  that
  OTS$CVT_L_TZ  creates is less than this minimum number, OTS$CVT_L_TZ
  inserts leading zeros in the output string.  If the  minimum  number
  of  digits  is  zero  and  the integer value to be converted is also
  zero, OTS$CVT_L_TZ writes a blank string to the output string.

  input-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Size of the integer  that  OTS$CVT_L_TZ  converts,  in  bytes.   The
  input-value-size  argument  is  a signed longword integer containing
  the value size.  This is an  optional  argument.   If  omitted,  the
  default is 4.

OTS$CVT_TB_L

  The Convert Binary Text to  Unsigned  Integer  routine  converts  an
  ASCII  text  string representation of an unsigned binary value to an
  unsigned integer value of arbitrary length.  By default, the  result
  is  a longword.  Valid input characters are the blank and the digits
  0 and 1.  No sign is permitted.

     Format:

       OTS$CVT_TB_L  input-string ,varying-output-value
                  [,output-value-size] [,flags-value]

     Arguments:

  input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Input string containing the ASCII text string representation  of  an
  unsigned  binary  value  that  OTS$CVT_TB_L  converts  to an integer
  value.  The input-string argument is the  address  of  a  descriptor
  pointing to the ASCII text string.

  varying-output-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Integer that OTS$CVT_TB_L creates when it converts  the  ASCII  text
  string.  The  varying-output-value  argument  is  the address of the
  integer value.

  output-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by  the  value  created  when  OTS$CVT_TB_L
  converts   the   ASCII   text  string  to  an  integer  value.   The
  output-value-size   argument   contains   the   value    size.    If
  output-value-size contains a zero or a negative number, OTS$CVT_TB_L
  returns an error code as the condition value.  This is  an  optional
  argument.  If omitted, the default is 4.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied flags that  OTS$CVT_TB_L  uses  to  determine  how  to
  interpret  blanks  and  tabs.  The flags-value argument contains the
  value of the user-supplied flags.

OTS$CVT_TI_L

  The Convert Signed Integer Text to Integer routine converts an ASCII
  text  string  representation  of  a decimal number to a signed byte,
  word, or longword integer  value.   The  result  is  a  longword  by
  default,  but the calling program can specify a byte or a word value
  instead.

     Format:

       OTS$CVT_TI_L  fixed-or-dynamic-input-string ,varying-output-value
                  [,output-value-size] [,flags-value]

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input ACSII text string that OTS$CVT_TI_L converts to a signed byte,
  word,  or  longword.   The fixed-or-dynamic-input-string argument is
  the address of a descriptor pointing to the input string.

  varying-output-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Signed  byte,  word,  or  longword  integer  value   (depending   on
  input-value-size)  that  OTS$CVT_TI_L  creates  when it converts the
  ASCII text string.  The varying-output-value argument is the  address
  of the integer value.

  output-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by the value that OTS$CVT_TI_L creates when
  it converts the ASCII text string to an integer value.  Valid values
  for the output-value-size argument are 1, 2, and 4.  The contents  of
  output-value-size   determine   whether   the   integer   value  that
  OTS$CVT_TI_L creates is a byte, word, or longword.   If  an  invalid
  value  is given, OTS$CVT_TI_L returns an error.  This is an optional
  argument.  If omitted, the default is 4 and OTS$CVT_TI_L  returns  a
  longword integer.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied flags that OTS$CVT_TI_L uses to determine  how  blanks
  and  tabs  are interpreted.  The flags-value argument is an unsigned
  longword containing the value of the flags.

       Bit     Description

       0       If set, OTS$CVT_TI_L  ignores  all  blanks.  If  clear,
                 OTS$CVT_TI_L  ignores  leading  blanks but interprets
                 blanks after the first legal character as zeros.

       4       If  set,   OTS$CVT_TI_L   ignores   tabs.   If   clear,
                 OTS$CVT_TI_L interprets tabs as invalid characters.

OTS$CVT_TL_L

  The Convert Logical Text to Integer routine converts an  ASCII  text
  string  representation  of a FORTRAN-77 L format to a byte, word, or
  longword integer value.  The result is a longword  by  default,  but
  the calling program can specify a byte or a word value instead.

     Format:

       OTS$CVT_TL_L  fixed-or-dynamic-input-string
                  ,varying-output-value [,output-value-size]

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input string containing an ASCII text representation of a FORTRAN-77
  L  format  that  OTS$CVT_TL_L  converts  to a byte, word or longword
  integer value.  The fixed-or-dynamic-input-string  argument  is  the
  address of a descriptor pointing to the input string.

  varying-output-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Integer value that OTS$CVT_TL_L creates when it converts  the  ACSII
  text  input string.  The varying-output-value argument is the address
  of this integer value.  OTS$CVT_TL_L returns a minus one (-1) as the
  contents  of  the  varying-output-value  argument  if  the  character
  denoted by "Letter:" is "T" or "t".   Otherwise,  OTS$CVT_TL_L  sets
  varying-output-value to zero.

  output-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by  the  integer  value  that  OTS$CVT_TL_L
  creates   when  it  converts  the  ASCII  text  input  string.   The
  output-value-size argument  contains  the  number  of  bytes.   Valid
  values are 1, 2, and 4.  These values determine whether OTS$CVT_TL_L
  returns a byte, word or longword integer value.  If an invalid value
  is  given,  OTS$CVT_TL_L  returns  an  error.   This  is an optional
  argument.  If omitted, the default is 4 and OTS$CVT_TL_L  returns  a
  longword integer value.

OTS$CVT_TO_L

  The Convert Octal Text to Signed Integer routine converts  an  ASCII
  text string representation of an unsigned octal value to an unsigned
  integer of an  arbitrary  length.   The  result  is  a  longword  by
  default, but the calling program can specify any number of bytes.

     Format:

       OTS$CVT_TO_L fixed-or-dynamic-input-string
                   ,varying-output-value [,output-value-size]
                   [,flags-value]

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input string containing an ASCII text string  representation  of  an
  unsigned  octal  value  that  OTS$CVT_TO_L  converts  to an unsigned
  integer.  The fixed-or-dynamic-input-string argument is the  address
  of  a  descriptor  pointing  to  the  input string.  The valid input
  characters are blanks and the  digits  0  through  7.   No  sign  is
  permitted.

  varying-output-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Integer value that OTS$CVT_TO_L creates when it converts  the  input
  string.   The  varying-output-value  argument  is  the address of the
  unsigned integer value.

  output-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of  bytes  occupied  by  the  unsigned  integer  value.   The
  input-value-size  argument  contains  the  number  of bytes.  If the
  content of the output-value-size  argument  is  zero  or  a  negative
  number,   OTS$CVT_TO_L  returns  an  error.   This  is  an  optional
  argument.  If omitted, the default is 4 and OTS$CVT_TO_L  returns  a
  longword integer.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied flags that OTS$CVT_TO_L uses to determine  how  blanks
  within  the  input string are interpreted.  The flags-value argument
  contains the user-supplied flags.

       Bit 0   If set, OTS$CVT_TO_L  ignores  all  blanks.  If  clear,
                 OTS$CVT_TO_L interprets blanks as zeros.

OTS$CVT_TU_L

  The Convert Unsigned Decimal Text to  Integer  routine  converts  an
  ASCII  text string representation of an unsigned decimal value to an
  unsigned byte, word, or longword value.  By default, the result is a
  longword.   Valid  input  characters  are the space and the digits 0
  through 9.  No sign is permitted.

     Format:

       OTS$CVT_TU_L  fixed-length-input-string ,varying-output-value
                  [,output-value-size] [,flags-value]

     Arguments:

  fixed-length-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length

  Input  string  (fixed-length)  containing  an  ASCII   text   string
  representation  of  an  unsigned  decimal  value  that  OTS$CVT_TU_L
  converts   to   a   byte,   word,   or    longword    value.     The
  fixed-length-input-string  argument  is  the address of a descriptor
  pointing to the input string.

  varying-output-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Byte, word, or longword (depending on output-value-size)  into  which
  OTS$CVT_TU_L  writes  the  converted value.  The varying-output-value
  argument is the address of the byte, word, or longword.

  output-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by  the  value  created  when  OTS$CVT_TU_L
  converts  the  input string.  The output-value-size argument contains
  the number of bytes.  OTS$CVT_TU_L allows value sizes of 1, 2 and 4.
  If  any other value is specified, or if input-value-size is omitted,
  OTS$CVT_TU_L uses the default, 4.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied flags which OTS$CVT_TU_L uses to determine how  blanks
  and  tabs  are  interpreted.   The flags-value argument contains the
  user-supplied flags.

       Bit   Description

       0     If  set,   OTS$CVT_TU_L   ignores   blanks.   If   clear,
               OTS$CVT_TU_L interprets blanks as zeros.

       4     If set, OTS$CVT_TU_L ignores tabs. If clear, OTS$CVT_TU_L
               interprets tabs as invalid characters.

OTS$CVT T z

  The Convert Numeric Text to D- or  F-Floating  routines  convert  an
  ASCII  text string representation of a numeric value to a D_floating
  or F_floating value.

     Format:

       OTS$CVT_T_D  fixed-or-dynamic-input-string
                  ,floating-point-value [,digits-in-fraction]
                  [,scale-factor] [,flags-value] [,extension-bits]

       OTS$CVT_T_F  fixed-or-dynamic-input-string
                  ,floating-point-value [,digits-in-fraction]
                  [,scale-factor] [,flags-value] [,extension-bits]

                  Each of the above formats corresponds to one of the
                  floating-point types.

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input string containing an ASCII text  string  representation  of  a
  numeric   value   that  OTS$CVT_T_Z  converts  to  a  D_floating  or
  F_floating value.  The fixed-or-dynamic-input-string argument is the
  address of a descriptor pointing to the input string.

  floating-point-value

  VMS usage: floating_point
  type: D_floating, F_floating
  access: write only
  mechanism: by reference

  Floating-point value that OTS$CVT_T_z creates when it  converts  the
  input  string.   The floating-point-value argument is the address of
  the floating-point value.  For OTS$CVT_T_D, floating-point-value  is
  a  D_floating  number.   For OTS$CVT_T_F, floating-point-value is an
  F_floating number.

  digits-in-fraction

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of digits in the fraction if no decimal point is included  in
  the  input  string.   The  digits-in-fraction  argument contains the
  number of digits.  This is an optional argument.   If  omitted,  the
  default is zero.

  scale-factor

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Scale factor.  The scale-factor argument contains the value  of  the
  scale  factor.   If  bit 6 of the flags-value argument is clear, the
  resultant value is divided by  10**factor  unless  the  exponent  is
  present.  If bit 6 of flags-value is set, the scale factor is always
  applied.  This is an optional argument.  If omitted, the default  is
  zero.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied  flags.   The  flags-value   argument   contains   the
  user-supplied flags.

       Bit 0   If  set,  OTS$CVT_T_z   ignores   blanks.   If   clear,
                 OTS$CVT_T_z interprets blanks as zeros.

       Bit 1   If set, OTS$CVT_T_z allows only E or  e  exponents.  If
                 clear,  OTS$CVT_T_z  allows  E,  e,  D,  d,  Q  and q
                 exponents. (Bit 1 is clear  for  BASIC  and  set  for
                 FORTRAN.)

       Bit 2   If set,  OTS$CVT_T_z  interprets  an  underflow  as  an
                 error.  If  clear,  OTS$CVT_T_z does not interpret an
                 underflow as an error.

       Bit 3   If set, OTS$CVT_T_z  truncates  the  value.  If  clear,
                 OTS$CVT_T-z rounds the value.

       Bit 4   If set, OTS$CVT_T_z ignores tabs. If clear, OTS$CVT_T_z
                 interprets tabs as invalid characters.

       Bit 5   If set, an exponent must begin with  a  valid  exponent
                 letter. If clear, the exponent letter may be omitted.

       Bit 6   If set, OTS$CVT_T_z always applies the scale factor. If
                 clear,  OTS$CVT_T_z  applies the scale factor only if
                 there is no exponent present in the string.

  extension-bits

  VMS usage: byte_signed
  type: byte (signed)
  access: write only
  mechanism: by reference

  Extra precision bits.  The extension-bits argument is the address of
  a   byte   containing   the   extra  precision  bits.   If  present,
  floating-point-value is not rounded, and  the  first  n  bits  after
  truncation  are  returned  in  this  argument.   For  D_floating and
  F_floating, n equals 8 and the bits are returned as a byte.

OTS$CVT T z

  The Convert Numeric Text to G- or  H-Floating  routines  convert  an
  ASCII  text string representation of a numeric value to a G_floating
  or H_floating value.

     Format:

       OTS$CVT_T_G  fixed-or-dynamic-input-string
                  ,floating-point-value [,digits-in-fraction]
                  [,scale-factor] [,flags-value] [,extension-bits]

       OTS$CVT_T_H  fixed-or-dynamic-input-string
                  ,floating-point-value [,digits-in-fraction]
                  [,scale-factor] [,flags-value] [,extension-bits]

                  Each of the above formats corresponds to one of the
                  floating-point types.

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input string containing an ASCII text  string  representation  of  a
  numeric   value   that  OTS$CVT_T_Z  converts  to  a  G-floating  or
  H-floating value.  The fixed-or-dynamic-input-string argument is the
  address of a descriptor pointing to the input string.

  floating-point-value

  VMS usage: floating_point
  type: G_floating, H_floating
  access: write only
  mechanism: by reference

  Floating-point value that OTS$CVT_T_z creates when it  converts  the
  input  string.   The floating-point-value argument is the address of
  the floating-point value.  For OTS$CVT_T_G, floating-point-value  is
  a  G_floating  number.   For OTS$CVT_T_H, floating-point-value is an
  H_floating number.

  digits-in-fraction

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of digits in the fraction if no decimal point is included  in
  the  input  string.   The  digits-in-fraction  argument contains the
  number of digits.  This is an optional argument.   If  omitted,  the
  default is zero.

  scale-factor

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Scale factor.  The scale-factor argument contains the value  of  the
  scale  factor.   If  bit 6 of the flags-value argument is clear, the
  resultant value is divided by  10**factor  unless  the  exponent  is
  present.  If bit 6 of flags-value is set, the scale factor is always
  applied.  This is an optional argument.  If omitted, the default  is
  zero.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied  flags.   The  flags-value   argument   contains   the
  user-supplied flags.

       Bit 0   If  set,  OTS$CVT_T_z   ignores   blanks.   If   clear,
                 OTS$CVT_T_z interprets blanks as zeros.

       Bit 1   If set, OTS$CVT_T_z allows only E or  e  exponents.  If
                 clear,  OTS$CVT_T_z  allows  E,  e,  D,  d,  Q  and q
                 exponents. (Bit 1 is clear  for  BASIC  and  set  for
                 FORTRAN.)

       Bit 2   If set,  OTS$CVT_T_z  interprets  an  underflow  as  an
                 error.  If  clear,  OTS$CVT_T_z does not interpret an
                 underflow as an error.

       Bit 3   If set, OTS$CVT_T_z  truncates  the  value.  If  clear,
                 OTS$CVT_T-z rounds the value.

       Bit 4   If set, OTS$CVT_T_z ignores tabs. If clear, OTS$CVT_T_z
                 interprets tabs as invalid characters.

       Bit 5   If set, an exponent must begin with  a  valid  exponent
                 letter. If clear, the exponent letter may be omitted.

       Bit 6   If set, OTS$CVT_T_z always applies the scale factor. If
                 clear,  OTS$CVT_T_z  applies the scale factor only if
                 there is no exponent present in the string.

  extension-bits

  VMS usage: word_signed
  type: word integer (signed)
  access: write only
  mechanism: by reference

  Extra precision bits.  The extension-bits argument is the address of
  a  signed  word  integer  containing  the  extra precision bits.  If
  present, floating-point-value is not rounded, and the first  n  bits
  after  truncation are returned in this argument.  For G_floating and
  H_floating, n equals 11 and  15,  respectively,  and  the  bits  are
  returned as a word, left-justified.

OTS$CVT_TZ_L

  The Convert Hexadecimal Text to Unsigned Integer routine converts an
  ASCII text string representation of an unsigned hexadecimal value to
  an unsigned integer  of  an  arbitrary  length.   The  result  is  a
  longword by default, but the calling program can specify either 1, 2
  or 4 bytes to receive either a byte, word, or longword value.

     Format:

       OTS$CVT_TZ_L  fixed-or-dynamic-input-string ,varying-input-value
                  [,input-value-size] [,flags-value]

     Arguments:

  fixed-or-dynamic-input-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length or dynamic string

  Input string containing an ASCII text string  representation  of  an
  unsigned hexadecimal value that OTS$CVT_TZ_L converts to an unsigned
  integer.  The fixed-or-dynamic-input-string argument is the  address
  of   a  descriptor  pointing  to  the  input  string.   Valid  input
  characters are the space, the digits 0 through 9, and the letters  A
  through F.  No sign is permitted.  Lowercase letters a through f are
  acceptable.

  varying-input-value

  VMS usage: varying_arg
  type: unspecified
  access: write only
  mechanism: by reference

  Integer value created when OTS$CVT_TZ_L converts the  input  string.
  The  varying-input-value  argument  is  the  address  of the integer
  value.

  input-value-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes occupied by the integer value.  The input-value-size
  argument contains the number of bytes.  If the value size is zero or
  a negative number, OTS$CVT_TZ_L returns an input  conversion  error.
  This is an optional argument.  If omitted, the default is 4.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-supplied flags that OTS$CVT_TZ_L uses to determine  how  blanks
  are  interpreted.   The flags-value argument is an unsigned longword
  containing these user-supplied flags.

       Bit 0   If  set,   OTS$CVT_TZ_L   ignores   blanks.   If   set,
                 OTS$CVT_TZ_L interprets blanks as zeros.

OTS$DIVCx

  The Complex Division routines return a complex result of  a  complex
  division on complex numbers.

     Format:

       OTS$DIVC  complex-dividend ,complex-divisor

       OTS$DIVCD_R3  complex-dividend ,complex-divisor

       OTS$DIVCG_R3  complex-dividend ,complex-divisor

                  Each of the above three formats corresponds to one
                  of the three floating-point complex types.

     Arguments:

  complex-dividend

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex  dividend.   The  complex-dividend   argument   contains   a
  floating-point  complex value.  For OTS$DIVC, complex-dividend is an
  F_floating complex number.  For OTS$DIVCD_R3, complex-dividend is  a
  D_floating  complex number.  For OTS$DIVCG_R3, complex-dividend is a
  G_floating complex number.

  complex-divisor

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex divisor.  The complex-divisor argument contains the value of
  the divisor.  For OTS$DIVC, complex-divisor is an F_floating complex
  number.  For OTS$DIVCD_R3, complex-divisor is a  D_floating  complex
  number.   For  OTS$DIVCG_R3, complex-divisor is a G_floating complex
  number.

OTS$DIV_PK_LONG

  The Packed  Decimal  Division  with  Long  Divisor  routine  divides
  fixed-point  decimal  data,  which is stored in packed decimal form,
  when precision and scale requirements  for  the  quotient  call  for
  multiple  precision  division.  The divisor must have a precision of
  thirty or thirty-one digits.

     Format:

       OTS$DIV_PK_LONG  packed-decimal-dividend ,packed-decimal-divisor
                  ,divisor-precision ,packed-decimal-quotient
                  ,quotient-precision ,precision-data ,scale-data

     Arguments:

  packed-decimal-dividend

  VMS usage: varying_arg
  type: packed decimal string
  access: read only
  mechanism: by reference

  Dividend.  The packed-decimal-dividend argument is the address of  a
  packed decimal string which contains the shifted dividend.

  packed-decimal-divisor

  VMS usage: varying_arg
  type: packed decimal string
  access: read only
  mechanism: by reference

  Divisor.  The packed-decimal-divisor argument is the  address  of  a
  packed decimal string which contains the divisor.

  divisor-precision

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Precision of the  divisor.   The  divisor-precision  argument  is  a
  signed  word  integer  which  contains the precision of the divisor.
  The high order bits are filled with zeros.

  packed-decimal-quotient

  VMS usage: varying_arg
  type: packed decimal string
  access: write only
  mechanism: by reference

  Quotient.  The packed-decimal-quotient argument is  the  address  of
  the  packed  decimal  string  into  which OTS$DIV_PK_LONG writes the
  quotient.

  quotient-precision

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Precision of the quotient.  The  quotient-precision  argument  is  a
  signed  word  integer  that  contains the precision of the quotient.
  The high order bits are filled with zeros.

  precision-data

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Additional  digits  of  precision  required.    The   precision-data
  argument  is  a  signed  word integer that contains the value of the
  additional digits of precision required.

  scale-data

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  The scale-data argument is a signed word integer that  contains  the
  scale data.

OTS$DIV_PK_SHORT

  The Packed Decimal  Division  with  Short  Divisor  routine  divides
  fixed-point  decimal  data,  which is stored in packed decimal form,
  when precision and scale requirements  for  the  quotient  call  for
  multiple-precision   division.   The  divisor  can  have  a  maximum
  precision of twenty-nine digits.

     Format:

       OTS$DIV_PK_SHORT  packed-decimal-dividend ,packed-decimal-divisor
                  ,divisor-precision ,packed-decimal-quotient
                  ,quotient-precision ,precision-data

     Arguments:

  packed-decimal-dividend

  VMS usage: varying_arg
  type: packed decimal string
  access: read only
  mechanism: by reference

  Dividend.The packed-decimal-dividend argument is the  address  of  a
  packed decimal string which contains the shifted dividend.

  packed-decimal-divisor

  VMS usage: varying_arg
  type: packed decimal string
  access: read only
  mechanism: by reference

  Divisor.  The packed-decimal-divisor argument is the  address  of  a
  packed decimal string which contains the divisor.

  divisor-precision

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Precision of the  divisor.   The  divisor-precision  argument  is  a
  signed  word  integer  which  contains the precision of the divisor.
  The high-order bits are filled with zeros.

  packed-decimal-quotient

  VMS usage: varying_arg
  type: packed decimal string
  access: write only
  mechanism: by reference

  Quotient.  The packed-decimal-quotient argument is the address of  a
  packed   decimal  string  into  which  OTS$DIV_PK_SHORT  writes  the
  quotient.

  quotient-precision

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Precision of the quotient.  The  quotient-precision  argument  is  a
  signed  word  integer  which contains the precision of the quotient.
  The high-order bits are filled with zeros.

  precision-data

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Additional  digits  of  precision  required.    The   precision-data
  argument  is  a  signed word integer which contains the value of the
  additional digits of precision required.

OTS$MOVE3

  The Move  Data  Without  Fill  routine  moves  up  to  2**31-1bytes,
  (2,147,483,647 bytes) from a specified source address to a specified
  destination address.

     Format:

       OTS$MOVE3  length-value ,source-array ,destination-array

     Arguments:

  length-value

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes of data to move.  The length-value argument contains
  the  number  of  bytes to move.  The value of length-value may range
  from 0 to 2,147,483,647 bytes.

  source-array

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference, array reference

  Data to be moved by OTS$MOVE3.  The source-array  argument  contains
  the address of an unsigned byte array that contains this data.

  destination-array

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: write only
  mechanism: by reference, array reference

  Item into which source-array will be moved.   The  destination-array
  argument  is  the  address  of  an  unsigned  byte  array into which
  OTS$MOVE3 writes the source data.

OTS$MOVE5

  The  Move  Data  with  Fill  routine  moves  up   to   2**31-1bytes,
  (2,147,483,647 bytes) from a specified source address to a specified
  destination address, with separate source and  destination  lengths,
  and  with  fill.   Overlap of the source and destination arrays does
  not affect the result.

     Format:

       OTS$MOVE5  longword-int-source-length ,source-array ,fill-value
                  ,longword-int-dest-length ,destination-array

     Arguments:

  longword-int-source-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Number of bytes of data  to  move.   The  longword-int-source-length
  argument  contains  a  signed  longword integer that is this number.
  The  value  of  longword-int-source-length  may  range  from  0   to
  2,147,483,647.

  source-array

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference, array reference

  Data to be moved by OTS$MOVE5.  The source-array  argument  contains
  the address of an unsigned byte array that contains this data.

  fill-value

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Character used to pad the source data if  longword-int-source-length
  is  less  than  longword-int-dest-length.   The  fill-value argument
  contains the address of an unsigned byte that is this character.

  longword-int-dest-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Size of the destination area in bytes.  The longword-int-dest-length
  argument  is  a  signed  longword integer containing this size.  The
  value  of  longword-int-dest-length  may  range   from   0   through
  2,147,483,647.

  destination-array

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: write only
  mechanism: by reference, array reference

  Item into which source-array will be moved.   The  destination-array
  argument  is  the  address  of  an  unsigned  byte  array into which
  OTS$MOVE5 will write the source data.

OTS$MULCx

  The Complex Multiplication routines calculate the complex product of
  two complex values.

     Format:

       OTS$MULCD_R3  complex-multiplier ,complex-multiplicand

       OTS$MULCG_R3  complex-multiplier ,complex-multiplicand

                  The above formats correspond to the D_floating and
                  G_floating complex types.

     Arguments:

  complex-multiplier

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex multiplier.  The complex-multiplier  argument  contains  the
  multiplier.   For  OTS$MULCD_R3,  complex-multiplier is a D_floating
  complex  number.   For   OTS$MULCG_R3,   complex-multiplier   is   a
  G_floating complex number.

  complex-multiplicand

  VMS usage: complex_number
  type: D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex multiplicand.  The  complex-multiplicand  argument  contains
  the  multiplicand.   For  OTS$MULCD_R3,  complex-multiplicand  is  a
  D_floating complex number.  For  OTS$MULCG_R3,  complex-multiplicand
  is an F_floating complex number.

OTS$POWCxCx

  The Raise a  Complex  Base  to  a  Complex  Floating-Point  Exponent
  routines  return  the  result of raising a complex base to a complex
  exponent.

     Format:

       OTS$POWCC  complex-base ,complex-exponent-value

       OTS$POWCDCD_R3  complex-base ,complex-exponent-value

       OTS$POWCGCG_R3  complex-base ,complex-exponent-value

                  Each of the above three formats corresponds to one
                  of the three floating-point complex types.

     Arguments:

  complex-base

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex base.  The complex-base argument contains the value  of  the
  base.   For OTS$POWCC, complex-base is an F_floating complex number.
  For OTS$POWCDCD_R3, complex-base is  a  D_floating  complex  number.
  For OTS$POWCGCG_R3, complex-base is a G_floating complex number.

  complex-exponent-value

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex exponent.  The complex-exponent-value argument contains  the
  value  of the exponent.  For OTS$POWCC, complex-exponent-value is an
  F_floating      complex      number.       For       OTS$POWCDCD_R3,
  complex-exponent-value   is   a   D_floating  complex  number.   For
  OTS$POWCGCG_R3,  complex-exponent-value  is  a  G_floating   complex
  number.

OTS$POWCxJ

  The Raise a Complex Base  to  a  Signed  Longword  Integer  Exponent
  routines  return  the complex result of raising a complex base to an
  integer exponent.

     Format:

       OTS$POWCJ  complex-base ,longword-integer-exponent

       OTS$POWCDJ_R3  complex-base ,longword-integer-exponent

       OTS$POWCGJ_R3  complex-base ,longword-integer-exponent

                  Each of the above three formats corresponds to one
                  of the three floating-point complex types.

     Arguments:

  complex-base

  VMS usage: complex_number
  type: F_floating complex, D_floating complex, G_floating complex
  access: read only
  mechanism: by value

  Complex base.  The complex-base argument contains the complex  base.
  For  OTS$POWCJ,  complex-base  is an F_floating complex number.  For
  OTS$POWCDJ_R3, complex-base is a  D_floating  complex  number.   For
  OTS$POWCGJ_R3, complex-base is a G_floating complex number.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Exponent.   The  longword-integer-exponent  argument  is  a   signed
  longword integer containing the exponent.

OTS$POWDD

  The Exponentiation of a D_floating Base  to  a  D_floating  Exponent
  routine raises a D_floating base to a D_floating exponent.

     Format:

       OTS$POWDD  D-floating-point-base ,D-floating-point-exponent

                  The above format corresponds to raising the
                  D_floating base to a D_floating exponent.

     Arguments:

  D-floating-point-base

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by value

  Base.  The D-floating-point-base argument  is  a  D_floating  number
  containing the base.

  D-floating-point-exponent

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by value

  Exponent.   The  D-floating-point-exponent  argument  contains   the
  exponent.  The D-floating-point-exponent is a D_floating number.

OTS$POWDJ

  The Exonentiation of a D_floating Base routine raises  a  D_floating
  base to a longword exponent.

     Format:

       OTS$POWDJ  D-floating-point-base ,longword-integer-exponent

     Arguments:

  D-floating-point-base

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by value

  Base.  The D-floating-point-base argument  is  a  D_floating  number
  containing the base.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Exponent.   The  longword-integer-exponent  argument  contains   the
  signed longword integer exponent.

OTS$POWDR

  The Exponentiation of a D_floating Base to  an  F_floating  Exponent
  routines raise a D_floating base to an F_floating exponent.

     Format:

       OTS$POWDR  D-floating-point-base ,F-floating-point-exponent

                  The above format correspond to raising the
                  D_floating base to an F_floating exponent.

     Arguments:

  D-floating-point-base

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by value

  Base.  The D-floating-point-base argument  is  a  D_floating  number
  containing the base.

  F-floating-point-exponent

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by value

  Exponent.   The  F-floating-point-exponent  argument  contains   the
  exponent.  The F-floating-point-exponent is an F_floating number.

OTS$POWGG

  The Raise a G_floating Base to a G_floating Exponent routine  raises
  a G_floating base to a G_floating exponent.

     Format:

       OTS$POWGG  G-floating-point-base ,G-floating-point-exponent

     Arguments:

  G-floating-point-base

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by value

  Base which OTS$POWGx raises to a G_floating  or  longword  exponent.
  The G-floating-point-base argument is a G_floating number containing
  the base.

  G-floating-point-exponent

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by value

  Exponent   to   which    OTS$POWGG    raises    the    base.     The
  G-floating-point-exponent argument is a G_floating number containing
  the exponent.

OTS$POWGJ

  The Raise a G_floating Base to a Longword Exponent routine raises  a
  G_floating base to a longword exponent.

     Format:

       OTS$POWGJ  G-floating-point-base ,longword-integer-exponent

     Arguments:

  G-floating-point-base

  VMS usage: floating_point
  type: G_floating
  access: read only
  mechanism: by value

  Base  which  OTS$POWGJ  raises  to   a   longword   exponent.    The
  G-floating-point-base argument is a G_floating number containing the
  base.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Exponent   to   which    OTS$POWGJ    raises    the    base.     The
  longword-integer-exponent  argument  is  a  signed  longword integer
  containing the exponent.

OTS$POWHH_R3

  The Exponentiation of an H_floating Base to an  H_floating  Exponent
  routine raises an H_floating base to an H_floating exponent.

     Format:

       OTS$POWHH_R3  H-floating-point-base ,H-floating-point-exponent

     Arguments:

  H-floating-point-base

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by value

  Base.  The H-floating-point-base argument is  an  H_floating  number
  containing the base.

  H-floating-point-exponent

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by value

  Exponent.   The  H-floating-point-exponent  argument  contains   the
  H-floating exponent.

OTS$POWHJ_R3

  The Exponentiation of an H_floating  Base  to  a  Longword  Exponent
  routine raises an H_floating base to a longword exponent.

     Format:

       OTS$POWHJ_R3  H-floating-point-base ,longword-integer-exponent

     Arguments:

  H-floating-point-base

  VMS usage: floating_point
  type: H_floating
  access: read only
  mechanism: by value

  Base.  The H-floating-point-base argument is  an  H_floating  number
  containing the base.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Exponent.   The  longword-integer-exponent  argument  contains   the
  signed longword exponent.

OTS$POWII

  The Exponentiation of a Word Base to a Word Exponent routine  raises
  a word base to a word exponent.

     Format:

       OTS$POWII  word-integer-base ,word-integer-exponent

     Arguments:

  word-integer-base

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Base.  The word-integer-base  argument  is  a  signed  word  integer
  containing the base.

  word-integer-exponent

  VMS usage: word_signed
  type: word integer (signed)
  access: read only
  mechanism: by value

  Exponent.  The  word-integer-exponent  argument  is  a  signed  word
  integer containing the exponent.

OTS$POWJJ

  The Raise a Longword Base to a Longword Exponent  routine  raises  a
  signed longword base to a signed longword exponent.

     Format:

       OTS$POWJJ  longword-integer-base ,longword-integer-exponent

     Arguments:

  longword-integer-base

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Base.  The  longword-integer-base  argument  is  a  signed  longword
  integer containing the base.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by value

  Exponent.   The  longword-integer-exponent  argument  is  a   signed
  longword integer containing the exponent.

OTS$POWLULU

  The Raise an Unsigned Longword Integer Base to an Unsigned  Longword
  Exponent  routine returns the result of raising an unsigned longword
  integer base to an unsigned longword integer exponent.

     Format:

       OTS$POWLULU
                  unsigned-lword-int-base, unsigned-lword-int-exponent

     Arguments:

  unsigned-lword-int-base

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Unsigned  longword  integer   base.    The   unsigned-lword-int-base
  argument contains the value of the integer base.

  unsigned-lword-int-exponent

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Unsigned longword integer exponent.  The unsigned-lword-int-exponent
  argument contains the value of the integer exponent.

OTS$POWxLU

  The Raise a Floating-Point Base  to  an  Unsigned  Longword  Integer
  Exponent routines return the result of raising a floating-point base
  to an unsigned longword integer exponent.

     Format:

       OTS$POWRLU
                  floating-point-base ,unsigned-lword-int-exponent

       OTS$POWDLU
                  floating-point-base ,unsigned-lword-int-exponent

       OTS$POWGLU
                  floating-point-base ,unsigned-lword-int-exponent

       OTS$POWHLU_R3
                  floating-point-base ,unsigned-lword-int-exponent

     Arguments:

  floating-point-base

  VMS usage: floating_point
  type: F_floating, D_floating, G_floating, H_floating
  access: read only
  mechanism: by value

  Floating-point base.  The floating-point-base argument contains  the
  value  of  the  base.   For  OTS$POWRLU,  floating-point-base  is an
  F_floating  number.   For  OTS$POWDLU,  floating-point-base   is   a
  D_floating   number.    For  OTS$POWGLU,  floating-point-base  is  a
  G_floating number.  For  OTS$POWHLU_R3,  floating-point-base  is  an
  H_floating number.

  unsigned-lword-int-exponent

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Integer exponent.  The unsigned-lword-int-exponent argument contains
  the value of the unsigned longword integer exponent.

OTS$POWRD

  The Exponentiation of an F_floating Base to  a  D_floating  Exponent
  routine raises an F_floating base to a D_floating exponent.

     Format:

       OTS$POWRD  F-floating-point-base ,D-floating-point-exponent

                  The above format corresponds to raising the base to
                  a D_floating exponent.

     Arguments:

  F-floating-point-base

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by value

  Base.  The F-floating-point-base argument is  an  F_floating  number
  containing the base.

  D-floating-point-exponent

  VMS usage: floating_point
  type: D_floating
  access: read only
  mechanism: by value

  Exponent.   The  D-floating-point-exponent  argument  contains   the
  exponent.  The D-floating-point-exponent is a D-floating number.

OTS$POWRJ

  The Exponentiation of an F_floating  Base  to  a  Longword  Exponent
  routine raises an F_floating base to a longword exponent.

     Format:

       OTS$POWRJ  F-floating-point-base ,longword-integer-exponent

     Arguments:

  F-floating-point-base

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by value

  Base.  The F-floating-point-base argument is  an  F_floating  number
  containing the base.

  longword-integer-exponent

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Exponent.   The  longword-integer-exponent  argument  contains   the
  longword integer exponent.

OTS$POWRR

  The Exponentiation of an F_floating Base to an  F_floating  Exponent
  routine raises an F_floating base to an F_floating exponent.

     Format:

       OTS$POWRR  F-floating-point-base ,F-floating-point-exponent

                  The above format corresponds to raising the base to
                  an F_floating exponent.

     Arguments:

  F-floating-point-base

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by value

  Base.  The F-floating-point-base argument is  an  F_floating  number
  containing the base.

  F-floating-point-exponent

  VMS usage: floating_point
  type: F_floating
  access: read only
  mechanism: by value

  Exponent.   The  F-floating-point-exponent  argument  contains   the
  exponent.  The F-floating-point-exponent is an F_floating number.

OTS$SCOPY_DXDX

  The Copy a Source String  Passed  by  Descriptor  to  a  Destination
  String routine copies a source string to a destination string.  Both
  strings are passed by descriptor.

     Format:

       OTS$SCOPY_DXDX  source-string ,destination-string

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string.  The source-string  argument  is  the  address  of  a
  descriptor  pointing to the source string.  The descriptor class can
  be  unspecified,  fixed  length,  dynamic,  scalar  decimal,  array,
  noncontiguous array, or varying.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string.  The destination-string argument is the  address
  of a descriptor pointing to the destination string.  The class field
  determines the appropriate action.

OTS$SCOPY_R_DX

  The Copy a Source String Passed By Reference to a Destination String
  routine  copies a source string passed by reference to a destination
  string.

     Format:

       OTS$SCOPY_R_DX  word-int-source-length-val
                  ,source-string-address ,destination-string

     Arguments:

  word-int-source-length-val

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by value

  Length  of  the  source  string.    The   word-int-source-length-val
  argument  is  an  unsigned word integer containing the length of the
  source string.

  source-string-address

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by reference

  Source string.  The source-string-address argument is the address of
  the source string.

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string.  The destination-string argument is the  address
  of a descriptor pointing to the destination string.  The class field
  determines the appropriate action.  The length field  (DSC$W_LENGTH)
  alone  or  both the address (DSC$A_POINTER) and length fields can be
  modified if the string is dynamic.  For varying strings, the current
  length is rewritten.

OTS$SFREE1_DD

  The Free One Dynamic String routine returns one dynamic string  area
  to free storage.

     Format:

       OTS$SFREE1_DD  dynamic-descriptor

     Arguments:

  dynamic-descriptor

  VMS usage: quadword_unsigned
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  Dynamic string descriptor.  The dynamic-descriptor argument  is  the
  address of the dynamic string descriptor.  The descriptor is assumed
  to be dynamic and its class field is not checked.

OTS$SFREEN_DD

  The Free N Dynamic Strings routine takes as input a vector of one or
  more dynamic string areas and returns them to free storage.

     Format:

       OTS$SFREEN_DD  descriptor-count-value ,first-descriptor

     Arguments:

  descriptor-count-value

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of adjacent descriptors to be flagged as having no  allocated
  area  (DSC$A_POINTER  =  0  and  DSC$W_LENGTH = 0) and to have their
  allocated areas returned to  free  storage  by  OTS$SFREEN_DD.   The
  descriptor-count-value  argument  is an unsigned longword containing
  this number.

  first-descriptor

  VMS usage: quadword_unsigned
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  First string descriptor of an  array  of  string  descriptors.   The
  first-descriptor  argument  is  the  address  of  the  first  string
  descriptor.  The descriptors are assumed to be  dynamic,  and  their
  class fields are not checked.

OTS$SGET1_DD

  The Get One Dynamic String routine allocates a specified  number  of
  bytes of dynamic virtual memory to a specified string descriptor.

     Format:

       OTS$SGET1_DD  word-integer-length-value ,dynamic-descriptor

     Arguments:

  word-integer-length-value

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of bytes  to  be  allocated.   The  word-integer-length-value
  argument  contains  the  number  of  bytes.   The  amount of storage
  allocated is automatically rounded up.  If the number  of  bytes  is
  zero, a small number of bytes is allocated.

  dynamic-descriptor

  VMS usage: quadword_unsigned
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  Dynamic string descriptor to which the area is to be allocated.  The
  dyn-str  argument  is  the address of the dynamic string descriptor.
  The class field is not checked but it is set to dynamic (DSC$B_CLASS
  =    2).     The    length    field   (DSC$W_LENGTH)   is   set   to
  word-integer-length-value and the address field  (DSC$A_POINTER)  is
  set to the string area allocated (first byte beyond the header).

PPL$

Additional information available:

PPL$ADJUST_QUORUMPPL$AWAIT_EVENTPPL$CREATE_BARRIER
PPL$CREATE_EVENTPPL$CREATE_SEMAPHOREPPL$CREATE_SHARED_MEMORY
PPL$CREATE_SPIN_LOCKPPL$CREATE_VM_ZONEPPL$DECREMENT_SEMAPHORE
PPL$DELETE_SHARED_MEMORYPPL$ENABLE_EVENT_ASTPPL$ENABLE_EVENT_SIGNAL
PPL$FIND_SYNCH_ELEMENT_IDPPL$FLUSH_SHARED_MEMORYPPL$GET_INDEX
PPL$INCREMENT_SEMAPHOREPPL$INDEX_TO_PIDPPL$INITIALIZE
PPL$PID_TO_INDEXPPL$READ_BARRIERPPL$READ_EVENTPPL$READ_SEMAPHORE
PPL$RELEASE_SPIN_LOCKPPL$SEIZE_SPIN_LOCKPPL$SET_QUORUM
PPL$SPAWNPPL$STOPPPL$TERMINATEPPL$TRIGGER_EVENT
PPL$UNIQUE_NAMEPPL$WAIT_AT_BARRIER

PPL$ADJUST_QUORUM

  The  Adjust  Barrier  Quorum  routine  increments or  decrements the
  quorum  associated  with  the  specified barrier,  thus  allowing  a
  barrier to dynamically alter the number of participants  required to
  conclude a wait on that barrier.

     Format:

       PPL$ADJUST_QORUM  barrier-id ,amount

     Arguments:

  barrier-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the barrier. The barrier-id argument is the address of
  an  unsigned longword  containing the identifer.

  amount

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  Value to be added to the barrier quorum.  The amount argument is the
  address  of a signed word integer containing this value.  A negative
  value may be specified to decrement the quorum.

PPL$AWAIT_EVENT

  The  Await  Event  Occurrence  routine  requests that  the caller be
  blocked until an event occurs.

     Format:

       PPL$AWAIT_EVENT event-id

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the event. The event-id argument is the address of an
  unsigned longword containing the identifier.

PPL$CREATE_BARRIER

  The  Create  Barrier routine creates and initializes a barrier,  and
  returns the barrier identifer.  You  use the  barrier  identifier to
  cal PPL$WAIT_AT_BARRIER.

     Format:

       PPL$CREATE_BARRIER  barrier-id [,barrier-name] [,quorum]

     Arguments:

  barrier-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier of the barrier. The barrier-id argument is the address of
  an  unsigned longword  containing the identifer.  Barrier-id must be
  used in other calls to identify the barrier.

  barrier-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the barrier.  The  optional  barrier-name  argument  is  the
  address of a  descriptor pointing to the  barrier name.  The name of
  the barrier is entirely arbitrary.

  quorum

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  The  number of participants that are required to terminate an active
  wait for this barrier. For example, a quorum of 3 indicates that the
  first two callers of PPL$WAIT_AT_BARRIER who specify this barrier-id
  will be blocked  until a third caller  issues that request.  At that
  point,  all three will be released for further processing.  If  this
  parameter is not specified, a default value of 1 is assigned for the
  quorum.

PPL$CREATE_EVENT

  The Create Event routine creates an arbitrary user-defined event and
  returns its identifier,  which is used in subsequent calls  to other
  PPL$ event services.

     Format:

       PPL$CREATE_EVENT  event-id [,event-name]

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier of the event.  The event-id argument is the address of an
  unsigned  longword  containing the identifier.  The event-id must be
  used in other calls to identify the event.

  event-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the event.  The  event-name  argument  is  the address  of a
  descriptor  for  the  event name.  The name of the event is entirely
  arbitrary.  If you do not specify a value for event-name,  or if you
  specify zero,  a new anonymous (unnamed) event is created, which may
  only  be  referenced  by  its identifier.  An  arbitrary  number  of
  anonymous events may be created by a given application.

PPL$CREATE_SEMAPHORE

  The  Create  Semaphore routine  creates and initializes a semaphore
  with a waiting queue, and returns the semaphore identifier. You use
  the semaphore identifer to perform all operations on that semaphore.

     Format:

       PPL$CREATE_SEMAPHORE   semaphore-id [,semaphore-name]
                           [,semaphore-maximum] [,semaphore-initial]

     Arguments:

  semaphore_id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier  of  the  semaphore.  The  semaphore-id  argument  is the
  address   of   an   unsigned  longword  containing  the  identifier.
  Semaphore-id must be used in other calls to  identify the semaphore.

  semaphore-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the semaphore. The semaphore-name argument is the address of
  a  descriptor  pointing  to the  semaphore name.  The  name  of  the
  semaphore  is entirely arbitrary.  If you do not specify a value for
  semaphore-name,  or  if you specify zero,  a new anonymous (unnamed)
  semaphore is created.  An  arbitrary number  of anonymous semaphores
  may be created by a given application.

  semaphore-maximum

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  Maximum  value  of the semaphore.  The semaphore-maximum argument is
  the  address  of a signed word  containing the maximum value.   This
  value  must  be  non-negative.  If  you  do  not  supply a value for
  semaphore-maximum,  a  default  value of one is used, thereby making
  it a binary semaphore.

  semaphore-initial

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  Initial value of the semaphore.  The  semaphore-initial  argument is
  the address of a signed word  containing  the  initial  value.  This
  value must be less than or equal to the semaphore-maximum value.  If
  you  do  not  supply a value for semaphore-initial,  a default value
  equal to semaphore-maximum is used.

PPL$CREATE_SHARED_MEMORY

  The Create Shared Memory routine creates (if necessary) and  maps  a
  global section to memory.

     Format:

       PPL$CREATE_SHARED_MEMORY  section-name ,memory-area [,flags]
                  [,file-name]

     Arguments:

  section-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name  of  the  shared  memory  section  you  want  to  create.   The
  section-name argument is the address of a descriptor pointing to the
  shared memory section name.  Within VMS, a global section (or shared
  memory)  is a data structure  or shareable image section potentially
  available to all  processes in the system.

  memory-area

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: modify
  mechanism: by reference, array reference

  The  area  of  memory into which  the shared memory  is mapped.  The
  memory-area  argument  is  the  address  of  a  two-longword   array
  containing, in order, the length (in bytes) and the starting virtual
  address for the area of memory.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Specifies options  for  creating and  mapping  shared  memory.   The
  flags  argument  is  the value of a longword bit mask containing the
  flag.  Valid values are as follows:

       PPL$M_ZERO             Initializes the  shared memory  to  zero
                                when it is created.

       PPL$M_NOWRT            Maps the section with  no  write  access
                                (in   other   words,  read  only).  By
                                default,  the shared memory is  mapped
                                with read/write access.

       PPL$M_NOUNI            Names  the  shared memory  a  non-unique
                                name.            By           default,
                                PPL$CREATE_SHARED_MEMORY  gives    the
                                specified shared memory  a name unique
                                to   the    application    by    using
                                PPL$UNIQUE_NAME.

  file-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the file used for backup storage  of the shared memory.  The
  file-name  argument  is  the address of a descriptor pointing to the
  file name.  If you do not  specify  a  file  name,  a  default  file
  specification  (with a default file type of .DAT)  is  obtained from
  SYS$SCRATCH:. The shared memory name is used as a related file name.

PPL$CREATE_SPIN_LOCK

  The Create Spin Lock routine creates and initializes a simple (spin)
  lock,  and  returns  the identifier that you use to get and free the
  lock.

     Format:

       PPL$CREATE_SPIN_LOCK  lock-id [,lock-name]

     Arguments:

  lock-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier of the newly created lock.  The lock-id argument  is  the
  address of an unsigned longword containing the lock identifier.  You
  must use lock-id when getting or freeing the lock.

  lock-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the lock.  The  lock-name  argument  is  the  address  of  a
  descriptor  pointing  to the name.  The name of the lock is entirely
  arbitrary.  If you do not specify this argument,  or  if you specify
  zero, an anonymous (unnamed) lock is created. An arbitrary number of
  anonymous locks may be created by a given application.

PPL$CREATE_VM_ZONE

  The Create a New Zone routine creates a new storage  zone  according
  to specified arguments.

     Format:

       PPL$CREATE_VM_ZONE  zone-id [,algorithm] [,algorithm-argument]
                  [,flags] [,extend-size] [,initial-size] [,block-size]
                  [,alignment] [,page-limit] [,smallest-block-size]
                  [,zone-name]

     Arguments:

  zone-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Zone identifier.  The zone-id argument is the address of a  longword
  that is set to the zone identifier of the newly created zone.

  algorithm

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Algorithm.  The algorithm argument is  the  address  of  a  longword
  integer that represents the code for one of the LIB$VM algorithms:

           1       LIB$K_VM_FIRST_FIT     First fit

           2       LIB$K_VM_QUICK_FIT     Quick fit, lookaside list

           3       LIB$K_VM_FREQ_SIZES    Frequent  sizes,   lookaside
                                          list

           4       LIB$K_VM_FIXED         Fixed size blocks

  algorithm-argument

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Algorithm argument.  The algorithm-argument argument is the  address
  of  a signed longword that  contains a value that is specific to the
  particular allocation algorithm.

       Algorithm            Value

       QUICK_FIT            The number of queues used. The  number  of
                              queues must be between 1 and 128.

       FREQ_SIZES           The number of cache slots used. The number
                              of cache slots must be between 1 and 16.

       FIXED                The fixed request size (in bytes) for each
                              get  or  free.  The request size must be
                              greater than 0.

       FIRST_FIT            Not used, may be omitted.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Flags.  The flags argument is the  address  of  an unsigned longword
  that contains flag bits that control various options:

       Bit   Value                    Description

       Bit 0 LIB$M_VM_BOUNDARY_TAGS   Boundary tags for faster freeing

                                      Adds a minimum of eight bytes to
                                        each block

       Bit 1 LIB$M_VM_GET_FILL0       LIB$GET_VM; fill with bytes of 0

       Bit 2 LIB$M_VM_GET_FILL1       LIB$GET_VM; fill with  bytes  of
                                        FF (hexadecimal)

       Bit 3 LIB$M_VM_FREE_FILL0      LIB$FREE_VM; fill with bytes  of
                                        0

       Bit 4 LIB$M_VM_FREE_FILL1      LIB$FREE_VM; fill with bytes  of
                                        FF (hexadecimal)

       Bit 5 LIB$M_VM_EXTEND_AREA     Add extents to existing areas if
                                        possible

  extend-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Zone extend size.  The extend-size argument is the address of signed
  longword that contains the number of (512-byte) pages to be added to
  the zone each time it is extended.

  initial-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Initial size for the zone.  The initial-size argument is the address
  of  a  signed  longword that contains the number of (512-byte) pages
  to be allocated for the zone as the zone is created.

  block-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Block size of the zone.  The block-size argument is the address of a
  signed longword  specifying   the allocation quantum  (in bytes) for
  the zone.  All blocks allocated are rounded  up  to  a  multiple  of
  block-size.

  alignment

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Block alignment.   The  alignment  argument  is  the  address  of  a
  signed  longword  that specifies  the required address alignment (in
  bytes) for each block allocated.

  page-limit

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Maximum page limit.  The page-limit argument is  the  address  of  a
  signed  longword   that specifies the  maximum  number of (512-byte)
  pages that can be allocated for the zone.  The value  of  page-limit
  must  be  between  0 and 32,767.  Note that part of the zone is used
  for header information.

  smallest-block-size

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Smallest  block  size.   The  smallest-block-size  argument  is  the
  address  of  a  signed longword  that specifies  the  smallest block
  size (in bytes) that has a queue for the quick fit algorithm.

  zone-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name to be associated with the zone  being  created.   The  optional
  zone-name  argument  is  the address of a descriptor pointing to the
  zone name.  If zone-name is not specified, the zone will not have an
  associated name.

PPL$DECREMENT_SEMAPHORE

  The Decrement a Semaphore routine waits for a semaphore  to  have  a
  value  greater  than  zero,  then  decrements  the  value  by one to
  indicate the  allocation  of  a  resource.   If  the  value  of  the
  semaphore  is  zero, the process is put in the waiting queue and the
  execution path is suspended.

     Format:

       PPL$DECREMENT_SEMAPHORE  semaphore-id [,flags]

     Arguments:

  semaphore-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the  semaphore.   The  semaphore-id  argument  is  the
  address of an unsigned longword containing the identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies options for the decrement semaphore operation. The flags
  argument is a longword bit mask containing the flag. Valid flags
  values are:

       PPL$M_NON_BLOCKING     The caller requests  that the  semaphore
                                be decremented  if and  only if it can
                                be done without  causing the caller to
                                block.    (This   can   be  useful  in
                                situations  where the  cost of waiting
                                for a resource is not desirable, or if
                                the  caller merely  intends to request
                                immediate  access  to  any  one  of  a
                                number of resources.)

PPL$DELETE_SHARED_MEMORY

  The Delete Shared Memory routine deletes a global section  that  you
  created using the PPL$CREATE_SHARED_MEMORY routine. If desired, this
  routine writes the contents of the global  section  to  disk  before
  deleting the section.

     Format:

       PPL$DELETE_SHARED_MEMORY  section-name [,memory-area]
                       [,flags]

     Arguments:

  section-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the  global  section  you want to delete.  The  section-name
  argument is the address of a character string pointing to the global
  section  name.   A  VMS  global  section  is  a  section  of  memory
  potentially available to all processes in the system.

  memory-area

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference, array reference

  The area of memory into which the global section that  you  want  to
  delete  is  mapped.   The  memory-area  argument is the address of a
  two-longword array containing, in order, the length (in  bytes)  and
  the starting virtual address of the area of memory.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Specifies  actions  to  be  performed  before  deleting  the  global
  section.   The  flags argument is a longword bit mask containing the
  flag.  Valid values are as follows:

       PPL$M_FLUSH            Writes the global section to disk before
                                deletion.

       PPL$M_NOUNI            Identifies the  global section as having
                                a   non-unique   name.   By   default,
                                PPL$CREATE_SHARED_MEMORY  gives    the
                                specified global section a name unique
                                to   the    application    by    using
                                PPL$UNIQUE_NAME. If you specified this
                                value to give  the  global  section  a
                                non-unique   name   when   you  called
                                PPL$CREATE_SHARED_MEM, you  must  also
                                specify     it    when    you     call
                                PPL$DELETE_SHARED_MEMORY.

PPL$ENABLE_EVENT_AST

  The  Enable  AST  Notification  of  an  Event  routine specifies the
  address  of  an  AST  routine  (and  optionally  an argument to that
  routine) to be delivered when an event occurs.

     Format:

       PPL$ENABLE_EVENT_AST event-id ,AST-address [,AST-argument]

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the event.  The event-id argument is the address of an
  unsigned longword containing the identifier.

  AST-address

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by reference

  AST routine address.  The AST-address argument is the address of the
  procedure  entry mask for the user's AST routine.  This routine will
  be  called  on  the user's  behalf  when  the  event  state  becomes
  occurred.

  AST-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Argument to be passed to the AST routine. The AST-argument argument
  contains the value of the argument for the AST routine.

PPL$ENABLE_EVENT_SIGNAL

  The  Enable  Signal  Notification  of an  Event  routine specifies a
  condition-value to be signaled when the event occurs.

     Format:

       PPL$ENABLE_EVENT_SIGNAL event-id [,signal-value]

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the event.  The event-id argument is the address of an
  unsigned longword containing the identifier.

  signal-value

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User-defined  value  to be signaled  when  the  event  occurs.   The
  signal-value  argument  contains the  value  to be signaled when the
  specified event occurs.

PPL$FIND_SYNCH_ELEMENT_ID

  Given the name of a spin lock, counting semaphore  or  barrier,  the
  Find  Synchronization  Element Identification routine returns the ID
  of an element.

     Format:

       PPL$FIND_SYNCH_ELEMENT_ID  element-id ,element-name

     Arguments:

  element-id

  VMS usage: identifier
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Identifier  of  the  element. The element-id argument is the address
  of  an  unsigned  longword that receives the associated identifer.

  element-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name  of  the  synchronization  element  for  which  to  return  the
  associated  ID.   The  element-name  argument  is  the  address of a
  descriptor    pointing   to   the   (user-defined)   name   of   the
  synchronization  element.

PPL$FLUSH_SHARED_MEMORY

  The Flush  Shared  Memory  routine  writes  (flushes)  to  disk  the
  contents   of   a   global   section  that  you  created  using  the
  PPL$CREATE_SHARED_MEMORY routine. Only pages that have been modified
  are flushed to disk.

     Format:

       PPL$FLUSH_SHARED_MEMORY  section-name [,memory-area]
                        [,flags]

     Arguments:

  section-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Name of the global section whose contents are to be written to disk.
  The   section-name   argument   is  the  address  of  a   descriptor
  pointing to the global section name.  A VMS global section is a data
  structure  or  shareable  image section potentially available to all
  processes in the system.

  memory-area

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The area of memory  into  which  the  specified  global  section  is
  mapped.   The  memory-area argument is the address of a two-longword
  array containing, in order, the length (in bytes) and  the  starting
  virtual address for the area of memory.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Specifies actions to perform before  flushing  the  global  section.
  The  flags argument is a longword bit mask containing the flag.  The
  valid value is as follows:

       PPL$M_NOUNI            Names the global  section  a  non-unique
                                name.            By           default,
                                PPL$CREATE_SHARED_MEMORY   gives   the
                                specified global section a name unique
                                to   the    application    by    using
                                PPL$UNIQUE_NAME. If you specified this
                                value to give  the  global  section  a
                                non-unique   name   when   you  called
                                PPL$CREATE_SHARED_MEMORY,  you    must
                                also specify    it    when  you   call
                                PPL$FLUSH_SHARED_MEM.

PPL$GET_INDEX

  The Get Index of a Participant routine returns an index that is
  unique within the application. A value of zero signifies the "top"
  or "main" execution thread. The other processes in the application
  always return an index greater than zero.

     Format:

       PPL$GET_INDEX  participant-index

     Arguments:

  participant-index

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The   index   of   the  caller   within   this   application.    The
  participant-index  argument  is the address  of an unsigned longword
  that contains this index. This index is assigned at process creation
  time and is unique for each participant.

PPL$INCREMENT_SEMAPHORE

  The  Increment  a  Semaphore  routine  increments  the  value of the
  semaphore by one,  analogous to the  signal  protocol.  If any other
  participants  have blocked  on a call to PPL$DECREMENT_SEMAPHORE for
  this semaphore,  one is removed from the waiting queue and awakened.

     Format:

       PPL$INCREMENT_SEMAPHORE  semaphore-id

     Arguments:

  semaphore-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the  semaphore.   The  semaphore-id  argument  is  the
  address of an unsigned longword containing the identifier.

PPL$INDEX_TO_PID

  The  Convert  Participant  Index  to  VMS Process Identifier routine
  returns  the  VMS  process identifier  of  the process or subprocess
  associated with the specified index.

     Format:

       PPL$INDEX_TO_PID  participant-index ,pid

     Arguments:

  participant-index

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The   index   of  the   caller   within    this   application.   The
  participant-index  argument  is the  address of an unsigned longword
  that  contains this index.  This  index  is assigned  at the time of
  process creation and is unique for each participant.

  pid

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The  process  identifier  of the  VMS  process  associated  with the
  specified participant index.  The  pid argument is the address of an
  unsigned longword that receives this process identifier.

PPL$INITIALIZE

  The  Initialize  the PPL$ Facility routine informs the PPL$ facility
  that  the caller is  forming or joining the parallel application.  A
  call  to this service is entirely optional,  since the PPL$ facility
  will initialize itself at the first call to a PPL$ service.

     Format:

       PPL$INITIALIZE  [size]

     Arguments:

  size

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Number of  pages  allocated  for the data structures required by the
  PPL$ facility.  The  size argument  is  the  address  of an unsigned
  longword  containing  this  size.  By  default,   the  PPL$ facility
  allocates PPL$K_INIT_SIZE (available to user programs as a link-time
  constant)  pages  for  its  internal data structures.  This  initial
  allocation provided by the  PPL$ facility will accommodate a minimum
  of  32 processes,  8 barriers, 8 semaphores, 4 events, and 16 global
  sections.   You  can  increase this allocation by specifying another
  value.

PPL$PID_TO_INDEX

  The  Convert  VMS  Process  Identifier to  Participant Index routine
  returns  the  PPL$-defined  participant  index  of  the  process  or
  subprocess associated with the specified VMS process identifier.

     Format:

       PPL$PID_TO_INDEX pid ,participant-index

     Arguments:

  pid

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The process identifier of the VMS process whose participant index is
  to be obtained.  The  pid  argument  is  the  address of an unsigned
  longword containing this process identifier.

  participant-index

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The  participant-index  of the process or subprocess associated with
  the   specified  VMS  process  identifier.   The   participant-index
  argument  is the address of an unsigned longword  that receives this
  index.   This  index  is assigned  by the  PPL$  facility at process
  creation time and is unique for each participant.

PPL$READ_BARRIER

  The Read a Barrier routine returns the specified  barrier's  current
  quorum and the number of participants currently waiting (blocked) at
  the barrier. The barrier must have been created by PPL$CREATE_BARRIER.


     Format:

       PPL$READ_BARRIER  barrier-id ,quorum ,waiters

     Arguments:

  barrier-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the specified event.  The barrier-id argument  is  the
  address of an unsigned longword containing the identifier.

  Barrier-id is returned by PPL$CREATE_BARRIER.

  quorum

  VMS usage: word_signed
  type: word (signed)
  access: write only
  mechanism: by reference

  Number of participants required to terminate a wait for this barrier.
  The quorum argument is the address of a signed word  containing  the
  quorum value. This argument returns the current  quorum  value  that
  you set with PPL$CREATE_BARRIER, PPL$SET_QUORUM, or PPL$ADJUST_QUORUM.

  waiters

  VMS usage: word_signed
  type: word (signed)
  access: write only
  mechansim: by reference

  Number of participants currently waiting at this barrier. The waiters
  argument is the address of a signed word  containing  the  number  of
  waiting participants.

PPL$READ_EVENT

  The Read an Event State routine returns the  current  state  of  the
  specified event. The state can be occurred or not_occurred.


     Format:

       PPL$READ_EVENT  event-id, occurred

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier  of  the  specified  event.  The event-id argument is the
  address of an unsigned longword containing the identifier.

  Event-id is returned by PPL$CREATE_EVENT.

  occurred

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the state of the specified event.  The occurred argument is
  the address of an unsigned longword that receives the  event  state.
  This argument returns a value of true if the current  state  of  the
  event is occurred, and returns false if the  current  state  of  the
  event is not_occurred.

PPL$READ_SEMAPHORE

  The  Read  Semaphore  Values  routine  returns  the  current  and/or
  maximum values of the specified counting semaphore.

     Format:

       PPL$READ_SEMAPHORE  semaphore-id [,semaphore-value]
                           [,semaphore-maximum]

     Arguments:

  semaphore-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the specified semaphore.  The semaphore-id argument is
  the address of an unsigned longword containing the identifier.

  semaphore-value

  VMS usage: word_signed
  type: word (signed)
  access: write only
  mechanism: by reference

  Value of the semaphore.  The semaphore-value argument is the address
  of  a  signed  word  containing  the  current value of the semaphore
  specified by semaphore-id.

  semaphore-maximum

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Maximum value of the semaphore.  The semaphore-maximum  argument  is
  the  address of an unsigned word containing the maximum value of the
  semaphore specified by semaphore-id.

PPL$RELEASE_SPIN_LOCK

  The Release Spin Lock routine relinquishes the spin lock by clearing
  the  bit  representing the lock.  The lock must have been created by
  PPL$CREATE_SPIN_LOCK.

     Format:

       PPL$RELEASE_SPIN_LOCK  lock-id

     Arguments:

  lock-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the specified  lock.   The  lock-id  argument  is  the
  address of an unsigned longword containing the lock identifier.

PPL$SEIZE_SPIN_LOCK

  The Seize Spin Lock  routine  retrieves  a  simple  (spin)  lock  by
  waiting  in  a spin loop until the lock is free.  The lock must have
  been created by PPL$CREATE_SPIN_LOCK.

     Format:

       PPL$SEIZE_SPIN_LOCK  lock-id [,flags]

     Arguments:

  lock-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the lock to be seized.  The lock-id  argument  is  the
  address of an unsigned longword containing the lock identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  options for the seize lock operation.  The flags argument
  is a longword bit mask containing the flag. Valid flag vlaues are:

       PPL$M_NON_BLOCKING     The caller requests  that the  semaphore
                                be decremented  if and  only if it can
                                be done without  causing the caller to
                                block.    (This   can   be  useful  in
                                situations  where the  cost of waiting
                                for a resource is not desirable, or if
                                the  caller merely  intends to request
                                immediate  access  to  any  one  of  a
                                number of resources.)

PPL$SET_QUORUM

  The  Set Barrier Quorum routine establishes an initial value for the
  specified barrier's quorum. This allows for easy re-use of a barrier
  for different work items with different numbers of participants.

     Format:

       PPL$SET_QUORUM  barrier-id ,quorum

     Arguments:

  barrier-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the barrier. The barrier-id argument is the address of
  the barrier identifier.

  quorum

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  The  number of participants that are required to terminate an active
  wait  for  this barrier.  The  quorum  argument  is the address of a
  signed word that contains this quorum value.  For example,  a quorum
  value   of   3   indicates   that   the   first   two   callers   of
  PPL$WAIT_AT_BARRIER  who  specify  this  barrier-id  will be blocked
  until a third caller issues that request.  At that point,  all three
  will  be  released  for  further  processing.  This  value  must  be
  positive.

PPL$SPAWN

  The  Initiate  Parallel  Execution (SPAWN)  routine executes code in
  parallel with the caller by creating one or more subordinate threads
  of execution (VMS subprocesses).

     Format:

       PPL$SPAWN   copies [,program-name] [,children-ids] [,flags]
                   [,standard-input-file] [,standard-output-file]

     Arguments:

  copies

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Number  of  incarnations  of  the  specified program  to be executed
  concurrently.  The  copies  argument  is  the address of an unsigned
  longword  containing  this  number.  Its value must be postiive.  On
  output,  this parameter contains the number of incarnations actually
  created.  This  value  will  differ from the requested number if the
  spawn attempt fails, for example, due to exceeded quotas.

  program-name

  VMS usage: logical_name
  type: character string
  access: read only
  mechanism: by descriptor, fixed-length

  Name of the program (image) to be invoked. The program-name argument
  is the address of a character string descriptor pointing to the file
  specification of the image.  Program-name  must have no more than 63
  characters. If program-name contains a logical name, the equivalence
  name must be  in a logical name table  that  the created subordinate
  can access.  If you do not specify a program-name, the default is to
  execute in parallel the image being run by the caller.

  children-ids

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  On output, children-ids contains the identifier of each of the newly
  invoked  threads  of  execution.  The  children-ids argument  is the
  address  of  a  vector of longwords  containing the index within the
  executing   application   of   each  execution  thread  successfully
  initiated by this call.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  options for creating processes.  The  flags argument is a
  longword bit mask that contains the flag. Valid values for flags
  are:

       PPL$M_INIT_SYNCH       The  caller  of  this  routine  and  all
                                children    it    creates   will    be
                                synchronized  to  continue  processing
                                only   after  each  and  every   child
                                created  by this call has executed its
                                PPL$INITIALIZE  call.  Note  that this
                                flag  cannot  be reliably used here if
                                other parties  in the application also
                                create  subordinates  by using $CREPRC
                                or  LIB$SPAWN.   Also,   note  that  a
                                failure  of the  created process after
                                it successfully starts  but before its
                                call   to   PPL$INITIALIZE  can  cause
                                difficulties  with  the  use  of  this
                                option.

       PPL$M_NODEBUG          Prevents the startup of the VMS Symbolic
                                Debugger,  even  if  the  debugger was
                                linked with the image.

  standard-input-file

  VMS usage: logical_name
  type: character string
  access: write only
  mechanism: by descriptor

  File  to serve  as the  standard input file in the created children.
  The  standard-input-file  argument  is the  address of  a descriptor
  pointing  to  this file name.  If you do not specify a file name for
  this parameter,  the  parent's standard input file will be inherited
  by the children.

  standard-output-file

  VMS usage: logical_name
  type: character string
  access: write only
  mechanism: by descriptor

  File  to  serve as the standard output file in the created children.
  The  standard-output-file  argument  is the address  of a descriptor
  pointing  to  this file name.  If you do not specify a file name for
  this parameter,  the parent's standard output file will be inherited
  by the children.

PPL$STOP

  The  Stop  a  Participant  routine  terminates  the execution of the
  specified participant in this application.

     Format:

       PPL$STOP   participant-index

     Arguments:

  participant-index

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Index  of the  participant to be terminated.  The  participant-index
  argument is the address of the PPL$-defined index of the participant
  to   be  terminated,   as  obtained  by  a  call  to   PPL$SPAWN  or
  PPL$GET_INDEX.

PPL$TERMINATE

  The   Terminate   PPL$   Participation  routine  ends  the  caller's
  participation  in the application  "prematurely";  that is,  at some
  time before the caller is actually completing its execution.

     Format:

       PPL$TERMINATE   [flags]

     Arguments:

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies options for terminating access to PPL$. The flags argument
  is the address of a longword bit mask containing the flag. The flags
  argument accepts the following value:

       PPL$M_ABORT_CHILDREN   Terminates  all  subordinates created by
                                the  caller before returning from this
                                call.  (PPL$ makes no effort to delete
                                children at process termination in the
                                absence of a call to this service, but
                                note that  a VMS subprocess is deleted
                                when the parent terminates.)

PPL$TRIGGER_EVENT

  The  Trigger  an  Event  routine  causes the event's state to become
  occurred.  This  results  in processing  any  requests queued to the
  event,  so that  any enabled ASTs  and/or signals are delivered, and
  anyone blocked is awakened.

     Format:

       PPL$TRIGGER_EVENT   event-id [,event-parameter] [,flags]

     Arguments:

  event-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the event.  The event-id argument is the address of an
  unsigned longword containing the identifier.

  event-parameter

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Arbitrary value to be passed  to all requests queued to the event at
  the  time of trigger or,  if there are  no queued event notification
  requests  for  this  event,  to  the  first  caller to  enable event
  notification.  The event-parameter argument contains the value of an
  unsigned longword containing this arbitrary value.  Note  that  this
  argument  will not  overwrite a parameter  specified  by a call that
  enables the notification.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Specifies options for triggering an event. The flags argument
  is the value of a longword bit mask containing the flag.  The
  valid value for flags is as follows:

    PPL$M_NOTIFY_ONE    Processes exactly one enabled event
                        notification. By default, all pending
                        actions are processed when the event
                        state becomes occurred.

PPL$UNIQUE_NAME

  The  Produce  a  Unique  Name  routine returns an application-unique
  name.  A system-unique string specific to the calling application is
  appended  to the string  specified  by the user.  The resulting name
  will  be  identical  for all participants  in the application,   but
  different from all other applications on that system.

     Format:

       PPL$UNIQUE_NAME  name-string ,resultant-string
                  [,resultant-length]

     Arguments:

  name-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The  user-supplied string supplied for formation of the unique name.
  The  name-string argument is the address of a descriptor pointing to
  this name.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Resulting unique name that consists of the  name-string  string  and
  an appended system-unique string.  The  resultant-string argument is
  the address of a descriptor pointing to this string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the unique name returned  as  the  resultant-string.   The
  resultant-length  argument  is  the  address  of  an  unsigned  word
  containing this length.

PPL$WAIT_AT_BARRIER

  The  Synchronize  at  a Barrier routine causes the caller to wait at
  the  specified  barrier.  The barrier is in effect from the time the
  first  participant  calls PPL$WAIT_AT_BARRIER for that barrier until
  each  member  of the quorum  has issued the call.  At that time, the
  wait concludes and all are released for further execution.

     Format:

       PPL$WAIT_AT_BARRIER  barrier-id

     Arguments:

  barrier-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the  barrier.  The  barrier-id argument is the address
  of  an unsigned longword  containing  the  barrier identifier.

SMG$

Additional information available:

SMG$ADD_KEY_DEFSMG$BEGIN_DISPLAY_UPDATESMG$BEGIN_PASTEBOARD_UPDATE
SMG$CANCEL_INPUTSMG$CHANGE_PBD_CHARACTERISTICSSMG$CHANGE_RENDITION
SMG$CHANGE_VIEWPORTSMG$CHANGE_VIRTUAL_DISPLAYSMG$CHECK_FOR_OCCLUSION
SMG$CONTROL_MODESMG$COPY_VIRTUAL_DISPLAYSMG$CREATE_KEY_TABLE
SMG$CREATE_MENUSMG$CREATE_PASTEBOARDSMG$CREATE_SUBPROCESS
SMG$CREATE_VIRTUAL_DISPLAYSMG$CREATE_VIRTUAL_KEYBOARD
SMG$CREATE_VIEWPORTSMG$CURSOR_COLUMNSMG$CURSOR_ROW
SMG$DEFINE_KEYSMG$DEL_TERM_TABLESMG$DELETE_CHARS
SMG$DELETE_KEY_DEFSMG$DELETE_LINESMG$DELETE_MENU
SMG$DELETE_PASTEBOARDSMG$DELETE_SUBPROCESSSMG$DELETE_VIEWPORT
SMG$DELETE_VIRTUAL_DISPLAYSMG$DELETE_VIRTUAL_KEYBOARD
SMG$DISABLE_BROADCAST_TRAPPINGSMG$DISABLE_UNSOLICITED_INPUT
SMG$DRAW_CHARACTERSMG$DRAW_LINESMG$DRAW_RECTANGLE
SMG$ENABLE_UNSOLICITED_INPUTSMG$END_DISPLAY_UPDATE
SMG$END_PASTEBOARD_UPDATESMG$ERASE_CHARSSMG$ERASE_COLUMN
SMG$ERASE_DISPLAYSMG$ERASE_LINESMG$ERASE_PASTEBOARD
SMG$EXECUTE_COMMANDSMG$FIND_CURSOR_DISPLAYSMG$FLUSH_BUFFER
SMG$GET_BROADCAST_MESSAGESMG$GET_CHAR_AT_PHYSICAL_CURSOR
SMG$GET_DISPLAY_ATTRSMG$GET_KEY_DEFSMG$GET_KEYBOARD_ATTRIBUTES
SMG$GET_NUMERIC_DATASMG$GET_PASTEBOARD_ATTRIBUTES
SMG$GET_PASTING_INFOSMG$GET_TERM_DATASMG$GET_VIEWPORT_CHAR
SMG$HOME_CURSORSMG$INIT_TERM_TABLESMG$INIT_TERM_TABLE_BY_TYPE
SMG$INSERT_CHARSSMG$INSERT_LINESMG$INVALIDATE_DISPLAY
SMG$KEYCODE_TO_NAMESMG$LABEL_BORDERSMG$LIST_KEY_DEFS
SMG$LIST_PASTING_ORDERSMG$LOAD_KEY_DEFSSMG$LOAD_VIRTUAL_DISPLAY
SMG$MOVE_TEXTSMG$MOVE_VIRTUAL_DISPLAYSMG$NAME_TO_KEYCODE
SMG$PASTE_VIRTUAL_DISPLAYSMG$POP_VIRTUAL_DISPLAYSMG$PRINT_PASTEBOARD
SMG$PUT_CHARSSMG$PUT_CHARS_HIGHWIDESMG$PUT_CHARS_MULTI
SMG$PUT_CHARS_WIDESMG$PUT_HELP_TEXTSMG$PUT_LINE
SMG$PUT_LINE_HIGHWIDESMG$PUT_LINE_MULTISMG$PUT_LINE_WIDE
SMG$PUT_PASTEBOARDSMG$PUT_STATUS_LINESMG$READ_COMPOSED_LINE
SMG$READ_FROM_DISPLAYSMG$READ_KEYSTROKESMG$READ_STRING
SMG$READ_VERIFYSMG$REMOVE_LINESMG$REPAINT_LINESMG$REPAINT_SCREEN
SMG$REPASTE_VIRTUAL_DISPLAYSMG$REPLACE_INPUT_LINE
SMG$RESTORE_PHYSICAL_SCREENSMG$RETURN_CURSOR_POS
SMG$RETURN_INPUT_LINESMG$RING_BELLSMG$SAVE_PHYSICAL_SCREEN
SMG$SAVE_VIRTUAL_DISPLAYSMG$SCROLL_DISPLAY_AREASMG$SCROLL_VIEWPORT
SMG$SELECT_FROM_MENUSMG$SET_BROADCAST_TRAPPING
SMG$SET_CURSOR_ABSSMG$SET_CURSOR_MODESMG$SET_CURSOR_REL
SMG$SET_DEFAULT_STATESMG$SET_DISPLAY_SCROLL_REGION
SMG$SET_KEYPAD_MODESMG$SET_OUT_OF_BAND_ASTSSMG$SET_PHYSICAL_CURSOR
SMG$SET_TERM_CHARACTERISTICSSMG$SNAPSHOTSMG$UNPASTE_VIRTUAL_DISPLAY

SMG$ADD_KEY_DEF

  The Add Key Definition routine adds a keypad  key  definition  to  a
  table of key definitions.

     Format:

       SMG$ADD_KEY_DEF  key-table-id ,key-name [,if-state] [,attributes]
                  [,equivalence-string] [,state-string]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifies the key table to which you are adding a  key  definition.
  The  key-table-id  argument  is  the address of an unsigned longword
  that contains the key table identifier.

  key-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Identifies the key whose  value  you  are  defining.   The  key-name
  argument  is  the address of a descriptor pointing to this key name.
  The SMG$ADD_KEY_DEF procedure changes the string  to  uppercase  and
  removes trailing blanks.

  if-state

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Qualifies the value returned when key-name is struck.  The  if-state
  argument  is  the  address  of  a  descriptor  pointing to the state
  string.

  attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Longword bit mask  specifying  additional  attributes  of  this  key
  definition.   The  attributes argument is the address of an unsigned
  longword that contains this attribute mask.  If omitted, the mask is
  zero.

  equivalence-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Character string to be substituted for the keystroke in the returned
  line.    The   equivalence-string  argument  is  the  address  of  a
  descriptor pointing to this equivalence string.

  state-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Contains a new state name which becomes the current state when  this
  key  is  pressed.   The  state-string  argument  is the address of a
  descriptor pointing to the new state string.

SMG$BEGIN_DISPLAY_UPDATE

  The Begin Batching of Display Updates routine saves, or batches, all
  output   to   a   virtual   display   until   a   matching  call  to
  SMG$END_DISPLAY_UPDATE is encountered.

     Format:

       SMG$BEGIN_DISPLAY_UPDATE  display-id

     Argument

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display for which output  is  to  be  batched.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

SMG$BEGIN_PASTEBOARD_UPDATE

  The Begin Batching of Pasteboard Updates routine saves, or  batches,
  all   output   to   a   pasteboard   until   a   matching   call  to
  SMG$END_PASTEBOARD_UPDATE is encountered.

     Format:

       SMG$BEGIN_PASTEBOARD_UPDATE  pasteboard-id

     Argument

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard for which output is  to  be  batched.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.  Pasteboard-id  is  returned  by
  SMG$CREATE_PASTEBOARD.

SMG$CANCEL_INPUT

  The  Cancel  Input   Request   routine   immediately   cancels   any
  read-in-progress   that   was   issued   by  SMG$READ_COMPOSED_LINE,
  SMG$READ_KEYSTROKE, SMG$READ_STRING or SMG$READ_VERIFY.

     Format:

       SMG$CANCEL_INPUT  keyboard-id

     Argument

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  virtual  keyboard  for  which  the  input  is  to  be
  cancelled.   The  keyboard-id argument is the address of an unsigned
  longword that contains  the  keyboard  identifier.   Keyboard-id  is
  returned by SMG$CREATE_VIRTUAL_KEYBOARD.

SMG$CHANGE_PBD_CHARACTERISTICS

  The Change Pasteboad Characteristics routine  lets  you  change  the
  characteristics associated with a pasteboard.

     Format:

       SMG$CHANGE_PBD_CHARACTERISTICS  pasteboard-id [,desired-width]
                  [,width] [,desired-height] [,height]
                  [,desired-background-color] [,background-color]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard whose characteristics are  to  be  changed.
  The  pasteboard-id  argument  is the address of an unsigned longword
  that contains the pasteboard identifier.

  desired-width

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  New width for the pasteboard.  The  desired-width  argument  is  the
  address  of  a  signed longword that contains the desired width.  If
  omitted, the width does not change.

  width

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the physical width of the pasteboard.  The  width  argument
  is the address of a signed longword into which is written the actual
  width of the pasteboard.

  desired-height

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  New height for the pasteboard.  The desired-height argument  is  the
  address  of  a  signed  longword  integer  that contains the desired
  height of the pasteboard.  If omitted, the height does not change.

  height

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the physical height of the pasteboard.  The height argument
  is the address of a signed longword into which is written the actual
  height of the pasteboard.

  desired-background-color

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Symbolic   name   for   the   desired   background    color.     The
  desired-background-color  argument  is  the  address  of an unsigned
  longword that contains the desired color.

  background-color

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the actual background color chosen.   The  background-color
  argument  is  the  address  of  an  unsigned  longword into which is
  written the actual background color.

SMG$CHANGE_RENDITION

  The Change Default Rendition routine changes  the  video  attributes
  for all or part of a virtual display.

     Format:

       SMG$CHANGE_RENDITION  display-id ,start-row ,start-column
                  ,number-of-rows ,number-of-columns [,rendition-set]
                  [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display  whose  default  rendition  is  to  be
  changed.   The  display-id  argument  is  the address of an unsigned
  longword that contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Starting row position to receive the new rendition.   The  start-row
  argument  is  the address of a signed longword integer that contains
  the number of the starting row.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Starting  column  position  to  receive  the  new  rendition.    The
  start-column  argument  is  the address of a signed longword integer
  that contains the number of the starting column.

  number-of-rows

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of rows to receive the  new  rendition.   The  number-of-rows
  argument  is  the address of a signed longword integer that contains
  the number of rows to be affected.

  number-of-columns

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number   of   columns   to   receive   the   new   rendition.    The
  number-of-columns  argument  is  the  address  of  a signed longword
  integer that contains the number of columns to be affected.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which denotes video attributes for the specified portion of the
  virtual  display.   The  rendition-set argument is the address of an
  unsigned longword whose bits control the video rendition.  Each  bit
  in this argument affects the corresponding attribute in the display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which denotes video attributes for the specified portion of the
  virtual  display.   The rendition-complement argument is the address
  of an unsigned longword whose bits control the video rendition.

SMG$CHANGE_VIEWPORT

  The Change the Viewport Associated with a  Virtual  Display  routine
  changes  the  size  of  an existing viewport into a virtual display.
  The text which is currently in the viewport is remapped to  fit  the
  new dimensions.

     Format:

       SMG$CHANGE_VIEWPORT  display-id [,viewport-row-start]
                  [,viewport-column-start] [,viewport-number-rows]
                  [,viewport-number-columns]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display  containing  the  viewport  to  be
  changed.   The  display-id  argument  is  the address of an unsigned
  longword containing this identifier.

  viewport-row-start

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional row number in the virtual display that will become row 1 in
  the  changed  viewport.   The  viewport-row-start  argument  is  the
  address of a signed longword containing the row number.  If omitted,
  the present viewport-row-start value is used.

  viewport-column-start

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional column number in  the  virtual  display  that  will  become
  column   1  in  the  changed  viewport.   The  viewport-column-start
  argument is the address of a signed longword containing  the  column
  number.   If  omitted,  the  present  viewport-column-start value is
  used.

  viewport-number-rows

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional  number   of   rows   in   the   changed   viewport.    The
  viewport-number-rows  argument  is  the address of a signed longword
  containing  the  number  of   rows.    If   omitted,   the   present
  viewport-number-rows value is used.

  viewport-number-columns

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional  number  of  columns  in   the   changed   viewport.    The
  viewport-number-columns argument is the address of a signed longword
  containing  the  number  of  columns.   If  omitted,   the   present
  viewport-number-columns value is used.

SMG$CHANGE_VIRTUAL_DISPLAY

  The Change Virtual Display routine lets you change  the  dimensions,
  border, and video attributes of a virtual display.

     Format:

       SMG$CHANGE_VIRTUAL_DISPLAY  display-id ,number-of-rows
                  ,number-of-columns [,display-attributes]
                  [,video-attributes] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display whose attributes are  to  be  changed.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  number-of-rows

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the new number of  rows  for  the  virtual  display.   The
  number-of-rows  argument is the address of a signed longword integer
  that contains the number of rows in the virtual display.

  number-of-columns

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the new number of columns for the  virtual  display.   The
  number-of-columns  argument  is  the  address  of  a signed longword
  integer that contains the number of columns in the virtual display.

  display-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies whether the virtual display  is  bordered  (the  default).
  The  display-attributes  argument  is  the  address  of  an unsigned
  longword that contains the display attributes mask.

  video-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default rendition to be applied to  all  output  in  a
  virtual  display,  unless  overridden by a call to a specific output
  routine.   The  video-attributes  argument  is  the  address  of  an
  unsigned longword that contains the video attributes mask.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set specifier.  At  this  time,
  the only valid value is SMG$C_ASCII, which is also the default.

SMG$CHECK_FOR_OCCLUSION

  The Check for Occlusion routine checks  to  see  whether  a  virtual
  display is covered by another virtual display.

     Format:

       SMG$CHECK_FOR_OCCLUSION  display-id ,pasteboard-id
                  ,occlusion-state

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  virtual  display  to  be  checked.   The  display-id
  argument  is  the  address of an unsigned longword that contains the
  display     identifier.      Display-id     is      returned      by
  SMG$CREATE_VIRTUAL_DISPLAY.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to be checked.  The pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.  Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

  occlusion-state

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the value denoting whether the display  is  occluded.   The
  occlusion-state argument is the address of a signed longword integer
  into which the occlusion state is written.  Occlusion-state  is  set
  to  1  if  the display is occluded or set to 0 if the display is not
  occluded on the specified pasteboard.  If  the  procedure  does  not
  return SS$_NORMAL, the contents of occlusion-state are undefined.

SMG$CONTROL_MODE

  The Control Mode routine controls the mode of the pasteboard.   This
  includes  buffering, minimal updating, whether the screen is cleared
  when the pasteboard is deleted, and whether tab characters are  used
  for screen formatting.

     Format:

       SMG$CONTROL_MODE  pasteboard-id [,new-mode] [,old-mode]
                  [,buffer-size]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to be changed.  The pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.  Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

  new-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  new  control  settings  to  be  used.   The  optional
  new-mode  argument  is  the  address  of  an  unsigned longword that
  contains the mode settings.  A bit set to 1 forces that mode  to  be
  employed while a bit set to 0 inhibits that mode of operation.

  old-mode

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the control settings that were  in  effect  before  calling
  this procedure.  The optional old-mode argument is the address of an
  unsigned longword into which are written the former  mode  settings.
  A  bit set to 1 indicates that the specified mode was employed while
  a bit set to 0 indicates that the mode was inhibited.

  buffer-size

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Specifies the size of the buffer in bytes.  The optional buffer-size
  argument  is  the address of an unsigned word that contains the size
  of the buffer.  Buffer-size is used when buffering mode  is  enabled
  (SMG$M_BUF_ENABLED).   The  default  and  minimum buffer size is 256
  bytes.  The maximum value is 65535.  The buffer-size  value  depends
  on UAF values and the sysgen parameter MAXBUF.

SMG$COPY_VIRTUAL_DISPLAY

  The Copy a Virtual Display routine creates a  copy  of  an  existing
  virtual display and assigns to it a new virtual display number.

     Format:

       SMG$COPY_VIRTUAL_DISPLAY  current-display-id ,new-display-id

     Arguments:

  current-display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the virtual display  to  be  replicated.   The
  current-display-id  argument is the address of the unsigned longword
  that contains the display identifier.

  new-display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives  the  display  identifier  of  the  newly  created  virtual
  display.  The new-display-id argument is the address of the unsigned
  longword that receives the new display identifier.

SMG$CREATE_KEY_TABLE

  The Create Key Table routine creates a table for key definitions.

     Format:

       SMG$CREATE_KEY_TABLE  key-table-id

     Argument

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives  the  identifier  of  the  newly-created  key  table.   The
  key-table-id  argument  is  the address of an unsigned longword into
  which is written the key table identifier.

SMG$CREATE_MENU

  The Fill the Virtual Display  with  a  Menu  routine  displays  menu
  choices  in the virtual display indicated, starting at the specified
  row.

     Format:

       SMG$CREATE_MENU  display-id ,choices [,menu-type] [,flags]
                  [,row] [,rendition-set] [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the virtual  display  in  which  the  menu  is
  created.   The  display-id  argument  is  the address of an unsigned
  longword containing this identifier.

  choices

  VMS usage: static array of char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Static array in which each element corresponds  to  an  item  to  be
  displayed  in  the  menu.   The choices argument is the address of a
  descriptor pointing to this static array of character strings.  Note
  that blank menu items are ignored.

  menu-type

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask specifying the type of menu to be displayed.   The
  menu-type  argument  is  the  address  of  a  longword bit mask that
  specifies this menu type.  Valid values are as follows:

       SMG$K_BLOCK        The  menu  items  are  displayed  in  matrix
                            format (default).

       SMG$K_VERTICAL     Each menu item is displayed on its own line.

       SMG$K_HORIZONTAL   The menu items  are  displayed  all  on  one
                            line.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask specifying the attributes to be used for the menu.
  The  flags  argument  is  the  address  of  a longword bit mask that
  specifies these attributes.  Valid values are as follows:

       SMG$M_FIXED_FORMAT          Each menu item is in a fixed length
                                     field.  The  field is the size of
                                     the  largest   menu   item.   The
                                     default is compress.

       SMG$M_DOUBLE_SPACE          Double-spaced rows of  menu  items.
                                     The default is single spaced.

  row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional row number in the specified virtual display  at  which  the
  first  menu item is displayed.  The row argument is the address of a
  signed longword that contains this row number.  If row  is  omitted,
  the first row of the virtual scrolling region is used.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute specifier.  The  rendition-set  argument  is  the
  address  of  a  longword  bit  mask  in which each one-bit attribute
  causes the corresponding attribute to be used when writing  out  the
  menu  choices.   The  following  attributes  can be specified by the
  rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters  in  reverse  video  ---
                            that   is,   using  the  opposite  default
                            rendition of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

       SMG$M_USER1   through   SMG$M_USER8    Displays    user-defined
                            attributes.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute complement specifier.   The  rendition-complement
  argument is the address of a longword bit mask in which each one-bit
  attribute causes the corresponding attribute to be complemented when
  writing  out  the  menu  choices.  All of the attributes that can be
  specified with the rendition-set argument can be  complemented  with
  the rendition-complement argument.

SMG$CREATE_PASTEBOARD

  The Create Pasteboard routine creates a pasteboard and  returns  its
  assigned pasteboard identifier.

     Format:

       SMG$CREATE_PASTEBOARD  pasteboard-id [,output-device]
                  [,number-of-pasteboard-rows]
                  [,number-of-pasteboard-columns] [,flags]
                  [,type-of-terminal]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the  identifier  of  the  newly  created  pasteboard.   The
  pasteboard-id  argument  is the address of an unsigned longword into
  which is written the new pasteboard identifier.

  output-device

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  Specifies the file specification or logical name to which the output
  associated  with this pasteboard will be written.  The output-device
  argument is the address of a descriptor that points to the  name  of
  the output device.  If omitted, output is sent to SYS$OUTPUT.

  number-of-pasteboard-rows

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives  the  number  of  rows  on  the  device  specified  in  the
  output-device  argument.   The number-of-pasteboard-rows argument is
  the address of a signed longword integer into which is  written  the
  number  of rows on the specified device, which will be the number of
  rows in the pasteboard.

  number-of-pasteboard-columns

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Receives the number of  columns  on  the  device  specified  in  the
  output-device  argument.   The number-of-pasteboard-columns argument
  is the address of a signed longword integer into  which  is  written
  the number of columns on the specified device.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies optional behavior.  The  flags  argument  is
  the  address  of  an  unsigned longword that contains the flag.  The
  default action is to clear the screen.  If the  value  of  flags  is
  SMG$M_KEEP_CONTENTS,  the  screen  is  not  initially  cleared.  The
  Screen Management Facility works best when it can manage the  entire
  screen.  Therefore, using SMG$M_KEEP_CONTENTS is discouraged.

  type-of-terminal

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Receives  the  SMG$  internal  device  type  to  which  the   output
  associated    with   this   pasteboard   will   be   written.    The
  type-of-terminal argument is the address  of  an  unsigned  longword
  into which is written the terminal type.

SMG$CREATE_SUBPROCESS

  The Create  and  Initialize  a  Subprocess  routine  creates  a  DCL
  subprocess and associates it with a virtual display.

     Format:

       SMG$CREATE_SUBPROCESS  display-id [,AST-routine]
                  [,AST-argument]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual  display  with  which  the  newly  created
  subprocess is associated.  The display-id argument is the address of
  an unsigned longword containing this identifier.

  AST-routine

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by value

  Optional address of an AST routine to be called when  the  currently
  executing  command  completes.   The  AST-routine  argument  is  the
  address of the routine's procedure  entry  mask  ---  that  is,  the
  address of the routine itself.

  AST-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Optional argument you supply to the AST routine.   The  AST-argument
  parameter  is  an  unsigned  longword  that contains the value to be
  passed to the AST routine.

SMG$CREATE_VIRTUAL_DISPLAY

  The Create Virtual Display routine creates  a  virtual  display  and
  returns its assigned display id.

     Format:

       SMG$CREATE_VIRTUAL_DISPLAY  number-of-rows ,number-of-columns
                  ,display-id [,display-attributes]
                  [,video-attributes] [,character-set]

     Arguments:

  number-of-rows

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of rows in the newly created  virtual  display.
  The  number-of-rows  argument  is  the  address of a signed longword
  integer that contains the desired number of rows.

  number-of-columns

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the  number  of  columns  in  the  newly  created  virtual
  display.   The number-of-columns argument is the address of a signed
  longword integer that contains the desired number of columns.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the display-id of the newly created virtual  display.   The
  display-id  argument  is  the  address  of an unsigned longword into
  which is written the display identifier.

  display-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Receives the  current  default  display  attributes.   The  optional
  display-attributes  argument  is the address of an unsigned longword
  into which the current display attributes are written.

  video-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default rendition to be applied to all output in  this
  virtual  display  unless  overridden  by a call to a specific output
  routine (for example, SMG$CHANGE_RENDITION).   The  video-attributes
  argument  is  the  address of an unsigned longword that contains the
  video attributes mask.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set specifier.  At  this  time,
  the only valid value is SMG$C_ASCII, which is also the default.

SMG$CREATE_VIRTUAL_KEYBOARD

  The Create Virtual Keyboard routine creates a virtual  keyboard  and
  returns its assigned keyboard-id.

     Format:

       SMG$CREATE_VIRTUAL_KEYBOARD  keyboard-id [,input-device]
                  [,default-filespec] [,resultant-filespec]
                  [,recall-size]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the  keyboard  identifier  of  the  newly  created  virtual
  keyboard.   The  keyboard-id  argument is the address of an unsigned
  longword into which is written the keyboard identifier.

  input-device

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing the file specification or logical name of the file
  or  terminal to be used  for this virtual keyboard. The input-device
  argument is the  address  of  a  descriptor  pointing  to  the  file
  specification.  If omitted, this defaults to SYS$INPUT.

  default-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String   containing   the   default   file    specification.     The
  default-filespec argument is the address of a descriptor pointing to
  the default file specification.  If  omitted,  the  null  string  is
  used.

  resultant-filespec

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which the  procedure  writes  the  fully  expanded  file
  specification  of the file used.  The resultant-filespec argument is
  the address of a descriptor pointing to the  string  into  which  is
  written the file specification that was used.

  recall-size

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Number of input lines to be saved for later  recall.   The  optional
  recall-size  argument  is the address of an unsigned byte containing
  the specified number of lines.  A value of zero turns off input line
  recall.  By default, 20 lines are saved for later recall.

SMG$CREATE_VIEWPORT

  The Create  a  Virtual  Viewport  routine  creates  a  viewport  and
  associates  it with a virtual display.  The location and size of the
  viewport are specified by the caller.

     Format:

       SMG$CREATE_VIEWPORT  display-id ,viewport-row-start
                  ,viewport-column-start ,viewport-number-rows
                  ,viewport-number-columns

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the virtual display associated with the  newly
  created  viewport.   The  display-id  argument  is the address of an
  unsigned longword containing this identifier.

  viewport-row-start

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Row number in the virtual display that will  become  row  1  in  the
  viewport.   The  viewport-row-start  argument  is  the  address of a
  signed longword containing the row number.

  viewport-column-start

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Column number in the virtual display that will become  column  1  in
  the  viewport.  The viewport-column-start argument is the address of
  a signed longword containing the column number.

  viewport-number-rows

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of rows in the viewport.  The  viewport-number-rows  argument
  is the address of a signed longword containing the number of rows in
  the newly created viewport.

  viewport-number-columns

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of columns  in  the  viewport.   The  viewport-number-columns
  argument  is  the address of a signed longword containing the number
  of columns in the newly created viewport.

SMG$CURSOR_COLUMN

  The Return  Cursor  Column  Position  routine  returns  the  virtual
  cursor's current column position in a specified virtual display.

     Format:

       SMG$CURSOR_COLUMN  display-id

     ARGUMENT

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The  display  for  which  the  column  position  is  returned.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

SMG$CURSOR_ROW

  The Return Cursor Row Position routine returns the virtual  cursor's
  current row position in a specified virtual display.

     Format:

       SMG$CURSOR_ROW  display-id

     ARGUMENT

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  The display for which the row position is returned.  The  display-id
  argument  is  the  address of an unsigned longword that contains the
  display identifier.

SMG$DEFINE_KEY

  The Perform a DEFINE/KEY Command  routine  performs  the  DEFINE/KEY
  command you provide.

     Format:

       SMG$DEFINE_KEY  key-table-id ,command-string

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identification of the key definition table for which the  DEFINE/KEY
  command  is  to  be  performed.   The  key-table-id  argument is the
  address  of  an  unsigned  longword  that  contains  the  key  table
  identifier.

  command-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing the  DEFINE/KEY  command  to  be  performed.   The
  command-string  argument  is the address of a descriptor pointing to
  the command to be performed.

SMG$DEL_TERM_TABLE

  The Delete Terminal Table routine terminates access to TERMTABLE.EXE
  and frees the associated virtual address space.

     Format:

       SMG$DEL_TERM_TABLE

     NONE

SMG$DELETE_CHARS

  The Delete  Characters  routine  deletes  characters  in  a  virtual
  display.

     Format:

       SMG$DELETE_CHARS  display-id ,number-of-characters ,start-row
                  ,start-column

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifies the virtual display  from  which  characters  are  to  be
  deleted.   The  display-id  argument  is  the address of an unsigned
  longword integer that contains the display identifier.

  number-of-characters

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  number   of   characters   to   be   deleted.    The
  number-of-characters  argument  is  the address of a signed longword
  integer that contains the number of characters to be deleted.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row position at which  to  start  the  deletion.   The
  start-row  argument is the address of a signed longword integer that
  contains the row number at which to start the deletion.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column position at which to start the  deletion.   The
  start-column  argument  is  the address of a signed longword integer
  that contains the column position at which to start the deletion.

SMG$DELETE_KEY_DEF

  The Delete Key Definition routine deletes a key  definition  from  a
  specified table of key definitions.

     Format:

       SMG$DELETE_KEY_DEF  key-table-id ,key-name [,if-state]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifies the key table from which the key definition  is  deleted.
  The  key-table-id  argument  is  the address of an unsigned longword
  that contains the key table identifier.

  key-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing the name of the key  whose  definition  is  to  be
  deleted.   The  key-name  argument  is  the  address of a descriptor
  pointing to the key name.  Key-name is stripped of  trailing  blanks
  and converted to uppercase before use.

  if-state

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing a state name  which  further  qualifies  key-name.
  The if-state argument is the address of a descriptor pointing to the
  state name.  If omitted, the null state is used.  Thus if a key  has
  several  definitions  depending  on various values of if-state, this
  routine lets you delete only one of those definitions.

SMG$DELETE_LINE

  The Delete Line routine deletes lines from a virtual display.

     Format:

       SMG$DELETE_LINE  display-id ,start-row  [,number-of-rows]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifies the virtual display from which lines are to  be  deleted.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the first line to be deleted  from  the  virtual  display.
  The  start-row  argument is the address of a signed longword integer
  that contains the number of the first line to be deleted.

  number-of-rows

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of lines to  be  deleted.   The  number-of-rows
  argument  is  the address of a signed longword integer that contains
  the number of lines to be deleted.  If omitted, one line is deleted.

SMG$DELETE_MENU

  The End Access to a Menu in the Virtual Display routine ends  access
  to the menu choices in the specified virtual display.

     Format:

       SMG$DELETE_MENU  display-id [,flags]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display in  which  the  menu  choices  are
  displayed.   The  display-id  argument is the address of an unsigned
  longword containing this identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask specifying  possible  actions  to  be  taken  when
  deleting  the menu.  The flags argument is the address of a longword
  bit mask specifying these options.  At this  time,  the  only  valid
  value  is  SMG$M_ERASE_MENU.   If this option is specified, all rows
  containing menu items are erased.

SMG$DELETE_PASTEBOARD

  The Delete Pasteboard routine deletes a pasteboard.

     Format:

       SMG$DELETE_PASTEBOARD  pasteboard-id  [,flags]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to be deleted.  The pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Determines whether this routine clears the screen after deleting the
  specified  pasteboard.   The  flags  argument  is  the address of an
  unsigned longword that contains the flag.  If flags is 1, the screen
  is  cleared;  if  0, the screen is not cleared.  If this argument is
  omitted, the default is to clear the screen.

SMG$DELETE_SUBPROCESS

  The Terminate a Subprocess routine deletes  a  subprocess  that  was
  created with the SMG$CREATE_SUBPROCESS routine.

     Format:

       SMG$DELETE_SUBPROCESS  display-id

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display  associated  with  the  subprocess
  being  deleted.   The  display-id  argument  is  the  address  of an
  unsigned longword that contains this virtual display identifier.

SMG$DELETE_VIEWPORT

  The Delete a Viewport routine deletes the  specified  viewport  from
  any pasteboards to which it is pasted.

     Format:

       SMG$DELETE_VIEWPORT  display-id

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display associated with the viewport to be
  deleted.   The  display-id  argument  is  the address of an unsigned
  longword containing this identifier.

SMG$DELETE_VIRTUAL_DISPLAY

  The Delete Virtual Display routine deletes a virtual display.

     Format:

       SMG$DELETE_VIRTUAL_DISPLAY  display-id

     Argument

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  virtual  display  to  be  deleted.   The  display-id
  argument  is  the  address of an unsigned longword that contains the
  display identifier.

SMG$DELETE_VIRTUAL_KEYBOARD

  The Delete Virtual Keyboard routine deletes a virtual keyboard.

     Format:

       SMG$DELETE_VIRTUAL_KEYBOARD  keyboard-id

     Argument

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual  keyboard  to  be  deleted.   The  keyboard-id
  argument  is  the  address of an unsigned longword that contains the
  keyboard identifier.

SMG$DISABLE_BROADCAST_TRAPPING

  The  Disable  Broadcast  Trapping  routine  disables   trapping   of
  broadcast messages for the specified terminal.

     Format:

       SMG$DISABLE_BROADCAST_TRAPPING  pasteboard-id

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard for  the  terminal  to  be  affected.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

SMG$DISABLE_UNSOLICITED_INPUT

  The Disable Unsolicited Input routine disables the invocation of AST
  routines for unsolicited input.

     Format:

       SMG$DISABLE_UNSOLICITED_INPUT  pasteboard-id

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the keyboard (associated with  the  specified  pasteboard)
  for  which  unsolicited  input is being disabled.  The pasteboard-id
  argument is the address of an unsigned longword  that  contains  the
  pasteboard     identifier.     Pasteboard-id    is    returned    by
  SMG$CREATE_PASTEBOARD.

SMG$DRAW_CHARACTER

  The Draw a Character in a Virtual Display routine draws a  character
  at the specified position in a virtual display.

     Format:

       SMG$DRAW_CHARACTER  display-id ,flags [,row] [,column]
                  [,rendition-set] [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display.  The display-id argument  is  the
  address of an unsigned longword containing this identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask indicating the character to be drawn.  The  flags  argument
  is  the address of this bit mask.  The valid character values are as
  follows:

  o  SMG$M_UP

  o  SMG$M_DOWN

  o  SMG$M_LEFT

  o  SMG$M_RIGHT

  row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional row  number  specifying  the  row  position  at  which  the
  specified  character is drawn.  The row argument is the address of a
  signed longword containing the row number.

  column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional column number specifying the column position at  which  the
  specified character is drawn.  The column argument is the address of
  a signed longword containing the column number.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute specifier.  The  rendition-set  argument  is  the
  address of a longword bit mask.  Each bit attribute in this argument
  causes the corresponding attribute to be set in the display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute complement specifier.   The  rendition-complement
  argument  is  the  address  of  an unsigned longword that contains a
  video attributes mask.  Each bit attribute in this  argument  causes
  the  corresponding  attribute  to be set in the display.  All of the
  attributes that can be specified with the rendition-set argument can
  be complemented with the rendition-complement argument.

SMG$DRAW_LINE

  The Draw a Line routine draws a horizontal or vertical line.

     Format:

       SMG$DRAW_LINE  display-id ,start-row  ,start-column ,end-row
                   ,end-column [,rendition-set] [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display on which the line is to be drawn.  The
  display-id  argument  is  the  address  of an unsigned longword that
  contains  the  display  identifier.   Display-id  is   returned   by
  SMG$CREATE_VIRTUAL_DISPLAY.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row at which to begin drawing the line.  The start-row
  argument  is  the address of a signed longword integer that contains
  the row number at which to begin drawing the line.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at  which  to  begin  drawing  the  line.   The
  start-column  argument  is  the address of a signed longword integer
  that contains the column number at which to begin drawing the line.

  end-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row  at  which  the  drawn  line  ends.   The  end-row
  argument  is  the address of a signed longword integer that contains
  the row number at which the drawn line ends.

  end-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at which the drawn line ends.   The  end-column
  argument  is  the address of a signed longword integer that contains
  the column number at which the drawn line ends.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask which denotes video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask which denotes video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.  Each bit attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.  Video attributes which can be manipulated in  this  manner
  are the same as those for the rendition-set argument.

SMG$DRAW_RECTANGLE

  The Draw a Rectangle routine draws a rectangle.

     Format:

       SMG$DRAW_RECTANGLE  display-id ,start-row ,start-column
                  ,end-row ,end-column [,rendition-set]
                  [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display on which the rectangle is to be drawn.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the  row  number  of  the  top  left-hand  corner  of  the
  rectangle.   The  start-row  argument  is  the  address  of a signed
  longword integer that contains the row number of the  top  left-hand
  corner of the rectangle.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column number of  the  top  left-hand  corner  of  the
  rectangle.   The  start-column  argument  is the address of a signed
  longword  integer  that  contains  the  column  number  of  the  top
  left-hand corner of the rectangle.

  end-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row number of the  bottom  right-hand  corner  of  the
  rectangle.  The end-row argument is the address of a signed longword
  integer that contains the row number of the bottom right-hand corner
  of the rectangle.

  end-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column number of the bottom right-hand corner  of  the
  rectangle.   The  end-column  argument  is  the  address of a signed
  longword integer that contains  the  column  number  of  the  bottom
  right-hand corner of the rectangle.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask  that  denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask  that  denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.  Each bit attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.  Video attributes that can be manipulated  in  this  manner
  are the same as for the rendition-set argument.

SMG$ENABLE_UNSOLICITED_INPUT

  The Enable Unsolicited Input routine detects unsolicited  input  and
  calls an AST routine in response.

     Format:

       SMG$ENABLE_UNSOLICITED_INPUT  pasteboard-id ,AST-routine
                  [,AST-argument]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  pasteboard  for  which  unsolicited  input  is  being
  enabled.   The  pasteboard-id argument is the address of an unsigned
  longword that contains the pasteboard identifier.  Pasteboard-id  is
  returned by SMG$CREATE_VIRTUAL_PASTEBOARD.

  AST-routine

  VMS usage: ast_procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  The address  of  an  AST  routine  to  be  called  upon  receipt  of
  unsolicited  input at the terminal.  The AST-routine argument is the
  address of the routine's procedure entry mask, that is, the  address
  of  the  routine  itself.   SMG$ENABLE_UNSOLICITED_INPUT detects the
  presence of unsolicited input and calls the  AST  routine  with  six
  arguments:   the  pasteboard-id,  the  AST-argument, R0, R1, PC, and
  PSL.

  AST-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  A value to be passed to the AST routine.  The AST-argument  argument
  contains the value to be passed to the AST routine.

SMG$END_DISPLAY_UPDATE

  The End Display Update routine ends update batching  for  a  virtual
  display.

     Format:

       SMG$END_DISPLAY_UPDATE  display-id

     Argument

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  virtual  display  to  be  affected.   The  display-id
  argument  is  the  address  of  a longword that contains the display
  identifier.

SMG$END_PASTEBOARD_UPDATE

  The End  Pasteboard  Update  routine  ends  update  batching  for  a
  pasteboard.

     Format:

       SMG$END_PASTEBOARD_UPDATE  pasteboard-id

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  pasteboard  on  which  the  batch  count  is  to  be
  decremented.   The  pasteboard-id  argument  is  the  address  of an
  unsigned  longword  that   contains   the   pasteboard   identifier.
  Pasteboard-id  is  returned  by SMG$CREATE_PASTEBOARD.  If the batch
  count reaches 0, all buffered output for the specified pasteboard is
  written out.

SMG$ERASE_CHARS

  The Erase Characters routine erases characters in a virtual  display
  by replacing them with blanks.

     Format:

       SMG$ERASE_CHARS  display-id ,number-of-characters ,start-row
                   ,start-column

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display from which characters will be  erased.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  number-of-characters

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of characters to be replaced with blanks.   The
  number-of-characters  argument  is  the address of a signed longword
  integer that contains the number of characters to be  replaced  with
  blanks.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  row  on  which  the  erase  operation  begins.   The
  start-row  argument is the address of a signed longword integer that
  contains the number of the row at which the erasure is to begin.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column on  which  the  erase  operation  begins.   The
  start-column  argument  is  the address of a signed longword integer
  that contains the number of the column at which the  erasure  is  to
  begin.

SMG$ERASE_COLUMN

  The Erase Column From Display routine erases the  specified  portion
  of  the  virtual  display  from the given position to the end of the
  column.

     Format:

       SMG$ERASE_COLUMN  display-id [,start-row] [,column-number]
                  [,end-row]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display to be  affected.   The  display-id
  argument  is  the  address  of  an unsigned longword containing this
  virtual display identifier.

  start-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional line number at  which  the  erase  operation  begins.   The
  start-row argument is the address of a signed longword that contains
  the specified  line  number.   If  this  argument  is  omitted,  the
  column-number  argument is ignored and the erase operation begins at
  the current location of the virtual cursor for that virtual display.

  column-number

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional column number at which the  erase  operation  begins.   The
  column-number  argument  is  the  address  of a signed longword that
  contains the specified column number.  If this argument is  omitted,
  the  start-row argument is ignored and the erase operation begins at
  the current location of the virtual cursor for that virtual display.

  end-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional row number at which the erase operation ends.  The  end-row
  argument  is  the  address  of  a  signed longword that contains the
  specified row number.

SMG$ERASE_DISPLAY

  The Erase Virtual Display routine erases all or part  of  a  virtual
  display by replacing text characters with blanks.

     Format:

       SMG$ERASE_DISPLAY  display-id [,start-row] [,start-column]
                  [,end-row] [,end-column]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display to be erased.  The display-id argument
  is  the  address  of  an unsigned longword that contains the display
  identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  row  at  which  the  erase  operation  begins.   The
  start-row  argument is the address of a signed longword integer that
  contains the number of the row at which the erasure begins.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at  which  the  erase  operation  begins.   The
  start-column  argument  is  the address of a signed longword integer
  that contains the number of the column at which the erasure begins.

  end-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row at which the erase operation ends,  that  is,  the
  last  row  to  be  erased.  The end-row argument is the address of a
  signed longword integer that contains the number of the last row  to
  be erased.

  end-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at which the erase operation ends, that is, the
  last column to be erased.  The end-column argument is the address of
  a signed longword integer that  contains  the  number  of  the  last
  column to be erased.

SMG$ERASE_LINE

  The Erase Line routine erases all or part of a  line  in  a  virtual
  display.

     Format:

       SMG$ERASE_LINE  display-id [,start-row]  [,start-column]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  virtual  display  to  be  affected.   The  display-id
  argument  is  the  address of an unsigned longword that contains the
  display     identifier.      Display-id     is      returned      by
  SMG$CREATE_VIRTUAL_DISPLAY.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the  line  at  which  the  erase  operation  starts.   The
  start-row  argument is the address of a signed longword integer that
  contains the number of the row at  which  the  erasure  starts.   If
  omitted,  start-column  is  also  ignored  and  the  current  cursor
  position is used.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at  which  the  erase  operation  starts.   The
  start-column  argument  is  the address of a signed longword integer
  that contains the number of the column at which the erasure  starts.
  If  omitted,  start-row  is  also  ignored  and  the  current cursor
  position is used.

SMG$ERASE_PASTEBOARD

  The Erase Pasteboard routine erases a pasteboard; that is, it clears
  the screen.

     Format:

       SMG$ERASE_PASTEBOARD  pasteboard-id

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to be erased.  The  pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.  Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

SMG$EXECUTE_COMMAND

  The Execute Command in a Subprocess routine executes  the  specified
  command  in  the  subprocess  created with the SMG$CREATE_SUBPROCESS
  routine.

     Format:

       SMG$EXECUTE_COMMAND  display-id ,command-desc [,flags]
                  [,ret-status]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the virtual display with which the  subprocess
  is  associated.   The  display-id  argument  is  the  address  of an
  unsigned longword containing this identifier.

  command-desc

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Command string.  The command-desc  argument  is  the  address  of  a
  descriptor pointing to the command string.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask  that  specifies  optional  behavior.   The  flags
  argument  is  the  address of an unsigned longword that contains the
  bit mask.  The valid values for the bit mask are as follows:

       SMG$M_DATA_FOLLOWS       Input data follows. The next  call  to
                                  SMG$EXECUTE_COMMAND  contains  input
                                  data  for  the  currently  executing
                                  command.  Do  not specify this value
                                  if this is the last input data item.
                                  If   you   do  specify  this  value,
                                  ret-status is not returned.

       SMG$M_SEND_EOF           Send    end-of-file    marker.     The
                                  end-of-file  marker  is  sent to the
                                  subprocess.

  ret-status

  VMS usage: cond_value
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Optional status of the executed command, provided that the  commands
  are  not  being buffered.  The ret-status argument is the address of
  an unsigned longword containing this status.

SMG$FIND_CURSOR_DISPLAY

  The Find Display  that  Contains  the  Cursor  routine  returns  the
  identifier of the most recently pasted virtual display that contains
  the physical cursor.

     Format:

       SMG$FIND_CURSOR_DISPLAY  pasteboard-id ,display-id
                  [,pasteboard-row] [,pasteboard-column]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard (physical screen) in which the cursor is to
  be  found.   The pasteboard-id argument is the address of a longword
  that contains the pasteboard identifier.  Pasteboard-id is  returned
  by SMG$CREATE_PASTEBOARD.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the identifier of the  display  in  which  the  cursor  was
  found.   The  display-id  argument is the address of a longword into
  which the display identifier is written.

  pasteboard-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The row position at which to begin the search for the  cursor.   The
  optional pasteboard-row argument is the address of a signed longword
  containing the pasteboard row.  You can use  pasteboard-row  instead
  of the physical cursor row.

  pasteboard-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The column position at which to begin the  search  for  the  cursor.
  The  optional  pasteboard-column argument is the address of a signed
  longword  containing   the   pasteboard   column.    You   can   use
  pasteboard-column instead of the physical cursor column.

SMG$FLUSH_BUFFER

  The  Flush  Buffer  routine  flushes  all  buffered  output  to  the
  terminal.

     Format:

       SMG$FLUSH_BUFFER  pasteboard-id

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to be flushed.  The pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.  Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

SMG$GET_BROADCAST_MESSAGE

  The Get Broadcast Message routine determines whether a  message  has
  been broadcast to the pasteboard and returns the message.

     Format:

       SMG$GET_BROADCAST_MESSAGE  pasteboard-id [,message]
                  [,message-length] [,message-type]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the terminal to be checked for the presence of a broadcast
  message.   The  pasteboard-id argument is the address of an unsigned
  longword that contains the pasteboard identifier.  Pasteboard-id  is
  returned by SMG$CREATE_PASTEBOARD.

  message

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  A string that receives the broadcast message, if such a  message  is
  available.  The message argument is the address of a descriptor that
  points to the storage into which the message text  is  written.   If
  this argument is omitted, the broadcast message is discarded.

  message-length

  VMS usage: word_unsigned
  type: word integer (unsigned)
  access: write only
  mechanism: by reference

  Receives  the  actual  length  of  the   broadcast   message.    The
  message-length  argument  is  the  address  of an unsigned word into
  which is written the length of the message.

  message-type

  VMS usage: word_unsigned
  type: word integer (unsigned)
  access: write only
  mechanism: by reference

  Receives the type of broadcast message.  The  message-type  argument
  is the address of an unsigned word into which is written the type of
  message.  Values for message-type are defined by the $MSGDEF library
  definition.   If  the  value for message-type is not MSG$_TRMBRDCST,
  the condition value returned is SMG$_NOBRDMSG.

SMG$GET_CHAR_AT_PHYSICAL_CURSOR

  The Return Character At Cursor routine returns the character at  the
  current physical cursor position.

     Format:

       SMG$GET_CHAR_AT_PHYSICAL_CURSOR  pasteboard-id ,character-code

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard on which to retrieve  the  character.   The
  pasteboard-id  argument  is  the address of a longword that contains
  the pasteboard identifier.

  character-code

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: write only
  mechanism: by reference

  Returned character code.  The character-code argument is the address
  of  an  unsigned  byte  into  which is written the character's ASCII
  code.

SMG$GET_DISPLAY_ATTR

  The Get Display Attributes routine returns the attributes associated
  with a virtual display.

     Format:

       SMG$GET_DISPLAY_ATTR  display-id [,height] [,width]
                  [,display-attributes] [,video-attributes]
                  [,character-set] [,flags]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display for which  information  is  requested.
  The  display-id argument is the address of an unsigned longword that
  contains  the  display  identifier.   Display-id  is   returned   by
  SMG$CREATE_VIRTUAL_DISPLAY.

  height

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Receives the number of rows in the  display.   The  optional  height
  argument  is the address of a signed longword integer into which the
  height is written.

  width

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Receives the number of columns in the display.  The  optional  width
  argument  is  the address of a signed longword integer into which is
  written the number of columns in the display.

  display-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the  current  default  display  attributes.   The  optional
  display-attributes  argument  is the address of an unsigned longword
  into which the current display attributes are written.

  video-attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives  the  current  default  video  attributes.   The   optional
  video-attributes  argument  is  the  address of an unsigned longword
  into which the current video attributes are written.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  optional character-set argument is the address of an
  unsigned longword that specifies the character  set.   Valid  values
  are SMG$C_ASCII, the default, and SMG$C_SPEC_GRAPHICS.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Optional bit mask that receives the following information about  the
  specified display:

  SMG$M_SUBPROCESS    Display has a subprocess attached to it.

  SMG$M_MENU          Display contains a menu.

  SMG$M_VIEWPORT      Display contains a viewport.

SMG$GET_KEY_DEF

  The Get Key Definition routine returns  the  key  definition  for  a
  specified key.

     Format:

       SMG$GET_KEY_DEF  key-table-id ,key-name [,if-state]
                  [,attributes] [,equivalence-string] [,state-string]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the key table from which you are extracting a  definition.
  The  key-table-id  argument  is  the address of an unsigned longword
  that contains the key table identifier.  Key-table-id is returned by
  SMG$CREATE_KEY_TABLE.

  key-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Specifies the name of the key associated with the  definition.   The
  key-name argument is the address of a descriptor pointing to the key
  name.

  if-state

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Specifies the current state name in effect after the key is pressed.
  The if-state argument is the address of a descriptor pointing to the
  state name.

  attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the attributes bit  mask  for  this  key  definition.   The
  attributes  argument  is  the  address  of  a longword into which is
  written the bit mask describing the key's attributes.

  equivalence-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the  equivalence  string  for  this  key  definition.   The
  equivalence-string  argument is the address of a descriptor pointing
  to the storage into which is written the equivalence string.

  state-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the new state name, if  any,  which  is  set  by  this  key
  definition.    The   state-string  argument  is  the  address  of  a
  descriptor pointing to the storage into which  is  written  the  new
  state string.

SMG$GET_KEYBOARD_ATTRIBUTES

  The Get Keyboard Attributes routine gets information about a virtual
  keyboard  and  leaves  it  in  a  user-supplied  area:  the keyboard
  information table (KIT).

     Format:

       SMG$GET_KEYBOARD_ATTRIBUTES  keyboard-id ,p-kit ,p-kit-size

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Keyboard identifier.  The keyboard-id argument is the address of  an
  unsigned  longword  containing  the  identification  of  the virtual
  keyboard from which to  read.   A  virtual-keyboard  is  created  by
  calling the SMG$CREATE_VIRTUAL_KEYBOARD routine.

  p-kit

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the  keyboard  information.   The  p-kit  argument  is  the
  address  of  an  array  of unsigned bytes into which are written the
  keyboard attributes.

  p-kit-size

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Size of the keyboard information table.  The p-kit-size argument  is
  the  address  of an unsigned longword containing the size of the KIT
  in bytes.

SMG$GET_NUMERIC_DATA

  The Get Numeric Terminal Data  routine  accesses  TERMTABLE.EXE  and
  returns  the  numeric  sequence  that causes a terminal to perform a
  specified operation.

     Format:

       SMG$GET_NUMERIC_DATA  termtable-address ,request-code
                  ,buffer-address

     Arguments:

  termtable-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  address  of  the  TERMTABLE  entry  for  the  desired
  terminal.   The  termtable-address  argument  is  the  address of an
  unsigned  longword  that   contains   the   address   of   TERMTABLE
  information.

  request-code

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Request  code  which  specifies   the   desired   capability.    The
  request-code  argument  is  an unsigned longword constant containing
  this request code.  The request code is of the form SMG$K_code where
  code  corresponds  to  a keyword in the terminal capabilities table,
  for example, ANSI_CRT.

  buffer-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address   of   the   first   byte   of   the   longword   to   which
  SMG$GET_NUMERIC_DATA   writes  the  numeric  capability  data.   The
  buffer-address argument is an unsigned longword which  contains  the
  address of this buffer.

SMG$GET_PASTEBOARD_ATTRIBUTES

  The Get Pasteboard Attributes routine gets pasteboard attributes and
  stores them in the pasteboard information table.

     Format:

       SMG$GET_PASTEBOARD_ATTRIBUTES  pasteboard-id
                  ,pasteboard-info-table ,pasteboard-info-table-size

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard for which information  is  requested.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  pasteboard-info-table

  VMS usage: vector_byte_unsigned
  type: unspecified
  access: write only
  mechanism: by reference, array reference

  Receives  the  pasteboard  attributes.   The   pasteboard-info-table
  argument  is  the address of a data structure into which are written
  the pasteboard attributes.

  pasteboard-info-table-size

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the number of bytes  in  the  pasteboard-info-table.   The
  pasteboard-info-table-size  argument  is  the address of an unsigned
  longword   that   contains   the   size   (in    bytes)    of    the
  pasteboard-info-table.

SMG$GET_PASTING_INFO

  Provided that the specified virtual display is currently pasted, the
  Return Pasting Information routine returns the row and column of the
  pasting.

     Format:

       SMG$GET_PASTING_INFO  display-id ,pasteboard-id ,flags
                  [,pasteboard-row] [,pasteboard-column]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display to be  examined.   The  display-id
  argument  is  the  address  of  an  unsigned longword containing the
  identifier of this virtual display.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the pasteboard on which the virtual display is pasted.
  The  pasteboard-id  argument  is the address of an unsigned longword
  containing the identifier of this pasteboard.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Flag indicating the status of the  specified  virtual  display  with
  respect  to  the  specified  pasteboard.   The flags argument is the
  address of an unsigned longword indicating this status.

  pasteboard-row

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Row of the pasteboard that contains row 1 of the  specified  virtual
  display.   The  optional pasteboard-row argument is the address of a
  signed longword containing the row number of the pasteboard row that
  contains the first row of the virtual display.

  pasteboard-column

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Column of the pasteboard that contains column  1  of  the  specified
  virtual  display.   The  optional  pasteboard-column argument is the
  address of a signed longword containing the  column  number  of  the
  pasteboard  column  that  contains  the  first column of the virtual
  display.

SMG$GET_TERM_DATA

  The Get Terminal Data routine accesses TERMTABLE.EXE and returns the
  character  sequence  that  causes  a terminal to perform a specified
  operation.

     Format:

       SMG$GET_TERM_DATA  termtable-address ,request-code
                  ,maximum-buffer-length ,return-length
                  ,buffer-address [,input-argument-vector]

     Arguments:

  termtable-address

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  address  of  the  TERMTABLE  entry  for  the  desired
  terminal.   The  termtable-address  argument  is  the  address of an
  unsigned  longword  that   contains   the   address   of   TERMTABLE
  information.

  request-code

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Longword constant of the form SMG$K_code, where code is the name  of
  the  desired  capability  field.   The  request-code argument is the
  address of an unsigned longword that contains the request code.

  maximum-buffer-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Maximum length of the buffer into  which  the  requested  capability
  data  is written.  The maximum-buffer-length argument is the address
  of a signed longword integer that contains  the  maximum  number  of
  bytes that can be written into the buffer.

  return-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the number of bytes actually written into the buffer.   The
  return-length  argument  is the address of a signed longword integer
  into which is written the  number  of  bytes  transferred  into  the
  buffer.

  buffer-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address of the first byte of the buffer  which  is  to  receive  the
  capability   data.   The  buffer-address  argument  is  an  unsigned
  longword that contains the address of the buffer.

  input-argument-vector

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference, array reference

  Address of a list of longwords used for capabilities that require  a
  variable   number   of   arguments,   and  for  those  that  require
  substitution  or  arithmetic  operations  on   an   argument.    The
  input-argument-vector  argument  is  the  address  of  an  array  of
  unsigned longwords that contains capability  arguments.   The  first
  longword must contain the number of arguments that follow.

SMG$GET_VIEWPORT_CHAR

  The Get Characteristics of  Display  Viewport  routine  returns  the
  characteristics of the specified viewport.

     Format:

       SMG$GET_VIEWPORT_CHAR  display-id [,viewport-row-start]
                  [,viewport-column-start] [,viewport-number-rows]
                  [,viewport-number-columns]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display associated with the viewport.  The
  display-id   argument   is  the  address  of  an  unsigned  longword
  containing this identifier.

  viewport-row-start

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Optional argument that receives  the  starting  row  number  of  the
  viewport.   The  viewport-row-start  argument  is  the  address of a
  signed longword that receives this row number.

  viewport-column-start

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Optional argument that receives the starting column  number  of  the
  specified  viewport.   The  viewport-column-start  argument  is  the
  address of a signed longword that receives this column number.

  viewport-number-rows

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Optional argument that receives the number of rows in the  specified
  viewport.   The  viewport-number-rows  argument  is the address of a
  signed longword that receives this number.

  viewport-number-columns

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Optional argument  that  receives  the  number  of  columns  in  the
  specified  viewport.   The  viewport-number-columns  argument is the
  address of a signed longword that receives this number.

SMG$HOME_CURSOR

  The Home Cursor routine moves the virtual cursor  to  the  specified
  corner of a virtual display.

     Format:

       SMG$HOME_CURSOR  display-id [,position-code]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display in which the virtual cursor is  moved.
  The  display-id  argument is the address of a longword that contains
  the    display    identifier.     Display-id    is    returned    by
  SMG$CREATE_VIRTUAL_DISPLAY.

  position-code

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  point  to  which  the  virtual  cursor  moves.   The
  position-code  argument  is  the address of a longword that contains
  the position code.

SMG$INIT_TERM_TABLE

  The Initialize Terminal  Table  routine  initializes  the  TERMTABLE
  database  for  the  terminal  named,  so  that  subsequent  calls to
  SMG$GET_TERM_DATA can extract information and  command  strings  for
  that terminal.

     Format:

       SMG$INIT_TERM_TABLE  terminal-name, termtable-address

     Arguments:

  terminal-name

  VMS usage: device_name
  type: character string
  access: read only
  mechanism: by descriptor

  Specifies the name of the terminal.  The terminal-name  argument  is
  the address of a descriptor pointing to the terminal name.  The name
  must be an entry in TERMTABLE.EXE

  termtable-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address  of  the  entry  for  a  particular  type  of  terminal   in
  TERMTABLE.EXE.   The termtable-address argument is the address of an
  unsigned  longword  that   contains   the   address   of   TERMTABLE
  information.

SMG$INIT_TERM_TABLE_BY_TYPE

  The Initialize TERMTABLE by VMS Terminal  Type  routine  initializes
  the  TERMTABLE  database  for the terminal named, so that subsequent
  calls to  SMG$GET_TERM_DATA  can  extract  information  and  command
  strings for that terminal.

     Format:

       SMG$INIT_TERM_TABLE_BY_TYPE  terminal-type ,termtable-address
                  [,terminal-name]

     Arguments:

  terminal-type

  VMS usage: byte_signed
  type: byte integer (signed)
  access: read only
  mechanism: by reference

  The device type of the terminal, as designated  by  a  VMS  symbolic
  terminal  type  or  by  another value returned by the $GETDVI system
  service.  The terminal-type argument is the address of a signed byte
  integer that contains the terminal type.

  termtable-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address  of  the  entry  for  a  particular  type  of  terminal   in
  TERMTABLE.EXE.   The termtable-address argument is the address of an
  unsigned longword into which is written the address  of  a  terminal
  entry.

  terminal-name

  VMS usage: device_name
  type: character string
  access: write only
  mechanism: by descriptor

  A string into which is written the terminal name associated with the
  device  type.   The  terminal-name  argument  is  the  address  of a
  descriptor pointing to the storage into which the terminal  name  is
  written.

SMG$INSERT_CHARS

  The Insert Characters routine  inserts  characters  into  a  virtual
  display.

     Format:

       SMG$INSERT_CHARS  display-id ,character-string ,start-row
                  ,start-column [,rendition-set] [,rendition-complement]
                  [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The pasteboard-id  argument
  is  the address of an unsigned longword that contains the pasteboard
  identifier.  Display-id is returned by SMG$CREATE_VIRTUAL_DISPLAY.

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The character string to be inserted.  The character-string  argument
  is  the  address  of  a  descriptor  that points to the string to be
  inserted.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  The row position at which to begin  the  insertion.   The  start-row
  argument  is  the address of a signed longword integer that contains
  the row number.

  start-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The  column  position  at  which  to  begin  the   insertion.    The
  start-column  argument  is  the address of a signed longword integer
  that contains the column number.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute specifier.  The optional  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified using the rendition-set argument:

  SMG$M_BLINK         Displays blinking characters

  SMG$M_BOLD          Displays   characters   in    higher-than-normal
                        intensity

  SMG$M_REVERSE       Displays characters in reverse video,  that  is,
                        using  the  opposite  default rendition of the
                        virtual display

  SMG$M_UNDERLINE     Displays underlined characters

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute complement specifier.  The  optional  rendition-complement
  argument  is  the address of a longword bit mask in which each 1-bit
  attribute causes the corresponding attribute to be  complemented  in
  the  display.   All of the attributes that can be specified with the
  rendition-set     argument     can     be     complemented      with
  rendition-complement.   The  display-id  argument  myst be specified
  when using the rendition-complement argument.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set code.  At  this  time,  the
  only valid value is SMG$C_ASCII, which is also the default.

SMG$INSERT_LINE

  The Insert Line routine inserts a line into a  virtual  display  and
  scrolls the display.

     Format:

       SMG$INSERT_LINE  display-id ,start-row [,character-string]
                  [,direction] [,rendition-set] [,rendition-complement]
                  [,flags] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the line number at which the string  is  inserted  and  at
  which point scrolling begins.  The start-row argument is the address
  of a signed longword integer that contains the line number.

  character-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The  character  string  to  be  inserted  by  SMG$INSERT_LINE.   The
  character-string argument is the address of a descriptor pointing to
  this string.

  direction

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the scrolling direction.  The direction  argument  is  the
  address  of  a  longword  bit mask that contains the direction code.
  Valid values are SMG$M_UP and SMG$M_DOWN.  SMG$M_UP is the default.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute specifier.  The optional  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified using the rendition-set argument:

  SMG$M_BLINK         Displays blinking characters

  SMG$M_BOLD          Displays   characters   in    higher-than-normal
                        intensity

  SMG$M_REVERSE       Displays characters in reverse video,  that  is,
                        using  the  opposite  default rendition of the
                        virtual display

  SMG$M_UNDERLINE     Displays underlined characters

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute complement specifier.  The  optional  rendition-complement
  argument  is  the address of a longword bit mask in which each 1-bit
  attribute causes the corresponding attribute to be  complemented  in
  the  display.   All of the attributes that can be specified with the
  rendition-set     argument     can     be     complemented      with
  rendition-complement.   The  display-id  argument  must be specified
  when using the rendition-complement argument.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take if the text does not fit on  the  line.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  Zero specifies no wrap  (the  default)  while  1
  specifies wrap.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set  argument is the address of a longword
  that contains the character set code.  At this time, the only  valid
  value is SMG$C_ASCII, which is also the default.

SMG$INVALIDATE_DISPLAY

  The Mark a Display as Invalid routine marks a display as invalid and
  causes the entire display to be redrawn.

     Format:

       SMG$INVALIDATE_DISPLAY  display-id

     Argument

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

SMG$KEYCODE_TO_NAME

  The  Translate a Key Code Into a Key Name routine translates the key
  code of a key on the keyboard into its associated key name.

     Format:

       SMG$KEYCODE_TO_NAME  key-code ,key-name

     Arguments:

  key-code

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by reference

  Specifies  the  key code to translate into a key name.  The key-code
  argument is the address of a signed word that contains the key code.

  key-name

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  containing  the name of the key into which key-code is to be
  translated.  The  key-name  argument  is the address of a descriptor
  pointing  to  the  character string  containing  the key name.   The
  key-name argument is simply the name of the key, for example, COMMA,
  PERIOD, KP4, and so forth.

SMG$LABEL_BORDER

  The Label a Virtual Display Border routine supplies a  label  for  a
  virtual display's border.

     Format:

       SMG$LABEL_BORDER  display-id [,text] [,position-code]
                  [,units] [,rendition-set] [,rendition-complement]
                  [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The new label for this display's border.  The text argument  is  the
  address of a descriptor pointing to the label text.  If omitted, the
  display becomes unlabeled.

  position-code

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies which of the display's borders contains  the  label.   The
  position-code  argument  is the address of an unsigned longword that
  contains the position code.

  units

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the character position at which the  label  begins  within
  the  border.  The units argument is the address of a signed longword
  integer that contains the character position.  If omitted, the label
  is centered in the specified border.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which  denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask which denotes video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.  Each bit attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.  Video attributes which can be manipulated in  this  manner
  are the same as those for the rendition-set argument.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set code.  At  this  time,  the
  only valid value is SMG$C_ASCII, which is also the default.

SMG$LIST_KEY_DEFS

  The List Key Definitions routine returns the definition (equivalence
  string) associated with a specified key in a specified key table.

     Format:

       SMG$LIST_KEY_DEFS  key-table-id ,context [,key-name] [,if-state]
                  [,attributes] [,equivalence-string] [,state-string]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  key  table  from  which  you  are  extracting  a  key
  definition.  The key-table-id argument is the address of an unsigned
  longword that contains the key table identifier.

  context

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Provides a means to extract a series of key definitions from  a  key
  table.   The  context  argument  is the address of a signed longword
  integer that contains the context variable.  For the first  call  to
  this routine, you should set the context argument to zero.

  key-name

  VMS usage: char_string
  type: character string
  access: modify
  mechanism: by descriptor

  Identifies the key  whose  value  you  are  listing.   The  key-name
  argument is the address of a descriptor pointing to the key name.

  if-state

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the state name which qualifies the next definition  in  the
  key  table.   The  if-state  argument is the address of a descriptor
  pointing to the storage into which the state name is written.

  attributes

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Attributes of this key definition.  The attributes argument  is  the
  address  of  an  unsigned  longword  into  which  is written the key
  attributes.

  equivalence-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  The character string into which is written  the  equivalence  string
  for the next key definition.  The equivalence-string argument is the
  address of a descriptor pointing  to  the  storage  into  which  the
  equivalence string is written.

  state-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  A string into which is written the new state name, if any, which  is
  set  by  the  next key definition.  The state-string argument is the
  address of a descriptor pointing to the storage into which the state
  name  is  written.   If  this  key  definition  sets  a  state,  the
  attributes flag SMG$V_KEY_SETSTATE is set.

SMG$LIST_PASTING_ORDER

  The Return Pasting Information routine returns  the  identifiers  of
  the  virtual displays pasted to a specified pasteboard.  Optionally,
  the pasteboard row 1 and column 1 (upper left corner) of the virtual
  display are also returned.

     Format:

       SMG$LIST_PASTING_ORDER  pasteboard-id ,context
                  ,display-id [,pasteboard-row] [,pasteboard-column]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the pasteboard on which the virtual display is  to  be
  pasted.   The  pasteboard-id  argument is the address of an unsigned
  longword containing the identifier of this pasteboard.

  context

  VMS usage: identifier
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context to search.  The  context  argument  is  the  address  of  an
  unsigned longword containing this context.  On the initial call, you
  should set context  to  zero.   SMG$LIST_PASTING_ORDER  updates  the
  value  of  context.   The  updated  value  should  then be passed on
  subsequent calls to obtain the next pasted display.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display that is  pasted.   The  display-id
  argument  is  the  address  of  an  unsigned longword containing the
  identifier of this virtual display.

  pasteboard-row

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Row of the pasteboard that contains row 1 of the  specified  virtual
  display.   The  optional pasteboard-row argument is the address of a
  signed longword containing the row number of the pasteboard row that
  contains the first row of the virtual display.

  pasteboard-column

  VMS usage: longword_signed
  type: longword (signed)
  access: write only
  mechanism: by reference

  Column of the pasteboard that contains column  1  of  the  specified
  virtual  display.   The  optional  pasteboard-column argument is the
  address of a signed longword containing the  column  number  of  the
  pasteboard  column  that  contains  the  first column of the virtual
  display.

SMG$LOAD_KEY_DEFS

  The Load Key Definitions routine loads a  file  of  key  definitions
  (DEFINE/KEY commands) into a specified key table.

     Format:

       SMG$LOAD_KEY_DEFS  key-table-id ,filespec [,default-filespec]
                  [,flags]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the key table into which you are loading key  definitions.
  The  key-table-id  argument  is  the address of an unsigned longword
  that contains the key table identifier.

  filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing the file specification for the file of  DEFINE/KEY
  commands.   The  filespec  argument  is  the address of a descriptor
  pointing to the file specification.

  default-filespec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing the default file specification  for  the  file  of
  DEFINE/KEY  commands.   The default-filespec argument is the address
  of a descriptor pointing to  the  default  file  specification.   If
  omitted, the null string is used.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies whether filespec is to be treated as a logical name.   The
  flags  argument is the address of an unsigned longword that contains
  the  flag.   If  set,  flags  specifies  that  filespec  should   be
  translated,  but  if  this  is not possible, that the null string be
  used.

SMG$LOAD_VIRTUAL_DISPLAY

  The Load a Virtual Display from a File routine creates a new virtual
  display   and   loads   it  with  a   virtual   display  saved  with
  SMG$SAVE_VIRTUAL_DISPLAY.

     Format:

       SMG$LOAD_VIRTUAL_DISPLAY   display-id [,file-spec]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier  of  the  new virtual display to be loaded with the saved
  virtual display.  The  display-id  argument  is  the  address  of an
  unsigned longword into which is written the new display identifier.

  file-spec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  containing  the  file specification of the file in which the
  specified  virtual  display  is saved.  The  file-spec argument is a
  character string containing the file specification.

SMG$MOVE_TEXT

  The Move Text from One Virtual Display to Another  routine  moves  a
  rectangle  of  text  from  one  virtual  display  to another virtual
  display.  Given two points in opposite  corners  of  the  rectangle,
  SMG$MOVE_TEXT determines the desired width and height.

     Format:

       SMG$MOVE_TEXT  display-id ,top-left-row ,top-left-column
                  ,bottom-right-row ,bottom-right-column ,display-id2
                  [,top-left-row2] [,top-left-column2] [,flags]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display  whose  text  is  to  be  moved.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  top-left-row

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Top left row of the  rectangle  of  text  you  want  to  move.   The
  top-left-row  argument  is  the  address  of  an  unsigned  longword
  containing the row number.

  top-left-column

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Top left column of the rectangle of text  you  want  to  move.   The
  top-left-column  argument  is  the  address  of an unsigned longword
  containing the column number.

  bottom-right-row

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bottom right row of the rectangle of text you  want  to  move.   The
  bottom-right-row  argument  is  the  address of an unsigned longword
  containing the row number.

  bottom-right-column

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bottom right column of the rectangle of text you want to move.   The
  bottom-right-column  argument is the address of an unsigned longword
  containing the column number.

  display-id2

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display to which the text is to be moved.  The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  top-left-row2

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Top left row of the rectangle that is the destination  of  the  text
  you  want  to  move.   The  optional  top-left-row2  argument is the
  address of an unsigned longword containing the row number.   If  you
  do  not  specify a value for top-left-row2, the text is moved to the
  current virtual cursor row.

  top-left-column2

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Top left column of the rectangle that is the destination of the text
  you  want  to  move.   The optional top-left-column2 argument is the
  address of an unsigned longword containing the  column  number.   If
  you  do  not specify a value for top-left-column2, the text is moved
  to the current virtual cursor column.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies optional behavior.  The  flags  argument  is
  the  address of a longword bit mask specifying these options.  Valid
  values are as follows:

       SMG$M_TEXT_SAVE        Does not erase the text after moving.

       SMG$M_TEXT_ONLY        Moves the text but not the attributes.

SMG$MOVE_VIRTUAL_DISPLAY

  The Move Virtual Display routine relocates a virtual  display  on  a
  pasteboard and preserves the pasting order.

     Format:

       SMG$MOVE_VIRTUAL_DISPLAY  display-id ,pasteboard-id
                  ,pasteboard-row ,pasteboard-column [,top-display-id]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display to be moved.  The display-id  argument
  is  the  address  of  an unsigned longword that contains the display
  identifier.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard on which the movement  is  to  take  place.
  The  pasteboard-id  argument  is the address of an unsigned longword
  that contains the pasteboard identifier.

  pasteboard-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row of the pasteboard that is to contain row 1 of  the
  specified  virtual  display.   The  pasteboard-row  argument  is the
  address of a signed longword integer that contains the row number.

  pasteboard-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column of the pasteboard that is to contain  column  1
  of the specified virtual display.  The pasteboard-column argument is
  the address of a signed longword integer that  contains  the  column
  number.

  top-display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier  of  the  virtual  display  under  which   the   unpasted
  display-id  will  be  pasted.   The  top-display-id  argument is the
  address of an unsigned longword  containing  the  specified  virtual
  display  identifier.   Note  that  the  use  of  the  top-display-id
  argument is  only  valid  when  the  virtual  display  specified  by
  display-id is not currently pasted and the virtual display specified
  by top-display-id is pasted.

SMG$NAME_TO_KEYCODE

  The  Translate a Key Name into a Key Code routine translates the key
  name of a key on the keyboard into its associated key code.

     Format:

       SMG$NAME_TO_KEYCODE  key-name ,key-code

     Arguments:

  key-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  containing  the name of the key to be translated into a key
  code. The key-name argument is the address of a descriptor pointing
  to  the  character string  containing  the key name.  The  key-name
  argument is simply the name of the key,  for example COMMA, PERIOD,
  KP4, and so forth.

  key-code

  VMS usage: word_signed
  type: word (signed)
  access: write only
  mechanism: by reference

  Specifies the key code into which key-name is to be translated. The
  key-code argument is the address of a signed word that contains the
  key code.

SMG$PASTE_VIRTUAL_DISPLAY

  The Paste Virtual Display routine pastes  a  virtual  display  to  a
  pasteboard.

     Format:

       SMG$PASTE_VIRTUAL_DISPLAY  display-id ,pasteboard-id
                  ,pasteboard-row ,pasteboard-column [,top-display-id]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display to be pasted.  The display-id argument
  is  the  address  of  an unsigned longword that contains the display
  identifier.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard to which the display is to be pasted.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  pasteboard-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row of the pasteboard that is to contain row 1 of  the
  specified  virtual  display.   The  pasteboard-row  argument  is the
  address of a signed longword integer that contains the row number.

  pasteboard-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column of the pasteboard that is to contain  column  1
  of the specified virtual display.  The pasteboard-column argument is
  the address of a signed longword integer that  contains  the  column
  number.

  top-display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display under which to  paste  display-id.
  The  optional  top-display-id argument is the address of an unsigned
  longword containing this identifier.  Note that the virtual  display
  specified by top-display-id must already be pasted.

SMG$POP_VIRTUAL_DISPLAY

  The Delete a Series of Virtual Displays routine deletes a  specified
  virtual  display  and all displays that were pasted on the specified
  pasteboard after the specified virtual display.

     Format:

       SMG$POP_VIRTUAL_DISPLAY  display-id ,pasteboard-id

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the lowest (first) virtual display  to  be  deleted.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.  All displays that  are  higher  in
  the  pasting order (that is, all displays that were pasted after the
  specified display) are deleted as well.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard on which the display deletions take  place.
  The  pasteboard-id  argument  is the address of an unsigned longword
  that contains the pasteboard identifier.

SMG$PRINT_PASTEBOARD

  The Print Pasteboard Using a Print Queue routine prints the contents
  of the specified pasteboard on a line printer.

     Format:

       SMG$PRINT_PASTEBOARD  pasteboard-id [,queue-name] [,copies]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the  pasteboard  to  be  printed.   The  pasteboard-id
  argument  is  the  address  of  an unsigned longword containing this
  identifier.

  queue-name

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional queue name.  The queue-name argument is the  address  of  a
  descriptor  pointing  to  the queue name in which to enter the file.
  The default is SYS$PRINT.

  copies

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional number of copies to print.   The  copies  argument  is  the
  address  of  a  signed longword containing this number.  The default
  and minimum is one copy.

SMG$PUT_CHARS

  The  Write  Characters  to  a  Virtual  Display  routine  overwrites
  characters in a virtual display with the text you specify.

     Format:

       SMG$PUT_CHARS  display-id ,text [,start-row]
                  [,start-column] [,flags] [,rendition-set]
                  [,rendition-complement] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Characters to be written to the virtual display.  The text  argument
  is the address of a descriptor pointing to the character string.

  start-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies the row at which output begins.  If start-row is  omitted,
  output  begins  on  the  current row.  The start-row argument is the
  address of a signed longword integer that contains the row number.

  start-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies the column at which output  begins.   If  start-column  is
  omitted,  output  begins  on  the  current column.  The start-column
  argument is the address of a signed longword integer  that  contains
  the column number.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take before the specified  text  is  output.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  Flags accepts the following values:

       SMG$M_ERASE_TO_EOL     Erase remaining part of line

       SMG$M_ERASE_LINE       Erase entire line

       0                      Do not erase line (the default)

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute specifier.  The  rendition-set  argument  is  the
  address of a longword bit mask.  Each bit attribute in this argument
  causes the corresponding attribute to be set in the display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute complement specifier.   The  rendition-complement
  argument  is  the  address  of  an unsigned longword that contains a
  video attributes mask.  Each bit attribute in this  argument  causes
  the  corresponding  attribute  to be set in the display.  All of the
  attributes that can be specified with the rendition-set argument can
  be complemented with the rendition-complement argument.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set  code.   Valid  values  are
  SMG$C_ASCII (the default), and SMG$C_SPEC_GRAPHICS.

SMG$PUT_CHARS_HIGHWIDE

  The  Write  Double-Height  Double-Width  Characters  routine  writes
  double-height, double-width characters to a virtual display.

     Format:

       SMG$PUT_CHARS_HIGHWIDE  display-id ,text [,start-row]
                  [,start-column] [,rendition-set]
                  [,rendition-complement] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Characters to be written to the virtual display.  The text  argument
  is the address of a descriptor pointing to the text.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the line at which output begins.  The  start-row  argument
  is  the  address of a signed longword integer that contains the line
  number.  If start-row is omitted or if it is equal to  zero,  output
  begins on the current line.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column  at  which  output  begins.   The  start-column
  argument  is  the address of a signed longword integer that contains
  the column number.  If start-column is omitted or if it is equal  to
  zero, output begins on the current column.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which  denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which  denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set code.  At  this  time,  the
  only valid value is SMG$C_ASCII, which is also the default.

SMG$PUT_CHARS_MULTI

  The Put Text with  Multiple  Renditions  routine  writes  text  with
  multiple renditions to the virtual display.

     Format:

       SMG$PUT_CHARS_MULTI  display-id ,text [,line-number]
                  [,column-number] [,flags] [,rendition-set]
                  [,rendition-complement] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display to be  affected.   The  display-id
  argument  is  the address of an unsigned longword that contains this
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be output.  The text argument is the address of a descriptor
  pointing to the output string.

  line-number

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional line number at which  to  start  output.   The  line-number
  argument is the address of a signed longword containing this number.
  If omitted, the current line number is used.

  column-number

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional column number at which to start output.  The  column-number
  argument is the address of a signed longword containing this number.
  If omitted, the current column number is used.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take before the specified  text  is  output.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  Flags accepts the following values:

       SMG$M_ERASE_TO_EOL     Erase remaining part of line

       SMG$M_ERASE_LINE       Erase entire line

       0                      Do not erase line (the default)

  rendition-set

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Bit  mask  string  that  controls   the   video   attributes.    The
  rendition-set  argument  is  the address of a descriptor pointing to
  this  bit  mask  string.   Each   one-bit   attribute   causes   the
  corresponding  attribute to be set for the corresponding byte in the
  text string  in  the  display.   The  following  attributes  can  be
  specified for each byte using the rendition-set argument:

       SMG$M_BLINK            Displays characters blinking.

       SMG$M_BOLD             Displays          characters          in
                                higher-than-normal intensity.

       SMG$M_REVERSE          Displays characters  in  reverse  video,
                                that  is,  using  the opposite default
                                rendition of the virtual display.

       SMG$M_UNDERLINE        Displays characters underlined.

       SMG$M_INVISIBLE        Makes characters in the virtual  display
                                invisible.

       SMG$M_USER1   through   SMG$M_USER8    Displays    user-defined
                                attributes.

  rendition-complement

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional bit mask string that controls the  video  attributes.   The
  rendition-complement   argument  is  the  address  of  a  descriptor
  pointing to this bit mask string.  Each one-bit attribute causes the
  corresponding  attribute  to  be  complemented for the corresponding
  byte in the text string in the display.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional default character set for the text in the virtual  display.
  The  character-set  argument  is the address of an unsigned longword
  that contains the character set code.  Valid values are  SMG$C_ASCII
  (the default), and SMG$C_SPEC_GRAPHICS.

SMG$PUT_CHARS_WIDE

  The Write Wide Characters routine writes double-width characters  to
  a virtual display.

     Format:

       SMG$PUT_CHARS_WIDE  display-id ,text [,start-row] [,start-column]
                  [,rendition-set] [,rendition-complement]
                  [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Characters to be written to the virtual display.  The text  argument
  is the address of a descriptor pointing to the text.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the line at which output begins.  If start-row is omitted,
  output  begins  on  the current line.  The start-row argument is the
  address of a signed longword integer that contains the line number.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column at which output  begins.   If  start-column  is
  omitted,  output  begins  on  the  current column.  The start-column
  argument is the address of a signed longword integer  that  contains
  the column number.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which  denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask which  denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.  Each bit attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.  Video attributes which can be manipulated in  this  manner
  are the same as those for the rendition-set argument.

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set code.  At  this  time,  the
  only valid value is SMG$C_ASCII, which is also the default.

SMG$PUT_HELP_TEXT

  The Output HELP Text to the Display routine  retrieves  and  outputs
  the  HELP  text  for  the  specified  topic  in  the virtual display
  provided.

     Format:

       SMG$PUT_HELP_TEXT  display-id [,keyboard-id] [,HELP-topic]
                [,HELP-library] [,rendition-set] [,rendition-complement]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the virtual display to which the HELP text  is
  written.   The  display-id  argument  is  the address of an unsigned
  longword that contains this virtual display identifier.   Note  that
  this display must be pasted and cannot be occluded or batched.

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional keyboard identifier of the virtual keyboard used for input.
  The keyboard-id argument is the address of an unsigned longword that
  contains this  virtual  keyboard  identifier.   If  the  keyboard-id
  parameter is not specified, prompting is disabled.

  HELP-topic

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional HELP topic.  The HELP-topic argument is the  address  of  a
  descriptor pointing to the HELP topic string.

  HELP-library

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional HELP  library  name.   The  HELP-library  argument  is  the
  address  of  a  descriptor  pointing  to the HELP library name.  The
  default is SYS$HELP:HELPLIB.HLB.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask that denotes  video  attributes  for  the  virtual
  display.   The  rendition-set argument is the address of an unsigned
  longword that  contains  a  video  attributes  mask.   Each  one-bit
  attribute  in this argument causes the corresponding attribute to be
  set in the display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask that denotes  video  attributes  for  the  virtual
  display.   The  rendition-complement  argument  is the address of an
  unsigned longword that contains a video attributes mask.

SMG$PUT_LINE

  The Write Line to Virtual Display routine writes a line of text to a
  virtual display.

     Format:

       SMG$PUT_LINE  display-id ,text [,line-advance] [,rendition-set]
                  [,rendition-complement] [,flags] [,character-set]
                  [,direction]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The characters to be written  to  the  virtual  display.   The  text
  argument is the address of a descriptor pointing to the text.

  line-advance

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies  the  number  of  lines  to  advance  after  output.   The
  line-advance  argument  is  the address of a signed longword integer
  that contains the number of lines to advance.  The default is 1.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask that denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask that denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.  Each bit attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.  Video attributes that can be manipulated  in  this  manner
  are the same as those for the rendition-set argument.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take if the text does not fit on  the  line.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  The flags argument accepts the following values:

       SMG$M_WRAP_CHAR        Wraps at last character on line

       SMG$M_WRAP_WORD        Wraps at last space on line

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set  code.   Valid  values  are
  SMG$C_ASCII (the default), and SMG$C_SPEC_GRAPHICS.

  direction

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the direction to scroll, if scrolling is  necessary.   The
  direction  argument  is  the  address  of  a  longword bit mask that
  contains  the  direction  code.   Valid  values  are  SMG$M_UP   and
  SMG$M_DOWN.  SMG$M_UP is the default.

SMG$PUT_LINE_HIGHWIDE

  The Write Double-High and Double-Width Line routine writes lines  of
  text with double-high and double-wide characters.

     Format:

       SMG$PUT_LINE_HIGHWIDE  display-id ,text [,line-advance]
                  [,rendition-set] [,rendition-complement] [,flags]
                  [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier.  The display-id argument is the  address  of  an
  unsigned  longword  that  contains  the  display  identifier  of the
  virtual display.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be  output.   The  text  argument  is  the  address  of  the
  descriptor pointing to the output string.

  line-advance

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of lines  to  advance.   The  line-advance  argument  is  the
  address  of  a  signed longword that contains the number of lines to
  advance after the output.  This argument is optional.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask that denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains attribute information.   Each  one-bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  A mask that denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains attribute information.  Each one-bit attribute in this
  argument  causes  the  corresponding attribute to be complemented in
  the display.  Video attributes  that  can  be  manipulated  in  this
  manner are the same as those for the rendition-set argument.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take if the text does not fit on  the  line.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  The flags argument accepts the following values:

       SMG$M_WRAP_CHAR        Wrap at last character on line

       SMG$M_WRAP_WORD        Wrap at last space on line

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character-set  code.   Valid  values  are
  SMG$C_ASCII (the default), and SMG$C_SPEC_GRAPHICS.

SMG$PUT_LINE_MULTI

  The Put Text with  Multiple  Renditions  to  Display  in  Line  Mode
  routine  writes  lines  with  multiple  renditions  to  the  virtual
  display, optionally followed by cursor movement sequences.

     Format:

       SMG$PUT_LINE_MULTI  display-id ,text ,rendition-set
                  [,rendition-complement] [,line-advance] [,flags]
                  [,direction] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual display to be  affected.   The  display-id
  argument  is  the address of an unsigned longword that contains this
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Text to be output.  The text argument is the address of a descriptor
  pointing to the output string.

  rendition-set

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Bit  mask  string  that  controls   the   video   attributes.    The
  rendition-set  argument  is  the address of a descriptor pointing to
  this  bit  mask  string.   Each   one-bit   attribute   causes   the
  corresponding  attribute to be set for the corresponding byte in the
  text string  in  the  display.   The  following  attributes  can  be
  specified for each byte using the rendition-set argument:

       SMG$M_BLINK            Displays characters blinking.

       SMG$M_BOLD             Displays          characters          in
                                higher-than-normal intensity.

       SMG$M_REVERSE          Displays characters  in  reverse  video,
                                that  is,  using  the opposite default
                                rendition of the virtual display.

       SMG$M_UNDERLINE        Displays characters underlined.

       SMG$M_INVISIBLE        Makes characters in the virtual  display
                                invisible.

       SMG$M_USER1   through   SMG$M_USER8    Displays    user-defined
                                attributes.

  rendition-complement

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional bit mask string that controls the  video  attributes.   The
  rendition-complement   argument  is  the  address  of  a  descriptor
  pointing to this bit mask string.  Each one-bit attribute causes the
  corresponding  attribute  to  be  complemented for the corresponding
  byte in the text string in the display.

  line-advance

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional number of lines to advance after output.  The  line-advance
  argument is the address of a signed longword containing this number.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take if the text does not fit on  the  line.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  The flags argument accepts the following values:

       SMG$M_WRAP_CHAR        Wrap at last character on line

       SMG$M_WRAP_WORD        Wrap at last space on line

  direction

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional direction specifier.  The direction argument is the address
  of  an unsigned longword that contains the direction code specifying
  the scrolling direction, if scrolling is  necessary.   Valid  values
  for direction are as follows:

  o  SMG$M_UP

  o  SMG$M_DOWN

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional default character set for the text in the virtual  display.
  The  character-set  argument  is the address of an unsigned longword
  that contains the character set code.  Valid values are  SMG$C_ASCII
  (the default), and SMG$C_SPEC_GRAPHICS.

SMG$PUT_LINE_WIDE

  The Write Double-Width Line routine writes a  line  of  double-width
  text to a virtual display.

     Format:

       SMG$PUT_LINE_WIDE  display-id ,text  [,line-advance]
                  [,rendition-set] [,rendition-complement]
                  [,flags] [,character-set]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display affected.  The display-id argument  is
  the  address  of  an  unsigned  longword  that  contains the display
  identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Characters to be written to the virtual display.  The text  argument
  is the address of a descriptor pointing to the text.

  line-advance

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies  the  number  of  lines  to  advance  after  output.   The
  line-advance  argument  is  the address of a signed longword integer
  that contains the number of lines to advance.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask  that  denotes  video  attributes  for  the  drawn  line.   The
  rendition-set  argument  is the address of an unsigned longword that
  contains a video  attributes  mask.   Each  bit  attribute  in  this
  argument  causes  the  corresponding  attribute  to  be  set  in the
  display.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Mask  that  denotes  video  attributes  for  the  line  drawn.   The
  rendition-complement argument is the address of an unsigned longword
  that contains a video attributes mask.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the action to take if the text does not fit on  the  line.
  The  flags  argument  is  the  address  of an unsigned longword that
  contains the flag.  The flags argument accepts the following values:

       SMG$M_WRAP_CHAR        Wrap at last character on line

       SMG$M_WRAP_WORD        Wrap at last space on line

  character-set

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the default character set for all  text  in  this  virtual
  display.   The  character-set argument is the address of an unsigned
  longword that contains the character set  code.   Valid  values  are
  SMG$C_ASCII (the default), and SMG$C_SPEC_GRAPHICS.

SMG$PUT_PASTEBOARD

  The Output Pasteboard via Routine routine accesses the contents of a
  pasteboard.

     Format:

       SMG$PUT_PASTEBOARD  pasteboard-id ,action-routine
                  ,user-argument ,flags

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Pasteboard identifier.  The pasteboard-id argument is the address of
  an unsigned longword containing the pasteboard identifier.

  action-routine

  VMS usage: procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  Pasteboard routine.  The action-routine argument is the  address  of
  the routine to be called.

  user-argument

  VMS usage: user_arg
  type: unspecified
  access: read only
  mechanism: by reference

  Pasteboard    argument.     The   user-argument   argument   is    a
  user-specified  argument  to  be  passed  to the action routine.  If
  omitted, a 0 will be passed as the user argument.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies optional behavior.  If  1,  then  the  first
  line  passed  to  the  action  routine  will be a form feed.  If not
  specified, then no form-feed line will be sent.

SMG$PUT_STATUS_LINE

  The Output Line of Text to Hardware Status Line  routine  outputs  a
  line of text to the hardware status line.

     Format:

       SMG$PUT_STATUS_LINE  pasteboard-id ,text

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard containing the hardware status  line.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  text

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The characters to be written to the hardware status line.  The  text
  argument is the address of a descriptor pointing to the text.

SMG$READ_COMPOSED_LINE

  The Read Composed Line routine reads a line  of  input  composed  of
  normal keystrokes and equivalence strings.

     Format:

       SMG$READ_COMPOSED_LINE  keyboard-id ,key-table-id
                  ,resultant-string [,prompt-string] [,resultant-length]
                  [,display-id] [,flags] [,initial-string] [,timeout]
                  [,rendition-set] [,rendition-complement]
                  [,word-integer-terminator-code]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual keyboard from which input is to be read.   The
  keyboard-id  argument  is  the  address of an unsigned longword that
  contains the keyboard identifier.

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the key table to be used for translating keystrokes.   The
  key-table-id  argument  is  the address of an unsigned longword that
  contains the key table identifier.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String  into  which  SMG$READ_COMPOSED_LINE  writes   the   complete
  composed  line.   The  resultant-string argument is the address of a
  descriptor pointing to the storage in which  the  composed  line  is
  written.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String used to prompt for the  read  operation.   The  prompt-string
  argument  is  the  address  of  a  descriptor pointing to the prompt
  string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Receives the number of characters read  or  the  maximum  length  of
  resultant-string,  whichever is less.  The resultant-length argument
  is   the   address   of   an   unsigned    longword    into    which
  SMG$READ_COMPOSED_LINE writes the number of characters read.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier.  The display-id argument is the  address  of  an
  unsigned  longword  that  contains  the  display  identifier.   This
  argument is optional only if you are not using the Screen Management
  Facility's output routines.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Function keys.  The flags argument is the  address  of  an  unsigned
  longword.  If flags equals 1, then the function keys can be used and
  line editing is disabled.  If flags equals  zero,  line  editing  is
  enabled and the function keys cannot be used.

  initial-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional string that contains the initial characters of  the  field.
  The  initial-string argument is the address of a descriptor pointing
  to the string.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional timeout count.  The timeout argument is the  address  of  a
  signed  longword  containing  the  timeout  count.   If  the timeout
  argument is specified, all characters entered before the timeout are
  returned  in  the  buffer.   If  the  timeout  argument  is omitted,
  characters  are  returned  in  the  buffer  until  a  terminator  is
  encountered.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute specifier.  The  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified by the rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters  in  reverse  video  ---
                            that   is,   using  the  opposite  default
                            rendition of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute complement specifier.   The  rendition-complement
  argument  is  the  address  of  a longword bit mask rendition-set in
  which each 1-bit attribute causes the corresponding attribute to  be
  complemented  in  the  display.   All  of the attributes that can be
  specified with the rendition-set argument can be  complemented  with
  the  rendition-complement argument.  The display-id argument must be
  specified when the rendition-complement argument is used.

  word-integer-terminator-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Key terminator code.  The word-integer-terminator-code  argument  is
  an  unsigned  word  into  which  is  written  a code indicating what
  character or key terminated the read.  Key terminator codes  are  of
  the  form  SMG$K_TRM_keyname.

SMG$READ_FROM_DISPLAY

  The Read Text from Display routine reads  a  line  of  text  from  a
  virtual display.

     Format:

       SMG$READ_FROM_DISPLAY  display-id ,resultant-string
                  [,terminator-string] [,start-row]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  virtual  display  from  which  text  is  read.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which SMG$READ_FROM_DISPLAY writes the information  read
  from  the  virtual  display.   The  resultant-string argument is the
  address of a descriptor pointing  to  the  storage  into  which  the
  string is written.

  terminator-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing a terminator or terminators that end the  backward
  search,  thus  determining  the  starting  position  of the returned
  string.   The  terminator-string  argument  is  the  address  of   a
  descriptor  pointing  to  the string of terminators.  If omitted, no
  back searching is performed; the returned  string  starts  with  the
  character at the current cursor position.

  start-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  The start-row argument is the address  of  a  signed  longword  that
  contains  the  row  of  the  display-id  to  read  from.  This is an
  optional argument.

SMG$READ_KEYSTROKE

  The Read a Single Character routine reads a  keystroke  and  returns
  that keystroke's terminator code.

     Format:

       SMG$READ_KEYSTROKE  keyboard-id ,word-integer-terminator-code
                  [,prompt-string] [,timeout] [,display-id]
                  [,rendition-set] [,rendition-complement]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Keyboard  identifier.   The  keyboard-id  argument  is  an  unsigned
  longword  containing the identification of the virtual keyboard from
  which to read.   A  virtual  keyboard  is  created  by  calling  the
  SMG$CREATE_VIRTUAL_KEYBOARD routine.

  word-integer-terminator-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Key terminator code.  The word-integer-terminator-code  argument  is
  an  unsigned  word  into  which  is  written  a code indicating what
  character or key terminated the read.  Key terminator codes  are  of
  the  form  SMG$K_TRM_keyname.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Prompt string.  The prompt-string argument  is  an  optional  string
  that is used as the prompt for the read operation.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Timeout count.  The timeout argument is optional.  If specified, any
  character typed before the timeout is returned in the buffer.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier.  The optional display-id argument is the address
  of  an unsigned longword that contains the identifier of the virtual
  display in which the read is  to  be  performed.   If  the  optional
  prompt-string argument is specified while there are multiple virtual
  displays pasted, the display-id argument is required to determine in
  which  virtual  display  the  prompt string will be written.  If the
  prompt-string argument is not specified, then  do  not  specify  the
  display-id argument.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute specifier.  The optional  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified by the rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters  in  reverse  video  ---
                            that   is,   using  the  opposite  default
                            rendition of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute complement specifier.  The  optional  rendition-complement
  argument  is  the address of a longword bit mask in which each 1-bit
  attribute causes the corresponding attribute to be  complemented  in
  the  display.   All of the attributes that can be specified with the
  rendition-set   argument    can    be    complemented    with    the
  rendition-complement  argument.   The  display-id  argument  must be
  specified when using the rendition-complement argument.

SMG$READ_STRING

  The Read String routine reads a string from a virtual keyboard.

     Format:

       SMG$READ_STRING  keyboard-id ,resultant-string [,prompt-string]
                  [,maximum-length] [,modifiers] [,timeout]
                  [,terminator-set] [,resultant-length]
                  [,word-integer-terminator-code] [,display-id]
                  [,initial-string] [,rendition-set]
                  [,rendition-complement] [,terminator-string]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual keyboard from which input is to be read.   The
  keyboard-id  argument  is  the  address of an unsigned longword that
  contains the keyboard identifier.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which the input line is written.   The  resultant-string
  argument is the address of a descriptor pointing to the storage into
  which the text is written.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String used to prompt for the read operation.  The  prompt  argument
  is the address of a descriptor pointing to the prompt string.

  maximum-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  maximum  number  of  characters  to  be  read.   The
  maximum-length  argument is the address of a signed longword integer
  that contains the maximum number of  characters  to  be  read.   The
  maximum  valid  value  for this argument is 512.  If omitted, 512 is
  the default.

  modifiers

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies optional behavior.  The  modifiers  argument
  is the address of an unsigned longword that contains the bit mask.

  timeout

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of seconds allowed between the time the  prompt
  is  issued  and  the completion of the input operation.  The timeout
  argument is the address of a signed longword integer  that  contains
  the number of seconds.

  terminator-set

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by descriptor, fixed length

  Either a mask that specifies which characters are to be  treated  as
  terminators  (short  form)  or  a descriptor pointing to such a mask
  (long form).  The  terminator-set  argument  is  the  address  of  a
  descriptor pointing to the mask.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Receives the number of  characters  read  or  the  maximum  size  of
  resultant-string,  whichever is less.  The resultant-length argument
  is the address of an unsigned word into which is written the  number
  of characters or the maximum size.

  word-integer-terminator-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Key terminator code.  The word-integer-terminator-code  argument  is
  an  unsigned  word  into  which  is  written  a code indicating what
  character or key terminated the read.  Key terminator codes  are  of
  the  form  SMG$K_TRM_keyname.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier.  The display-id argument is the  address  of  an
  unsigned longword that contains the display identifier.

  initial-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Initial  character  string.   The  initial-string  argument  is  the
  address  of  a  descriptor  pointing  to  the  optional  string that
  contains the initial characters of the field.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute specifier.  The optional  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified using the rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters  in  reverse  video  ---
                            that   is,   using  the  opposite  default
                            rendition of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute complement specifier.  The  optional  rendition-complement
  argument  is  the address of a longword bit mask in which each 1-bit
  attribute causes the corresponding attribute to be  complemented  in
  the  display.   All of the attributes that can be specified with the
  rendition-set     argument     can     be     complemented      with
  rendition-complement.   The  display-id  argument  must be specified
  when using the rendition-complement argument.

  terminator-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Characters  that  terminated  I/O.  The  optional  terminator-string
  argument is the address of a descriptor pointing  to  the  character
  string containing  the  terminating  characters.   Terminator-string
  returns  the  actual  terminating  characters,  not the key that was
  pressed to terminate the I/O.

SMG$READ_VERIFY

  The Read and Verify a String routine reads a sequence of  characters
  and verifies the sequence.

     Format:

       SMG$READ_VERIFY  keyboard-id ,resultant-string ,initial-string
                  ,picture-string ,fill-character ,clear-character
                  [,prompt-string] [,modifiers] [,timeout]
                  [,terminator-set] [,initial-offset]
                  [,word-integer-terminator-code] [,display-id]
                  [,alternate-echo-string] [,alternate-display-id]
                  [,rendition-set][,rendition-complement]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Keyboard identifier.  The keyboard-id argument is the address of  an
  unsigned  longword  integer containing the identifier of the virtual
  keyboard from which to read.  The virtual  keyboard  is  created  by
  calling the SMG$CREATE_VIRTUAL_KEYBOARD routine.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Output string into which SMG$READ_VERIFY writes the characters  that
  are  read.   The  resultant-string  argument  is  the  address  of a
  descriptor pointing to this output string.

  initial-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Input string that contains the initial characters of the field.  The
  initial-string  argument  is the address of a descriptor pointing to
  the input string.

  picture-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Picture string that contains a picture of what the field is to  look
  like.   The  picture-string  argument is the address of a descriptor
  pointing to the picture string.

  fill-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Fill character.  The fill-character argument is  the  address  of  a
  descriptor  pointing to the string that contains the character to be
  used as a fill character in the initial-string argument.

  clear-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Clear character.  The clear-character argument is the address  of  a
  descriptor  pointing to the string that contains the character to be
  displayed for each occurrence of fill-character in initial-string.

  prompt-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Prompt string.  The prompt-string  argument  is  the  address  of  a
  descriptor  pointing  to the string that SMG$READ_VERIFY uses as the
  prompt for the read operation.  This is an optional argument.

  modifiers

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Modifiers.  The modifiers argument  is  a  longword  bit  mask  that
  specifies  optional  behavior.  The bits defined are the same as for
  the $QIO  item-list  entry  TRM$_MODIFIERS.   This  is  an  optional
  argument.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Timeout count.  The timeout argument is optional.  If specified, all
  the  characters  typed  in  before  the  timeout are returned in the
  buffer.  If omitted, characters are returned in the buffer  until  a
  terminator is seen.

  terminator-set

  VMS usage: unspecified
  type: unspecified
  access: read only
  mechanism: by descriptor, fixed length

  Either a mask that specifies which characters are to be  treated  as
  terminators  (short  form)  or  a descriptor pointing to such a mask
  (long form).  The  terminator-set  argument  is  the  address  of  a
  descriptor pointing to the mask.

  initial-offset

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Input string offset.  The initial-offset argument is a longword that
  contains the number of characters (from the initial-string argument)
  to output after the prompt before waiting for input.

  word-integer-terminator-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Key terminator code.  The word-integer-terminator-code  argument  is
  an unsigned word into which SMG$READ_VERIFY writes a code indicating
  what character or key terminated the read.  Key terminator codes are
  of  the  form  SMG$K_TRM_keyname.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier.  The optional display-id argument is the address
  of  an unsigned longword integer that contains the identifier of the
  virtual display in which the read is to be performed.  If specified,
  SMG$READ_VERIFY  begins  the  read  at  the  current  virtual cursor
  position in that virtual display.  If omitted, the  read  begins  in
  the  current  physical cursor position.  Note that the length of the
  prompt-string plus the input is limited to  the  number  of  visible
  columns in the display.

  alternate-echo-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Alternate echo string.   The  alternate-echo-string  argument  is  a
  string that is printed after the first character is typed during the
  read operation.  This is an optional argument.

  alternate-display-id

  VMS usage: identifier
  type: longword (signed)
  access: read only
  mechanism: by reference

  Alternate display identification.   The  alternate-display-id  is  a
  signed longword integer containing the identification of the virtual
  display  in  which  the  alternate-echo-string  argument  is  to  be
  printed.   This  is  an optional argument.  If specified, the output
  begins at the  current  virtual  cursor  position  in  that  virtual
  display.   If  omitted, the value of the display-id argument is used
  as the default.  If display-id is not specified, the  output  begins
  in the current physical cursor position.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute specifier.  The optional  rendition-set  argument  is  the
  address  of a longword bit mask in which each 1-bit attribute causes
  the corresponding attribute to be set in the display.  The following
  attributes can be specified using the rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters  in  reverse  video  ---
                            that   is,   using  the  opposite  default
                            rendition of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attribute complement specifier.  The  optional  rendition-complement
  argument  is  the address of a longword bit mask in which each 1-bit
  attribute causes the corresponding attribute to be  complemented  in
  the  display.   All of the attributes that can be specified with the
  rendition-set   argument    can    be    complemented    with    the
  rendition-complement  argument.   The  display-id  argument  must be
  specified when using the rendition-complement argument.

SMG$REMOVE_LINE

  The Remove a Line From a Virtual Display routine removes a line from
  a specified virtual display that was drawn with the SMG$DRAW_LINE or
  SMG$DRAW_RECTANGLE routines.

     Format:

       SMG$REMOVE_LINE  display-id ,start-row ,start-column
                        ,end-row ,end-column

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  virtual display from which the line is to be removed.
  The  display-id  argument is the address of an unsigned longword that
  contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies the row at which to begin removing the line.  The start-row
  argument  is the  address of a  signed longword that contains the row
  number.

  start-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies  the  column  at  which  to  begin  removing the  line. The
  start-column  argument  is  the  address  of a  signed  longword that
  contains the column number.

  end-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies the row at which the  line to be removed ends.  The end-row
  argument  is the  address of a  signed longword that contains the row
  number.

  end-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies  the  column  at  which  the line to be  removed ends.  The
  end-column argument is the address of a signed longword that contains
  the column number.

SMG$REPAINT_LINE

  The Repaint One or More Lines on the Current Screen routine repaints
  a series of lines on the current screen.

     Format:

       SMG$REPAINT_LINE  pasteboard-id ,start-row [,number-of-lines]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Pasteboard identifier.  The pasteboard-id argument is the address of
  the pasteboard associated with the physical screen to be repainted.

  start-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Starting row number.  The start-row argument is the address  of  the
  physical row number to start repainting.

  number-of-lines

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Number of contiguous lines to repaint.  The number-of-lines argument
  is  the address of a signed longword containing the number of lines.
  This argument is optional.  If not specified, the default is 1.

SMG$REPAINT_SCREEN

  The Repaint Current Screen routine repaints the current screen after
  nonSMG I/O has occurred.

     Format:

       SMG$REPAINT_SCREEN  pasteboard-id

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the terminal screen to be  repainted.   The  pasteboard-id
  argument  is  the  address of an unsigned longword that contains the
  pasteboard identifier.

SMG$REPASTE_VIRTUAL_DISPLAY

  The Repaste Virtual Display routine moves a virtual display to a new
  position on the pasteboard.  The pasting order is not preserved.

     Format:

       SMG$REPASTE_VIRTUAL_DISPLAY  display-id ,pasteboard-id
                  ,pasteboard-row ,pasteboard-column [,top-display-id]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the  virtual  display  to  be  repasted.   The  display-id
  argument  is  the  address of an unsigned longword that contains the
  display identifier.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard on which  the  display  is  repasted.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  pasteboard-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the pasteboard row  that  is  to  contain  row  1  of  the
  specified  virtual  display.   The  pasteboard-row  argument  is the
  address of a signed longword integer that  contains  the  pasteboard
  row.

  pasteboard-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the pasteboard column that is to contain column 1  of  the
  specified  virtual  display.   The pasteboard-column argument is the
  address of a signed longword integer that  contains  the  pasteboard
  column.

  top-display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional identifier of the virtual display  under  which  display-id
  will  be  pasted.   The top-display-id argument is the address of an
  unsigned longword containing the identifier of this virtual display.
  Note  that  the  virtual  display  specified  by top-display-id must
  already be pasted.

SMG$REPLACE_INPUT_LINE

  The Replace Input Line routine replaces the specified lines  in  the
  recall buffer with the specified string.

     Format:

       SMG$REPLACE_INPUT_LINE  keyboard-id [,resultant-string]
                  [,line-count]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Keyboard identifier.  The keyboard-id argument is the address of  an
  unsigned  longword containing the identifier of the virtual keyboard
  from which to read.  The virtual keyboard is created by calling  the
  SMG$CREATE_VIRTUAL_KEYBOARD routine.

  resultant-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String that contains the line to be entered into the recall  buffer.
  The  resultant-string  argument  is  the  address  of  a  descriptor
  pointing to this string.   The  default  is  a  null  string,  which
  removes the last line entered.

  line-count

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Number of lines to be replaced.   The  line-count  argument  is  the
  address  of  an  unsigned  byte containing the number of lines to be
  replaced  with  resultant-string.   The  default   value   for   the
  line-count argument is 1 (the last line entered).

SMG$RESTORE_PHYSICAL_SCREEN

  The Restore Physical Screen routine rewrites the screen image as  it
  was at the time the SMG$SAVE_PHYSICAL_SCREEN routine was called.

     Format:

       SMG$RESTORE_PHYSICAL_SCREEN  pasteboard-id ,display-id

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the physical screen to  be  restored.   The  pasteboard-id
  argument  is  the  address of an unsigned longword that contains the
  pasteboard identifier.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies     the     virtual     display     created     by     the
  SMG$SAVE_PHYSICAL_SCREEN  routine.   The  display-id argument is the
  address  of  an  unsigned  longword  that  contains   this   display
  identifier.

SMG$RETURN_CURSOR_POS

  The Return Cursor  Position  routine  returns  the  current  virtual
  cursor position in a specified virtual display.

     Format:

       SMG$RETURN_CURSOR_POS  display-id ,start-row ,start-column

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display whose current cursor position you  are
  requesting.   The  display-id argument is the address of an unsigned
  longword  that  contains  the  display  identifier.   Display-id  is
  returned by SMG$CREATE_VIRTUAL_DISPLAY.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the cursor's current  row  position  within  the  specified
  virtual  display.   The  start-row  argument  is  the  address  of a
  longword into which is written the current row position.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Receives the cursor's current column position within  the  specified
  virtual  display.   The  start-column  argument  is the address of a
  longword into which is written the current column position.

SMG$RETURN_INPUT_LINE

  The Return Input Line routine returns to the  caller  the  requested
  line  from  the  recall  buffer.   This  line is retrieved either by
  matching it with a specified string or by specifying the appropriate
  line number.

     Format:

       SMG$RETURN_INPUT_LINE  keyboard-id ,resultant-string
                   [,match-string] [,byte-integer-line-number]
                   [,resultant-length]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Keyboard identifier.  The keyboard-id argument is the address of  an
  unsigned  longword containing the identifier of the virtual keyboard
  from which to read.  The virtual keyboard is created by calling  the
  SMG$CREATE_VIRTUAL_KEYBOARD routine.

  resultant-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  String into which  is  written  the  complete  recalled  line.   The
  resultant-string argument is the address of a descriptor pointing to
  this string.

  match-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Match string to be used when searching for the line to be  recalled.
  The  optional  match-string  argument is the address of a descriptor
  pointing to this match string.  The search begins with the last line
  typed.

  byte-integer-line-number

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Line number to be used when searching for the line to  be  recalled.
  The  optional byte-integer-line-number argument is the address of an
  unsigned byte containing the number of the line to be recalled.  The
  last line typed is line number 1.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length   of   the    resultant-string    string.     The    optional
  resultant-length  argument  is  the  address  of  an  unsigned  word
  containing either the number  of  characters  read  or  the  maximum
  length of resultant-string, whichever is less.

SMG$RING_BELL

  The Ring the Terminal Bell or Buzzer  routine  sounds  the  terminal
  bell or buzzer.

     Format:

       SMG$RING_BELL  display-id [,number-of-times]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display for which the bell or  buzzer  sounds.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  number-of-times

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of times the bell or buzzer  is  sounded.   The
  number-of-times argument is the address of a signed longword integer
  that contains the number of times the bell or buzzer is sounded.  If
  omitted, 1 is used.

SMG$SAVE_PHYSICAL_SCREEN

  The Save Physical Screen routine saves the contents of the screen so
  that a later call to SMG$RESTORE_PHYSICAL_SCREEN can restore it.

     Format:

       SMG$SAVE_PHYSICAL_SCREEN  pasteboard-id ,display-id
                  [,desired-start-row] [,desired-end-row]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the physical screen whose contents are to be  saved.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Receives the display id  of  the  display  created  to  contain  the
  contents  of  the  physical  screen.  The display-id argument is the
  address of an unsigned longword into which the display identifier is
  written.

  desired-start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the first row to be saved.  The desired-start-row argument
  is  the  address  of a signed longword integer that contains the row
  number.  If omitted, row 1 of the pasteboard is used.

  desired-end-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the last row to be saved.  The desired-end-row argument is
  the  address  of  a  signed  longword  integer that contains the row
  number.  If omitted, the last row of the pasteboard is used.

SMG$SAVE_VIRTUAL_DISPLAY

  The Save the Virtual Display to a File routine saves the contents of
  a virtual display and stores it in a file.

     Format:

       SMG$SAVE_VIRTUAL_DISPLAY  display-id [,file-spec]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies  the  virtual display to be saved. The display-id argument
  is  the  address of an unsigned longword  that  contains the display
  identifier.

  file-spec

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  containing  the  file specification of the file in which the
  specified  virtual display  is saved.  The file-spec argument is the
  address of a  descriptor  pointing  to a character string containing
  the file specification.

SMG$SCROLL_DISPLAY_AREA

  The Scroll Display Area routine scrolls a rectangular  region  of  a
  virtual display.

     Format:

       SMG$SCROLL_DISPLAY_AREA  display-id [,start-row] [,start-column]
                  [,height] [,width] [,direction] [,count]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display in which scrolling takes  place.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the first row of  the  scrolling  region.   The  start-row
  argument  is  the address of a signed longword integer that contains
  the starting row.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  first  column  of   the   scrolling   region.    The
  start-column  argument  is  the address of a signed longword integer
  that contains the starting column.

  height

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of rows in the scrolling  region.   The  height
  argument  is  the address of a signed longword integer that contains
  the number of rows.

  width

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of columns in the scrolling region.  The  width
  argument  is  the address of a signed longword integer that contains
  the number of columns.

  direction

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the direction to scroll.  The direction  argument  is  the
  address of a longword bit mask that contains the direction code.

  count

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of lines to scroll.  The count argument is  the
  address  of  a  signed  longword integer that contains the number of
  units (lines or  columns)  to  scroll.   If  omitted,  one  unit  is
  scrolled.

SMG$SCROLL_VIEWPORT

  The Scroll a Display Under a  Viewport  routine  scrolls  a  virtual
  display under its associated viewport.

     Format:

       SMG$SCROLL_VIEWPORT  display-id [,direction] [,count]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Display identifier of the  virtual  display  to  be  scrolled.   The
  display-id   argument   is  the  address  of  an  unsigned  longword
  containing this identifier.

  direction

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional direction specifier.  The direction argument is the address
  of  a  longword bit mask that contains the direction code specifying
  the scrolling direction.  The optional count argument can be used to
  specify  the  number  of lines to scroll in the specified direction.
  Valid values for direction are as follows:

       SMG$M_UP          Scroll count lines upward.

       SMG$M_DOWN        Scroll count lines downward.

       SMG$M_RIGHT       Scroll count columns to the right.

       SMG$M_LEFT        Scroll count columns to the left.

  SMG$M_UP is the default.

  count

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional number of rows or  columns  that  will  be  scrolled.   The
  default is 1.

SMG$SELECT_FROM_MENU

  The Make a Selection from the Menu routine lets you move between the
  menu  choices  using the arrow keys and lets you make a selection by
  pressing RETURN.

     Format:

       SMG$SELECT_FROM_MENU  keyboard-id ,display-id
                  ,selected-choice-number [,default-choice-number]
                  [,flags] [,HELP-library] [,timeout] [,term-code]
                  [,selected-choice-string] [,rendition-set]
                  [,rendition-complement]

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of the virtual keyboard from which  the  terminal  user's
  responses  are  read.  The keyboard-id argument is the address of an
  unsigned longword containing this identifier.

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Identifier  of  the  virtual  display  in  which  the  choices   are
  displayed.   The  display-id  argument is the address of an unsigned
  longword containing this display identifier.  This  virtual  display
  must be pasted to a pasteboard and cannot be batched or occluded.

  selected-choice-number

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Identification   number   of   the   menu   item   selected.     The
  selected-choice-number  argument  is the address of an unsigned word
  that receives this number.  The  selected-choice-number  corresponds
  to  the  index of the menu item in the static string array specified
  in SMG$CREATE_MENU.

  default-choice-number

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Optional identification  number  of  the  default  menu  item.   The
  default-choice-number  argument  is  the address of an unsigned word
  that  contains  the  number  of  the   default   menu   item.    The
  default-choice-number  corresponds  to the index of the default menu
  item in the static string array specified  in  SMG$CREATE_MENU.   If
  omitted,  the  default  choice  will  be  the last menu item already
  selected, or the first item in the menu if no  selections  have  yet
  been made.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional bit mask indicating optional behavior when a  selection  is
  made.   The  flags  argument  is  the address of a longword bit mask
  containing this flag.  Valid values are as follows:

       SMG$M_RETURN_IMMED          Returns control to  the  user  when
                                     any  key  other than an arrow key
                                     is entered

       SMG$M_REMOVE_ITEM           Causes SMG$SELECT_FROM_MENU to only
                                     allow   each   menu  item  to  be
                                     selected once

  HELP-library

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Optional HELP library to use if the PF2/HELP key  is  pressed.   The
  HELP-library  argument  is  the  address of a descriptor pointing to
  this HELP library name.  Note that this argument is ignored if flags
  specifies SMG$M_RETURN_IMMED.  The default is SYS$HELP:HELPLIB.HLB.

  timeout

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Optional timeout value.  The timeout argument is the  address  of  a
  signed  longword  that specifies the number of seconds to wait for a
  selection to be made.

  term-code

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Optional unsigned word that receives the code indicating  which  key
  terminated  the  read.   The term-code argument is the address of an
  unsigned word that receives this terminating key code.

  selected-choice-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Optional string that receives the text of the  menu  item  selected.
  The  selected-choice-string  is the address of a descriptor pointing
  to this string.

  rendition-set

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute specifier.  The  rendition-set  argument  is  the
  address  of  a  longword  bit  mask  in which each one-bit attribute
  causes the corresponding attribute to be used when selecting an item
  in  a  menu.   The  following  attributes  can  be  specified by the
  rendition-set argument:

       SMG$M_BLINK        Displays characters blinking.

       SMG$M_BOLD         Displays  characters  in  higher-than-normal
                            intensity (bolded).

       SMG$M_REVERSE      Displays characters in reverse  video,  that
                            is,  using  the opposite default rendition
                            of the virtual display.

       SMG$M_UNDERLINE    Displays characters underlined.

       SMG$M_INVISIBLE    Makes  characters  in  the  virtual  display
                            invisible.

       SMG$M_USER1   through   SMG$M_USER8    Displays    user-defined
                            attributes.

  rendition-complement

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional attribute complement specifier.   The  rendition-complement
  argument is the address of a longword bit mask in which each one-bit
  attribute causes the corresponding attribute to be complemented when
  selecting  an item from the menu.  All of the attributes that can be
  specified with the rendition-set argument can be  complemented  with
  the rendition-complement argument.

SMG$SET_BROADCAST_TRAPPING

  The Enable  Broadcast  Trapping  routine  enables  the  trapping  of
  broadcast messages.

     Format:

       SMG$SET_BROADCAST_TRAPPING  pasteboard-id [,AST-routine]
                  [,AST-argument]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard for  the  terminal  to  be  affected.   The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  AST-routine

  VMS usage: ast_procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  The address of an AST  routine  to  be  called  when  a  message  is
  received  at  the terminal.  The AST-routine argument is the address
  of the routine's procedure entry mask --- that is,  the  address  of
  the routine itself.

  AST-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  A value to be passed to the AST routine.   The  AST-argument  is  an
  unsigned  longword  that  contains the value to be passed to the AST
  routine.

SMG$SET_CURSOR_ABS

  The Set Absolute Cursor Position routine moves the virtual cursor to
  the specified position in a virtual display.

     Format:

       SMG$SET_CURSOR_ABS  display-id [,start-row] [,start-column]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display in which to  set  the  virtual  cursor
  position.   The  display-id  argument  is the address of an unsigned
  longword that contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the row position to which the virtual cursor  moves.   The
  start-row  argument is the address of a signed longword integer that
  contains the row number.  If omitted,  the  cursor  remains  at  the
  current row.

  start-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the column position to which  the  virtual  cursor  moves.
  The  start-column  argument  is  the  address  of  a signed longword
  integer that contains the column number.  If  omitted,  the  virtual
  cursor remains at the current column.

SMG$SET_CURSOR_MODE

  The Turn the Physical Cursor On or Off and  select  Jump  or  Smooth
  Scrolling  routine  turns  the physical cursor on or off and selects
  jump or smooth scrolling.

     Format:

       SMG$SET_CURSOR_MODE  pasteboard-id ,flags

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Pasteboard identifier.  The pasteboard-id argument is the address of
  an unsigned longword that contains the pasteboard identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Flag that determines mode to use.  The flags argument is the address
  of  an  unsigned longword that contains the flag.  Flags accepts the
  following values:

       SMG$M_CURSOR_OFF       Clears physical cursor.

       SMG$M_CURSOR_ON        Displays physical cursor.

       SMG$M_SCROLL_JUMP      Jump scrolls.

       SMG$M_SCROLL_SMOOTH    Smooth scrolls.

SMG$SET_CURSOR_REL

  The Move Cursor Relative  to  Current  Position  routine  moves  the
  virtual  cursor  the  specified  number of rows and columns from the
  current virtual cursor position in a virtual display.

     Format:

       SMG$SET_CURSOR_REL  display-id [,delta-row] [,delta-column]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display in which to move the  virtual  cursor.
  The  display-id argument is the address of an unsigned longword that
  contains the display identifier.

  delta-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the number of  rows  to  move  the  virtual  cursor.   The
  delta-row  argument is the address of a signed longword integer that
  contains the number of rows to move.  If omitted, the virtual cursor
  remains  at the current row position.  If delta-row is positive, the
  virtual cursor moves downward the  specified  number  of  rows.   If
  delta-row is negative, the virtual cursor moves upward the specified
  number of rows.

  delta-column

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies  the  number  of  columns  to  move   the   cursor.    The
  delta-column argument is the address of a longword that contains the
  number of columns to move.  If omitted, the virtual  cursor  remains
  at  the  current  column position.  If delta-column is positive, the
  virtual cursor moves the specified number of columns to  the  right.
  If  delta-column is negative, the virtual cursor moves the specified
  number of columns to the left.

SMG$SET_DEFAULT_STATE

  The Set Default  State  routine  sets  and/or  returns  the  current
  default state for a key table.

     Format:

       SMG$SET_DEFAULT_STATE  key-table-id [,new-state] [,old-state]

     Arguments:

  key-table-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the key table in which you are setting or inquiring  about
  a  default  state.   The  key-table-id argument is the address of an
  unsigned longword that contains the key table identifier.

  new-state

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Specifies the new default state  for  the  entire  key  table.   The
  new-state  argument  is  the address of a descriptor pointing to the
  new  state  string.   The  specified  state  name  is  converted  to
  uppercase and stripped of trailing blanks before use.

  old-state

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Receives the existing  default  state  name  of  the  specified  key
  definition  table.   The  old-state  argument  is  the  address of a
  descriptor pointing to the storage into which the old  state  string
  is written.

SMG$SET_DISPLAY_SCROLL_REGION

  The Create Display Scrolling  Region  routine  creates  a  scrolling
  region in a virtual display.

     Format:

       SMG$SET_DISPLAY_SCROLL_REGION  display-id [,start-row] [,end-row]

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display in which scrolling takes  place.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  start-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the first line of the  scrolling  region.   The  start-row
  argument  is  the address of a signed longword integer that contains
  the starting line number.  If omitted, the first line of the display
  is used.

  end-row

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Specifies the last  line  of  the  scrolling  region.   The  end-row
  argument  is  the address of a signed longword integer that contains
  the ending line number.  If omitted, the last line  of  the  virtual
  display is used.

SMG$SET_KEYPAD_MODE

  The Set Keypad Mode routine sets the terminal's  numeric  keypad  to
  either numeric or applications mode.

     Format:

       SMG$SET_KEYPAD_MODE  keyboard-id ,flags

     Arguments:

  keyboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual keyboard whose mode is  to  be  changed.   The
  keyboard-id  argument  is  the  address of an unsigned longword that
  contains the keyboard identifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies whether the keypad is to be  in  applications  or  numeric
  mode.   The  flags  argument  is the address of an unsigned longword
  that contains the new mode setting.  If the low-order bit is  clear,
  the  keypad is set to numeric mode; if the low-order bit is set, the
  keypad is set to applications mode.  All other bits must be zero.

SMG$SET_OUT_OF_BAND_ASTS

  The Set Out-of-Band ASTs routine  either  enables  or  disables  the
  trapping of out-of-band control characters.

     Format:

       SMG$SET_OUT_OF_BAND_ASTS  pasteboard-id ,control-character-mask
                  ,AST-routine [,AST-argument]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the terminal for which out-of-band characters are  enabled
  or  disabled.   The  pasteboard-id  argument  is  the  address of an
  unsigned  longword  that   contains   the   pasteboard   identifier.
  Pasteboard-id is returned by SMG$CREATE_PASTEBOARD.

  control-character-mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies which control characters are to  be  the  new  out-of-band
  control  characters.   The  control-character-mask  argument  is the
  address of an unsigned longword that contains the mask.  You  create
  this  mask by setting the bit that corresponds to the ASCII value of
  the desired character.  For example, to specify that  CTRL/C  (ASCII
  value  3)  is an out-of-band control character, you set bit 3 (value
  8) in the control-character-mask.  If no bits are set in this  mask,
  then  no  out-of-band  ASTs occur.

  AST-routine

  VMS usage: ast_procedure
  type: procedure entry mask
  access: read only
  mechanism: by value

  The address of an AST routine  to  be  called  when  an  out-of-band
  control  character  is  typed  at  the  terminal.   The  AST-routine
  argument is the address of the routine's procedure  entry  mask  ---
  that is, the address of the routine itself.

  AST-argument

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  The argument you supply for the AST.  The AST-argument  argument  is
  an unsigned longword that contains the value to be passed to the AST
  routine.  However, the  AST  routine  may  also  need  to  know  the
  out-of-band  character  and the pasteboard-id at which it was typed.
  Therefore, the Screen Management Facility creates  a  three-longword
  structure  to  hold  this information and passes the address of this
  structure as the first argument to the AST routine.   The  remaining
  four  arguments  are  R0,  R1,  PC,  and PSL.  The Screen Management
  Facility stores the argument you supply in this structure.

SMG$SET_PHYSICAL_CURSOR

  The Set Cursor on Physical Screen routine moves the physical  cursor
  to the specified position on the physical screen.

     Format:

       SMG$SET_PHYSICAL_CURSOR  pasteboard-id ,pasteboard-row
                  ,pasteboard-column

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the physical screen whose physical cursor is to move.  The
  pasteboard-id  argument  is the address of an unsigned longword that
  contains the pasteboard identifier.

  pasteboard-row

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies  the  row  to  which  the  physical  cursor  moves.    The
  pasteboard-row  argument  is  the  address of a signed longword that
  contains the row number.

  pasteboard-column

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by reference

  Specifies the column  to  which  the  physical  cursor  moves.   The
  pasteboard-column  argument is the address of a signed longword that
  contains the column number.

SMG$SET_TERM_CHARACTERISTICS

  The Change Terminal Characteristics routine changes or retrieves the
  terminal characteristics for a given pasteboard.

     Format:

       SMG$SET_TERM_CHARACTERISTICS  pasteboard-id
                  [,on-characteristics1] [,on-characteristics2]
                  [,off-characteristics1] [,off-characteristics2]
                  [,old-characteristics1] [,old-characteristics2]

     Arguments:

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard whose characteristics are to be changed  or
  retrieved.  The pasteboard-id argument is the address of an unsigned
  longword that contains the pasteboard identifier.

  on-characteristics1

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies the terminal characteristics to be set  from
  $TTDEF.   The  on-characteristics1  argument  is  the  address of an
  unsigned longword that contains the bit mask.

  on-characteristics2

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies the terminal characteristics to be set  from
  $TT2DEF.   The  on-characteristics2  argument  is  the address of an
  unsigned longword that contains the bit mask.

  off-characteristics1

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies the terminal  characteristics  to  be  reset
  from $TTDEF.  The off-characteristics1 argument is the address of an
  unsigned longword that contains the bit mask.

  off-characteristics2

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Bit mask that specifies the terminal  characteristics  to  be  reset
  from  $TT2DEF.   The off-characteristics2 argument is the address of
  an unsigned longword that contains the bit mask.

  old-characteristics1

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Retrieves the current terminal characteristics in the  first  group.
  The  old-characteristics1  argument  is  the  address of an unsigned
  longword that contains the bit mask.

  old-characteristics2

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Retrieves the current terminal characteristics in the second  group.
  The  old-characteristics2  argument  is  the  address of an unsigned
  longword that contains the bit mask.

SMG$SNAPSHOT

  The Write Snapshot routine writes the current pasteboard  buffer  to
  the file or hardcopy terminal specified by pasteboard-id.

     Format:

       SMG$SNAPSHOT  pasteboard-id [,flags]

     ARGUMENT

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the file or hardcopy terminal to receive the  contents  of
  the pasteboard buffer.  The pasteboard-id argument is the address of
  an unsigned longword that contains the pasteboard  identifier.   The
  output  device  assiocated  with  pasteboard-id  is specified by the
  output-device argument of SMG$CREATE_PASTEBOARD.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Form-feed flag.  The flags argument is the address  of  an  unsigned
  longword  containing  a  Boolean value.  If the value of flags is 1,
  then the first record output will be a form  feed  (<FF>).   If  the
  value of flags is zero, then an initial form-feed record will not be
  output.

SMG$UNPASTE_VIRTUAL_DISPLAY

  The Remove Virtual Display routine removes a virtual display from  a
  pasteboard.

     Format:

       SMG$UNPASTE_VIRTUAL_DISPLAY  display-id ,pasteboard-id

     Arguments:

  display-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the virtual display to be removed from a pasteboard.   The
  display-id  argument  is  the  address  of an unsigned longword that
  contains the display identifier.

  pasteboard-id

  VMS usage: identifier
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Specifies the pasteboard (physical screen) from  which  the  virtual
  display is removed.  The pasteboard-id argument is the address of an
  unsigned longword that contains the pasteboard identifier.

STR$

Additional information available:

STR$ADDSTR$ANALYZE_SDESCSTR$APPENDSTR$CASE_BLIND_COMPARE
STR$COMPARESTR$COMPARE_EQLSTR$COMPARE_MULTISTR$CONCAT
STR$COPY_DXSTR$COPY_RSTR$DIVIDESTR$DUPL_CHAR
STR$ELEMENTSTR$FIND_FIRST_IN_SETSTR$FIND_FIRST_NOT_IN_SET
STR$FIND_FIRST_SUBSTRINGSTR$FREE1_DXSTR$GET1_DX
STR$LEFTSTR$LEN_EXTRSTR$MATCH_WILDSTR$MULSTR$POSITION
STR$POS_EXTRSTR$PREFIXSTR$RECIPSTR$REPLACE
STR$RIGHTSTR$ROUNDSTR$TRANSLATESTR$TRIMSTR$UPCASE

STR$ADD

  The Add Two Decimal Strings routine  adds  two  decimal  strings  of
  digits.

     Format:

       STR$ADD  asign ,aexp ,adigits ,bsign ,bexp ,bdigits
                  ,csign ,cexp ,cdigits

     Arguments:

  asign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the first operand.  The asign argument is the address of  an
  unsigned   longword   containing  this  sign.   Zero  is  considered
  positive; 1 is considered negative.

  aexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  adigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  first  operand.   The aexp argument is the
  address of a signed longword integer containing this exponent.

  adigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  String of unsigned digits representing the  absolute  value  of  the
  first  operand  before aexp is applied.  The adigits argument is the
  address of a descriptor pointing to this string.  This  string  must
  be an unsigned decimal number.

  bsign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the second operand.  The bsign argument is the address of an
  unsigned  longword  containing  the  second operand's sign.  Zero is
  considered positive; one is considered negative.  <endupdate_range>

  bexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  bdigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  second  operand.  The bexp argument is the
  address of a signed longword integer containing the second operand's
  exponent.

  bdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  String of unsigned digits representing the  absolute  value  of  the
  second  operand before bexp is applied.  The bdigits argument is the
  address of a descriptor pointing to this string.  This  string  must
  be an unsigned decimal number.

  csign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Sign of the result.   The  csign  argument  is  the  address  of  an
  unsigned  longword  integer  containing  the result's sign.  Zero is
  considered positive.

  cexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Power of 10 by which  cdigits  has  to  be  multiplied  to  get  the
  absolute value of the result.  The cexp argument is the address of a
  signed longword integer containing the result's exponent.

  cdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: write only
  mechanism: by descriptor

  String of unsigned digits representing the  absolute  value  of  the
  result  before cexp is applied.  The cdigits argument is the address
  of a descriptor pointing to this string.  This string is an unsigned
  decimal number.

STR$ANALYZE_SDESC

  The Analyze  String  Descriptor  routine  extracts  the  length  and
  starting  address  of  the  data  for a variety of string descriptor
  classes.

     Format:

       STR$ANALYZE_SDESC  input-descriptor ,word-integer-length
                  ,data-address

     Arguments:

  input-descriptor

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Input descriptor from which STR$ANALYZE_SDESC extracts the length of
  the   data   and   the  address  at  which  the  data  starts.   The
  input-descriptor argument is the address of a descriptor pointing to
  the input data.

  word-integer-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Length of the data; this length is extracted from the descriptor  by
  STR$ANALYZE_SDESC.   The word-integer-length argument is the address
  of an unsigned word integer into which STR$ANALYZE_SDESC writes  the
  data length.  for CALL entry point, by value for JSB entry point)

  data-address

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Address of the data; this address is extracted from  the  descriptor
  by  STR$ANALYZE_SDESC.   The  data-address  argument  is an unsigned
  longword into which STR$ANALYZE_SDESC  writes  the  address  of  the
  data.

STR$APPEND

  The Append String routine appends a source string to the  end  of  a
  destination  string.   The  destination  string must be a dynamic or
  varying string.

     Format:

       STR$APPEND  destination-string ,source-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string to which STR$APPEND appends  the  source  string.
  The  destination-string  argument  is  the  address  of a descriptor
  pointing to the destination string.  This destination string must be
  dynamic or varying.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string that STR$APPEND appends to the end of the  destination
  string.   The  source-string argument is the address of a descriptor
  pointing to this source string.

STR$CASE_BLIND_COMPARE

  The Compare Strings Without Regard  to  Case  routine  compares  two
  input strings of any supported class and data type without regard to
  whether the alphabetic characters are uppercase or lowercase.

     Format:

       STR$CASE_BLIND_COMPARE   first-source-string
                  ,second-source-string

     Arguments:

  first-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  First string.  The first-source-string argument is the address of  a
  descriptor pointing to the first string.

  second-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Second string.  The second-source-string argument is the address  of
  a descriptor pointing to the second string.

STR$COMPARE

  The Compare  Two  Strings  routine  compares  the  contents  of  two
  strings.   If  the strings are unequal in length, the shorter string
  is considered to be filled with blanks to the length of  the  longer
  string before the comparison is made.

     Format:

       STR$COMPARE  first-source-string ,second-source-string

     Arguments:

  first-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  First string.  The first-source-string argument is the address of  a
  descriptor pointing to the first string.

  second-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Second string.  The second-source-string argument is the address  of
  a descriptor pointing to the second string.

STR$COMPARE_EQL

  The Compare Two Strings for Equality routine, compares  two  strings
  to  see  if  they  have the same length and contents.  Uppercase and
  lowercase characters are not considered equal.

     Format:

       STR$COMPARE_EQL  first-source-string ,second-source-string

     Arguments:

  first-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  First  source  string.   The  first-source-string  argument  is  the
  address of a descriptor pointing to the first source string.

  second-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Second source string.   The  second-source-string  argument  is  the
  address of a descriptor pointing to the second source string.

STR$COMPARE_MULTI

  The Compare Two Strings for Equality Using  Multinational  Character
  Set  routine  compares  two character strings for equality using the
  DEC Multinational character set.

     Format:

       STR$COMPARE_MULTI  first-source-string ,second-source-string
                  [,flags-value]   [,foreign-language]

     Arguments:

  first-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  First string in the comparison.  The first-source-string argument is
  the address of a descriptor pointing to the first string.

  second-source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Second string in the comparison.  The second-source-string  argument
  is  the  address  of  a  descriptor  pointing  to the second string.

  flags-value

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  A single flag bit.  The flags-value argument is  a  signed  longword
  integer   that  contains  this  flag  bit.   The  default  value  of
  flags-value is zero.

       Bit Symbol     Meaning

       0   CASEBLIND  If set, uppercase and lowercase  characters  are
                        equivalent.

  foreign-language

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Indicator which determines the foreign language table  to  be  used.
  The  foreign-language argument is an unsigned longword that contains
  this  foreign  language  table  indicator.   The  default  value  of
  foreign-language is 1.

       Value   Language

       1       Multinational table

       2       Danish table

       3       Finnish/Swedish table

       4       German table

       5       Norwegian table

       6       Spanish table

STR$CONCAT

  The  Concatenate  Two  or  More  Strings  routine  concatenates  all
  specified  source  strings  into  a  single destination string.  The
  strings can be of any class and data type, provided that the  length
  fields  of  the  descriptors indicate the strings' lengths in bytes.
  You must specify at least one source string, and you may specify  up
  to  254  source  strings.   The  maximum  length of the concatenated
  string is 65,535 bytes.

     Format:

       STR$CONCAT  destination-string ,source-string
                   [,source-string...]

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$CONCAT concatenates all  specified
  source strings.  The destination-string argument is the address of a
  descriptor pointing to this destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  First source string; STR$CONCAT requires at least one source string.
  The  source-string  argument is the address of a descriptor pointing
  to the first source string.  The maximum number  of  source  strings
  that STR$CONCAT allows is 254.
  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Second  source  string;  only  the  first source string is required.
  The  source-string  argument is the address of a descriptor pointing
  to the first source string.  The maximum number  of  source  strings
  that STR$CONCAT allows is 254.

STR$COPY_DX

  The Copy a Source String  Passed  by  Descriptor  to  a  Destination
  String routine copies a source string to a destination string.  Both
  strings are passed by descriptor.

     Format:

       STR$COPY_DX  destination-string ,source-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$COPY_DX writes the source  string;
  depending  on  the  class  of  the destination string, the following
  actions occur:

       Class Field                Action

       DSC$K_CLASS_S,Z,SD,A,NCA   Copy the source string.  If  needed,
                                    space  is  filled  or truncated on
                                    the right.

       DSC$K_CLASS_D              If  the  area   specified   by   the
                                    destination  descriptor  is  large
                                    enough  to  contain   the   source
                                    string, copy the source string and
                                    set  the   new   length   in   the
                                    destination   descriptor.  If  the
                                    area  specified   is   not   large
                                    enough,  return the previous space
                                    allocation  (if  any)   and   then
                                    dynamically allocate the amount of
                                    space  needed.  Copy  the   source
                                    string  and set the new length and
                                    address   in    the    destination
                                    descriptor.

       DSC$K_CLASS_VS             Copy source  string  to  destination
                                    string   up   to   the   limit  of
                                    DSC$W_MAXSTRLEN with  no  padding.
                                    Readjust  current  length field to
                                    actual number of bytes copied.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string that STR$COPY_DX copies into the  destination  string;
  the  descriptor class of the source string can be unspecified, fixed
  length, dynamic, scalar  decimal,  array,  noncontiguous  array,  or
  varying.

STR$COPY_R

  The Copy a Source String Passed by Reference to a Destination String
  routine  copies a source string passed by reference to a destination
  string.

     Format:

       STR$COPY_R  destination-string ,word-integer-source-length
                  ,source-string-address

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$COPY_R copies the  source  string.
  The  destination-string  argument  is  the  address  of a descriptor
  pointing to the destination string.

  word-integer-source-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Length  of  the  source  string.    The   word-integer-source-length
  argument is the address of an unsigned word containing the length of
  the source string.

  source-string-address

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by reference

  Source string which STR$COPY_R copies into the  destination  string.
  The  source-string-address  argument  is  the  address of the source
  string.

STR$DIVIDE

  The Divide Two Decimal Strings routine divides two decimal strings.

     Format:

       STR$DIVIDE  asign ,aexp ,adigits ,bsign ,bexp ,bdigits
                  ,total-digits ,round-truncate-indicator ,csign ,cexp
                  ,cdigits

     Arguments:

  asign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the first operand.  The asign argument is the address of  an
  unsigned  longword  containing  the  first  operand's sign.  Zero is
  considered positive; 1 is considered negative.

  aexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  adigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  first  operand.   The aexp argument is the
  address of the first operand's exponent.

  adigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  First operand's numeric string.  The adigits argument is the address
  of a descriptor pointing to the first operand's numeric string.  The
  string must be an unsigned decimal number.

  bsign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the second operand.  The bsign argument is the address of an
  unsigned  longword  containing the second operand's string.  Zero is
  considered positive; 1 is considered negative.

  bexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  bdigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  second  operand.  The bexp argument is the
  address of the second operand's exponent.

  bdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  Second operand's  numeric  string.   The  bdigits  argument  is  the
  address  of  a  descriptor  pointing  to the second operand's number
  string.  The string must be an unsigned decimal number.

  total-digits

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number  of  digits  to  the  right  of  the  decimal   point.    The
  total-digits  argument  is  the address of a signed longword integer
  containing the number of total digits.  STR$DIVIDE uses this  number
  to carry out the division.

  round-truncate-indicator

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Indicator of whether STR$DIVIDE is to round or truncate the  result;
  zero  means  truncate,  1 means round.  The round-truncate-indicator
  argument is the address of longword bit mask string containing  this
  indicator.

  csign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Sign of the result.   The  csign  argument  is  the  address  of  an
  unsigned  longword  integer containing the sign of the result.  Zero
  is considered positive; 1 is considered negative.

  cexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Power of 10 by which  cdigits  has  to  be  multiplied  to  get  the
  absolute value of the result.  The cexp argument is the address of a
  signed longword integer containing the exponent.

  cdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: write only
  mechanism: by descriptor

  Result's numeric string.  The cdigits argument is the address  of  a
  descriptor  pointing  to  the  numeric  string  of the result.  This
  string is an unsigned decimal number.

STR$DUPL_CHAR

  The  Duplicate  Character  n  Times  routine  generates   a   string
  containing  n duplicates of the input character.  If the destination
  string is an "empty" dynamic string descriptor,  STR$DUPL_CHAR  will
  allocate and initialize the string.

     Format:

       STR$DUPL_CHAR  destination-string [,longword-integer-length]
                  [,ASCII-character]

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination    string    into     which     STR$DUPL_CHAR     writes
  longword-integer-length   copies   of   the  input  character.   The
  destination-string argument is the address of a descriptor  pointing
  to the destination string.

  longword-integer-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of times ASCII-character  will  be  duplicated;  this  is  an
  optional   argument   (if   omitted,   the   default   is  1).   The
  longword-integer-length argument is the address of a signed longword
  integer containing the number.

  ASCII-character

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by reference

  ASCII character that  STR$DUPL_CHAR  writes  longword-integer-length
  times  into the destination string; this is an optional argument (if
  omitted, the default is a space).  The ASCII-character  argument  is
  the address of a character string containing this character.

STR$ELEMENT

  The Extract Delimited Element Substring routine extracts an  element
  from  a  string  in  which the elements are separated by a specified
  delimiter.

     Format:

       STR$ELEMENT  destination-string ,element-number
                  ,delimiter-string ,source-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination  string  into  which  STR$ELEMENT  copies  the  selected
  substring.   The  destination-string  argument  is  the address of a
  descriptor pointing to the destination string.

  element-number

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Element number of the delimited element substring  to  be  returned.
  The  element-number  argument  is  the  address of a signed longword
  integer containing the desired element  number.   Zero  is  used  to
  represent  the  first  delimited  element  substring, one is used to
  represent the second, and so forth.

  delimiter-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Delimiter  string  used  to  separate   element   substrings.    The
  delimiter-string argument is the address of a descriptor pointing to
  the  delimiter  string.   Delimiter-string  must  be   exactly   one
  character long.

  source-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Source  string  from  which  STR$ELEMENT  extracts   the   requested
  delimited substring.  The source-string argument is the address of a
  descriptor pointing to the source string.

STR$FIND_FIRST_IN_SET

  The Find First Character in a Set of Characters routine  searches  a
  string  one  character at a time, from left to right, comparing each
  character in the string to every character in  a  specified  set  of
  characters for which it is searching.  STR$FIND_FIRST_IN_SET returns
  the position in the string where the first  matching  character  was
  found.  Zero is returned if no match is found.

     Format:

       STR$FIND_FIRST_IN_SET   source-string ,set-of-characters

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String  which  STR$FIND_FIRST_IN_SET  compares   to   the   set   of
  characters, looking for the first match.  The source-string argument
  is the address of a descriptor pointing to the character string.

  set-of-characters

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Set of characters which STR$FIND_FIRST_IN_SET is  searching  for  in
  the  string.   The  source-string  argument  is  the  address  of  a
  descriptor pointing to the set of characters.

STR$FIND_FIRST_NOT_IN_SET

  The Find First Character that Does Not Occur in Set routine searches
  a  string, comparing each character to the characters in a specified
  set of characters.  The string is searched character  by  character,
  from  left to right.  STR$FIND_FIRST_NOT_IN_SET returns the position
  of the first character in the string that does not match any of  the
  characters in the selected set of characters.

     Format:

       STR$FIND_FIRST_NOT_IN_SET   source-string   ,set-of-characters

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String which STR$FIND_FIRST_NOT_IN_SET searches.  The  source-string
  argument is the address of a descriptor pointing to the string.

  set-of-characters

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  The set of characters which  STR$FIND_FIRST_NOT_IN_SET  compares  to
  the  string, looking for a nonmatch.  The set-of-characters argument
  is the address of a descriptor pointing to this set of characters.

STR$FIND_FIRST_SUBSTRING

  The Find First Substring in Input String  routine  finds  the  first
  substring  (in  a  provided list of substrings) occurring in a given
  string.

     Format:

       STR$FIND_FIRST_SUBSTRING  source-string ,index
                  ,sub-string-index ,sub-string [,sub-string...]

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String that STR$FIND_FIRST_SUBSTRING  searches.   The  source-string
  argument is the address of a descriptor pointing to the string.

  index

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Earliest     position     within     source-string     at      which
  STR$FIND_FIRST_SUBSTRING  found  a  matching  substring;  zero if no
  matching substring was found.  The index argument is the address  of
  a signed longword integer containing this position.

  sub-string-index

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Ordinal number of the sub-string that matched (1 for  the  first,  2
  for  the  second,  and  so  on), or zero if STR$FIND_FIRST_SUBSTRING
  found no substrings that matched.  The sub-string-index argument  is
  the  address  of  a  signed longword integer containing this ordinal
  number.

  sub-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Specified substring for which STR$FIND_FIRST_SUBSTRING  searches  in
  source-string.   The  source-string  argument  is  the  address of a
  descriptor  pointing  to  the  first  substring.   You  can  specify
  multiple substrings to be searched for.

  sub-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Specified substring for which STR$FIND_FIRST_SUBSTRING  searches  in
  source-string.   The  source-string  argument  is  the  address of a
  descriptor   pointing  to  additional substrings.  You  can  specify
  multiple substrings to be searched for.

STR$FREE1_DX

  The Free One Dynamic String routine deallocates one dynamic string.

     Format:

       STR$FREE1_DX  string-descriptor

     ARGUMENT

  string-descriptor

  VMS usage: char_string
  type: character string
  access: modify
  mechanism: by descriptor

  Dynamic string descriptor of the dynamic string  which  STR$FREE1_DX
  deallocates.   The  string-descriptor  argument  is the address of a
  descriptor pointing to the string  to  be  deallocated.   The  class
  field (DSC$B_CLASS) is checked.

STR$GET1_DX

  The Allocate One Dynamic String routine allocates a specified number
  of  bytes  of  dynamic  virtual memory to a specified dynamic string
  descriptor.

     Format:

       STR$GET1_DX  word-integer-length ,character-string

     Arguments:

  word-integer-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Number    of    bytes    which    STR$GET1_DX    allocates.      The
  word-integer-length  argument  is  the  address  of an unsigned word
  containing this number.

  character-string

  VMS usage: char_string
  type: character string
  access: modify
  mechanism: by descriptor

  Dynamic string descriptor to which STR$GET1_DX allocates  the  area.
  The character-string argument is the address of an unsigned quadword
  containing the string descriptor.

STR$LEFT

  The Extract a Substring of a String routine copies a substring of  a
  source string into a destination string.

     Format:

       STR$LEFT  destination-string ,source-string ,end-position

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$LEFT copies  the  substring.   The
  destination-string  argument is the address of a descriptor pointing
  to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string from which STR$LEFT extracts the  substring  which  it
  copies  into  the destination string.  The source-string argument is
  the address of a descriptor pointing to the source string.

  end-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Relative position in the source string at which the substring  ends.
  The  end-position  argument  is  the  address  of  a signed longword
  integer containing the ending position.

STR$LEN_EXTR

  The Extract a Substring of a String routine copies a substring of  a
  source string into a destination string.

     Format:

       STR$LEN_EXTR  destination-string ,source-string ,start-position
                  ,longword-integer-length

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which  STR$LEN_EXTR  copies  the  substring.
  The  destination-string  argument  is  the  address  of a descriptor
  pointing to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string from which STR$LEN_EXTR extracts the substring that it
  copies  into  the destination string.  The source-string argument is
  the address of a descriptor pointing to the source string.

  start-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Relative position in the source string at which the  substring  that
  STR$LEN_EXTR  copies  starts.   The  start-position  argument is the
  address  of  a  signed  longword  integer  containing  the  starting
  position.

  longword-integer-length

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Number of characters in the substring that  STR$LEN_EXTR  copies  to
  the destination string.  The longword-integer-length argument is the
  address of a signed longword integer containing the  length  of  the
  substring.

STR$MATCH_WILD

  The Match Wildcard  Specification  routine  is  used  to  compare  a
  pattern  string  that  includes wildcard characters with a candidate
  string.  It returns a condition value of STR$_MATCH if  the  strings
  match and STR$_NOMATCH if they do not match.

     Format:

       STR$MATCH_WILD  candidate-string ,pattern-string

     Arguments:

  candidate-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String   to   which   the   pattern   string   is   compared.    The
  candidate-string argument is the address of a descriptor pointing to
  the candidate string.

  pattern-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  String containing wildcard characters.  The pattern-string  argument
  is  the address of a descriptor pointing to the pattern string.  The
  wildcards in the pattern string are translated  when  STR$MATCH_WILD
  searches the candidate string to determine if it matches the pattern
  string.

STR$MUL

  The Multiply Two Decimal  Strings  routine  multiplies  two  decimal
  strings.

     Format:

       STR$MUL  asign ,aexp ,adigits ,bsign ,bexp ,bdigits
                  ,csign ,cexp ,cdigits

     Arguments:

  asign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the first operand.  The asign argument is the address of  an
  unsigned  longword  containing  the  first  operand's sign.  Zero is
  considered positive; 1 is considered negative.

  aexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  adigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  first  operand.   The aexp argument is the
  address of a signed longword integer containing this exponent.

  adigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  First operand's numeric string.  The adigits argument is the address
  of a descriptor pointing to the numeric string of the first operand.
  The string must be an unsigned decimal number.

  bsign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the second operand.  The bsign argument is the address of an
  unsigned  longword  containing the sign of the second operand.  Zero
  is considered positive; 1 is considered negative.

  bexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  bdigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  second  operand.  The bexp argument is the
  address of a signed longword integer containing this exponent.

  bdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  Second operand's  numeric  string.   The  bdigits  argument  is  the
  address  of  a  descriptor  pointing to the second operand's numeric
  string.  The string must be an unsigned decimal number.

  csign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Sign of the result.   The  csign  argument  is  the  address  of  an
  unsigned  longword  integer containing the sign of the result.  Zero
  is considered positive; 1 is considered negative.

  cexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Power of 10 by which  cdigits  has  to  be  multiplied  to  get  the
  absolute value of the result.  The cexp argument is the address of a
  signed longword integer containing this exponent.

  cdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: write only
  mechanism: by descriptor

  Result's numeric string.  The cdigits argument is the address  of  a
  descriptor pointing to the numeric string of the result.  The string
  will be an unsigned decimal number.

STR$POSITION

  The Return Relative Position of Substring routine searches  for  the
  first  occurrence  of a single substring within a source string.  If
  STR$POSITION finds the substring, it returns the  relative  position
  of  that  substring.   If  the  substring is not found, STR$POSITION
  returns a zero.

     Format:

       STR$POSITION  source-string ,sub-string [,start-position]

     Arguments:

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string within which STR$POSITION searches for the  substring.
  The  source-string  argument is the address of a descriptor pointing
  to the source string.

  sub-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Substring for which STR$POSITION searches.  The sub-string  argument
  is the address of a descriptor pointing to the substring.

  start-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Relative position in the source string at which STR$POSITION  begins
  the  search.  The start-position argument is the address of a signed
  longword integer containing the starting position.  Although this is
  an  optional argument, it is required if you are using the JSB entry
  point.

STR$POS_EXTR

  The Extract a Substring of a String routine copies a substring of  a
  source string into a destination string.

     Format:

       STR$POS_EXTR  destination-string ,source-string ,start-position
                  ,end-position

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which  STR$POS_EXTR  copies  the  substring.
  The  destination-string  argument  is  the  address  of a descriptor
  pointing to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string from which STR$POS_EXTR extracts the substring that it
  copies  into  the destination string.  The source-string argument is
  the address of a descriptor pointing to the source string.

  start-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Relative position in the source string at which the  substring  that
  STR$POS_EXTR  copies  starts.   The  start-position  argument is the
  address  of  a  signed  longword  integer  containing  the  starting
  position.

  end-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Relative position in the source string at which the  substring  that
  STR$POS_EXTR  copies ends.  The end-position argument is the address
  of a signed longword integer containing the ending position.

STR$PREFIX

  The Prefix a String routine inserts a source string at the beginning
  of  a destination string.  The destination string must be dynamic or
  varying.

     Format:

       STR$PREFIX  destination-string ,source-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string  (dynamic  or  varying);  STR$PREFIX  copies  the
  source  string  into  the beginning of this destination string.  The
  destination-string argument is the address of a descriptor  pointing
  to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string which STR$PREFIX copies  into  the  beginning  of  the
  destination  string.  The source-string argument is the address of a
  descriptor pointing to the source string.

STR$RECIP

  The Reciprocal of a Decimal String routine takes the  reciprocal  of
  the  first  decimal  string  to the precision limit specified by the
  second decimal string and returns the result as a decimal string.

     Format:

       STR$RECIP  asign ,aexp ,adigits ,bsign ,bexp ,bdigits
                  ,csign ,cexp ,cdigits

     Arguments:

  asign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the first operand.  The asign argument is the address of  an
  unsigned  longword  containing  the  first  operand's sign.  Zero is
  considered positive; 1 is considered negative.

  aexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  adigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  first  operand.   The aexp argument is the
  address of a signed longword integer containing this exponent.

  adigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  First operand's numeric string.  The adigits argument is the address
  of a descriptor pointing to the first operand's numeric string.  The
  string must be an unsigned decimal number.

  bsign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the second operand.  The bsign argument is the address of an
  unsigned  longword  containing the sign of the second operand.  Zero
  is considered positive; 1 is considered negative.

  bexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  bdigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  second  operand.  The bexp argument is the
  address of a signed longword integer containing this exponent.

  bdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  Second operand's  numeric  string.   The  bdigits  argument  is  the
  address  of  a  descriptor  pointing to the second operand's numeric
  string.  The string must be an unsigned decimal number.

  csign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Sign of the result.   The  csign  argument  is  the  address  of  an
  unsigned  longword  integer  containing  the result's sign.  Zero is
  considered positive; 1 is considered negative.

  cexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Power of 10 by which  cdigits  has  to  be  multiplied  to  get  the
  absolute value of the result.  The cexp argument is the address of a
  signed longword integer containing this exponent.

  cdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: write only
  mechanism: by descriptor

  Result's numeric string.  The cdigits argument is the address  of  a
  descriptor pointing to the result's numeric string.  The string will
  be an unsigned decimal number.

STR$REPLACE

  The Replace  a  Substring  routine  copies  a  source  string  to  a
  destination  string,  replacing  part  of  the  string  with another
  string.  The substring to be replaced is specified by  its  starting
  and ending positions.

     Format:

       STR$REPLACE  destination-string ,source-string ,start-position
                  ,end-position ,replacement-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which  STR$REPLACE  writes  the  new  string
  created  when  it  replaces  the  substring.  The destination-string
  argument is the address of a descriptor pointing to the  destination
  string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string.  The source-string  argument  is  the  address  of  a
  descriptor pointing to the source string.

  start-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Position  in  the  source  string  at  which  the  substring   which
  STR$REPLACE  replaces  begins.   The  start-position argument is the
  address  of  a  signed  longword  integer  containing  the  starting
  position.   The  position  is  relative  to  the start of the source
  string.

  end-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Position  in  the  source  string  at  which  the  substring   which
  STR$REPLACE replaces ends.  The end-position argument is the address
  of a signed longword integer containing the  ending  position.   The
  position is relative to the start of the source string.

  replacement-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Replacement string with which STR$REPLACE  replaces  the  substring.
  The  replacement-string  argument  is  the  address  of a descriptor
  pointing to this replacement string.

STR$RIGHT

  The Extract a Substring of a String routine copies a substring of  a
  source string into a destination string.

     Format:

       STR$RIGHT  destination-string ,source-string ,start-position

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$RIGHT copies the  substring.   The
  destination-string  argument is the address of a descriptor pointing
  to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string from which STR$RIGHT extracts the  substring  that  it
  copies  into  the destination string.  The source-string argument is
  the address of a descriptor pointing to the source string.

  start-position

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference for CALL entry point,
             by value for JSB entry point

  Relative position in the source string at which the  substring  that
  STR$RIGHT copies starts.  The start-position argument is the address
  of a signed longword integer containing the starting position.

STR$ROUND

  The Round or Truncate a Decimal String routine rounds or truncates a
  decimal  string  to  a  specified  number  of significant digits and
  places the result in another decimal string.

     Format:

       STR$ROUND  places ,flags ,asign ,aexp ,adigits
                  ,csign ,cexp ,cdigits

     Arguments:

  places

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Maximum number of decimal  digits  that  STR$ROUND  retains  in  the
  result.   The  places  argument  is the address of a signed longword
  integer containing the number of decimal digits.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Function flag.  Zero indicates that the decimal string is rounded; 1
  indicates  that  it is truncated.  The flags argument is the address
  of an unsigned longword containing this function flag.

  asign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Sign of the first operand.  The asign argument is the address of  an
  unsigned  longword  string  containing  this  sign.  A value of zero
  indicates that the number is positive, while a value of 1  indicates
  that the number is negative.

  aexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: read only
  mechanism: by reference

  Power of 10 by which  adigits  has  to  be  multiplied  to  get  the
  absolute  value  of  the  first  operand.   The aexp argument is the
  address of a signed longword integer containing this exponent.

  adigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: read only
  mechanism: by descriptor

  First operand's numeric string.  The adigits argument is the address
  of a descriptor pointing to this numeric string.  The string must be
  an unsigned decimal number.

  csign

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Sign of the result.   The  csign  argument  is  the  address  of  an
  unsigned  longword integer containing the result's sign.  A value of
  zero indicates that the number is  positive,  while  a  value  of  1
  indicates that the number is negative.

  cexp

  VMS usage: longword_signed
  type: longword integer (signed)
  access: write only
  mechanism: by reference

  Power of 10 by which  cdigits  has  to  be  multiplied  to  get  the
  absolute value of the result.  The cexp argument is the address of a
  signed longword integer containing this exponent.

  cdigits

  VMS usage: char_string
  type: numeric string, unsigned
  access: write only
  mechanism: by descriptor

  Result's numeric string.  The cdigits argument is the address  of  a
  descriptor  pointing  to this numeric string.  The string will be an
  unsigned decimal number.

STR$TRANSLATE

  The Translate Matched Characters routine successively compares  each
  character  in  a  source string to all characters in a match string.
  If a source character has a  match,  the  destination  character  is
  taken from the translate string.  Otherwise, STR$TRANSLATE moves the
  source character to the destination string.

     Format:

       STR$TRANSLATE  destination-string ,source-string
                  ,translation-string ,match-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string.  The destination-string argument is the  address
  of a descriptor pointing to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source string.  The source-string  argument  is  the  address  of  a
  descriptor pointing to the source string.

  translation-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Translate string.  The translation-string argument is the address of
  a descriptor pointing to the translate string.

  match-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Match string.   The  match-string  argument  is  the  address  of  a
  descriptor pointing to the match string.

STR$TRIM

  The Trim Trailing Blanks and Tabs routine copies a source string  to
  a  destination  string  and  deletes  the  trailing  blank  and  tab
  characters.

     Format:

       STR$TRIM  destination-string ,source-string [,resultant-length]

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$TRIM copies  the  trimmed  string.
  The  destination-string  argument  is  the  address  of a descriptor
  pointing to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source  string  which  STR$TRIM  trims  and  then  copies  into  the
  destination  string.  The source-string argument is the address of a
  descriptor pointing to the source string.

  resultant-length

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of bytes that STR$TRIM has written  into  destination-string,
  not  counting  padding  in  the  case of a fixed-length string.  The
  resultant-length argument is the address of an  unsigned  word  into
  which STR$TRIM writes the length of the output string.  If the input
  string is truncated to the size specified in the  destination-string
  description,  resultant-length  is  set  to  this  size.  Therefore,
  resultant-length can always be used by the calling program to access
  a valid substring of destination-string.

STR$UPCASE

  The Convert String to All Uppercase Characters  routine  converts  a
  source  string to uppercase and writes the converted string into the
  destination string.  When you need  to  compare  characters  without
  regard  to  case,  you  can  first  use  STR$UPCASE  to convert both
  characters to uppercase.  STR$UPCASE converts all characters in  the
  multinational character set.

     Format:

       STR$UPCASE  destination-string ,source-string

     Arguments:

  destination-string

  VMS usage: char_string
  type: character string
  access: write only
  mechanism: by descriptor

  Destination string into which STR$UPCASE writes the  string  it  has
  converted  to  uppercase.   The  destination-string  argument is the
  address of a descriptor pointing to the destination string.

  source-string

  VMS usage: char_string
  type: character string
  access: read only
  mechanism: by descriptor

  Source  string  that  STR$UPCASE   converts   to   uppercase.    The
  source-string  argument  is  the address of a descriptor pointing to
  the source string.

Specify

 This help category contains information on the syntax of various
 entities used in DCL.

Additional information available:

UIC

Date TimeExpressionFile SpecIntegerPrivilegeProtectionString
Symbol

Date Time

 When a command requires a qualifier  that specifies a date/time
 value, the value is either an absolute time, a delta time, or a
 combination of the two.

Additional information available:

AbsoluteCombinationDelta

Absolute

 Absolute time is a specific date and/or time of day.
 An absolute date/time has one of the following formats:

     [dd-mmm-yyyy[:]][hh:mm:ss.cc]
     TODAY
     YESTERDAY
     TOMORROW

 If you  specify both the date and the time, the intervening colon
 is required.  You can omit any of the trailing fields in the date
 or time.  You can  omit any  of the  fields in  the middle of the
 format as long as you specify the punctuation marks.

Combination

 Combination time consists of an absolute time value plus or minus
 a delta time value.
 A combination time has the following format:

     "[absolute time][+delta time]"
      [absolute time][-delta time]

 You can omit the absolute time value. If you do, the  delta  time
 is offset from the current date and time. Whenever  a  plus  sign
 (+) precedes the  delta  time  value,  enclose  the  entire  time
 specification in quotes.

Delta

 Delta time is an offset from the current time to a  time  in  the
 future.  A delta time has the following format:

     [dddd-] [hh:mm:ss.cc]

 You can truncate delta time on the right.  You can also omit  any
 of the fields in the middle of the format as long as you  specify
 the punctuation marks.

Expression

 When DCL  evaluates an expression, it determines a value based on
 the operations specified in  the expression.  The value can be an
 integer or a character string.

 Some expression operators are  conventional mathematical symbols,
 for  example,   plus  sign  (+).   Others  specify   logical  and
 comparison  operations,  and  consist of  letters  surrounded  by
 periods, for example, .EQS.  Operators  are assigned a precedence
 which  determines  their order  of evaluation.   Parentheses  may
 always be used to override this order.

Additional information available:

ArithmeticString

Arithmetic

 The operator with the highest  precedence  in  an  expression  is
 evaluated first. Following this, the  next  highest  operator  is
 evaluated, and so on.  Operators with  the  same  precedence  are
 evaluated from left to right, as they appear in the expression.

     Operator   Precedence    Description

     *          6             Arithmetic times
     /          6             Arithmetic divide
     +          5             Arithmetic plus
     -          5             Arithmetic minus
     .EQ.       4             Arithmetic equal
     .GE.       4             Arithmetic greater than or equal
     .GT.       4             Arithmetic greater than
     .LE.       4             Arithmetic less than or equal
     .LT.       4             Arithmetic less than
     .NE.       4             Arithmetic not equal
     .NOT.      3             Logical NOT
     .AND.      2             Logical AND
     .OR.       1             Logical OR

String

 The operator with the highest  precedence  in  an  expression  is
 evaluated first. Following this, the  next  highest  operator  is
 evaluated, and so on.  Operators with  the  same  precedence  are
 evaluated from left to right, as they appear in the expression.

     Operator   Precedence    Description

     +          5             String concatenation
     -          5             String reduction
     .EQS.      4             String equal
     .GES.      4             String greater than or equal
     .GTS.      4             String greater than
     .LES.      4             String less than or equal
     .LTS.      4             String less than
     .NES.      4             String not equal

File Spec

 File  specifications  provide  the  system  with  the information
 necessary  to identify  a unique file or device.  A file spec has
 the following format:

     node::device:[directory]filename.type;version

 The punctuation marks are  required to separate the fields of the
 file spec.  These fields are:

     node          Network node name
     device        Device name
     directory     Directory name
     filename      File name
     type          File type
     version       File version number

Integer

 DCL treats all numeric values as integers.  If you do not specify
 an explicit  radix, numeric  values  are interpreted  as decimal.
 You may specify an explicit radix as follows:

     %D1000     decimal radix
     %O1357     octal radix
     %X12AF     hexadecimal radix

 No blanks are allowed between the radix symbol and the number.

Privilege

 Your set of privileges affects the system resources and system functions
 you are allowed to use.

Additional information available:

ACNTALLALLSPOOLALTPRIBUGCHKBYPASSCMEXEC
CMKRNLDETACHDIAGNOSEEXQUOTAGROUPGRPNAMGRPPRV
LOG_IOMOUNTNETMBXOPERPFNMAPPHY_IOPRMCEB
PRMGBLPRMMBXPSWAPMREADALLSECURITYSETPRVSHARE
SHMEMSYSGBLSYSLCKSYSNAMSYSPRVTMPMBXVOLPRO
WORLD

ACNT

 Create a process for which no accounting is performed.

ALL

 All privileges.

ALLSPOOL

 Allocate spooled devices.

ALTPRI

 Increase the base execution priority for any process.

BUGCHK

 Make bug check error log entries.

BYPASS

 Access resources without regard to UIC protection.

CMEXEC

 Change mode to Executive.

CMKRNL

 Change mode to Kernel.

DETACH

 Create detached processes.

DIAGNOSE

 Issue diagnostic I/O requests.

EXQUOTA

 Exceed resource quotas.

GROUP

 Control execution of other processes in the same group.

GRPNAM

 Enter names in the group logical name table.

GRPPRV

 Allow access to files in group along with the system category.

LOG_IO

 Issue logical I/O requests.

MOUNT

 Issue mount volume I/O requests.

NETMBX

 Create a network device.

OPER

 Perform system operator functions.

PFNMAP

 Create or delete sections mapped by page frame.

PHY_IO

 Issue physical I/O requests.

PRMCEB

 Create permanent common event flag clusters.

PRMGBL

 Create permanent global clusters.

PRMMBX

 Create permanent mailbox devices.

PSWAPM

 Change process swap mode.

READALL

 Bypass restrictions otherwise preventing process from reading a file.

SECURITY

 Perform security-related functions.

SETPRV

 Grant a process any privilege.

SHARE

 Assign a channel to a device.

SHMEM

 Create or delete data structures in shared memory.

SYSGBL

 Create system global sections.

SYSLCK

 Request locks on system resources.

SYSNAM

 Enter names in the system logical name table.

SYSPRV

 Access resources as if the process has a system UIC.

TMPMBX

 Create temporary mailbox devices.

VOLPRO

 Override protection on a volume.

WORLD

 Control the execute of any process on the system.

Protection

 Volume and file protection is specified as follows:

     (SYSTEM:rwed,OWNER:rwed,GROUP:rwed,WORLD:rwed)

 There  are  four  categories  of  protection,   one  for   system
 processes, one  for the  owner of the file, one for other members
 of the owner's  group, and one  for members of other groups.  For
 each category,  any combination of four different types of access
 may be specified:

     R - read access
     W - write access
     E - execute access (for execution of images)
     D - delete access

 If  you want  to deny all  access to a category, you must specify
 the category name without a colon, for example:

     /PROTECTION=(OWNER:RWE,GROUP,WORLD)

String

 A  character  string  value  is  represented  as  a  sequence  of
 characters enclosed in quotation marks (").   A quotation mark in
 a character string must be represented by two quotation marks.

 In certain contexts, the quotation marks are optional.

Symbol

 A symbol is an entity which has a name and a value.  The name can
 consist of the  letters, digits,  underscore  (_) and dollar sign
 ($).  It can be composed  of up  to 255 characters.  The value of
 the symbol can be a 32-bit integer or  a string  of  between zero
 and 255 characters.

 Symbols  are defined  in DCL with the assignment statement.  This
 is described under the HELP SYMBOL_ASSIGN.

UIC

 A UIC is a User Identification Code and can be in either numeric or
 named format.  When a DCL command requires a UIC specification, you
 can specify either format.  However, the system converts all UIC's
 to numeric format when determining a user's access to a data resource.

 A UIC in numeric format consists of a group number and a member number
 in the format:

   [group,member]

 where:

      group    is an octal  number  in  the  range 0 through  37776
               representing the group number.

      member   is an octal  number  in  the  range 0 through  37776
               representing the member number.

 The square brackets are required in the UIC specification.  You may also
 omit leading zeros when specifying group and member numbers.

 A UIC in named format consists of a member identifier and, optionally, a
 group identifier, as shown below:

   [member]

   [group,member]

 The group and member identifiers can each contain up to 31 alphanumeric
 characters and must contain at least one alphabetic character.  The names
 can include the characters A through Z, dollar signs ($) and underscores
 (_), and the numbers 0 through 9.  The brackets are required in the UIC
 specification.

 The member number is unique for each for each user on the system, and is
 equivalent to the user's numeric UIC (including both the group and the
 member numbers).  The group identifier is equivalent to only the group
 portion of the UIC.

Symbol Assign

  Defines a symbolic name for a character string or integer value.

  Format:

    symbol-name =[=] expression

  symbol-name[bit-position,size] =[=] replacement-expression

Additional information available:

ParametersExamplesString Assign

Parameters

 symbol-name

  Defines a 1- through 255-character alphanumeric string name for  the
  symbol.   The  symbol  name  must begin with an alphabetic character
  (uppercase and lowercase characters are equivalent), an  underscore,
  or  a  dollar sign.  After the first character, the name can contain
  any alphanumeric characters from  the  DEC  multinational  character
  set, underscores, or dollar signs.

  If you specify a single equal sign (=) in the assignment  statement,
  the  symbol name is placed in the local symbol table for the current
  command level.

  If you specify double equal signs (==) in the assignment  statement,
  the symbol name is placed in the global symbol table.

 expression

  Specifies  the  value  on  the  right-hand  side  of  an  assignment
  statement.   An  expression can consist of a character string value,
  an  integer  value,  a  symbol  name,  a  lexical  function,  or   a
  combination  of these entities.  The components of an expression are
  evaluated, and the result is assigned to a symbol.

  All literal character strings must be enclosed in  quotation  marks.
  If  you  specify  an  expression  containing  a  symbol, the command
  interpreter uses the symbol's value in evaluating the expression.

  The result of expression evaluation is either a character string  or
  an  integer  value.   The data type of a symbol is determined by the
  data type of the expression.   If  the  expression  evaluates  to  a
  string,  the  symbol  is assigned a string value.  If the expression
  evaluates to an integer, the symbol is assigned an integer value.

  For a summary of operators used in expressions, details  on  how  to
  specify  expressions,  and details on how expressions are evaluated,
  see the VMS DCL Concepts Manual.

  DCL uses a buffer that is 1024 bytes  long  to  hold  an  assignment
  statement, and to evaluate the expression.  The length of the symbol
  name, the  expression,  and  the  expression's  calculations  cannot
  exceed 1024 bytes.

 [bit-position,size]

  Specifies that a binary overlay is to be  inserted  in  the  current
  32-bit  value  of  a symbol-name.  This type of assignment statement
  evaluates the current value of  the  symbol-name  and  replaces  the
  specified    number    of    bits    with    the   result   of   the
  replacement-expression.

  The bit-position is the location relative to  bit  0  at  which  the
  overlay  is  to  occur.  If the symbol that you are overlaying is an
  integer, then the bit position must be less than 32.  Also, the  sum
  of the bit position and the size must be less than or equal to 32.

  If the symbol you are overlaying is a string, then the bit  position
  must be less than 6152.  Because each character is represented using
  8 bits, you can begin an overlay at any character through the 768th.
  (The  768th  character  starts in bit position 6144.) The sum of the
  bit position and the size must be less than or equal to 6152.

  The size is the number of bits to be overlaid.   If  you  specify  a
  size that is greater than 32, then DCL reduces the size to 32.

  The square brackets are required notation;  no  spaces  are  allowed
  between  the  symbol  name and the left bracket.  Specify values for
  bit-position and size as integer expressions.

 replacement-expression

  Specifies the value that is used  to  overlay  the  symbol  you  are
  modifying.    Specify   the  replacement-expression  as  an  integer
  expression.

  If   the   symbol   you   are   modifying   is   an   integer,   the
  replacement-expression  defines  a  bit pattern which is overlaid on
  the value assigned to the symbol.  If the symbol you  are  modifying
  is  a  character  string,  the  result of the replacement-expression
  defines a bit pattern which is overlaid on the specified bits of the
  character string.  If the symbol you are modifying is undefined, the
  result of the replacement-expression is overlaid on a null string.

Examples

  1.   $ LIST == "DIRECTORY"
       $ TIME == "SHOW TIME"
       $ QP == "SHOW QUEUE/DEVICE"
       $ SS == "SHOW SYMBOL"

  The file  SYNONYM.COM  contains  the  assignment  statements  shown;
  these  are user-defined synonyms for commands.  Execute this command
  procedure as follows:

       $ @SYNONYM

  After the command procedure creates the global  symbol  definitions,
  you   can  use  these  synonyms  (LIST,  TIME,  QP,and  SS)  at  the
  interactive command level.  Note that the  assignments  are  global;
  otherwise,  the  symbol names would have been deleted after the file
  SYNONYM.COM completed execution.

  2.   $ COUNT = 0
       $ LOOP:
       $      COUNT = COUNT + 1
               .
               .
               .

       $      IF COUNT .LT.5 THEN GOTO LOOP

  The symbol COUNT is initially assigned a numeric value of 0;  a loop
  is  established  to  increment the value of COUNT by 1 each time the
  loop is entered.  Note that when the symbol name  COUNT  appears  on
  the  right-hand  side  of  an  arithmetic  assignment statement, the
  command interpreter automatically substitutes its current value.

  The IF command tests the value of COUNT;  if it is less than 5,  the
  procedure  branches to the label LOOP and the statements between the
  label LOOP through the IF command  are  executed  again.   When  the
  value  of the symbol count reaches 5, the loop is not executed again
  and the command following the IF command is executed.

  3.   $ A = 25
       $ CODE = 4 + F$INTEGER("6") - A
       $ SHOW SYMBOL CODE
         CODE = -15   HEX = FFFFFFF1   Octal = 1777761

  This  example  contains  two  assignment  statements.    The   first
  statement  assigns  the  value  25  to  the  symbol  A.   The second
  assignment statement evaluates an expression containing  an  integer
  (4),  a  lexical  function  (F$INTEGER("6")), and the symbol A.  The
  result of the expression, -15, is assigned to the symbol CODE.

String Assign

  Defines a symbolic name for a character string value.

  Format:

    symbol-name :=[=] string

  symbol-name[offset,size] :=[=] replacement-string

Additional information available:

ParametersExamples

Parameters

 symbol-name

  Defines a 1- through 255-character string name for the symbol.   The
  symbol  name  must begin with an alphabetic character (uppercase and
  lowercase characters are equivalent), an  underscore,  or  a  dollar
  sign.    After  the  first  character,  the  name  can  contain  any
  alphanumeric characters from the DEC  Multinational  Character  Set,
  underscores, or dollar signs.

  If you specify a single equal sign (:=) in the assignment statement,
  the  symbol name is placed in the local symbol table for the current
  command level.

  If you specify double equal signs (:==) in the assignment statement,
  the symbol name is placed in the global symbol table.

 string

  Specifies a character string value to be equated to the symbol.  The
  string can contain any alphanumeric or special characters.  DCL uses
  a buffer that is  1024  bytes  long  to  hold  a  string  assignment
  statement, Therefore, the length of the symbol name, the string, and
  any  symbol  substitution  within  the  string  cannot  exceed  1024
  characters.

  With the := string assignment statement, you do not need to  enclose
  a   string   literal   in   quotation   marks.   String  values  are
  automatically  converted  to  uppercase.   Also,  any  leading   and
  trailing  spaces  and tabs are removed, and multiple spaces and tabs
  between characters are compressed to a single space.

  Note that, in general, it is easier to use the assignment  statement
  (=)  to create symbols with string values.  The assignment statement
  does not automatically capitalize and remove  extra  spaces.   Also,
  the assignment  statement  allows  you  to perform string operations
  in expressions.

  If you want to prohibit uppercase  conversion  and  retain  required
  space and tab characters in a string, you must place quotation marks
  around the string.  To use quotation marks in a string, enclose  the
  entire  string  in quotation marks and use a double set of quotation
  marks within the string.  For example:

       $ TEST := "this     is a ""test"" string"
       $ SHOW SYMBOL TEST
         TEST = "this     is a "test" string"

  In this example, the spaces, lowercase letters, and quotation  marks
  are preserved in the symbol definition.

  You can continue a symbol assignment on more than one line by  using
  the hyphen as a continuation character.  For example:

       $ LONG_STRING := THIS_IS_A_VERY_LONG-
       _$ _SYMBOL_STRING

  To assign a null string to a  symbol  using  the  string  assignment
  statement, do not specify a string.  For example:

       $ NULL :=

  Specify the string as a string literal, or as a  symbol  or  lexical
  function which evaluates to a string literal.  If you use symbols or
  lexical functions, place apostrophes around them to  request  symbol
  substitution.

  You can also use the string assignment statement to define a foreign
  command.   See the VMS DCL Concepts Manual for more  information  on
  symbol substitution and foreign commands.

 [offset,size]

  Specifies that a portion of a symbol value is to be overlaid with  a
  replacement  string.   This  form of the string assignment statement
  evaluates the value assigned to a symbol-name and then replaces  the
  portion  of  the  value  (defined  by  the offset and size) with the
  replacement string.  The square brackets are required notation,  and
  no spaces are allowed between the symbol name and the left bracket.

  The  offset  specifies  the  character  position  relative  to   the
  beginning  of the symbol-name's string value at which replacement is
  to begin.  Offset values start at 0.

  If the offset is greater than the offset of the  last  character  in
  the string you are modifying, spaces are inserted between the end of
  the string and the offset where the  replacement  string  is  added.
  The maximum offset value you can specify is 768.

  The size specifies the number of characters to replace.  Size values
  start at 1.

  Specify the offset and size as  integer  expressions.   See the  VMS
  DCL Concepts Manual for more information on integer expressions. The
  value of the size plus  the offset must not exceed 769.

 replacement-string

  Specifies the string that is used to  overlay  the  string  you  are
  modifying.   If  the  replacement-string  is  shorter  than the size
  argument, the replacement string is blank-filled on the right  until
  it  equals  the specified size.  Then the replacement string is used
  to  overlay  the  string  assigned  to  the  symbol-name.   If   the
  replacement  string  is  longer  than  the  size  argument, then the
  replacement string is truncated on the right to the specified size.

  You can specify the replacement-string as a string literal, or as  a
  symbol  or lexical function which evaluates to a string literal.  If
  you use symbols or lexical functions, place apostrophes around  them
  to  request  symbol  substitution.   See the VMS DCL Concepts Manual
  for more information  on  symbol substitution.

Examples

  1.   $ TIME := SHOW TIME
       $ TIME
         15-APR-1987 11:55:44

  The symbol TIME is equated to the command string SHOW TIME.  Because
  the  symbol  name appears as the first word in a command string, the
  command interpreter automatically substitutes  it  with  its  string
  value and executes the command SHOW TIME.

  2.   $ STAT := $DBA1:[CRAMER]STAT
       $ STAT

  This example shows how to define STAT as  a  foreign  command.   The
  symbol  STAT  is  equated to a string that begins with a dollar sign
  followed by a file specification.  The command  interpreter  assumes
  that the file specification is that of an executable image, that is,
  a file with a file type of EXE.   Thus,  the  symbol  STAT  in  this
  example becomes a synonym for the command:

       $ RUN DBA1:[CRAMER]STAT.EXE

  When you subsequently type STAT, the  command  interpreter  executes
  the image.

  3.   $ A = "this is a big     space."
       $ SHOW SYMBOL A
         A = "this is a big     space."
       $ B := 'A'
       $ SHOW SYMBOL B
         B = "THIS IS A BIG SPACE."

  This example compares  the  assignment  and  the  string  assignment
  statements.  The symbol A is defined using the assignment statement,
  so lowercase letters and multiple spaces are retained.  The symbol B
  is  defined  using  the  string assignment statement.  Note that the
  apostrophes are required;  otherwise, the symbol name B  would  have
  been  equated  to  the  literal  string A.  However, when symbol A's
  value is  assigned  to  symbol  B,  the  letters  are  converted  to
  uppercase and multiple spaces are compressed.

System Services

  This help category provides an overview and the format  of  each  of
  the VMS system services.

Additional information available:

$ABORT_RU$ADD_HOLDER$ADD_IDENT$ADJSTK
$ADJWSL$ALLOC$ASCEFC$ASCTIM$ASCTOID$ASSIGN$BINTIM
$BRKTHRU$BRKTHRUW$CANCEL$CANEXH$CANTIM$CANWAK
$CHANGE_ACL$CHECK_ACCESS$CHKPRO$CLREF$CMEXEC
$CMKRNL$CNTREG$COMMIT_RU$CRELNM$CRELNT$CREMBX
$CREPRC$CREATE_RDB$CRETVA$CRMPSC$DACEFC$DALLOC
$DASSGN$DCLAST$DCLCMH$DCLEXH$DELLNM$DELMBX$DELPRC
$DELTVA$DEQ$DGBLSC$DISMOU$DLCEFC$END_RU$ENQ
$ENQW$ERAPAT$EXIT$EXPREG$FAO$FILESCAN$FIND_HELD
$FIND_HOLDER$FINISH_RDB$FORCEX$FORMAT_ACL
$GETDVI$GETDVIW$GETJPI$GETJPIW$GETLKI$GETLKIW$GETMSG
$GETQUI$GETQUIW$GETSYI$GETSYIW$GETTIM$GETUAI$GRANTID
$HIBER$IDTOASC$LCKPAG$LKWSET$MGBLSC$MOD_HOLDER
$MOD_IDENT$MOUNT$MTACCESS$NUMTIM$PARSE_ACL
$PREPARE_RU$PURGWS$PUTMSG$QIO$QIOW$READEF
$REM_HOLDER$REM_IDENT$RESUME$REVOKID$SCHDWK
$SETAST$SETEF$SETEXV$SETIME$SETIMR$SETPRA$SETPRI
$SETPRN$SETPRT$SETPRV$SETRWM$SETSFM$SETSSF$SETSTK
$SETSWM$SETUAI$SNDERR$SNDJBC$SNDJBCW$SNDOPR$START_RU
$SUSPND$SYNCHSYS$RMSRUNDWNSYS$SETDDIRSYS$SETDFPROT
$TRNLNM$ULKPAG$ULWSET$UNWIND$UPDSEC$UPDSECW$WAITFR
$WAKE$WFLAND$WFLOR

$ABORT_RU

  Applicable only if you have the RMS Journaling option.  See the VAX
  RMS Journaling Manual.

  The Abort Recovery Unit Service terminates the current recovery unit
  and restores all connected files to their states before the recovery
  unit was started, for an application using RMS Journaling. You can
  abort a recovery unit at any time after you invoke the $START_RU
  service and before you invoke the $END_RU or $COMMIT_RU service.
  Note that you can use the $ABORT_RU service after using the
  $PREPARE_RU service, as long as you have not issued a call to the
  $COMMIT_RU service.

  After you abort the recovery unit, all files that were connected to
  the recovery unit during $START_RU are available for further
  processing. Remember that the $ABORT_RU call restores only the
  records for those files that were marked for recovery unit journaling and
  connected to the current recovery unit.

     Format:

         SYS$ABORT_RU ru_handle

     Arguments:

         ru_handle

         VMS Usage: ru_handle
         type: longword (unsigned)
         access: read only
         mechanism: by reference

         The ru_handle argument is the address of an unsigned longword that
         contains the recovery unit handle returned by the $START_RU system
         service.

$ADD_HOLDER

  The Add Holder Record to Rights Database service adds the  specified
  holder record to the target identifier.

     Format:

       SYS$ADD_HOLDER  id ,holder ,[attrib]

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Target identifier granted to the specified holder  when  $ADD_HOLDER
  completes  execution.   The id argument is a longword containing the
  binary value of the target identifier.

  holder

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Holder identifier that is granted access to  the  target  identifier
  when  $ADD_HOLDER  completes  execution.  The holder argument is the
  address of a quadword data structure that  consists  of  a  longword
  containing  the  holder's  UIC  identifier  followed  by  a longword
  containing a value of zero.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Attributes to be placed in the holder record  when  the  $ADD_HOLDER
  completes execution.  The attrib argument is a longword containing a
  bitmask specifying the attributes.  A holder is granted a  specified
  attribute only if the target identifier has the attribute.

$ADD_IDENT

  The Add Identifier to Rights Database  service  adds  the  specified
  identifier to the rights database.

     Format:

       SYS$ADD_IDENT  name ,[id] ,[attrib] ,[resid]

     Arguments:

  name

  VMS usage: char-string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Identifier name to be added to the rights database  when  $ADD_IDENT
  completes  execution.   The  name  argument  is  the  address of the
  descriptor pointing to the identifier name string.

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Identifier to be created when $ADD_IDENT completes  execution.   The
  id  argument  is  a  longword  containing  the  binary  value of the
  identifier to be created.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Attributes  placed  in  the  identifier's  record  when   $ADD_IDENT
  completes execution.  The attrib argument is a longword containing a
  bitmask specifying the attributes.

  resid

  VMS usage: rights_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier value assigned by the system  when  $ADD_IDENT  completes
  execution.  The resid argument is the address of a longword in which
  the system-assigned identifier value is written.

$ADJSTK

  The Adjust Outer Mode  Stack  Pointer  service  modifies  the  stack
  pointer  for a less privileged access mode.  This service is used by
  the operating system to modify a stack pointer for a less privileged
  access mode after placing arguments on the stack.

     Format:

       SYS$ADJSTK  [acmode] ,[adjust] ,newadr

     Arguments:

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode for which the stack pointer  is  to  be  adjusted.   The
  acmode argument is this longword value.  If not specified, a default
  value of 0 (kernel access mode) is used.

  adjust

  VMS usage: word_signed
  type: word (signed)
  access: read only
  mechanism: by value

  Signed adjustment value to be used to modify the value specified  by
  the  newadr  argument.   The  adjust  argument is a signed longword,
  which is the adjustment value.

  newadr

  VMS usage: address
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Value that $ADJUST is to adjust.  The newadr argument is the address
  of  this  longword  value.   The value specified by this argument is
  both read and written by $ADJSTK.  $ADJSTK reads the value specified
  and  adjusts  it by the value of the adjust argument (if specified).
  After this adjustment is made, $ADJSTK  writes  the  adjusted  value
  back  into the longword specified by newadr and then loads the stack
  pointer with the adjusted value.

$ADJWSL

  The Adjust Working Set Limit service  adjusts  a  process's  current
  working  set  limit by the specified number of pages and returns the
  new value to the  caller.   The  working  set  limit  specifies  the
  maximum  number  of  process  pages that may be resident in physical
  memory.

     Format:

       SYS$ADJWSL  [pagcnt] ,[wsetlm]

     Arguments:

  pagcnt

  VMS usage: longword_signed
  type: longword (signed)
  access: read only
  mechanism: by value

  Signed adjustment value specifying the number of pages  to  add  (if
  positive)  or  subtract  (if  negative) from the current working set
  limit.  The pagcnt argument is this signed longword value.

  wsetlm

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Value of the working set limit, returned  by  $ADJWSL.   The  wsetlm
  argument is the address of this longword value.  The wsetlm argument
  specifies the newly adjusted value if pagcnt was specified,  and  it
  specifies the old, unadjusted value if pagcnt was not specified.

$ALLOC

  The Allocate Device service allocates a device for exclusive use  by
  a  process  and its subprocesses.  No other process can allocate the
  device or assign channels to it until the image that  called  $ALLOC
  exits  or  explicitly  deallocates  the  device  with the Deallocate
  Device ($DALLOC) service.

     Format:

       SYS$ALLOC  devnam ,[phylen] ,[phybuf] ,[acmode] ,[flags]

     Arguments:

  devnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Device name of the device to be allocated.  The devnam  argument  is
  the  address of a character string descriptor pointing to the device
  name string.

  phylen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Word into which $ALLOC writes the length of the device  name  string
  for  the device it has allocated.  The phylen is the address of this
  word.

  phybuf

  VMS usage: device_name
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Buffer into which $ALLOC writes  the  device  name  string  for  the
  device  it  has allocated.  The phybuf is the address of a character
  string descriptor pointing to this buffer.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the allocated device.  The  acmode
  argument is a longword containing the access mode.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Longword of status flags indicating whether to interpret the  devnam
  argument  as  type  of  the  device  to be allocated.  Only one flag
  exists, bit 0.  When it is set, the  $ALLOC  service  allocates  the
  first  available  device  having  the  type  specified in the devnam
  argument.

$ASCEFC

  The Associate Common Event  Flag  Cluster  service  causes  a  named
  common  event  flag  cluster to be associated with a process for the
  execution of the current image and to be  assigned  a  process-local
  cluster number for use with other event flag services.  If the named
  cluster does not exist but the process has suitable  privilege,  the
  service creates the cluster.

     Format:

       SYS$ASCEFC  efn ,name ,[prot] ,[perm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of any event flag contained within the desired  common  event
  flag  cluster.  The efn argument is a longword value specifying this
  number.

  name

  VMS usage: ef_cluster_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the common event flag cluster with which to associate.   The
  name  argument  is  the  address  of  a  character string descriptor
  pointing to this name string.

  prot

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Protection specifier that allows or disallows access to  the  common
  event  flag  cluster  by processes with the same UIC group number as
  the creating process.  The prot argument is a longword value,  which
  is interpreted as Boolean.

  perm

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Permanent specifier that marks a common event flag cluster as either
  permanent  or  temporary.   The  perm  argument is a longword value,
  which is interpreted as Boolean.

$ASCTIM

  The Convert Binary Time to ASCII String service converts an absolute
  or delta time from 64-bit system time format to an ASCII string.

     Format:

       SYS$ASCTIM  [timlen] ,timbuf ,[timadr] ,[cvtflg]

     Arguments:

  timlen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length (in bytes) of the ASCII  string  returned  by  $ASCTIM.   The
  timlen argument is the address of a word containing this length.

  timbuf

  VMS usage: time_name
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Buffer into which $ASCTIM  writes  the  ASCII  string.   The  timbuf
  argument is the address of a character string descriptor pointing to
  the buffer.

  timadr

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Time value that $ASCTIM is to convert.  The timadr argument  is  the
  address of this 64-bit time value.  A positive time value represents
  an absolute time.  A negative time value represents  a  delta  time.
  If a delta time is specified, it must be less than 10,000 days.

  cvtflg

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Conversion indicator specifying which date and time  fields  $ASCTIM
  should  return.   The  cvtflg argument is a longword value, which is
  interpreted as Boolean.  A value of 1 specifies that $ASCTIM  should
  return  only  the  hour,  minute,  second,  and  hundredth of second
  fields.  A value of 0 (the default) specifies  that  $ASCTIM  should
  return the full date and time.

$ASCTOID

  The Translate Identifier Name to Identifier service  translates  the
  specified identifier name into its binary identifier value.

     Format:

       SYS$ASCTOID  name ,[id] ,[attrib]

     Arguments:

  name

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Identifier name translated when $ASCTOID completes  execution.   The
  name  argument  is  the  address  of  a  descriptor  pointing to the
  identifier name.

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier value resulting when $ASCTOID completes  execution.   The
  id  argument  is  the  address of a longword in which the identifier
  value is written.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Attributes associated  with  the  identifier  returned  in  id  when
  $ASCTOID completes execution.  The attrib argument is the address of
  a longword containing a bitmask specifying the attributes.

$ASSIGN

  The Assign I/O Channel service (1) provides a process  with  an  I/O
  channel so that input/output operations can be performed on a device
  or (2) establishes a logical link with a remote node on a network.

     Format:

       SYS$ASSIGN  devnam ,chan ,[acmode] ,[mbxnam]

     Arguments:

  devnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the device to which $ASSIGN is to  assign  a  channel.   The
  devnam  argument  is  the  address  of a character string descriptor
  pointing to the device name string.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of the channel that is assigned.  The chan  argument  is  the
  address of a word into which $ASSIGN writes the channel number.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the channel.  The acmode  argument
  specifies  the access mode.  The most privileged access mode used is
  the access mode of the caller.  I/O operations on  the  channel  can
  only be performed from equal and more privileged access modes.

  mbxnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Logical name of the mailbox to be associated with the  device.   The
  mbxnam  argument  is  the  address  of a character string descriptor
  pointing to the logical name string.

$BINTIM

  The Convert ASCII String to Binary Time service  converts  an  ASCII
  string  to an absolute or delta time value in the system 64-bit time
  format suitable for input to the Set  Timer  ($SETIMR)  or  Schedule
  Wakeup ($SCHDWK) services.

     Format:

       SYS$BINTIM  timbuf ,timadr

     Arguments:

  timbuf

  VMS usage: time_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  The timbuf argument specifies the  address  of  a  character  string
  descriptor  pointing  to  the VMS time string.  The VMS time
  string specifies the absolute or  delta  time  to  be  converted  by
  $BINTIM.   The  VMS  Data  Type Table describes the VMS time
  string.

  timadr

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  The timadr  argument is the  address of  the  VMS  quadword  system
  time, which receives the converted time.

$BRKTHRU

  The Breakthrough service sends a message to one or more terminals.

  The $BRKTHRU service completes asynchronously; that is,  it  returns
  to  the  caller  after queueing the message request, without waiting
  for the message to be written to the specified terminal(s).

  For  synchronous  completion,  use   the   Breakthrough   and   Wait
  ($BRKTHRUW)  service.   The  $BRKTHRUW  service  is identical to the
  $BRKTHRU service in every way except that $BRKTHRUW returns  to  the
  caller after the message is written to the specified terminal(s).

  The $BRKTHRU service supersedes  the  Broadcast  ($BRDCST)  service.
  New  programs  should  be  written  using $BRKTHRU, and old programs
  using $BRDCST should be converted to use $BRKTHRU as convenient.

     Format:

       SYS$BRKTHRU  [efn] ,msgbuf [,sendto] [,sndtyp] [,iosb]
                  [,carcon] [,flags] [,reqid] [,timout] [,astadr]
                  [,astprm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set when the message has been written
  to  the  specified  terminal(s).   The  efn  argument  is a longword
  containing this number.

  msgbuf

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Message text to be sent to the specified  terminal(s).   The  msgbuf
  argument  is  the  address  of a descriptor pointing to this message
  text.

  sendto

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of a single device (terminal) or single username  to  which  to
  send  the  message.   The  sendto  argument  is  the  address  of  a
  descriptor pointing to this name.

  sndtyp

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Terminal type to which $BRKTHRU is to send the message.  The  sndtyp
  argument is a longword value specifying the terminal type.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block that is to receive  the  final  completion  status.
  The iosb is the address of this quadword block.

  carcon

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Carriage control specifier indicating the carriage control  sequence
  that   is   to  follow  the  message  that  $BRKTHRU  sends  to  the
  terminal(s).  The carcon  argument  is  a  longword  containing  the
  carriage control specifier.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Flag bit mask specifying options for the  $BRKTHRU  operation.   The
  flags  argument  is  a longword value that is the logical OR of each
  desired flag option.

  reqid

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Class requestor identification, which  identifies  to  $BRKTHRU  the
  application (or image) that is calling $BRKTHRU.  The reqid argument
  is this longword identification value.

  timout

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Timeout value, which is the  number  of  seconds  that  must  elapse
  before an attempted write by $BRKTHRU to a terminal is considered to
  have failed.   The  timout  argument  is  this  longword  value  (in
  seconds).

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be  executed  after  $BRKTHRU  has  sent  the
  message  to  the  specified terminal(s).  The astadr argument is the
  address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to  the  AST  routine  specified  by  the
  astadr  argument.   The  astprm  argument  specifies  this  longword
  parameter.

$BRKTHRUW

  The Breakthrough and Wait service sends a message  to  one  or  more
  terminals.

  The $BRKTHRUW service operates synchronously; that is, it returns to
  the  caller  after  the  message  has  been  sent  to  the specified
  terminal(s).

  For  asynchronous  operations,  use  the   Breakthrough   ($BRKTHRU)
  service;  $BRKTHRU  returns to the caller after queueing the message
  request, without waiting for the message to be delivered.

  In all other respects, $BRKTHRUW is identical to $BRKTHRU.  Refer to
  the  documentation  of  $BRKTHRU for all other information about the
  $BRKTHRUW service.

  The  $BRKTHRU  and  $BRKTHRUW  services  supersede   the   Broadcast
  ($BRDCST)  service.   New  code  should be written using $BRKTHRU or
  $BRKTHRUW, and old code using $BRDCST should  be  converted  to  use
  $BRKTHRU  or  $BRKTHRUW  as  convenient.  $BRDCST is now an obsolete
  system service and will no longer be enhanced.

     Format:

       SYS$BRKTHRUW  [efn] ,msgbuf [,sendto] [,sndtyp] [,iosb]
                  [,carcon] [,flags] [,reqid] [,timout] [,astadr]
                  [,astprm]

$CANCEL

  The Cancel I/O On Channel service cancels all pending  I/O  requests
  on  a specified channel.  In general, this includes all I/O requests
  that are queued as well as the request currently in progress.

     Format:

       SYS$CANCEL  chan

     ARGUMENT

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  I/O channel on which I/O is to be canceled.  The chan argument is  a
  longword containing the channel number.

$CANEXH

  The Cancel Exit Handler service deletes an exit control  block  from
  the  list  of  control  blocks  for  the  calling access mode.  Exit
  control blocks are declared by the Declare  Exit  Handler  ($DCLEXH)
  service  and  are  queued  according  to  access  mode  in a last-in
  first-out order.

     Format:

       SYS$CANEXH  [desblk]

     ARGUMENT

  desblk

  VMS usage: exit_handler_block
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Control block describing the  exit  handler  to  be  canceled.   The
  desblk  is  the  address  of  this  control block.  If desblk is not
  specified or is specified as 0, all exit control blocks are canceled
  for the current access mode.

$CANTIM

  The Cancel Timer Request service cancels all or a selected subset of
  the  Set  Timer  requests  previously  issued  by  the current image
  executing in a  process.   Cancellation  is  based  on  the  request
  identification  specified  in  the  Set Timer ($SETIMR) service.  If
  more  than  one  timer  request   was   given   the   same   request
  identification,  all  requests  with that request identification are
  canceled.

     Format:

       SYS$CANTIM  [reqidt] ,[acmode]

     Arguments:

  reqidt

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Request identification of the timer request(s) to be canceled.   The
  reqidt  argument  is  a longword containing this identification.  If
  reqidt is specified as 0  (the  default),  all  timer  requests  are
  canceled.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode of the request(s) to be canceled.  The  acmode  argument
  is a longword containing the access mode.

$CANWAK

  The Cancel Wakeup service removes all scheduled wake-up requests for
  a  process  from the timer queue, including those made by the caller
  or by other processes.  Scheduled wake-up requests are made with the
  Schedule Wakeup ($SCHDWK) service.

     Format:

       SYS$CANWAK  [pidadr] ,[prcnam]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process for which wakeups are to
  be canceled.  The pidadr is the address of a longword specifying the
  PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the process for which  wakeups  are  to  be  canceled.   The
  prcnam  argument  is  the  address  of a character string descriptor
  pointing to the process name string.

$CHANGE_ACL

  The Change Access  Control  List  service  creates  or  modifies  an
  object's access control list.

     Format:

       SYS$CHANGE_ACL  [chan] ,objtyp ,[objnam] ,itmlst ,[acmode]
                  ,[nullarg] ,[contxt] ,[nullarg] ,[nullarg]

     Arguments:

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of the I/O channel  assigned  to  the  object  whose  ACL  is
  modified when $CHANGE_ACL completes execution.  The chan argument is
  a  word  containing  the  number  of  the  channel.   If  objnam  is
  specified, chan must be omitted or specified as zero.

  objtyp

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Type of object whose ACL  is  modified  when  $CHANGE_ACL  completes
  execution.   The  objtyp  argument  is  the  address  of  a longword
  containing a value indicating whether the object  is  a  file  or  a
  device.   The  symbols  are  defined  in  the  system  macro library
  ($ACLDEF).

  objnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the object whose ACL is modified when $CHANGE_ACL  completes
  execution.   The  objnam  argument  is  the  address of a descriptor
  pointing to a character text  string  containing  the  name  of  the
  object.  The maximum length of objnam depends on the object.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Modifications to be made  to  the  ACL  when  $CHANGE_ACL  completes
  execution.   The itmlst argument is the address of a variable length
  data structure defining the changes to be made.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Access mode to use in checking file access protection.   The  acmode
  argument  is  the  address of a longword containing the access mode.
  Acmode defaults to kernel mode; however, the system compares  acmode
  against the caller's access mode and uses the least privileged mode.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

  contxt

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context value that points to an ACE.  The  contxt  argument  is  the
  address of a longword containing the context value.

$CHECK_ACCESS

  The  Check  Access  system  service  determines,  on  behalf  of   a
  third-party user, whether the user can access the object specified.

     Format:

       SYS$CHECK_ACCESS  objtyp ,objnam ,usrnam ,itmlst

     Arguments:

  objtyp

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Type of object being accessed.  The objtyp argument is  the  address
  of a longword containing a value specifying the type of object.  The
  symbols are defined in the system macro library ($ACLDEF).

  objnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the object being  accessed.   The  objnam  argument  is  the
  address  of  a  descriptor  pointing  to  a  character  text  string
  containing the name of the object.  The  maximum  length  of  objnam
  depends on the object.

  usrnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the user attempting access.   The  usrnam  argument  is  the
  address  of  a  descriptor  pointing  to  a  character  text  string
  containing the user name of the user attempting to  gain  access  to
  the specified object.  The user name string may contain a maximum of
  12 alphanumeric characters.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attributes  describing  how  the  object  is  to  be  accessed   and
  information  returned  after  $CHECK_ACCESS  performs the protection
  check (for instance, security alarm information).

$CHKPRO

  The Check Access Protection system  service  determines  whether  an
  accessor  with  the  specified  rights  and privileges can access an
  object with the specified attributes.

     Format:

       SYS$CHKPRO  itmlst

     Arguments:

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Protection attributes of the object and the rights and privileges of
  the accessor used when $CHKPRO determines if the accessor can access
  the object.  The itmlst argument is the address of an item  list  of
  descriptors  used to specify the protection attributes of the object
  and the rights and privileges of the accessor.

$CLREF

  The Clear Event Flag service clears (sets to 0) an event flag  in  a
  local or common event flag cluster.

     Format:

       SYS$CLREF  efn

     Argument

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be  cleared.   The  efn  argument  is  a
  longword containing this number.

$CMEXEC

  The Change to Executive Mode service changes the access mode of  the
  calling process to executive mode.  This service allows a process to
  change its access mode to executive, execute  a  specified  routine,
  and  then  return  to  the access mode in effect before the call was
  issued.

     Format:

       SYS$CMEXEC  routin ,[arglst]

     Arguments:

  routin

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by reference

  Routine to be executed while the process is in executive mode.   The
  routin argument is the address of the entry point to this routine.

  arglst

  VMS usage: arg_list
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Argument list to be passed to the routine specified  by  the  routin
  argument.  The arglst argument is the address of this argument list.

$CMKRNL

  The Change to Kernel Mode service changes the  access  mode  of  the
  calling  process  to  kernel mode.  This service allows a process to
  change its access mode to kernel, execute a specified  routine,  and
  then return to the access mode in effect before the call was issued.

     Format:

       SYS$CMKRNL  routin ,[arglst]

     Arguments:

  routin

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by reference

  Routine to be executed while the process is  in  kernel  mode.   The
  routin argument is the address of the entry point to this routine.

  arglst

  VMS usage: arg_list
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Argument list to be passed to the routine specified  by  the  routin
  argument.  The arglst argument is the address of this argument list.

$CNTREG

  The Contract Program/Control  Region  service  deletes  a  specified
  number  of  pages  from  the  current  end of the program or control
  region of a process's virtual  address  space.   The  deleted  pages
  become inaccessible, and references to them cause access violations.

     Format:

       SYS$CNTREG  pagcnt ,[retadr] ,[acmode] ,[region]

     Arguments:

  pagcnt

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of pages to be deleted from the current end of the program or
  control  region.   The pagcnt argument is a longword specifying this
  number.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting and ending pages of the deleted area.  The retadr  argument
  is  the  address  of  a  two-longword  array  to receive the virtual
  addresses of the starting page and ending page of the deleted area.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode of the owner of the pages to  be  deleted.   The  acmode
  argument is a longword containing the access mode.

  region

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Indicator specifying which region of memory (P0  or  P1)  is  to  be
  contracted.   The  region  argument  is  a  longword  containing the
  indicator.  A value of 0 (the default) indicates  that  the  program
  region  (P0  region) is to be contracted, and a value of 1 indicates
  that the control region (P1 region) is to be contracted.

$COMMIT_RU

  Applicable only if you have the RMS Journaling option.  See the VAX
  RMS Journaling Manual.

  The Commit Recovery Unit Service is used only after a call to the
  Prepare Recovery Unit Service in an application using RMS Journaling
  or after a call to the $END_RU service that has returned a status of
  RUF$_RUNOTCOM.  When you use $COMMIT_RU, the recovery unit is
  terminated, and the records that were modified within the recovery
  unit are available for further processing. If no processing takes
  place in your application between the $PREPARE_RU and $COMMIT_RU
  calls, you can replace these two calls with the single $END_RU call.

     Format:

         SYS$COMMIT_RU ru_handle

     Arguments:

         ru_handle

         VMS Usage: ru_handle
         type: longword (unsigned)
         access: read only
         mechanism: by reference

         The ru_handle argument is the address of an unsigned longword that
         contains the recovery unit handle returned by the $START_RU system
         service.

$CRELNM

  The Create Logical Name service creates a logical name and specifies
  its equivalence name(s).

     Format:

       SYS$CRELNM  [attr] ,tabnam ,lognam ,[acmode] ,[itmlst]

     Arguments:

  attr

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attributes to  be  associated  with  the  logical  name.   The  attr
  argument  is  the  address  of  a longword bit mask specifying these
  attributes.

  tabnam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the table in which to create the logical name.   The  tabnam
  argument  is  the address of a descriptor that points to the name of
  this table.  This argument is required.

  lognam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the logical name to be created.  The lognam argument is  the
  address  of  a  descriptor  that  points to the logical name string.
  Logical name strings of logical  names  created  within  either  the
  system  or  process  directory  table  must  consist of alphanumeric
  characters, dollar signs, and underscores; the maximum length is  31
  characters.   The  maximum  length  of  logical name strings created
  within other tables is 255 characters with no  restrictions  on  the
  types of characters that can be used.  This argument is required.

  acmode

  VMS usage: access_mode
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Access mode to be associated with  the  logical  name.   The  acmode
  argument is the address of a byte that specifies the access mode.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list describing the equivalence name(s) to be defined  for  the
  logical  name  and  information  to  be returned to the caller.  The
  itmlst argument is the address of a list of item  descriptors,  each
  of  which specifies information about an equivalence name.  The list
  of item descriptors is terminated by a longword of 0.  This argument
  is required.

$CRELNT

  The Create Logical Name Table service creates a  process-private  or
  shareable logical name table.

     Format:

       SYS$CRELNT  [attr] ,[resnam] ,[reslen] ,[quota]

                    ,[promsk] ,[tabnam] ,partab ,[acmode]

     Arguments:

  attr

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attributes to affect the creation of the logical name table  and  to
  be  associated  with the newly created logical name table.  The attr
  argument is the address of a  longword  bit  mask  specifying  these
  attributes.

  resnam

  VMS usage: logical_name
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the newly created logical name table, returned  by  $CRELNT.
  The  resnam argument is the address of a descriptor pointing to this
  name.  The name is a character string whose  maximum  length  is  31
  characters.

  reslen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length in bytes of the name of the newly created logical name table,
  returned  by  $CRELNT.  The reslen argument is the address of a word
  to receive this length.

  quota

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Maximum number of bytes of memory to be allocated for logical  names
  contained  in  this  logical  name table.  The quota argument is the
  address of a longword specifying this value.

  promsk

  VMS usage: file_protection
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Protection mask to be associated with the  newly  created  shareable
  logical  name  table.   The promsk argument is the address of a word
  that contains a value that represents four 4-bit fields, where  each
  field describes the type of access allowed for system, owner, group,
  and world users.

  tabnam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  The name of the new logical name table.  The tabnam argument is  the
  address  of  a  character  string  descriptor  pointing to this name
  string.  Table names are contained in either the process  or  system
  directory  table  (LNM$PROCESS_DIRECTORY  or  LNM$SYSTEM_DIRECTORY).
  Therefore table  names  must  consist  of  alphanumeric  characters,
  dollar signs, and underscores; the maximum length is 31 characters.

  partab

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Parent table  name.   The  partab  argument  is  the  address  of  a
  character  string descriptor pointing to this name string.  The only
  valid values for this argument are the names of the directory tables
  LNM$PROCESS_DIRECTORY  or LNM$SYSTEM_DIRECTORY.  SYSPRV privilege is
  required to specify the system directory table LNM$SYSTEM_DIRECTORY.
  This argument is required.

  acmode

  VMS usage: access_mode
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Access mode to be associated with the  newly  created  logical  name
  table.  The acmode argument is the address of a byte containing this
  access mode.  The $PSLDEF macro defines symbolic names for the  four
  access modes.

$CREMBX

  The Create Mailbox and Assign  Channel  service  creates  a  virtual
  mailbox  device  named MBAn:  and assigns an I/O channel to it.  The
  system provides the unit number, n, when it creates the mailbox.  If
  a  mailbox  with  the  specified  name  already  exists, the $CREMBX
  service assigns a channel to the existing mailbox.

     Format:

       SYS$CREMBX  [prmflg] ,chan ,[maxmsg] ,[bufquo] ,[promsk]
                  ,[acmode] ,[lognam]

     Arguments:

  prmflg

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Indicator specifying whether the created mailbox is to be  permanent
  or  temporary.   The  prmflg argument is a byte value.  A value of 1
  specifies a permanent mailbox; a value of 0, which is  the  default,
  specifies a temporary mailbox.  Any other values result in an error.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Channel number  assigned  by  $CREMBX  to  the  mailbox.   The  chan
  argument  is  the  address  of  a word into which $CREMBX writes the
  channel number.

  maxmsg

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Maximum size (in bytes) of  a  message  that  can  be  sent  to  the
  mailbox.   The  maxmsg  argument is a longword value containing this
  size.  If maxmsg is not specified or  is  specified  as  0,  VMS
  provides a default value.

  bufquo

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of bytes of system dynamic memory that can be used to  buffer
  messages  sent  to  the  mailbox.  The bufquo argument is a longword
  value containing this number.  If bufquo  is  not  specified  or  is
  specified as 0, VMS provides a default value.

  promsk

  VMS usage: file_protection
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Protection mask to be associated  with  the  created  mailbox.   The
  promsk  argument  is  a longword value that is the combined value of
  the bits set in the protection mask.  Cleared bits grant access  and
  set  bits  deny  access to each of the four classes of user:  world,
  group, owner, and  system.   The  following  diagram  depicts  these
  protection bits.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the channel to which  the  mailbox
  is  assigned.   The  acmode  argument  is  a longword containing the
  access mode.

  lognam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Logical name to be assigned to the mailbox.  The lognam argument  is
  the address of a character string descriptor pointing to the logical
  name string.

$CREPRC

  The Create Process service creates a subprocess or detached  process
  on behalf of the calling process.

     Format:

       SYS$CREPRC  [pidadr] ,[image] ,[input] ,[output] ,[error]
                  ,[prvadr] ,[quota] ,[prcnam] ,[baspri] ,[uic]
                  ,[mbxunt] ,[stsflg]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Process identification (PID) of  the  newly  created  process.   The
  pidadr  argument  is  the  address  of a longword into which $CREPRC
  writes the PID.

  image

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the image to be activated in the newly created process.  The
  image  argument  is  the  address  of  a character string descriptor
  pointing to the file specification of the image.

  input

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Equivalence name to be associated with the logical name SYS$INPUT in
  the  logical  name table of the created process.  The input argument
  is the address of a character  string  descriptor  pointing  to  the
  equivalence name string.

  output

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Equivalence name to be associated with the logical  name  SYS$OUTPUT
  in  the  logical  name  table  of  the  created process.  The output
  argument is the address of a character string descriptor pointing to
  the equivalence name string.

  error

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Equivalence name to be associated with the logical name SYS$ERROR in
  the  logical  name table of the created process.  The error argument
  is the address of a character  string  descriptor  pointing  to  the
  equivalence name string.

  prvadr

  VMS usage: mask_privileges
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Privileges to be given to the created process.  The prvadr  argument
  is the address of a quadword bit vector wherein each bit corresponds
  to a privilege; setting a bit gives the privilege.

  quota

  VMS usage: item_quota_list
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Process quotas to be established  for  the  created  process;  these
  quotas  limit  the  created  process's use of system resources.  The
  quota argument is the address of a list of quota descriptors,  where
  each  quota descriptor consists of a 1-byte quota name followed by a
  longword that specifies the desired value for that quota.  The  list
  of   quota   descriptors   is   terminated   by  the  symbolic  name
  PQL$_LISTEND.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name to be assigned to the created process.  The  prcnam  is
  the  address  of  a  character string descriptor pointing to a 1- to
  15-character process name string.

  baspri

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Base priority to be assigned to the  created  process.   The  baspri
  argument  is  a longword value in the range 0 to 31, where 31 is the
  highest possible priority and 0 is the  lowest.   Normal  priorities
  are  in  the range 0 through 15, and real-time priorities are in the
  range 16 through 31.

  uic

  VMS usage: uic
  type: longword (unsigned)
  access: read only
  mechanism: by value

  User identification  code  (UIC)  to  be  assigned  to  the  created
  process.  The uic argument is a longword value containing the UIC.

  mbxunt

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by value

  Unit number of a mailbox to receive a termination message  when  the
  created   process  is  deleted.   The  mbxunt  argument  is  a  word
  containing this number.

  stsflg

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Options selected for the created process.  The stsflg argument is  a
  longword  bit  vector  wherein a bit corresponds to an option.  Only
  bits 0 to 10 are used; bits 11 to 31 are reserved and must be 0.

$CREATE_RDB

  The Create Rights Database service initializes a rights database.

     Format:

       SYS$CREATE_RDB  [sysid]

     Arguments:

  sysid

  VMS usage: system_access_id
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  System identification value associated with the rights database when
  $CREATE_RDB  completes execution.  The sysid argument is the address
  of quadword containing the system identification value.  If sysid is
  omitted, the current system time in 64-bit format is used.

$CRETVA

  The Create Virtual Address Space service adds a range of demand-zero
  allocation  pages  to  a  process's  virtual  address  space for the
  execution of the current image.

     Format:

       SYS$CRETVA  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Address of a two-longword array containing the starting  and  ending
  virtual  addresses  of the pages to be created.  If the starting and
  ending virtual addresses are the same, a  single  page  is  created.
  Only  the  virtual  page  number portion of the virtual addresses is
  used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Address of a two-longword array to receive the starting  and  ending
  virtual addresses of the pages actually created.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode and protection for the new pages.  The  acmode  argument
  is a longword containing the access mode.

$CRMPSC

  The Create and Map Section service allows  a  process  to  associate
  (map) a section of its address space with (1) a specified section of
  a file  (a  disk  file  section)  or  (2)  with  specified  physical
  addresses represented by page frame numbers (a page frame section).

  This service also allows  the  process  to  create  either  type  of
  section,  and  to specify that that section be available only to the
  creating process (private section) or to all processes that  map  to
  it (global section).

     Format:

       SYS$CRMPSC  [inadr] ,[retadr] ,[acmode] ,[flags] ,[gsdnam]
                  ,[ident] ,[relpag] ,[chan] ,[pagcnt] ,[vbn] ,[prot]
                  ,[pfc]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses into which the section  is  to
  be  mapped.   The  inadr  is  the  address  of  a two-longword array
  containing, in order, the starting and the  ending  process  virtual
  addresses.   Only  the  virtual  page number portion of each virtual
  address is used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by
  reference--array reference or descriptor

  Starting and ending process virtual addresses into which the section
  was  actually  mapped  by  $CRMPSC.   The retadr is the address of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode that is to be the owner of the pages created during  the
  mapping.   The  acmode  argument is a longword containing the access
  mode.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Flag mask specifying the type of section to be created or mapped to,
  as  well  as  its characteristics.  The flags argument is a longword
  bit vector wherein each bit corresponds  to  a  flag.   The  $SECDEF
  macro  defines a symbolic name for each flag.  The flags argument is
  constructed by performing a logical OR operation on the symbol names
  for all desired flags.

  gsdnam

  VMS usage: section_name
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Name of the  global  section.   The  gsdnam  is  the  address  of  a
  character string descriptor pointing to this name string.

  ident

  VMS usage: section_id
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Identification value specifying  the  version  number  of  a  global
  section,  and,  for processes mapping to an existing global section,
  the criteria for matching the identification.  The ident argument is
  the address of a quadword structure containing three fields.

  relpag

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Relative page number within the global section of the first page  in
  the  section  to  be  mapped.   The  relpag  argument  is a longword
  containing this page number.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of the channel on which the file has been accessed.  The chan
  argument is a word containing this number.

  pagcnt

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of pages in the section.  The pagcnt argument is  a  longword
  containing this number.

  vbn

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Virtual block number in the file that marks  the  beginning  of  the
  section.  The vbn argument is a longword containing this number.  If
  vbn is not specified or is specified as 0 (the default), the section
  is created beginning with the first virtual block in the file.

  prot

  VMS usage: file_protection
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Numeric value representing the protection mask to be applied to  the
  global  section.   This  value  is  ORed  with  the  protection mask
  associated with the file; if the  file  protection  does  not  allow
  access  to  a  particular  category  of user and the protection mask
  allows access, access is denied.

  pfc

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Page fault cluster size.  If specified, the cluster  size  indicates
  how  many  pages  are  to  be  brought into memory when a page fault
  occurs for a single page.  This argument is not  used  for  physical
  page  frame  sections  or  for  global  sections in memory shared by
  multiple processors.

$DACEFC

  The Disassociate Common Event  Flag  Cluster  service  releases  the
  calling process's association with a common event flag cluster.

     Format:

       SYS$DACEFC  efn

     Argument

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of any event flag in the common cluster to be  disassociated.
  The  efn  argument is a longword containing this number.  The number
  must be in the range of 64 through 95 for cluster 2, and 96  through
  127 for cluster 3.

$DALLOC

  The Deallocate Device service  deallocates  a  previously  allocated
  device.   The  issuing  process  relinquishes  exclusive  use of the
  device thus allowing other processes  to  assign  or  allocate  that
  device.

     Format:

       SYS$DALLOC  [devnam] ,[acmode]

     Arguments:

  devnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the device to be deallocated.  The devnam  argument  is  the
  address of a character string descriptor pointing to the device name
  string.  The string may be  either  a  physical  device  name  or  a
  logical  name.   If  it  is  a  logical name, it must translate to a
  physical device name.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode on behalf of which the deallocation is to be  performed.
  The acmode argument is a longword containing the access mode.

$DASSGN

  The Deassign I/O Channel service deassigns (releases) an I/O channel
  that was acquired using the Assign I/O Channel ($ASSIGN) service.

     Format:

       SYS$DASSGN  chan

     Argument

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of the I/O channel to be deassigned.  The chan argument is  a
  word containing this number.

$DCLAST

  The Declare AST service queues an AST for the calling access mode or
  for a less privileged access mode.  For example, a routine executing
  in supervisor mode can declare an AST for either supervisor or  user
  mode.

     Format:

       SYS$DCLAST  astadr ,[astprm] ,[acmode]

     Arguments:

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack
  unwinding
  mechanism: by reference

  AST service routine to be executed.   The  astadr  argument  is  the
  address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to  the  AST  routine  specified  by  the
  astadr  argument.  The astprm argument is a longword containing this
  parameter.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode  for  which  the  AST  is  to  be  declared.   The  most
  privileged  access  mode used is the access mode of the caller.  The
  resultant mode is the access mode for which the AST is declared.

$DCLCMH

  The Declare  Change  Mode  or  Compatibility  Mode  Handler  service
  specifies  the  address  of  a routine to receive control when (1) a
  Change Mode to User or Change Mode to  Supervisor  instruction  trap
  occurs, or (2) a compatibility mode fault occurs.

     Format:

       SYS$DCLCMH  addres ,[prvhnd] ,[type]

     Arguments:

  addres

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  Routine  to  receive  control  when  a  change  mode   trap   or   a
  compatibility mode fault occurs.  The addres argument is the address
  of the entry mask to this routine.

  prvhnd

  VMS usage: address
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Address of a previously declared handler.  The  prvhnd  argument  is
  the  address  of a longword containing the address of the previously
  declared handler.

  type

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Handler type indicator.  The type argument is a longword value.  The
  value  0 (the default) indicates that a change mode handler is to be
  declared for the access mode at which the  request  is  issued;  the
  value  1  specifies  that  a  compatibility  mode  handler  is to be
  declared.

$DCLEXH

  The Declare Exit Handler service declares an exit  handling  routine
  that  will receive control when an image exits.  Image exit normally
  occurs when the image  currently  executing  in  a  process  returns
  control to the operating system.  Image exit may also occur when the
  Exit ($EXIT) or Force Exit ($FORCEX) services are called.

     Format:

       SYS$DCLEXH  desblk

     Argument

  desblk

  VMS usage: exit_handler_block
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Exit handler control block.  The  desblk  is  the  address  of  this
  control block.

$DELLNM

  The Delete Logical Name service deletes all logical names  with  the
  specified name at the specified access mode or outer access mode, or
  it deletes all the logical names with the specified access  mode  or
  outer  access mode in a specified table.  If any logical names being
  deleted are also the names of logical name tables, then all  of  the
  logical  names  contained  within  those  tables  and  all  of their
  subtables are also deleted.

     Format:

       SYS$DELLNM  tabnam ,[lognam] ,[acmode]

     Arguments:

  tabnam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Name of a logical name table or name of a list of tables in which to
  search  for  the  logical  name  that  is to be deleted.  The tabnam
  argument is the address of a descriptor that  points  to  the  table
  name.  This argument is required.

  lognam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Logical name to be deleted.  The lognam argument is the address of a
  descriptor that points to the logical name string.

  acmode

  VMS usage: access_mode
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Access mode to be used in the delete operation.  The acmode argument
  is  the  address of a byte containing this access mode.  The $PSLDEF
  macro defines symbolic names for the four access modes.

$DELMBX

  The Delete Mailbox service marks a permanent mailbox  for  deletion.
  The  actual  deletion  of  the mailbox and of its associated logical
  name assignment occur when no more I/O channels are assigned to  the
  mailbox.

     Format:

       SYS$DELMBX  chan

     Argument

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of the channel assigned to the mailbox that is to be deleted.
  The chan is a word containing this number.

$DELPRC

  The Delete Process service allows a  process  to  delete  itself  or
  another process.

     Format:

       SYS$DELPRC  [pidadr] ,[prcnam]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the  process  to  be  deleted.   The
  pidadr argument is the address of a longword that contains the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Process name of the process  to  be  deleted.   The  prcnam  is  the
  address  of  a  character  string  descriptor  pointing  to  a 1- to
  15-character process name string.

$DELTVA

  The  Delete  Virtual  Address  Space  service  deletes  a  range  of
  addresses  from  a process's virtual address space.  Upon successful
  completion of the service, the deleted pages are  inaccessible,  and
  references to them cause access violations.

     Format:

       SYS$DELTVA  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the pages  to  be  deleted.
  The   inadr   argument  is  the  address  of  a  two-longword  array
  containing, in order, the starting and the  ending  process  virtual
  addresses.   If  the  starting  and ending virtual addresses are the
  same, a single page  is  deleted.   Only  the  virtual  page  number
  portion  of  each  virtual address is used; the low-order 9 bits are
  ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting and ending process virtual  addresses  of  the  pages  that
  $DELTVA  has  actually  deleted.   The  retadr  is  the address of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode on behalf of which the service is to be performed.   The
  acmode argument is a longword containing the access mode.

$DEQ

  The Dequeue Lock Request service dequeues (unlocks)  granted  locks;
  dequeues  the  sublocks  of  a  lock;  or  cancels an ungranted lock
  request.  The calling process must have previously acquired the lock
  or  queued  the  lock  request  by  calling the Enqueue Lock Request
  ($ENQ) service.

  The $DEQ, $ENQ, $ENQW (Enqueue Lock Request and Wait),  and  $GETLKI
  (Get  Lock Information) services together provide the user interface
  to the VMS lock management facility.

     Format:

       SYS$DEQ  [lkid] [,valblk] [,acmode] [,flags]



     Arguments:

  lkid

  VMS usage: lock_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Lock identification of the lock to be dequeued.  The  lkid  argument
  specifies this lock identification.

  valblk

  VMS usage: lock_value_block
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Lock value block for the resource associated with  the  lock  to  be
  dequeued.   The  valblk  argument is the address of the 16-byte lock
  value block.  This argument is not used when the  LCK$M_DEQALL  flag
  is specified.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode of the lock to be dequeued.  The acmode  argument  is  a
  longword containing the access mode.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Flags specifying options for the $DEQ operation.  The flags argument
  is a longword bit mask that is the logical OR of each bit set, where
  each bit corresponds to an option.

$DGBLSC

  The Delete Global Section service marks an existing permanent global
  section  for  deletion.   The  actual deletion of the global section
  takes place when all processes that have mapped the  global  section
  have deleted the mapped pages.

     Format:

       SYS$DGBLSC  [flags] ,gsdnam ,[ident]

     Arguments:

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Mask indicating global section characteristics.  The flags  argument
  is  a  longword value.  A value of 0 (the default) specifies a group
  global section; a value of SEC$M_SYSGBL specifies  a  system  global
  section.

  gsdnam

  VMS usage: section_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the global section to be deleted.  The gsdnam is the address
  of a character string descriptor pointing to this name string.

  ident

  VMS usage: section_id
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Identification value specifying the version  number  of  the  global
  section  to be deleted and the matching criteria to be applied.  The
  ident argument is the address of  a  quadword  structure  containing
  three fields.

$DISMOU

  The Dismount Volume service dismounts a  mounted  volume  or  volume
  sets.

     Format:

       SYS$DISMOU  devnam ,[flags]

     Arguments:

  devnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Device name of the device to be dismounted.  The devnam argument  is
  the  address of a character string descriptor pointing to the device
  name string.  The string may be either a physical device name  or  a
  logical  name.   If  it  is  a  logical name, it must translate to a
  physical device name.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  A longword bit vector specifying options for the dismount operation.
  The flags argument is a longword bit vector wherein a bit, when set,
  selects the corresponding option.  Each bit  has  a  symbolic  name;
  these names are defined by the $DMTDEF macro.

$DLCEFC

  The Delete Common Event  Flag  Cluster  service  marks  a  permanent
  common  event  flag  cluster  for deletion.  The cluster is actually
  deleted when no more processes are associated with it.

     Format:

       SYS$DLCEFC  name

     Argument

  name

  VMS usage: ef_cluster_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the common event flag  cluster  to  be  deleted.   The  name
  argument is the address of a character string descriptor pointing to
  the name of the cluster.

$END_RU

  Applicable only if you have the RMS Journaling option.  See the VAX
  RMS Journaling Manual.

  The End Recovery Unit Service denotes the end of a recovery unit in
  applications that use RMS Journaling.  Use the $END_RU service when
  you reach the end of a transaction (or other logical point in the
  course of an application where data integrity would not be
  compromised in the event of a system crash). The $END_RU service is
  actually a combination of two other recovery unit services,
  $PREPARE_RU and $COMMIT_RU.  When you use $COMMIT_RU, the recovery
  unit is terminated, and the records that were modified within the
  recovery unit are available for further processing.

     Format:

         SYS$END_RU ru_handle

     Arguments:

         ru_handle

         VMS Usage: ru_handle
         type: longword (unsigned)
         access: read only
         mechanism: by reference

         The ru_handle argument is the address of an unsigned longword that
         contains the recovery unit handle returned by the $START_RU system
         service.

$ENQ

  The  Enqueue  Lock  Request  service  queues  a  new  lock  or  lock
  conversion on a resource.

  The $ENQ service completes asynchronously; that is,  it  returns  to
  the  caller after queueing the lock request, without waiting for the
  lock to be either granted or converted.

  For synchronous completion, use the Enqueue Lock  Request  and  Wait
  ($ENQW) service.  The $ENQW service is identical to the $ENQ service
  in every way except that $ENQW returns to the caller when  the  lock
  is either granted or converted.

  The $ENQ, $ENQW, $DEQ (Dequeue Lock Request), and $GETLKI (Get  Lock
  Information)  services  together  provide  the user interface to the
  VMS lock management facility.

     Format:

       SYS$ENQ  [efn] ,lkmode ,lksb [,flags] [,resnam]
                  [,parid] [,astadr] [,astprm] [,blkast]

                   [,acmode] [,nullarg]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set when the lock  request  has  been
  granted.  The efn argument is a longword containing this number.

  lkmode

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Lock mode requested.  The lkmode argument is a  longword  specifying
  this lock mode.

  lksb

  VMS usage: lock_status_block
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Lock status block in which $ENQ writes the final  completion  status
  of  the  operation.   The lksb argument is the address of the 8-byte
  lock status block.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Flags specifying options for the $ENQ operation.  The flags argument
  is a longword bit mask that is the logical OR of each bit set, where
  each bit corresponds to an option.

  resnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the resource to be locked by this lock.  The resnam argument
  is  the  address  of  a character string descriptor pointing to this
  name.  The name string may be from 1 to 31 bytes in length.

  parid

  VMS usage: lock_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Lock identification of the parent lock.  The  parid  argument  is  a
  longword containing this identification value.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack
  unwinding
  mechanism: by reference

  AST service routine to be executed when the lock is  either  granted
  or  converted.  The astadr argument is the address of the entry mask
  of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to  the  AST  routine  specified  by  the
  astadr  argument.   The  astprm  argument  specifies  this  longword
  parameter.

  blkast

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack
  unwinding
  mechanism: by reference

  Blocking AST routine to be called whenever this lock is granted  and
  is  blocking  any  other  lock requests.  The blkast argument is the
  address of the entry mask to this routine.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the lock.  The acmode argument  is
  a longword containing the access mode.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

$ENQW

  The Enqueue Lock Request  and  Wait  service  queues  a  lock  on  a
  resource.

  The $ENQW service completes synchronously; that is,  it  returns  to
  the caller when the lock has been either granted or converted.

  For asynchronous completion, use the  Enqueue  Lock  Request  ($ENQ)
  service; $ENQ returns to the caller after queueing the lock request,
  without waiting for the lock to be either granted or converted.

  In all other respects, $ENQW is identical to  $ENQ.   Refer  to  the
  documentation  of  $ENQ  for  all  other information about the $ENQW
  service.

  The $ENQ, $ENQW, $DEQ (Dequeue Lock Request), and $GETLKI (Get  Lock
  Information)  services  together  provide  the user interface to the
  VMS lock management facility.

     Format:

       SYS$ENQW  [efn] ,lkmode ,lksb [,flags] [,resnam] [,parid]
                  [,astadr] [,astprm] [,blkast] [,acmode] [,nullarg]

$ERAPAT

  The Get Security Erase Pattern service generates  a  security  erase
  pattern.   A  user-written erase routine can then write this pattern
  into areas of memory containing sensitive data that is no longer  in
  use to prevent the inadvertent disclosure of the sensitive data.

     Format:

       SYS$ERAPAT  [type] ,[count] ,[patadr]

     Arguments:

  type

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Type of storage to be written over with the erase pattern.  The type
  argument is a longword containing the type of storage.

  count

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  The number of times  that  $ERAPAT  has  been  called  in  a  single
  security   erase  operation.   The  count  argument  is  a  longword
  containing the iteration count.

  patadr

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  The security erase pattern to be written.  The patadr is the address
  of  a  longword  into  which  the  security  erase  pattern is to be
  written.

$EXIT

  The Exit service is used by the operating system to  initiate  image
  run-down  when  the  current image in a process completes execution.
  Control normally returns to the command interpreter.

     Format:

       SYS$EXIT  [code]

     Argument

  code

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Longword value to be saved in the process header as  the  completion
  status  of  the  current image.  If not specified in a macro call, a
  value of 1 is passed as the completion code for VAX  MACRO  and  VAX
  BLISS-32  and,  a  value  of  0 is passed for other languages.  This
  value can be tested at the  command  level  to  provide  conditional
  command execution.

$EXPREG

  The Expand Program/Control Region service adds a specified number of
  new  virtual  pages  to a process's program region or control region
  for the execution of the current image.   Expansion  occurs  at  the
  current end of that region's virtual address space.

     Format:

       SYS$EXPREG  pagcnt ,[retadr] ,[acmode] ,[region]

     Arguments:

  pagcnt

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of pages to add to the current end of the program or  control
  region.   The  pagcnt  argument  is a longword value containing this
  number.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting and ending process virtual  addresses  of  the  pages  that
  $EXPREG  has  actually  added.   The  retadr  is  the  address  of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the newly added pages.  The acmode
  argument is a longword containing the access mode.

  region

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number specifying which program  region  is  to  be  expanded.   The
  region  argument  is  a  longword value.  A value of 0 (the default)
  specifies that the program region (P0 region) is to be expanded.   A
  value  of  1  specifies that the control region (P1 region) is to be
  expanded.

$FAO

  The Formatted ASCII Output service (1) converts a binary value  into
  an ASCII character string in decimal, hexadecimal, or octal notation
  and returns the character string in an output string and (2) inserts
  variable character string data into an output string.

  The Formatted ASCII  Output  with  List  Parameter  ($FAOL)  service
  provides  an alternate way to specify input parameters for a call to
  the $FAO system service.  The formats for both $FAO and $FAOL appear
  below.

     Format:

       SYS$FAO  ctrstr ,[outlen] ,outbuf ,[p1]...[Pn]

       SYS$FAOL  ctrstr ,[outlen] ,outbuf [,prmlst]

     Arguments:

  ctrstr

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Control string passed to $FAO.  The ctrstr argument is  the  address
  of a character string descriptor pointing to the control string.

  Refer to the online help  for  the  F$FAO  lexical  function  for  a
  summary of FAO directives (HELP LEXICALS F$FAO).

  outlen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length in bytes of the fully formatted  output  string  returned  by
  $FAO.   The outlen argument is the address of a word containing this
  value.

  outbuf

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Output buffer into which $FAO  writes  the  fully  formatted  output
  string.   The  outbuf  argument is the address of a character string
  descriptor pointing to the output buffer.

  p1 to pn

  VMS usage: varying_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  FAO  directive  parameter(s).   The  p1  argument  is   a   longword
  containing   the   parameter  needed  by  the  first  FAO  directive
  encountered in the control string, the p2  argument  is  a  longword
  containing the parameter needed for the second FAO directive, and so
  on for the remaining arguments up to and including p20.  If  an  FAO
  directive  does  not  require  a  parameter,  that  FAO directive is
  processed without reading a parameter from the argument list.

  prmlst

  VMS usage: vector_longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by
  reference

  List of FAO directive parameters to be passed to the $FAOL  service.
  The  prmlst  argument  is the address of a list of longwords wherein
  each longword is a  parameter.   $FAOL  processes  these  parameters
  sequentially as it encounters, in the control string, FAO directives
  that require parameters.

$FILESCAN

  The Scan String for File Specification service searches a string for
  a  file  specification  and  parses  the  components  of  that  file
  specification.

     Format:

       SYS$FILESCAN  srcstr ,valuelst ,[fldflags]

     Arguments:

  srcstr

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  String to be  searched  for  the  file  specification.   The  srcstr
  argument is the address of a descriptor pointing to this string.

  valuelst

  VMS usage: item_list_2
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Item list specifying which components of the file specification  are
  to  be  returned  by $FILESCAN; the components are the node, device,
  directory, file name, file type  and  version  number.   The  itmlst
  argument  is  the address of a list of item descriptors wherein each
  item  descriptor  specifies  one  component.   The  list   of   item
  descriptors is terminated by a longword of 0.

  fldflags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Longword flag mask in which $FILESCAN  sets  a  bit  for  each  file
  specification  component  found  in  the input string.  The fldflags
  argument is the address of this longword flag mask.

$FIND_HELD

  The Find Identifiers Held by User service returns the  identifier(s)
  held  by  a specified holder.  When called repeatedly with a context
  longword, it returns in succession all the identifiers held  by  the
  specified holder.

     Format:

       SYS$FIND_HELD  holder ,[id] ,[attrib] ,[contxt]

     Arguments:

  holder

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Holder whose identifier(s) are to be found when $FIND_HELD completes
  execution.   The  holder  argument is the address of a quadword data
  structure containing the  holder  identifier.   This  quadword  data
  structure consists of a longword containing the holder UIC, followed
  by a longword containing the value zero.

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier value found when $FIND_HELD completes execution.  The  id
  argument  is  the  address  of  a longword containing the identifier
  value with which the holder is associated.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Attributes associated with the identifier returned in  id  when  the
  $ADD_HOLDER completes execution.  The attrib argument is the address
  of a longword containing a bitmask specifying the attributes.

  contxt

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context value used when repeatedly calling $FIND_HELD.   The  contxt
  argument  is  the address of a longword used while searching for all
  identifiers.  The context value must be initialized to zero, and the
  resulting  context  of  each call to $FIND_HELD must be presented to
  each subsequent call.  Once contxt has been passed to SYS$FIND_HELD,
  do not modify its value.

$FIND_HOLDER

  The Find Holder of  Identifier  service  returns  the  holder  of  a
  specified   identifier.   When  called  repeatedly  with  a  context
  longword, it returns all the holders of the specified identifier  in
  the order in which they were added.

     Format:

       SYS$FIND_HOLDER  id ,[holder] ,[attrib] ,[contxt]

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary identifier value whose holder(s) is  found  by  $FIND_HOLDER.
  The  id  argument  is  a  longword  containing the binary identifier
  value.

  holder

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  Holder identifier returned when  $FIND_HOLDER  completes  execution.
  The  holder  argument  is  the  address of a quadword containing the
  holder identifier.  The first  longword  contains  the  UIC  of  the
  holder  with the high-order word containing the group number and the
  low-order word containing the member number.   The  second  longword
  contains the value zero.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Mask of attributes associated with the holder  record  specified  by
  holder.  The attrib argument is the address of a longword containing
  the attribute mask.

  contxt

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context value used while  searching  for  all  the  holders  of  the
  specified   identifier  when  executing  $FIND_HOLDER.   The  contxt
  argument is the address of a longword containing the context  value.
  When  calling  $FIND_HOLDER repeatedly, contxt must be set initially
  to zero and the resulting context of each call to $FIND_HOLDER  must
  be  presented  to  each subsequent call.  Once the argument has been
  passed to SYS$FIND_HOLDER, do not modify its value.

$FINISH_RDB

  The Terminate Rights Database Context service deallocates the record
  stream   and   clears   the  context  value  used  with  $FIND_HELD,
  $FIND_HOLDER, or $IDTOASC.

     Format:

       SYS$FINISH_RDB  contxt

     Arguments:

  contxt

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context value to be cleared when  $FINISH_RDB  completes  execution.
  The  contxt  argument  is  a  longword containing the address of the
  context value.

$FORCEX

  The Force Exit system service causes an Exit ($EXIT) service call to
  be issued on behalf of a specified process.

     Format:

       SYS$FORCEX  [pidadr] ,[prcnam] ,[code]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process to be  forced  to  exit.
  The pidadr argument is the address of a longword containing the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name of the process that is  to  be  forced  to  exit.   The
  prcnam  argument  is  the  address  of a character string descriptor
  pointing to a 1- to 15-character process name string.

  code

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Completion code value to be used as the exit  parameter.   The  code
  argument  is  a  longword  containing  this  value.   If code is not
  specified, a value of 0 is passed as the completion code.

$FORMAT_ACL

  The Format Access Control List Entry service formats  the  specified
  ACL entry (ACE) into a text string.

     Format:

       SYS$FORMAT_ACL  aclent ,[acllen] ,aclstr ,[width] ,[trmdsc]
                  ,[indent] ,[accnam] ,[nullarg] ,[nullarg]

     Arguments:

  aclent

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Description  of  the  ACE  formatted  when   $FORMAT_ACL   completes
  execution.   The  aclent  argument  is  the  address of a descriptor
  pointing to a buffer containing the description of  the  input  ACE.
  The  first  byte  of  the buffer contains the length of the ACE; the
  second byte contains a value that identifies the type of ACE,  which
  in turn determines the ACE format.

  acllen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the output string  resulting  when  $FORMAT_ACL  completes
  execution.   The acllen argument is the address of a word containing
  the number of characters written to aclstr.

  aclstr

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Formatted ACE resulting when $FORMAT_ACL  completes  its  execution.
  The  aclstr  argument is the address of a string descriptor pointing
  to a buffer containing the output string.

  width

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Maximum width  of  the  formatted  ACE  resulting  when  $FORMAT_ACL
  completes  its  execution.   The  width argument is the address of a
  word containing the maximum width of the  formatted  ACE.   If  this
  argument  is  omitted  or  contains zero, an infinite length display
  line  is  assumed.   When  the  width  is  exceeded,  the  character
  specified by trmdsc is inserted.

  trmdsc

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Line termination character(s) used in the formatted ACE.  The trmdsc
  argument is the address of a descriptor pointing to character string
  containing the termination character(s) for each formatted ACE  that
  are inserted when the width has been exceeded.

  indent

  VMS usage: word_unsigned
  type: word (unsigned)
  access: read only
  mechanism: by reference

  Number of blank characters beginning each line of the formatted ACE.
  The  indent  argument is the address of a word containing the number
  of blank characters you want  inserted  at  the  beginning  of  each
  formatted ACE.

  accnam

  VMS usage: access_bit_names
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Names of the bits in the access mask when executing the $FORMAT_ACL.
  The  accnam  argument  is  the  address  of  an array of 32 quadword
  descriptors that define the names of the bits in  the  access  mask.
  Each  element  points to the name of a bit.  The first element names
  bit 0, the second element names bit 1 and so on.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

$GETDVI

  The Get Device/Volume Information service returns information  about
  an  I/O  device;  this information consists of primary and secondary
  device characteristics.

  The $GETDVI service completes asynchronously; that is, it returns to
  the  caller  after  queuing the information request, without waiting
  for the requested information to be returned.

  For synchronous completion, use the  Get  Device/Volume  Information
  and  Wait  ($GETDVIW) service.  The $GETDVIW service is identical to
  the $GETDVI service in every way except that $GETDVIW returns to the
  caller with the requested information.

     Format:

       SYS$GETDVI  [efn] ,[chan] ,[devnam] ,itmlst [,iosb] [,astadr]
                  [,astprm] [,nullarg]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the  event  flag  to  be  set  when  $GETDVI  returns  the
  requested  information.   The  efn argument is a longword containing
  this number.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Number of the  I/O  channel  assigned  to  the  device  about  which
  information is desired.  The chan argument is a word containing this
  number.

  devnam

  VMS usage: device_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  The name of the device about which $GETDVI is to return information.
  The  devnam argument is the address of a character string descriptor
  pointing to this name string.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying which information about the  device  is  to  be
  returned.   The  itmlst  argument  is  the address of a list of item
  descriptors, each of which describes an item  of  information.   The
  list of item descriptors is terminated by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block which is to receive the  final  completion  status.
  The iosb is the address of the quadword I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack
  unwinding
  mechanism: by reference

  AST service routine to be  executed  when  $GETDVI  completes.   The
  astadr is the address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the astadr argument.  The astprm argument is the longword parameter.

  nullarg

  VMS usage: null_arg
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Place-holding argument.  This argument is reserved to DIGITAL.

$GETDVIW

  The  Get  Device/Volume  Information  and   Wait   service   returns
  information  about  an  I/O  device;  this  information  consists of
  primary and secondary device characteristics.

  The $GETDVIW service completes synchronously; that is, it returns to
  the caller with the requested information.

  For asynchronous completion, use the Get  Device/Volume  Information
  ($GETDVI)  service; $GETDVI returns to the caller after queueing the
  information request, without  waiting  for  the  information  to  be
  returned.

  In all other respects, $GETDVIW is identical to $GETDVI.   Refer  to
  the  documentation  of  $GETDVI  for all other information about the
  $GETDVIW service.

     Format:

       SYS$GETDVIW  [efn] ,[chan] ,[devnam] ,itmlst [,iosb] [,astadr]
                  [,astprm] [,nullarg]

$GETJPI

  The Get Job/Process Information service  returns  information  about
  one or more processes on the system.

  The $GETJPI service completes asynchronously; that is, it returns to
  the  caller  after  queuing the information request, without waiting
  for the requested information to be returned.

  For synchronous completion, use the Get Job/Process Information  and
  Wait  ($GETJPIW)  service.  The $GETJPIW service is identical to the
  $GETJPI service in every way except that  $GETJPIW  returns  to  the
  caller with the requested information.

     Format:

       SYS$GETJPI  [efn] ,[pidadr] ,[prcnam] ,itmlst [,iosb] [,astadr]
                  [,astprm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the  event  flag  to  be  set  when  $GETJPI  returns  the
  requested  information.   The  efn argument is a longword containing
  this number.

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process about which  $GETJPI  is
  to  return  information.   The  pidadr  argument is the address of a
  longword containing the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the process about which $GETJPI is  to  return  information.
  The  prcnam argument is the address of a character string descriptor
  pointing to this name string.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying which information about the process(es)  is  to
  be  returned.   The itmlst argument is the address of a list of item
  descriptors, each of which describes an item  of  information.   The
  list of item descriptors is terminated by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block which is to receive the  final  completion  status.
  The iosb is the address of the quadword I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be  executed  when  $GETJPI  completes.   The
  astadr is the address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the astadr argument.  The astprm argument is the longword parameter.

$GETJPIW

  The Get Job/Process Information and Wait service returns information
  about one or more processes on the system.

  The $GETJPIW service completes synchronously; that is, it returns to
  the caller with the requested information.

  For asynchronous completion, use  the  Get  Job/Process  Information
  ($GETJPI)  service; $GETJPI returns to the caller after queueing the
  information request, without  waiting  for  the  information  to  be
  returned.

  In all other respects, $GETJPIW is identical to $GETJPI.   Refer  to
  the  documentation  of  $GETJPI  for all other information about the
  $GETJPIW service.

     Format:

       SYS$GETJPIW  [efn] ,[pidadr] ,[prcnam] ,itmlst [,iosb]
                  [,astadr] [,astprm]

$GETLKI

  The Get Lock Information service returns information about the  lock
  database on a VMS system.

  The $GETLKI service completes asynchronously; that is, it returns to
  the  caller  after  queuing the information request, without waiting
  for the information to be returned.

  For synchronous completion, use the Get Lock  Information  and  Wait
  ($GETLKIW)   service;  $GETLKIW  returns  to  the  caller  with  the
  requested information.  In all other respects, $GETLKIW is identical
  to $GETLKI.

  The $GETLKI, $GETLKIW, $ENQ (Enqueue Lock Request),  $ENQW  (Enqueue
  Lock  Request  and  Wait),  and $DEQ (Dequeue Lock Request) services
  together provide  the  user  interface  to the VMS  lock  management
  facility.

     Format:

       SYS$GETLKI  [efn] ,lkidadr ,itmlst [,iosb] [,astadr]

                   [,astprm] [,nullarg]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set when $GETLKI completes.  The  efn
  argument  is  a  longword  containing  this  number.   If efn is not
  specified, $GETLKI sets event flag 0.

  lkidadr

  VMS usage: lock_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Lock identification (lock id) for the lock about  which  information
  is  to  be returned.  The lock id is the second longword in the lock
  status block, which was created when  the  lock  was  granted.   The
  lkidadr argument is the address of this longword.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying the lock information that $GETLKI is to return.
  The  itmlst  argument  is the address of a list of item descriptors,
  each of which describes an item of information.  The  list  of  item
  descriptors is terminated by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O Status Block that is to receive  the  final  completion  status.
  The iosb argument is the address of a quadword.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be executed when the service completes.   The
  astadr argument is the address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the astadr argument.  The astprm argument is the longword parameter.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

$GETLKIW

  The Get Lock Information and Wait service returns information  about
  the lock database on a VMS system.

  The $GETLKIW service completes synchronously; that is, it returns to
  the caller with the requested information.

  For asynchronous completion, use the Get Lock Information  ($GETLKI)
  service;   $GETLKI   returns   to  the  caller  after  queueing  the
  information request, without  waiting  for  the  information  to  be
  returned.

  In all other respects, $GETLKIW is identical to $GETLKI.   Refer  to
  the  documentation  of  $GETLKI  for all other information about the
  $GETLKIW service.

  The $GETLKI, $GETLKIW, $ENQ (Enqueue Lock Request),  $ENQW  (Enqueue
  Lock  Request  and  Wait),  and $DEQ (Dequeue Lock Request) services
  together provide  the  user   interface to the VMS  lock  management
  facility.

     Format:

       SYS$GETLKIW  [efn] ,lkidadr ,itmlst [,iosb] [,astadr] [,astprm]
                  [,nullarg]

$GETMSG

  The Get Message service locates and returns message text  associated
  with  a  given message identification code into the caller's buffer.
  The message can be  from  the  system  message  file  or  can  be  a
  user-defined message.

     Format:

       SYS$GETMSG  msgid ,msglen ,bufadr ,[flags]

                   ,[outadr]

     Arguments:

  msgid

  VMS usage: cond_value
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Identification of the message to be retrieved.  The  msgid  argument
  is  a  longword  value  containing the message identification.  Each
  message has a unique identification, contained in bits 3 through  27
  of system longword condition values.

  msglen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Length of the  message  string  returned  by  $GETMSG.   The  msglen
  argument  is  the  address  of a word into which $GETMSG writes this
  length.

  bufadr

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Buffer to receive the message string.  The bufadr  argument  is  the
  address of a character string descriptor pointing to the buffer into
  which $GETMSG writes the message string.  The maximum  size  of  any
  message string is 256 bytes.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Message components to be returned.  The flags argument is a longword
  bit  vector,  wherein  a  bit  when  set specifies that that message
  component is to be returned.

  outadr

  VMS usage: vector_byte_unsigned
  type: byte (unsigned)
  access: write only
  mechanism: by reference

  Optional information to be returned by $GETMSG.  The outadr  is  the
  address of a four-byte array into which $GETMSG writes the following
  information:

       Byte   Contents

       0      Reserved

       1      Count of FAO arguments associated with message

       2      User-specified value in message, if any

       3      Reserved

$GETQUI

  The Get Queue  Information  ($GETQUI)  service  returns  information
  about  queues and the jobs initiated from those queues.  The $GETQUI
  and $SNDJBC services together provide  the  user  interface  to  the
  VMS  Job  Controller, which is the VMS queue and accounting manager.


  The $GETQUI service completes asynchronously; that is, it returns to
  the  caller  after  queuing  the  request,  without  waiting for the
  operation to complete.

  For synchronous completion, use the Get Queue Information  and  Wait
  ($GETQUIW) service.  The $GETQUIW service is identical to $GETQUI in
  every way except that $GETQUIW  returns  to  the  caller  after  the
  operation has completed.

     Format:

       SYS$GETQUI  [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr]
                  [,astprm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set when $GETQUI completes.  The  efn
  argument  is a longword containing this number.  The efn argument is
  optional.

  func

  VMS usage: function_code
  type: word (unsigned)
  access: read only
  mechanism: by value

  Function code specifying the function that $GETQUI  is  to  perform.
  The  func  argument  is  a  word containing this function code.  The
  $QUIDEF macro defines the names of each function code.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list  supplying  information  to  be  used  in  performing  the
  function specified by the func argument.  The itmlst argument is the
  address of the item list.  The item list consists  of  one  or  more
  item  descriptors,  each  of which specifies an item code.  The item
  list is terminated by an item code of 0 or by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block into which $GETQUI  writes  the  completion  status
  after  the  requested  operation  has  completed.   The  iosb is the
  address of the I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack
  unwinding
  mechanism: by reference

  AST service routine to be  executed  when  $GETQUI  completes.   The
  astadr argument is the address of the entry mask of this routine.

  astprm

  VMS usage: user_parm
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the   astadr   argument.   The  astprm  argument  is  this  longword
  parameter.

$GETQUIW

  The Get Queue Information and Wait for Completion service ($GETQUIW)
  returns  information  about  queues  and  jobs  initiated from those
  queues.  The $SNDJBC service is the major interface to  the  VMS
  Job Controller, which is the VMS queue and accounting manager.

  The $GETQUIW service completes synchronously; that is, it returns to
  the   caller  with  the  requested  information.   For  asynchronous
  completion use the Get Queue Information ($GETQUI) service;  $GETQUI
  returns to the caller after queuing the information request, without
  waiting for the information to be returned.

  In all other respects, $GETQUIW is identical to $GETQUI.   Refer  to
  the  documentation  of  $GETQUI  for all other information about the
  $GETQUIW service.

     Format:

       SYS$GETQUIW  [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr]
                  [,astprm]

$GETSYI

  The Get SystemWide Information service returns information about the
  local VAX system or about other VAX systems in a cluster.

  For Version 5.0  of  VMS, both  the  $GETSYI  service  and  the  Get
  System-Wide   Information   and  Wait  ($GETSYIW)  service  complete
  synchronously; that is, they return to the caller with the requested
  information.

  However, in  the  future,  $GETSYI  may be  modified  to  complete
  asynchronously; that is, it will return to the caller after queueing
  the information request, without waiting for the information  to  be
  returned.   For  this  reason,  DIGITAL  recommends that you use the
  $GETSYIW service for synchronous completion.

     Format:

       SYS$GETSYI  [efn] ,[csidadr] ,[nodename] ,itmlst [,iosb]
                  [,astadr] [,astprm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the  event  flag  to  be  set  when  the  $GETSYI  request
  completes.  The efn argument is a longword containing this number.

  csidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Cluster system identification of the VAX node about which $GETSYI is
  to  return  information.   The  csidadr is the address of a longword
  containing this identification value.

  nodename

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the VAX node about which $GETSYI is to  return  information.
  The   nodename  argument  is  the  address  of  a  character  string
  descriptor pointing to this name string.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying which information about the VAX node(s)  is  to
  be  returned.   The itmlst argument is the address of a list of item
  decriptors, each of which describes an  item  of  information.   The
  list of item descriptors is terminated by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block which is to receive the  final  completion  status.
  The iosb is the address of the quadword I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be  executed  when  $GETSYI  completes.   The
  astadr is the address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the astadr argument.  The astprm argument is the longword parameter.

$GETSYIW

  The Get System-Wide Information and Wait service returns information
  about the local VAX system or about other VAX systems in a cluster.

  For Version 5.0 of VMS, the  $GETSYIW  service  is  identical to the
  Get System-Wide Information ($GETSYI) service.  Both services return
  the same information, and both complete synchronously; that is, they
  return to the caller with the requested information.

  However, in the future the  $GETSYI  service  will  be  modified  to
  complete asynchronously; that is, it will return to the caller after
  queueing  the  information  request,   without   waiting   for   the
  information  to  be  returned.   For this reason, DIGITAL recommends
  that you use the $GETSYIW service for synchronous completion.

  Refer to the documentation of  $GETSYI  for  all  other  information
  about the $GETSYIW service.

     Format:

       SYS$GETSYIW  [efn] ,[csidadr] ,[nodename] ,itmlst [,iosb]
                  [,astadr] [,astprm]


$GETTIM

  The Get Time service returns  the  current  system  time  in  64-bit
  format.

     Format:

       SYS$GETTIM  timadr

     Argument

  timadr

  VMS usage: date_time
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  Address of a quadword that is to receive the current time in  64-bit
  format.

$GETUAI

  The Get User Authorization  Information  ($GETUAI)  service  returns
  authorization information about a specified user.

     Format:

       SYS$GETUAI  [nullarg] ,[nullarg] ,usrnam ,itmlst ,[nullarg]
                  ,[nullarg] ,[nullarg]

     Arguments:

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

  usrnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Name  of  the  user  about  whom   $GETUAI   returns   authorization
  information.   The  usrnam  argument  is the address of a descriptor
  pointing to a character text string containing the user  name.   The
  user   name   string  may  contain  a  maximum  of  12  alphanumeric
  characters.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying which information from the specified user's UAF
  (user  authorization  file)  record  is  to be returned.  The itmlst
  argument is the address of a list of one or more  item  descriptors,
  each  of  which specifies an item code.  The item list is terminated
  by an item code of 0 or by a longword of 0.

$GRANTID

  The  Grant  Identifier  to  Process  service  adds   the   specified
  identifier  record  to  the  process'  rights  list or to the system
  rights list.  If the identifier is already in the rights  list,  the
  attributes are modified as specified.

     Format:

       SYS$GRANTID  [pidadr] ,[prcnam] ,[id] ,[name] ,[prvatr]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification number (PID) of  the  process  affected  when
  $GRANTID completes execution.  The pidadr argument is the address of
  longword containing the PID of process to be affected.  Use  --1  to
  indicate  the system rights list.  When pidadr is passed, it is also
  returned; therefore, you must pass it as a variable  rather  than  a
  constant.   If  neither  pidadr  nor  prcnam  is specified, your own
  process is used.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name on which $GRANTID operates.  The prcnam argument is the
  address  of  a  character  string  descriptor containing the process
  name.  The maximum length of the name is 15 characters.   Since  the
  UIC  group  number  is  interpreted as part of the process name, you
  must use pidadr to specify  the  rights  list  of  a  process  in  a
  different  group.   If  neither pidadr nor prcnam is specified, your
  own process is used.

  id

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  Identifier and attributes to  be  granted  when  $GRANTID  completes
  execution.   The id argument is the address of a quadword containing
  the binary identifier code to be granted in the first  longword  and
  the attributes in the second longword.

  name

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the identifier granted when  $GRANTID  completes  execution.
  The  name  argument  is  the address of a descriptor pointing to the
  name of the identifier.  Either id or name must be specified.

  prvatr

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Previous attributes of the identifier.  The prvatr argument  is  the
  address of a longword used to store the attributes of the identifier
  if it was previously present in the rights list.  If the  identifier
  was added rather than modified, prvatr is ignored.

$HIBER

  The Hibernate service allows a process to make itself  inactive  but
  to  remain  known  to  the system so that it can be interrupted, for
  example,   to   receive   ASTs.    A   hibernate   request   is    a
  wait-for-wake-event request.  When the Wake Process from Hibernation
  ($WAKE) service is  called  or  when  a  Schedule  Wakeup  ($SCHDWK)
  service   comes   due,   the  process  continues  execution  at  the
  instruction following the Hibernate call.

     Format:

       SYS$HIBER

     None

$IDTOASC

  The Translate Identifier to Identifier Name service  translates  the
  specified identifier value to its identifier name.

     Format:

       SYS$IDTOASC  id  ,[namlen] ,[nambuf] ,[resid] ,[attrib]
                  ,[contxt]

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary identifier value translated by $IDTOASC.  The id argument  is
  a  longword  containing  the  binary  value  of  the identifier.  To
  determine the identifier names of  all  identifiers  in  the  rights
  database, specify id as --1 and call SYS$IDTOASC repeatedly until it
  returns the status code SS$_NOSUCHID.  The identifiers are  returned
  in alphabetical order.

  namlen

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of characters in the identifier name translated by  $IDTOASC.
  The  namlen  argument is the address of a word containing the length
  of the identifier name written to nambuf.

  nambuf

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Identifier name text string returned  when  $IDTOASC  completes  the
  translation.   The  nambuf  argument  is the address of a descriptor
  pointing to the buffer in which the identifier name is written.

  resid

  VMS usage: rights_id
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Identifier value of the identifier name  returned  in  nambuf.   The
  resid  argument  is  the address of a longword containing the 32-bit
  code of the identifier.

  attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Mask of attributes associated with the identifier returned in resid.
  The  attrib  argument  is  the  address of a longword containing the
  attribute mask.

  contxt

  VMS usage: context
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Context value used when repeatedly  calling  $IDTOASC.   The  contxt
  argument  is  the address of a longword used while searching for all
  identifiers.  The context value must be initialized to zero, and the
  resulting context of each call to $IDTOASC must be presented to each
  subsequent call.  Once contxt has been passed to  $IDTOASC,  do  not
  modify its value.

$LCKPAG

  The Lock Pages In Memory service locks a page or range of  pages  in
  memory.  The specified virtual pages are forced into the working set
  and then locked in memory.  A locked page  is  not  swapped  out  of
  memory if its process's working set is swapped out.  These pages are
  not candidates for page replacement and in this sense are locked  in
  the working set as well.

     Format:

       SYS$LCKPAG  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the range of  pages  to  be
  locked.    The   inadr  is  the  address  of  a  two-longword  array
  containing, in order, the starting and the  ending  process  virtual
  addresses.   Only  the  virtual  page number portion of each virtual
  address is used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Starting and ending process virtual  addresses  of  the  pages  that
  $LCKPAG   actually   locked.    The  retadr  is  the  address  of  a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with  the  pages  to  be  locked.   The
  acmode  argument  is  a  longword  containing  the access mode.  The
  $PSLDEF macro defines the four access modes.

$LKWSET

  The Lock Pages in Working Set service locks a range of pages in  the
  working  set;  if  the  pages are not already in the working set, it
  brings them in and locks them.  A page that is locked in the working
  set does not become a candidate for replacement.

     Format:

       SYS$LKWSET  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the range of  pages  to  be
  locked  in  the  working  set.   The  inadr  is  the  address  of  a
  two-longword array containing, in order, the starting and the ending
  process  virtual addresses.  Only the virtual page number portion of
  each virtual address is used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting and ending process virtual addresses of the range of  pages
  actually  locked  by  $LCKWSET.   The  retadr  is  the  address of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with  the  pages  to  be  locked.   The
  acmode  argument  is  a  longword  containing  the access mode.  The
  $PSLDEF macro defines the four access modes.

$MGBLSC

  The Map Global Section service establishes a correspondence  between
  (maps)  pages  in  the  process's virtual address space and physical
  pages occupied by a global section.

     Format:

       SYS$MGBLSC  inadr ,[retadr] ,[acmode] ,[flags] ,gsdnam ,[ident]
                  ,[relpag]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending  virtual  addresses  in  the  process's  virtual
  address  space  (either the P0 or P1 regions) into which the section
  is to be mapped.  The inadr is the address of a  two-longword  array
  containing,  in  order,  the starting and the ending process virtual
  addresses.  Only the virtual page number  portion  of  each  virtual
  address is used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Starting and ending process virtual addresses into which the section
  was  actually  mapped  by  $MGBLSC.   The retadr is the address of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode to be associated with the pages that are mapped into the
  process  virtual  address  space.  The acmode argument is a longword
  containing the access mode.  The $PSLDEF macro defines  symbols  for
  the four access modes.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Flag mask specifying options for the operation.  The flags  argument
  is  a  longword  bit  vector  wherein  a  bit when set specifies the
  corresponding option.

  gsdnam

  VMS usage: section_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the global section.  The gsdnam argument is the address of a
  character string descriptor pointing to this name string.

  ident

  VMS usage: section_id
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Identification value specifying  the  version  number  of  a  global
  section,  and,  for processes mapping to an existing global section,
  the criteria for matching the identification.  The ident argument is
  the address of a quadword structure containing three fields.

  relpag

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Relative page number within the section of  the  first  page  to  be
  mapped.  The relpag argument is a longword containing this number.

$MOD_HOLDER

  The Modify Holder Record in Rights  Database  service  modifies  the
  specified  holder  record  of  the  target  identifier in the rights
  database.  Identifier attributes may be added, or removed, or both.

     Format:

       SYS$MOD_HOLDER  id ,holder ,[set_attrib] ,[clr_attrib]

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary value of target identifier whose holder  record  is  modified
  when $MOD_HOLDER completes execution.  The id argument is a longword
  containing the identifier value.

  holder

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Identifier of  holder  being  modified  when  $MOD_HOLDER  completes
  execution.   The  holder  argument  is  the  address  of  a quadword
  containing the UIC identifier of the holder in  the  first  longword
  and the value of zero in the second longword.

  set_attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Bitmask  of  attributes  to  be  enabled  for  the  identifier  when
  $MOD_HOLDER  completes  execution.   The  set_attrib  argument  is a
  longword containing the attribute mask.

  clr_attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Bitmask of  attributes  to  be  disabled  for  the  identifier  when
  $MOD_HOLDER  completes  execution.   The  clr_attrib  argument  is a
  longword containing the attribute mask.

$MOD_IDENT

  The Modify  Identifier  in  Rights  Database  service  modifies  the
  specified  identifier  record  in  the  rights database.  Identifier
  attributes may be added, or removed, or both.  The  identifier  name
  or value may be changed.

     Format:

       SYS$MOD_IDENT  id ,[set_attrib] ,[clr_attrib] ,[new_name]
                  ,[new_value]

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary value of identifier whose identifier record is modified  when
  $MOD_IDENT  completes  execution.   The  id  argument  is a longword
  containing the identifier value.

  set_attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Bitmask  of  attributes  to  be  enabled  for  the  identifier  when
  $MOD_IDENT  completes  execution.   The  set_attrib  argument  is  a
  longword containing the attribute mask.

  clr_attrib

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Bitmask of  attributes  to  be  disabled  for  the  identifier  when
  $MOD_IDENT  completes  execution.   The  clr_attrib  argument  is  a
  longword containing the attribute mask.

  new_name

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  New name to be given to  the  specified  identifier.   The  new_name
  argument is the address of the descriptor pointing to the identifier
  name string.

  new_value

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  New value to be assigned to the specified identifier.  The new_value
  argument  is a longword containing the binary value of the specified
  identifier.  When the identifier value is changed,  $MOD_IDENT  also
  changes  the value of the identifier in all of the holder records in
  which the specified identifier appears.

$MOUNT

  The Mount Volume service mounts a tape, disk volume, or  volume  set
  and specifies options for the mount operation.

     Format:

       SYS$MOUNT  itmlst

     Argument

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying options for the mount  operation.   The  itmlst
  argument is the address of a list of item descriptors, each of which
  specifies an option and provides the information needed  to  perform
  the operation.

$MTACCESS

  The Magnetic Tape  Accessibility  service  allows  installations  to
  provide  their own routine to interpret and output the accessibility
  field in the VOL1 and HDR1 labels of an ANSI labeled magnetic  tape.
  (ANSI  refers  to  the  American National Standard for Magnetic Tape
  Labels  and  File  Structure  for  Information   Interchange---ANSI,
  x3.27-1978)

     Format:

       SYS$MTACCESS  lblnam ,[uic] ,[std_version] ,[access_char]
                  ,[access_spec] ,type

     Arguments:

  lblnam

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  ANSI label to be processed.  The lblnam argument is the address of a
  longword containing the label.  On input, the label passed is either
  the VOL1 or HDR1 label read from the magnetic  tape;  on  output  of
  labels,  this field is zero.  The type of label passed is determined
  by type.

  uic

  VMS usage: uic
  type: longword (unsigned)
  access: read only
  mechanism: by value

  UIC of the user performing the operation.  The  uic  argument  is  a
  longword containing the UIC.

  std_version

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Decimal equivalent of the ANSI standard version read from  the  VOL1
  label.   The  std_version  argument  is  a  longword  containing the
  standard version number.

  access_char

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Accessibility character specified  by  the  user.   The  access_char
  argument  is  a byte containing the accessibility character used for
  the output of labels.

  access_spec

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Value specifying  whether  the  accessibility  character  passed  in
  access_char was specified by the user.

  type

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Type of accessibility field to process.

$NUMTIM

  The Convert Binary Time to Numeric Time service converts an absolute
  or  delta time from 64-bit system time format to binary integer date
  and time values.

     Format:

       SYS$NUMTIM  timbuf ,[timadr]

     Arguments:

  timbuf

  VMS usage: vector_word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Buffer into which $NUMTIM writes the converted date and  time.   The
  numtim argument is the address of a 7-word structure.

  timadr

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  The 64-bit time value to be converted.  The timadr argument  is  the
  address  of  a quadword containing this time.  A positive time value
  represents an absolute time, while a negative time value indicates a
  delta time.

$PARSE_ACL

  The Parse Access Control List Entry  service  parses  the  specified
  text  string  and  converts it into the binary representation for an
  access control list entry (ACE).

     Format:

       SYS$PARSE_ACL  aclstr ,aclent ,[errpos] ,[accnam]
                      ,[nullarg] ,[nullarg]

     Arguments:

  aclstr

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Formatted ACE that is parsed when  $PARSE_ACL  completes  execution.
  The  aclstr  argument is the address of a string descriptor pointing
  to the text string to be parsed.

  aclent

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by descriptor--fixed
  length string descriptor

  Description of the ACE that  is  parsed  when  $PARSE_ACL  completes
  execution.   The  aclent  argument  is  the  address of a descriptor
  pointing to the buffer in which the ACE is written.  The first  byte
  of  the  buffer  contains  the  length  of  the ACE; the second byte
  contains a value that identifies the type  of  ACE,  which  in  turn
  defines  the  format of the ACE.  See the SYS$FORMAT_ACL service for
  information on the ACE types and their associated formats.

  errpos

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  Number of characters from aclstr processed  by  SYS$PARSE_ACL.   The
  errpos argument is the address of a word that receives the number of
  characters actually processed by the service.  If the service fails,
  this count points to the failing point in the string.

  accnam

  VMS usage: access_bit_names
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Names of the bits in the access mask when executing $PARSE_ACL.  The
  accnam   argument  is  the  address  of  an  array  of  32  quadword
  descriptors that define the names of the bits in  the  access  mask.
  Each  element  points to the name of a bit.  The first element names
  bit 0, the second element names bit 1, and so on.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

$PREPARE_RU

  Applicable only if you have the RMS Journaling option.  See the VAX
  RMS Journaling Manual.

  The Prepare Recovery Unit Service marks a point in the recovery unit
  of an application using RMS Journaling where all modifications to
  records within a recovery unit are complete. When you issue a call
  to the $PREPARE_RU service, no further modifications are permitted
  for any files that are connected to the recovery unit that was
  started with the $START_RU call) until that recovery unit is no
  longer active. After you issue a $PREPARE_RU call, the recovery unit
  must be terminated with either a call to the $ABORT_RU service or
  the $COMMIT_RU service.

  Although you cannot modify any data between the $PREPARE_RU and
  $COMMIT_RU calls or between the $PREPARE_RU and $ABORT_RU calls, you
  can include other processing (such as data verification) to
  determine whether you wish to commit or abort the recovery unit.
  After using $PREPARE_RU, do not issue a call to the $END_RU service;
  use $COMMIT_RU to end the recovery unit and retain the record
  modifications that were made during the recovery unit.

     Format:

         SYS$PREPARE_RU ru_handle

     Arguments:

         ru_handle

         VMS Usage: ru_handle
         type: longword (unsigned)
         access: read only
         mechanism: by reference

         The ru_handle argument is the address of an unsigned longword that
         contains the recovery unit handle returned by the $START_RU system
         service.

$PURGWS

  The Purge Working Set service removes a  specified  range  of  pages
  from  the  calling  process's  current  working set to make room for
  pages required by  a  new  program  segment.   However,  the  Adjust
  Working  Set  Limit ($ADJWSL) service is the preferred mechanism for
  controlling a process's use of physical memory resources.

     Format:

       SYS$PURGWS  inadr

     Argument

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the range of  pages  to  be
  purged.    The   inadr  is  the  address  of  a  two-longword  array
  containing, in order, the starting and the  ending  process  virtual
  addresses.   Only  the  virtual  page number portion of each virtual
  address is used; the low-order 9 bits are ignored.

$PUTMSG

  The Put Message  service  writes  one  or  more  error  messages  to
  SYS$ERROR  (and  to  SYS$OUTPUT  if it is different than SYS$ERROR).
  $PUTMSG is a generalized message formatting and output routine  used
  by VMS to write informational and error messages to processes.

     Format:

       SYS$PUTMSG  msgvec ,[actrtn] ,[facnam] ,[actprm]

     Arguments:

  msgvec

  VMS usage: cntrlblk
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Message argument vector specifying the message(s) to be written  and
  options  that  $PUTMSG  is  to  use  in writing the message(s).  The
  msgvec argument is the address of the message vector.

  actrtn

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  User-supplied  action  routine  to  be   executed   during   message
  processing.  The actrtn argument is the address of the entry mask of
  this routine.

  facnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Facility prefix to be used in the first or only message  written  by
  $PUTMSG.   The  facnam argument is the address of a character string
  descriptor pointing to this facility prefix.

  actprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Parameter to be passed to the  action  routine.   The  actprm  is  a
  longword   value  containing  this  parameter.   If  actprm  is  not
  specified, no parameter is passed.

$QIO

  The Queue I/O Request service queues an I/O  request  to  a  channel
  associated with a device.

  The $QIO service completes asynchronously; that is,  it  returns  to
  the  caller  immediately  after  queuing  the  I/O  request, without
  waiting for the I/O operation to complete.

  For synchronous completion, use  the  Queue  I/O  Request  and  Wait
  ($QIOW) service.  The $QIOW service is identical to the $QIO service
  in every way except that $QIOW returns to the caller after  the  I/O
  operation has completed.

     Format:

       SYS$QIO  [efn] ,chan ,func [,iosb] [,astadr] [,astprm]

                   [,p1] [,p2] [,p3] [,p4] [,p5] [,p6]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Event flag that $QIO is to  set  when  the  I/O  operation  actually
  completes.   The  efn  argument  is  a longword value containing the
  number of the event flag.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  I/O channel that is assigned to the device to which the  request  is
  directed.   The  chan argument is a word value containing the number
  of the I/O channel; however, $QIO uses only the low-order word.

  func

  VMS usage: function_code
  type: word (unsigned)
  access: read only
  mechanism: by value

  Device-specific function codes and function modifiers specifying the
  operation  to be performed.  The func is a longword value containing
  the function code.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block to receive the final completion status of  the  I/O
  operation.   The  iosb  is  the  address  of the quadword I/O status
  block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be executed  when  the  I/O  completes.   The
  astadr argument is the address of a longword value that is the entry
  mask to the AST routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine.   The  astprm
  argument is a longword value containing the AST parameter.

  p1 to p6

  VMS usage: varying_arg
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Optional device- and function-specific I/O request parameters.

$QIOW

  The Queue I/O Request and Wait service queues an I/O  request  to  a
  channel associated with a device.

  The $QIOW service completes synchronously; that is,  it  returns  to
  the caller after the I/O operation has actually completed.

  For asynchronous  completion,  use  the  Queue  I/O  Request  ($QIO)
  service;  $QIO  returns to the caller after queuing the I/O request,
  without waiting for the I/O operation to be completed.

  In all other respects, $QIOW is identical to  $QIO.   Refer  to  the
  documentation  of  $QIO  for  all  other information about the $QIOW
  service.

     Format:

       SYS$QIOW  [efn] ,chan ,func [,iosb] [,astadr] [,astprm]
                  [,p1] [,p2] [,p3] [,p4] [,p5] [,p6]

$READEF

  The Read Event Flags service returns the current status  of  all  32
  event  flags  in a local or common event flag cluster.  In addition,
  the condition value returned indicates whether the  specified  event
  flag is set or clear.

     Format:

       SYS$READEF  efn ,state

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of any event flag in  the  cluster  whose  status  is  to  be
  returned.   The  efn  argument is a longword containing this number.
  Specifying an event flag within  a  cluster  requests  that  $READEF
  return the status of all event flags in that cluster.

  state

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  State of all event  flags  in  the  specified  cluster.   The  state
  argument  is the address of a longword into which $READEF writes the
  state (set or clear) of the 32 event flags in the cluster.

$REM_HOLDER

  Deletes the specified holder record  from  the  target  identifier's
  list of holders.

     Format:

       SYS$REM_HOLDER  id ,holder

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary value of target  identifier  whose  holder  is  deleted  when
  $REM_HOLDER  completes  execution.   The  id  argument is a longword
  containing the identifier value.

  holder

  VMS usage: rights_holder
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Identifier  of  holder  being  deleted  when  $REM_HOLDER  completes
  execution.   The  holder  argument  is  the  address  of  a quadword
  containing the UIC identifier of the holder in  the  first  longword
  and the value of zero in the second longword.

$REM_IDENT

  The Remove Identifier  from  Rights  Database  service  removes  the
  specified identifier record and all its holder records (if any) from
  the rights database.

     Format:

       SYS$REM_IDENT  id

     Arguments:

  id

  VMS usage: rights_id
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Binary  value  of  identifier  deleted  from  rights  database  when
  $REM_IDENT  completes  execution.   The  id  argument  is a longword
  containing the identifier value.

$RESUME

  The Resume Process service (1) causes a process previously suspended
  by  the Suspend Process ($SUSPND) service to resume execution or (2)
  cancels the effect of a subsequent suspend request.

     Format:

       SYS$RESUME  [pidadr] ,[prcnam]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process that is to  be  resumed.
  The pidadr argument is the address of a longword containing the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the process to be resumed.  The prcnam is the address  of  a
  character string descriptor pointing to the process name, which is a
  character string of from 1 to 15 characters.

$REVOKID

  The Revoke Identifier from Process  service  removes  the  specified
  identifier from the process's rights list, or from the system rights
  list.  If the  identifier  is  listed  as  a  holder  of  any  other
  identifier, the appropriate holder records are also deleted.

     Format:

       SYS$REVOKID  [pidadr] ,[prcnam] ,[id] ,[name]

                   ,[prvatr]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification number (PID) of  the  process  affected  when
  $REVOKID completes execution.  The pidadr argument is the address of
  longword containing the PID of process to be affected.  Use  --1  to
  indicate  the system rights list.  When pidadr is passed, it is also
  returned; therefore, you must pass it as a variable  rather  than  a
  constant.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name on which $REVOKID operates.  The prcnam argument is the
  address  of  a  character  string  descriptor containing the process
  name.  The maximum length of the name is 15 characters.   Since  the
  UIC  group  number  is  interpreted as part of the process name, you
  must use pidadr to specify  the  rights  list  of  a  process  in  a
  different group.

  id

  VMS usage: rights_id
  type: quadword (unsigned)
  access: modify
  mechanism: by reference

  Identifier and attributes to  be  removed  when  $REVOKID  completes
  execution.   The id argument is the address of a quadword containing
  the binary identifier code to be removed in the first  longword  and
  the attributes in the second longword.

  name

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the identifier removed when  $REVOKID  completes  execution.
  The  name  argument  is  the address of a descriptor pointing to the
  name of the identifier.

  prvatr

  VMS usage: mask_longword
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Attributes of the deleted identifier.  The prvatr  argument  is  the
  address   of  a  longword  used  to  store  the  attributes  of  the
  identifier.

$SCHDWK

  The Schedule Wakeup service schedules the  awakening  of  a  process
  that  has placed itself in a state of hibernation with the Hibernate
  ($HIBER) service.   A  wakeup  can  be  scheduled  for  a  specified
  absolute  time  or  for  a  delta time, and can be repeated at fixed
  intervals.

     Format:

       SYS$SCHDWK  [pidadr] ,[prcnam] ,daytim ,[reptim]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process that is to be  awakened.
  The pidadr argument is the address of a longword containing the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the process to be awakened.  The prcnam is the address of  a
  character string descriptor pointing to the process name, which is a
  character string of from 1 to 15 characters.

  daytim

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Time at which the process is to be awakened.  The daytim argument is
  the  address of a quadword containing this time in the system 64-bit
  time format.  A positive time value specifies an  absolute  time  at
  which  the  specified  process  is  to be awakened.  A negative time
  value specifies an offset (delta time) from the current time.

  reptim

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Time interval at which the wakeup request is to  be  repeated.   The
  reptim  argument  is  the address of a quadword containing this time
  interval.  The time interval must be expressed in delta time format.

$SETAST

  The Set AST Enable service enables or disables the delivery of  ASTs
  for the access mode from which the service call was issued.

     Format:

       SYS$SETAST  enbflg

     Argument

  enbflg

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Value specifying  whether  ASTs  are  to  be  enabled.   The  enbflg
  argument  is a byte containing this value.  A value of 1 enables AST
  delivery for the calling access mode; a  value  of  0  disables  AST
  delivery.

$SETEF

  The Set Event Flag service sets an event flag in a local  or  common
  event   flag  cluster.   The  condition  value  returned  by  $SETEF
  indicates whether the specified flag was previously  set  or  clear.
  Once  the event flag is set, processes waiting for the event flag to
  be set resume execution.

     Format:

       SYS$SETEF  efn

     Argument

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set.  The efn argument is a  longword
  containing this number.

$SETEXV

  The Set Exception Vector service (1)  assigns  a  condition  handler
  address  to the primary, secondary, or last chance exception vectors
  or (2) removes a previously assigned handler  address  from  any  of
  these three vectors.

     Format:

       SYS$SETEXV  [vector] ,[addres] ,[acmode] ,[prvhnd]

     Arguments:

  vector

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Vector for which  a  condition  handler  is  to  be  established  or
  removed.   The  vector  argument  is a longword value.  A value of 0
  (the default) specifies the  primary  vector;  a  value  of  1,  the
  secondary  vector;  and  a  value  of  2,  the last chance exception
  vector.

  addres

  VMS usage: procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  Condition handler address to be established for the exception vector
  specified  by  vector.   The  addres  argument  is  a longword value
  containing the address of the entry mask to  the  condition  handler
  routine.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode for which the exception vector is to be  modified.   The
  acmode  argument  is  a  longword  containing  the access mode.  The
  $PSLDEF macro defines symbols for the four access modes.

  prvhnd

  VMS usage: procedure
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Previous  condition  handler  address  contained  by  the  specified
  exception  vector.  The prvhnd argument is the address of a longword
  into which $SETEF writes the handler address.

$SETIME

  The Set System  Time  service  (1)  changes  the  value  of  or  (2)
  recalibrates the system time.

  The system time is defined by a quadword value  that  specifies  the
  number of 100 nanosecond intervals since 00:00 o'clock, November 17,
  1858.

  The system time is the reference used for nearly  all  timer-related
  software activities in VMS.

     Format:

       SYS$SETIME  [timadr]

     Argument

  timadr

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  New time value for the system time.   The  timadr  argument  is  the
  address of a quadword containing the new system time value.  The new
  system time value is an absolute time value specifying the number of
  100  nanosecond intervals since 00:00 o'clock, November 17, 1858.  A
  negative (delta) time value is invalid.

$SETIMR

  The Set Timer service sets the timer to expire at a specified  time.
  When the timer expires, an event flag is set and (optionally) an AST
  routine executes.

     Format:

       SYS$SETIMR  [efn] ,daytim ,[astadr] ,[reqidt] ,[flags]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Event flag to be set when the timer expires.  The efn argument is  a
  longword  value  containing the number of the event flag.  If efn is
  not specified, event flag 0 is set.

  daytim

  VMS usage: date_time
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Time at which the timer expires.  The daytim argument is the address
  of  a  quadword  time  value.   A  positive  time value specifies an
  absolute time at which the timer  expires;  a  negative  time  value
  specifies an offset (delta time) from the current time.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine that is to execute when the timer expires.   The
  astadr  is the address of the entry mask of this routine.  If astadr
  is not specified or is specified as 0 (the default), no AST  routine
  executes.

  reqidt

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Identification of the timer request.  The reqidt is a longword value
  containing  a number that uniquely identifies the timer request.  If
  reqidt is not specified, the value 0 is used.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

$SETPRA

  The Set Power Recovery AST service establishes a routine to  receive
  control after a power recovery is detected.

     Format:

       SYS$SETPRA  astadr ,[acmode]

     Arguments:

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  Power recovery AST routine to receive control when a power  recovery
  is  detected.   The  astadr is the address of the entry mask of this
  routine.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode at which the power recovery AST routine is  to  execute.
  The  acmode  argument is a longword containing the access mode.  The
  $PSLDEF macro defines symbols for the four access modes.

$SETPRI

  The Set Priority service changes a  process's  base  priority.   The
  base  priority  is  used  to determine the order in which executable
  processes are to run.

     Format:

       SYS$SETPRI  [pidadr] ,[prcnam] ,pri ,[prvpri]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process whose priority is to  be
  set.  The pidadr argument is the address of the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name of the process whose priority is to  be  changed.   The
  prcnam  argument  is  the  address  of a character string descriptor
  pointing to a 1- to 15-character process name string.

  pri

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  New base priority to  be  established  for  the  process.   The  pri
  argument   is   a   longword  value  containing  the  new  priority.
  Priorities which are not real time are in the range  0  through  15;
  real-time priorities are in the range 16 through 31.

  prvpri

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Base priority of the process before the call to $SETPRI.  The prvpri
  argument  is the address of a longword into which $SETPRI writes the
  process's previous base priority.

$SETPRN

  The Set Process Name service allows a process  to  establish  or  to
  change its own process name.

     Format:

       SYS$SETPRN  [prcnam]

     Argument

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name to  be  given  to  the  calling  process.   The  prcnam
  argument is the address of a character string descriptor pointing to
  a 1-  to  15-character  process  name  string.   If  prcnam  is  not
  specified, the calling process is given no name.

$SETPRT

  The Set Protection on Pages service allows a process to  change  the
  protection on a page or range of pages.

     Format:

       SYS$SETPRT  inadr ,[retadr] ,[acmode] ,prot ,[prvprt]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the range  of  pages  whose
  protection  is  to  be  changed.   The  inadr  is  the  address of a
  two-longword array containing, in order, the starting and the ending
  process  virtual addresses.  Only the virtual page number portion of
  each virtual address is used; the low-order 9 bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Starting and ending virtual addresses of the range  of  pages  whose
  protection  was  actually  changed  by  $SETPRT.   The retadr is the
  address of a two-longword array containing, in order,  the  starting
  and ending process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode  associated  with  the  call  to  $SETPRT.   The  acmode
  argument  is  a  longword  containing  the access mode.  The $PSLDEF
  macro defines symbols for the four access modes.

  prot

  VMS usage: page_protection
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Page protection to be assigned to the  specified  pages.   The  prot
  argument  is  a longword value containing the protection code.  Only
  bits 0 to 3 are used; bits 4 to 31 are ignored.

  prvprt

  VMS usage: page_protection
  type: byte (unsigned)
  access: write only
  mechanism: by reference

  Protection previously assigned to the last page in the  range.   The
  prvprt  argument  is the address of a byte into which $SETPRT writes
  the protection of this page.  The prvprt  argument  is  useful  only
  when protection for a single page is being changed.

$SETPRV

  The Set Privileges service enables or disables specified  privileges
  for the calling process.

     Format:

       SYS$SETPRV  [enbflg] ,[prvadr] ,[prmflg] ,[prvprv]

     Arguments:

  enbflg

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Indicator specifying whether the  specified  privileges  are  to  be
  enabled  or  disabled.   The  enbflg  is a byte value.  A value of 1
  specifies that the privileges specified in the prvadr  argument  are
  to  be  enabled.   A  value  of  0  (the default) indicates that the
  privileges are to be disabled.

  prvadr

  VMS usage: mask_privileges
  type: quadword (unsigned)
  access: read only
  mechanism: by reference

  Privileges to be enabled or disabled for the calling  process.   The
  prvadr argument is the address of a quadword bit vector wherein each
  bit corresponds to a privilege that is to be enabled or disabled.

  prmflg

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Indicator specifying whether  the  privileges  are  to  be  affected
  permanently or temporarily.  The prmflg is a byte value.  A value of
  1 specifies that the privileges are to be affected permanently, that
  is,  until  they  are  again  changed  by using $SETPRV or until the
  process is deleted.  A value of 0 (the default) specifies  that  the
  privileges  are  to  be  affected  temporarily,  that  is, until the
  current image exits (at which time the process's permanently enabled
  privileges will be restored).

  prvprv

  VMS usage: mask_privileges
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  Privileges previously possessed by the calling process.  The  prvprv
  argument  is  the  address of a quadword bit vector wherein each bit
  corresponds to a privilege that was  previously  either  enabled  or
  disabled.   If  prvprv  is  not  specified or is specified as 0, the
  previous privilege mask is not returned.

$SETRWM

  The Set Resource Wait Mode service allows a process to specify  what
  action  system  services  should take when system resources required
  for their execution are unavailable.

  When resource wait mode is enabled, system services  will  wait  for
  the  required  system  resources  to  become available and then will
  continue execution.

  When resource wait mode is disabled, system services will return  to
  the caller when required system resources are unavailable.

  The condition value returned by $SETRWM indicates  whether  resource
  wait mode was previously enabled or previously disabled.

     Format:

       SYS$SETRWM  [watflg]

     Argument

  watflg

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Indicator  specifying  whether  system  services  should  wait   for
  required  resources.   The  watflg  argument is a longword value.  A
  value of 0 (the default) specifies that system services should  wait
  until  resources  needed  for  their  execution become available.  A
  value of 1 specifies that  system  services  should  return  failure
  status  immediately  when  resources  needed for their execution are
  unavailable.

$SETSFM

  The Set System Service  Failure  Exception  Mode  service  allows  a
  process  to  specify  whether  or not VMS should generate a software
  exception when a system service returns an  error  or  severe  error
  condition value to the calling process.

  The $SETSFM indicates in the  condition  value  it  returns  whether
  system  service  exception  mode was enabled or disabled previous to
  the call (to $SETSFM).

  Initially, system service failure exception mode is disabled, so the
  caller  should explicitly test for successful completion following a
  system service call.

     Format:

       SYS$SETSFM  [enbflg]

     Argument

  enbflg

  VMS usage: boolean
  type: byte (unsigned)
  access: read only
  mechanism: by value

  Number specifying whether the system service failure exception  mode
  is  to be enabled.  The enbflg argument is a byte value.  A value of
  1 specifies that  the  system  service  failure  exception  mode  is
  enabled.   A  value  of  0  (the  default) specifies that the system
  service failure exception mode is disabled.

$SETSSF

  The Set System Services Filter service inhibits user-mode  calls  to
  certain  system  services.   The following system services cannot be
  inhibited by $SETSSF:

       $ASCTIM  $BINTIM    $EXIT      $FAO

       $FAOL    $PUTMSG    $UNWIND

     Format:

       SYS$SETSSF  [mask]

     Arguments:

  mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Category of system services that are to be inhibited  for  user-mode
  calls.   The  mask  argument  is  a longword value of which only the
  first byte is significant.  The first byte is a bit vector wherein a
  bit when set specifies a category of system service to be inhibited.
  Only bits 0 and 1 are used; bits 2 to 7 are reserved.

$SETSTK

  The Set Stack Limits ($SETSTK) service allows a  process  to  change
  the size of its supervisor, executive, and kernel stacks by altering
  the  values  in  the  stack  limit  and  base  arrays  held  in   P1
  (per-process) space.

     Format:

       SYS$SETSTK  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Range of addresses that express the stack's new limits.   The  inadr
  argument  is  the  address  of  a  two-longword array containing, in
  order, the address of the top of the stack and the  address  of  the
  base of the stack.  Since stacks in P1 space expand from high to low
  addresses, the address of the base of the stack must be greater than
  the address of the top of the stack.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference

  Range of addresses that express the stack's  previous  limits.   The
  retadr  argument  is  the address of a two-longword array into which
  $SETSTK writes, in the first longword, the previous address  of  the
  top  of  the stack and, in the second longword, the previous address
  of the base of the stack.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode of the stack to be altered.  The acmode  argument  is  a
  longword  containing  the  access  mode.   The $PSLDEF macro defines
  symbols for the four access modes.  The most privileged access  mode
  used is the access mode of the caller.

$SETSWM

  The Set Process Swap  Mode  service  allows  a  process  to  control
  whether or not it can be swapped out of the balance set.

  When process swap mode is enabled, the process can be  swapped  out;
  when  disabled,  the  process  remains  in the balance set until (1)
  process swap mode is re-enabled or (2) the process is deleted.

  The $SETSWM service returns a  condition  value  indicating  whether
  process  swap  mode  was enabled or disabled previous to the call to
  $SETSWM.

  To lock some but not necessarily all process pages into the  balance
  set, use the Lock Pages in Memory ($LCKPAG) service.

     Format:

       SYS$SETSWM  [swpflg]

     Argument

  swpflg

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Indicator specifying whether or not the process can be swapped.  The
  swpflg  is  a  longword  value.   A value of 0 (the default) enables
  process swap mode, meaning the process can be swapped.  A value of 1
  disables process swap mode, meaning the process cannot be swapped.

$SETUAI

  The Set User Authorization Information ($SETUAI) service is used  to
  modify  the  user  authorization  file  (UAF) record for a specified
  user.

     Format:

       SYS$SETUAI  [nullarg] ,[nullarg] ,usrnam ,itmlst ,[nullarg]
                  ,[nullarg]

     Arguments:

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

  usrnam

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor-fixed length string descriptor

  Name of the user whose  user  authorization  file  (UAF)  record  is
  modified.   The  usrnam  argument  is  the  address  of a descriptor
  pointing to a character text string containing the user  name.   The
  user   name   string  may  contain  a  maximum  of  12  alphanumeric
  characters.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list specifying which information from the specified user's UAF
  (user  authorization  file)  record  is  to be modified.  The itmlst
  argument is the address of a list of one or more  item  descriptors,
  each  of  which specifies an item code.  The item list is terminated
  by an item code of 0 or by a longword of 0.

$SNDERR

  The Send Message to Error Logger  service  writes  a  user-specified
  message to the system error log file, preceding it with the date and
  time.

     Format:

       SYS$SNDERR  msgbuf

     Argument

  msgbuf

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor--fixed length string descriptor

  Message to be written to the error log file.  The msgbuf argument is
  the address of a character string descriptor pointing to the message
  text.

$SNDJBC

  The Send to Job Controller ($SNDJBC)  service  creates,  stops,  and
  manages  queues  and  the  batch and  print  jobs  in  those queues.
  See the  Description  section  for  a  discussion of  the  types  of
  queue  supported  by  the  VMS  batch/print  facility.  The  $SNDJBC
  and $GETQUI services together provide the user interface to the  VMS
  Job  Controller, which is the VMS queue and accounting manager.

  The $SNDJBC service completes asynchronously, that is, it returns to
  the  caller  after  queueing  the  request,  without waiting for the
  operation to complete.

  To synchronize the completion of most operations, use  the  Send  to
  Job Controller and Wait ($SNDJBCW) service.  The $SNDJBCW service is
  identical to $SNDJBC in every way except that  $SNDJBCW  returns  to
  the caller after the operation has completed.

  The $SNDJBC and $SNDJBCW services  supersede  the  Send  Message  to
  Symbiont  Manager  ($SNDSMB)  and Send Message to Accounting Manager
  ($SNDACC) services.  New programs should be written using $SNDJBC or
  $SNDJBCW,  instead  of  $SNDSMB  or  $SNDACC, and old programs using
  $SNDSMB or $SNDACC should be converted to use $SNDJBC or $SNDJBCW as
  convenient.

     Format:

       SYS$SNDJBC  [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr]
                  [,astprm]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag to be set when $SNDJBC completes.  The  efn
  argument  is a longword containing this number.  The efn argument is
  optional.

  func

  VMS usage: function_code
  type: word (unsigned)
  access: read only
  mechanism: by value

  Function code specifying the function that $SNDJBC  is  to  perform.
  The  func  argument  is  a  word containing this function code.  The
  $SJCDEF macro defines the names of each function code.

  nullarg

  VMS usage: null_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Place-holding argument.  This argument is reserved to DIGITAL.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list  supplying  information  to  be  used  in  performing  the
  function specified by the func argument.  The itmlst argument is the
  address of the item list.  The item list consists  of  one  or  more
  item  descriptors,  each  of which specifies an item code.  The item
  list is terminated by an item code of 0 or by a longword of 0.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block into which $SNDJBC  writes  the  completion  status
  after  the  requested  operation  has  completed.   The  iosb is the
  address of the I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference

  AST service routine to be  executed  when  $SNDJBC  completes.   The
  astadr argument is the address of the entry mask of this routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST service routine  specified  by
  the   astadr   argument.   The  astprm  argument  is  this  longword
  parameter.

$SNDJBCW

  The Send to Job Controller and Wait  for  Completion  ($SNDJBW)  and
  $GETQUI  services  together  provide  the  user interface to the Job
  Controller (JBC) facility.  The $SNDJBW service allows the  user  to
  create,  stop,  and  manage  queues  and  the  jobs in those queues.
  Queues may be generic, batch, execution, or output queues.  Jobs may
  be batch or print jobs.

  The $SNDJBCW service queues a request to the  Job  Controller.   For
  most  operations,  $SNDJBCW  completes  synchronously,  that  is, it
  returns to the caller after the operation has  completed.   However,
  if  the  requested  operation is a pause queue, stop queue, or abort
  job operation, $SNDJBCW returns to the  caller  after  queueing  the
  request.   There  is  no  way  to  synchronize  completion  of these
  operations.  Also, $SNDJBCW does not wait  for  a  job  to  complete
  before it returns to the caller; to synchronize completion of a job,
  the caller must specify the SJC$_SYNCHRONIZE_JOB function code.

  The $SNDJBCW service is identical to  the  Send  to  Job  Controller
  ($SNDJBC)  service except that $SNDJBC completes asynchronously; the
  $SNDJBC service returns to the caller immediately after queueing the
  request, without waiting for the operation to complete.

  The $SNDJBC and $SNDJBCW services  supersede  the  Send  Message  to
  Symbiont  Manager  ($SNDSMB)  and Send Message to Accounting Manager
  ($SNDACC) services.  New programs should be written using $SNDJBC or
  $SNDJBCW,  instead  of  $SNDSMB  or  $SNDACC, and old programs using
  $SNDSMB or $SNDACC should be converted to use $SNDJBC or $SNDJBCW as
  convenient.

     Format:

       SYS$SNDJBCW  [efn] ,func [,nullarg] [,itmlst] [,iosb] [,astadr]
                  [,astprm]

$SNDOPR

  The $SNDOPR service performs the following functions:

  o  Sends a user request to operator terminals

  o  Sends a user cancellation-request to operator terminals

  o  Sends an operator reply to a user terminal

  o  Enables an operator terminal

  o  Displays the status of an operator terminal

  o  Initializes the operator log file

     Format:

       SYS$SNDOPR  msgbuf ,[chan]

     Arguments:

  msgbuf

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  User buffer specifying the operation to be performed and information
  needed  to  perform  that operation.  The msgbuf is the address of a
  character string descriptor pointing to the buffer.

  chan

  VMS usage: channel
  type: word (unsigned)
  access: read only
  mechanism: by value

  Channel assigned to the mailbox to which the reply is  to  be  sent.
  The  chan  argument is a longword value containing the number of the
  channel.  If chan is  not  specified  or  is  specified  as  0  (the
  default), no reply is sent.

$START_RU

  Applicable only if you have the RMS Journaling option.  See the VAX
  RMS Journaling Manual.

  The Start Recovery Unit Service denotes the beginning of a recovery
  unit for use in RMS Journaling.  When a recovery unit is started,
  all files that have been opened by the application and marked for
  recovery unit journaling (or, more specifically, all streams that
  are connected to files marked for recovery unit journaling), and not
  already in an active recovery unit join that new recovery unit. All
  operations involving those files are part of the recovery unit until
  the recovery unit is completed.  If a file is involved in a recovery
  unit, you cannot close the file before the recovery unit has been
  completed.  (More specifically, you cannot disconnect a stream
  until the recovery unit has been completed.)

     Format:

         SYS$START_RU ru_handle

     Arguments:

         ru_handle

         VMS Usage: ru_handle
         type: longword (unsigned)
         access: write only
         mechanism: by reference

         The ru_handle argument is the address of an unsigned longword
         to which the recovery unit handle is to be returned.

$SUSPND

  The Suspend Process service allows a process to  suspend  itself  or
  another  process.   A  suspended  process  cannot  receive  ASTs  or
  otherwise be executed until another process resumes or deletes it.

     Format:

       SYS$SUSPND  [pidadr] ,[prcnam] ,[flags]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process to  be  suspended.   The
  pidadr argument is the address of the longword PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the process to be suspended.  The  prcnam  argument  is  the
  address  of  a  character  string  descriptor  pointing  to  a 1- to
  15-character process name string.

  flags

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

$SYNCH

  The Synchronize service checks the completion  status  of  a  system
  service that completes asynchronously.

  The service whose completion status is to be checked must have  been
  called  with the efn and iosb arguments specified because the $SYNCH
  service uses the event flag and I/O status block of the  service  to
  be checked.

     Format:

       SYS$SYNCH  [efn] ,[iosb]

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag specified in the call to the system service
  whose  completion  status  is  to  be  checked  by  $SYNCH.  The efn
  argument is a longword containing this number.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block specified in the call to the system  service  whose
  completion  status is to be checked by $SYNCH.  The iosb argument is
  the address of this quadword I/O status block.

SYS$RMSRUNDWN

  The RMS Rundown service closes all files opened by RMS for the image
  or  process  and halts I/O activity.  This routine performs a $CLOSE
  service for each file that is opened for processing.

     Format:

       SYS$RMSRUNDWN  buf-addr,   type-value

     Arguments:

  buf-addr

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by
  descriptor

  A descriptor pointing to a 22-byte  buffer  that  will  receive  the
  device  identification  (16  bytes)  and  the file identification (6
  bytes) of an improperly closed output file.  The  buf-addr  argument
  is the address of the descriptor that points to the buffer.

  type-value

  VMS usage: byte_unsigned
  type: byte (unsigned)
  access: read only
  mechanism: by value

  A single byte code that specifies the type  of  I/O  rundown  to  be
  performed.  The type-value argument is the actual value used.

SYS$SETDDIR

  The Set Default Directory service allows you to read  and/or  change
  the  default  directory  string for the process.  You should restore
  the old default directory string to its original status  unless  you
  want the changed default directory string to last beyond the exit of
  your image.

     Format:

       SYS$SETDDIR  [new-dir-addr] [,length-addr] [,cur-dir-addr]

     Arguments:

  new-dir-addr

  VMS usage: char_string
  type: character-coded text string
  access: read only
  mechanism: by
  descriptor-fixed length string descriptor

  A  descriptor  of  the  new  default  directory.   The  new-dir-addr
  argument  is the address of the descriptor that points to the buffer
  containing the new directory specification that RMS will use to  set
  the  new process-default directory.  If the default directory is not
  to be changed, the value of the new-dir-addr argument should be 0.

  length-addr

  VMS usage: word_unsigned
  type: word (unsigned)
  access: write only
  mechanism: by reference

  A word that  is  to  receive  the  length  of  the  current  default
  directory.  The length-addr argument is the address of the word that
  will receive the length.  Specify a value of 0 if you  do  not  want
  this value returned.

  cur-dir-addr

  VMS usage: char_string
  type: character-coded text string
  access: write only
  mechanism: by
  descriptor-fixed length string descriptor

  A descriptor of a buffer that is  to  receive  the  current  default
  directory  string.   The cur-dir-addr argument is the address of the
  descriptor that points to the buffer area that  is  to  receive  the
  current  directory  string.  Specify a value of 0 if you do not want
  this to be used.

SYS$SETDFPROT

  The Set Default File Protection service allows you  to  read  and/or
  write  the  default  file  protection  for  the process.  You should
  restore the old default file  protection  specification  unless  you
  want the changed default to last beyond the exit of your image.

     Format:

       SYS$SETDFPROT  [new-def-prot-addr,] [cur-def-prot-addr]

     Arguments:

  new-def-prot-addr

  VMS usage: file_protection
  type: word (unsigned)
  access: read only
  mechanism: by
  reference

  A word that specifies the new default file protection specification.
  The  new-def-prot-addr  argument  is  the  address  of the word that
  specifies the desired protection.  Specify a value of 0  if  you  do
  not want the process-default file protection to be changed.

  cur-def-prot-addr

  VMS usage: file_protection
  type: word (unsigned)
  access: write only
  mechanism: by
  reference

  A word that is  to  receive  the  current  default  file  protection
  specification.  The cur-def-prot-addr argument is the address of the
  word that receives the current process-default protection.   Specify
  0 if this is not wanted.

$TRNLNM

  The Translate Logical  Name  service  returns  information  about  a
  logical name.

     Format:

       SYS$TRNLNM  [attr] ,tabnam ,lognam ,[acmode] ,[itmlst]

     Arguments:

  attr

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Attributes controlling the search for the logical  name.   The  attr
  argument  is  the  address  of  a longword bit mask specifying these
  attributes.

  tabnam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Name of the table or name of a list  of  table  names  in  which  to
  search  for the logical name.  The tabnam argument is the address of
  a descriptor pointing to this name.  This argument is required.

  lognam

  VMS usage: logical_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Logical name about which information is to be returned.  The  lognam
  argument is the address of a descriptor pointing to the logical name
  string.  This argument is required.

  acmode

  VMS usage: access_mode
  type: byte (unsigned)
  access: read only
  mechanism: by reference

  Access mode to be used in the translation.  The acmode  argument  is
  the address of a byte specifying the access mode.  The $PSLDEF macro
  defines symbolic names for the four access modes.

  itmlst

  VMS usage: item_list_3
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Item list describing the information that $TRNLNM is to return.  The
  itmlst  argument  is the address of a list of item descriptors, each
  of which  specifies  or  controls  an  item  of  information  to  be
  returned.   The list of item descriptors is terminated by a longword
  of 0.

$ULKPAG

  The Unlock  Pages  from  Memory  service  unlocks  pages  that  were
  previously  locked  in  memory by the Lock Pages in Memory ($LCKPAG)
  service.

  Locked pages are automatically unlocked and deleted at image exit.

     Format:

       SYS$ULKPAG  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Starting and ending virtual addresses of the pages to  be  unlocked.
  The  inadr  is  the  address  of a two-longword array containing, in
  order, the starting and the ending process virtual addresses.   Only
  the virtual page number portion of each virtual address is used; the
  low-order 9 bits are ignored.  If the starting  and  ending  virtual
  addresses are the same, a single page is unlocked.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Starting and ending process virtual addresses of the pages  actually
  unlocked  by  $ULKPAG.   The retadr is the address of a two-longword
  array containing, in order, the starting and ending process  virtual
  addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode on behalf of which  the  request  is  being  made.   The
  acmode  argument  is  a  longword  containing  the access mode.  The
  $PSLDEF macro defines the symbols for the four access modes.

$ULWSET

  The Unlock Pages from Working Set service unlocks  pages  that  were
  previously  locked  in  the working set by the Lock Pages in Working
  Set  ($LKWSET)  service.   Unlocked  pages  become  candidates   for
  replacement within the process's working set.

     Format:

       SYS$ULWSET  inadr ,[retadr] ,[acmode]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference--array reference or
  descriptor

  Starting and ending virtual addresses of the pages to  be  unlocked.
  The  inadr  is  the  address  of a two-longword array containing, in
  order, the starting and the ending process virtual addresses.   Only
  the virtual page number portion of each virtual address is used; the
  low-order 9 bits are ignored.  If the starting  and  ending  virtual
  address are the same, a single page is unlocked.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Starting and ending process virtual addresses of the pages that were
  actually  unlocked  by  $CRMPSC.   The  retadr  is  the address of a
  two-longword array containing, in order,  the  starting  and  ending
  process virtual addresses.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode on behalf of which  the  request  is  being  made.   The
  acmode  argument  is  a  longword  containing  the access mode.  The
  $PSLDEF macro defines the symbols for the four access modes.

$UNWIND

  The Unwind Call Stack service unwinds the procedure call stack; that
  is,  it  removes  a  specified number of call frames from the stack.
  Optionally, it may return control to a new PC  after  unwinding  the
  stack.    $UNWIND   is   intended   to   be  called  from  within  a
  condition-handling routine.

     Format:

       SYS$UNWIND  [depadr] ,[newpc]

     Arguments:

  depadr

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  Depth to which the procedure call  stack  is  to  be  unwound.   The
  depadr  argument  is  the  address of a longword value.  The value 0
  specifies the call frame of the procedure that  was  executing  when
  the  condition  occurred  (that  is,  no call frames are unwound), 1
  specifies the caller of that frame, 2 specifies the  caller  of  the
  caller of that frame, and so on.

  newpc

  VMS usage: address
  type: longword (unsigned)
  access: read only
  mechanism: by reference

  New value for the program counter  (PC);  this  value  replaces  the
  current  value  of  the  PC  in the call frame of the procedure that
  receives control when the  unwinding  operation  is  complete.   The
  newpc  argument  is a longword value containing the address at which
  execution is to resume.

$UPDSEC

  The Update Section File on Disk service writes all modified pages in
  an  active  private  or global section back into the section file on
  disk.  One or more I/O requests are queued, based on the  number  of
  pages that have been modified.

     Format:

       SYS$UPDSEC  inadr ,[retadr] ,[acmode] ,[updflg]

                   ,[efn] ,[iosb] ,[astadr] ,[astprm]

     Arguments:

  inadr

  VMS usage: address_range
  type: longword (unsigned)
  access: read only
  mechanism: by reference--array reference or
  descriptor

  Starting and ending virtual addresses of the pages that  are  to  be
  written  to  the section file if they have been modified.  The inadr
  is the address of a two-longword array  containing,  in  order,  the
  starting and the ending process virtual addresses.  Only the virtual
  page number portion of each virtual address is used; the low-order 9
  bits are ignored.

  retadr

  VMS usage: address_range
  type: longword (unsigned)
  access: write only
  mechanism: by reference--array reference
  or descriptor

  Addresses of the first and last pages that were actually queued  for
  writing,  in  the  first  $QIO  request, back to the section file on
  disk.  The retadr argument is the address of  a  two-longword  array
  containing,  in order, the address of the first page and the address
  of the last page.

  acmode

  VMS usage: access_mode
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Access mode on behalf of which the service is performed.  The acmode
  argument  is  a  longword  containing  the access mode.  The $PSLDEF
  macro defines the symbols for the four access modes.

  updflg

  VMS usage: longword_unsigned
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Update  specifier  for  read/write  global  sections.   The   updflg
  argument  is  a longword value.  The value 0 (the default) specifies
  that all read/write pages in the global section are to be written to
  the  section  file  on  disk, regardless of whether or not they have
  been modified.  The value 1 specifies that (1)  the  caller  is  the
  only process actually writing the global section, and (2) only those
  pages that were actually modified by the caller are to be written to
  the section file on disk.

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Event flag to be set when the  section  file  on  disk  is  actually
  updated.   The  efn  argument is a longword specifying the number of
  the event flag.

  iosb

  VMS usage: io_status_block
  type: quadword (unsigned)
  access: write only
  mechanism: by reference

  I/O status block that is to receive the final completion  status  of
  the  updating  operation.   The  iosb argument is the address of the
  quadword I/O status block.

  astadr

  VMS usage: ast_procedure
  type: procedure entry mask
  access: call without stack unwinding
  mechanism: by
  reference--procedure reference or descriptor

  AST routine to be executed when the section file has  been  updated.
  The  astadr  argument  is  the  address  of  the  entry mask of this
  routine.

  astprm

  VMS usage: user_arg
  type: longword (unsigned)
  access: read only
  mechanism: by value

  AST parameter to be passed to the AST routine.  The astprm  argument
  is this longword parameter.

$UPDSECW

  The Update Section File on Disk and Wait service writes all modified
  pages  in  an active private or global section back into the section
  file on disk.  One or more I/O requests are  queued,  based  on  the
  number of pages that have been modified.

  The $UPDSECW service completes synchronously; that is, it returns to
  the caller after writing all updated pages.

  For asychronous completion, use the  Update  Section  File  on  Disk
  ($UPDSEC)  service;  $UPDSEC returns to the caller after queuing the
  update request, without waiting for the pages to be updated.

  In all other respects, $UPDSECW is identical to $UPDSEC.   Refer  to
  the  documentation  of  $UPDSEC  for all other information about the
  $UPDSECW service.

     Format:

       SYS$UPDSECW  inadr [,retadr] [,acmode] [,updflg] [,efn] [,iosb]
                  [,astadr] [,astprm]

$WAITFR

  The Wait for Single Event Flag service tests a specific  event  flag
  and  returns immediately if the flag is set.  Otherwise, the process
  is placed in a wait state until the event flag is set.

     Format:

       SYS$WAITFR  efn

     Argument

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of the event flag for which to wait.  The efn argument  is  a
  longword containing this number.

$WAKE

  The Wake Process from Hibernation service activates a  process  that
  has  placed  itself  in  a  state  of hibernation with the Hibernate
  ($HIBER) service.

     Format:

       SYS$WAKE  [pidadr] ,[prcnam]

     Arguments:

  pidadr

  VMS usage: process_id
  type: longword (unsigned)
  access: modify
  mechanism: by reference

  Process identification (PID) of the process  to  be  awakened.   The
  pidadr argument is the address of a longword containing the PID.

  prcnam

  VMS usage: process_name
  type: character-coded text string
  access: read only
  mechanism: by descriptor--fixed
  length string descriptor

  Process name of the process to be awakened.  The prcnam argument  is
  the  address  of  a  character string descriptor pointing to a 1- to
  15-character process name string.

$WFLAND

  The Wait for Logical AND of Event Flags service allows a process  to
  specify  a  set  of  event  flags  for which it wishes to wait.  The
  process is put in a wait state until all specified event  flags  are
  set,  at  which  time  $WFLAND  returns  to the caller and execution
  resumes.

     Format:

       SYS$WFLAND  efn ,mask

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of any event flag within the event flag cluster that is to be
  used.   The  efn  argument  is  a  longword  containing this number.
  Specifying the number of an event flag within the cluster serves  to
  identify the event flag cluster.

  mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Event flags for which the process is to wait.  The mask argument  is
  a  longword  bit  vector  wherein  a  bit,  when  set,  selects  the
  corresponding event flag for which to wait.

$WFLOR

  The Wait for Logical OR of Event Flags service allows a  process  to
  specify  a  set  of  event  flags  for which it wishes to wait.  The
  process is put in a wait state until any one of the specified  event
  flags  is  set,  at  which  time  $WFLOR  returns  to the caller and
  execution resumes.

     Format:

       SYS$WFLOR  efn ,mask

     Arguments:

  efn

  VMS usage: ef_number
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Number of any event flag within the event flag cluster that is to be
  used.   The  efn  argument  is  a  longword  containing this number.
  Specifying the number of an event flag within the cluster serves  to
  identify the event flag cluster.

  mask

  VMS usage: mask_longword
  type: longword (unsigned)
  access: read only
  mechanism: by value

  Event flags for which the process is to wait.  The mask argument  is
  a  longword  bit  vector  wherein  a  bit,  when  set,  selects  the
  corresponding event flag for which to wait.

V50 NewFeatures

                New and Changed Features for VMS Version 5.0
                --------------------------------------------

  Following is a brief summary of the  enhancements  included  with  VMS
  Version 5.0.  Refer  to  the  VMS Version 5.0 New Features Manual  for
  complete information on these new features.


  DCL Features
  ------------

        o  Enhanced IF construct: accepts multiple statements,  provides
           optional ELSE statement

        o  New DCL commands:  SET ENTRY and  SHOW ENTRY (set and display
           job  information  from  queues),  SET  CLUSTER/EXPECTED_VOTES
           (replaces  SET CLUSTER/QUORUM),  INSTALL,  and  SET  HOST/DUP
           (connects a terminal to an HSC storage controller)

        o  Enhanced DCL commands: SET PROCESS/SUSPEND (allow/disallow
           ASTs during suspend), SET/SHOW TERMINAL  (VT300  support),
           SHOW CPU, START/CPU, STOP/CPU (multiprocessing support)

        o  New qualifiers: RECALL/ERASE (erases recall buffer), SET FILE
           /STATISTICS, SET HOST/BUFFER_SIZE, SET HOST/RESTORE; new SHOW
           QUEUE qualifiers

        o  Lexical functions: new F$GETQUI (Get Queue Information) lexi-
           cal function, additional  item  codes  for  F$GETSYI  lexical
           function


  MAIL Features
  -------------

        o  New  commands:  MARK,  SET/SHOW FORM  (modifies/displays  the
           default print form), SET/SHOW QUEUE (modifies/displays default
           print queue), SET/SHOW CC_PROMPT (selects/displays carbon copy
           prompting)

        o  Enhanced commands: DELETE, SET/SHOW COPY_SELF, SHOW ALL, SEND,
           FIRST/EDIT, LAST/EDIT, CURRENT/EDIT

        o  New qualifiers:   DIRECTORY/EDIT, FORWARD/SELF, /PERSONAL_NAME
           and /CC_PROMPT  qualifiers  for the SEND, REPLY,  and  FORWARD
           commands,    new  PRINT  qualifiers,   SHOW FORWARD/ALL,  SHOW
           PERSONAL_NAME/ALL

        o  V5.0 MAIL  includes a new user profile, VMSMAIL_PROFILE.DATA,
           in  the  SYS$SYSTEM  directory.   The  profile  contains  the
           following information: user name, forwarding address, personal
           name, auto purge flag, mail subdirectory name, and  new  mail
           count.  The user profile  also  contains  the  following  new
           information for VMS Version 5.0: default queue, default form,
           copy self flags, and carbon copy prompt flag


  Extensible VAX Editor (EVE) Features
  ------------------------------------

        o  EVE Version 2.0, supplied with VMS Version  5.0,  includes  a
           total of 47 new and enhanced commands. Refer to the Guide  to
           VMS Text Processing for complete information  about  new  EVE
           features. The VMS V5.0 New Features Manual contains a summary
           of these changes.

        o  The name of the default TPU command  file  has  changed  from
           TPUINI.TPU to TPU$COMMAND.TPU$COMMAND.  The  name of the com-
           piled EVE section file has changed from EVESECINI.TPU$SECTION
           to EVE$SECTION.TPU$SECTION.


  Cluster Management Features
  ---------------------------
        o  VAXcluster support for MicroVAX and VAXstation processors

        o  Failover support for DSA (UDA, KDA, BDA) disks

        o  MSCP-served HSC disks

        o  Enhanced SHOW CLUSTER Utility:  add  or  remove local process
           names individually or by group; add  or remove systems by ID,
           node name, or type; show number of votes expected by  cluster
           members and number of systems in the cluster; display cluster
           timeout parameter and node's software version

        o  New  cluster  SYSGEN  parameters:   EXPECTED_VOTES  (replaces
           QUORUM), NISCS_CONV_BOOT,  NISCS_LOAD_PEA0,  NISCS_PORT_SERV,
           MSCP_BUFFER, MSCP_CREDITS, MSCP_LOAD, and MSCP_SERVE_ALL


  New System Management Utility (SYSMAN)
  --------------------------------------

        o  Centralizes the management of nodes  and  clusters.   Specify
           system management tasks for the current node, another node in
           the cluster, a node outside the cluster,  all  nodes  in  the
           cluster, or another cluster in the network

        o  Accepts DCL commands SET, SHOW, MOUNT, DEFINE, and INITIALIZE

        o  Executes AUTHORIZE, AUTOGEN, DISKQUOTA, INSTALL, and SYSGEN
           utility commands

        o  Requires user to be privileged on all VMS systems defined as
           the system management environment


  Queue Management Features
  -------------------------

        o  New DCL queue commands SET and SHOW ENTRY

        o  New qualifiers for the following queue  commands:  SHOW QUEUE,
           INITIALIZE/QUEUE, START/QUEUE, and SET QUEUE

        o  New F$GETQUI lexical function

        o  New item codes for $GETQUI and $SNDJBC system services

        o  Support for access control lists (ACLs) on queues


  System Security Features
  ------------------------

        o  New /FAILURE_MODE qualifier for SET AUDIT command:  specifies
           how VMS proceeds when unable to perform security  audits  due
           to insufficient system resources; SHOW AUDIT/FAILURE_MODE and
           SHOW AUDIT/ALL display the current failure mode on the system

        o  Forced password change: In VMS Version 5.0,  users are forced
           to change expired passwords when logging in.  System managers
           can disable the new login flag  by  including  the  qualifier
           /FLAGS=DISFORCE_PWD_CHANGE when adding a new user or changing
           an existing UAF record.

        o  Changes to proxy login:  grant remote user proxy access to up
           to 15 local accounts and one  default  proxy  account;  allow
           remote user  on  non-VMS systems (identified  by  UIC)  proxy
           access to the local system.  Remote system  must  be a DECnet
           Phase IV node.
                                    Note:
           The name of the proxy database has changed from NETUAF.DAT to
           NETPROXY.DAT.

        o  Support for access control lists (ACLs) on queues


  Network Management Features
  ---------------------------

        o  NCP enhancements:  two new NCP executor  parameters  INCOMING
           PROXY and OUTGOING PROXY to enable or disable proxy access to
           the system  (these  parameters  replace  SET EXECUTOR DEFAULT
           PROXY); permitted use of wildcard characters in NCP;  support
           for equal cost path splitting;  additional  downline  loading
           parameters  MANAGEMENT  FILE,  LOAD  ASSIST  AGENT,  and LOAD
           ASSIST PARAMETER

        o  Support for multiple command line recall in NCP

        o  Support for  new  circuit and  line  devices:  DELQA,  DEBNT,
           DESVA, and DMB32


  Performance Management Features
  -------------------------------

        o  New classes of statistics  available  with  Monitor  Utility:
           MONITOR MODES/CPU (multiprocessor  synchronization),  MONITOR
           RMS, and MONITOR MSCP_SERVER

        o  AUTOGEN changes: new feedback mechanism; option to specify an
           alternate startup procedure in  MODPARAMS.DAT;  save  current
           parameter values in VAXVMSSYS.OLD; new mechanism  for  sizing
           page and swap files

        o  New SYSGEN parameters: MPW_IOLIMIT and MPW_LOWAITLIMIT (allow
           multiple outstanding I/Os and  increased  modified  page list
           throughput   for   large  memory  systems);   ERRORLOGBUFFERS
           (specify the size of the system dump file);  DUMPSTYLE (allow
           writing of partial memory dumps)

        o  Disallow detached processes: new keyword NONE  for  AUTHORIZE
           qualifier /MAXDETACH prevents specified users  from  creating
           detached processes (prevents abuse of system resources)

  New Site-Specific Startup Features
  ----------------------------------

        o  Installing page and swap files on alternate  disks:  if  page
           and swap files are not found in SYS$SYSTEM, STARTUP.COM  will
           execute SYS$MANAGER:SYPAGSWPFILES.COM

        o  New templates for site-specific command procedures LOGIN.COM,
           SYCONFIG.COM,  SYLOGICALS.COM,   SYSTARTUP.COM,  SYLOGIN.COM,
           and EDTINI.EDT. Templates for these procedures have the file
           extension .TEMPLATE.

  Backup Utility Features
  -----------------------

        o  Implicit $MOUNT requests:   BACKUP automatically mounts tapes
           before performing BACKUP operations;  a new /ASSIST qualifier
           allows user  to  specify  whether  BACKUP  notifies  operator
           terminals if a failure  occurs during a mount  attempt.  (The
           default is /ASSIST and can be overridden with /NOASSIST.)

        o  Tape label processing: BACKUP ensures that the specified tape
           label matches the existing  label  before  permitting  BACKUP
           operations to the tape;  for  write operations specified with
           /REWIND, BACKUP also checks the  expiration  date  to  verify
           that the  tape  has  expired  before  rewinding  the tape and
           writing data to it.

        o  Standalone BACKUP: allows multiple operations


  Miscellaneous Utility Features
  ------------------------------

        o  Mount Utility:  /MOUNT_VERIFICATION qualifier can be used for
           tapes (foreign and ANSI-labeled) as well as Files-11 disks;
           new /MULTI_VOLUME qualifier to override  MOUNT  volume-access
           checks

        o  Install Utility: new DCL command line interface

        o  LATCP Utility: support for  dual  Ethernet  links  on  a  VMS
           service node; creation of application services

        o  Terminal Fallback Utility (TFU):   new  character  conversion
           utility for VMS Version 5.0


  New Features For System Programmers
  -----------------------------------

        o  RMS:  multinational key support in  index  files;  new  file/
           record access controls; support  for  performance  monitoring
           on a per-file basis;  additional  statistics  available  with
           ANALYZE/RMS_FILE/STATISTICS command

        o  National Character Set (NCS) Utility: new utility for defining
           collating sequences and conversion functions

        o  Run-Time Library: new parallel processing facility, PPL$;  new
           and enhanced routines in the  library (LIB$),  DECtalk (DTK$),
           and screen management (SMG$) facilities

        o  Debugger Utility - Enhanced Commands:
            CALL             can be  issued  at exception breakpoints
            EXAMINE          displays address and contents of the
                              instruction operands
            SET MODULE/CALLS sets all modules that have routines on the
                              call stack
            SET WATCH        sets  watchpoints on nonstatic variables
            SPAWN            new /INPUT and /OUTPUT qualifiers
            STEP             can be issued at exception breakpoints

        o  Debugger Utility - New support for VAXstations, MACRO, and
           VAX Ada

        o  VAX MACRO Assembler:  supports VAX Source Code Analyzer (SCA)

        o  Text Processing Utility (TPU):  VAXTPU  Version  2.0  contains
           numerous new and changed features.  Refer to the  VMS  Version
           5.0 New Features Manual for a complete  description  of  these
           features.

        o  New VMSInstal Callbacks: ADD_IDENTIFIER (adds an identifier to
           the rightslist), SET_ACL (modifies the  ACL  of  a  directory,
           file, or device),  CREATE_DIRECTORY  (creates  system-specific
           directories), UNWIND (immediately exits installation)

        o  I/O Devices: supports Ethernet/802  controllers;  enhancements
           to DDCMP; new LAT port function code modifiers IO$M_LT_MAP_PORT
           (associates a specific port on a terminal server  with  a  LAT
           device) and IO$M_LT_RATING (sets a static  rating  for  a  VMS
           service)

        o  System Dump Analyzer  (SDA):   supports  VMS  multiprocessing;
           supports changes made to the executive in VMS Version 5.0; new
           commands SET CPU,  SHOW CPU,  SHOW SPINLOCKS,  SHOW EXECUTIVE;
           new /EXECUTIVE qualifier for the READ command; new options for
           SHOW PROCESS/RMS

        o  DELTA/XDELTA: new procedure for requesting software interrupts;
           support for VMS multiprocessing; new ;L command

        o  System Services:  new item codes for $GETDVI, $GETLKI, $GETQUI,
           and $GETSYI; new option $MNT$M_MULTI_VOL for $MOUNT  item  code
           MNT$FLAGS; new FLAGS argument for $SETIMR; new  FLAGS  argument
           for $SUSPND


  Symmetric Multiprocessing (SMP)
  -------------------------------

       o  VMS V5.0 supports a tightly coupled, symmetrical multiprocessing
          (SMP) system.   Refer to the VMS Version 5.0 New Features Manual
          for an overview of SMP and a description of new features related
          to the system management and programming of SMP systems.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026