$PAGE "PCBFINCL -- Include file for PXFIXED Area"              <<*DOC*>>00010000
<<====================================================>>                00015000
<<                                                    >>                00020000
<<                 PCBFINCL  -  G2                    >>                00025000
<<                                                    >>                00030000
<<====================================================>>                00035000
                                                                        00040000
                                                                        00045000
$IF x8=on                                                               00050000
COMMENT                                                        <<*DOC*>>00055000
                                                                        00060000
 THE PXFIXED PORTION OF THE PCBX CONTAINS JOB AND CONTROL INFO.         00065000
                                                                        00070000
                                                                        00075000
  |-----------------------------------------------|                     00080000
 0|               c-b PXFIXED SIZE                |0                    00085000
  |-----------------------------------------------|                     00090000
 1|               RELATIVE S(S-DB)                |1                    00095000
  |-----------------------------------------------|                     00100000
 2|               RELATIVE Z(Z-DB)                |2                    00105000
  |-----------------------------------------------|                     00110000
 3|                INITIAL Q(Q-DB)                |3                    00115000
  |-----------------------------------------------|  LM MDST            00120000
 4|         INITIAL RELATIVE DL (DB-DL)           |4 LP LOADPROC        00125000
  |-----------------------------------------------|  Trap Modes         00130000
 5|   GENERAL RESOURCE CAPABILITY(FROM PROG-FILE) |5 AT(0:1)            00135000
  |-----------------------------------------------|  LT(1:1)-Lib        00140000
 6|AT|LT|ST|CY|CT|//|//|//|//|U |L |C |G |A |LM|LP|6 ST(2:1)-Sys        00145000
  |-----------------------------------------------|  CY(3:1)-Ctl-Y      00150000
 7|LINK TO XDS ENTRIES IN EXP. area   |   XDS CNT |7 CT(4:1)-Code       00155000
  |-----------------------------------------------|  U User UDC         00160000
10| P| S|   EXTRA DATA SEGMENT DST INDEX          |8 L Logging          00165000
  |-----------------------------------------------|  C Shr Clock        00170000
11| P| S|   EXTRA DATA SEGMENT DST INDEX          |9 G Glbl RIN         00175000
  |-----------------------------------------------|  A Acct UDC         00180000
12| P| S|   EXTRA DATA SEGMENT DST INDEX          |10                   00185000
  |-----------------------------------------------|                     00190000
13| P| S|   EXTRA DATA SEGMENT DST INDEX          |11                   00195000
  |-----------------------------------------------|                     00200000
14| X| A| STKDUMP ENV    |RW|  INITIAL CST INDEX  |12                   00205000
  |-----------------------------------------------|                     00210000
15|       MAXIMUM STACK SIZE(MAXDATA LIMIT)       |13                   00215000
  |-----------------------------------------------|                     00220000
16|             ARITHMETIC TRAP MASK              |14                   00225000
  |-----------------------------------------------|                     00230000
17|            ARITHMETIC TRAP PLABEL             |15                   00235000
  |-----------------------------------------------|                     00240000
20|              LIBRARY TRAP PLABEL              |16                   00245000
  |-----------------------------------------------|                     00250000
21|              SYSTEM TRAP PLABEL               |17                   00255000
  |-----------------------------------------------|                     00260000
22|               CONTROL Y PLABEL                |18                   00265000
  |-----------------------------------------------|                     00270000
23|              CODE TRAP PLABEL                 |19                   00275000
  |-----------------------------------------------|                     00280000
24|     DATA COM TERMINATION TRAP PLABEL          |20                   00285000
  |-----------------------------------------------|                     00290000
25|              IMAGE TRAP PLABEL                |21                   00295000
  |-----------------------------------------------|                     00300000
26|         HORIZON CLEAN UP ROUTINE PLABEL       |22                   00305000
  |-----------------------------------------------|                     00310000
27|CUR.MAX STACK SIZE(largest value ever for Z-DL)|23                   00315000
  |-----------------------------------------------|                     00320000
$PAGE                                                          <<*DOC*>>00325000
                                                                        00330000
PXFIXED (CONT.)                                                         00335000
-------                                                                 00340000
  |-----------------------------------------------|                     00345000
30|               PROCESS CPU TIME                |24                   00350000
  |                                               |                     00355000
31|                    (MSEC)                     |25                   00360000
  |-----------------------------------------------|                     00365000
32|     MAXIMUM DATA SEG SIZE USED(IN SECTORS)    |26                   00370000
  |-----------------------------------------------|                     00375000
33|    TOTAL VIRTUAL STORAGE USED(IN SECTORS)     |27                   00380000
  |-----------------------------------------------|                     00385000
34|       CURRENT EXTRA DATA SEGMENT SPACE        |28                   00390000
  |-----------------------------------------------|                     00395000
35|       MAXIMUM EXTRA DATA SEGMENT SPACE        | 29                  00400000
  |-----------------------------------------------|                     00405000
36| PRIV MODE BOUNDS FLAGS|       STOV COUNT      | 30                  00410000
  |-----------------------------------------------|                     00415000
37|   PROCESS EXECUTION TIME REMAINDER (IN MSEC)  | 31                  00420000
  |-----------------------------------------------|                     00425000
40|         SET TO-1 WHEN IN BREAK MODE*          | 32                  00430000
  |-----------------------------------------------|                     00435000
41|      CONTINUE FLAG (:CONTINUE COMMAND)**      | 33                  00440000
  |-----------------------------------------------|                     00445000
42|ACTUAL SIZE OF VIRTUAL SPACE ALLOCATED TO STACK| 34                  00450000
  |-----------------------------------------------|                     00455000
43|                  ERROR LEVEL                  | 35                  00460000
  |-----------------------------------------------|                     00465000
44|               INTRINSIC ERRORS                | 36                  00470000
  |-----------------------------------------------|                     00475000
45|               INTRINSIC ERRORS                | 37                  00480000
  |-----------------------------------------------|                     00485000
46|               INTRINSIC ERRORS                | 38                  00490000
  |-----------------------------------------------|                     00495000
47|               INTRINSIC ERRORS                | 39                  00500000
  |-----------------------------------------------|                     00505000
50|               INTRINSIC ERRORS                | 40                  00510000
  |-----------------------------------------------|                     00515000
51|               INTRINSIC ERRORS                | 41                  00520000
  |-----------------------------------------------|                     00525000
52|TSLR, virtual time since last rescheduled      |42                   00530000
  |-----------------------------------------------|                     00535000
53|TSTB, virtual time since transaction began     |43                   00540000
  |-----------------------------------------------|                     00545000
54|TSSWAPIN, virtual time since swapin            |44                   00550000
  |-----------------------------------------------|                     00555000
55|TSLA, virtual time since last absence          |45                   00560000
  |-----------------------------------------------|                     00565000
56|TSLD, virtual time since last deallocation     |46                   00570000
  |-----------------------------------------------|                     00575000
57|QCNT, quantums used since transaction began    |47                   00580000
  |-----------------------------------------------|                     00585000
60|/|D|/|O| RESERVED FOR FUTURE SOFT INT USE      |48                   00590000
  |/|C|/|S|                                       |                     00595000
  |/|Y|/|I|                                       |                     00600000
  |-----------------------------------------------|                     00605000
61| TRLX INDEX FOR KERNEL TIMEOUT PROCEDURE       | 49                  00610000
  |-----------------------------------------------|    JOB TYPE:        00615000
62|TY |    JOB/SESSION NUMBER                     | 50  1=SESS.         00620000
  |                                               |     2=JOB           00625000
63|<---(reserved for HPEI )---------------------->| 51                  00630000
  |-----------------------------------------------|                     00635000
64|          RESERVED FOR FUTURE USE              | 52                  00640000
  |-----------------------------------------------|                     00645000
65|          RESERVED FOR FUTURE USE              | 53                  00650000
  |-----------------------------------------------|                     00655000
66|          RESERVED FOR FUTURE USE              | 54                  00660000
  |-----------------------------------------------|                     00665000
67|          RESERVED FOR FUTURE USE              | 55                  00670000
  |-----------------------------------------------|                     00675000
70|  |CY|  |SI|                                   | 56                  00680000
  |-----------------------------------------------|                     00685000
71|             TIMEOUT TRLX                      | 57                  00690000
  |-----------------------------------------------|                     00695000
72|         TERMTRAP: DS CLEANUP PLABEL           | 58                  00700000
  |-----------------------------------------------|                     00705000
73|///////////////////////////////////////////////| 59                  00710000
  |-----------------------------------------------|                     00715000
74|      PCLASSMASK                               | 60                  00720000
  |-----------------------------------------------|                     00725000
75|      PROCQUESTOPWORD                          | 61                  00730000
  |-----------------------------------------------|                     00735000
76|                                               | 62                  00740000
  |      PROCSTOPTIME                             |                     00745000
77|                                               | 63                  00750000
  |-----------------------------------------------|                     00755000
NOTES:  P = 1 if opened by priv user                                    00760000
        S = 1 if data seg is sharable                                   00765000
                                                                        00770000
  PCLASSMASK   = BIT MASK OF CLASSES THIS PROCESS HAS ENABLED           00775000
  PROCQUESTOPWORD.(0:4) = PROCESS PRIORITY: 7 => L QUEUE                00780000
                                            6 => C QUEUE                00785000
                                            2 => D QUEUE                00790000
                                            1 => E QUEUE                00795000
                 .(4:12)= REASON STOPPED: 1 => STOP SEG FAULT           00800000
                                          2 => STOP DISC WAIT           00805000
                                          3 => BLOCKED I/O              00810000
                                               (NON TERMINAL)           00815000
                                          4 => TERMINAL READ            00820000
                                          5 => STOP IMPEDE              00825000
                                          6 => STOP ACTIVE              00830000
       PROCSTOPTIME = DBL WORD TIMESTAMP OF WHEN PROCESS STOPPED        00835000
                      FOR REASON GIVEN IN PROCQUESTOPWORD               00840000
                                                                        00845000
       DCY            A DELAYED CONTROL Y IS PENDING (THIS BIT          00850000
                      IS CHECKED BY ININ ON BOUNDS VIOLATION TO         00855000
                      DETERMINE IF GOT: 1) TRUE BOUNDS VIOLATION        00860000
                      OR 2) AN INDUCED BOUNDS VIO THAT INDICATES        00865000
                      THAT THE CONTROL Y TRAP PROCEDURE MAY NOW         00870000
                      BE ENTERED).                                      00875000
       OSI            STATE OF THE "ASOFT" PCB BIT WHEN CNTRL Y         00880000
                      TRAP WAS ENTERED. ASOFT=1 ALLOWS USER SOFT        00885000
                      INTERRUPTS AGAINST THE PROCESS. SET TO            00890000
                      ZERO WHEN THE CNTRL Y HANDLER IS ENTERED.         00895000
                      IT IS SET TO ITS PRIOR STATE WHEN THE USER        00900000
                      CALLS RESETCONTROL.                               00905000
 * SET TO COMMAND RECORD LENGTH WHEN COMMAND PENDING                    00910000
   (I.E. COMMAND ENTERED DURING BREAK OR ENCOUNTERED                    00915000
   DURING FLUSHING).                                                    00920000
                                                                        00925000
** CONTINUE FLAG VALUES                                                 00930000
     0 = NO CONTINUE IN EFFECT                                          00935000
     1 = CONTINUE JUST ENCOUNTERED                                      00940000
     2 = CONTINUE IN EFFECT FOR THIS COMMAND                            00945000
                                                                        00950000
CY FLAG                                                                 00955000
                                                                        00960000
PCBXFIXED(56).(1:1)      = SET BY PSEUDOINT - PENDING CNTRL Y           00965000
                           CANNOT BE PROCESSED DUE TO                   00970000
                           SYSTEM CODE OR PRIVILEGED CODE. ININ         00975000
                           CHECKS THIS BIT ON BOUNDS VIOLATION          00980000
                           OR TRACE TRAP.                               00985000
                                                                        00990000
SI FLAG                                                                 00995000
                                                                        01000000
PCBXFIXED(56).(3:1)      = SPECIFIES THE STATE OF THE USER              01005000
                           INTERRUPT FLAG WHEN THE CURRENT              01010000
                           CNTRL Y WAS PROCESSED.                       01015000
                                                               <<*DOC*>>01020000
                                                                        01025000
7.3.4  PXFIXED EXPANSION BITMAP                                         01030000
                                                                        01035000
       The PXFIXED bitmap and expansion area is for use in              01040000
       accounting of extra data segments acquired by the                01045000
       process.                                                         01050000
                                                               <<*DOC*>>01055000
                                                                        01060000
;                                                                       01065000
$IF                                                                     01070000
<< Definition of PXFIXED locations for MPE V >>                         01075000
                                                                        01080000
<< User must make the following definitions in the process:             01085000
<<   ARRAY QARRAY(*) = Q+0;   >>                               <<*DOC*>>01090000
<<   LOGICAL PXFIXEDLOC;      >>                               <<*DOC*>>01095000
<<   INTEGER S0 = S-0;        >>                               <<*DOC*>>01100000
                                                                        01105000
                                                                        01110000
DEFINE PXFIXED = PUSH(Q,DL); ASSEMBLE(XCH,LSUB);                        01115000
                    << TOS = DL - Q >>                                  01120000
                 PXFIXEDLOC := TOS-QAM2(S0)#;                           01125000
                    << (DL-Q) - contents of (DL-2) >>                   01130000
                                                                        01135000
DEFINE                                                                  01140000
   PXFXSIZE         = QP0(PXFIXEDLOC)#,                                 01145000
   PXFXSREG         = QP1(PXFIXEDLOC)#,                                 01150000
   PXFXZREG         = QP2(PXFIXEDLOC)#,                                 01155000
   PXFXQREG         = QP3(PXFIXEDLOC)#,                                 01160000
   PXFXDLREG        = QP4(PXFIXEDLOC)#,                                 01165000
   PXFXCAP          = QP5(PXFIXEDLOC)#,                                 01170000
   PXFXARITHTRP     = QP6(PXFIXEDLOC).(0:1)#,                           01175000
   PXFXLIBTRP       = QP6(PXFIXEDLOC).(1:1)#,                           01180000
   PXFXSYSTRP       = QP6(PXFIXEDLOC).(2:1)#,                           01185000
   PXFXCTLYTRP      = QP6(PXFIXEDLOC).(3:1)#,                           01190000
   PXFXCODETRP      = QP6(PXFIXEDLOC).(4:1)#,                           01195000
   PXFXUSERUDC      = QP6(PXFIXEDLOC).(9:1)#,                           01200000
   PXFXLOGGING      = QP6(PXFIXEDLOC).(10:1)#,                          01205000
   PXFXCLKSHARE     = QP6(PXFIXEDLOC).(11:1)#,                          01210000
   PXFXGLBRINFLG    = QP6(PXFIXEDLOC).(12:1)#,                          01215000
   PXFXACCTUDC      = QP6(PXFIXEDLOC).(13:1)#,                          01220000
   PXFXMDS          = QP6(PXFIXEDLOC).(14:1)#,                          01225000
   PXFXLDPROCED     = QP6(PXFIXEDLOC).(15:1)#;                          01230000
                                                                        01235000
<<DEFINES and an example for scanning XDS entries in PXFIXED>>          01240000
<<and PXFIXED expansion area>>                                          01245000
<<XDSBLKINDX and INDEX must be declared in process>>                    01250000
<<Example:                                                  >>          01255000
<<integer XDSBLKINDX,INDEX;                                 >>          01260000
<<DO BEGIN                                                  >>          01265000
<<   INDEX := 1;                                            >>          01270000
<<   WHILE INDEX <= PXFXXDSCNT DO                           >>          01275000
<<     BEGIN                                                >>          01280000
<<       ---                                                >>          01285000
<<       ---                                                >>          01290000
<<       INDEX := INDEX+1;                                  >>          01295000
<<     END;                                                 >>          01300000
<<     XDSBLKINDX := PXFXXDSLINK;                           >>          01305000
<<   END UNTIL XDSBLKINDX := 0;                             >>          01310000
<<END;                                                      >>          01315000
                                                                        01320000
                                                                        01325000
EQUATE                                                                  01330000
   RELSOFFSET      = 1,                                                 01335000
   FIRSTXDSBLKINDX = 7,                                                 01340000
   PXAPLAB         = 15,                                                01345000
   PXLPLAB         = 16,                                                01350000
   PXSPLAB         = 17,                                                01355000
   PXCYPLAB        = 18,                                                01360000
   PXCPLAB         = 19,                                                01365000
   PXHPLAB         = 22,                                       <<*horz>>01370000
   PXMAP           = 76,                                                01375000
   FIXEDSIZE       = 80;                                                01380000
                                                                        01385000
DEFINE                                                                  01390000
   XDSLINKFLD      = (0:12)#,                                           01395000
   XDSCNTFLD       = (12:4)#,                                           01400000
   PXFXXDSLINK     = QARRAY(PXFIXEDLOC+XDSBLKINDX).LINKFLD#,            01405000
   PXFXXDSCNT      = QARRAY(PXFIXEDLOC+XDSBLKINDX).XDSCNTFLD#,          01410000
   PXFXXDSENTRY    = QARRAY(PXFIXEDLOC+XDSBLKINDX+INDEX)#,              01415000
   PXFXXDSPRIV     = PXFXXDSENTRY.(0:1)#,                               01420000
   PXFXXDSSHAR     = PXFXXDSENTRY.(1:1)#,                               01425000
   PXFXXDSDST      = PXFXXDSENTRY.(2:14)#;                              01430000
                                                                        01435000
DEFINE                                                                  01440000
   PXFXCSTEXPBIT   = QP12(PXFIXEDLOC).(0:1)#,                           01445000
   PXFXAIP         = QP12(PXFIXEDLOC).(1:1)#,                           01450000
   PXFXSTKDMPENV   = QP12(PXFIXEDLOC).(2:4)#,                           01455000
   PXFXRW          = QP12(PXFIXEDLOC).(7:1)#,                           01460000
   PXFXINITCST     = QP12(PXFIXEDLOC).(8:8)#,                           01465000
   PXFXMAXSTK      = QP13(PXFIXEDLOC)#,                                 01470000
   PXFXATRPMASK    = QP14(PXFIXEDLOC)#,                                 01475000
   PXFXATRPPLBL    = QP15(PXFIXEDLOC)#,              <<*horz>>          01480000
   PXFXLTRPPLBL    = QP16(PXFIXEDLOC)#,              <<*horz>>          01485000
   PXFXSTRPPLBL    = QP17(PXFIXEDLOC)#,              <<*horz>>          01490000
   PXFXCTLYPLBL    = QP18(PXFIXEDLOC)#,             <<*horz>>           01495000
   PXFXCODEPLBL    = QP19(PXFIXEDLOC)#,              <<*horz>>          01500000
   PXFXTERMPLBL    = QP20(PXFIXEDLOC)#,                                 01505000
   PXFXIMAGEPLBL   = QP21(PXFIXEDLOC)#,                                 01510000
   PXFXHORZPLBL    = QP22(PXFIXEDLOC)#,              <<*horz>>          01515000
   PXFXCURMXSTK    = QP23(PXFIXEDLOC)#,                                 01520000
   PXFXPCPUTIME1   = QP24(PXFIXEDLOC)#,                                 01525000
   PXFXPCPUTIME2   = QP25(PXFIXEDLOC)#;                                 01530000
                                                                        01535000
DEFINE                                                                  01540000
   PXFXMAXDSUSED   = QP26(PXFIXEDLOC)#,                                 01545000
   PXFXVSUSED      = QP27(PXFIXEDLOC)#,                                 01550000
   PXFXCURXDSSIZE  = QP28(PXFIXEDLOC)#,                                 01555000
   PXFXMAXXDSSIZE  = QP29(PXFIXEDLOC)#,                                 01560000
   PXFXPMBC        = QP30(PXFIXEDLOC).(0:2)#,<< *** ?? ***>>            01565000
   PXFXPRVMDFLAG   = QP30(PXFIXEDLOC).(0:8)#,<< *** ?? ***>>            01570000
   PXFXSTOVCNT     = QP30(PXFIXEDLOC).(8:8)#,                           01575000
   PXFXREMPTIME    = QP31(PXFIXEDLOC)#,                                 01580000
   PXFXBRKMODE     = QP32(PXFIXEDLOC)#,                                 01585000
   PXFXCNTNUFLG    = QP33(PXFIXEDLOC)#,                                 01590000
   PXFXVIRSPACE    = QP34(PXFIXEDLOC)#,                                 01595000
   PXFXERRLEVEL    = QP35(PXFIXEDLOC)#,                                 01600000
   PXFXINTRERR     = QP35(PXFIXEDLOC+INDEX)#;             <<skerr>>     01605000
                     <<INDEX must be defined in process>>               01610000
                     <<INDEX must start at 1>>                 <<skerr>>01615000
                                                                        01620000
                                                                        01625000
DEFINE                                                                  01630000
   PXFXVTSLR       = QP42(PXFIXEDLOC)#,                                 01635000
   PXFXVTSTB       = QP43(PXFIXEDLOC)#,                                 01640000
   PXFXVTSSWPIN    = QP44(PXFIXEDLOC)#,                                 01645000
   PXFXVTSLA       = QP45(PXFIXEDLOC)#,                                 01650000
   PXFXVTSLD       = QP46(PXFIXEDLOC)#,                                 01655000
   PXFXQCNT        = QP47(PXFIXEDLOC)#,                                 01660000
   PXFXDCY         = QP48(PXFIXEDLOC).(1:1)#,<<***???***>>              01665000
   PXFXOSI         = QP48(PXFIXEDLOC).(3:1)#,<<***???***>>              01670000
   PXFXTRLXINDX    = QP49(PXFIXEDLOC)#,                                 01675000
   PXFXJOBTYPE     = QP50(PXFIXEDLOC).(0:2)#,                           01680000
   PXFXJOBNUM      = QP50(PXFIXEDLOC).(2:14)#,                          01685000
   PXFXCYFLAG      = QP56(PXFIXEDLOC).(1:1)#,                           01690000
   PXFXSIFLAG      = QP56(PXFIXEDLOC).(3:1)#,                           01695000
   PXFXTRLXTOUT    = QP57(PXFIXEDLOC)#,                                 01700000
   PXFXDSTRAP      = QP58(PXFIXEDLOC)#,                                 01705000
   PXFXPCLSMASK    = QP60(PXFIXEDLOC)#,                                 01710000
   PXFXPROCPRI     = QP61(PXFIXEDLOC)#,                                 01715000
   PXFXPSTOPTIME1  = QP62(PXFIXEDLOC)#,                                 01720000
   PXFXPSTOPTIME2  = QP63(PXFIXEDLOC)#,                                 01725000
   PXFXBITMAP      = QP76(PXFIXEDLOC+INDEX)#;                           01730000
$IF X8=OFF                                                              01735000
$CONTROL NOLIST                                                         01740000
$IF                                                                     01745000
COMMENT:                                                                01750000
************************************************************            01755000
** ANY CHANGES TO THIS INCLUDE FILE WILL NECESSITATE      **            01760000
** REVIEW AND POSSIBLE MODIFICATIONS TO INCLUDE FILE      **            01765000
** "INCLPCBX".  "INCLPCBX" MUST BE USED IN CONJUNCTION    **            01770000
** WITH THIS INCLUDE FILE WHEN MAKING REFERENCES TO THE   **            01775000
** PXFIXED STACK AREA IN MODULES 92 AND 93.               **            01780000
************************************************************            01785000
$CONTROL LIST                                                           01790000
;                                                                       01795000
$TITLE " "                                                     <<*DOC*>>01800000
