         << LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION >>     00000001
<<======================================================>>              00010000
<<=========   B E G I N  M P E  V  J M A T   ===========>>              00015000
<<=========   I N C L U D E   F I L E        ===========>>              00020000
<<======================================================>>              00025000
                                                                        00030000
$IF X8 = OFF                                                            00035000
$CONTROL NOLIST                                                         00040000
$IF                                                                     00045000
               COMMENT                                                  00050000
                                                                        00055000
    This is the include file for the MPE V JMAT (Job master             00060000
table).                                                                 00065000
                                                                        00070000
    The user should note that it is required that the user set          00075000
up the addressing mode within the code accessing the variables          00080000
of this table.  It is also required that in conjunction with            00085000
setting up the addressing mode the user use an array called             00090000
"JMATARR" to reference the variables of the JMAT table, and             00095000
an index called "JMATINX" be used to index into the individual          00100000
user entries of the table.  The following are examples of how           00105000
these "reserved" variables should be used:                              00110000
                                                                        00115000
    1) Doing an EXCHANGEDB to the JMAT:                                 00120000
                                                                        00125000
          INTEGER ARRAY JMATARR(*) = DB + 0:                            00130000
                  .                                                     00135000
                  .                                                     00140000
                  .                                                     00145000
          ENTRYNUMBER := 7:                                             00150000
          JMATINX := JMATENTRYSIZE * ENTRYNUMBER:                       00155000
          EXCHANGEDB(JMATDST):                                          00160000
          IF JMATGROUPPASS = 1 THEN PROMPT: ::GRP. PASSWORD  ::         00165000
                                            ::NECESSARY      ::         00170000
                                                                        00175000
                                                                        00180000
    2) Doing a MFDS/MTDS with the JMAT, moving the whole                00185000
       entry:                                                           00190000
                                                                        00195000
          INTEGER I,J,K:                                                00200000
          INTEGER ARRAY JMATARR(0:JMATENTRYSIZE-1):                     00205000
                  .                                                     00210000
                  .                                                     00215000
                  .                                                     00220000
          JMATINX := JMATENTRYSIZE * ENTRYNUMBER:                       00225000
          JMATGROUPPASS := 1:                                           00230000
          MOVETODSEG(JMATDST, @JMATARR, JMATINX,                        00235000
                     JMATENTRYSIZE):                                    00240000
                                                                        00245000
    3) Doing a MFDS/MTDS moving only part of the JMAT:                  00250000
       (Note: this example depends on the fact that a                   00255000
       JMATGROUPPASSOFF (an offset) and a JMATGROUPASSEXT               00260000
       (a bit extract) are defined.  Since only those                   00265000
       offsets and extracts needed will be defined they                 00270000
       may not be.  However, their definintions will parallel           00275000
       those that are defined below.)                                   00280000
                                                                        00285000
                   .                                                    00290000
                   .                                                    00295000
          JMATINX := JMATENTRYSIZE * ENTRYNUMBER  +                     00300000
                                     JMATGROUPPASSOFF:                  00305000
          MOVEFROMDSEG(@S0, JMATDST, JMATINX, 1):                       00310000
          IF TOS.JMATGROUPPASSEXT = 1 THEN PROMPT:                      00315000
                                                                        00320000
                                                                        00325000
                                                                        00330000
            MPEV  JMAT - JOB MASTER TABLE STRUCTURE                     00335000
                  ----------------------------------                    00340000
SIR = 15(10) = %17                                                      00345000
DST = 25(10) = %31                        ZEROTH                        00350000
                                         ENTRY                          00355000
                                            |                           00360000
                                            |                           00365000
                                            |                           00370000
   0 1 2 3 4 5 6 7 8 9101112131415          |                           00375000
  |-------------------------------| ------------------------            00380000
 0|    MAXSIZE    |    CURSIZE    |0   max JMAT size (words/128)        00385000
  |-------------------------------| cur. JMAT sz.(words/128)            00390000
  | VMOUNT INFO   |  ENTRY SIZE   |1   :VMOUNT  for WARMSTART           00395000
  |-------------------------------|    JMAT entry size (38)             00400000
 2|         ENTRY POINTER         |2   DB ptr to 1st entry(38)          00405000
  |-------------------------------|                                     00410000
 3|    SCHEDULING HEAD POINTER    |3   DB ptr to wrd 0 of head          00415000
  |-------------------------------|    entry in sched. queue            00420000
 4|    SCHEDULING TAIL POINTER    |4   DB ptr to wrd 0 of tail          00425000
  |-------------------------------|    entry in sched. queue            00430000
 5| TY|        SCOUNTER           |5   next assignable ses. #,          00435000
 6|                               |6   TY = 1                           00440000
  |-------------------------------|                                     00445000
 7| TY|        JCOUNTER           |7   next assignable batch #,         00450000
10|                               |8   TY = 2                           00455000
  |-------------------------------|   LG=1, logoff in progress          00460000
11|LG|SEC|////////|SFENCE/|JOBFNCE|9  SEC=0, high=3, low                00465000
  |-------------------------------|  JOBSECURITY                        00470000
12|             SLIMIT            |10  max # session       C E          00475000
  |-------------------------------|                      \ U X          00480000
13|              SNUM             |11  cur. # sessions   | R E          00485000
  |-------------------------------|                      | R C          00490000
14|             JLIMIT            |12  max. # batch jobs > E U          00495000
  |-------------------------------|                      | N T          00500000
15|              JNUM             |13  cur. # batch jobs | T I          00505000
  |===============================|                      / L N          00510000
16|                               |14                      Y G          00515000
  |                               |                                     00520000
17|            WORKAREA           |15  SFENCE=session fence             00525000
  |             (24WDS)           |    for HPEI                         00530000
20|                               |16                                   00535000
  ~                               ~                                     00540000
  ~                               ~                                     00545000
45|                               |37                                   00550000
  |===============================| ---------------------------         00555000
46|                               | 38               ^                  00560000
  |                               |                  |                  00565000
  |                               |                  |                  00570000
  |                               |                                     00575000
  ~                               ~                                     00580000
  ~                               ~               ENTRY 1               00585000
  |                               |                                     00590000
  |                               |                  |                  00595000
  |                               |                  |                  00600000
13|                               |75                v                  00605000
  |===============================| ---------------------------         00610000
  |                               |                                     00615000
  |                               |                                     00620000
  |                               |                                     00625000
  ~                               ~                                     00630000
  ~                               ~                                     00635000
  |                               |   LAST                              00640000
  |                               |   ENTRY                             00645000
  |===============================|                                     00650000
                                                                        00655000
                                                                        00660000
  SCHEDULING QUEUE                                                      00665000
  ----------------                                                      00670000
  WAITING SESSIONS                                                      00675000
     FIFO WITHIN HIPRI/INPUT PRIORITY                                   00680000
 [ERROR JOBS      ]                                                     00685000
 [   FIFO         ]                                                     00690000
  WAITING JOBS                                                          00695000
     FIFO WITHIN HIPRI/INPUT PRIORITY                                   00700000
    JMAT - Job Master Table Entry                                       00705000
    -----------------------------                                       00710000
                       1 1 1 1 1 1                                      00715000
   0|1:2:3|4:5:6|7:8:9|0:1:2|3:4:5                                      00720000
  |-------------------------------|                                     00725000
 0|  state    :D|I:G:A|U:C: INPRI | 0  state                            00730000
  |-------------------------------|      0 = free entry                 00735000
 1| ty:   job/session number      | 1    1 = introduced, in             00740000
  |-------------------------------|          STARTDEVICE                00745000
 2| job/session # cont. for HPE   | 2                                   00750000
  |-------------------------------|                                     00755000
 3|                               | 3  %40 = waiting, job in            00760000
 4|        user name              | 4        scheduling queue           00765000
 5|                               | 5  %60 = initial, UCOP              00770000
 6|                               | 6        has created JSMP           00775000
  |-------------------------------|      2 = executing, JSMP            00780000
 7|                               | 7        finished initial.          00785000
10|        account name           | 8    3 = terminating.               00790000
11|                               | 9    4 = suspended.                 00795000
12|                               |10    D = duplicative                00800000
  |-------------------------------|      I = interactive                00805000
13|                               |11    {G = group password            00810000
14|        job name               |12    {(QUIET mode,state=2)          00815000
15|                               |13    {A = account password          00820000
16|                               |14    {($STDLIST flag)               00825000
  |-------------------------------|      {U = User password             00830000
17|                               |15    {0 = pass. validated           00835000
20|        group logon name       |16    {1 = must validate             00840000
21|                               |17    {    password(INITJSMP)        00845000
22|                               |18        I/O (HPE1)                 00850000
  |-------------------------------|      C = JLIST is device            00855000
23|   JIN device                  |19        class index                00860000
  |-------------------------------|                                     00865000
24|   JLIST device                |20                                   00870000
  |-------------------------------|                                     00875000
25|   Julian date (CALENDAR)      |21                                   00880000
  |-------------------------------|      ty = 1 - session               00885000
26|   time (CLOCK)                |22         2 - job                   00890000
27|                               |23                                   00895000
  |-------------------------------|                                     00900000
30| language      :   XPRI        |24                                   00905000
  |-------------------------------|                                     00910000
31|  Main pin                     |25                                   00915000
  |-------------------------------|                                     00920000
32| CPU lim. (0 deflt, -1 no lim.)|26                                   00925000
  |-------------------------------|                                     00930000
33|S|R:N:FT :OUTPRI : NUMCOPIES   |27    ORIGJLIST is                   00935000
  |-------------------------------|      used as a scheduling           00940000
34|    ORIGJIN                    |28    link by UCOP (state=           00945000
  |-------------------------------|      %40).DB rel. ptr. to           00950000
35|    ORIGJLIST                  |29    next entry. Last entry         00955000
  |-------------------------------|      in list contains 0.            00960000
36|    Unused (HPEI)              |30                                   00965000
  |-------------------------------|                                     00970000
37|    Unused (HPEI)              |31                                   00975000
  |-------------------------------|                                     00980000
40|    Unused (HPEI)              |32                                   00985000
  |-------------------------------|                                     00990000
41|    Unused (HPEI)              |33                                   00995000
  |-------------------------------|                                     01000000
42|    Unused (HPEI)              |34                                   01005000
  |-------------------------------|                                     01010000
43|    Unused (HPEI)              |35                                   01015000
  |-------------------------------|                                     01020000
44|    Unused                     |36                                   01025000
  |-------------------------------|                                     01030000
45|    Unused                     |37                                   01035000
  |-------------------------------|                                     01040000
   0|1:2:3|4:5:6|7:8:9|0:1:2|3:4:5                                      01045000
                       1 1 1 1 1 1                                      01050000
                                  FT = funny terminal                   01055000
    R = RESTART                        00 - regular term.               01060000
    N = SEQUENCED                      01 - regular term.,              01065000
    S = ORIGJIN is spooled.                 special logon               01070000
                                       10 - APL term.                   01075000
                                       11 - APL term.                   01080000
$PAGE                                                                   01085000
                         JOB STATES                                     01090000
                         ----------                                     01095000
                                                                        01100000
                                                                        01105000
                                                                        01110000
  JOB STATES - JMAT ENTRY WORD 0.(0:6)                                  01115000
                                                                        01120000
  SHOWJOB - Displays job states by scanning JMAT DST (%31)              01125000
                                                                        01130000
  LOGON USES ALL STATES EXCEPT "SUSPEND"                                01135000
                                                                        01140000
                                                                        01145000
  --------------------------------------------------------------        01150000
| STATE | STATE  |PROCESS |SEGMENT |PROCEDURE(S)                        01155000
|  NO.  | NAME   |        |        |                                    01160000
--------------------------------------------------------------          01165000
|   1   |INTRO   |DEVREC  |NURSERY |STARTDEVICE ->PUTJMAT               01170000
|       |        |JSMP    |        |->ALLOCENTRY IN SEGMENT             01175000
|       |        |SPOOLER |        |ALLOCUTIL                           01180000
--------------------------------------------------------------          01185000
| %40   |WAIT    |DEVREC  |NURSERY |STARTDEVICE ->SCHEDULEJOB           01190000
|       |        |JSMP    |        |                                    01195000
|       |        |        |SPOOLING|SPOOLSTUFFIN ->SCHEDULEJOB          01200000
|       |        |SPOOLER |        |                                    01205000
--------------------------------------------------------------          01210000
| %60   |INIT-   |UCOP    |UCOP    |LAUNCHJOB                           01215000
|       |IALIZAT-|        |        |                                    01220000
|       |ION     |        |        |                                    01225000
--------------------------------------------------------------          01230000
|   2   |EXEC    |JSMP    |NURSERY |INITJSMP                            01235000
--------------------------------------------------------------          01240000
|   3   |TERMIN- |JSMP    |MORGUE  |TERMINATE ->EXPIRE ->               01245000
|       |ATING   |        |        |CLEANUPJOB                          01250000
--------------------------------------------------------------          01255000
|   0   |FREE    |JSMP    |MORGUE  |TERMINATE ->EXPIRE ->               01260000
|       |ENTRY   |        |        |CLEANUPJOB ->DEALLOCENTRY           01265000
|       |        |        |        |IN ALLOCUTIL                        01270000
--------------------------------------------------------------          01275000
|   4   |SUSP    |JSMP    |OPLOW   |CXBREAKJOB                          01280000
--------------------------------------------------------------          01285000
                                                                        01290000
                                                                        01295000
 For states INTRO and WAIT,                                             01300000
                                                                        01305000
    DEVREC  => logon command originated on terminal or                  01310000
               other unspooled device.                                  01315000
    SPOOLER => logon command originated on spooled device.              01320000
    JSMP    => logon command is the result of the execution of          01325000
               a :STREAM command.  (This also includes USER             01330000
               processes which have done programmatic :STREAMs.)        01335000
;    <<  END COMMENT   >>                                               01340000
$IF X8 = OFF                                                            01345000
$CONTROL LIST                                                           01350000
$IF                                                                     01355000
                                                                        01360000
<<***********************************************************>>         01365000
<<                                                           >>         01370000
<< B E G I N   M P E V   J M A T   I N C L U D E   F I L E   >>         01375000
<<                                                           >>         01380000
<<***********************************************************>>         01385000
                                                                        01390000
EQUATE                                                                  01395000
   JMATDST        = %31,                                                01400000
   JMATSIR        = %17,                                                01405000
   JMATENTRYSIZE  = 38,                                                 01410000
   JMATHEADERSIZE = 14,                                                 01415000
   JMATNAMELEN    = 4;                                                  01420000
                                                                        01425000
<<***********************************************************>>         01430000
<< J M A T   Z E R O E T H   E N T R Y  (HEADER)             >>         01435000
<<***********************************************************>>         01440000
                                                                        01445000
DEFINE                                                                  01450000
   JMATMAXSIZE     = JMATARR(0).(0:8)#,                                 01455000
   JMATCURSIZE     = JMATARR(0).(8:8)#,                                 01460000
   JMATVMOUNT      = JMATARR(1).(0:8)#,                                 01465000
   JMATENTSIZE     = JMATARR(1).(8:8)#,                                 01470000
   JMATENTRYPTR    = JMATARR(2)#,                                       01475000
   JMATHEADPTR     = JMATARR(3)#,                                       01480000
   JMATTAILPTR     = JMATARR(4)#,                                       01485000
   JMATSTYPE       = JMATARR(5).(0:2)#,                                 01490000
   JMATSCOUNTER    = JMATARR(5).(2:14)#,                                01495000
   JMATJTYPE       = JMATARR(7).(0:2)#,                                 01500000
   JMATJCOUNTER    = JMATARR(7).(2:14)#,                                01505000
   JMATJOBFENCE    = JMATARR(9).(12:4)#,                                01510000
   JMATSESFENCE    = JMATARR(9).(8:4)#,                                 01515000
   JMATLGBITS      = JMATARR(9).(0:1)#,                                 01520000
   JMATJOBSEC      = JMATARR(9).(1:2)#,                                 01525000
   JMATSLIMIT      = JMATARR(10)#,                                      01530000
   JMATSNUM        = JMATARR(11)#,                                      01535000
   JMATJLIMIT      = JMATARR(12)#,                                      01540000
   JMATJNUM        = JMATARR(13)#,                                      01545000
   JMATSCHEDHEAD   = JMATARR(14)#,                                      01550000
   JMATWORKAREA    = JMATARR(15)#;                                      01555000
                                                                        01560000
                                                                        01565000
<<**********************************************************>>          01570000
<<J M A T   R E G U L A R   E N T R Y   F O R M A T (MPEV)  >>          01575000
<<**********************************************************>>          01580000
                                                                        01585000
                                                                        01590000
DEFINE                                                                  01595000
   JMATJOBSTATE    = JMATARR(JMATINX).(0:6)#,                           01600000
   JMATINPRI       = JMATARR(JMATINX).(12:4)#,                          01605000
   JMATDUPLICATIVE = JMATARR(JMATINX).(6:1)#,                           01610000
   JMATINTERACTIVE = JMATARR(JMATINX).(7:1)#,                           01615000
   JMATGROUPPASS   = JMATARR(JMATINX).(8:1)#,                           01620000
   JMATQUIETMODE   = JMATARR(JMATINX).(8:1)#,                           01625000
   JMATACCTPASS    = JMATARR(JMATINX).(9:1)#,                           01630000
   JMATSAVESTDLIST = JMATARR(JMATINX).(9:1)#,                           01635000
   JMATUSERPASS    = JMATARR(JMATINX).(10:1)#,                          01640000
   JMATCBIT        = JMATARR(JMATINX).(11:1)#,                          01645000
   JMATJSNO        = JMATARR(JMATINX+1).(2:14)#,                        01650000
   JMATJSTYPE      = JMATARR(JMATINX+1).(0:2)#,                         01655000
   JMATUSERNAME    = JMATARR(JMATINX+3)#,                               01660000
   JMATACCTNAME    = JMATARR(JMATINX+7)#,                               01665000
   JMATJOBNAME     = JMATARR(JMATINX+11)#,                              01670000
   JMATGRPLOGON    = JMATARR(JMATINX+15)#,                              01675000
   JMATJINDEV      = JMATARR(JMATINX+19)#,                              01680000
   JMATJLISTDEV    = JMATARR(JMATINX+20)#,                              01685000
   JMATCALENDAR    = JMATARR(JMATINX+21)#,                              01690000
   JMATTIME        = JMATARR(JMATINX+22)#,                              01695000
   JMATLANGUAGE    = JMATARR(JMATINX+24).(0:8)#,                        01700000
   JMATXPRI        = JMATARR(JMATINX+24).(8:8)#,                        01705000
   JMATMAINPIN     = JMATARR(JMATINX+25)#,                              01710000
   JMATCPULIM      = JMATARR(JMATINX+26)#,                              01715000
   JMATNUMCOPIES   = JMATARR(JMATINX+27).(9:7)#,                        01720000
   JMATOUTPRI      = JMATARR(JMATINX+27).(5:4)#,                        01725000
   JMATFTBITS      = JMATARR(JMATINX+27).(3:2)#,                        01730000
   JMATSEQBIT      = JMATARR(JMATINX+27).(2:1)#,                        01735000
   JMATRESTART     = JMATARR(JMATINX+27).(1:1)#,                        01740000
   JMATSBIT        = JMATARR(JMATINX+27).(0:1)#,                        01745000
   JMATORIGJIN     = JMATARR(JMATINX+28)#,                              01750000
   JMATSCHEDLINK   = JMATARR(JMATINX+29)#,                              01755000
   JMATORIGJLIST   = JMATARR(JMATINX+29)#,                              01760000
   JMATCREATOR     = JMATARR(JMATINX+30)#,                              01765000
   JMATPROGLOGON   = JMATARR(JMATINX+31).(0:1)#,                        01770000
   JMATWAITTILLON  = JMATARR(JMATINX+31).(1:1)#,                        01775000
   JMATLOGONNOW    = JMATARR(JMATINX+31).(2:1)#,                        01780000
   JMATIDLECI      = JMATARR(JMATINX+31).(3:1)#;                        01781000
                                                                        01785000
                                                                        01790000
                                                                        01795000
                                                                        01800000
                                                                        01805000
<< ********************************************************* >>         01810000
<<   J M A T   O F F S E T S  -- ordinal offsets into entries>>         01815000
<<           Add these only as needed                        >>         01820000
<< ********************************************************* >>         01825000
                                                                        01830000
<<                       HEADER                              >>         01835000
EQUATE                                                                  01840000
   JMATHEADPTROFF  = 3;                                                 01845000
                                                                        01850000
<<                       ENTRY                               >>         01855000
EQUATE                                                                  01860000
   JMATJSNOOFF     = 1,                                                 01865000
   JMATUSERNAMEOFF = 3,                                                 01870000
   JMATACCTNAMEOFF = 7,                                                 01875000
   JMATJOBNAMEOFF  = 11,                                                01880000
   JMATGRPLOGONOFF = 15,                                                01885000
   JMATCALENDAROFF = 21,                                                01890000
   JMATTIMEOFF     = 22,                                                01895000
   JMATSEQBITOFF   = 27,                                                01900000
   JMATFTBITSOFF   = 27,                                                01905000
   JMATSCHEDLINKOFF= 29;                                                01910000
                                                                        01915000
                                                                        01920000
<< ********************************************************* >>         01925000
<<  J M A T   E X T R A C T S  --  Various bit extracts      >>         01930000
<<                 Add these only as needed                  >>         01935000
<< ********************************************************* >>         01940000
                                                                        01945000
DEFINE                                                                  01950000
   JMATSEQBITEXT   = (2:1)#,                                            01955000
   JMATINPRIFLD    = (12:4)#,                                           01960000
   JMATSTATEFLD    = (0:6)#,                                            01965000
   JMATFTBITSEXT   = (3:2)#;                                            01970000
                                                                        01975000
<<======================================================>>              01980000
<<========    END OF MPE V JMAT INCLUDE FILE    ========>>              01985000
<<======================================================>>              01990000
