***********************************************************************
*M*      XPART    DECODES PART CC AND BUILDS M:PART LOAD MODULE
************************************************************************
*
*                 8/12/71 ---A.REITH
         SYSTEM   SIG7FDP
*
*
R0       EQU      0
R1       EQU      1
R2       EQU      2
R3       EQU      3
R4       EQU      4
R5       EQU      5
R6       EQU      6
R7       EQU      7
SR1      EQU      8
SR2      EQU      9
SR3      EQU      10
SR4      EQU      11
D1       EQU      12
D2       EQU      13
D3       EQU      14
D4       EQU      15
*
*
*   REFS AND DEFS
         REF      SYNTAX,COREALLOC,MODGEN,WRITELM
         REF      READSTRG,M:LL,RATPTR,#RATS,RATBMAXPTR
         REF      LOGIT
         DEF      UTXPART
         REF      LPART#
         PAGE
PKWD     CNAME
         PROC
         GEN,8,7,17     AF(1),AF(2),AF(3)
         PEND
*  KEYWORD TABLE FOR SYNTAX ROUTINE
*
*
KWD      EQU      %
         TEXT     'TIME'
         PKWD     1,1,TIMELOC
         TEXT     'QUAN'
         PKWD     1,0,QUANLOC
         TEXT     'HOLD'
         PKWD     0,1,(HOLDLOC*4)+3
         TEXT     'SWAP'
         PKWD     0,2,(SWAPLOC*4)+3
         TEXT     'LOCK'
         PKWD     0,1,(LOCKLOC*4)+3
         TEXT     'UNLOCK'
         PKWD     0,2,(NLCKLOC*4)+3
         TEXT     'RB'
         PKWD     0,1,(ORIGINFL*4)+3
         TEXT     'TRM'
         PKWD     0,2,(ORIGINFL*4)+3
         TEXT     'LCL'
         PKWD     0,4,(ORIGINFL*4)+3
         TEXT     'PART'
         PKWD     5,0,PARTLOC
STANDRAT TEXT     'CO'
         PKWD     1,1,CORLOC
         TEXT     '9T'
         PKWD     1,1,9TLOC
         TEXT     '7T'
         PKWD     1,1,7TLOC
         TEXT     'SP'
         PKWD     1,1,SPLOC
         TEXT     'MC'
         PKWD     1,1,MCLOC
NEWRATS  DATA     0
         PKWD     1,1,RATLOC+0
         DATA     0
         PKWD     1,1,RATLOC+2
         DATA     0
         PKWD     1,1,RATLOC+4
         DATA     0
         PKWD     1,1,RATLOC+6
         DATA     0
         PKWD     1,1,RATLOC+8
         DATA     0
         PKWD     1,1,RATLOC+10
         DATA     0
         PKWD     1,1,RATLOC+12
         DATA     0
         PKWD     1,1,RATLOC+14
         DATA     0
         PKWD     1,1,RATLOC+16
         DATA     0
         PKWD     1,1,RATLOC+18
         DATA     0
         PKWD     1,1,RATLOC+20
         DATA     0
         PKWD     1,1,RATLOC+22
         DATA     0
         PKWD     1,1,RATLOC+24
LSTKWD   EQU      %-KWD
         DATA     #DEFAULTS
KWRDPTR  GEN,15,17 LSTKWD,KWD       POINTER FOR SYNTAX
         PAGE
DYN      CNAME
         PROC
LF       GEN,1,15,16  AF(1),AF(2),AF(3)
         PEND
*  DEFAULTS AND LIMITS FOR SYNTAX ROUTINE
*  SKELETON TEMPSTACK = DYNAM TO #DYNAM
DYNAM    EQU      %
CORLOC   EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,16,0
9TLOC    EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,1,0
7TLOC    EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,1,0
SPLOC    EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,1,0
MCLOC    EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,1,0
RATLOC   EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
*
         DYN      1,0,0
         DYN      1,1,0
         DYN      1,0,0
         DYN      1,1,0
         DYN      1,0,0
         DYN      1,1,0
TIMELOC  EQU      %-DYNAM
         DYN      1,0,0
         DYN      1,5,0
QUANLOC  EQU      %-DYNAM
         DYN      1,400,0
PARTLOC  EQU      %-DYNAM
         DYN      1,-1,16
#DEFAULTS EQU     %-DYNAM
HOLDLOC  EQU      %-DYNAM
         DYN      0,0,0
LOCKLOC  EQU      %-DYNAM
         DYN      0,0,0
SWAPLOC  EQU      %-DYNAM
         DYN      0,0,0
NLCKLOC  EQU      %-DYNAM
         DYN      0,0,0
ORIGINFL EQU      %-DYNAM
         DYN      0,0,0
#DYNAM   EQU      %-DYNAM
         PZE      WRITE             ERROR RETURN COREALLOC,MODGEN
         PAGE
* UTXPART   ROUTINE
* UPON ENTRY R3 = BASE WORD ADDRESS OF P2CCI DYNAMIC DATA
*
UTXPART  EQU      %
         PSW,SR1  *R0               SAVE CURRENT CHAR. FOR SYNTAX
         LW,SR3   =X'80000000'
         LW,D3    #RATS,R3
         LI,D2    RATLOC
         SLS,D2   -1             MAX. # OF STANDARD RATS
         CH,D2    D3             WERE ALL THE STANDARDS SPECIFIED
         BE       SKIPNXT        ON :DEVICE CC'S
         LW,D1    RATPTR,R3      NO.  NEED TO KNOW WHICH ONES ARE
         LH,D2    D3             MISSING
         AI,D2    -1             CO IS NEVER MISSING SO NO NEED TO
         LI,R2    2              CHECK FOR IT
         LI,SR4   X'4040'
         LI,SR1   X'F0F0'
         LI,R5    STANDRAT+2     THEREFORE SEARCH STARTS WITH '9T'
         LI,R4    3
         LI,R6    0
GETSTRAT LH,D4    *D1,R2         GET TEXT NAME OF STANDARDS SPECIFIED
         SLS,D4   16
         AW,D4    SR4            GET READY TO COMPARE IT TO FIXED MAX
CHK4MISS CW,D4    *R5            STANDARDS IN KWD TABLE
         BE       ON2NXT         BRANCH IF SPECIFIED COMPARES TO FIX
         STH,SR1  *R5            FOR SYNTAX ROUTINE CONVENTIONS
         STW,SR3  DYNAM,R4       ALSO MAKE DEFAULT MAX VALUE = 0
         STB,R4   MISSPART,R6       SAVE INDEX INTO STAND RES. TABLE
         AI,R6    1                 OF THE MISSING STAND. RESOURCE
         MTW,2    R5
         CI,R5    NEWRATS
         BE       SKIPNXT           BRANCH OUT IF ALL THRU STAND. RATS
         MTW,2    R4
         B        CHK4MISS
ON2NXT   MTW,2    R5
         MTW,2    R4
         AI,R2    1
         BDR,D2   GETSTRAT
         CI,R5    NEWRATS
         BL       CHK4MISS
SKIPNXT  EQU      %
         LI,R2    1
         LW,D1    RATBMAXPTR,R3
GETRAT   LB,D2    *D1,R2
         STB,D2   RATDF,R2
         AI,R2    1
         CH,R2    D3                AGAINST STAND # IN LEFT HALFF
         BLE      GETRAT
         AND,D3   =X'FF'            EXTRACT TOTAL # OF RATS
         STW,D3   #RATS,R3          AND STORE IN #RATS
         CW,R2    D3
         BG       DOSYN
         LW,D3    RATPTR,R3         ADDRESS OF RAT TABLE
         LI,SR4   NEWRATS
         LI,R5    1
STORERATS LH,D4   *D3,R2            GET RAT ENTRY
         SLS,D4   16
         OR,D4    =X'00004040'
         STW,D4   *SR4              STORE AS TEXT NAME FOR KEYWORD
         LB,D2    *D1,R2            STORE MAX DEFAULT TABLE
         BNEZ     %+2
         STW,SR3  DYNAM+RATLOC,R5
         STB,D2   RATDF,R2          FOR LATER COMPARE
         AI,SR4   2
         AI,R5    2
         AI,R2    1
         CW,R2    #RATS,R3          =#RATS
         BLE      STORERATS
DOSYN    EQU      %
         LI,R1    #DYNAM            SIZE OF TEMPSTACK TO BE GENERATED
         LI,R2    DYNAM             ADDRESS OF SKELETON STACK
         LW,R4    KWRDPTR           KEYWORD POINTER
         PLW,SR1  *R0
         BAL,SR4  SYNTAX            OFF TO GET TRANSLATION OF CC
*  R5 CONTAINS THE ADDRESS OF GENERATED TEMPSTACK TABLE
         LW,R4    MISSPART          CHK FOR ANY STANDARD RESOURCES
         BEZ      CONTINU           ABSENT FROM THIS PASS2
         LI,R6    0                 HERE IF ANY ARE ABSENT
         LW,D1    =X'80000000'      SET MISSING FLAG IN DYNAMIC TABLE
ANYMISS  LB,R4    MISSPART,R6       GET INDEX INTO STAND. RES. TABLE
         BEZ      CONTINU           BRANCH IF ALL DONE
         STW,D1   *R4,R5            STORE MISSING FLAG INTO MIN. SLOT
         AI,R4    -1
         STW,D1   *R4,R5            STORE MISSING FLAG INTO MAX. SLOT
         AI,R6    1
         B        ANYMISS
CONTINU  EQU      %
         LW,R4    *R0               STORE TOP OF DYNAM AREA
         STW,R4   BFSTACK           FOR CLEANUP LATER
         LI,D1    150               REFDEF SIZE
         LI,D2    -1                UNKNOWN SIZE OF DATA RECORD
         BAL,SR4  COREALLOC         OFF TO GET CORE
* R7 CONTAINS ADDRESS OF MODIFY PLIST
* SR1 CONTAINS ADDRESS OF DATA RECORD
* SR2 CONTAINS ADDRESS OF REFDEF STACK
         LW,R2    R5                CHECK FOR # OF PARTS
         AI,R2    -1
CHKBK    LW,D2    PARTLOC+1,R2
         CW,D2    TMLPART
         BLE      %+2
         STW,D2   TMLPART
         AI,R2    #DYNAM
         CW,R2    BFSTACK
         BL       CHKBK
         MTW,0    TMLPART
         BGZ      %+3
         LI,R2    3
         STW,R2   TMLPART
* CALCULATE TABLE SIZES
         LW,R2    TMLPART           LOAD # OF PARTS
         AI,R2    1
         STW,R2   WTBSIZE
         CI,R2    1                 EVEN NUMBER
         BAZ      %+2
         AI,R2    1                 NO
         SAS,R2   -1
         STW,R2   HTBSIZE           #OF HALFWORDS IN WORDS
         CI,R2    1
         BAZ      %+2               NUMBER OF BYTES
         AI,R2    1
         SAS,R2   -1
         STW,R2   BTBSIZE           #OF BYTES IN WORDS
*
         BAL,SR3  MODGEN            OFF TO BUILD LOAD MODULE
*       CODE FOR MODGEN
         LW,D1    TMLPART
         TEXTC    'LPART0'          VALUE DEF
         STW,D1   LPART#,R3
         LW,D2    #RATS,R3
         MW,D2    D1                SV:RSIZ*LPART
         XW,D1    D2
         TEXTC    'MBSOP#0'
         AW,D1    D2
         AW,D1    #RATS,R3
         AI,D1    1                 = (SV:RSIZ+1)*(LPART+1)
         TEXTC    'RESPARTSZ0'
         TEXTC    'PL:LK1'          LOC DEF
         AI,SR1   1
         TEXTC    'PL:CHG1'         LOC DEF
         AI,SR1   1
         TEXTC    'PLD:ACT1'
         LW,D1    WTBSIZE
         SAS,D1   1
         AW,SR1   D1
         TEXTC    'PLB:USR1'
         AW,SR1   BTBSIZE
         TEXTC    'PLH:CUR1'
         AW,SR1   HTBSIZE
         TEXTC    'PLH:SID1'
         AW,SR1   HTBSIZE
         TEXTC    'PLH:TOL1'
         AW,SR1   HTBSIZE
         TEXTC    'PLH:FLG1'
         STW,SR1  FLGSTART
         AW,SR1   HTBSIZE
         TEXTC    'PLH:TL1'
         STW,SR1  TLSTART
         AW,SR1   HTBSIZE
         TEXTC    'PLH:TU1'
         STW,SR1  TUSTART
         AW,SR1   HTBSIZE
         TEXTC    'PLH:QN1'
         STW,SR1  QNSTART
         AW,SR1   HTBSIZE
         TEXTC    'PLB:MIN1'
         STW,SR1  MINSTART
         LW,D2    #RATS,R3
         AI,D2    1                 COMPUTE LGTH OF MIN,MAX TBLS
         STW,D2   RATS              ((#RATS+1)*(LPART+1)+3)/4
         MW,D2    WTBSIZE
         AI,D2    3
         SLS,D2   -2
         AW,SR1   D2
         STW,SR1  MAXSTART
         TEXTC    'PLB:MAX1'
         AW,SR1   D2
         AI,SR1   -1
         TEXTC    'E2'              INSURE ADEQUATE SPACE
         STW,SR1  MODEND
         B        %+1
         LCW,R4   TMLPART
         LI,SR2   MINPART+1
         AW,SR2   TMLPART
         LI,SR3   MAXPART+1
         AW,SR3   TMLPART
         ANLZ,R1  ANA1              GET BA OF START OF MINTABLE
         ANLZ,R2  ANA2              GET BA OF START OF MAXTABLE
         AW,R1    RATS              = #RATS+1
         AW,R2    RATS              = #RATS+1
         STW,R1   *SR2,R4
         STW,R2   *SR3,R4
         BIR,R4   %-4
         PAGE
* STORES VALUES OR DEFAULTS IN TABLES
         LCI      15
         PSM,R1   *R0
         LW,SR1   R3                SAVE STACK PTR.
STORES   AI,R5    -1                ADDRESS OF FIRST DYNAM -1
* CHECK RAT ENTRIES FOR MIN, MAX IN RANGE, MAX>MIN
* THEN STORE  VALUES IN TABLE OR DEFAULTS IN ALL TABLES
LOAD     LI,R4    1                 TRUE RAT INDEX
         LI,R2    1                 INDEX FOR 1ST RAT (CO)
         LI,R3    0                 ERROR FLAG
         LW,D1    *R2,R5            MIN VALUE
         BLZ      CHKMORE
* CHECK MIN IN RANGE
         CB,D1    RATDF,R4          CHECK AGAINST RAT MAX
         BLE      %+3               YES, MIN IN RANGE
* ERROR PATH
         LI,D1    0                 NO, SET MIN=0
         AI,R3    -3
* CHECK MAX IN RANGE
         AI,R2    1
         LW,D2    *R2,R5            MAX VALUE
         CB,D2    RATDF,R4          IN RANGE
         BLE      CHKMX             YES
* ERROR PATH
         LI,D2    1
         CI,R4    1                 IS IT 'CO'
         BG       %+2               NO
         LI,D2    16                YES SET DEFAULT TO 16
         LI,D1    0
         AI,R3    -2                ERROR FLG = -2 OR -5
         B        FLGCHK
CHKMORE  AI,R2    1
         LW,D1    *R2,R5            IF MIN MISSING FLAG IS SET, CHK MAX
         AI,R2    1
         CW,D1    =X'80000000'
         BE       BCK+3
         B        BCK+2
* CHECKING MAX > MIN
CHKMX    EQU      %
         CW,D2    D1                MAX > MIN
         BGE      FLGCHK            YES,SEE IF OTHER ERROR
* ERROR PATH
         LI,R3    -1                ERROR FLG = -1
         LI,D1    0                 SET MIN TO 0
FLGCHK   EQU      %
         AI,R3    1                 ANY ERROR
         BGZ      %+2
         BAL,D3   ERROR
         AI,R2    -1                RESET TO MIN
BCK      BAL,D3   STOREVAL
         AI,R2    2
         AI,R4    1
         CW,R4    RATS              = #RATS +1
         BL       LOAD+2
         LI,R2    -1
         LI,R3    0
         LW,D1    TIMELOC+1,R5      GET MIN TIME VALUE
         BLZ      QUCHK
         CI,D1    X'7FFF'
         BLE      %+3               YES, VALUE IN RANGE?
         LI,D1    0                 NO, SET MIN = 0
         AI,R3    -3                ERROR = -3
         LW,D2    TIMELOC+2,R5      GET MAXTIME VALUE
         CI,D2    X'7FFF'           VALUE IN RANG
         BLE      %+3               YES
         LI,D2    5
         AI,R3    -2                ERROR FLAG = -2 OR -5
         CW,D2    D1                MAX > MIN
         BGE      %+3
         AI,R3    -1
         LI,D1    0
         AI,R3    1                 ANY ERROR
         BGZ      %+3               NO
         LW,R4    XTIME
         BAL,D3   ERROR             YES GO TO PRINT
         BAL,D3   STOREVAL
QUCHK    EQU      %
         LI,R2    -2
         LW,D1    QUANLOC+1,R5
         BLZ      LOCKS
         SLS,D1   -1                CONVERT TO 2 MILLISECOND UNITS
         LW,SR2   QNSTART
         LI,D2    0
         BAL,D3   STOREVAL
LOCKS    EQU      %
         LI,R2    -2
         LW,R4    LOCKLOC+1,R5      VALUE OF LOCK+NOLOCK
         AW,R4    NLCKLOC+1,R5      IF 6 = ERROR, 4=NOLOCK,
         CI,R4    6                 2=LOCK, 0=LEAVE AS IS
         BNE      %+4
         LI,R3    2
         BAL,D3   ERROR             WRITE ERROR MESSAGE
         LI,R4    4
         LW,D1    LOCKVAL,R4        GET VALUES FOR LOCK
         LW,R7    HOLDLOC+1,R5      VALUE OF HOLD +SWAP
         AW,R7    SWAPLOC+1,R5      IF 6=ERROR, 4=SWAP
         CI,R7    6                 2=HOLD, 0=LEAVE AS IS
         BNE      %+4
         LI,R3    1
         BAL,D3   ERROR             WRITE ERROR MESSAGE
         LI,R7    4
         LW,D2    ORIGINFL+1,R5
         BNEZ     %+2
         LI,D2    X'E'
         OR,D1    D2
         OR,D1    HDVAL,R7
         LI,D2    0
         CI,R4    0
         BNEZ     %+2
         LW,D2    LKAND
         CI,R7    0
         BNEZ     %+2
         OR,D2    HLAND
         LW,SR2   FLGSTART
         BAL,D3   STOREVAL
         B        LOOP
STOREVAL EQU      %
         LW,R6    PARTLOC+1,R5      GET PART #
         BGZ      DOPART
         BLZ      %+6
         LI,R3    3
         PSW,D3   *R0               PART = 0
         BAL,D3   ERROR             WRIE ERROR MESSAGE
         PLW,D3   *R0
         B        LOOP              STEP PARAMETERS
         CI,R6    -1                DEFAULT PART
         BNE      LOOP              SKIP
* STORING VALUE AS DEFAULTS
         CI,R2    -1                D1=MIN VALUE
         BE       TIMDF             D2=MAX VALUE
         CI,R2    -2
         BE       OTHDF
         PSW,R1   *R0
         PSW,R2   *R0
         LW,R6    TMLPART           GET # PARTS
         LW,R1    MINPART,R6
         LW,R2    MAXPART,R6
         AW,R1    R4                R4= RAT INDEX
         AW,R2    R4
         STB,D1   0,R1              R1= BA OF PART MIN
         STB,D2   0,R2              R2=BA OF PART # MAX
         BDR,R6   %-6
         PLW,R2   *R0
         PLW,R1   *R0
         B        *D3
DOPART   EQU      %
         CI,R2    -1
         BE       PARTTIME
         CI,R2    -2
         BE       OTHPART
         PSW,R1   *R0
         PSW,R2   *R0
         LW,R1    MINPART,R6        R6=TRUE PART#
         LW,R2    MAXPART,R6
         AW,R1    R4
         AW,R2    R4                R4 =RAT INDEX
         STB,D1   0,R1
         STB,D2   0,R2
         PLW,R2   *R0
         PLW,R1   *R0
         B        *D3
TIMDF    LW,R6    TMLPART           GET TOTAL #PARTS
         STH,D1   *TLSTART,R6
         STH,D2   *TUSTART,R6
         BDR,R6   %-2
         B        *D3
PARTTIME STH,D1   *TLSTART,R6
         STH,D2   *TUSTART,R6
         B        *D3
OTHDF    EQU      %
         LW,R6    TMLPART
         CI,D2    0
         BE       %+4
         LH,D4    *SR2,R6
         AND,D2   D4
         OR,D1    D2
         STH,D1   *SR2,R6
         BDR,R6   OTHDF+1
         B        *D3
OTHPART  EQU      %
         CI,D2    0
         BE       %+4
         LH,D4    *SR2,R6
         AND,D2   D4
         OR,D1    D2
         STH,D1   *SR2,R6
         B        *D3
LOOP     AI,R5    #DYNAM
         CW,R5    BFSTACK           ALL DYNAMS DONE
         BL       STORES+1          NO
         LCI      15
         PLM,R1   *R0
         LW,SR1   MODEND
* WRITE LOAD MODULE
* SR1 = HIGHEST ADDRESS OF TABLE
* R7 = MODIFY PLIST ADDRESS
WRITE    LI,D3    FILENAME
         BAL,SR4  WRITELM           WRITE
         LI,D1    -#DYNAM           CLEANUP STACK REMOVE DYNAMS
         MSP,D1   *R0
         CW,R5    *R0               ALL OUT
         BL       %-2               NO
         B        READSTRG          YES EXIT ROUTINE
         PAGE
* ERROR WRITING ROUTINE
* R3 = VALUE FOR ERROR MESSAGE, -4 = MAX AND MIN OUT OF RANGE
* -2 = MIN OUT OF RANGE,-1 = MAX OUT OF RANGE
* 0=MAX<MIN,1=HOLDERROR,2=LOCKERROR,
* 3=PART=0 ERROR
* R5=DYNAM,D3=LINKING REGISTER,R4=RAT INDEX IF < =#RATS  OR TIME ADDRESS
ERROR    LCI      11
         PSM,D1   *R0               SAVES D1-R6
         LW,R1    MSGNAMES,R3       ADDRESS OF MESSAGE
         LW,R6    PARTLOC+1,R5      CURRENT PART PROCESSING
         BGZ      %+6               SPECIFIED PART
         BEZ      PRINT             PART = 0 ERROR
         CI,R6    -1                DEFAULT PART
         BNE      RESREG            PART NOT CHANGED. EXIT
         LD,D3    DEFAULT           DEFAULT
         B        %+3
         LW,D3    PRTNUM            SPECIFIED PART
         LW,D4    PRTNUM,R6
         CI,R3    1
         BGE      PRINT-2           HOLD/LOCKERROR
         LW,D2    R4                GET ADDRESS
         BLZ      PRINT-3
         LW,D2    STANDRAT-2,R2     GET TEXT OF RAT KWD
         STW,D2   6,R1              PARAMETER NAME IN MESSAGE
         STW,D3   8,R1              PART NUM IN MESSAGE
         STW,D4   9,R1
PRINT    EQU      %
         LW,R3    SR1               FIRST GET STACK PTR.
         LW,D3    R1
         BAL,SR4  LOGIT             PUT ERROR IN T:P2SI    & LP
RESREG   LCI      11
         PLM,D1   *R0               RESTORE REGISTERS
         B        *D3               RETURN
         PAGE
*  DATA AREA
TMLPART  DATA     -2
WTBSIZE  DATA     0
HTBSIZE  DATA     0
BTBSIZE  DATA     0
BFSTACK  DATA     0
RATDF    EQU      %
         DO1      16
         DATA,1   0                 INCLUDES 0TH ENTRY
         BOUND    4
FLGSTART DATA     0
TLSTART  DATA     0
TUSTART  DATA     0
QNSTART  DATA     0
MINSTART DATA     0
MAXSTART DATA     0
MODEND   DATA     0
RATS     DATA     0                 = #RATS +1
ANA1     LB,1     *MINSTART
ANA2     LB,1     *MAXSTART
MINPART  EQU      %
         DO1      17
         DATA     0
MAXPART  EQU      %
         DO1      17
         DATA     0
XTIME    TEXT     'TIME'
LOCKVAL  DATA     0,0,1,0,0
HDVAL    DATA     0,0,X'8000',0,0
LKAND    DATA     1
HLAND    DATA     X'8000'
FILENAME TEXTC    'M:PART'
MISSPART DATA     0,0
MINMAX   TEXTC    '**ERROR - PARAMETER   *XXXX*',;
                  ' INXXXXXXXX  MAX < MIN --',;
                  ' 0 USED FOR MIN'
MAXERR   TEXTC    '**ERROR - PARAMETER   *XXXX*',;
                  ' INXXXXXXXX  MAX INVALID --',;
                  ' SYSGEN DEFAULTS USED'
BOTHERR  TEXTC    '**ERROR - PARAMETER   *XXXX*',;
                  ' INXXXXXXXX  MAX & MIN INVALID --',;
                  ' SYSGEN DEFAULTS USED'
MINERR   TEXTC    '**ERROR - PARAMETER   *XXXX*',;
                  ' INXXXXXXXX  MIN INVALID --',;
                  ' 0 USED FOR MIN'
HOLDERR  TEXTC    '**CONFLICT IN HOLD         ',;
                  '  INXXXXXXXX',;
                  '  PARTITION NOT HELD'
LKERR    TEXTC    '**CONFLICT IN LOCK         ',;
                  '  INXXXXXXXX',;
                  '  PARTITION NOT LOCKED'
ERPART   TEXTC    '**PART 0 NOT ALLOWED --',;
                  ' SPECIFIED RESOURCES IGNORED'
         BOUND    8
DEFAULT  TEXT     ' DEFAULT'
PRTNUM   TEXT     ' PAR'
         DATA     'T  1','T  2','T  3','T  4','T  5'
         DATA     'T  6','T  7','T  8','T  9','T 10'
         DATA     'T 11','T 12','T 13','T 14','T 15','T 16'
         DATA     BOTHERR,BOTHERR,MINERR,MAXERR
MSGNAMES DATA     MINMAX,HOLDERR,LKERR,ERPART
LISTLL   GEN,8,24 1,M:LL            PRINT FPT
         PZE      *0
         PZE      *R1
PATCH    EQU      %
         LIST     0
         DO1      50
         DATA     0
         LIST     1
         END

