.TITLE PISYM -- MACRO TO DEFINE PI FUNCTION CODES ; ; ; EDIT: +++001 DATE: 13-FEB-76 ; DEFINE FB.DI - SIGNIFY THAT REQUEST IS FROM ...DMO ; ; EDIT: +++002 15-MAR-76 ; DEFINE ERROR RETURN QUALIFIER PE.NST - NO SUCH T/S TERMINAL ; ; EDIT: +++003 27-MAR-76 ; DEFINE PI.LRQ FOR NEW REPORT LOAD REQUESTS PRIMITIVE ; ; EDIT: +++004 21-APR-76 ; DEFINE ERROR RETURN QUALIFIER PE.NBH FOR NOT ALLOWING NON INTERACTIVE ; CLI'S TO START IF THE BATCH I/O CONTROLLER IS NOT RESIDENT ; ; EDIT: +++005 01-NOV-76 ; INSERT PI.CHN PRIMITIVE ; ; EDIT: +++006 01-NOV-76 ; MODEM HANG-UP TERMINAL EVENT CODE ; ; EDIT: +++007 01-NOV-76 ; DRB MANAGEMENT ; ; EDIT: ++008 02-DEC-76 ; INSERT PE.NTS AND TS.INS ; ; EDIT: ++009 20-DEC-76 ; DEFINE OFFSETS INTO ATL ON TASK EXIT/TERMINATION ; ; EDIT: ++010 23-DEC-76 ; NEW FUNCTIONS:- SET USER NAME, SET DEFAULT UFD, SET DEFAULT DEVICE ; ; EDIT: ++011 05-JAN-77 ; DEFINE PI.SEV DRB OFFSETS, DEFINE FB.NC ; ; EDIT: ++012 15-JAN-77 ; NEW PRIMITIVE ET AL ; ; EDIT: ++013 07-FEB-77 ; NEW PRIMITIVES ET AL ; ; ; EDIT: ++014 15-FEB-77 ; NEW PRIMITIVES ET AL ; ; EDIT: ++015 17-FEB-77 ; MOVE REQUEST VOL TO GROUP 2 TO ENABLE PI.RVL MULTIPLE REQUEST ; ; EDIT: ++016 01-MAR-77 ; 1 NEW ERROR CODE, 1 OLD ERROR CODE ; ; EDIT: ++017 28-APR-77 ; MINOR IMPROVEMENTS ; ; EDIT: ++018 07-JUL-77 ; DEFINE SYMBOLS FOR TCS ; ; + ;MACRO TO DEFINE THE QIO FUNCTION CODES FOR THE PRIMITIVE ;INTERFACE HANDLER QUEUE I/O S AND VALUES REQUIRED FOR TCP QIO FUNCTIONS. ;TO INVOKE AT ASSEMBLY TIME WITH LOCAL DEFINITION USE: ; ; PISYM$ ; DEFINE SYMBOLS ; ; FOR GLOBAL DEFINITION USE: ; ; PISYM$ DEF$G ; DEFINE SYMBOLS GLOBALLY ; ;NOTE -- THIS MACRO HAS EXACTLY THE SAME FORMAT AS THE QIOSY$ ; MACRO FOR DEFINING STANDARD QIO FUNCTION VALUES ETC. ; AFTER USE ONCE IT REDEFINES ITSELF AS NULL. ; ; ; ; ; .MACRO PISYM$ $$$GBL .MACRO PISYM$ ARG ; REDEFINE TO RECLAIM MACRO STORAGE .ENDM ; ; ; THE MACRO .FUNC. DEFINES A GLOBAL WORD "SYM1" AS "HI" IN ; THE HIGH 8 BITS AND "LO" IN THE LOW 8 BITS AND DEFINES ; A BYTE "SYM2" EQUIVALENT TO "LO". ; .MACRO .FUNC. SYM1,SYM2,LO,HI SYM1 = HI*400 + LO ; SYM2 = LO .IF IDN <$$$GBL>,DEF$G .GLOBL SYM1 .GLOBL SYM2 .ENDC .ENDM .FUNC. ; ; ; THE MACRO .BYTE DEFINES A GLOBAL BYTE USING THE VALUE ; OF "LO" AS AN 8 BIT VALUE. ; .MACRO .BYTE. SYM,LO SYM =LO .IIF IDN <$$$GBL>,DEF$G,.GLOBL SYM .ENDM .BYTE. ; ; ; THE MACRO .PRIV. DEFINE A GLOBAL WORD 'PRIV' WHICH HAS ; BIT 'BIT' SET AND ALL OTHER BITS RESET ; .MACRO .PRIV. PRIV,BIT PRIV =1 .REPT BIT PRIV=2*PRIV .ENDR .IIF IDN <$$$GBL>,DEF$G,.GLOBL PRIV .ENDM .PRIV. ; ; ;QUALIFIERS -- ; .FUNC. PQ.Q,XXX,002,000 ; QUEUE IN EXPRESS QUEUE ; (=QOISYM DEFINED IQ.Q) ; ; ; ;PI FUNCTION CODES ; ;SPECIAL FUNCTIONS .PRIV. PR.SPE,000 .FUNC. PI.KIL,SF.KIL,012,000 ; KILL CURRENT REQUEST .FUNC. PI.RDN,SF.RDN,022,000 ; I/O RUN DOWN .FUNC. PI.UNL,SF.UNL,042,000 ; UNLOAD HANDLER TASK ; ;TASK INITIATION AND CONTROL .PRIV. PR.TSK,001 .FUNC. PI.RUN,SF.RUN,005,201 ;++012 RUN TASK FOR REQUESTOR ;++012 1 LINE DELETED .FUNC. PI.CNE,SF.CNE,300,201 ; CONTINUE WITH EVENT FLAG SET ;++012 1 LINE DELETED .FUNC. PI.UJN,SF.UJN,001,001 ;++012 SET UP UJN FOR TASK TO RUN .FUNC. PI.QJN,SF.QJN,004,001 ;++012 QUEUE JOB NODE FOR SCHEDULE .FUNC. PI.CAS,SF.CAS,010,001 ;++012 CONTINUE AUTO-SUSPENDED TASKS .FUNC. PI.TTN,SF.TTN,020,001 ; SET TASK TERMINATION .FUNC. PI.TSP,SF.TSP,040,001 ; SET TASK SUSPENSION .FUNC. PI.TCN,SF.TCN,100,001 ; SET TASK CONTINUE .FUNC. PI.SEF,SF.SEF,200,001 ; SET TASK EVENT FLAG ; ; CHAINING ;++005 .PRIV. PR.CHN,010 ;++005/7 .FUNC. PI.CHN,SF.CHN,001,010 ;++005 DECLARE CHAIN TASK .FUNC. PI.SEN,SF.SEN,004,010 ;++017/13 SEND DATA .FUNC. PI.RCV,SF.RCV,010,010 ;++013 RECEIVE DATA ; ;CLI CONTROL ; CLI SUBSYSTEM CONTROL .PRIV. PR.CSC,002 .FUNC. PI.IAT,SF.IAT,005,202 ; INITIALISE CLI AND ALLOCATE TERMINALS .FUNC. PI.ICI,SF.ICI,001,002 ; INIT CLI .FUNC. PI.ATT,SF.ATT,004,002 ; ALLOCATE/START CLI FOR TERMINAL .FUNC. PI.RET,SF.RET,010,002 ; RETURN TERMINAL TO BASE CLI .FUNC. PI.REM,SF.REM,020,002 ; REMOVE CLI FROM SYSTEM ; ; ; CLI TASK CONTROL .PRIV. PR.CTC,003 .FUNC. PI.ABO,SF.ABO,001,003 ; ABORT CLI TASK .FUNC. PI.XIT,SF.XIT,004,003 ; REQUEST CLI EXIT .FUNC. PI.CUI,SF.CUI,010,003 ; CHANGE CLI TASK UIC .FUNC. PI.SUN,SF.SUN,020,003 ;++010 SET USER NAME .FUNC. PI.SDU,SF.SDU,040,003 ;++010 SET DEFAULT UFD .FUNC. PI.SDV,SF.SDV,100,003 ;++010 SET DEFAULT DEVICE .FUNC. PI.SNU,SF.SNU,060,203 ;++010 SET USER NAME & DEFAULT UFD .FUNC. PI.SND,SF.SND,120,203 ;++010 SET USER NAME & DEFAULT DEVICE .FUNC. PI.SUD,SF.SUD,140,203 ;++010 SET DEFAULT DEVICE & UFD .FUNC. PI.NUD,SF.NUD,160,203 ;++010 SET USER NAME, DEFAULT DEV & UFD ; ;JOB NODE CONTROL .PRIV. PR.JNC,004 .FUNC. PI.CJU,SF.CJU,005,204 ; CLAIM JOB NODE AND ASSG UIC .FUNC. PI.JUL,SF.JUL,025,204 ;++014 CLAIM JN, ASGN UIC & ALL. TSK LIM .FUNC. PI.CJL,SF.CJL,021,204 ;++014 CLAIM JN & SET NODE ALLOCN LIMIT .FUNC. PI.JLU,SF.JLU,024,204 ;++014 ASSIGN UIC & SET NODE ALLOCN LIM. .FUNC. PI.CJN,SF.CJN,001,004 ; CLAIM JOB NODE .FUNC. PI.AUI,SF.AUI,004,004 ; ASSIGN UIC .FUNC. PI.RJN,SF.RJN,010,004 ; RELINQUISH JOB NODE .FUNC. PI.JNL,SF.JNL,020,004 ;++014 SET JOB NODE ALLOCATION LIMIT ; ; ;DEVICE MANAGEMENT ; GROUP 1 FUNCTIONS .PRIV. PR.DV1,005 .FUNC. PI.RQD,SF.RQD,005,205 ; REQUEST DEVICE(CLAIM DEV AND GET ON LINE) .FUNC. PI.CLD,SF.CLD,001,005 ; ++015 CLAIM DEVICE .FUNC. PI.OLD,SF.OLD,004,005 ; ++015 ON LINE DEVICE .FUNC. PI.RLD,SF.RLD,010,005 ; ++015 RELINQUISH DEVICE .FUNC. PI.ASG,SF.ASG,020,005 ; ++015 ASSIGN LUN .FUNC. PI.DAS,SF.DAS,040,005 ; ++015 DEASSIGN LUN .FUNC. PI.CKD,SF.CKD,100,005 ; ++015 CHECK DEVICE ALLOCATION ; ; GROUP 2 FUNCTIONS .PRIV. PR.DV2,006 .FUNC. PI.RVL,SF.RVL,041,206 ; ++015 REQUEST VOL AND LOAD .FUNC. PI.RQV,SF.RQV,001,006 ; ++015 REQUEST VOLUME .FUNC. PI.OLV,SF.OLV,004,006 ; ++015 GET VOLUME ON LINE TO USER .FUNC. PI.DME,SF.DME,010,006 ; ++015 CHECK DEVICE MAP ENTRY .FUNC. PI.RLV,SF.RLV,020,006 ; ++015 RELINQUISH VOLUME .FUNC. PI.LVL,SF.LVL,040,006 ; ++015 LOAD VOL REQUEST FROM OPERATOR ; ;TERMINAL EVENT CONTROL .PRIV. PR.TEV,007 .FUNC. PI.SEV,SF.SEV,001,007 ; SERVICE TERMINAL EVENT FOR CLI .FUNC. PI.DEV,SF.DEV,004,007 ; DECLARE TERMINAL EVENT TO CLI .FUNC. PI.STE,SF.STE,010,007 ; SERVICE CLI EXIT REQUEST EVENT ; ;++007 4 LINES DELETED ; ;CLI SERVICE .PRIV. PR.CLS,011 .FUNC. PI.TTS,SF.TTS,001,011 ; REPORT TERMINALS .FUNC. PI.JST,SF.JST,004,011 ; GIVE JOB STATISTICS .FUNC. PI.CTX,SF.CTX,010,011 ; CHANGE/REPORT CONTEXT ; ;SYSTEM MANAGEMENT ; SYSTEM PARAMETER FUNCTIONS .PRIV. PR.SYP,012 .FUNC. PI.PRM,SF.PRM,075,212 ; REPORT ALL SYSTEM PARAMETERS .FUNC. PI.BQU,SF.BQU,001,012 ; SET/REPORT BATCH QUANTUM .FUNC. PI.PRO,SF.PRO,004,012 ; SET/REPORT T/S TASK PROMOTION TIME .FUNC. PI.TQ1,SF.TQ1,010,012 ; SET/REPORT T/S QUANTUM PER LEVEL .FUNC. PI.TQ2,SF.TQ2,020,012 ; SET/REPORT T/S QUANTUM CONSTANTS .FUNC. PI.TCH,SF.TCH,040,012 ; REPORT TASK CHARACTERISTICS ; ; SYSTEM REPORTING .PRIV. PR.SYR,013 .FUNC. PI.TAS,SF.TAS,001,013 ; REPORT TASK INFORMATION .FUNC. PI.TIM,SF.TIM,004,013 ; REPORT TIME STATISTICS .FUNC. PI.LRQ,SF.LRQ,010,013 ; +++00X REPORT LOAD REQUESTS ; ; SYSTEM CONTROL .PRIV. PR.SYC,014 .FUNC. PI.CLS,SF.CLS,001,014 ; TIMESHARING CLOSEDOWN ; ;++007 3 LINES DELETED ; ;DRB MANAGEMENT ;++007 .PRIV. PR.DRB,015 ;++007 .FUNC. PI.DRB,SF.DRB,001,015 ;++007 RETURN DRB INFORMATION ; ;TERMINAL RESPONDER TASK CONTROL ;++014 .PRIV. PR.CTC,016 ;++014 .FUNC. PI.CTC,SF.CTC,001,016 ;++014 CLAIM/RELINQUISH ^C NOTIFICATION ; ; ;ERROR RETURN CODES -- .BYTE. PE.BAD,-01. ; BAD PARAMETERS .BYTE. PE.IFC,-02. ; INVALID FUNCTION CODE .BYTE. PE.ABO,-15. ; REQUEST TERMINATED .BYTE. PE.PRI,-16. ; PRIVILEGE VIOLATION -ILLEGAL CALLER .BYTE. PE.UPN,-60 ; UNAVAILABLE IAS POOL NODE ; ; ;SUCESSFUL RETURN CODES -- .BYTE. PS.PND,+00 ; OPERATION PENDING .BYTE. PS.SUC,+01 ; OPERATION COMPLETE,SUCESS ;SUCCESSFUL RETURN QUALIFIERS -- .BYTE. PS.DMO,+01 ; RSX DISMOUNT CAN BE RUN .BYTE. PS.REL,+02 ; DEVICE CAN BE RELEASED .BYTE. PS.VNO,+03 ; VOLUME NOT ON LINE FOR TERMINAL USER .BYTE. PS.VNM,+04 ; VOLUME NOT MOUNTED IN SYSTEM .BYTE. PS.RBS,+05 ;++013 LOST DATA ON A RECEIVE .BYTE. PS.JAE,+06 ;++016 JOB NODE ALLCN EXCEEDED .BYTE. PS.TDB,+07 ;++018 SENDING TASK'S TDB NON-EXISTENT .BYTE. PS.NOE,+10 ;++018 REQUEST < CURRENT ALLOCATION ; ; ; ;ERROR RETURN QUALIFIERS -- .BYTE. PE.FTL,-100 ; FATAL ERROR - IASCOM INCONSISTANT .BYTE. PE.ILL,-101 ; ILLEGAL REQUEST .BYTE. PE.NTS,-102 ;++008 NON-TIMESHARING TASK ; .BYTE. PE.UNS,-110 ; UNAVAILABLE NODE SPACE (NODE FULL) .BYTE. PE.NAL,-111 ; (IAS) NODE ALREADY ALLOCATED .BYTE. PE.MJA,-112 ;++014 MAX JOB NODES ALLOCATED ;++016 1 LINE DELETED ;++018 1 LINE REPLACED .BYTE. PE.TDB,-113 ;++018 ILLEGAL USE OF TDB'S .BYTE. PE.INS,-115 ;++014 TASK NOT YET INSTALLED .BYTE. PE.GEF,-116 ;++014 GLOBAL EF .BYTE. PE.CTC,-117 ;++014 OWNER IS NOT TERM. RESP. TASK ; .BYTE. PE.JNE,-120 ; JOB NODE ERROR .BYTE. PE.MJN,-121 ; MAX JOBS .BYTE. PE.JOB,-122 ; JOB NAME ERROR .BYTE. PE.TSE,-123 ; TASK STRING ERROR .BYTE. PE.TNI,-124 ; SYSTEM TASK NOT INSTALLED .BYTE. PE.TAA,-125 ; TASK ALREADY ACTIVE .BYTE. PE.NTA,-126 ; NO TASK ACTIVE .BYTE. PE.CNE,-127 ;++010 CLI NODE ERROR ; .BYTE. PE.BUF,-130 ; BUFFER ERROR ; .BYTE. PE.IBS,-131 ;++013 SEND DATA > 253 BYTES .BYTE. PE.UTS,-132 ;++013 UNAVAILABLE TABLE SPACE .BYTE. PE.NOD,-133 ;++013 NO DATA (RECEIVE OR DRB) .BYTE. PE.ADR,-134 ;++007 USER'S BUFFER NOT IN HIS SPACE ;++017 1 LINE DELETED .BYTE. PE.NBH,-136 ; +++004 NO BATCH I/O HANDLER .BYTE. PE.NST,-137 ; +++002 NO SUCH T/S TERMINAL ;++017 1 LINE DELETED .BYTE. PE.TNE,-141 ; TERMINAL NODE ERROR .BYTE. PE.TNA,-142 ; TERMINAL NOT ACTIVE .BYTE. PE.TAC,-143 ; TERMINAL ACTIVE .BYTE. PE.MTT,-144 ; MAX TERMINALS .BYTE. PE.NOB,-145 ; NO BATCH LEVEL .BYTE. PE.COT,-146 ; CO TERMINAL SPECIFIED FOR NON SCI .BYTE. PE.SCA,-147 ; SCI ACTIVE ON TT CANNOT REALLOCATE ; .BYTE. PE.VNM,-150 ; VOLUME NOT MOUNTED(FOR REQUESTOR) .BYTE. PE.NSD,-151 ; NO SUCH DEVICE (AVAIL TO T/S) .BYTE. PE.LUN,-152 ; LUN ERROR .BYTE. PE.DNA,-153 ; DEVICE NOT ALLOCATED .BYTE. PE.DIU,-154 ; DEVICE IN USE ; -155 ; UNUSED .BYTE. PE.NMD,-156 ; NO MORE DEVICES (OF REQ.TYPE) .BYTE. PE.ACT,-157 ; VOLUME ACTIVE WITH I/O .BYTE. PE.DIS,-160 ; DEVICE IS SPOOLED .BYTE. PE.DAC,-161 ; DEVICE ACTIVE .BYTE. PE.DIR,-162 ; DEVICE IS DIRECTORY .BYTE. PE.NDD,-163 ;NON-DIRECTORY DEVICE .BYTE. PE.DNC,-164 ; DEVICE NOT CLAIMED .BYTE. PE.VMO,-165 ; VOLUME MOUNTED .BYTE. PE.VOU,-166 ; VOLUME MOUNTED ON OTHER DEVICE .BYTE. PE.LAA,-167 ; LUN ALREADY ASSIGNED .BYTE. PE.DOF,-170 ; DEVICE OFF LINE TO USER .BYTE. PE.DNL,-171 ; DEVICE NOT LOADED .BYTE. PE.NRQ,-172 ; NO LOAD REQUEST FOR DEVICE .BYTE. PE.ORJ,-173 ; OPERATOR REJECTION OF VOL REQUEST .BYTE. PE.SAT,-174 ; LOAD REQUEST ALREADY SATISFIED .BYTE. PE.WUN,-176 ; WRONG UNIT NUMBER .BYTE. PE.DRQ,-177 ; DEVICE ALREADY REQUESTED ;++013 1 LINE MOVED FORWARD ; ;++010 1 LINE DELETED ; ; ; ;TERMINAL EVENT CODES IF.JS == 004 ; TASK TERMINATED SUCCESSFULLY IF.JA == 010 ; TASK ABORTED IF.CC == 002 ; CONTROL C OCCURRED ON TERMINAL IF.TX == 040 ; TASK EXIT REQUESTED IF.NL == 020 ; TASK NEVER LOADED IF.ZZ ==100 ; SET ^X,^C INHIBIT FOR CLI ON CLI EXIT IF.SU ==200 ; TASK SUSPENDED ITSELF IF.TT ==400 ; TASK TERMINATED IF.HG ==1000 ;++006 MODEM HANG-UP IF.CH ==001 ;++005 TASK TERMINATED SUCCESSIVELY... ;++005 AND CHAIN TASK PENDING IF.SD ==100 ;++013 TASK HAS SENT DATA ; ;FLAGS BYTE DEFINITIONS ; CLI CONTROL PRIMITIVES ; FB.PI == 001 ; TASK ALLOWED TO ISSUE TCP REQUESTS JP.PI == FB.PI FB.PD == 002 ; TASK ALLOWED TO ISSUE FOREGROUND DIRECTIVES JP.PD == FB.PD FB.PT == 004 ; TASK ALLOWED TO EXECUTE PRIVILEGED TASKS JP.PT == FB.PT FB.BT == 010 ; TASK IS A BATCH ONE FB.NC == 020 ;++011 DON,T SUSPEND ME ON CNTL/C FB.SP == 100 ; CLI TASK IS TO SERVICE SPOOLED INPUT CF.SPL == FB.SP FB.RU == 200 ; CLI TASK AUTO START FB.NS == 400 ; TASK NOT SWAPPABLE ; TASK INITIATION AND CONTROL PRIMITIVES ; FB.PI ; FB.PD ; FB.PT ; FB.BT ; FB.NS ; FB.NC ++011 ; TS.USE == 0 ; RUN USER TASK TS.DOT == 1 ; RUN SYSTEM TASK TS.DOL == 2 ; RUN LIBRARY TASK TS.INS == 3 ;++008 RUN INSTALLED NON-SYSTEM TASK ; ; ; ; DEVICE MANAGEMENT FB.RT == 001 ; REQUEST IS FOR REAL-TIME DEVICE FB.GB == 002 ; REQUEST IS FOR GLOBAL DEVICE FB.WPR == 004 ; WRITE PROTECT REQUIRED FB.NOL == 010 ; NOLOAD FLAG FOR LOAD PRIMITIVE FB.DI == 020 ; +++001 REQUEST IS FROM DMO FB.OVR == 040 ; ++015 OVERRIDE OPERATOR ON REQUEST VOL ; ; ;CONTROL CONTEXT VALUES ; CT.CCI == IF.CC ; CONTROL C CONTEXT, INACTIVE MODE CT.CCA == IF.CC*2 ; CONTROL C CONTEXT ,ACTIVE MODE ; ; ; ; TCS BIT DEFINITIONS ;++018 ; ; "READ-EVENT" FLAGS ; TW.TAS==1 ;++018 CHECK ON EVENTS FROM THE GIVEN TASKS TW.TER==2 ;++018 CHECK ON TERMINAL EVENT TW.WT==4 ;++018 WAIT UNTIL ONE OF THE EVENTS HAPPENS ; ; TDB FLAG BITS (T.FLG2) ; TD.ACT==1 ;++018 THE SUBTASK IS ACTIVE TD.LNK==2 ;++018 THE TDB IS DECLARED TD.WT==4 ;++018 WAIT FOR AN EVENT FROM THIS TASK ; ; MISCELLANEOUS ; PR.RST==PR.TSK!PR.JNC!PR.TEV ;++018 ALL THAT'S NEEDED TO EXECUTE RUN$T ; ; ; ; ; DEFINITION OF PI.SEV DRB OFFSETS ; E.JB ==0 ;++011 JOB ID E.SIZ ==E.JB+2 ;++011 TASK SIZE E.TIM ==E.SIZ+2 ;++011 CPU TIME (2 WORDS) ;CONTINUED BELOW............. ; ; ; DEFINITION OF E.XXX OFFSETS ;++009 ; INTO THE ATL AFTER EXIT OF TASK. TSS1 USES ;++009 ; THE ATL FOR PASSING EXIT INFO TO TCP ;++009 ; AFTER EXIT, PARTICULARLY EXIT WITH STATUS. ++009 ; ; THESE OFFSETS ARE ALSO USED BY PI.SEV DRB'S ++011 ; E.TR ==E.TIM+4 ;++010/09 REASON FOR EXIT E.TS ==E.TR+2 ;++009 TASK'S EXIT STATUS E.TPS ==E.TS+2 ;++009 TASKS PS E.TPC ==E.TPS+2; ;++009 TASK'S PC E.TR0 ==E.TPC+2 ;++009 AND REGISTERS E.TR1 ==E.TR0+2 ;++009 E.TR2 ==E.TR1+2 ;++009 E.TR3 ==E.TR2+2 ;++009 E.TR4 ==E.TR3+2 ;++009 E.TR5 ==E.TR4+2 ;++009 E.TSP ==E.TR5+2 ;++009 ; .IF LT E.TR-<3*2> ;++010 MUSTN'T BE EARLIER THAN WORD 3 .ERROR ;INVALID ATL OFFSETS .ENDC ;++010 ; .IF GT E.TSP-<24.*2> ;++010 MUSTN'T OVERSTEP THE END OF THE NODE .ERROR ;INVALID ATL OFFSETS .ENDC ;++010 ; ; ; DEFINE BIT FLAGS IN E.TR ; EV.AB==400 ;++018 TASK ABORTED EV.ST==2000 ;++018 TASK EXITED WITH STATUS ; ; ; .ENDM PISYM$ ; ; ; PISYM$ DEF$G .END