 A list of all the possible (Macro) Directives can be obtained by

	HELP DIRECTIVES LIST

 Assistance on Directive Error/Status Codes can be obtained by

	HELP DIRECTIVES ERROR [nn]

 A summary of all the call formats for MACRO and FORTRAN calls
 to executive directives may be obtained by entering the command:

	HELP DIRECTIVES SUMMARY

 (Note this takes up several screenfuls of information.)

 Specific call formats may be obtained by entering the command:

	HELP DIRECTIVES name

 where name is the directive name or mnemonic.
2	ERROR
	@DIRERROR.HLP
2	LIST

	ABRT$	ALTP$	ALUN$	ASTX$S	ATRG$	CINT$	CLEF$
	CMKT$	CNCT$	CRAW$	CRGF$	CRRG$	CSRQ$	DECL$S
	DSAR$S	DSCP$S	DTRG$	ELAW$	ELGF$	ENAR$S	ENCP$S
	EXIF$	EXIT$S	EXST$	EXTK$	GLUN$	GMCR$	GMCX$
	GPRT$	GREG$	GSSW$S	GTIM$	GTSK$	IHAR$S	MAP$
	MRKT$	QIO$	QIOW$	RCST$	RCVD$	RCVX$	RDAF$
	RDXF$	RQST$	RREF$	RSUM$	RUN$	SDAT$	SETF$
	SFPA$	SPND$S	SPRA$	SPWN$	SRDA$	SREF$	SRRA$
	STLO$	STOP$S	STSE$	SVDB$	SVTK$	UMAP$	USTP$
	WSIG$S	WTLO$	WTSE$

2 SUMMARY

 Abort task
	ABRT$	tsk
	CALL ABORT(tsk[,ids])

 Alter priority
	ALTP$	[tsk][,pri]
	CALL ALTPRI ([tsk],[ipri][,ids])

 Assign LUN
	ALUN$	lun,dev,unt
	CALL ASNLUN(lun,dev,unt[,ids])

 AST service exit
	ASTX$S	[err]
   	FORTRAN does not support this directive

 Attach region
	ATRG$	rdb
	CALL ATRG(irdb[,ids])

 Connect to interrupt vector
	CINT$	vec,base,isr,edir,psw,ast
   	FORTRAN does not support this directive

 Clear event flag
	CLEF$	efn
	CALL CLREF(efn[,ids])

 Cancel mark time requests
	CMKT$	[efn],[ast][,err]
	CALL CANMT([efn],[ast][,ids])

 Connect
	CNCT$ tname,[efn],[east],[esb]
	CALL CNCT(rtname,[iefn],[iast],[iesb],[iparm],[ids]

 Create address window
	CRAW$	wdb
	CALL CRAW(iwdb[,ids])

 Create group global event flags
	CRGF$	group
	CALL CRGF([group],[ids])

 Create region
	CRRG$	rdb
	CALL CRRG(irdb[,ids])

 Cancel time based initiation requests
	CSRQ$	tsk
	CALL CANALL(tsk[,ids])

 Declare significant event
	DECL$S	[,err]
	CALL DECLAR([,ids])

 Disable AST recognition
	DSAR$S	[err]
	CALL DSASTR[(ids)]

 Disable checkpointing
	DSCP$S	[err]
	CALL DISCKP

 Detach region
	DTRG$	rdb
	CALL DTRG(irdb[,ids])

 Eliminate address window
	ELAW$	wdb
	CALL ELAW(iwdb[,ids]) 

 Eliminate group global event flags
	ELGF$	group
	CALL ELGF(group,[ids])

 Enable AST recognition
	ENAR$S	[err]
	CALL ENASTR

 Enable checkpointing
	ENCP$S	[err]
	CALL ENACKP

 Exitif
	EXIF$	efn
	CALL EXITIF(efn[,ids])

 Task exit
	EXIT$S	[err]
	STOP
	 or
	CALL EXIT

 Exit with Status
	EXST$	status
	CALL EXST(istatus)

 Extend task
	EXTK$	[inc]
	CALL EXTTSK([inc][,ids])

 Get LUN information
	GLUN$	lun,buf
	CALL GETLUN(lun,dat[,ids])

 Get MCR command line
	GMCR$
	CALL GETMCR(buf[,ids])

 Get mapping context
	GMCX$	wvec
	CALL GMCX(imcx[,ids])

 Get partition parameters
	GPRT$	[prt],buf
	CALL GETPAR([prt],buf[,ids])

 Get region parameters
	GREG$	[rid][,buf]
	CALL GETREG([rid],buf[,ids])

 Get sense switches
	GSSW$S	[err]
	CALL READSW(isw)

 Get time parameters
	GTIM$	buf
	FORTRAN provides several subroutines for obtaining the time
	in a number of formats.  See the IAS/RSX-11 FORTRAN-IV User's
	Guide or the FORTRAN IV-PLUS User's Guide.

 Get task parameters
	GTSK$	buf
	CALL GETTSK(buf[,ids])
 
 Inhibit AST Recognition
	IHAR$S	[err]
	CALL INASTR[(ids)]

 Map address window
	MAP$	wdb
	CALL MAP(iwdb[,ids])

 Mark time
	MRKT$	[efn],tmg,tnt[,ast]
	CALL MARK(efn,tmg,tnt[,ids])
	 or
	CALL WAIT(tmg,tnt,ids)

 Queue I/O request
	QIO$	fnc,lun,[efn],[pri],[isb],[ast][,prl]
	CALL QIO(fnc,lun,[efn],[pri],[isb],[prl][,ids])

 Queue I/O request and wait
	QIOW$	fnc,lun,[efn],[pri],[isb],[ast][,prl]
	CALL WTQIO(fnc,lun,efn,[pri],[isb],[prl][,ids])

 Receive data or stop
	RCST$ [tname],buf
	CALL RCST([rtname],ibuf[,ids])

 Receive data
	RCVD$	[tsk],buf
	CALL RECEIV([tsk],buf[,,ids])

 Receive data or exit
	RCVX$	[tsk],buf
	CALL RECOEX([tsk],buf[,,ids])

 Read all event flags
	RDAF$	buf
	Only a single event flag can be read by a FORTRAN task.
	The call is: 
	CALL READEF(efn[,ids])

 Read extended event flags
	RDXF$ buf
	Only a single event flag can be read by a FORTRAN task.
	The call is:
	CALL READEF(efn[,ids])

 Request Task
	RQST$	tsk,[prt],[pri][,ugc,umc]
	CALL REQUES(tsk,[opt][,ids])

 Receive by reference
	RREF$	wdb
	CALL RREF(iwdb,[isrb][,ids])

 Resume Task
	RSUM$	tsk
	CALL RESUME(tsk[,ids])

 Run Task
	RUN$	tsk,[prt],[pri],[ugc],[umc],[smg],snt[,rmg,rnt]
	CALL RUN(tsk,[opt],[smg],snt,[rmg],[rnt][,ids])
	 or
	CALL START(tsk,smg,snt,ids)

 Send data
	SDAT$	tsk,buf[,efn]
	CALL SEND(tsk,buf,[efn][,ids])

 Set event flag
	SETF$	efn
	CALL SETEF(efn[,ids])

 Specify floating point exception AST
	SFPA$	[ast]
   	FORTRAN does not support this directive

 Suspend
	SPND$S	[err]
	CALL SUSPND

 Specify power recovery AST
	SPRA$	[ast]
	CALL PWRUP(sub)

 Spawn
	SPWN$	tname,,,[ugc],[umc],[efn],[east],[esb],[cmdlin],[cmdlen],
		  [unum],[dnam]
	CALL	SPAWN(rtname,[iugc],[iumc],[iefn],[iast],[iesb],[iparm],
		       [icmdlin],[icmdlen],[iunit],[dnam],[ids])

 Specify receive data ast
	SRDA$	[ast]
   	FORTRAN does not support this directive

 Send by reference
	SREF$	task,wdb[,efn]
	CALL SREF(tsk,[efn],iwdb,[isrb][,ids])

 Specify receive-by-reference AST
	SRRA$	[ast]
   	FORTRAN does not support this directive

 Stop for logical or of event flags
	STLO$ grp,msk
	CALL STLOR(ief1,ief2,ief3,...iefn)
 Stop
	STOP$S
	CALL	STOP([ids])

 Stop for single event flag
	STSE$ efn
	CALL STOPFR(iefn,[ids])

 Specify SST vector table for debugging aid
	SVDB$	[adr][,len]
   	FORTRAN does not support this directive

 Specify SST vector table for task
	SVTK$	[adr][,len]
   	FORTRAN does not support this directive

 Unmap address window
	UMAP$	wdb
	CALL UNMAP(iwdb[,ids])

 Unstop
	USTP$	tname
	CALL USTP(rtname,[ids])

 Wait for significant event
	WSIG$S	[err]
	CALL WFSNE

 Wait for logical 'OR' of event flags
	WTLO$	grp,msk
	CALL WFLOR(efn1,efn2,...efnn)

 Wait for single event flag
	WTSE$	efn
	CALL WAITFR(efn[,ids])
2 ABORT
 #ABRT$
2 ABRT$
 Abort task

     Macro call:   ABRT$   tsk

 	tsk =	Task name
 
     Local Symbol Def:
 
	A.BTTN = Task name (4)

     Fortran call:   CALL ABORT(tsk[,ids])
 
 	tsk = Task name
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task not active
	IE.PRI -- -16 - Issuing task is not privileged
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 ALTPRI
 #ALTP$
2 ALTP$
 Alter priority

     Macro call:   ALTP$   [tsk][,pri]

 	tsk =	Active task name
	pri =	New priority, from 1 to 250 (decimal)
 
     Local Symbol Def:
 
	A.LTTN = Task name (4)
	A.LTPR = Priority (2)
 
     Fortran call:   CALL ALTPRI([tsk],[ipri][,ids])
 
	tsk = Active task name
	ipri = 1-word integer value equal to the new priority, a
	       number from 1 to 250 (decimal)
	ids = Directive Status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task not active
	IE.PRI -- -16 - Issuing task is not privileged
	IE.IPR -- -95 - Invalid Priority
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 ASNLUN
 #ALUN$
2 ALUN$
 Assign LUN

     Macro call:   ALUN$   lun,dev,unt

 	lun =	Logical unit number
	dev =	Device name (two characters)
	unt =	Device unit number
 
     Local Symbol Def:
 
	A.LULU = Logical unit number (2)
	A.LUNA = Physical device name (2)
	A.LUNU = Physical device unit number (2)
 
     Fortran call:   CALL ASNLUN(lun,dev,unt[,ids])
 
	lun = Logical unit number
	dev = Device name (format:  1A2)
	unt = Device unit number
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.LNL -- -90 - LUN is locked in use
	IE.IDU -- -92 - Invalid Device or Unit
	IE.ILU -- -96 - Invalid LUN
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 ASTX$
 AST service exit

     Macro call:   ASTX$   [err]
 
	err = Error routine address
 
   FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.AST -- -80 - Directive not issued from AST Service routine
	IE.ADP -- -98 - Part of DPB or stack is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 ATRG$
 Attach region

     Macro call:   ATRG$   rdb

 	rdb =	Region definition block address
 
     Local Symbol Def:
 
	A.TRBA = Region definition block address (2)


  For Region Definition Block Parameters type :
	
	 HELP DIRECTIVES ATRG$ DEFINITONS
 
     Fortran call:   CALL ATRG(irdb[,ids])
 
	irdb = An 8-word integer array containing a region
	       definition block
	ids = Directive Status
 
	Note that:
 
		irdb(3) and (4) = R.GNAM
		irdb(7)		= R.GSTS
		irdb(1)		= R.GID
		irdb(2)		= R.GSIZ

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate Attachment Descriptor
	IE.HWR --  -6 - Parity error on Region
	IE.PRI -- -16 - Privilege Violation
	IE.NVR -- -86 - Invalid Region ID
	IE.PNS -- -94 - Specified Region name does not exist
	IE.ADP -- -98 - Part of DPB or RDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
3 DEFINITIONS

		Region Definition Block Parameters (input)
 
	R.GNAM = Name of the region attached
	R.GSTS = Bit settings in the region status word (specifying
		 desired access to the reqion):
 
			RS.RED = 1 if read address is desired
			RS.WRT = 1 if write access is desired
			RS.EXT = 1 if extend access is desired
			RS.DEL = 1 if delete access is desired
 
		 Clear all four bits to request the region ID of
		 the named region if it is already attached to the
		 issuing task.
 
		Region Definition Block Parameters (output)
 
	R.GID = ID assigned to the region
	R.GSIZ = Size in 32-word blocks of the attached region
2 CINT$

     Macro call:   CINT$   vec,base,isr,edir,psw,ast

 	vec = interrupt vector address
	base = virtual base address
	isr = virtual address of isr
	edir = virtual address of enable/disable interrupt routine
	psw = low order byte of PSW to be loaded upon interrupt
	ast = virtual address of AST routine for fork level
 
     Local Symbol Def:
 
	C.INVE = vector address (2)
	C.INBA = base address (2)
	C.INIS = ISR address (2)
	C.INDI = enable/disable interrupt routine address (2)
	C.INPS = priority (1)
	C.INAS = AST address (2)

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate ITB
	IE.ITS --  -8 - Function requested is disconnect & task is not
			owner of vector.
	IE.PRI -- -16 - Issuing task is not privileged
	IE.RSU -- -17 - Specified vector already in use.
	IE.ILV -- -19 - Specified vector is illegal.
	IE.MAP -- -81 - ISR or enable/disable interrupt routine out of range.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 CLREF
 #CLEF$
2 CLEF$
 Clear event flag

     Macro call:   CLEF$   efn

 	efn =	Event flag number
 
     Local Symbol Def:
 
	C.LEEF = Event flag number (2)
 
     Fortran call:   CALL CLREF(efn[,ids])
 
	efn = Event flag number
	ids = Directive status

     DSW Return Codes:
 
	IS.CLR --  +0 - Event Flag was already clear.
	IS.SET --  +2 - Event Flag was set.
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 CANMT
 #CMKT$
2 CMKT$
 Cancel mark time requests

     Macro call:   CMKT$  [efn],[ast][,err]

	efn =	Event flag number
	ast =	Ast address
 	err =	Error routine address
 
     Local Symbol Def:
 
	C.MKEF -- Event Flag Number (2)
	C.MKAE -- Mark Time Request AST Routine address (2)

     Fortran call:   CALL CANMT([efn],[ast][,ids])
 
	efn =	Event flag number
	ast =	Ast address
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
 
2 CNCT$
 Connect
   
     Macro call:   CNCT$  tname,[efn],[east],[esb]
 
	tname = name of the offspring task to be connected
	efn   = event flag to be set when the offspring task exits
	east  = address of AST routine to be called when offspring
		task exits 
	esb   = address of an eight word status block

  For local definitions type HELP DIRECTIVES CNCT$ DEFINITIONS

     Fortran call:  CALL CNCT(rtname,[iefn],[iast],[iesb],[iparm],[ids])

	rtname = name of the offspring task to be connected
	iefn  = event flag
	iast  = ast routine
	ieast = exit status block
	iparm = AST status block 
	ids   = directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate OCB
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task not active
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB or Exit Status Block is out of issuing 
			tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONs
   Local symbol definitions:
 
	C.NCTN -- Task name (4)
	C.NCEF -- Event flag (2)
	C.NCEA -- Ast routine address (2)
	C.NCES -- Exit status block address (2) 


2 CRAW$
 Create address window

     Macro call:   CRAW$   wdb

 	wdb =	Window definition block address
 
     Local Symbol Def:
 
	C.RABA = Window definition block address (2)
 
  For Window Definition Block Parameters: HELP DIRECTIVES CRAW$ DEFINITIONS
 
     Fortran call:   CALL CRAW(iwdb[,ids])
 
	iwdb = An 8-word integer array containing a window definition
	       block
	ids = Directive Status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.HWR --  -6 - Parity error on Region
	IE.PRI -- -16 - Privilege Violation at mapping stage
	IE.ALG -- -84 - Alignment error at mapping stage
	IE.WOV -- -85 - No window blocks available in task header
	IE.NVR -- -86 - Invalid Region ID
	IE.ADP -- -98 - Part of DPB or WDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS 
		Window Definition Block Parameters (input)
 
	W.NAPR = Base APR of the address window to be created
	W.NSIZ = Desired size, in 32-word blocks, of the address
		 window
	W.NRID = ID of the region to which the new window is to
		 be mapped, or 0 for task region (to be specified
		 only if WS.MAP=1)
	W.NOFF = Offset in 32-word blocks from the start of the
		 region at which the window is to start mapping
		 (to be specified only if WS.MAP=1).  Note that
		 if WS.64B in the window status word equals 0, the
		 value specified must be a multiple of 8.
	W.NLEN = Length in 32-word blocks to be mapped, or 0 if
		 the length is to default to either the size of
		 the windwo or the space remaining in the region,
		 whichever is smaller (to be specified only if
		 WS.MAP=1).
	W.NSTS = Bit settings in the window status word:
		 WS.MAP = 1 if the new window is to be mapped
		 WS.WRT = 1 if the mapping assignment is to
			  occur with write access
		 WS.64B = 0 for 256-word alignment, or 1 for
			  32-word alignment
 
 
		Window Definition Block Parameters (output)
 
	W.NID = ID assigned to the window
	W.NBAS = Virtual address base of the new window
	W.NLEN = Length in 32-word blocks actually mapped by
		 the window
	W.NSTS = Bit settings in the window status word:
		 WS.CRW = 1 if the address window was
			  successfully created
		 WS.ELW = 1 if any address windows were
			  eliminated
		 WS.UNM = 1 if any address windows were
			  unmapped
2 CRGF$
  Create Group Global Event Flags

     Macro call:	CRGF$	group

	   group = Group number for the flags to be created. Only
		   privileged tasks can specifiy group numbers other 
		   than the issuing task's group UIC. If not specified
		   the task's protection UIC in the task header is used
 
     Local Symbol Def:
 
	  C.RGRP = Group number (2)
 
     Fortran call:	CALL	CRGF([group],[idsw])
 
	   group = Group number for the flags to be created.
	   idsw  = Integer to receive the Directive Status Word.

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate GGEF Block
	IE.PRI -- -16 - Privilege Violation
	IE.RSU -- -17 - Event Flags already exist
	IE.IUI -- -91 - Invalid Group
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 CRRG$
 Create region

     Macro call:   CRRG$   rdb

 	rdb =	Region definition block address
 
     Local Symbol Def:
 
	C.RRBA = Region definition block address (2)
 
  For Region Definition Block Parameters: HELP DIRECTIVES CRRG$ DEFINITIONS
 
     Fortran call:   CALL CRRG(irdb[,ids])
 
	irdb = An 8-word integer array containing a region definition
	       block
	ids = Directive Status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate PCB or attachment descriptor,
			or no room in partition for region
	IE.HWR --  -6 - Parity error on Region
	IE.PRI -- -16 - Desired access not allowed
	IE.PNS -- -94 - Specified partition does not exist, or no region
			name given & attach requested.
	IE.ADP -- -98 - Part of DPB or RDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS 
		Region Definition Block Parameters (input)
 
	R.GSIZ = Size in 32-word blocks of the region to be created
	R.GNAM = Name of the region to be created, or 0 for no name
	R.GPAR = Name of the system controlled partition in which
		 the region is to be allocated, or 0 for the
		 partition in which the task is running
	R.GSTS = Bit settings in the region status word:
		 RS.MDL = 1 if the region should be deleted on
			  last detach
		 RS.NDL = 1 if the region should not be deleted on
			  last detach
		 RS.ATT = 1 if created region should be attached
		 RS.RED = 1 if read access is desired on attach
		 RS.WRT = 1 if write access is desired on attach
		 RS.EXT = 1 if extend addess is desired on attach
		 RS.DEL = 1 if delete access is desired on attach
	R.GPRO = Protection word for the region (DEWR,DEWR,DEWR,DEWR)
 
		Region Definition Block Parameters (output)
 
	R.GID = ID assigned to the created region (returned if
		RS.ATT=1)
	R.GSIZ = Size in 32-word blocks of the attached region
		 (returned if RS.ATT=1)
	R.GSTS = Bit settings in region status word:
		 RS.CRR = 1 if region was successfully created
2 CANALL
 #CSRQ$
2 CSRQ$
 Cancel time based initiation requests

     Macro call:   CSRQ$   tsk

 	tsk =	Scheduled (target) task name
 
     Local Symbol Def:
 
	C.SRTN = Target task name (4)
 
     Fortran call:   CALL CANALL(tsk[,ids])
 
	tsk = Task name
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.INS --  -2 - Task not installed
	IE.PRI -- -16 - Issuing task is not privileged and is attempting to 
			cancel requests made by another task
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 DECLAR
 #DECL$S
2 DECL$S
 Declare significant event

     Macro call:   DECL$S   [,err]

 	err =	Error routine address
 
     Fortran call:   CALL DECLAR([,ids])
 
	ids = Directive Status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 DSASTR
 #DSAR$S
2 INASTR
 #DSAR$S
2 IHAR$S
 #DSAR$S
2 DSAR$S
 Disable (or Inhibit) AST recognition

     Macro call:   DSAR$S   [err]
		    or
		   IHAR$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL DSASTR[(ids)]
		      or
		     CALL INASTR[(ids)]
 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - AST Recognition already disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 DISCKP
 #DSCP$S
2 DSCP$S
 Disable checkpointing

     Macro call:   DSCP$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL DISCKP[(ids)]
 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - Task Checkpointing already disabled
	IE.CKP -- -10 - Task not checkpointable
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 DTRG$
 Detach region

     Macro call:   DTRG$   rdb

	rdb =	Region definition block address
 
     Local Symbol Def:
 
	D.TRBA = Region definition block address (2)
 
  For Region Definition Block Parameters: HELP DIRECTIVES DTRG$ DEFINITIONS
 
     Fortran call:   CALL DTRG(irdb[,ids])
 
	irdb =	An 8-word integer array containing a Region definition block
	ids  =	Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.PRI -- -16 - Privilege Violation
	IE.NVR -- -86 - Invalid Region ID
	IE.ADP -- -98 - Part of DPB or RDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
 
		Region Definition Block Parameters (input)
 
	R.GID = ID of the region to be detached
	R.GSTS = Bit settings in the region status word:
		 RS.MDL = 1 if the region should be marked for
			  deletion when the last task detaches
			  from it
 
 
		Region Definition Block Parameters (output)
 
	R.GSTS = Bit settings in the region status word:
		 RS.UNM = 1 if any windows were unmapped
2 ELAW$
 Eliminate address window

     Macro call:   ELAW$   wdb

	wdb = Window definition block address
 
     Local Symbol Def:
 
	E.LABA = Window definition block address (2)

  For window definition bLock parameters: HELP DIRECTIVES ELAW$ WINDOW 
 
     Fortran call:   CALL ELAW(iwdb[,ids])
 
	iwdb = A window definition block composed of an 8-word
	       integer array
	ids = Directive status
 
		input
 
	iwdb(1), bits 0-7 = W.NID 
 
		output
 
	iwdb(7) = W.NSTS

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.NVW -- -87 - Invalid address window ID
	IE.ADP -- -98 - Part of DPB or WDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 WINDOW
		Window Definition Block Parameters (input)
 
	W.NID = ID of the address window to be eliminated
 
 
		Window Definition Block Parameters (output)
 
	W.NSTS = Bit settings in the window status word:
		 WS.ELW = 1 if the address window was
			  successfully eliminated
		 WS.UNM = 1 if the address window was unmapped
2 ELGF$
  Eliminate Group Global Event Flags
 
     Macro call:    ELGF$  [group]

	group = Group number of flags to be eliminated.

     Local Symbol Def:
 
	E.LGRP -- Group number (2)
   
     Fortran call:    CALL ELGF([group],[ids])

	group = Group number of flags to be eliminated.
	ids   = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.RSU -- -17 - Event Flags already marked for delete
	IE.IUI -- -91 - Invalid Group
	IE.IEF -- -97 - Group not found
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 ENASTR
 #ENAR$S
2 ENAR$S
 Enable AST recognition

     Macro call:   ENAR$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL ENASTR[(ids)]
 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - AST Recognition is not disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 ENACKP
 #ENCP$S
2 ENCP$S
 Enable checkpointing

     Macro call:   ENCP$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL ENACKP[(ids)]
 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - Checkpointing not disabled or task
			connected to vector
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 EXITIF
 #EXIF$
2 EXIF$
 Exitif

     Macro call:   EXIF$   efn

 	efn =	Event flag number
 
     Local Symbol Def:
 
	E.XFEF = Event flag number (2)
 
     Fortran call:   CALL EXITIF(efn[,ids])
 
	efn = Event flag number
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 STOP
 #EXIT$S
2 EXIT$S
 Task exit

     Macro call:   EXIT$S   [err]

 	err = Error routine address
 
     Fortran call:   STOP
		      or
		     CALL EXIT

     DSW Return Codes:
 
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 EXST$
 Exit with Status

     Macro call:   EXST$   status

	status = 16-bit quantity to return to parent task

     Local Symbol Def:
 
	E.XSTS -- Value of status to be returned

     Fortran call:   CALL EXST(istatus)

	istatus = 16-bit quantity to return to parent task

     DSW Return Codes:
 
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 EXTTSK
 #EXTK$
2 EXTK$
 Extend task

     Macro call:   EXTK$   [inc]

 	inc =	A positive or negative number equal to the number of
		32-word blocks by which the task is to be extended or
		reduced.  If omitted, task size defaults to installed
		task size.
 
     Local Symbol Def:
 
	E.XTIN = Extend increment (2)
 
     Fortran call:   CALL EXTTSK([inc][,ids])
 
	inc = A positive or negative number equal to the number of
	      32-word blocks by which the task size is to be extended
	      or reduced
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -2 - Insufficient room in checkpoint file
	IE.ITS --  -8 - Task has memory-resident overlays and is
			attempting to reduce its size
	IE.CKP -- -10 - Task is not checkpointable and specified a positive
			integer
	IE.NSW -- -18 - Checkpoint space is in task header and task tried
			to expand beyond its installed size
	IE.IOP -- -83 - Task has I/O in progress
	IE.ALG -- -84 - Issuing task tried to make itself too large or
			too small
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 GETLUN
 #GLUN$
2 GLUN$
 Get LUN information

     Macro call:   GLUN$   lun,buf

 	lun =	Logical unit number
	buf =	Address of 6-word buffer that will receive the LUN
		information.  The buffer format is:
		0 - Name of assigned device
		1 - Unit number of assigned device and flags byte
		    (flags byte equals 200 if the device driver is
		    resident or 0 if it is not loaded)
		2 - First device characteristics word
		3 - Second device characteristics word (device specific)
		4 - Third device characteristics word (device specific)
		5 - Standard device buffer size

  For local symbol definitions: HELP DIRECTIVES GLUN$ DEFINITIONS

     Fortran call:   CALL GETLUN (lun,dat[,ids])

	lun =	logical unit number
	dat =	6-word array to receive LUN information
	ids =	Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ULN --  -5 - Unassigned LUN
	IE.ILU -- -96 - Invalid LUN
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
 Local Symbol definitions:
 
	G.LULU = Logical unit number (2)
	G.LUBA = Buffer address (2)
 
		the following offset are used to reference the
		GLUN buffer
 
	G.LUNA = Device name (2)
	G.LUNU = Device unit number
	G.LUFB = Flags byte (1)
	G.LUCW = Four device characteristics words (8)
2 GETMCR
 #GMCR$
2 GMCR$
 Get MCR command line

     Macro call:   GMCR$

	Note that the command line is put into the 80 byte buffer
	that immediately follows the DIC and size bytes.  The
	buffer is automatically generated.
 
     Local Symbol Def:
 
	G.MCRB = MCR line buffer (80)
 
     Fortran call:   CALL GETMCR(buf[,ids])
 
	buf = 80-byte array to receive command line
	ids = Directive status

     DSW Return Codes:
 
	       --  +n - Successful completion.  n = number of characters
			transferred
	IE.AST -- -80 - No MCR command line exists
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 GMCX$
 Get mapping context

     Macro call:   GMCX$   wvec

	 wvec = The address of a vector of n window definition blocks,
		followed by a terminator word;
		n is the number of window blocks in the task's header.
 
     Local Symbol Def:
 
	G.MCVA = Address of the vector (wvec) containing the window
		 definition blocks and terminator word (2)
 
  For Window Definition Block  parameters: HELP DIRECTIVES GMCX$ DEFINITIONS
 
     Fortran call:   CALL GCMX(imcx[,ids])
 
	imcx = An integer array to receive the mapping context.
	       The size of the array is 8*n+1 where n is the
	       number of window blocks in the task's header.  The
	       maximum size is 8*8+1=65 words.
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or vector is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS 
		Window Definition Block Parameters (input)
 
	W.NID = ID of address window
	W.NAPR = Base APR of the window
	W.NBAS = base virtual address of the window
	W.NSIZ = Size in 32-word blocks of the window
	W.NRID = ID of the mapped region, or no change if the window
		 is unmapped
	W.NOFF = Offset in 32-word blocks from the start of the region
		 at which mapping begins, or no change if the window
		 is unmapped
	W.NLEN = Length in 32-word blocks of the area currently mapped
		 within the region, or no change if the window is
		 unmapped
	W.NSTS = Bit settings in the window status word (all 0 if the
		 window is not mapped):
		 WS.MAP = 1 if the window is mapped
		 WS.WRT = 1 if the window is mapped with write access
 
	Note that the length mapped (W.NLEN) can be less than the
	size of the window (W.NSIZ) if the area from W.NOFF to the
	end of the partition is smaller than the window size.
2 GETPAR
 #GPRT$
2 GPRT$
 Get partition parameters

     Macro call:   GPRT$   [prt],buf

 	prt =	Partition name
	buf =	Address of a 3-word buffer

     Local Symbol Def:
 
	G.PRPN = Partition name (4)
	G.PRBA = Buffer address (2)

        For buffer format and offsets type: HELP DIRECTIVES GPRT$ FORMAT
 
     Fortran call:   CALL GETPAR ([prt],buf[,ids])
 
	prt = Partition name
	buf = 3-word integer array to receive partition parameters
	ids = Directive status

     DSW Return Codes:
 
	Successful completion is indicated by a cleared Carry bit, and
	the starting address of the partition is returned in the DSW.
	The returned address is a physical address expressed in 32-word
	blocks.  Unsuccessful completion is indicated by a set Carry bit
	and one of the following codes in the DSW:

	IE.INS --  -2 - Specified partition not in system
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 FORMAT
  
	The buffer has the following format:
 
		wrd 0 =	Partition physical base address expressed
			as a multiple of 32 words (partitions are
			always aligned on 32-word boundaries).
		wrd 1 = Partition size expressed as a multiple of
			32 words.
		wrd 2 =	Partition flags word.  This word is returned
			equal to zero to indicate a system-controlled
			partition.
 
 
	The following offsets are assigned relative to the start of
	the partition parameters buffer:
 
	G.PRPB = Partition physical base address expressed as an
		 absolute 32-word block number (2)
	G.PRPS = Partition size expressed as a multiple of 32-word
		 blocks (2)
	G.PRFW = Partition flags word (2)
2 GETREG
 #GREG$
2 GREG$
 Get region parameters

     Macro call:   GREG$   [rid],buf

 	rid =	Region ID
	buf =	Address of a 3-word buffer.  

     Local Symbol Def:
 
	G.RGID = Region ID (2)
	G.RGBA = Buffer address

	For buffer format and offsets type: HELP DIRECTIVES GREG$ FORMAT
 
     Fortran call:   CALL GETREG([rid],buf[,ids])
 
	rid = Region ID
	buf = 3-word integer array to receive region parameters
	ids = Directive status

     DSW Return Codes:
 
	Successful completion is indicated by a cleared Carry bit, and
	the starting address of the region is returned in the DSW.
	The returned address is a physical address expressed in 32-word
	blocks.  Unsuccessful completion is indicated by a set Carry bit
	and one of the following codes in the DSW:

	IE.NVR -- -86 - Invalid Region ID
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 FORMAT
  	The buffer has the following format:

		word 0 = Region base address expressed as a multiple
			 of 32 words.
		word 1 = Region size expressed as a multiple of 32
			 words.
		word 2 = Region flags word.  This word is returned
			 equal to zero if the region resides in a
			 system-controlled partition.
 
 
	The following offsets are assigned relative to the start of
	the region parameters buffer:
 
	G.RGRB = Region base address expressed as an absolute 32-word
		 block number (2)
	R.RGRS = Region size expressed as a multiple of 32-word
		 blocks (2)
	R.RGFW = Region flags word (2)
2 READSW
 #GSSW$S
2 SSWTCH
 #GSSW$S
2 GSSW$S
 Get sense switches

     Macro call:   GSSW$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL READSW(isw)
 
	isw = Integer to receive the console switch settings
 
     Fortran call:   CALL SSWTCH(ibt,ist)
 
	ibt = The switch to be tested (0 to 15)
	ist = Test results where
	      1 = switch on
	      2 = switch off

     DSW Return Codes:
 
	Successful completion is indicated by a cleared Carry bit, and
	the contents of the console switch register are returned in the DSW.
	Unsuccessful completion is indicated by a set Carry bit
	and one of the following codes in the DSW:

	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 GTIM$
 Get time parameters

     Macro call:   GTIM$   buf

 	buf =	Address of 8-word buffer of the following format:
		word 0 = Year (since 1900)
		word 1 = Month (1-12)
		word 2 = Day (1-31)
		word 3 = Hour (0-23)
		word 4 = Minute (0-59)
		word 5 = Second (0-59)
		word 6 = Tick of second
		word 7 = Ticks per second
 
     Local Symbol Def:
 
	G.TIBA = Buffer address (2)
 
	For buffer offsets type : HELP DIRECTIVES GTIM$ OFFSETS
 
   FORTRAN provides several subroutines for obtaining the time in a
   number of formats.  See the IAS/RSX-11M FORTRAN IV or the FORTRAN
   IV-PLUS User's Guide

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 OFFSETS

	The following offsets are assigned relative to the start of
	the time parameters buffer:
 
	G.TIYR = Year (2)
	G.TIMO = Month (2)
	G.TIDA = Day (2)
	G.TIHR = Hour (2)
	G.TIMI = Minute (2)
	G.TISC = Second (2)
	G.TICT = Clock tick of Second (2)
	G.TICP = Clock Ticks per Second (2)
2 GETTSK
 #GTSK$
2 GTSK$
 Get task parameters

     Macro call:   GTSK$   buf

 	buf =	Address of a 16-word buffer 
 
     Local Symbol Def:
 
	G.TSBA = Buffer address (2)

        For buffer format and offsets type: HELP DIRECTIVES GTSK$ FORMAT
 
     Fortran call:   CALL GETTSK(buf[,ids])
 
	buf = 16-word integer array to receive the task parameters
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 FORMAT
   	The buffer has the following format:

		word 0 = Issuing task's name in Radix-50
		word 1 = Issuing task's name in Radix-50
		word 2 = Partition name in Radix-50
		word 3 = Partition name in Radix-50
		word 4 = Undefined
		word 5 = Undefined
		word 6 = Run priority
		word 7 = UIC of issuing task
		word 10 = Number of LUNs
		word 11 = Undefined
		word 12 = Undefined
		word 13 = Address of task SST vector if word 14 is
			  nonzero
		word 14 = Size in words of task SST vector tables
		word 15 = Size in bytes of task's address window 0
		word 16 = System on which task is running:
			  0 for RSX-11D
			  1 for RSX-11M
			  2 for RSX-11S
			  3 for IAS
			  4 for RSTS
			  5 for VAX/VMS
			  6 for RSX-11M-PLUS
		word 17 = Protection UIC
 
	The following offsets are assigned relative to the task
	parameter buffer
 
	G.TSTN = Task name (4)
	G.TSPN = Partition name (4)
	G.TSPR = Priority (2)
	G.TSGC = UIC group code (1)
	G.TSPC = UIC member code (1)
	G.TSNL = Number of logical units (2)
	G.TSVA = Task's SST vector address (2)
	G.TSVL = Task's SST vector length in words (2)
	G.TSTS = Task size (2)
	G.TSSY = System on which task is running (2)
	G.TSDU = Protection UIC (2)
2 MAP$
 Map address window

     Macro call:   MAP$   wdb

 	wdb =	Window definition block address
 
     Local Symbol Def:
 
	M.APBA = Window definition block address (2)
 
	For Window Definition Block Parameters: HELP DIRECTIVES MAP$ WINDOW
 
     Fortran call:   CALL MAP(iwdb[,ids])
 
	iwdb = An 8-word integer array containing a window definition
	       block
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.HWR --  -6 - Parity error on Region
	IE.ITS --  -8 - WS.RES set and region not resident
	IE.PRI -- -16 - Privilege Violation
	IE.ALG -- -84 - Invalid region offset & length combination
	IE.NVR -- -86 - Invalid Region ID
	IE.NVW -- -87 - Invalid address window ID
	IE.ADP -- -98 - Part of DPB or WDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 WINDOW
		Window Definition Block Parameters (input)
 
	W.NID = ID of the window to be mapped
	W.NRID = ID of the region to which the window is to be
		 mapped, or 0 if the task region is to be mapped
	W.NOFF = Offset in 32-word blocks within the region at
		 which mapping is to begin.  Note that if WS.64B
		 in the window status word equals 0, the value
		 specified must be a multiple of 8.
	W.NLEN = Length in 32-word blocks within the region to be
		 mapped, or 0 if the length is to default to either
		 the size of the window or the space remaining in
		 region from the specified offset, whichever is
		 smaller
	W.NSTS = Bit settings in the window status word:
		 WS.WRT = 1 if write access is desired
		 WS.64B = 0 for 256-word alignment, or 1 for 32-word
			  alignment
 
 
		Window Definition Block Parameters (output)
 
	W.NLEN = Length of the area within the region actually
		 mapped by the window
	W.NSTS = Bit settings in the window status word:
 
		 WS.UNM = 1 if the window was unmapped first
2 WAIT
 #MARK
2 MRKT$

     Macro call:   MRKT$   [efn],tmg,tnt[,ast]

 	efn =	Event flag number
	tmg =	Time interval magnitude
	tnt =	Time interval unit
		1 = ticks
		2 = seconds
		3 = minutes
		4 = hours
	ast =	AST entry point address
 
     Local Symbol Def:
 
	M.KTEF = Event flag (2)
	M.KTMG = Time magnitude (2)
	M.KTUN = Time unit (2)
	M.KTAE = AST entry point address (2)
	 
	For FORTRAN calls: HELP DIRECTIVES MARK

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate Clock Queue Block
	IE.ITI -- -93 - Invalid Time Parameter
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 MARK
	
   CALL MARK(efn,tmg,tnt[,ids])
 
	efn = Event flag number
	tmg = Time interval magnitude
	tnt = Time interval unit
	      1 = Ticks
	      2 = Seconds
	      3 = Minutes
	      4 = Hours
	ids = Directive status
 
   CALL WAIT(tmg,tnt[,ids])
 
	tmg = Time interval magnitude
	tnt = Time interval unit
	      0 = Ticks
	      1 = Milliseconds
	      2 = Seconds
	      3 = Minutes
	      4 = Hours
	ids = Directive status
2 QIO$
 Queue I/O request

     Macro call:   QIO$   fnc,lun,[efn],[pri],[isb],[ast][,prl]

 	fnc =	I/O function code
	lun =	Logical unit number
	efn =	Event flag number
	pri =	Priority; ignored, but must be present
	isb =	Address of I/O status block
	ast =	Address of AST service routine entry point
	prl =	Parameter list of the form <P1,...,P6>

	For local symbol definitions type: HELP DIRECTIVES QIO$ DEFINITIONS

     Fortran call:   CALL QIO(fnc,lun,[efn],[pri],[isb],[prl][,ids])
 
	fnc = I/O function code
	lun = Logical unit number
	efn = Event flag number
	pri = Priority; ignored, but must be present
	isb = 2-word integer array to receive final I/O status
	prl = 6-word integer array containing parameters list 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate I/O Request Block
	IE.ULN --  -5 - Unassigned LUN
	IE.HWR --  -6 - Device driver not resident
	IE.PRI -- -16 - Task other than despooler attempted to write logical
			blocks
	IE.ILU -- -96 - Invalid LUN
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB or I/O Status Block is out of issuing 
			tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
  Local Symbol Definitions:
 
	Q.IOFN = I/O function code (2)
	Q.IOLU = Logical unit number (2)
	Q.IOEF = Event flag number (1)
	Q.IOPR = Priority (1)
	Q.IOSB = Address of I/O status block (2)
	Q.IOAE = Address of I/O done AST entry point (2)
	Q.IOPL = Parameter list (12)
2 WTQIO
 #QIOW$
2 QIOW$
 Queue I/O request and wait

     Macro call:   QIOW$   fnc,lun,efn,[pri],[isb],[ast][,prl]

	where the parameters are the same as for QIO$
 
     Fortran call:   CALL WTQIO(fnc,lun,[efn],[pri],[isb],[prl][,ids])
 
	where the parameters are the same as for QIO
		 block number (2)
	R.RGRS = Region size expressed as a multiple of 32-word
		 blocks (2)
	R.RGFW = Region flags word (2)
2 READSW
 #GSSW$S
2 SSWTCH
 #GSSW$S
2 GSSW$S
 Get sense switches

     Macro call:   GSSW$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL READSW(isw)
 
	isw = Integer to receive the console switch settings
 
     Fortran call:   CALL SSWTCH(ibt,ist)
 
	ibt = The switch to be tested (0 to 15)
	ist = Test results where
	      1 = switch on
	      2 = switch off

     DSW Return Codes:
 
	Successful completion is indicated by a cleared Carry bit, and
	the contents of the console switch register are returned in the DSW.
	Unsuccessful completion is indicated by a set Carry bit
	and one of the following codes in the DSW:

	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 GTIM$
 Get time parameters

     Macro call:   GTIM$   buf

 	buf =	Address of 8-word buffer of the following format:
		word 0 = Year (since 1900)
		word 1 = Month (1-12)
		word 2 = Day (1-31)
		word 3 = Hour (0-23)
		word 4 = Minute (0-59)
		word 5 = Second (0-59)
		word 6 = Tick of second
		word 7 = Ticks per second
 
     Local Symbol Def:
 
	G.TIBA = Buffer address (2)
 
	For buffer offsets type : HELP DIRECTIVES GTIM$ OFFSETS
 
   FORTRAN provides several subroutines for obtaining the time in a
   number of formats.  See the IAS/RSX-11M FORTRAN IV or the FORTRAN
   IV-PLUS User's Guide

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 OFFSETS

	The following offsets are assigned relative to the start of
	the time parameters buffer:
 
	G.TIYR = Year (2)
	G.TIMO = Month (2)
	G.TIDA = Day (2)
	G.TIHR = Hour (2)
	G.TIMI = Minute (2)
	G.TISC = Second (2)
	G.TICT = Clock tick of Second (2)
	G.TICP = Clock Ticks per Second (2)
2 GETTSK
 #GTSK$
2 GTSK$
 Get task parameters

     Macro call:   GTSK$   buf

 	buf =	Address of a 16-word buffer 
 
     Local Symbol Def:
 
	G.TSBA = Buffer address (2)

        For buffer format and offsets type: HELP DIRECTIVES GTSK$ FORMAT
 
     Fortran call:   CALL GETTSK(buf[,ids])
 
	buf = 16-word integer array to receive the task parameters
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks 
			address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 FORMAT
   	The buffer has the following format:

		word 0 = Issuing task's name in Radix-50
		word 1 = Issuing task's name in Radix-50
		word 2 = Partition name in Radix-50
		word 3 = Partition name in Radix-50
		word 4 = Undefined
		word 5 = Undefined
		word 6 = Run priority
		word 7 = UIC of issuing task
		word 10 = Number of LUNs
		word 11 = Undefined
		word 12 = Undefined
		word 13 = Address of task SST vector if word 14 is
			  nonzero
		word 14 = Size in words of task SST vector tables
		word 15 = Size in bytes of task's address window 0
		word 16 = System on which task is running:
			  0 for RSX-11D
			  1 for RSX-11M
			  2 for RSX-11S
			  3 for IAS
			  4 for RSTS
			  5 for VAX/VMS
			  6 for RSX-11M-PLUS
		word 17 = Protection UIC
 
	The following offsets are assigned relative to the task
	parameter buffer
 
	G.TSTN = Task name (4)
	G.TSPN = Partition name (4)
	G.TSPR = Priority (2)
	G.TSGC = UIC group code (1)
	G.TSPC = UIC member code (1)
	G.TSNL = Number of logical units (2)
	G.TSVA = Task's SST vector address (2)
	G.TSVL = Task's SST vector length in words (2)
	G.TSTS = Task size (2)
	G.TSSY = System on which task is running (2)
	G.TSDU = Protection UIC (2)
2 MAP$
 Map address window

     Macro call:   MAP$   wdb

 	wdb =	Window definition block address
 
     Local Symbol Def:
 
	M.APBA = Window definition block address (2)
 
	For Window Definition Block Parameters: HELP DIRECTIVES MAP$ WINDOW
 
     Fortran call:   CALL MAP(iwdb[,ids])
 
	iwdb = An 8-word integer array containing a window definition
	       block
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.HWR --  -6 - Parity error on Region
	IE.ITS --  -8 - WS.RES set and region not resident
	IE.PRI -- -16 - Privilege Violation
	IE.ALG -- -84 - Invalid region offset & length combination
	IE.NVR -- -86 - Invalid Region ID
	IE.NVW -- -87 - Invalid address window ID
	IE.ADP -- -98 - Part of DPB or WDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 WINDOW
		Window Definition Block Parameters (input)
 
	W.NID = ID of the window to be mapped
	W.NRID = ID of the region to which the window is to be
		 mapped, or 0 if the task region is to be mapped
	W.NOFF = Offset in 32-word blocks within the region at
		 which mapping is to begin.  Note that if WS.64B
		 in the window status word equals 0, the value
		 specified must be a multiple of 8.
	W.NLEN = Length in 32-word blocks within the region to be
		 mapped, or 0 if the length is to default to either
		 the size of the window or the space remaining in
		 region from the specified offset, whichever is
		 smaller
	W.NSTS = Bit settings in the window status word:
		 WS.WRT = 1 if write access is desired
		 WS.64B = 0 for 256-word alignment, or 1 for 32-word
			  alignment
 
 
		Window Definition Block Parameters (output)
 
	W.NLEN = Length of the area within the region actually
		 mapped by the window
	W.NSTS = Bit settings in the window status word:
 
		 WS.UNM = 1 if the window was unmapped first
2 WAIT
 #MARK
2 MRKT$

     Macro call:   MRKT$   [efn],tmg,tnt[,ast]

 	efn =	Event flag number
	tmg =	Time interval magnitude
	tnt =	Time interval unit
		1 = ticks
		2 = seconds
		3 = minutes
		4 = hours
	ast =	AST entry point address
 
     Local Symbol Def:
 
	M.KTEF = Event flag (2)
	M.KTMG = Time magnitude (2)
	M.KTUN = Time unit (2)
	M.KTAE = AST entry point address (2)
	 
	For FORTRAN calls: HELP DIRECTIVES MARK

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate Clock Queue Block
	IE.ITI -- -93 - Invalid Time Parameter
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 MARK
	
   CALL MARK(efn,tmg,tnt[,ids])
 
	efn = Event flag number
	tmg = Time interval magnitude
	tnt = Time interval unit
	      1 = Ticks
	      2 = Seconds
	      3 = Minutes
	      4 = Hours
	ids = Directive status
 
   CALL WAIT(tmg,tnt[,ids])
 
	tmg = Time interval magnitude
	tnt = Time interval unit
	      0 = Ticks
	      1 = Milliseconds
	      2 = Seconds
	      3 = Minutes
	      4 = Hours
	ids = Directive status
2 QIO$
 Queue I/O request

     Macro call:   QIO$   fnc,lun,[efn],[pri],[isb],[ast][,prl]

 	fnc =	I/O function code
	lun =	Logical unit number
	efn =	Event flag number
	pri =	Priority; ignored, but must be present
	isb =	Address of I/O status block
	ast =	Address of AST service routine entry point
	prl =	Parameter list of the form <P1,...,P6>

	For local symbol definitions type: HELP DIRECTIVES QIO$ DEFINITIONS

     Fortran call:   CALL QIO(fnc,lun,[efn],[pri],[isb],[prl][,ids])
 
	fnc = I/O function code
	lun = Logical unit number
	efn = Event flag number
	pri = Priority; ignored, but must be present
	isb = 2-word integer array to receive final I/O status
	prl = 6-word integer array containing parameters list 
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate I/O Request Block
	IE.ULN --  -5 - Unassigned LUN
	IE.HWR --  -6 - Device driver not resident
	IE.PRI -- -16 - Task other than despooler attempted to write logical
			blocks
	IE.ILU -- -96 - Invalid LUN
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB or I/O Status Block is out of issuing 
			tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
  Local Symbol Definitions:
 
	Q.IOFN = I/O function code (2)
	Q.IOLU = Logical unit number (2)
	Q.IOEF = Event flag number (1)
	Q.IOPR = Priority (1)
	Q.IOSB = Address of I/O status block (2)
	Q.IOAE = Address of I/O done AST entry point (2)
	Q.IOPL = Parameter list (12)
2 WTQIO
 #QIOW$
2 QIOW$
 Queue I/O request and wait

     Macro call:   QIOW$   fnc,lun,efn,[pri],[isb],[ast][,prl]

	where the parameters are the same as for QIO$
 
     Fortran call:   CALL WTQIO(fnc,lun,[efn],[pri],[isb],[prl][,ids])
 
	where the parameters are the same as for QIO
2 RCST$
  Receive Data or Stop
 
     Macro call:    RCST$  [tname],buf

	tname = Name of task from which data isto be received -- if
		not specified data may be received from any task
	buf   = Address of 15-word buffer to receice data
 
     Local Symbol Def:
 
	R.CSTN -- Task name (4)
	R.CSBF -- Buffer address (2)

     Fortran call:   CALL RCST([rtname],ibuf,[ids])
 
	rtname = Name of task from which data is to be received
	ibuf   = Address of 15-word receive buffer
	ids    = Directive Status Word

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IS.SET --  +2 - No data received & task stopped
	IE.AST -- -80 - Task at AST state
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 RECEIV
 #RCVD$
2 RCVD$
 Receive data

     Macro call:   RCVD$   [tsk],buf

	tsk = Sender task name
 	buf = Address of 15-word buffer
 
     Local Symbol Def:
 
	R.VDTN = Sender task name (4)
	R.VDBA = Buffer address (2)
 
     Fortran call:   CALL RECEIV([tsk],buf[,,ids])
 
	tsk = Sender task name
	buf = 15-word integer array for received data
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - No data currently queued
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 RECOEX
 #RCVX$
2 RCVX$
 Receive data or exit

     Macro call:   RCVX$   [tsk],buf

	tsk = Sender task name
	buf = Address of 15-word buffer
 
     Local Symbol Def:
 
	R.VXTN = Sender task name (4)
	R.VXBA = Buffer address (2)
 
     Fortran call:   CALL RECOEX([tsk],buf[,,ids])
 
	tsk = Sender task name
	buf = 15-word integer array for received data
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 READEF
 #RDAF$
2 RDAF$
 Read all event flags

     Macro call:   RDAF$   buf

 	buf =	Address of 4-word buffer of the following format:
		word 0 = Task local flags 1-16
		word 1 = Task local flags 17-32
		word 2 = Task local flags 33-48
		word 3 = Task local flags 49-64
 
     Local Symbol Def:
 
	R.DABA = Buffer address (2)
 

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks address
			space
	IE.SDP -- -99 - DIC or DPB size is invalid

     Fortran call:   CALL READEF(efn,ids)
 
	efn = Event flag number
	ids = Directive status
 
	The Executive returns the status codes 2 (set) and 0 (clear)
	to report event flag polarity
2 RDXF$
  Read Extended Event Flags

     Macro call:    RDXF$  buf

	buf = Address of 6-word buffer 

Buffer Format:
	word 0 -- Task local flags 1-16
	     1 -- Task local flags 17-32
	     2 -- Task common flags 33-48
	     3 -- Task common flags 49-64
	     4 -- Task group-global flags 65-80
	     5 -- Task group-global flags 81-96
 
     Local Symbol Def:
 
	R.DABA -- Buffer address (2)

     DSW Return Codes:
 
	IS.CLR --  +0 - Group Global event flags do not exist
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
   
     Fortran call:  CALL READEF(efn[,ids])
   
    Only one event flag can be read by a FORTRAN task.

	efn = Event flag number
	ids = Directive status

	The Executive returns the status codes 2 (set) and 0 (clear)
	to report event flag polarity
2 REQUES
 #RQST$
2 RQST$
 Request

     Macro call:   RQST$   tsk,[prt],[pri][,ugc,umc]

	tsk =	Task name
	prt =	Partition name; ignored, but must be present
	pri =	Priority; ignored, but must be present
	ugc =	UIC group code
	umc =	UIC member code
 
     Local Symbol Def:
 
	R.QSTN = Task name (4)
	R.QSPN = Partition name (4)
	R.QSPR = Priority (2)
	R.QSGC = UIC group (1)
	R.QSPC = UIC member (1)
 
     Fortran call:   CALL REQUES(tsk,[opt][,ids])
 
	tsk = Task name
	opt = 4-word integer array
	      opt(1) = partition name; ignored but must be present
	      opt(2) = partition name; ignored but must be present
	      opt(3) = priority; ignored but must be present
	      opt(4) = UIC
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Insufficient Dynamic Memory
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task already active
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 RREF$
 Receive by reference

     Macro call:   RREF$   wdb

 	wdb =	Window definition block
 
     Local Symbol Def:
 
	R.REBA = Window definition block address (2)
 
	For window Definiton Block Parameters: HELP DIRECTIVES RREF$ WINDOW
 
     Fortran call:   CALL RREF(iwdb,[isrb][,ids])
 
	iwdb = An 8-word integer array containing a window definition
	       block
	isrb = A 10-word integer array to be used as the receive
	       buffer. if the call omits this parameter, the contents
	       of iwdb(8) are unchanged.
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.HWR --  -6 - Parity error on Region
	IE.ITS --  -8 - No packet found in Receive-by-Reference Queue
	IE.ADP -- -98 - Part of DPB, WDB or Receive Buffer is out of issuing 
			tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 WINDOW 
		Window Definition Block Parameters (input)
 
	W.NID = ID of an existing window if region is to be mapped
	W.NSTS = Bit settings in the window status word:
		 WS.MAP = 1 if received reference is to be mapped
		 WS.RCX = 1 if task exit desired when no packet is
			  found in the queue
	W.NSRB = Optional address of a 10-word buffer, to contain
		 the sender task name and additional information
 
 
		Window Definition Block Parameters (output)
 
	W.NRID = region ID (pointer to attachment description)
	W.NOFF = Offset word specified by sender task
	W.NLEN = Length word specified by sender task
	W.NSTS = Bit setting in the window status word:
		 WS.RED = 1 if attached with read access
		 WS.WRT = 1 if attached with write access
		 WS.EXT = 1 if attached with extend access
		 WS.DEL = 1 if attached with delete access
		 WS.RRF = 1 if receive was successful
 
		 The Executive clears the remaining bits
 
2 RESUME
 #RSUM$
2 RSUM$
 Resume Task

     Macro call:   RSUM$   [tsk]

 	tsk =	Task name
 
     Local Symbol Def:
 
	R.SUTN = Task name (4)
 
     Fortran call:   CALL RESUME(tsk[,ids])
 
	tsk = Task name
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task not active
	IE.ITS --  -8 - Task not Suspended
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 RUN$
 Run Task

     Macro call:   RUN$   tsk,[prt],[pri],[ugc],[umc],[smg],snt[,rmg,rnt]

 	tsk =	Task name
	prt =	Partition name; ignored, but must be present
	pri =	Priority; ignored, but must be present
	ugc =	UIC group code
	umc =	UIC member code
	smg =	Schedule delta magnitude
	snt =	Schedule delta unit; 1=Ticks, 2=Seconds, 3=Minutes, 4=Hours
	rmg =	Reschedule interval magnitude
	rnt =	Reschedule interval unit
 
     Local Symbol Def:
 
	R.UNTN = Task name (4)
	R.UNPN = Partition name (4)
	R.UNPR = Priority (2)
	R.UNGC = UIC group code (1)
	R.UNPC = UIC member code (1)
	R.UNSM = Schedule magnitude (2)
	R.UNSU = Schedule unit (2)
	R.RURM = Reschecule magnitude (2)
	R.UNRU = Reschedule unit (2)

	For FORTRAN calls type: HELP DIRECTIVES START

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Insufficient dynamic memory
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Multiuser Task name specified
	IE.PRI -- -16 - Privilege Violation
	IE.ITI -- -93 - Invalid time parameters
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 START 
     Fortran call:   CALL RUN(tsk,[opt],[smg],snt,[rmg],[rnt]],ids])
 
	tsk = Task name
	opt = 4-word integer array
	      opt(1) = Partition name; ignored, but must be present
	      opt(2) = Partition name; ignored, but must be present
	      opt(3) = Priority; ignored but mst be present
	      opt(4) = UIC
	smg = Schedule delta magnitude
	snt = Schedule delta unit
	      1 = Ticks
	      2 = Seconds
	      3 = Minutes
	      4 = Hours
	rmg = Reschedule interval magnitude
	rnt = Reschedule interval unit
	ids = Directive status
 
     Fortran call:   CALL START(tsk,smg,snt[,ids])
 
	tsk = Task name
	smg = Schedule dleta magnitude
	snt = Schedule delta unit
	      0 = ticks
	      1 = milliseconds
	      2 = seconds
	      3 = minutes
	      4 = hours
	ids = Directive status
2 SEND
 #SDAT$
2 SDAT$
 Send data

     Macro call:   SDAT$   tsk,buf[,efn]

 	tsk =	Task name
	buf =	Address of 13-word data buffer
	efn =	Event flag number
 
     Local Symbol Def:
 
	S.DATN = Task name (4)
	S.DABA = Buffer address (2)
	S.DAEF = Event flag number (2)
 
     Fortran call:   CALL SEND(tsk,buf,[efn][,ids])
 
	tsk = Task name
	buf = 13-word integer array of data to be sent
	efn = Event flag number
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate send packet
	IE.INS --  -2 - Task not installed
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB or buffer is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SETEF
 #SETF$
2 SETF$
 Set event flag

     Macro call:   SETF$   efn

 	efn =	Event flag number
 
     Local Symbol Def:
 
	S.ETEF = Event flag number (2)
 
     Fortran call:   CALL SETEF(efn[,ids])
 
	efn = Event flag number
	ids = Directive status

     DSW Return Codes:
 
	IS.CLR --  +0 - Flag was clear
	IS.SET --  +2 - Flag was already set
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SFPA$
 Specify floating point exception AST

     Macro call:   SFPA$   [ast]

  	ast =	AST service routine entry point address
 
     Local Symbol Def:
 
	S.FPAE = AST entry address (2)
 
     FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate AST control block
	IE.ITS --  -8 - AST entry point already unspecified, or task built
			without floating point support
	IE.AST -- -80 - Directive issued from AST routine, or ASTs disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SUSPND
 #SPND$S
2 SPND$S
 Suspend

     Macro call:   SPND$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL SUSPND[(ids)]
 
	ids = Directive status

     DSW Return Codes:
 
	IS.SPD --  +2 - Task was suspended
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 PWRUP
 #SPRA$
2 SPRA$
 Specify power recovery AST

     Macro call:   SPRA$   [ast]

 	ast =	AST service routine entry point address
 
     Local Symbol Def:
 
	S.PRAE = AST entry address (2)

     Fortran call:   EXTERNAL sub
		     CALL PWRUP(sub)
 
	sub = Name of a subroutine to be executed upon power
	      recovery.  The PWRUP subroutine will effect a
		CALL sub
	      The subroutine is called as a result of a power
	      recovery AST and therefore amy be controlled at
	      critical points by using DSASTR and ENASTR.
 
   To remove an AST:
 
	CALL PWRUP

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate AST control block
	IE.ITS --  -8 - AST entry point already unspecified
	IE.AST -- -80 - Directive issued from AST routine, or ASTs disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SPWN
  Spawn

     Macro call:    SPWN$  tname,,,[ugc],[umc],[efn],[east],[esb],[cmdlin],
			[cmdlen],[unum],[dnam]

	tname = Name of task to be spawned
	ugc   = Group number for the UIC of the offspring task
	umc   = Member number for the UIC of the offspring task
	efn   = The event flag to be set when task exits 
	east  = Address of exit AST routine
	esb   = Address of exit status word
	cmdlin= Address of the command to be queued to offspring task
	cmdlen= Length of the command line (maximum 79.)
	unum  = The terminal unit number
	dnam  = Device name mnemonic.

  For local symbol definitions type : HELP DIRECTIVES SPWN$ DEFINITIONS

  For the FORTRAN call type: HELP DIRECTIVES SPAWN

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate OCB, command line buffer,
			TCB or PCB
	IE.INS --  -2 - Task not installed, or command line interpreter but
			no command line specified
	IE.ACT --  -7 - Task was active and was not a command line interpreter
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB, exit status block or command line is 
			out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
 Local symbol definitions:

	S.PWTN = Task name (4)
	S.PWXX -- Reserved (6)
	S.PWUM -- User member code (1)
	S.PWUG -- User group code (1)
	S.PWEF -- Event flag number (2)
	S.PWEA -- Exit ASTroutine address (2)
	S.PWES -- Exit status block address (2)
	S.PWCA -- Command line address (2)
	S.PWCL -- Command line length (2)
	S.PWVT -- Terminal unit number (2)
	S.PWDN -- Device name (2)
   
2 SPAWN

    CALL SPAWN(rtname,[iugc],[iumc],[iefn],[iast],[iesb],[iparm],[icmlin],
		[icmlen],[iunit],[dnam],[ids]
 
	rtname  = Name of the offspring task to be spawned
	iugc    = Group number for UIC of the offspring task
	iumc    = Member number for UIC of the offspring task
	iefn    = The event flag to be set when task exits
	iast    = Address of exit AST routine
	iesb    = Address of exit status word
	iparm   = Address of AST status block
	icmlin  = Address of command line 
	icmlen  = Length of command line
	iunit   = Unit number of terminal to be used as the TI: for
		  the offspring task 
	dnam    = Device name mnemonic. If not specified, the virtual
		  terminal is used a TI:
	ids     = Directive status

2 SRDA$
 Specify receive data AST

     Macro call:   SRDA$   [ast]

 	ast =	AST service routine entry point address
 
     Local Symbol Def:
 
	S.RDAE = AST entry address (2)
 
     FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate AST control block
	IE.ITS --  -8 - AST entry point already unspecified
	IE.AST -- -80 - Directive issued from AST routine, or ASTs disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SREF$
 Send by reference

     Macro call:   SREF$   tsk,wdb[,efn]

 	tsk =	Receiver task name
	wdb =	Window definition block
	efn =	Event flag number

     Local Symbol Def:
 
	S.RETN = Receiver task name (4)
	S.REBA = Window definition block base address (2)
	S.REEF = Event flag number (2)
 
 For window definition block parameters type: HELP DIRECTIVES SREF$ DEFINITIONS

 For the FORTRAN call type: HELP DIRECTIVES SREF$ FORTRAN

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate send packet or attachment descriptor
	IE.INS --  -2 - Attempted to send to an Ancillary Control Processor
			or to a task that was not installed
	IE.HWR --  -6 - Parity error on Region
	IE.PRI -- -16 - Privilege Violation
	IE.NVR -- -86 - Invalid Region ID
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB, WDB or send buffer is out of issuing 
			tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
3 DEFINITIONS
		Window Definition Block Parameters (input)
 
	W.NRID = ID of the region to be sent by reference
	W.NOFF = Offset word passed without checking
	W.NLEN = Length word passed without checking
	W.NSTS = Bit settings in window status word (the receiver
		 task's permitted access):
		 WS.RED = 1 if read access is permitted
		 WS.WRT = 1 if write access is permitted
		 WS.EXT = 1 if extend access is permitted
		 WS.DEL = 1 if delete access is permitted
	W.NSRB = Optional address of an 8-word buffer containing
		 additional information
3 FORTRAN
     Fortran call:   CALL SREF(tsk,[efn],iwdb,[isrb][,ids])
 
	tsk = A single precision, floating point variable containing
	      the name of the receiving task in Radix-50 format
	efn = Event flag number
	iwdb = An 8-word integer array containing a window
	       definition block
	isrb = An 8-word integer array containing additional
	       information.  If specified, the address of isrb
	       is placed in iwdb(8).  If isrb is omitted, the
	       contents of iwdb(8) remain unchanged.
	ids = Directive status
 
		(input)
 
	iwdb(4) = W.NRID (above)
	iwdb(5) = W.NOFF
	iwdb(6) = W.NLEN
	iwdb(7) = W.NSTS
	iwdb(8) = W.NSRB
2 SRRA$
 Specify receive-by-reference AST

     Macro call:   SRRA$   [ast]

 	ast =	AST service routine entry point address
 
     Local Symbol Def:
 
	S.RRAE = AST entry address (2)
 
     FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.UPN --  -1 - Unable to allocate AST control block
	IE.ITS --  -8 - AST entry point already unspecified
	IE.AST -- -80 - Directive issued from AST routine, or ASTs disabled
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 STLOR
 #STLO$
2 STLO$
  Stop for logical or of event flags
 
     Macro call:    STLO$ grp,msk

	grp = Desired group of event flags
	msk = A 16-bit mask word

     Local Symbol Def:
 
	S.TLGR -- Group flags (2)
	S.TLMS -- Mask word (2)

     Fortran call:    CALL STLOR(ief1,ief2,ief3,...ief(n))

	ief1 ... ief(n) = List of event flag numbers

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.AST -- -80 - Task at AST state
	IE.IEF -- -97 - Event flag group other than 0 or 1 specified or
			event flag mask word is zero
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 STOP$S
  Stop 

     Macro call:    STOP$S

     Fortran call:    CALL STOP([ids])

	ids - Directive status

     DSW Return Codes:
 
	IS.SET --  +2 - Successful completion
	IE.AST -- -80 - Task at AST state
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 STOPFR
 #STSE$
2 STSE$
  Stop for single event flag

     Macro call:    STSE$  efn

	efn - Event flag number

     Local Symbol Def:
 
	S.TSEF -- Local event flag number

     Fortran call:   CALL STOPFR(iefn,[ids])

	iefn - Event flag number
	ids  - Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.AST -- -80 - Task at AST state
	IE.IEF -- -97 - Event flag number other than a local event flag
			was specified
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SVDB$
 Specify SST vector table for debugging aid

     Macro call:   SVDB$   [adr][,len]

 	adr =	Address of SST vector table
	len =	Length of (that is, number of entries in) the table
		in words.  The format of the table is:
		wrd 0 =	Odd address or nonexistent memory error
		wrd 1 = Memory protection violation
		wrd 2 = T-bit trap of execution of a BPT instruction
		wrd 3 = Execution of an IOT instruction
		wrd 4 = Execution of a reserved instruction
		wrd 5 = Execution of a non-RSX EMT instruction
		wrd 6 = Execution of a TRAP instruction
		wrd 7 = PDP-11/40 floating point exception
 
		A 0 entry in the table indicates that the task does
		not want to process the corresponding SST
 
     Local Symbol Def:
 
	S.VDTA = Table address (2)
	S.VDTL = Table length (2)
 
     FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or table is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 SVTK$
 Specify SST vector table for task

     Macro call:   SVTK$   [adr][,len]

 	adr =	Address of SST vector table
	len =	Length of (that is number of entries in) the table
		in words.  The table has the following format:
		wrd 0 = Odd address or nonexistent memory error
		wrd 1 = Memory protect violation
		wrd 2 = T-bit trap or execution of a BPT instruction
		wrd 3 = Execution of an IOT instruction
		wrd 4 = Execution of a reserved instruction
		wrd 5 = Execution of a non-RSX EMT instruction
		wrd 6 = Execution of a TRAP instruction
		wrd 7 = PDP-11/40 floating point exception
 
		A 0 entry is the table indicates that the task does
		not want to process the corresponding SST
 
     Local Symbol Def:
 
	S.VTTA = Table address (2)
	S.VTTL = Table length (2)
 
     FORTRAN does not support this directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB or table is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 UNMAP
 #UMAP$
2 UMAP$
 Unmap address window

     Macro call:   UMAP$   wdb

 	wdb =	Window definition block address
 
     Local Symbol Def:
 
	U.MABA = Window definition block address (2)
 
		Window Definition Block Parameters (input)
 
	W.NID = ID of the window to be unmapped
 
		Window Definition Block Parameters (output)
 
	W.NSTS = Bit settings in the window status word:
		 WS.UNM = 1 if the window was successfully unmapped
 
     Fortran call:   CALL UNMAP(iwdb[,ids])
 
	iwdb = An 8-word integer array containing a window definition
	       block
	ids = Directive status
 
		(input)
 
	iwdb(1), bits 0-7 = W.NID (above)
 
		(output)
 
	iwdb(7) = W.NSTS (above)

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ITS --  -8 - Specified address window is not mapped
	IE.NVW -- -87 - Invalid address window ID
	IE.ADP -- -98 - Part of DPB or WDB is out of issuing tasks address 
			space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 USTP$
  Unstop Task
 
     Macro call:    USTP$  [tname]

	tname = Name of task to be unstopped

     Local Symbol Def:
 
	U.STTN -- Task name (4)

     Fortran call:    CALL USTP(rtname,[ids])

	rtname = Name of task to be stopped
	ids    = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.INS --  -2 - Task not installed
	IE.ACT --  -7 - Task not active
	IE.ITS --  -8 - Task is not stopped, or is stopped for
			event flag(s) or buffered I/O
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 WFSNE
 #WSIG$S
2 WSIG$S
 Wait for significant event

     Macro call:   WSIG$S   [err]

 	err =	Error routine address
 
     Fortran call:   CALL WFSNE

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 WFLOR
 #WTLO$
2 WTLO$
 Wait for logical 'OR' of event flags

     Macro call:   WTLO$   grp,msk

 	grp =	Desired group of event flags
		group 0 = Flags 1-16
		group 1 = Flags 17-32
		group 2 = Flags 33-48
		group 3 = Flags 49-64
		group 4 = Flags 65-80
		group 5 = Flags 81-96
	msk =	A 16-bit octal mask word
 
     Fortran call:   CALL WFLOR(efn1,efn2,...efnn)
 
	efn = List of event flag numbers taken as the set of
	      flags to be specified in the directive

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.IEF -- -97 - No event flag specified in mask word, or flag group
			indicator not 0-5
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
2 WAITFR
 #WTSE$
2 WTSE$
 Wait for single event flag

     Macro call:   WTSE$   efn

 	efn =	Event flag number
 
     Local Symbol Def:
 
	W.TSEF = Event flag number (2)
 
     Fortran call:   CALL WAITFR(efn[,ids])
 
	efn = Event flag number
	ids = Directive status

     DSW Return Codes:
 
	IS.SUC --  +1 - Successful completion
	IE.IEF -- -97 - Invalid Event Flag Number.
	IE.ADP -- -98 - Part of DPB is out of issuing tasks address space
	IE.SDP -- -99 - DIC or DPB size is invalid
