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 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 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