User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:sslabel.002

Deck SSLABEL Part 002

1 Modification

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
04385  M01S04385.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04386  M01S04386.sslabel +++|        LBERR(ERRCODE);
04387  M01S04387.sslabel +++|        ERRFLAG = 1;
04388  M01S04388.sslabel +++|        RETURN;
04389  M01S04389.sslabel +++|        END
04390  M01S04390.sslabel +++|
04391  M01S04391.sslabel +++|#
04392  M01S04392.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *PT*.
04393  M01S04393.sslabel +++|#
04394  M01S04394.sslabel +++|
04395  M01S04395.sslabel +++|      IF LBARG$PT[0] NQ "P"          ##
04396  M01S04396.sslabel +++|        AND LBARG$PT[0] NQ "D"       ##
04397  M01S04397.sslabel +++|        AND LBARG$PT[0] NQ "F"       ##
04398  M01S04398.sslabel +++|        AND LBARG$PT[0] NQ "R"
04399  M01S04399.sslabel +++|      THEN
04400  M01S04400.sslabel +++|        BEGIN
04401  M01S04401.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04402  M01S04402.sslabel +++|        LBERR(ERRCODE);
04403  M01S04403.sslabel +++|        ERRFLAG = 1;
04404  M01S04404.sslabel +++|        RETURN;
04405  M01S04405.sslabel +++|        END
04406  M01S04406.sslabel +++|
04407  M01S04407.sslabel +++|#
04408  M01S04408.sslabel +++|*     CHECK IF *CN* IS SPECIFIED CORRECTLY.
04409  M01S04409.sslabel +++|#
04410  M01S04410.sslabel +++|
04411  M01S04411.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04412  M01S04412.sslabel +++|        AND (LBARG$OP[0] EQ "AS" OR LBARG$OP[0] EQ "RS" OR LBARG$OP[0]
04413  M01S04413.sslabel +++|        EQ "AB"                      ##
04414  M01S04414.sslabel +++|        OR LBARG$OP[0] EQ "RB")
04415  M01S04415.sslabel +++|      THEN
04416  M01S04416.sslabel +++|        BEGIN
04417  M01S04417.sslabel +++|        ERRCODE = S"CSN$VIOL";       # "VSN OPTION VIOLATED" #
04418  M01S04418.sslabel +++|        LBERR(ERRCODE);
04419  M01S04419.sslabel +++|        ERRFLAG = 1;
04420  M01S04420.sslabel +++|        RETURN;
04421  M01S04421.sslabel +++|        END
04422  M01S04422.sslabel +++|
04423  M01S04423.sslabel +++|#
04424  M01S04424.sslabel +++|*     CHECK IF *CM* PARAMETER IS SPECIFIED CORRECTLY.
04425  M01S04425.sslabel +++|#
04426  M01S04426.sslabel +++|
04427  M01S04427.sslabel +++|      IF (LBARG$CM[0] NQ IBMCART     ##
04428  M01S04428.sslabel +++|        AND LBARG$C[0] NQ 0)         ##
04429  M01S04429.sslabel +++|        OR LBARG$CM[0] NQ IBMCART
04430  M01S04430.sslabel +++|      THEN
04431  M01S04431.sslabel +++|        BEGIN
04432  M01S04432.sslabel +++|        ERRCODE = S"CSN$VIOL";       # *CSN* OPTION VIOLATED #
04433  M01S04433.sslabel +++|        LBERR(ERRCODE);
04434  M01S04434.sslabel +++|        ERRFLAG = 1;
04435  M01S04435.sslabel +++|        RETURN;
04436  M01S04436.sslabel +++|        END
04437  M01S04437.sslabel +++|
04438  M01S04438.sslabel +++|#
04439  M01S04439.sslabel +++|*     CHECK *N* OR *PK* IS SPECIFIED WHEN
04440  M01S04440.sslabel +++|*     *V* IS SPECIFIED.
04441  M01S04441.sslabel +++|#
04442  M01S04442.sslabel +++|
04443  M01S04443.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04444  M01S04444.sslabel +++|        AND (LBARG$N[0] NQ 1         ##
04445  M01S04445.sslabel +++|        OR LBARG$PK[0] NQ 0)
04446  M01S04446.sslabel +++|      THEN
04447  M01S04447.sslabel +++|        BEGIN
04448  M01S04448.sslabel +++|        ERRCODE = S"CSN$VIOL";       # "VSN OPTION VIOLATED" #
04449  M01S04449.sslabel +++|        LBERR(ERRCODE);
04450  M01S04450.sslabel +++|        ERRFLAG = 1;
04451  M01S04451.sslabel +++|        RETURN;
04452  M01S04452.sslabel +++|        END
04453  M01S04453.sslabel +++|
04454  M01S04454.sslabel +++|#
04455  M01S04455.sslabel +++|*     CHECK IF *PT* IS SPECIFIED TO BE *P*
04456  M01S04456.sslabel +++|*     WHEN *V* IS SPECIFIED FOR *AM*.
04457  M01S04457.sslabel +++|#
04458  M01S04458.sslabel +++|
04459  M01S04459.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04460  M01S04460.sslabel +++|        AND LBARG$OP[0] EQ "AM"      ##
04461  M01S04461.sslabel +++|        AND LBARG$PT[0] EQ "P"
04462  M01S04462.sslabel +++|      THEN
04463  M01S04463.sslabel +++|        BEGIN
04464  M01S04464.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04465  M01S04465.sslabel +++|        LBERR(ERRCODE);
04466  M01S04466.sslabel +++|        ERRFLAG = 1;
04467  M01S04467.sslabel +++|        RETURN;
04468  M01S04468.sslabel +++|        END
04469  M01S04469.sslabel +++|
04470  M01S04470.sslabel +++|#
04471  M01S04471.sslabel +++|*     CHECK IF *PK* AND *PT* ARE SPECIFIED
04472  M01S04472.sslabel +++|*     CORRECTLY FOR *AM*.
04473  M01S04473.sslabel +++|#
04474  M01S04474.sslabel +++|
04475  M01S04475.sslabel +++|      IF LBARG$OP[0] EQ "AM"         ##
04476  M01S04476.sslabel +++|        AND LBARG$CC[0] EQ -1 AND ((LBARG$PK[0] NQ 0  ##
04477  M01S04477.sslabel +++|        AND LBARG$PK[0] NQ "D"       ##
04478  M01S04478.sslabel +++|        AND LBARG$PK[0] NQ "P")      ##
04479  M01S04479.sslabel +++|        OR (LBARG$PT[0] NQ "P"       ##
04480  M01S04480.sslabel +++|        AND LBARG$PT[0] NQ "F"))
04481  M01S04481.sslabel +++|      THEN
04482  M01S04482.sslabel +++|        BEGIN
04483  M01S04483.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04484  M01S04484.sslabel +++|        LBERR(ERRCODE);
04485  M01S04485.sslabel +++|        ERRFLAG = 1;
04486  M01S04486.sslabel +++|        RETURN;
04487  M01S04487.sslabel +++|        END
04488  M01S04488.sslabel +++|
04489  M01S04489.sslabel +++|#
04490  M01S04490.sslabel +++|*     CHECK IF *PK* AND *PT* ARE SPECIFIED
04491  M01S04491.sslabel +++|*     CORRECTLY FOR *RM*.
04492  M01S04492.sslabel +++|#
04493  M01S04493.sslabel +++|
04494  M01S04494.sslabel +++|      IF LBARG$OP[0] EQ "RM"         ##
04495  M01S04495.sslabel +++|        AND ((LBARG$PK[0] NQ 0       ##
04496  M01S04496.sslabel +++|        AND LBARG$PK[0] NQ "P"       ##
04497  M01S04497.sslabel +++|        AND LBARG$PK[0] NQ "F")      ##
04498  M01S04498.sslabel +++|        OR (LBARG$PT[0] NQ "D"       ##
04499  M01S04499.sslabel +++|        AND LBARG$PT[0] NQ "P"))
04500  M01S04500.sslabel +++|      THEN
04501  M01S04501.sslabel +++|        BEGIN
04502  M01S04502.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04503  M01S04503.sslabel +++|        LBERR(ERRCODE);
04504  M01S04504.sslabel +++|        ERRFLAG = 1;
04505  M01S04505.sslabel +++|        RETURN;
04506  M01S04506.sslabel +++|        END
04507  M01S04507.sslabel +++|
04508  M01S04508.sslabel +++|#
04509  M01S04509.sslabel +++|*     CHECK IF *PK* IS SPECIFIED CORRECTLY
04510  M01S04510.sslabel +++|*     FOR *RB*.
04511  M01S04511.sslabel +++|#
04512  M01S04512.sslabel +++|
04513  M01S04513.sslabel +++|      IF LBARG$OP[0] EQ "RB"         ##
04514  M01S04514.sslabel +++|        AND (LBARG$PK[0] NQ "P"      ##
04515  M01S04515.sslabel +++|        AND LBARG$PK[0] NQ "F"       ##
04516  M01S04516.sslabel +++|        AND LBARG$PK[0] NQ "R")
04517  M01S04517.sslabel +++|      THEN
04518  M01S04518.sslabel +++|        BEGIN
04519  M01S04519.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04520  M01S04520.sslabel +++|        LBERR(ERRCODE);
04521  M01S04521.sslabel +++|        ERRFLAG = 1;
04522  M01S04522.sslabel +++|        RETURN;
04523  M01S04523.sslabel +++|        END
04524  M01S04524.sslabel +++|
04525  M01S04525.sslabel +++|#
04526  M01S04526.sslabel +++|*     CHECK IF *PK* AND *PT* ARE BOTH SPECIFIED
04527  M01S04527.sslabel +++|*     TO BE *P* FOR *AM* OR *RM*.
04528  M01S04528.sslabel +++|#
04529  M01S04529.sslabel +++|
04530  M01S04530.sslabel +++|      IF (LBARG$PK[0] EQ "P"         ##
04531  M01S04531.sslabel +++|        AND LBARG$PT[0] EQ "P")      ##
04532  M01S04532.sslabel +++|        AND LBARG$CC[0] EQ -1        ##
04533  M01S04533.sslabel +++|        AND (LBARG$OP[0] EQ "AM"     ##
04534  M01S04534.sslabel +++|        OR LBARG$OP[0] EQ "RM")
04535  M01S04535.sslabel +++|      THEN
04536  M01S04536.sslabel +++|        BEGIN
04537  M01S04537.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04538  M01S04538.sslabel +++|        LBERR(ERRCODE);
04539  M01S04539.sslabel +++|        ERRFLAG = 1;
04540  M01S04540.sslabel +++|        RETURN;
04541  M01S04541.sslabel +++|        END
04542  M01S04542.sslabel +++|
04543  M01S04543.sslabel +++|#
04544  M01S04544.sslabel +++|*     CHECK IF *PT* IS SPECIFIED CORRECTLY FOR *AB*.
04545  M01S04545.sslabel +++|#
04546  M01S04546.sslabel +++|
04547  M01S04547.sslabel +++|      IF LBARG$OP[0] EQ "AB"         ##
04548  M01S04548.sslabel +++|        AND ((LBARG$PT[0] EQ "D")    ##
04549  M01S04549.sslabel +++|        OR (LBARG$N[0] NQ 1          ##
04550  M01S04550.sslabel +++|        AND LBARG$PT[0] EQ "R"))
04551  M01S04551.sslabel +++|      THEN
04552  M01S04552.sslabel +++|        BEGIN
04553  M01S04553.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04554  M01S04554.sslabel +++|        LBERR(ERRCODE);
04555  M01S04555.sslabel +++|        ERRFLAG = 1;
04556  M01S04556.sslabel +++|        RETURN;
04557  M01S04557.sslabel +++|        END
04558  M01S04558.sslabel +++|
04559  M01S04559.sslabel +++|#
04560  M01S04560.sslabel +++|*     CHECK IF *YI*, *ZI* OPTION IS SELECTED FOR *AB*.
04561  M01S04561.sslabel +++|#
04562  M01S04562.sslabel +++|
04563  M01S04563.sslabel +++|      IF LBARG$OP[0] EQ "AB"         ##
04564  M01S04564.sslabel +++|        AND LBARG$PT[0] EQ "R"       ##
04565  M01S04565.sslabel +++|        AND LBARG$YI[0] EQ -1        ##
04566  M01S04566.sslabel +++|        AND LBARG$ZI[0] EQ -1
04567  M01S04567.sslabel +++|      THEN
04568  M01S04568.sslabel +++|        BEGIN
04569  M01S04569.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04570  M01S04570.sslabel +++|        LBERR(ERRCODE);
04571  M01S04571.sslabel +++|        ERRFLAG = 1;
04572  M01S04572.sslabel +++|        RETURN;
04573  M01S04573.sslabel +++|        END
04574  M01S04574.sslabel +++|
04575  M01S04575.sslabel +++|#
04576  M01S04576.sslabel +++|*     CHECK IF *YI*, *ZI* OPTION IS IMPROPERLY USED FOR *AM*.
04577  M01S04577.sslabel +++|#
04578  M01S04578.sslabel +++|
04579  M01S04579.sslabel +++|      IF LBARG$OP[0] EQ "AM"         ##
04580  M01S04580.sslabel +++|        AND (LBARG$YI[0] NQ -1       ##
04581  M01S04581.sslabel +++|        OR LBARG$ZI[0] NQ -1)        ##
04582  M01S04582.sslabel +++|        AND LBARG$CC[0] EQ -1
04583  M01S04583.sslabel +++|      THEN
04584  M01S04584.sslabel +++|        BEGIN
04585  M01S04585.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04586  M01S04586.sslabel +++|        LBERR(ERRCODE);
04587  M01S04587.sslabel +++|        ERRFLAG = 1;
04588  M01S04588.sslabel +++|        RETURN;
04589  M01S04589.sslabel +++|        END
04590  M01S04590.sslabel +++|
04591  M01S04591.sslabel +++|
04592  M01S04592.sslabel +++|#
04593  M01S04593.sslabel +++|*     CHECK IF *LOST OPTION* IS SPECIFIED CORRECTLY.
04594  M01S04594.sslabel +++|#
04595  M01S04595.sslabel +++|
04596  M01S04596.sslabel +++|      IF LBARG$LT[0] NQ 0            ##
04597  M01S04597.sslabel +++|        AND (LBARG$OP[0] NQ "RM"     ##
04598  M01S04598.sslabel +++|        OR LBARG$C[0] EQ 0)          ##
04599  M01S04599.sslabel +++|      THEN
04600  M01S04600.sslabel +++|        BEGIN
04601  M01S04601.sslabel +++|        ERRCODE = S"LT$VIOL";        # "LT OPTION VIOLATED" #
04602  M01S04602.sslabel +++|        LBERR(ERRCODE);
04603  M01S04603.sslabel +++|        ERRFLAG = 1;
04604  M01S04604.sslabel +++|        RETURN;
04605  M01S04605.sslabel +++|        END
04606  M01S04606.sslabel +++|
04607  M01S04607.sslabel +++|#
04608  M01S04608.sslabel +++|*     CHECK IF GROUP NUMBER IS LEGAL.
04609  M01S04609.sslabel +++|#
04610  M01S04610.sslabel +++|
04611  M01S04611.sslabel +++|      IF ((LBARG$GR[0] GQ 0)         ##
04612  M01S04612.sslabel +++|        AND ((LBARG$OP[0] EQ "AS")   ##
04613  M01S04613.sslabel +++|        OR (LBARG$OP[0] EQ "AB")     ##
04614  M01S04614.sslabel +++|        OR (LBARG$OP[0] EQ "RS")     ##
04615  M01S04615.sslabel +++|        OR (LBARG$OP[0] EQ "RB")     ##
04616  M01S04616.sslabel +++|        OR (LBARG$OP[0] EQ "FX")     ##
04617  M01S04617.sslabel +++|        OR (LBARG$OP[0] EQ "RC")     ##
04618  M01S04618.sslabel +++|        OR (LBARG$OP[0] EQ "IB")))
04619  M01S04619.sslabel +++|      THEN                           # INCORRECT USE OF GROUP #
04620  M01S04620.sslabel +++|        BEGIN
04621  M01S04621.sslabel +++|        ERRCODE = S"GR$INCORR";
04622  M01S04622.sslabel +++|        LBERR(ERRCODE);
04623  M01S04623.sslabel +++|        ERRFLAG = 1;
04624  M01S04624.sslabel +++|        RETURN;
04625  M01S04625.sslabel +++|        END
04626  M01S04626.sslabel +++|
04627  M01S04627.sslabel +++|      IF LBARG$GR[0] GR 20
04628  M01S04628.sslabel +++|        OR LBARG$GR[0] EQ 0
04629  M01S04629.sslabel +++|      THEN                           # GROUP OUT OF RANGE #
04630  M01S04630.sslabel +++|        BEGIN
04631  M01S04631.sslabel +++|        ERRCODE = S"GR$RANGE";
04632  M01S04632.sslabel +++|        LBERR(ERRCODE);
04633  M01S04633.sslabel +++|        ERRFLAG = 1;
04634  M01S04634.sslabel +++|        RETURN;
04635  M01S04635.sslabel +++|        END
04636  M01S04636.sslabel +++|
04637  M01S04637.sslabel +++|
04638  M01S04638.sslabel +++|#
04639  M01S04639.sslabel +++|*     CHECK IF *PT* IS *P* AND *OP* IS *AM* WITH *GR* SPECIFIED.
04640  M01S04640.sslabel +++|#
04641  M01S04641.sslabel +++|
04642  M01S04642.sslabel +++|      IF LBARG$GR[0] GQ 0 AND LBARG$OP[0] EQ "AM" AND LBARG$PT[0] EQ "P
04643  M01S04643.sslabel +++| "
04644  M01S04644.sslabel +++|      THEN
04645  M01S04645.sslabel +++|        BEGIN
04646  M01S04646.sslabel +++|        ERRCODE = S"GR$INCORR";
04647  M01S04647.sslabel +++|        LBERR(ERRCODE);
04648  M01S04648.sslabel +++|        ERRFLAG = 1;
04649  M01S04649.sslabel +++|        RETURN;
04650  M01S04650.sslabel +++|        END
04651  M01S04651.sslabel +++|
04652  M01S04652.sslabel +++|
04653  M01S04653.sslabel +++|#
04654  M01S04654.sslabel +++|*     CHECK IF *CN* IS SPECIFIED FOR *IB* AND *FX*.
04655  M01S04655.sslabel +++|#
04656  M01S04656.sslabel +++|
04657  M01S04657.sslabel +++|      IF (LBARG$OP[0] EQ "IB"        ##
04658  M01S04658.sslabel +++|        OR LBARG$OP[0] EQ "FX")      ##
04659  M01S04659.sslabel +++|        AND LBARG$C[0] EQ 0
04660  M01S04660.sslabel +++|      THEN
04661  M01S04661.sslabel +++|        BEGIN
04662  M01S04662.sslabel +++|        ERRCODE = S"CSN$VIOL";       # VSN OPTION VIOLATED #
04663  M01S04663.sslabel +++|        LBERR(ERRCODE);
04664  M01S04664.sslabel +++|        ERRFLAG = 1;
04665  M01S04665.sslabel +++|        RETURN;
04666  M01S04666.sslabel +++|        END
04667  M01S04667.sslabel +++|
04668  M01S04668.sslabel +++|#
04669  M01S04669.sslabel +++|*     CHECK IF *ON* OR *OF* IS SPECIFIED
04670  M01S04670.sslabel +++|*     FOR ANY DIRECTIVE OTHER THAN *IB* OR *FC*.
04671  M01S04671.sslabel +++|#
04672  M01S04672.sslabel +++|
04673  M01S04673.sslabel +++|      IF (LBARG$OP[0] NQ "IB" AND LBARG$OP[0] NQ "FC")  ##
04674  M01S04674.sslabel +++|        AND(LBARG$ON[0] NQ 0 OR LBARG$OF[0] NQ 0)
04675  M01S04675.sslabel +++|      THEN
04676  M01S04676.sslabel +++|        BEGIN
04677  M01S04677.sslabel +++|        ERRCODE = S"ON$OF$VIOL";     # "ON,OFF NOT SPECIFIED CORRECTLY"
04678  M01S04678.sslabel +++|                                     #
04679  M01S04679.sslabel +++|        LBERR(ERRCODE);
04680  M01S04680.sslabel +++|        ERRFLAG = 1;
04681  M01S04681.sslabel +++|        RETURN;
04682  M01S04682.sslabel +++|        END
04683  M01S04683.sslabel +++|
04684  M01S04684.sslabel +++|#
04685  M01S04685.sslabel +++|*     CHECK IF *ON* OR *OF* ARE SPECIFIED
04686  M01S04686.sslabel +++|*     CORRECTLY FOR *IB* OR *FC*:
04687  M01S04687.sslabel +++|#
04688  M01S04688.sslabel +++|
04689  M01S04689.sslabel +++|      IF (LBARG$OP[0] EQ "IB" OR LBARG$OP[0] EQ "FC")  ##
04690  M01S04690.sslabel +++|        AND ((LBARG$ON[0] EQ 0       ##
04691  M01S04691.sslabel +++|        AND LBARG$OF[0] EQ 0)        ##
04692  M01S04692.sslabel +++|        OR (LBARG$ON[0] NQ 0         ##
04693  M01S04693.sslabel +++|        AND LBARG$OF[0] NQ 0))
04694  M01S04694.sslabel +++|      THEN
04695  M01S04695.sslabel +++|        BEGIN
04696  M01S04696.sslabel +++|        ERRCODE = S"ON$OF$VIOL";     # "ON,OFF NOT SPECIFIED CORRECTLY"
04697  M01S04697.sslabel +++|                                     #
04698  M01S04698.sslabel +++|        LBERR(ERRCODE);
04699  M01S04699.sslabel +++|        ERRFLAG = 1;
04700  M01S04700.sslabel +++|        RETURN;
04701  M01S04701.sslabel +++|        END
04702  M01S04702.sslabel +++|
04703  M01S04703.sslabel +++|#
04704  M01S04704.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *CS*.
04705  M01S04705.sslabel +++|#
04706  M01S04706.sslabel +++|
04707  M01S04707.sslabel +++|      IF LBARG$SM[0] GR "H"          ##
04708  M01S04708.sslabel +++|        OR LBARG$SM[0] LS "A"        ##
04709  M01S04709.sslabel +++|        OR LBARG$ZSM[0] NQ 0
04710  M01S04710.sslabel +++|      THEN
04711  M01S04711.sslabel +++|        BEGIN
04712  M01S04712.sslabel +++|        ERRCODE = S"ILL$SM";         # "ILLEGAL *SM* NUMBER" #
04713  M01S04713.sslabel +++|        LBERR(ERRCODE);
04714  M01S04714.sslabel +++|        ERRFLAG = 1;
04715  M01S04715.sslabel +++|        RETURN;
04716  M01S04716.sslabel +++|        END
04717  M01S04717.sslabel +++|
04718  M01S04718.sslabel +++|#
04719  M01S04719.sslabel +++|*     CHECK THE VALUE OF YS AND ZS.
04720  M01S04720.sslabel +++|#
04721  M01S04721.sslabel +++|
04722  M01S04722.sslabel +++|      IF LBARG$YI[0] GR MAX$Y        ##
04723  M01S04723.sslabel +++|        OR LBARG$YF[0] GR MAX$Y      ##
04724  M01S04724.sslabel +++|        OR LBARG$ZI[0] GR MAX$Z      ##
04725  M01S04725.sslabel +++|        OR LBARG$ZI[0] EQ Z$NO$CUBE  ##
04726  M01S04726.sslabel +++|        OR LBARG$ZF[0] GR MAX$Z      ##
04727  M01S04727.sslabel +++|        OR LBARG$ZF[0] EQ Z$NO$CUBE
04728  M01S04728.sslabel +++|      THEN
04729  M01S04729.sslabel +++|        BEGIN
04730  M01S04730.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04731  M01S04731.sslabel +++|        LBERR(ERRCODE);
04732  M01S04732.sslabel +++|        ERRFLAG = 1;
04733  M01S04733.sslabel +++|        RETURN;
04734  M01S04734.sslabel +++|        END
04735  M01S04735.sslabel +++|
04736  M01S04736.sslabel +++|#
04737  M01S04737.sslabel +++|*     CHECK IF *YI*, *ZI*, *YF* AND *ZF* ARE SPECIFIED
04738  M01S04738.sslabel +++|*     CORRECTLY.
04739  M01S04739.sslabel +++|#
04740  M01S04740.sslabel +++|
04741  M01S04741.sslabel +++|      IF (LBARG$YI[0] EQ -1          ##
04742  M01S04742.sslabel +++|        AND LBARG$YF[0] GR 0)        ##
04743  M01S04743.sslabel +++|        OR (LBARG$ZI[0] EQ -1        ##
04744  M01S04744.sslabel +++|        AND LBARG$ZF[0] GR 0)
04745  M01S04745.sslabel +++|      THEN
04746  M01S04746.sslabel +++|        BEGIN
04747  M01S04747.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04748  M01S04748.sslabel +++|        LBERR(ERRCODE);
04749  M01S04749.sslabel +++|        ERRFLAG = 1;
04750  M01S04750.sslabel +++|        RETURN;
04751  M01S04751.sslabel +++|        END
04752  M01S04752.sslabel +++|
04753  M01S04753.sslabel +++|#
04754  M01S04754.sslabel +++|*     CHECK IF *N* IS SPECIFIED ALONG WITH
04755  M01S04755.sslabel +++|*     *YI* OR *ZI*.
04756  M01S04756.sslabel +++|#
04757  M01S04757.sslabel +++|
04758  M01S04758.sslabel +++|      IF (LBARG$YI[0] GQ 0 OR LBARG$ZI[0] GQ 0) AND LBARG$N[0] GR 1
04759  M01S04759.sslabel +++|        THEN
04760  M01S04760.sslabel +++|        BEGIN
04761  M01S04761.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04762  M01S04762.sslabel +++|        LBERR(ERRCODE);
04763  M01S04763.sslabel +++|        ERRFLAG = 1;
04764  M01S04764.sslabel +++|        RETURN;
04765  M01S04765.sslabel +++|        END
04766  M01S04766.sslabel +++|
04767  M01S04767.sslabel +++|#
04768  M01S04768.sslabel +++|*     CHECK IF *YF* AND *ZF* ARE NOT
04769  M01S04769.sslabel +++|*     SPECIFIED TOGETHER.
04770  M01S04770.sslabel +++|#
04771  M01S04771.sslabel +++|
04772  M01S04772.sslabel +++|      IF (LBARG$YF[0] GQ 0           ##
04773  M01S04773.sslabel +++|        AND LBARG$ZF[0] EQ -1)       ##
04774  M01S04774.sslabel +++|        OR (LBARG$YF[0] EQ -1 AND LBARG$ZF[0] GQ 0)
04775  M01S04775.sslabel +++|      THEN
04776  M01S04776.sslabel +++|        BEGIN
04777  M01S04777.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04778  M01S04778.sslabel +++|        LBERR(ERRCODE);
04779  M01S04779.sslabel +++|        ERRFLAG = 1;
04780  M01S04780.sslabel +++|        RETURN;
04781  M01S04781.sslabel +++|        END
04782  M01S04782.sslabel +++|
04783  M01S04783.sslabel +++|#
04784  M01S04784.sslabel +++|*     CHECK IF *YF* IS GREATER THAN OR EQUAL
04785  M01S04785.sslabel +++|*     TO *YI* WHEN BOTH ARE SPECIFIED.
04786  M01S04786.sslabel +++|#
04787  M01S04787.sslabel +++|
04788  M01S04788.sslabel +++|      IF ((LBARG$YI[0] NQ -1)        ##
04789  M01S04789.sslabel +++|        AND (LBARG$YF[0] NQ -1))     ##
04790  M01S04790.sslabel +++|        AND (LBARG$YF[0] LS LBARG$YI[0])
04791  M01S04791.sslabel +++|      THEN
04792  M01S04792.sslabel +++|        BEGIN
04793  M01S04793.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04794  M01S04794.sslabel +++|        LBERR(ERRCODE);
04795  M01S04795.sslabel +++|        ERRFLAG = 1;
04796  M01S04796.sslabel +++|        RETURN;
04797  M01S04797.sslabel +++|        END
04798  M01S04798.sslabel +++|
04799  M01S04799.sslabel +++|#
04800  M01S04800.sslabel +++|*     CHECK IF *ZF* IS GREATER THAN OR EQUAL
04801  M01S04801.sslabel +++|*     TO *ZI* WHEN BOTH ARE SPECIFIED.
04802  M01S04802.sslabel +++|#
04803  M01S04803.sslabel +++|
04804  M01S04804.sslabel +++|      IF ((LBARG$ZI[0] NQ -1)        ##
04805  M01S04805.sslabel +++|        AND (LBARG$ZF[0] NQ -1) )    ##
04806  M01S04806.sslabel +++|        AND (LBARG$ZF[0] LS LBARG$ZI[0])
04807  M01S04807.sslabel +++|      THEN
04808  M01S04808.sslabel +++|        BEGIN
04809  M01S04809.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04810  M01S04810.sslabel +++|        LBERR(ERRCODE);
04811  M01S04811.sslabel +++|        ERRFLAG = 1;
04812  M01S04812.sslabel +++|        RETURN;
04813  M01S04813.sslabel +++|        END
04814  M01S04814.sslabel +++|
04815  M01S04815.sslabel +++|
04816  M01S04816.sslabel +++|#
04817  M01S04817.sslabel +++|*     CHECK IF *YI* AND *ZI* SPECIFY NON-EXISTANT CUBES WHILE
04818  M01S04818.sslabel +++|*     *YF* AND *ZF* ARE NOT SPECIFIED.
04819  M01S04819.sslabel +++|#
04820  M01S04820.sslabel +++|
04821  M01S04821.sslabel +++|      IF (LBARG$YF[0] EQ -1 AND LBARG$ZF[0] EQ -1)
04822  M01S04822.sslabel +++|        AND LBARG$CC[0] EQ -1
04823  M01S04823.sslabel +++|      THEN                           # SINGLE CUBE SPECIFIED #
04824  M01S04824.sslabel +++|        BEGIN
04825  M01S04825.sslabel +++|        IF (LBARG$ZI[0] EQ Z$NO$CUBE)  ##
04826  M01S04826.sslabel +++|          OR ((LBARG$ZI[0] EQ 0)     ##
04827  M01S04827.sslabel +++|          AND ((LBARG$YI[0] EQ 0)    ##
04828  M01S04828.sslabel +++|          OR (LBARG$YI[0] EQ 11)     ##
04829  M01S04829.sslabel +++|          OR (LBARG$YI[0] EQ 12)     ##
04830  M01S04830.sslabel +++|          OR (LBARG$YI[0] EQ 13)     ##
04831  M01S04831.sslabel +++|          OR (LBARG$YI[0] EQ 14)     ##
Line S04832 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04832  M02S04832.msea013 ---|          OR (LBARG$YI[0] EQ 15)     ##
Line S04833 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04833  M02S04833.msea013 ---|          OR (LBARG$YI[0] EQ 21)))   ##
04834  M01S00001.msea013 +++|          OR (LBARG$YI[0] EQ 15)))     ##
04835  M01S04834.sslabel +++|          OR ((LBARG$ZI[0] EQ 1)     ##
04836  M01S04835.sslabel +++|          AND ((LBARG$YI[0] EQ 11)   ##
04837  M01S04836.sslabel +++|          OR (LBARG$YI[0] EQ 12)     ##
04838  M01S04837.sslabel +++|          OR (LBARG$YI[0] EQ 13)     ##
04839  M01S04838.sslabel +++|          OR (LBARG$YI[0] EQ 14)     ##
Line S04839 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04840  M02S04839.msea013 ---|          OR (LBARG$YI[0] EQ 15)     ##
Line S04840 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04841  M02S04840.msea013 ---|          OR (LBARG$YI[0] EQ 0)))    ##
04842  M01S00002.msea013 +++|          OR (LBARG$YI[0] EQ 15)))     ##
04843  M01S04841.sslabel +++|          OR ((LBARG$ZI[0] EQ 15)    ##
04844  M01S04842.sslabel +++|          AND ((LBARG$YI[0] EQ 0)    ##
04845  M01S04843.sslabel +++|          OR (LBARG$YI[0] EQ 11)     ##
04846  M01S04844.sslabel +++|          OR (LBARG$YI[0] EQ 21)))   ##
Line S04845 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04847  M02S04845.msea013 ---|          OR ((LBARG$ZI[0] EQ 14)    ##
Line S04846 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04848  M02S04846.msea013 ---|          AND ((LBARG$YI[0] EQ 0)    ##
Line S04847 Modification History
M01 (Added by) sslabel
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04849  M02S04847.msea013 ---|          OR ( LBARG$YI[0] EQ 21)))  ##
04850  M01S04848.sslabel +++|        THEN                         # IGNORE NON-EXISTANT CUBE #
04851  M01S04849.sslabel +++|          BEGIN
04852  M01S04850.sslabel +++|          ERRCODE = S"YZ$VIOL";      # "Y,Z OPTION VIOLATED" #
04853  M01S04851.sslabel +++|          LBERR(ERRCODE);
04854  M01S04852.sslabel +++|          ERRFLAG =1;
04855  M01S04853.sslabel +++|          RETURN;
04856  M01S04854.sslabel +++|          END
04857  M01S04855.sslabel +++|
04858  M01S04856.sslabel +++|        END
04859  M01S04857.sslabel +++|
04860  M01S04858.sslabel +++|
04861  M01S04859.sslabel +++|#
04862  M01S04860.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *SB*.
04863  M01S04861.sslabel +++|#
04864  M01S04862.sslabel +++|
04865  M01S04863.sslabel +++|      IF LBARG$SB[0] LS 0 OR LBARG$SB[0] GR 7
04866  M01S04864.sslabel +++|      THEN
04867  M01S04865.sslabel +++|        BEGIN
04868  M01S04866.sslabel +++|        ERRCODE = S"ILL$SB";         # "ILLEGAL SUBFAMILY" #
04869  M01S04867.sslabel +++|        LBERR(ERRCODE);
04870  M01S04868.sslabel +++|        ERRFLAG = 1;
04871  M01S04869.sslabel +++|        END
04872  M01S04870.sslabel +++|
04873  M01S04871.sslabel +++|#
04874  M01S04872.sslabel +++|*     CHECK FOR LEGAL VALUE  OF *CC*.
04875  M01S04873.sslabel +++|#
04876  M01S04874.sslabel +++|
04877  M01S04875.sslabel +++|      IF (LBARG$CC[0] NQ -1 AND LBARG$OP NQ "AM") OR (LBARG$CC[0] NQ 0
04878  M01S04876.sslabel +++|        AND LBARG$CC[0] NQ 15 AND LBARG$CC[0] NQ -1)
04879  M01S04877.sslabel +++|      THEN
04880  M01S04878.sslabel +++|        BEGIN
04881  M01S04879.sslabel +++|        ERRCODE = S"ILL$DIRCTV";
04882  M01S04880.sslabel +++|        LBERR(ERRCODE);
04883  M01S04881.sslabel +++|        ERRFLAG = 1;
04884  M01S04882.sslabel +++|        RETURN;
04885  M01S04883.sslabel +++|        END
04886  M01S04884.sslabel +++|
04887  M01S04885.sslabel +++|#
04888  M01S04886.sslabel +++|*     CHECK FOR LEGAL *B* VALUE.
04889  M01S04887.sslabel +++|#
04890  M01S04888.sslabel +++|
04891  M01S04889.sslabel +++|      IF (LBARG$B[0] LS 0) OR (LBARG$B[0] GR 1931)  ##
04892  M01S04890.sslabel +++|        OR ((LBARG$B[0] NQ 600)      ##
04893  M01S04891.sslabel +++|        AND (LBARG$OP[0] NQ "AM"))
04894  M01S04892.sslabel +++|      THEN                           # *B* INCORRECT #
04895  M01S04893.sslabel +++|        BEGIN
04896  M01S04894.sslabel +++|        ERRCODE = S"B$INCORR";
04897  M01S04895.sslabel +++|        LBERR(ERRCODE);
04898  M01S04896.sslabel +++|        ERRFLAG = 1;
04899  M01S04897.sslabel +++|        RETURN;
04900  M01S04898.sslabel +++|        END
04901  M01S04899.sslabel +++|
04902  M01S04900.sslabel +++|
04903  M01S04901.sslabel +++|      RETURN;                        # RETURN ERRFLAG = NO ERROR #
04904  M01S04902.sslabel +++|
04905  M01S04903.sslabel +++|      END  # LBOPT #
04906  M01S04904.sslabel +++|
04907  M01S04905.sslabel +++|    TERM
04908  M01S04906.sslabel +++|PROC LBRESP((RESP$CODE),(CALLTYP));
04909  M01S04907.sslabel +++|# TITLE LBRESP - ACTS UPON RESPONSE CODES FROM EXEC.                  #
04910  M01S04908.sslabel +++|
04911  M01S04909.sslabel +++|      BEGIN  # LBRESP #
04912  M01S04910.sslabel +++|
04913  M01S04911.sslabel +++|#
04914  M01S04912.sslabel +++|**    LBRESP - ACTS UPON RESPONSE CODES FROM EXEC.
04915  M01S04913.sslabel +++|*
04916  M01S04914.sslabel +++|*     THIS PROC CHECKS THE RESPONSE CODE RETURNED BY EXEC
04917  M01S04915.sslabel +++|*     AND CALLS *LBERR* WITH THE APPROPRIATE ERROR CODE IF
04918  M01S04916.sslabel +++|*     ANY ERROR OCCURRED.
04919  M01S04917.sslabel +++|*
04920  M01S04918.sslabel +++|*     PROC LBRESP((RESP$CODE),(CALLTYP))
04921  M01S04919.sslabel +++|*
04922  M01S04920.sslabel +++|*     ENTRY    RESP$CODE,  CODE RETURNED BY EXEC IN RESPONSE
04923  M01S04921.sslabel +++|*                          TO A UCP REQUEST, OR BY A CATALOG/MAP
04924  M01S04922.sslabel +++|*                          ACCESS ROUTINE.
04925  M01S04923.sslabel +++|*              CALLTYP,    TYPE OF CALL.
04926  M01S04924.sslabel +++|*                            0 - CATALOG/MAP ACCESS.
04927  M01S04925.sslabel +++|*                            3 - TYPE 3 UCP REQUEST.
04928  M01S04926.sslabel +++|*                            4 - TYPE 4 UCP REQUEST.
04929  M01S04927.sslabel +++|*
04930  M01S04928.sslabel +++|*     EXIT     PROC *LBERR* CALLED OR RETURN DIRECTLY TO CALLING PROC.
04931  M01S04929.sslabel +++|*
04932  M01S04930.sslabel +++|*     MESSAGES SSLABEL ABNORMAL, LBRESP.
04933  M01S04931.sslabel +++|*
04934  M01S04932.sslabel +++|*     NOTES    PROC *LBRESP* CHECKS THE VALUE OF *RESP$CODE* AND CALLS
04935  M01S04933.sslabel +++|*              *LBERR* WITH THE APPROPRIATE ERROR CODE IF ANY ERRORS
04936  M01S04934.sslabel +++|*              ARE INDICATED.
04937  M01S04935.sslabel +++|#
04938  M01S04936.sslabel +++|
04939  M01S04937.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
04940  M01S04938.sslabel +++|      ITEM CALLTYP    U;             # TYPE OF CALL MADE #
04941  M01S04939.sslabel +++|
04942  M01S04940.sslabel +++|#
04943  M01S04941.sslabel +++|****  PROC LBRESP - XREF LIST BEGIN.
04944  M01S04942.sslabel +++|#
04945  M01S04943.sslabel +++|
04946  M01S04944.sslabel +++|      XREF
04947  M01S04945.sslabel +++|        BEGIN
04948  M01S04946.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
04949  M01S04947.sslabel +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
04950  M01S04948.sslabel +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
04951  M01S04949.sslabel +++|                                       OR RETURN #
04952  M01S04950.sslabel +++|        END
04953  M01S04951.sslabel +++|
04954  M01S04952.sslabel +++|#
04955  M01S04953.sslabel +++|****  PROC LBRESP - XREF LIST END.
04956  M01S04954.sslabel +++|#
04957  M01S04955.sslabel +++|
04958  M01S04956.sslabel +++|      DEF PROCNAME #"LBRESP."#;      # PROC NAME #
04959  M01S04957.sslabel +++|
04960  M01S04958.sslabel +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
04961  M01S04959.sslabel +++|*CALL COMBFAS
04962  M01S04960.sslabel +++|*CALL COMBCMS
04963  M01S04961.sslabel +++|*CALL COMBCPR
04964  M01S04962.sslabel +++|*CALL COMTERR
04965  M01S04963.sslabel +++|*CALL COMTLAB
04966  M01S04964.sslabel +++|
04967  M01S04965.sslabel +++|#
04968  M01S04966.sslabel +++|*     STATUS SWITCH FOR THE RESPONSE CODES
04969  M01S04967.sslabel +++|*     RETURNED BY EXEC IN RESPONSE TO TYPE 3
04970  M01S04968.sslabel +++|*     CALLSS REQUEST.
04971  M01S04969.sslabel +++|#
04972  M01S04970.sslabel +++|
04973  M01S04971.sslabel +++|      SWITCH RESP$ACT3:RESPTYP3      # ACTION ON RESPONSE TO TYPE 3
04974  M01S04972.sslabel +++|                                       REQUEST #
04975  M01S04973.sslabel +++|               OK3$ACT:OK3,          # REQUEST PROCESSED #
04976  M01S04974.sslabel +++|            INTLCK$ACT:C$M$INTLCK,   # CATALOG/MAP INTERLOCKED #
04977  M01S04975.sslabel +++|             NOPEN$ACT:C$M$NOPEN,    # CATALOG/MAP NOT OPEN #
04978  M01S04976.sslabel +++|             SUBEX$ACT:SUB$CAT$EX,   # SUB CATALOG ALREADY EXISTS #
04979  M01S04977.sslabel +++|             NOSUB$ACT:NO$SUB$CAT,   # NO SUCH SUBCATALOG #
04980  M01S04978.sslabel +++|            PFPROB$ACT: PF$PROB;     # PERMANENT FILE PROBLEM #
04981  M01S04979.sslabel +++|
04982  M01S04980.sslabel +++|#
04983  M01S04981.sslabel +++|*     STATUS SWITCH FOR THE RESPONSE RETURNED BY
04984  M01S04982.sslabel +++|*     EXEC TO A TYPE 4 CALLSS REQUEST.  ONLY THE
04985  M01S04983.sslabel +++|*     APPLICABLE RESPONSE CODES ARE LISTED HERE.
04986  M01S04984.sslabel +++|#
04987  M01S04985.sslabel +++|
04988  M01S04986.sslabel +++|      SWITCH RESP$ACT4:RESPTYP4      # ACTION ON RESPONSE TO TYPE 4
04989  M01S04987.sslabel +++|                                       REQUEST #
04990  M01S04988.sslabel +++|               OK4$ACT:OK4,          # REQUEST PROCESSED #
04991  M01S04989.sslabel +++|            CLBERR$ACT:CART$LB$ERR,  # CARTRIDGE LABEL ERROR #
04992  M01S04990.sslabel +++|            CUSERR$ACT:CSN$IN$USE,      # CARTRIDGE IN USE #
04993  M01S04991.sslabel +++|            SMOFF$ACT:SMA$OFF,          # STORAGE MODULE OFF #
04994  M01S04992.sslabel +++|            CEMERR$ACT:CELL$EMP,
04995  M01S04993.sslabel +++|            CFLERR$ACT:CELL$FULL,
04996  M01S04994.sslabel +++|            UNKERR$ACT:UNK$CART,     # UNKNOWN LABEL ERROR #
04997  M01S04995.sslabel +++|            URDERR$ACT:UN$RD$ERR,    # UNRECOVERABLE READ ERROR #
04998  M01S04996.sslabel +++|            UWTERR$ACT:UN$WRT$ERR,   # UNRECOVERABLE WRITE ERROR #
04999  M01S04997.sslabel +++|            MHDERR$ACT:M86$HDW$PR;   # M86 HARDWARE PROBLEM #
05000  M01S04998.sslabel +++|
05001  M01S04999.sslabel +++|                                               CONTROL EJECT;
05002  M01S05000.sslabel +++|
05003  M01S05001.sslabel +++|#
05004  M01S05002.sslabel +++|*     DO PROCESSING APPROPRIATE TO TYPE OF RESPONSE CODE.
05005  M01S05003.sslabel +++|#
05006  M01S05004.sslabel +++|
05007  M01S05005.sslabel +++|      IF CALLTYP EQ TYP"TYP3"
05008  M01S05006.sslabel +++|      THEN                           # TYPE 3 UCP REQUEST #
05009  M01S05007.sslabel +++|        BEGIN
05010  M01S05008.sslabel +++|        GOTO RESP$ACT3[RESP$CODE];
05011  M01S05009.sslabel +++|        END
05012  M01S05010.sslabel +++|
05013  M01S05011.sslabel +++|      IF CALLTYP EQ TYP"TYP4"
05014  M01S05012.sslabel +++|      THEN                           # TYPE 4 UCP REQUEST #
05015  M01S05013.sslabel +++|        BEGIN
05016  M01S05014.sslabel +++|        GOTO RESP$ACT4[RESP$CODE];
05017  M01S05015.sslabel +++|        END
05018  M01S05016.sslabel +++|
05019  M01S05017.sslabel +++|      IF CALLTYP NQ 0
05020  M01S05018.sslabel +++|      THEN                           # ILLEGAL CALL TYPE #
05021  M01S05019.sslabel +++|        BEGIN
05022  M01S05020.sslabel +++|        LBMSG$PROC[0] = PROCNAME;
05023  M01S05021.sslabel +++|        MESSAGE(LBMSG[0],SYSUDF1);
05024  M01S05022.sslabel +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
05025  M01S05023.sslabel +++|        END
05026  M01S05024.sslabel +++|
05027  M01S05025.sslabel +++|#
05028  M01S05026.sslabel +++|*     ERROR PROCESSING FOR CATALOG/MAP ACCESS.
05029  M01S05027.sslabel +++|#
05030  M01S05028.sslabel +++|
05031  M01S05029.sslabel +++|      IF RESP$CODE EQ CMASTAT"INTLK"
05032  M01S05030.sslabel +++|      THEN                           # CATALOG/MAP INTERLOCKED #
05033  M01S05031.sslabel +++|        BEGIN
05034  M01S05032.sslabel +++|        ERRCODE = S"CAT$MAP$LK";
05035  M01S05033.sslabel +++|        LBERR(ERRCODE);
05036  M01S05034.sslabel +++|        RETURN;
05037  M01S05035.sslabel +++|        END
05038  M01S05036.sslabel +++|
05039  M01S05037.sslabel +++|      IF RESP$CODE EQ CMASTAT"ATTERR"
05040  M01S05038.sslabel +++|      THEN                           # PROCESS ATTACH ERROR #
05041  M01S05039.sslabel +++|        BEGIN
05042  M01S05040.sslabel +++|        ERRCODE = S"PF$PROB";
05043  M01S05041.sslabel +++|        LBERR(ERRCODE);
05044  M01S05042.sslabel +++|        RETURN;
05045  M01S05043.sslabel +++|        END
05046  M01S05044.sslabel +++|
05047  M01S05045.sslabel +++|      IF RESP$CODE EQ CMASTAT"NOSUBCAT"
05048  M01S05046.sslabel +++|      THEN                           # NO SUCH SUBCATALOG #
05049  M01S05047.sslabel +++|        BEGIN
05050  M01S05048.sslabel +++|        ERRCODE = S"NO$CAT$MAP";
05051  M01S05049.sslabel +++|        LBERR(ERRCODE);
05052  M01S05050.sslabel +++|        RETURN;
05053  M01S05051.sslabel +++|        END
05054  M01S05052.sslabel +++|
05055  M01S05053.sslabel +++|      IF RESP$CODE NQ CMASTAT"NOERR" AND RESP$CODE NQ CMASTAT"FOPEN"
05056  M01S05054.sslabel +++|        THEN                         # ERROR OTHER THAN *CATALOG
05057  M01S05055.sslabel +++|                                       ALREADY OPEN* #
05058  M01S05056.sslabel +++|        BEGIN
05059  M01S05057.sslabel +++|        LBMSG$PROC[0] = PROCNAME;
05060  M01S05058.sslabel +++|        MESSAGE(LBMSG[0],SYSUDF1);
05061  M01S05059.sslabel +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
05062  M01S05060.sslabel +++|        END
05063  M01S05061.sslabel +++|
05064  M01S05062.sslabel +++|#
05065  M01S05063.sslabel +++|*     ERROR PROCESSING FOR TYPE 3 REQUESTS TO EXEC.
05066  M01S05064.sslabel +++|#
05067  M01S05065.sslabel +++|
05068  M01S05066.sslabel +++|OK3$ACT:                             # NO ERROR #
05069  M01S05067.sslabel +++|      RETURN;
05070  M01S05068.sslabel +++|
05071  M01S05069.sslabel +++|INTLCK$ACT:                          # CATALOG/MAP INTERLOCKED #
05072  M01S05070.sslabel +++|      ERRCODE = S"CAT$MAP$LK";
05073  M01S05071.sslabel +++|      LBERR(ERRCODE);
05074  M01S05072.sslabel +++|      RETURN;
05075  M01S05073.sslabel +++|
05076  M01S05074.sslabel +++|NOPEN$ACT:                           # CATALOG/MAP NOT OPEN #
05077  M01S05075.sslabel +++|      ERRCODE = S"NOT$OPEN";
05078  M01S05076.sslabel +++|      LBERR(ERRCODE);
05079  M01S05077.sslabel +++|      RETURN;
05080  M01S05078.sslabel +++|
05081  M01S05079.sslabel +++|SUBEX$ACT:                           # SUB CATALOG ALREADY EXISTS #
05082  M01S05080.sslabel +++|      ERRCODE = S"SM$DEFND";
05083  M01S05081.sslabel +++|      LBERR(ERRCODE);
05084  M01S05082.sslabel +++|      RETURN;
05085  M01S05083.sslabel +++|
05086  M01S05084.sslabel +++|NOSUB$ACT:                           # NO SUCH SUBCATALOG #
05087  M01S05085.sslabel +++|      ERRCODE = S"NO$CAT$MAP";
05088  M01S05086.sslabel +++|      LBERR(ERRCODE);
05089  M01S05087.sslabel +++|      RETURN;
05090  M01S05088.sslabel +++|
05091  M01S05089.sslabel +++|PFPROB$ACT:                          # PERMANENT FILE PROBLEM #
05092  M01S05090.sslabel +++|      ERRCODE = S"PF$PROB";
05093  M01S05091.sslabel +++|      LBERR(ERRCODE);
05094  M01S05092.sslabel +++|      RETURN;
05095  M01S05093.sslabel +++|
05096  M01S05094.sslabel +++|#
05097  M01S05095.sslabel +++|*     ERROR PROCESSING FOR TYPE 4 REQUESTS TO EXEC.
05098  M01S05096.sslabel +++|#
05099  M01S05097.sslabel +++|
05100  M01S05098.sslabel +++|OK4$ACT:                             # NO ERRORS #
05101  M01S05099.sslabel +++|      RETURN;
05102  M01S05100.sslabel +++|
05103  M01S05101.sslabel +++|CLBERR$ACT:                          # CARTRIDGE LABEL ERROR #
05104  M01S05102.sslabel +++|
05105  M01S05103.sslabel +++|      ERRCODE = S"LAB$ERR";
05106  M01S05104.sslabel +++|      LBERR(ERRCODE);
05107  M01S05105.sslabel +++|      RETURN;
05108  M01S05106.sslabel +++|
05109  M01S05107.sslabel +++|
05110  M01S05108.sslabel +++|CUSERR$ACT:
05111  M01S05109.sslabel +++|
05112  M01S05110.sslabel +++|      ERRCODE = S"CAR$IN$USE";
05113  M01S05111.sslabel +++|      LBERR(ERRCODE);
05114  M01S05112.sslabel +++|      RETURN;
05115  M01S05113.sslabel +++|
05116  M01S05114.sslabel +++|
05117  M01S05115.sslabel +++|CEMERR$ACT:                          # CARTRIDGE NOT FOUND #
05118  M01S05116.sslabel +++|
05119  M01S05117.sslabel +++|      ERRCODE = S"CR$NOTFND";
05120  M01S05118.sslabel +++|      LBERR(ERRCODE);
05121  M01S05119.sslabel +++|      RETURN;
05122  M01S05120.sslabel +++|
05123  M01S05121.sslabel +++|CFLERR$ACT:                          # CELL IS FULL #
05124  M01S05122.sslabel +++|
05125  M01S05123.sslabel +++|      ERRCODE = S"CELL$FULL";
05126  M01S05124.sslabel +++|      LBERR(ERRCODE);
05127  M01S05125.sslabel +++|      RETURN;
05128  M01S05126.sslabel +++|
05129  M01S05127.sslabel +++|
05130  M01S05128.sslabel +++|UNKERR$ACT:                          # UNKNOWN LABEL ERROR #
05131  M01S05129.sslabel +++|
05132  M01S05130.sslabel +++|      ERRCODE = S"LAB$ERR";
05133  M01S05131.sslabel +++|      LBERR(ERRCODE);
05134  M01S05132.sslabel +++|      RETURN;
05135  M01S05133.sslabel +++|
05136  M01S05134.sslabel +++|
05137  M01S05135.sslabel +++|URDERR$ACT:                          # UNRECOVERABLE READ ERROR #
05138  M01S05136.sslabel +++|      ERRCODE = S"UNRECV$RD";
05139  M01S05137.sslabel +++|      LBERR(ERRCODE);
05140  M01S05138.sslabel +++|      RETURN;
05141  M01S05139.sslabel +++|
05142  M01S05140.sslabel +++|UWTERR$ACT:                          # UNRECOVERABLE WRITE ERROR #
05143  M01S05141.sslabel +++|      ERRCODE = S"UNRECV$WRT";
05144  M01S05142.sslabel +++|      LBERR(ERRCODE);
05145  M01S05143.sslabel +++|      RETURN;
05146  M01S05144.sslabel +++|
05147  M01S05145.sslabel +++|MHDERR$ACT:                          # MSF HARDWARE PROBLEM #
05148  M01S05146.sslabel +++|      ERRCODE = S"M86$HARDWR";
05149  M01S05147.sslabel +++|      LBERR(ERRCODE);
05150  M01S05148.sslabel +++|      RETURN;
05151  M01S05149.sslabel +++|SMOFF$ACT:
05152  M01S05150.sslabel +++|
05153  M01S05151.sslabel +++|      ERRCODE = S"SM$OFF";
05154  M01S05152.sslabel +++|      LBERR(ERRCODE);
05155  M01S05153.sslabel +++|      RETURN;
05156  M01S05154.sslabel +++|
05157  M01S05155.sslabel +++|
05158  M01S05156.sslabel +++|      END  # LBRESP #
05159  M01S05157.sslabel +++|
05160  M01S05158.sslabel +++|    TERM
05161  M01S05159.sslabel +++|PROC LBRMCSU;
05162  M01S05160.sslabel +++|# TITLE LBRMCSU - REMOVE A *SM* FROM A FAMILY CATALOG.                 #
05163  M01S05161.sslabel +++|
05164  M01S05162.sslabel +++|      BEGIN  # LBRMCSU #
05165  M01S05163.sslabel +++|
05166  M01S05164.sslabel +++|#
05167  M01S05165.sslabel +++|**    LBRMCSU - REMOVE A *SM* FROM A FAMILY CATALOG.
05168  M01S05166.sslabel +++|*
05169  M01S05167.sslabel +++|*     THIS PROC UPDATES THE CATALOG FOR A FAMILY TO REMOVE
05170  M01S05168.sslabel +++|*     ASSIGNMENT OF A PARTICULAR CSU.
05171  M01S05169.sslabel +++|*
05172  M01S05170.sslabel +++|*     PROC LBRMCSU.
05173  M01S05171.sslabel +++|*
05174  M01S05172.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05175  M01S05173.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05176  M01S05174.sslabel +++|*               IN *COMTLBP*.
05177  M01S05175.sslabel +++|*
05178  M01S05176.sslabel +++|*     EXIT      *SM* REMOVED FROM FAMILY OR ERROR CONDITION.
05179  M01S05177.sslabel +++|*
05180  M01S05178.sslabel +++|*     NOTES     PROC *LBRMCSU* SEARCHES THE SMMAP FOR THE *SM*
05181  M01S05179.sslabel +++|*               SPECIFIED TO VERIFY THAT NO CUBES ARE ASSIGNED
05182  M01S05180.sslabel +++|*               TO THE FAMILY.  A REQUEST IS THEN SENT TO EXEC
05183  M01S05181.sslabel +++|*               TO UPDATE THE CATALOG TO REFLECT THE REMOVAL OF
05184  M01S05182.sslabel +++|*               THE *SM*.
05185  M01S05183.sslabel +++|#
05186  M01S05184.sslabel +++|
05187  M01S05185.sslabel +++|#
05188  M01S05186.sslabel +++|****  PROC LBRMCSU - XREF LIST BEGIN.
05189  M01S05187.sslabel +++|#
05190  M01S05188.sslabel +++|
05191  M01S05189.sslabel +++|      XREF
05192  M01S05190.sslabel +++|        BEGIN
05193  M01S05191.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
05194  M01S05192.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05195  M01S05193.sslabel +++|        PROC LBRESP;                 # PROCESSES RESPONSE FROM EXEC #
05196  M01S05194.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05197  M01S05195.sslabel +++|        END
05198  M01S05196.sslabel +++|
05199  M01S05197.sslabel +++|#
05200  M01S05198.sslabel +++|****  PROC LBRMCSU - XREF LIST END.
05201  M01S05199.sslabel +++|#
05202  M01S05200.sslabel +++|
05203  M01S05201.sslabel +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
05204  M01S05202.sslabel +++|*CALL COMBFAS
05205  M01S05203.sslabel +++|*CALL COMBCPR
05206  M01S05204.sslabel +++|*CALL COMTERR
05207  M01S05205.sslabel +++|*CALL COMTLAB
05208  M01S05206.sslabel +++|*CALL COMTLBP
05209  M01S05207.sslabel +++|
05210  M01S05208.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05211  M01S05209.sslabel +++|      ITEM REQCODE    U;             # REQUEST CODE #
05212  M01S05210.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
05213  M01S05211.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SMMAP SEARCH TYPE #
05214  M01S05212.sslabel +++|
05215  M01S05213.sslabel +++|
05216  M01S05214.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05217  M01S05215.sslabel +++|        BEGIN
05218  M01S05216.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05219  M01S05217.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05220  M01S05218.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05221  M01S05219.sslabel +++|        END
05222  M01S05220.sslabel +++|
05223  M01S05221.sslabel +++|
05224  M01S05222.sslabel +++|                                               CONTROL EJECT;
05225  M01S05223.sslabel +++|
05226  M01S05224.sslabel +++|#
05227  M01S05225.sslabel +++|*     SEARCH SMMAP FOR CUBES ASSIGNED TO FAMILY AND UPDATE CATALOG.
05228  M01S05226.sslabel +++|#
05229  M01S05227.sslabel +++|
05230  M01S05228.sslabel +++|      SERTYPE = S"ASGN$FAM";
05231  M01S05229.sslabel +++|      SERCSU(SERTYPE,0,0,0,0,LBARG$FM[0],LBARG$SB[0], PK$CSU$ENT[0],
05232  M01S05230.sslabel +++|        FLAG);
05233  M01S05231.sslabel +++|
05234  M01S05232.sslabel +++|      IF FLAG EQ OK
05235  M01S05233.sslabel +++|      THEN                           # ENTRY FOUND #
05236  M01S05234.sslabel +++|        BEGIN
05237  M01S05235.sslabel +++|        ERRCODE = S"CB$ASGN$SB";
05238  M01S05236.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
05239  M01S05237.sslabel +++|        RETURN;
05240  M01S05238.sslabel +++|        END
05241  M01S05239.sslabel +++|
05242  M01S05240.sslabel +++|      REQCODE = REQTYP3"RMV$CSU";
05243  M01S05241.sslabel +++|      CALL3(REQCODE,0,0,0,RESP$CODE);  # REMOVE *SM* FROM FAMILY #
05244  M01S05242.sslabel +++|      IF RESP$CODE NQ RESPTYP3"OK3"
05245  M01S05243.sslabel +++|      THEN                           # PROCESS THE RESPONSE #
05246  M01S05244.sslabel +++|        BEGIN
05247  M01S05245.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP3");
05248  M01S05246.sslabel +++|        END
05249  M01S05247.sslabel +++|
05250  M01S05248.sslabel +++|      RETURN;
05251  M01S05249.sslabel +++|
05252  M01S05250.sslabel +++|      END  # LBRMCSU #
05253  M01S05251.sslabel +++|
05254  M01S05252.sslabel +++|    TERM
05255  M01S05253.sslabel +++|PROC LBRMCUB;
05256  M01S05254.sslabel +++|# TITLE LBRMCUB - REMOVES CUBES FROM FAMILY/POOL/RESERVED AREA.       #
05257  M01S05255.sslabel +++|
05258  M01S05256.sslabel +++|      BEGIN  # LBRMCUB #
05259  M01S05257.sslabel +++|
05260  M01S05258.sslabel +++|#
05261  M01S05259.sslabel +++|**    LBRMCUB - REMOVES CUBES FROM FAMILY/POOL/RESERVED AREA.
05262  M01S05260.sslabel +++|*
05263  M01S05261.sslabel +++|*     THIS PROC REMOVES ASSIGNED CUBES FROM A FAMILY, POOL,
05264  M01S05262.sslabel +++|*     OR RESERVED AREA OF THE CSU.
05265  M01S05263.sslabel +++|*
05266  M01S05264.sslabel +++|*     PROC LBRMCUB.
05267  M01S05265.sslabel +++|*
05268  M01S05266.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05269  M01S05267.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05270  M01S05268.sslabel +++|*               IN *COMTLBP*.
05271  M01S05269.sslabel +++|*
05272  M01S05270.sslabel +++|*     EXIT      SPECIFIED NUMBER OR LOCATIONS OF CUBES HAVE
05273  M01S05271.sslabel +++|*               BEEN REMOVED, OR ERROR CONDITION.
05274  M01S05272.sslabel +++|*
05275  M01S05273.sslabel +++|*     NOTES     PROC *LBRMCUB* REMOVES CUBES FROM A FAMILY,
05276  M01S05274.sslabel +++|*               POOL, OR RESERVED AREA BY CHANGING THEIR STATUS
05277  M01S05275.sslabel +++|*               FROM *ASSIGNED* TO *UNASSIGNED*.  IF THE *N*
05278  M01S05276.sslabel +++|*               OPTION IS USED THE SMMAP IS SEARCHED FOR EMPTY
05279  M01S05277.sslabel +++|*               CUBES WITH THE APPROPRIATE ASSIGNMENT.  IF THE
05280  M01S05278.sslabel +++|*               LOCATION OPTION IS USED, THE SMMAP IS CHECKED
05281  M01S05279.sslabel +++|*               TO ENSURE THAT THE SPECIFIC CUBES ARE EMPTY AND
05282  M01S05280.sslabel +++|*               ASSIGNED AS EXPECTED.  A REQUEST IS THEN SENT
05283  M01S05281.sslabel +++|*               TO EXEC TO REMOVE THE CUBES FROM ASSIGNMENT.
05284  M01S05282.sslabel +++|#
05285  M01S05283.sslabel +++|
05286  M01S05284.sslabel +++|#
05287  M01S05285.sslabel +++|****  PROC LBRMCUB - XREF LIST BEGIN.
05288  M01S05286.sslabel +++|#
05289  M01S05287.sslabel +++|
05290  M01S05288.sslabel +++|      XREF
05291  M01S05289.sslabel +++|        BEGIN
05292  M01S05290.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
05293  M01S05291.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05294  M01S05292.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
05295  M01S05293.sslabel +++|        PROC MFLUSH;                 # FLUSHES MAP BUFFER #
05296  M01S05294.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05297  M01S05295.sslabel +++|        PROC SETCORD;                # SETS UP Y AND Z COORDINATES #
05298  M01S05296.sslabel +++|        END
05299  M01S05297.sslabel +++|
05300  M01S05298.sslabel +++|#
05301  M01S05299.sslabel +++|****  PROC LBRMCUB - XREF LIST END.
05302  M01S05300.sslabel +++|#
05303  M01S05301.sslabel +++|
05304  M01S05302.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
05305  M01S05303.sslabel +++|*CALL COMBFAS
05306  M01S05304.sslabel +++|*CALL COMBCPR
05307  M01S05305.sslabel +++|*CALL COMBMAP
05308  M01S05306.sslabel +++|*CALL COMTERR
05309  M01S05307.sslabel +++|*CALL COMTLAB
05310  M01S05308.sslabel +++|*CALL COMTLBP
05311  M01S05309.sslabel +++|
05312  M01S05310.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05313  M01S05311.sslabel +++|      ITEM I          I;             # LOOP VARIABLE #
05314  M01S05312.sslabel +++|      ITEM LOC$OPTION B;             # TRUE IF *LOC* OPTION FALSE IF
05315  M01S05313.sslabel +++|                                       *N* OPTION #
05316  M01S05314.sslabel +++|      ITEM REQCODE    U;             # RESPONSE CODE FROM EXEC #
05317  M01S05315.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
05318  M01S05316.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # TYPE OF SEARCH THROUGH SMMAP #
05319  M01S05317.sslabel +++|      ITEM SP$CODE    U;             # CODE FOR CUBE/CARTRIDGE
05320  M01S05318.sslabel +++|                                       ASSIGNMENT #
05321  M01S05319.sslabel +++|      ITEM SP$FAM     C(7);          # SPECIFIED FAMILY NAME #
05322  M01S05320.sslabel +++|      ITEM SP$SUB     U;             # SPECIFIED SUB FAMILY #
05323  M01S05321.sslabel +++|      ITEM SP$VSN     C(8);          # SPECIFIED CARTRIDGE *CSND* #
05324  M01S05322.sslabel +++|      ITEM SP$Y       U;             # Y COORDINATE #
05325  M01S05323.sslabel +++|      ITEM SP$Z       U;             # Z COORDINATE #
05326  M01S05324.sslabel +++|
05327  M01S05325.sslabel +++|
05328  M01S05326.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05329  M01S05327.sslabel +++|        BEGIN
05330  M01S05328.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05331  M01S05329.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05332  M01S05330.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05333  M01S05331.sslabel +++|        END
05334  M01S05332.sslabel +++|
05335  M01S05333.sslabel +++|
05336  M01S05334.sslabel +++|                                               CONTROL EJECT;
05337  M01S05335.sslabel +++|
05338  M01S05336.sslabel +++|#
05339  M01S05337.sslabel +++|*     CHECK FOR *N* OPTION OR *LOC* OPTION.
05340  M01S05338.sslabel +++|#
05341  M01S05339.sslabel +++|
05342  M01S05340.sslabel +++|      LOC$OPTION = FALSE;
05343  M01S05341.sslabel +++|      IF LBARG$YI[0] NQ -1 OR LBARG$ZI[0] NQ -1
05344  M01S05342.sslabel +++|      THEN                           # *LOC* OPTION SPECIFIED #
05345  M01S05343.sslabel +++|        BEGIN
05346  M01S05344.sslabel +++|        SETCORD;                     # BUILD Y,Z MATRIX #
05347  M01S05345.sslabel +++|        LOC$OPTION = TRUE;
05348  M01S05346.sslabel +++|        END
05349  M01S05347.sslabel +++|
05350  M01S05348.sslabel +++|#
05351  M01S05349.sslabel +++|*     PROCESS EACH OF THE *N* CUBES SPECIFIED.
05352  M01S05350.sslabel +++|#
05353  M01S05351.sslabel +++|
05354  M01S05352.sslabel +++|      SP$VSN = " ";
05355  M01S05353.sslabel +++|      SP$FAM = " ";
05356  M01S05354.sslabel +++|      SP$SUB = 0;
05357  M01S05355.sslabel +++|      FASTFOR I = 1 STEP 1 UNTIL LBARG$N[0]
05358  M01S05356.sslabel +++|      DO
05359  M01S05357.sslabel +++|        BEGIN  # PROCESS *N* CUBES #
05360  M01S05358.sslabel +++|        IF NOT LOC$OPTION
05361  M01S05359.sslabel +++|        THEN
05362  M01S05360.sslabel +++|          BEGIN  # *N* OPTION #
05363  M01S05361.sslabel +++|          SERTYPE = S"ASSIGN";       # SEARCH FOR ASSIGNED CUBE #
05364  M01S05362.sslabel +++|          IF LBARG$PK[0] EQ "F"
05365  M01S05363.sslabel +++|          THEN                       # REMOVE CUBE FROM FAMILY #
05366  M01S05364.sslabel +++|            BEGIN
05367  M01S05365.sslabel +++|            SP$CODE = CUBSTAT"SUBFAM";
05368  M01S05366.sslabel +++|            SP$FAM = LBARG$FM[0];
05369  M01S05367.sslabel +++|            SP$SUB = LBARG$SB[0];
05370  M01S05368.sslabel +++|            END
05371  M01S05369.sslabel +++|
05372  M01S05370.sslabel +++|          IF LBARG$PK[0] EQ "P"
05373  M01S05371.sslabel +++|          THEN                       # REMOVE CUBE FROM POOL #
05374  M01S05372.sslabel +++|            BEGIN
05375  M01S05373.sslabel +++|            SP$CODE = CUBSTAT"SCRPOOL";
05376  M01S05374.sslabel +++|            END
05377  M01S05375.sslabel +++|
05378  M01S05376.sslabel +++|          IF LBARG$PK[0] EQ "R"
05379  M01S05377.sslabel +++|          THEN                       # REMOVE FROM RESERVED AREA #
05380  M01S05378.sslabel +++|            BEGIN
05381  M01S05379.sslabel +++|            SP$CODE = CUBSTAT"ALTCSU";
05382  M01S05380.sslabel +++|            END
05383  M01S05381.sslabel +++|
05384  M01S05382.sslabel +++|          END  # *N* OPTION #
05385  M01S05383.sslabel +++|
05386  M01S05384.sslabel +++|        ELSE
05387  M01S05385.sslabel +++|          BEGIN  # *LOC* OPTION #
05388  M01S05386.sslabel +++|          SERTYPE = S"LOC";          # LOOK FOR SPECIFIC LOCATION #
05389  M01S05387.sslabel +++|          SP$Y = Y$COORD[I];
05390  M01S05388.sslabel +++|          SP$Z = Z$COORD[I];
05391  M01S05389.sslabel +++|          END  # *LOC* OPTION #
05392  M01S05390.sslabel +++|
05393  M01S05391.sslabel +++|#
05394  M01S05392.sslabel +++|*     SEARCH THE SMMAP FOR THE SPECIFIED ENTRY.
05395  M01S05393.sslabel +++|#
05396  M01S05394.sslabel +++|
05397  M01S05395.sslabel +++|        SERCSU(SERTYPE,SP$Y,SP$Z,SP$CODE,SP$VSN,SP$FAM,SP$SUB,
05398  M01S05396.sslabel +++|          PK$CSU$ENT[0],FLAG);
05399  M01S05397.sslabel +++|        IF FLAG NQ OK
05400  M01S05398.sslabel +++|        THEN                         # NO EMPTY CUBES #
05401  M01S05399.sslabel +++|          BEGIN
05402  M01S05400.sslabel +++|          NUMDONE = I - 1;
05403  M01S05401.sslabel +++|          ERRCODE = S"NO$EMPCB";
05404  M01S05402.sslabel +++|          LBERR(ERRCODE);
05405  M01S05403.sslabel +++|          RETURN;
05406  M01S05404.sslabel +++|          END
05407  M01S05405.sslabel +++|
05408  M01S05406.sslabel +++|#
05409  M01S05407.sslabel +++|*     CHECK CUBE ASSIGNMENT.
05410  M01S05408.sslabel +++|#
05411  M01S05409.sslabel +++|
05412  M01S05410.sslabel +++|        P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05413  M01S05411.sslabel +++|        IF CM$CSND[0] NQ " "
05414  M01S05412.sslabel +++|        THEN                         # CUBE NOT EMPTY #
05415  M01S05413.sslabel +++|          BEGIN
05416  M01S05414.sslabel +++|          NUMDONE = I - 1;
05417  M01S05415.sslabel +++|          ERRCODE = S"CB$NOT$EMP";
05418  M01S05416.sslabel +++|          LBERR(ERRCODE);            # DO ERROR PROCESSING #
05419  M01S05417.sslabel +++|          RETURN;
05420  M01S05418.sslabel +++|          END
05421  M01S05419.sslabel +++|
05422  M01S05420.sslabel +++|        IF LBARG$PK[0] EQ "F"        ##
05423  M01S05421.sslabel +++|          AND CM$CODE[0] EQ CUBSTAT"SUBFAM"  ##
05424  M01S05422.sslabel +++|          AND CM$FMLYNM[0] EQ LBARG$FM[0]  ##
05425  M01S05423.sslabel +++|          AND CM$SUB[0] EQ LBARG$SB[0]
05426  M01S05424.sslabel +++|        THEN                         # REMOVE CUBE FROM FAMILY #
05427  M01S05425.sslabel +++|          BEGIN
05428  M01S05426.sslabel +++|          REQCODE = REQTYP3"RMV$CUBE";
05429  M01S05427.sslabel +++|          END
05430  M01S05428.sslabel +++|
05431  M01S05429.sslabel +++|        ELSE
05432  M01S05430.sslabel +++|          BEGIN  # REMOVE FROM POOL/RESERVED AREA #
05433  M01S05431.sslabel +++|          IF (LBARG$PK[0] EQ "P" AND CM$CODE[0] EQ CUBSTAT"SCRPOOL")
05434  M01S05432.sslabel +++|            OR (LBARG$PK[0] EQ "R" AND CM$CODE[0] EQ CUBSTAT"ALTCSU")
05435  M01S00003.msea013 +++|            OR (LBARG$PK[0] EQ "R" AND CM$CODE[0] EQ CUBSTAT"SYSUSE")
05436  M01S05433.sslabel +++|            THEN
05437  M01S05434.sslabel +++|            BEGIN
05438  M01S05435.sslabel +++|            REQCODE = REQTYP3"UPD$MAP";  # UPDATE SMMAP ENTRY #
05439  M01S05436.sslabel +++|            CM$CODE[0] = CUBSTAT"UNASGN";
05440  M01S05437.sslabel +++|            CM$FLAG1[0] = FALSE;     # CLEAR ERROR FLAG IN MAP ENTRY #
05441  M01S05438.sslabel +++|            END
05442  M01S05439.sslabel +++|
05443  M01S05440.sslabel +++|          ELSE                       # PROCESS ERROR CONDITION #
05444  M01S05441.sslabel +++|            BEGIN
05445  M01S05442.sslabel +++|            NUMDONE = I - 1;
05446  M01S05443.sslabel +++|            ERRCODE = S"UNX$CB$ASN";
05447  M01S05444.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05448  M01S05445.sslabel +++|            RETURN;
05449  M01S05446.sslabel +++|            END
05450  M01S05447.sslabel +++|
05451  M01S05448.sslabel +++|          END  # REMOVE FROM POOL/RESERVED AREA #
05452  M01S05449.sslabel +++|
05453  M01S05450.sslabel +++|#
05454  M01S05451.sslabel +++|*     ISSUE TYPE 3 CALLSS REQUEST AND DO ERROR PROCESSING IF AN
05455  M01S05452.sslabel +++|*     ERROR STATUS IS RETURNED BY EXEC.
05456  M01S05453.sslabel +++|#
05457  M01S05454.sslabel +++|
05458  M01S05455.sslabel +++|        CALL3(REQCODE,PK$CSU$ENT[0],0,0,RESP$CODE);
05459  M01S05456.sslabel +++|        IF RESP$CODE NQ RESPTYP3"OK3"
05460  M01S05457.sslabel +++|        THEN                         # PROCESS THE RESPONSE #
05461  M01S05458.sslabel +++|          BEGIN
05462  M01S05459.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP3");
05463  M01S05460.sslabel +++|          RETURN;
05464  M01S05461.sslabel +++|          END
05465  M01S05462.sslabel +++|
05466  M01S05463.sslabel +++|        MFLUSH;
05467  M01S05464.sslabel +++|        END  # PROCESS *N* CUBES #
05468  M01S05465.sslabel +++|
05469  M01S05466.sslabel +++|      RETURN;
05470  M01S05467.sslabel +++|
05471  M01S05468.sslabel +++|      END  # LBRMCUB #
05472  M01S05469.sslabel +++|
05473  M01S05470.sslabel +++|    TERM
05474  M01S05471.sslabel +++|PROC LBRMMSC;
05475  M01S05472.sslabel +++|# TITLE LBRMMSC - REMOVES CARTRIDGES FROM A FAMILY OR POOL.           #
05476  M01S05473.sslabel +++|
05477  M01S05474.sslabel +++|      BEGIN  # LBRMMSC #
05478  M01S05475.sslabel +++|
05479  M01S05476.sslabel +++|#
05480  M01S05477.sslabel +++|**    LBRMMSC - REMOVES CARTRIDGES FROM A FAMILY OR POOL.
05481  M01S05478.sslabel +++|*
05482  M01S05479.sslabel +++|*     THIS PROC LOCATES AND REMOVES EMPTY CARTRIDGES.
05483  M01S05480.sslabel +++|*
05484  M01S05481.sslabel +++|*     PROC LBRMMSC.
05485  M01S05482.sslabel +++|*
05486  M01S05483.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05487  M01S05484.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05488  M01S05485.sslabel +++|*               IN *COMTLBP*.
05489  M01S05486.sslabel +++|*               (LB$BUFP) = FWA OF A BUFFER 1101B WORDS LONG.
05490  M01S05487.sslabel +++|*
05491  M01S05488.sslabel +++|*     EXIT      CARTRIDGES REMOVED OR ERROR CONDITION.
05492  M01S05489.sslabel +++|*
05493  M01S05490.sslabel +++|*     MESSAGES  FAMILY NOT FOUND.
05494  M01S05491.sslabel +++|*               CARTRIDGE NOT EMPTY, VSN.
05495  M01S05492.sslabel +++|*
05496  M01S05493.sslabel +++|*     NOTES     PROC *LBRMMSC* OPENS THE CATALOG AND SEARCHES IT
05497  M01S05494.sslabel +++|*               FOR CARTRIDGES FREE IF NO CSN
05498  M01S05495.sslabel +++|*               IS SPECIFIED.  IF CSN IS SPECIFIED THE SMMAP IS
05499  M01S05496.sslabel +++|*               SEARCHED FOR A MATCHING CSN.  IF THE *LOST* OPTION
05500  M01S05497.sslabel +++|*               IS SPECIFIED, THE CARTRIDGE IS REMOVED FROM THE
05501  M01S05498.sslabel +++|*               FAMILY AFTER VERIFYING THAT IT IS MISSING AND
05502  M01S05499.sslabel +++|*               ASSIGNED TO THE FAMILY.  THE CARTRIDGE IS LOADED
05503  M01S05500.sslabel +++|*               AND ITS LABEL IS CHECKED.  A NEW SCRATCH LABEL IS
05504  M01S05501.sslabel +++|*               WRITTEN AND THE CARTRIDGE IS UNLOADED TO THE POOL
05505  M01S05502.sslabel +++|*               OR OUTPUT DRAWER, AS SPECIFIED BY *PT*.
05506  M01S05503.sslabel +++|#
05507  M01S05504.sslabel +++|
05508  M01S05505.sslabel +++|#
05509  M01S05506.sslabel +++|****  PROC LBRMMSC - XREF LIST BEGIN.
05510  M01S05507.sslabel +++|#
05511  M01S05508.sslabel +++|
05512  M01S05509.sslabel +++|      XREF
05513  M01S05510.sslabel +++|        BEGIN
05514  M01S05511.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 EXEC CALLSS #
05515  M01S05512.sslabel +++|        PROC CALL4;                  # ISSUES TYPE 4 EXEC CALLSS #
05516  M01S05513.sslabel +++|        PROC CCLOSE;                 # CLOSE SFMCAT #
05517  M01S05514.sslabel +++|        PROC CGETFCT;                # GETS AN FCT ENTRY #
05518  M01S05515.sslabel +++|        PROC COPEN;                  # OPENS THE CATALOG #
05519  M01S05516.sslabel +++|        PROC DLABFLD;                # DISPLAY CARTRIDGE LABEL FIELDS #
05520  M01S05517.sslabel +++|        PROC GENLAB;                 # GENERATES A NEW LABEL #
05521  M01S05518.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05522  M01S05519.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
05523  M01S05520.sslabel +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
05524  M01S05521.sslabel +++|        PROC MCLOSE;                 # CLOSE SMMAP #
05525  M01S05522.sslabel +++|        PROC MESSAGE;                # DISPLAYS MESSAGE #
05526  M01S05523.sslabel +++|        PROC MFLUSH;                 # FLUSH MAP BUFFER #
05527  M01S05524.sslabel +++|        PROC MOPEN;                  # OPEN SMMAP #
05528  M01S05525.sslabel +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
05529  M01S05526.sslabel +++|                                       OR RETURN #
05530  M01S05527.sslabel +++|        PROC SERAST;                 # SEARCH FOR EMPTY CARTRIDGES #
05531  M01S05528.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05532  M01S05529.sslabel +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
05533  M01S05530.sslabel +++|        FUNC XCOD;                   # INTEGER TO DISPLAY CONVERSION #
05534  M01S05531.sslabel +++|        END
05535  M01S05532.sslabel +++|
05536  M01S05533.sslabel +++|#
05537  M01S05534.sslabel +++|****  PROC LBRMMSC - XREF LIST END.
05538  M01S05535.sslabel +++|#
05539  M01S05536.sslabel +++|
05540  M01S05537.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
05541  M01S05538.sslabel +++|*CALL COMBFAS
05542  M01S05539.sslabel +++|*CALL COMBCMS
05543  M01S05540.sslabel +++|*CALL,COMBCMD
05544  M01S05541.sslabel +++|*CALL COMBCPR
05545  M01S05542.sslabel +++|*CALL COMBLBL
05546  M01S05543.sslabel +++|*CALL COMBMAP
05547  M01S05544.sslabel +++|*CALL COMBMCT
05548  M01S05545.sslabel +++|*CALL COMBPFP
05549  M01S05546.sslabel +++|*CALL COMSPFM
05550  M01S05547.sslabel +++|*CALL COMTERR
05551  M01S05548.sslabel +++|*CALL COMTLAB
05552  M01S05549.sslabel +++|*CALL COMTLBP
05553  M01S05550.sslabel +++|
05554  M01S05551.sslabel +++|      ITEM CART$CSN   C(20);         # CARTRIDGE SERIAL NUMBER #
05555  M01S05552.sslabel +++|      ITEM ERR$CNT    I;             # ERROR COUNT #
05556  M01S05553.sslabel +++|      ITEM FCTORD     U;             # EMPTY CARTRIDGE FCT ORDINAL #
05557  M01S05554.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05558  M01S05555.sslabel +++|      ITEM HR$ERR     I;             # HARD READ ERRORS #
05559  M01S05556.sslabel +++|      ITEM I          I;             # LOOP VARIABLE #
05560  M01S05557.sslabel +++|      ITEM LD$CNT     I;             # LOAD COUNT #
05561  M01S05558.sslabel +++|      ITEM LD$ERR     I;             # LOAD ERRORS #
05562  M01S05559.sslabel +++|      ITEM PS$CNT     I;             # PASS COUNT #
05563  M01S05560.sslabel +++|      ITEM REQCODE    I;             # REQUEST CODE #
05564  M01S05561.sslabel +++|      ITEM RESP$CODE  I;             # RESPONSE CODE #
05565  M01S05562.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SEARCH TYPE #
05566  M01S05563.sslabel +++|      ITEM SGROUP     I;             # SAVE GROUP PARAMETER #
05567  M01S05564.sslabel +++|      ITEM SLOT       I;             # DRAWER NUMBER #
05568  M01S05565.sslabel +++|      ITEM SP$CODE    I;             # SPECIFIED CODE #
05569  M01S05566.sslabel +++|      ITEM SP$Y       I;             # SPECIFIED Y #
05570  M01S05567.sslabel +++|      ITEM SP$Z       I;             # SPECIFIED Z #
05571  M01S05568.sslabel +++|      ITEM SR$ERR     I;             # SOFT READ ERRORS #
05572  M01S05569.sslabel +++|      ITEM STR$RD     I;             # STRIPES READ #
05573  M01S05570.sslabel +++|      ITEM STR$WR     I;             # STRIPES WRITTEN #
05574  M01S05571.sslabel +++|      ITEM STR$DM     I;             # STRIPES DEMARKED #
05575  M01S05572.sslabel +++|      ITEM SW$ERR     I;             # SOFT WRITE ERRORS #
05576  M01S05573.sslabel +++|
05577  M01S05574.sslabel +++|      ARRAY CMAP$NM [0:0] P(1);      # BUILD SMMAP NAME #
05578  M01S05575.sslabel +++|        BEGIN
05579  M01S05576.sslabel +++|        ITEM CMAP$NAME  C(00,00,07);  # SMMAP FILE NAME #
05580  M01S05577.sslabel +++|        ITEM CMAP$IN    C(00,00,05);  # FIRST 5 CHARACTERS #
05581  M01S05578.sslabel +++|        ITEM CMAP$ID    C(00,30,01);  # SM-ID #
05582  M01S05579.sslabel +++|        ITEM CMAP$Z     C(00,36,24) = [0];  # ZERO FILL #
05583  M01S05580.sslabel +++|        END
05584  M01S05581.sslabel +++|
05585  M01S05582.sslabel +++|      ARRAY MSFCATNM [0:0] P(1);     # CATALOG NAME #
05586  M01S05583.sslabel +++|        BEGIN
05587  M01S05584.sslabel +++|        ITEM MSFCAT$NM  C(00,00,06);  # FIRST 6 CHARACTERS #
05588  M01S05585.sslabel +++|        ITEM MSFCAT$LST C(00,36,01);  # LAST CHARACTER #
05589  M01S05586.sslabel +++|        END
05590  M01S05587.sslabel +++|
05591  M01S05588.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05592  M01S05589.sslabel +++|        BEGIN
05593  M01S05590.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD SMMAP ENTRY #
05594  M01S05591.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05595  M01S05592.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05596  M01S05593.sslabel +++|        END
05597  M01S05594.sslabel +++|
05598  M01S05595.sslabel +++|
05599  M01S05596.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(5);   # *PUT* SMMAP ENTRY #
05600  M01S05597.sslabel +++|        BEGIN
05601  M01S05598.sslabel +++|        ITEM PT$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05602  M01S05599.sslabel +++|        ITEM PT$Y       U(03,00,30);  # Y COORDINATE #
05603  M01S05600.sslabel +++|        ITEM PT$Z       U(03,30,30);  # Z COORDINATE #
05604  M01S05601.sslabel +++|        ITEM PT$GR      U(04,00,07);  # GROUP #
05605  M01S05602.sslabel +++|        ITEM PT$GRT     U(04,07,04);  # GROUP ORDINAL #
05606  M01S05603.sslabel +++|        END
05607  M01S05604.sslabel +++|
05608  M01S05605.sslabel +++|
05609  M01S05606.sslabel +++|                                               CONTROL EJECT;
05610  M01S05607.sslabel +++|
05611  M01S05608.sslabel +++|#
05612  M01S05609.sslabel +++|*     INITIALIZE POINTERS AND MISCELLANEOUS ITEMS.
05613  M01S05610.sslabel +++|#
05614  M01S05611.sslabel +++|
05615  M01S05612.sslabel +++|      PFP$WRD0[0] = 0;
05616  M01S05613.sslabel +++|      PFP$FG1[0] = TRUE;
05617  M01S05614.sslabel +++|      PFP$FG4[0] = TRUE;
05618  M01S05615.sslabel +++|      P<FCT> = LB$BUFP;
05619  M01S05616.sslabel +++|      P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05620  M01S05617.sslabel +++|      SGROUP = LBARG$GR[0];
05621  M01S05618.sslabel +++|
05622  M01S05619.sslabel +++|#
05623  M01S05620.sslabel +++|*     REMOVE EACH OF *N* CARTRIDGES FROM THE FAMILY OR POOL.
05624  M01S05621.sslabel +++|#
05625  M01S05622.sslabel +++|
05626  M01S05623.sslabel +++|      SLOWFOR I = 1 STEP 1 UNTIL LBARG$N[0]
05627  M01S05624.sslabel +++|      DO
05628  M01S05625.sslabel +++|        BEGIN  # REMOVE CARTRIDGE #
05629  M01S05626.sslabel +++|        LBARG$GR[0] = SGROUP;
05630  M01S05627.sslabel +++|
05631  M01S05628.sslabel +++|#
05632  M01S05629.sslabel +++|*     PROCESSING FOR *CSN NOT SPECIFIED*.
05633  M01S05630.sslabel +++|#
05634  M01S05631.sslabel +++|
05635  M01S05632.sslabel +++|        P<SMUMAP> = LOC(PT$CSU$ENT[0]);
05636  M01S05633.sslabel +++|        IF LBARG$C[0] EQ 0
05637  M01S05634.sslabel +++|        THEN
05638  M01S05635.sslabel +++|          BEGIN  # CSN NOT SPECIFIED #
05639  M01S05636.sslabel +++|
05640  M01S05637.sslabel +++|          IF LBARG$PK[0] EQ "F"
05641  M01S05638.sslabel +++|          THEN
05642  M01S05639.sslabel +++|            BEGIN  # SELECT CARTRIDGE FROM FAMILY #
05643  M01S05640.sslabel +++|
05644  M01S05641.sslabel +++|#
05645  M01S05642.sslabel +++|*     OPEN CATALOG AND CHECK ERROR STATUS.
05646  M01S05643.sslabel +++|#
05647  M01S05644.sslabel +++|
05648  M01S05645.sslabel +++|            PFP$FAM[0] = LBARG$FM[0];
05649  M01S05646.sslabel +++|            PFP$UI[0] = DEF$UI + LBARG$SB[0];
05650  M01S05647.sslabel +++|            SETPFP(PFP);
05651  M01S05648.sslabel +++|            IF PFP$STAT[0] NQ 0
05652  M01S05649.sslabel +++|            THEN                     # FAMILY NOT FOUND #
05653  M01S05650.sslabel +++|              BEGIN
05654  M01S05651.sslabel +++|              LBMSG$LN[0] = " FAMILY NOT FOUND.";
05655  M01S05652.sslabel +++|              MESSAGE(LBMSG[0],SYSUDF1);
05656  M01S05653.sslabel +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
05657  M01S05654.sslabel +++|              END
05658  M01S05655.sslabel +++|
05659  M01S05656.sslabel +++|            MSFCAT$NM[0] = SFMCAT;   # SET UP CATALOG NAME #
05660  M01S05657.sslabel +++|            MSFCAT$LST[0] = XCOD(LBARG$SB[0]);
05661  M01S05658.sslabel +++|            COPEN(LBARG$FM[0],LBARG$SB[0],MSFCATNM[0],"RM",TRUE,FLAG);
05662  M01S05659.sslabel +++|            IF FLAG EQ CMASTAT"NOERR"
05663  M01S05660.sslabel +++|            THEN
05664  M01S05661.sslabel +++|              BEGIN
05665  M01S05662.sslabel +++|              LOFPROC(OCT$LFN[1]);   # ADD LFN TO LIST OF FILES #
05666  M01S05663.sslabel +++|              END
05667  M01S05664.sslabel +++|
05668  M01S05665.sslabel +++|            IF FLAG NQ CMASTAT"NOERR" AND FLAG NQ CMASTAT"FOPEN"
05669  M01S05666.sslabel +++|            THEN                     # ERROR CONDITION OTHER THAN
05670  M01S05667.sslabel +++|                                       *CATALOG ALREADY OPEN* #
05671  M01S05668.sslabel +++|              BEGIN
05672  M01S05669.sslabel +++|              LBRESP(FLAG,0);
05673  M01S05670.sslabel +++|              RETURN;
05674  M01S05671.sslabel +++|              END
05675  M01S05672.sslabel +++|
05676  M01S05673.sslabel +++|
05677  M01S05674.sslabel +++|#
05678  M01S05675.sslabel +++|*     SEARCH *AST* FOR EMPTY CARTRIDGE.
05679  M01S05676.sslabel +++|#
05680  M01S05677.sslabel +++|
05681  M01S05678.sslabel +++|            SERAST(FCTORD,FLAG);
05682  M01S05679.sslabel +++|            IF FLAG NQ OK
05683  M01S05680.sslabel +++|            THEN                     # NO EMPTY CARTRIDGE FOUND #
05684  M01S05681.sslabel +++|              BEGIN
05685  M01S05682.sslabel +++|              NUMDONE = I - 1;
05686  M01S05683.sslabel +++|              ERRCODE = S"NO$EMP$CR";
05687  M01S05684.sslabel +++|              LBERR(ERRCODE);        # DO ERROR PROCESSING #
05688  M01S05685.sslabel +++|              RETURN;
05689  M01S05686.sslabel +++|              END
05690  M01S05687.sslabel +++|
05691  M01S05688.sslabel +++|#
05692  M01S05689.sslabel +++|*     GET FCT ENTRY OF EMPTY CARTRIDGE AND SET LOAD, PASS,
05693  M01S05690.sslabel +++|*     AND ERROR COUNTS FOR NEW LABEL.
05694  M01S05691.sslabel +++|#
05695  M01S05692.sslabel +++|
05696  M01S05693.sslabel +++|            CGETFCT(LBARG$FM[0],LBARG$SB[0],LBARG$SMID[0],FCTORD,
05697  M01S05694.sslabel +++|              LB$BUFP,0,FLAG);
05698  M01S05695.sslabel +++|            IF FLAG NQ OK
05699  M01S05696.sslabel +++|            THEN                     # PROCESS ERROR STATUS #
05700  M01S05697.sslabel +++|              BEGIN
05701  M01S05698.sslabel +++|              LBRESP(FLAG,0);
05702  M01S05699.sslabel +++|              RETURN;
05703  M01S05700.sslabel +++|              END
05704  M01S05701.sslabel +++|
05705  M01S05702.sslabel +++|            LD$CNT = FCT$CRLD[0];
05706  M01S05703.sslabel +++|            HR$ERR = FCT$HRDE[0];
05707  M01S05704.sslabel +++|            SW$ERR = FCT$SWRE[0];
05708  M01S05705.sslabel +++|            SR$ERR = FCT$SRDE[0];
05709  M01S05706.sslabel +++|            STR$RD = FCT$STRD[0];
05710  M01S05707.sslabel +++|            STR$WR = FCT$STWR[0];
05711  M01S05708.sslabel +++|            STR$DM = FCT$STDM[0];
05712  M01S05709.sslabel +++|
05713  M01S05710.sslabel +++|#
05714  M01S05711.sslabel +++|*     GET SMMAP ENTRY.
05715  M01S05712.sslabel +++|#
05716  M01S05713.sslabel +++|
05717  M01S05714.sslabel +++|            SERTYPE = S"LOC";
05718  M01S05715.sslabel +++|            SERCSU(SERTYPE,FCT$Y[0],FCT$Z[0],0,0,0,0, PK$CSU$ENT[0],
05719  M01S05716.sslabel +++|              FLAG);
05720  M01S05717.sslabel +++|            CCLOSE(LBARG$FM[0],LBARG$SB[0],0,FLAG);
05721  M01S05718.sslabel +++|            END  # SELECT CARTRIDGE FROM FAMILY #
05722  M01S05719.sslabel +++|
05723  M01S05720.sslabel +++|          IF LBARG$PK[0] EQ "P"
05724  M01S05721.sslabel +++|          THEN
05725  M01S05722.sslabel +++|            BEGIN  # SELECT CARTRIDGE FROM POOL #
05726  M01S05723.sslabel +++|            SERTYPE = S"CART$POOL";
05727  M01S05724.sslabel +++|            SERCSU(SERTYPE,0,0,0,0,0,0,PK$CSU$ENT[0],FLAG);
05728  M01S05725.sslabel +++|            IF FLAG NQ OK
05729  M01S05726.sslabel +++|            THEN                     # POOL EMPTY #
05730  M01S05727.sslabel +++|              BEGIN
05731  M01S05728.sslabel +++|              NUMDONE = I - 1;
05732  M01S05729.sslabel +++|              ERRCODE = S"NO$CR$PL";
05733  M01S05730.sslabel +++|              LBERR(ERRCODE);        # DO ERROR PROCESSING #
05734  M01S05731.sslabel +++|              RETURN;
05735  M01S05732.sslabel +++|              END
05736  M01S05733.sslabel +++|
05737  M01S05734.sslabel +++|            CMAP$ID[0] = LBARG$SM[0];
05738  M01S05735.sslabel +++|            CMAP$IN[0] = SMMAP;
05739  M01S05736.sslabel +++|            END  # SELECT CARTRIDGE FROM POOL #
05740  M01S05737.sslabel +++|
05741  M01S05738.sslabel +++|          END  # VSN NOT SPECIFIED #
05742  M01S05739.sslabel +++|
05743  M01S05740.sslabel +++|#
05744  M01S05741.sslabel +++|*     PROCESSING FOR *VSN SPECIFIED*.
05745  M01S05742.sslabel +++|#
05746  M01S05743.sslabel +++|
05747  M01S05744.sslabel +++|        IF LBARG$C[0] NQ 0
05748  M01S05745.sslabel +++|        THEN
05749  M01S05746.sslabel +++|          BEGIN  # VSN SPECIFIED #
05750  M01S05747.sslabel +++|          SERTYPE = S"CSN$MATCH";    # SEARCH FOR VSN #
05751  M01S05748.sslabel +++|          SERCSU(SERTYPE,0,0,0,LBARG$C[0],0,0,PK$CSU$ENT[0],FLAG);
05752  M01S05749.sslabel +++|          IF FLAG NQ 0
05753  M01S05750.sslabel +++|          THEN                       # VSN NOT FOUND #
05754  M01S05751.sslabel +++|            BEGIN
05755  M01S05752.sslabel +++|            ERRCODE = S"CSN$NOTFND";
05756  M01S05753.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05757  M01S05754.sslabel +++|            RETURN;
05758  M01S05755.sslabel +++|            END
05759  M01S05756.sslabel +++|
05760  M01S05757.sslabel +++|#
05761  M01S05758.sslabel +++|*     OPEN CATALOG AND CHECK ERROR STATUS.
05762  M01S05759.sslabel +++|#
05763  M01S05760.sslabel +++|
05764  M01S05761.sslabel +++|          IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
05765  M01S05762.sslabel +++|          THEN
05766  M01S05763.sslabel +++|            BEGIN  # OPEN CATALOG #
05767  M01S05764.sslabel +++|            PFP$FAM[0] = CM$FMLYNM[0];
05768  M01S05765.sslabel +++|            PFP$UI[0] = DEF$UI + CM$SUB[0];
05769  M01S05766.sslabel +++|            SETPFP(PFP);
05770  M01S05767.sslabel +++|            IF PFP$STAT[0] NQ 0
05771  M01S05768.sslabel +++|            THEN                     # FAMILY NOT FOUND #
05772  M01S05769.sslabel +++|              BEGIN
05773  M01S05770.sslabel +++|              LBMSG$LN[0] = " FAMILY NOT FOUND.";
05774  M01S05771.sslabel +++|              MESSAGE(LBMSG[0],SYSUDF1);
05775  M01S05772.sslabel +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
05776  M01S05773.sslabel +++|              END
05777  M01S05774.sslabel +++|
05778  M01S05775.sslabel +++|            MSFCAT$NM[0] = SFMCAT;   # SET UP CATALOG NAME #
05779  M01S05776.sslabel +++|            MSFCAT$LST[0] = XCOD(CM$SUB[0]);
05780  M01S05777.sslabel +++|            COPEN(CM$FMLYNM[0],CM$SUB[0],MSFCATNM[0],"RM",TRUE,FLAG);
05781  M01S05778.sslabel +++|            IF FLAG EQ CMASTAT"NOERR"
05782  M01S05779.sslabel +++|            THEN
05783  M01S05780.sslabel +++|              BEGIN
05784  M01S05781.sslabel +++|              LOFPROC(OCT$LFN[1]);   # ADD LFN TO LIST OF FILES #
05785  M01S05782.sslabel +++|              END
05786  M01S05783.sslabel +++|
05787  M01S05784.sslabel +++|            IF FLAG NQ CMASTAT"NOERR" AND FLAG NQ CMASTAT"FOPEN"
05788  M01S05785.sslabel +++|            THEN                     # ERROR CONDITION OTHER THAN
05789  M01S05786.sslabel +++|                                       *CATALOG ALREADY OPEN* #
05790  M01S05787.sslabel +++|              BEGIN
05791  M01S05788.sslabel +++|              LBRESP(FLAG,0);
05792  M01S05789.sslabel +++|              RETURN;
05793  M01S05790.sslabel +++|              END
05794  M01S05791.sslabel +++|
05795  M01S05792.sslabel +++|            END  # OPEN CATALOG #
05796  M01S05793.sslabel +++|
05797  M01S05794.sslabel +++|          END  # VSN SPECIFIED #
05798  M01S05795.sslabel +++|
05799  M01S05796.sslabel +++|#
05800  M01S05797.sslabel +++|*     *LOST* OPTION PROCESSING.
05801  M01S05798.sslabel +++|#
05802  M01S05799.sslabel +++|
05803  M01S05800.sslabel +++|        IF LBARG$LT[0] NQ 0
05804  M01S05801.sslabel +++|        THEN
05805  M01S05802.sslabel +++|          BEGIN  # *LOST* OPTION SPECIFIED #
05806  M01S05803.sslabel +++|          IF CM$CODE[0] NQ CUBSTAT"SUBFAM"
05807  M01S05804.sslabel +++|          THEN                       # NOT A FAMILY CARTRIDGE #
05808  M01S05805.sslabel +++|            BEGIN
05809  M01S05806.sslabel +++|            ERRCODE = S"UNX$CR$ASN";
05810  M01S05807.sslabel +++|            LBERR(ERRCODE);
05811  M01S05808.sslabel +++|            RETURN;
05812  M01S05809.sslabel +++|            END
05813  M01S05810.sslabel +++|
05814  M01S05811.sslabel +++|#
05815  M01S05812.sslabel +++|*     GET FCT ENTRY FOR SPECIFIED CARTRIDGE.
05816  M01S05813.sslabel +++|#
05817  M01S05814.sslabel +++|
05818  M01S05815.sslabel +++|          CGETFCT(CM$FMLYNM[0],CM$SUB[0],LBARG$SMID[0],CM$FCTORD[0],
05819  M01S05816.sslabel +++|            LB$BUFP,0,FLAG);
05820  M01S05817.sslabel +++|          IF FLAG NQ OK
05821  M01S05818.sslabel +++|          THEN                       # PROCESS ERROR STATUS #
05822  M01S05819.sslabel +++|            BEGIN
05823  M01S05820.sslabel +++|            LBRESP(FLAG,0);
05824  M01S05821.sslabel +++|            RETURN;
05825  M01S05822.sslabel +++|            END
05826  M01S05823.sslabel +++|
05827  M01S05824.sslabel +++|          IF NOT FCT$LCF[0]
05828  M01S05825.sslabel +++|          THEN                       # FCT *LOST* FLAG NOT SET #
05829  M01S05826.sslabel +++|            BEGIN
05830  M01S05827.sslabel +++|            ERRCODE = S"LOST$NSET";
05831  M01S05828.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05832  M01S05829.sslabel +++|            RETURN;
05833  M01S05830.sslabel +++|            END
05834  M01S05831.sslabel +++|
05835  M01S05832.sslabel +++|          REQCODE = REQTYP4"LOAD$CART";
05836  M01S05833.sslabel +++|          CALL4(REQCODE,DRD$NUM,CART$CSN,PK$Y[0],PK$Z[0],RESP$CODE);
05837  M01S05834.sslabel +++|          IF RESP$CODE EQ RESPTYP4"CELL$EMP"
05838  M01S05835.sslabel +++|          THEN
05839  M01S05836.sslabel +++|            BEGIN  # REMOVE LOST CARTRIDGE FROM FAMILY #
05840  M01S05837.sslabel +++|            REQCODE = REQTYP3"RMV$CART";
05841  M01S05838.sslabel +++|            CALL3(REQCODE,PK$CSU$ENT,0,0,RESP$CODE);
05842  M01S05839.sslabel +++|            IF RESP$CODE EQ RESPTYP3"MSC$NEMPTY"
05843  M01S05840.sslabel +++|            THEN
05844  M01S05841.sslabel +++|              BEGIN
05845  M01S05842.sslabel +++|              LBMSG$LINE[0] = " CARTRIDGE NOT EMPTY,         .";
05846  M01S05843.sslabel +++|              LBMSG$CSN[0] = CM$CSND[0];
05847  M01S05844.sslabel +++|              MESSAGE(LBMSG$BUF[0],SYSUDF1);
05848  M01S05845.sslabel +++|              TEST I;
05849  M01S05846.sslabel +++|              END
05850  M01S05847.sslabel +++|
05851  M01S05848.sslabel +++|            IF RESP$CODE NQ RESPTYP3"OK3"
05852  M01S05849.sslabel +++|            THEN
05853  M01S05850.sslabel +++|              BEGIN
05854  M01S05851.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP3");
05855  M01S05852.sslabel +++|              END
05856  M01S05853.sslabel +++|
05857  M01S05854.sslabel +++|            RETURN;
05858  M01S05855.sslabel +++|            END  # REMOVE LOST CARTRIDGE FROM FAMILY #
05859  M01S05856.sslabel +++|
05860  M01S05857.sslabel +++|          ELSE
05861  M01S05858.sslabel +++|            BEGIN  # PROCESS ERROR STATUS #
05862  M01S05859.sslabel +++|            IF RESP$CODE EQ RESPTYP4"OK4"
05863  M01S05860.sslabel +++|            THEN
05864  M01S05861.sslabel +++|              BEGIN
05865  M01S05862.sslabel +++|              REQCODE = REQTYP4"UNLD$CART";
05866  M01S05863.sslabel +++|              CALL4(REQCODE,0,0,PK$Y[0],PK$Z[0],RESP$CODE);
05867  M01S05864.sslabel +++|              IF RESP$CODE NQ RESPTYP4"OK4"
05868  M01S05865.sslabel +++|              THEN
05869  M01S05866.sslabel +++|                BEGIN
05870  M01S05867.sslabel +++|                LBRESP(RESP$CODE,TYP"TYP4");
05871  M01S05868.sslabel +++|                RETURN;
05872  M01S05869.sslabel +++|                END
05873  M01S05870.sslabel +++|
05874  M01S05871.sslabel +++|              ERRCODE = S"LOST$SET";
05875  M01S05872.sslabel +++|              LBERR(ERRCODE);
05876  M01S05873.sslabel +++|              RETURN;
05877  M01S05874.sslabel +++|              END
05878  M01S05875.sslabel +++|
05879  M01S05876.sslabel +++|            ELSE                     # PROCESS DETAIL STATUS #
05880  M01S05877.sslabel +++|              BEGIN
05881  M01S05878.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
05882  M01S05879.sslabel +++|              RETURN;
05883  M01S05880.sslabel +++|              END
05884  M01S05881.sslabel +++|
05885  M01S05882.sslabel +++|            END  # PROCESS ERROR STATUS #
05886  M01S05883.sslabel +++|
05887  M01S05884.sslabel +++|          END  # *LOST* OPTION SPECIFIED #
05888  M01S05885.sslabel +++|
05889  M01S05886.sslabel +++|#
05890  M01S05887.sslabel +++|*     CHECK CARTRIDGE ASSIGNMENT AND *PT* OPTION.
05891  M01S05888.sslabel +++|#
05892  M01S05889.sslabel +++|
05893  M01S05890.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SCRPOOL" AND LBARG$PT[0] EQ "P"
05894  M01S05891.sslabel +++|        THEN                         # IGNORE THE CARTRIDGE #
05895  M01S05892.sslabel +++|          BEGIN
05896  M01S05893.sslabel +++|          TEST I;
05897  M01S05894.sslabel +++|          END
05898  M01S05895.sslabel +++|
05899  M01S05896.sslabel +++|#
05900  M01S05897.sslabel +++|*     FIND EMPTY OUTPUT DRAWER OR CUBE IN POOL.
05901  M01S05898.sslabel +++|#
05902  M01S05899.sslabel +++|
05903  M01S05900.sslabel +++|        IF LBARG$PT[0] EQ "D"
05904  M01S05901.sslabel +++|        THEN
05905  M01S05902.sslabel +++|          BEGIN  # FIND EMPTY OUTPUT DRAWER #
05906  M01S05903.sslabel +++|          P<SMUMAP> = LOC(PT$CSU$ENT[0]);
05907  M01S05904.sslabel +++|          PT$Y[0] = 12;
05908  M01S05905.sslabel +++|          PT$Z[0] = 0;
05909  M01S05906.sslabel +++|          CM$FCTORD[0] = 0;
05910  M01S05907.sslabel +++|          CM$FMLYNM[0] = "";
05911  M01S05908.sslabel +++|          END  # FIND EMPTY OUTPUT DRAWER #
05912  M01S05909.sslabel +++|
05913  M01S05910.sslabel +++|        ELSE
05914  M01S05911.sslabel +++|          BEGIN  # FIND EMPTY CUBE IN POOL #
05915  M01S05912.sslabel +++|          SERTYPE = S"ASSIGN";
05916  M01S05913.sslabel +++|          SP$CODE = CUBSTAT"SCRPOOL";
05917  M01S05914.sslabel +++|          SERCSU(SERTYPE,0,0,SP$CODE,"","",0,PT$CSU$ENT[0],FLAG);
05918  M01S05915.sslabel +++|          IF FLAG NQ 0
05919  M01S05916.sslabel +++|          THEN                       # NO EMPTY CUBES IN FAMILY/POOL #
05920  M01S05917.sslabel +++|            BEGIN
05921  M01S05918.sslabel +++|            NUMDONE = I - 1;
05922  M01S05919.sslabel +++|            ERRCODE = S"NO$EMPCBFP";
05923  M01S05920.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05924  M01S05921.sslabel +++|            RETURN;
05925  M01S05922.sslabel +++|            END
05926  M01S05923.sslabel +++|
05927  M01S05924.sslabel +++|          END  # FIND EMPTY CUBE IN POOL #
05928  M01S05925.sslabel +++|
05929  M01S05926.sslabel +++|#
05930  M01S05927.sslabel +++|*     GET CARTRIDGE AND CHECK ITS LABEL.
05931  M01S05928.sslabel +++|#
05932  M01S05929.sslabel +++|
05933  M01S05930.sslabel +++|        REQCODE = REQTYP4"LOAD$CART";
05934  M01S05931.sslabel +++|        CALL4(REQCODE,DRD$NUM,CART$CSN,PK$Y[0],PK$Z[0],RESP$CODE);
05935  M01S05932.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"  ##
05936  M01S05933.sslabel +++|        THEN
05937  M01S05934.sslabel +++|          BEGIN  # LOAD FAILS #
05938  M01S05935.sslabel +++|          IF RESP$CODE EQ RESPTYP4"CELL$EMP"
05939  M01S05936.sslabel +++|          THEN
05940  M01S05937.sslabel +++|            BEGIN  # SET UP ERROR FLAGS #
05941  M01S05938.sslabel +++|            P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05942  M01S05939.sslabel +++|            IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
05943  M01S05940.sslabel +++|            THEN                     # SET ERROR FLAG IN SMMAP ENTRY #
05944  M01S05941.sslabel +++|              BEGIN
05945  M01S05942.sslabel +++|              CM$FLAG1[0] = TRUE;
05946  M01S05943.sslabel +++|              CALL3(REQTYP3"UPD$MAP",PK$CSU$ENT[0],0,0,FLAG);
05947  M01S05944.sslabel +++|              END
05948  M01S05945.sslabel +++|
05949  M01S05946.sslabel +++|            ELSE                     # SET LOST FLAG IN CATALOG ENTRY #
05950  M01S05947.sslabel +++|              BEGIN
05951  M01S05948.sslabel +++|              CALL3(REQTYP3"UPD$CAT",PK$CSU$ENT[0],UCF"LOST",1,FLAG);
05952  M01S05949.sslabel +++|              END
05953  M01S05950.sslabel +++|
05954  M01S05951.sslabel +++|            NUMDONE = I - 1;
05955  M01S05952.sslabel +++|            ERRCODE = S"CR$NOTFND";  # CARTRIDGE NOT FOUND #
05956  M01S05953.sslabel +++|            LBERR(ERRCODE);
05957  M01S05954.sslabel +++|            IF FLAG NQ RESPTYP3"OK3"
05958  M01S05955.sslabel +++|            THEN
05959  M01S05956.sslabel +++|              BEGIN
05960  M01S05957.sslabel +++|              LBRESP(FLAG,TYP"TYP3");
05961  M01S05958.sslabel +++|              RETURN;
05962  M01S05959.sslabel +++|              END
05963  M01S05960.sslabel +++|
05964  M01S05961.sslabel +++|            RETURN;
05965  M01S05962.sslabel +++|            END  # SET UP ERROR FLAGS #
05966  M01S05963.sslabel +++|
05967  M01S05964.sslabel +++|          ELSE                       # PROCESS RESPONSE CODE #
05968  M01S05965.sslabel +++|            BEGIN
05969  M01S05966.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
05970  M01S05967.sslabel +++|            IF RESP$CODE EQ RESPTYP4"CART$LB$ERR"  ##
05971  M01S05968.sslabel +++|              OR RESP$CODE EQ RESPTYP4"UNK$CART"
05972  M01S05969.sslabel +++|            THEN            # UNLOAD CARTRIDGE TO EXIT TRAY #
05973  M01S05970.sslabel +++|              BEGIN
05974  M01S05971.sslabel +++|              CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,SM$TY$Z,  ##
05975  M01S05972.sslabel +++|                RESP$CODE);
05976  M01S05973.sslabel +++|              END
05977  M01S05974.sslabel +++|
05978  M01S05975.sslabel +++|            RETURN;
05979  M01S05976.sslabel +++|            END
05980  M01S05977.sslabel +++|
05981  M01S05978.sslabel +++|          END  # LOAD FAILS #
05982  M01S05979.sslabel +++|
05983  M01S05980.sslabel +++|
05984  M01S05981.sslabel +++|        P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05985  M01S05982.sslabel +++|        P<LABEL$CART> = OLDLABP;
05986  M01S05983.sslabel +++|
05987  M01S05984.sslabel +++|#
05988  M01S05985.sslabel +++|*     VERIFY VSN, Y, Z IN THE LABEL.
05989  M01S05986.sslabel +++|#
05990  M01S05987.sslabel +++|
05991  M01S05988.sslabel +++|        IF LAB$CSND[0] NQ CM$CSND[0]  ##
05992  M01S05989.sslabel +++|          AND(LAB$Y[0] NQ PK$Y[0] OR LAB$Z[0] NQ PK$Z[0])
05993  M01S05990.sslabel +++|        THEN
05994  M01S05991.sslabel +++|          BEGIN  # TEST Y,Z #
05995  M01S05992.sslabel +++|          REQCODE = REQTYP4"UNLD$CART";
05996  M01S05993.sslabel +++|          CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
05997  M01S05994.sslabel +++|          IF RESP$CODE NQ RESPTYP4"OK4"
05998  M01S05995.sslabel +++|          THEN
05999  M01S05996.sslabel +++|            BEGIN
06000  M01S05997.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
06001  M01S05998.sslabel +++|            RETURN;
06002  M01S05999.sslabel +++|            END
06003  M01S06000.sslabel +++|
06004  M01S06001.sslabel +++|          ERRCODE = S"M86$HARDWR";   # MSF HARDWARE PROBLEM #
06005  M01S06002.sslabel +++|          LBERR(ERRCODE);
06006  M01S06003.sslabel +++|          RETURN;
06007  M01S06004.sslabel +++|          END  # TEST Y,Z #
06008  M01S06005.sslabel +++|
06009  M01S06006.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
06010  M01S06007.sslabel +++|        THEN                         # CARTRIDGE FROM POOL #
06011  M01S06008.sslabel +++|          BEGIN
06012  M01S06009.sslabel +++|          LD$CNT = LAB$CRLD[0];      # USE OLD LOAD/PASS/ERROR COUNTS #
06013  M01S06010.sslabel +++|          LD$ERR = LAB$LDER[0];
06014  M01S06011.sslabel +++|          SR$ERR = LAB$SRDE[0];
06015  M01S06012.sslabel +++|          SW$ERR = LAB$SWRE1[0];
06016  M01S06013.sslabel +++|          B<28,4>SW$ERR = LAB$SWRE[0];
06017  M01S06014.sslabel +++|          HR$ERR = LAB$HRDE[0];
06018  M01S06015.sslabel +++|          STR$RD = LAB$STRD[0];
06019  M01S06016.sslabel +++|          STR$WR = LAB$STWR1[0];
06020  M01S06017.sslabel +++|          B<36,24>STR$WR = LAB$STWR[0];
06021  M01S06018.sslabel +++|          STR$DM = LAB$STDM[0];
06022  M01S06019.sslabel +++|          END
06023  M01S06020.sslabel +++|
06024  M01S06021.sslabel +++|#
06025  M01S06022.sslabel +++|*     CHECK IF CSU, Y, Z, FAMILY, AND SUBFAMILY DO NOT
06026  M01S06023.sslabel +++|*     AGREE IN OLDLABEL AND SMMAP ENTRY.
06027  M01S06024.sslabel +++|#
06028  M01S06025.sslabel +++|
06029  M01S06026.sslabel +++|        IF LAB$SMID[0] NQ LBARG$SMID[0]
06030  M01S06027.sslabel +++|          OR LAB$Y[0] NQ PK$Y[0]
06031  M01S06028.sslabel +++|          OR LAB$Z[0] NQ PK$Z[0]
06032  M01S06029.sslabel +++|          OR LAB$FMLY[0] NQ CM$FMLYNM[0]
06033  M01S06030.sslabel +++|          OR LAB$SF[0] NQ CM$SUB[0]
06034  M01S06031.sslabel +++|        THEN
06035  M01S06032.sslabel +++|          BEGIN  # SET UP ERROR FLAGS #
06036  M01S06033.sslabel +++|          IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
06037  M01S06034.sslabel +++|          THEN                       # SET ERROR FLAG IN SMMAP ENTRY #
06038  M01S06035.sslabel +++|            BEGIN
06039  M01S06036.sslabel +++|            CM$FLAG1[0] = TRUE;
06040  M01S06037.sslabel +++|            CALL3(REQTYP3"UPD$MAP",PK$CSU$ENT[0],0,0,FLAG);
06041  M01S06038.sslabel +++|            END
06042  M01S06039.sslabel +++|
06043  M01S06040.sslabel +++|          ELSE                       # SET LOST FLAG IN CATALOG ENTRY #
06044  M01S06041.sslabel +++|            BEGIN
06045  M01S06042.sslabel +++|            CALL3(REQTYP3"UPD$CAT",PK$CSU$ENT[0],UCF"LOST",1,FLAG);
06046  M01S06043.sslabel +++|            END
06047  M01S06044.sslabel +++|
06048  M01S06045.sslabel +++|          IF FLAG NQ RESPTYP3"OK3"
06049  M01S06046.sslabel +++|          THEN
06050  M01S06047.sslabel +++|            BEGIN
06051  M01S06048.sslabel +++|            LBRESP(FLAG,TYP"TYP3");
06052  M01S06049.sslabel +++|            REQCODE = REQTYP4"UNLD$CART";
06053  M01S06050.sslabel +++|            CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06054  M01S06051.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06055  M01S06052.sslabel +++|            THEN
06056  M01S06053.sslabel +++|              BEGIN
06057  M01S06054.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06058  M01S06055.sslabel +++|              RETURN;
06059  M01S06056.sslabel +++|              END
06060  M01S06057.sslabel +++|
06061  M01S06058.sslabel +++|            RETURN;
06062  M01S06059.sslabel +++|            END
06063  M01S06060.sslabel +++|
06064  M01S06061.sslabel +++|          DLABFLD;
06065  M01S06062.sslabel +++|          REQCODE = REQTYP4"UNLD$CART";
06066  M01S06063.sslabel +++|          CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06067  M01S06064.sslabel +++|          IF RESP$CODE NQ RESPTYP4"OK4"
06068  M01S06065.sslabel +++|          THEN
06069  M01S06066.sslabel +++|            BEGIN
06070  M01S06067.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
06071  M01S06068.sslabel +++|            RETURN;
06072  M01S06069.sslabel +++|            END
06073  M01S06070.sslabel +++|
06074  M01S06071.sslabel +++|          ERRCODE = S"UNXP$CYZFS";
06075  M01S06072.sslabel +++|          LBERR(ERRCODE);            # DO ERROR PROCESSING #
06076  M01S06073.sslabel +++|          RETURN;
06077  M01S06074.sslabel +++|          END  # SET UP ERROR FLAGS #
06078  M01S06075.sslabel +++|
06079  M01S06076.sslabel +++|#
06080  M01S06077.sslabel +++|*     GENERATE LABEL AND UPDATE SMUMAP.
06081  M01S06078.sslabel +++|#
06082  M01S06079.sslabel +++|
06083  M01S06080.sslabel +++|        GENLAB(LABTYPE"SCR$LAB",PT$CSU$ENT[0],LD$CNT,LD$ERR,  ##
06084  M01S06081.sslabel +++|          SR$ERR,SW$ERR,HR$ERR,STR$RD,STR$WR,STR$DM);
06085  M01S06082.sslabel +++|        P<LABEL$CART> = NEWLABP;
06086  M01S06083.sslabel +++|        IF B<0,8>LAB$CSN[0] NQ X"C9"      ##
06087  M01S06084.sslabel +++|          OR B<8,8>LAB$CSN[0] NQ X"C2" OR B<16,8>LAB$CSN[0] NQ X"D4"
06088  M01S06085.sslabel +++|        THEN             # CARTRIDGE IS NOT IBM #
06089  M01S06086.sslabel +++|          BEGIN
06090  M01S06087.sslabel +++|          LAB$CCOD[0] = OTHCART;
06091  M01S06088.sslabel +++|          END
06092  M01S06089.sslabel +++|
06093  M01S06090.sslabel +++|        ELSE
06094  M01S06091.sslabel +++|          BEGIN
06095  M01S06092.sslabel +++|          LAB$CCOD[0] = IBMCART;
06096  M01S06093.sslabel +++|          END
06097  M01S06094.sslabel +++|
06098  M01S06095.sslabel +++|        LAB$CRLD[0] = LAB$CRLD[0] + 1;  # UPDATE LOAD/PASS COUNTS #
06099  M01S06096.sslabel +++|        IF LBARG$PT[0] EQ "D"
06100  M01S06097.sslabel +++|        THEN                         # CLEAR CSU, Y, Z FIELDS #
06101  M01S06098.sslabel +++|          BEGIN
06102  M01S06099.sslabel +++|          LAB$SMID[0] = 0;
06103  M01S06100.sslabel +++|          LAB$Y[0] = 12;             # SET TO CAS EXIT #
06104  M01S06101.sslabel +++|          LAB$Z[0] = 0;
06105  M01S06102.sslabel +++|          END
06106  M01S06103.sslabel +++|
06107  M01S06104.sslabel +++|        P<SMUMAP>= LOC(PK$CSU$ENT[0]);
06108  M01S06105.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
06109  M01S06106.sslabel +++|        THEN                         # ASSIGNED TO FAMILY #
06110  M01S06107.sslabel +++|          BEGIN
06111  M01S06108.sslabel +++|          REQCODE = REQTYP3"RMV$CART";
06112  M01S06109.sslabel +++|          END
06113  M01S06110.sslabel +++|
06114  M01S06111.sslabel +++|        ELSE                         # ASSIGNED TO POOL #
06115  M01S06112.sslabel +++|          BEGIN
06116  M01S06113.sslabel +++|          REQCODE = REQTYP3"UPD$MAP";
06117  M01S06114.sslabel +++|          CM$CSND[0] = " ";          # REMOVE VSN FROM SMMAP ENTRY #
06118  M01S06115.sslabel +++|          CM$CCOD[0] = " ";
06119  M01S06116.sslabel +++|          CM$FLAG1[0] = FALSE;       # CLEAR ERROR FLAG IN MAP ENTRY #
06120  M01S06117.sslabel +++|          END
06121  M01S06118.sslabel +++|
06122  M01S06119.sslabel +++|        CALL3(REQCODE,PK$CSU$ENT[0],0,0,RESP$CODE);
06123  M01S06120.sslabel +++|        IF RESP$CODE NQ RESPTYP3"OK3"
06124  M01S06121.sslabel +++|        THEN                         # FAMILY/POOL REMOVAL FAILS #
06125  M01S06122.sslabel +++|          BEGIN  # PROCESS ERROR RESPONSE #
06126  M01S06123.sslabel +++|          IF RESP$CODE NQ RESPTYP3"MSC$NEMPTY"
06127  M01S06124.sslabel +++|          THEN
06128  M01S06125.sslabel +++|            BEGIN
06129  M01S06126.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP3");
06130  M01S06127.sslabel +++|            REQCODE = REQTYP4"UNLD$CART";
06131  M01S06128.sslabel +++|            CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06132  M01S06129.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06133  M01S06130.sslabel +++|            THEN
06134  M01S06131.sslabel +++|              BEGIN
06135  M01S06132.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06136  M01S06133.sslabel +++|              RETURN;
06137  M01S06134.sslabel +++|              END
06138  M01S06135.sslabel +++|
06139  M01S06136.sslabel +++|            RETURN;
06140  M01S06137.sslabel +++|            END
06141  M01S06138.sslabel +++|
06142  M01S06139.sslabel +++|          ELSE
06143  M01S06140.sslabel +++|            BEGIN  # PROCESS CARTRIDGE NOT EMPTY #
06144  M01S06141.sslabel +++|
06145  M01S06142.sslabel +++|
06146  M01S06143.sslabel +++|#
06147  M01S06144.sslabel +++|*     UNLOAD CARTRIDGE BACK AT ORIGINAL LOCATION.
06148  M01S06145.sslabel +++|#
06149  M01S06146.sslabel +++|
06150  M01S06147.sslabel +++|            CALL4(REQTYP4"UNLD$CART",DRD$NUM,CART$CSN,PK$Y[0], ##
06151  M01S06148.sslabel +++|              PK$Z[0],RESP$CODE);
06152  M01S06149.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06153  M01S06150.sslabel +++|            THEN
06154  M01S06151.sslabel +++|              BEGIN
06155  M01S06152.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06156  M01S06153.sslabel +++|              RETURN;
06157  M01S06154.sslabel +++|              END
06158  M01S06155.sslabel +++|
06159  M01S06156.sslabel +++|            ERRCODE = S"CR$NTEMPT";
06160  M01S06157.sslabel +++|            LBERR(ERRCODE);
06161  M01S06158.sslabel +++|            END  # PROCESS CARTRIDGE NOT EMPTY #
06162  M01S06159.sslabel +++|
06163  M01S06160.sslabel +++|          END  # PROCESS ERROR RESPONSE #
06164  M01S06161.sslabel +++|
06165  M01S06162.sslabel +++|#
06166  M01S06163.sslabel +++|*     WRITE NEW LABEL AND PUT CARTRIDGE IN NEW LOCATION.
06167  M01S06164.sslabel +++|#
06168  M01S06165.sslabel +++|
06169  M01S06166.sslabel +++|        REQCODE = REQTYP4"WRT$LAB";
06170  M01S06167.sslabel +++|        CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y,PT$Z,RESP$CODE);
06171  M01S06168.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06172  M01S06169.sslabel +++|        THEN                         # *WRITE* FAILS #
06173  M01S06170.sslabel +++|          BEGIN
06174  M01S06171.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06175  M01S06172.sslabel +++|          RETURN;
06176  M01S06173.sslabel +++|          END
06177  M01S06174.sslabel +++|
06178  M01S06175.sslabel +++|        IF LBARG$PT[0] EQ "P"
06179  M01S06176.sslabel +++|        THEN
06180  M01S06177.sslabel +++|          BEGIN  # ADD CARTRIDGE TO POOL #
06181  M01S06178.sslabel +++|          REQCODE = REQTYP3"UPD$MAP";
06182  M01S06179.sslabel +++|          P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06183  M01S06180.sslabel +++|          CM$CSND[0] = LAB$CSND[0];
06184  M01S06181.sslabel +++|        CM$CCOD[0] = LAB$CCOD[0];
06185  M01S06182.sslabel +++|
06186  M01S06183.sslabel +++|#
06187  M01S06184.sslabel +++|*     ADD CARTRIDGE TO POOL.
06188  M01S06185.sslabel +++|#
06189  M01S06186.sslabel +++|
06190  M01S06187.sslabel +++|          CALL3(REQCODE,PT$CSU$ENT[0],0,0,RESP$CODE);
06191  M01S06188.sslabel +++|          IF RESP$CODE NQ RESPTYP3"OK3"
06192  M01S06189.sslabel +++|          THEN                       # MAP UPDATE FAILS #
06193  M01S06190.sslabel +++|            BEGIN
06194  M01S06191.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP3");
06195  M01S06192.sslabel +++|            RETURN;
06196  M01S06193.sslabel +++|            END
06197  M01S06194.sslabel +++|
06198  M01S06195.sslabel +++|          END  # ADD CARTRIDGE TO POOL #
06199  M01S06196.sslabel +++|
06200  M01S06197.sslabel +++|        MFLUSH;                    # FLUSH MAP BUFFER #
06201  M01S06198.sslabel +++|        END
06202  M01S06199.sslabel +++|
06203  M01S06200.sslabel +++|
06204  M01S06201.sslabel +++|      RETURN;
06205  M01S06202.sslabel +++|
06206  M01S06203.sslabel +++|      END  # LBRMMSC #
06207  M01S06204.sslabel +++|
06208  M01S06205.sslabel +++|    TERM
06209  M01S06206.sslabel +++|PROC LBRSMSC;
06210  M01S06207.sslabel +++|# TITLE LBRSMSC - RESTORES A CARTRIDGE TO THE CSU.                    #
06211  M01S06208.sslabel +++|
06212  M01S06209.sslabel +++|      BEGIN  # LBRSMSC #
06213  M01S06210.sslabel +++|
06214  M01S06211.sslabel +++|#
06215  M01S06212.sslabel +++|**    LBRSMSC - RESTORES A CARTRIDGE TO THE CSU.
06216  M01S06213.sslabel +++|*
06217  M01S06214.sslabel +++|*     THIS PROC GETS A CARTRIDGE FROM THE INPUT DRAWER AND RETURNS
06218  M01S06215.sslabel +++|*     IT TO ITS ASSIGNED LOCATION.
06219  M01S06216.sslabel +++|*
06220  M01S06217.sslabel +++|*     PROC LBRSMSC.
06221  M01S06218.sslabel +++|*
06222  M01S06219.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
06223  M01S06220.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
06224  M01S06221.sslabel +++|*               IN *COMTLBP*.
06225  M01S06222.sslabel +++|*
06226  M01S06223.sslabel +++|*     EXIT      CARTRIDGE RESTORED OR ERROR CONDITION.
06227  M01S06224.sslabel +++|*
06228  M01S06225.sslabel +++|*     NOTES     PROC *LBRSMSC* CHECKS THAT THERE IS A CARTRIDGE IN
06229  M01S06226.sslabel +++|*               AN INPUT DRAWER AS SPECIFIED, AND CALLS EXEC TO
06230  M01S06227.sslabel +++|*               BRING THE CARTRIDGE TO A DRIVE AND READ ITS LABEL.
06231  M01S06228.sslabel +++|*               IF THE LABEL HAS THE CORRECT *SM* NUMBER, AND IF
06232  M01S06229.sslabel +++|*               A SMMAP ENTRY IS FOUND WITH MATCHING VSN, FAMILY,
06233  M01S06230.sslabel +++|*               SUBFAMILY, AND COORDINATES, THEN EXEC IS CALLED TO
06234  M01S06231.sslabel +++|*               REPLACE THE CARTRIDGE AND UPDATE THE CATALOG.
06235  M01S06232.sslabel +++|#
06236  M01S06233.sslabel +++|
06237  M01S06234.sslabel +++|#
06238  M01S06235.sslabel +++|****  PROC LBRSMSC - XREF LIST BEGIN.
06239  M01S06236.sslabel +++|#
06240  M01S06237.sslabel +++|
06241  M01S06238.sslabel +++|      XREF
06242  M01S06239.sslabel +++|        BEGIN
06243  M01S06240.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
06244  M01S06241.sslabel +++|        PROC CALL4;                  # ISSUES TYPE 4 CALLSS TO EXEC #
06245  M01S06242.sslabel +++|        PROC DLABFLD;                # DISPLAY CARTRIDGE LABEL FIELDS #
06246  M01S06243.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
06247  M01S06244.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
06248  M01S06245.sslabel +++|        PROC SERCSU;                 # SEARCHES SMMAP #
06249  M01S06246.sslabel +++|        END
06250  M01S06247.sslabel +++|
06251  M01S06248.sslabel +++|#
06252  M01S06249.sslabel +++|****  PROC LBRSMSC - XREF LIST END.
06253  M01S06250.sslabel +++|#
06254  M01S06251.sslabel +++|
06255  M01S06252.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
06256  M01S06253.sslabel +++|*CALL COMBFAS
06257  M01S06254.sslabel +++|*CALL COMBCPR
06258  M01S06255.sslabel +++|*CALL COMBLBL
06259  M01S06256.sslabel +++|*CALL COMBMAP
06260  M01S06257.sslabel +++|*CALL COMTERR
06261  M01S06258.sslabel +++|*CALL COMTLAB
06262  M01S06259.sslabel +++|*CALL COMTLBP
06263  M01S06260.sslabel +++|      ITEM CART$CSN   C(20);         # CARTRIDGE SERIAL NUMBER #
06264  M01S06261.sslabel +++|      ITEM CATFLD     U;             # CATALOG FIELD #
06265  M01S06262.sslabel +++|      ITEM CATVALUE   I;             # CATALOG VALUE #
06266  M01S06263.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
06267  M01S06264.sslabel +++|      ITEM I          I;             # INDUCTION VARIABLE #
06268  M01S06265.sslabel +++|      ITEM REQCODE    I;             # REQUEST CODE #
06269  M01S06266.sslabel +++|      ITEM RESP$CODE  I;             # RESPONSE CODE #
06270  M01S06267.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SEARCH TYPE #
06271  M01S06268.sslabel +++|      ITEM SLOT       I;             # DRAWER NUMBER #
06272  M01S06269.sslabel +++|      ITEM SP$VSN     C(8);          # SPECIFIED *CSN* #
06273  M01S06270.sslabel +++|      ITEM SP$Y       I;             # SPECIFIED Y #
06274  M01S06271.sslabel +++|      ITEM SP$Z       I;             # SPECIFIED Z #
06275  M01S06272.sslabel +++|
06276  M01S06273.sslabel +++|
06277  M01S06274.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(5);   # *PUT* SMMAP ENTRY #
06278  M01S06275.sslabel +++|        BEGIN
06279  M01S06276.sslabel +++|        ITEM PT$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
06280  M01S06277.sslabel +++|        ITEM PT$Y       U(03,00,30);  # Y COORDINATE #
06281  M01S06278.sslabel +++|        ITEM PT$Z       U(03,30,30);  # Z COORDINATE #
06282  M01S06279.sslabel +++|        ITEM PT$GR      U(04,00,07);  # GROUP #
06283  M01S06280.sslabel +++|        ITEM PT$GRT     U(04,07,04);  # GROUP ORDINAL #
06284  M01S06281.sslabel +++|        END
06285  M01S06282.sslabel +++|
06286  M01S06283.sslabel +++|      BASED
06287  M01S06284.sslabel +++|      ARRAY TEMP$LAB [0:0] P(1);
06288  M01S06285.sslabel +++|        BEGIN
06289  M01S06286.sslabel +++|        ITEM TEMP$LABW  U(00,00,60);
06290  M01S06287.sslabel +++|        END
06291  M01S06288.sslabel +++|
06292  M01S06289.sslabel +++|
06293  M01S06290.sslabel +++|                                               CONTROL EJECT;
06294  M01S06291.sslabel +++|
06295  M01S06292.sslabel +++|#
06296  M01S06293.sslabel +++|*     FIND CARTRIDGE IN SPECIFIED INPUT DRAWER AND LOAD IT.
06297  M01S06294.sslabel +++|#
06298  M01S06295.sslabel +++|
06299  M01S06296.sslabel +++|      REQCODE = REQTYP4"LOAD$CART";
06300  M01S06297.sslabel +++|      PT$Y[0] = 14;
06301  M01S06298.sslabel +++|      PT$Z[0] = 0;
06302  M01S06299.sslabel +++|      CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y[0],PT$Z[0],RESP$CODE);
06303  M01S06300.sslabel +++|      IF RESP$CODE NQ RESPTYP4"OK4"   ##
06304  M01S06301.sslabel +++|      THEN                           # LOAD FAILS #
06305  M01S06302.sslabel +++|        BEGIN
06306  M01S06303.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP4");
06307  M01S06304.sslabel +++|        RETURN;
06308  M01S06305.sslabel +++|        END
06309  M01S06306.sslabel +++|
06310  M01S06307.sslabel +++|      DRD$NUM = CPR$DRD[0];          # SET UP TRANSPORT ID #
06311  M01S06308.sslabel +++|
06312  M01S06309.sslabel +++|      P<LABEL$CART>  = OLDLABP;
06313  M01S06310.sslabel +++|
06314  M01S06311.sslabel +++|#
06315  M01S06312.sslabel +++|*     COMPARE THE CSU-ID, FAMILY AND THE SUBFAMILY IN THE LABEL
06316  M01S06313.sslabel +++|*     AGAINST THE USER SPECIFIED VALUES.
06317  M01S06314.sslabel +++|#
06318  M01S06315.sslabel +++|
06319  M01S06316.sslabel +++|      IF LAB$SMID[0] NQ LBARG$SM[0]
06320  M01S06317.sslabel +++|      THEN
06321  M01S06318.sslabel +++|        BEGIN
06322  M01S06319.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06323  M01S06320.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06324  M01S06321.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06325  M01S06322.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06326  M01S06323.sslabel +++|        THEN
06327  M01S06324.sslabel +++|          BEGIN
06328  M01S06325.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06329  M01S06326.sslabel +++|          RETURN;
06330  M01S06327.sslabel +++|          END
06331  M01S06328.sslabel +++|
06332  M01S06329.sslabel +++|        ERRCODE = S"UNXP$CYZFS";
06333  M01S06330.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06334  M01S06331.sslabel +++|        RETURN;
06335  M01S06332.sslabel +++|        END
06336  M01S06333.sslabel +++|
06337  M01S06334.sslabel +++|      SERTYPE = S"CSN$MATCH";
06338  M01S06335.sslabel +++|      SP$VSN = LAB$CSND[0];          # SEARCH SMMAP FOR VSN MATCH #
06339  M01S06336.sslabel +++|      SERCSU(SERTYPE,0,0,0,SP$VSN,0,0,PT$CSU$ENT[0],FLAG);
06340  M01S06337.sslabel +++|      IF FLAG NQ OK
06341  M01S06338.sslabel +++|      THEN                           # VSN NOT FOUND #
06342  M01S06339.sslabel +++|        BEGIN
06343  M01S06340.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06344  M01S06341.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06345  M01S06342.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06346  M01S06343.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06347  M01S06344.sslabel +++|        THEN
06348  M01S06345.sslabel +++|          BEGIN
06349  M01S06346.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06350  M01S06347.sslabel +++|          RETURN;
06351  M01S06348.sslabel +++|          END
06352  M01S06349.sslabel +++|
06353  M01S06350.sslabel +++|        ERRCODE = S"CSN$NOTFND";
06354  M01S06351.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06355  M01S06352.sslabel +++|        RETURN;
06356  M01S06353.sslabel +++|        END
06357  M01S06354.sslabel +++|
06358  M01S06355.sslabel +++|      P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06359  M01S06356.sslabel +++|
06360  M01S06357.sslabel +++|#
06361  M01S06358.sslabel +++|*     CHECK TO SEE IF LABEL AND MAP ENTRY DIFFER ON
06362  M01S06359.sslabel +++|*     Y, Z, FAMILY, OR SUBFAMILY.
06363  M01S06360.sslabel +++|#
06364  M01S06361.sslabel +++|
06365  M01S06362.sslabel +++|      IF LAB$Y[0] NQ PT$Y[0]         ##
06366  M01S06363.sslabel +++|        OR LAB$Z[0] NQ PT$Z[0]       ##
06367  M01S06364.sslabel +++|        OR LAB$FMLY[0] NQ CM$FMLYNM[0]  ##
06368  M01S06365.sslabel +++|        OR LAB$SF[0] NQ CM$SUB[0]
06369  M01S06366.sslabel +++|      THEN
06370  M01S06367.sslabel +++|        BEGIN
06371  M01S06368.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06372  M01S06369.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06373  M01S06370.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06374  M01S06371.sslabel +++|        THEN
06375  M01S06372.sslabel +++|          BEGIN
06376  M01S06373.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06377  M01S06374.sslabel +++|          RETURN;
06378  M01S06375.sslabel +++|          END
06379  M01S06376.sslabel +++|
06380  M01S06377.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06381  M01S06378.sslabel +++|        ERRCODE = S"UNXP$CYZFS";
06382  M01S06379.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06383  M01S06380.sslabel +++|        RETURN;
06384  M01S06381.sslabel +++|        END
06385  M01S06382.sslabel +++|
06386  M01S06383.sslabel +++|#
06387  M01S06384.sslabel +++|*     CLEAR *LOST* FLAG IN THE CATALOG IF THE CARTRIDGE IS TO BE
06388  M01S06385.sslabel +++|*     RESTORED TO THE FAMILY OR CLEAR SMMAP ERROR FLAG IF THE
06389  M01S06386.sslabel +++|*     CARTRIDGE IS TO BE RESTORED TO THE POOL AND RETURN THE
06390  M01S06387.sslabel +++|*     CARTRIDGE TO ITS ASSIGNED LOCATION.
06391  M01S06388.sslabel +++|#
06392  M01S06389.sslabel +++|
06393  M01S06390.sslabel +++|
06394  M01S06391.sslabel +++|      IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
06395  M01S06392.sslabel +++|      THEN
06396  M01S06393.sslabel +++|        BEGIN  # CLEAR *LOST* FLAG #
06397  M01S06394.sslabel +++|        REQCODE = REQTYP3"UPD$CAT";
06398  M01S06395.sslabel +++|        CATFLD = UCF"LOST";
06399  M01S06396.sslabel +++|        CATVALUE = 0;                # CLEAR *LOST* FLAG IN CATALOG #
06400  M01S06397.sslabel +++|        CALL3(REQCODE,PT$CSU$ENT[0],CATFLD,CATVALUE,RESP$CODE);
06401  M01S06398.sslabel +++|        END  # CLEAR *LOST* FLAG #
06402  M01S06399.sslabel +++|
06403  M01S06400.sslabel +++|      ELSE
06404  M01S06401.sslabel +++|        BEGIN  # CLEAR SMMAP ERROR FLAG #
06405  M01S06402.sslabel +++|        P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06406  M01S06403.sslabel +++|        CM$FLAG1[0] = FALSE;
06407  M01S06404.sslabel +++|        REQCODE = REQTYP3"UPD$MAP";
06408  M01S06405.sslabel +++|        CALL3(REQCODE,PT$CSU$ENT[0],0,0,FLAG);
06409  M01S06406.sslabel +++|        END  # CLEAR SMMAP ERROR FLAG #
06410  M01S06407.sslabel +++|
06411  M01S06408.sslabel +++|      IF RESP$CODE NQ RESPTYP3"OK3"
06412  M01S06409.sslabel +++|      THEN                           # UPDATE CATALOG/MAP FAILED #
06413  M01S06410.sslabel +++|        BEGIN
06414  M01S06411.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06415  M01S06412.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06416  M01S06413.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06417  M01S06414.sslabel +++|        THEN
06418  M01S06415.sslabel +++|          BEGIN
06419  M01S06416.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06420  M01S06417.sslabel +++|          RETURN;
06421  M01S06418.sslabel +++|          END
06422  M01S06419.sslabel +++|
06423  M01S06420.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06424  M01S06421.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP3");
06425  M01S06422.sslabel +++|        RETURN;
06426  M01S06423.sslabel +++|        END
06427  M01S06424.sslabel +++|
06428  M01S06425.sslabel +++|#
06429  M01S06426.sslabel +++|*     PUT CARTRIDGE IN ASSIGNED LOCATION.
06430  M01S06427.sslabel +++|#
06431  M01S06428.sslabel +++|
06432  M01S06429.sslabel +++|      P<LABEL$CART> = OLDLABP;
06433  M01S06430.sslabel +++|      P<TEMP$LAB> = NEWLABP;
06434  M01S06431.sslabel +++|      SLOWFOR I = 0 STEP 1 UNTIL LABLEN-1
06435  M01S06432.sslabel +++|      DO                             # MOVE LABEL TO NEW BUFFER #
06436  M01S06433.sslabel +++|        BEGIN
06437  M01S06434.sslabel +++|        TEMP$LABW[I] = LAB$W1[I];
06438  M01S06435.sslabel +++|        END
06439  M01S06436.sslabel +++|
06440  M01S06437.sslabel +++|      REQCODE = REQTYP4"UNLD$CART";
06441  M01S06438.sslabel +++|      CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y[0],PT$Z[0],RESP$CODE);
06442  M01S06439.sslabel +++|      IF RESP$CODE NQ RESPTYP4"OK4"
06443  M01S06440.sslabel +++|      THEN                           # PUT FAILS #
06444  M01S06441.sslabel +++|        BEGIN
06445  M01S06442.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06446  M01S06443.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP4");
06447  M01S06444.sslabel +++|        END
06448  M01S06445.sslabel +++|
06449  M01S06446.sslabel +++|      RETURN;
06450  M01S06447.sslabel +++|
06451  M01S06448.sslabel +++|      END  # LBRSMSC #
06452  M01S06449.sslabel +++|
06453  M01S06450.sslabel +++|    TERM
06454  M01S06451.sslabel +++|PROC LBSTCLR;
06455  M01S06452.sslabel +++|# TITLE LBSTCLR - STORES A *CE* CARTRIDGE IN 0,0 OR 0,15.             #
06456  M01S06453.sslabel +++|
06457  M01S06454.sslabel +++|      BEGIN  # LBSTCLR #
06458  M01S06455.sslabel +++|
06459  M01S06456.sslabel +++|#
06460  M01S06457.sslabel +++|**    LBSTCLR - STORES A *CE* CARTRIDGE IN 0,0 OR 0,15.
06461  M01S06458.sslabel +++|*
06462  M01S06459.sslabel +++|*     THIS PROC STORES A SPECIAL CARTRIDGE IN ONE OF TWO SPECIFIC
06463  M01S06460.sslabel +++|*     LOCATIONS.
06464  M01S06461.sslabel +++|*
06465  M01S06462.sslabel +++|*     PROC LBSTCLR.
06466  M01S06463.sslabel +++|*
06467  M01S06464.sslabel +++|*     ENTRY       (LBARG$CC) = IF EQUAL TO 0, STORE CARTRIDGE FROM
06468  M01S06465.sslabel +++|*                              DRAWER TO LOCATION 0,0.
06469  M01S06466.sslabel +++|*                              IF EQUAL TO 15, STORE INTO 0,15.
06470  M01S06467.sslabel +++|*
06471  M01S06468.sslabel +++|*     EXIT        CARTRIDGE IN LOCATION SPECIFIED.
06472  M01S06469.sslabel +++|*
06473  M01S06470.sslabel +++|#
06474  M01S06471.sslabel +++|
06475  M01S06472.sslabel +++|      DEF LISTCON #0#;               # DO NOT DEF LIST COMDECKS #
06476  M01S06473.sslabel +++|
06477  M01S06474.sslabel +++|#
06478  M01S06475.sslabel +++|****  PROC LBSTCLR - XREF LIST BEGIN.
06479  M01S06476.sslabel +++|#
06480  M01S06477.sslabel +++|
06481  M01S06478.sslabel +++|      XREF
06482  M01S06479.sslabel +++|        BEGIN
06483  M01S06480.sslabel +++|        PROC CALL4;                  # MAKE TYPE 4 REQUESTS #
06484  M01S06481.sslabel +++|        PROC CKLAB;                  # CHECK LABEL #
06485  M01S06482.sslabel +++|        PROC GENLAB;      # GENERATE CARTRIDGE LABEL #
06486  M01S06483.sslabel +++|        PROC LBERR;                  # PROCESS ERROR RESPONSE #
06487  M01S06484.sslabel +++|        PROC LBRESP;                 # PROCESS ERROR FROM EXEC #
06488  M01S06485.sslabel +++|        PROC SERCSU;      # SEARCH SMMAP #
06489  M01S06486.sslabel +++|        END
06490  M01S06487.sslabel +++|
06491  M01S06488.sslabel +++|#
06492  M01S06489.sslabel +++|****  PROC LBSTCLR - XREF LIST END.
06493  M01S06490.sslabel +++|#
06494  M01S06491.sslabel +++|
06495  M01S06492.sslabel +++|*CALL COMBFAS
06496  M01S06493.sslabel +++|*CALL COMBCMD
06497  M01S06494.sslabel +++|*CALL COMBCPR
06498  M01S06495.sslabel +++|*CALL COMBLBL
06499  M01S06496.sslabel +++|*CALL COMBMAP
06500  M01S06497.sslabel +++|*CALL COMTERR
06501  M01S06498.sslabel +++|*CALL COMTLAB
06502  M01S06499.sslabel +++|*CALL COMTLBP
06503  M01S06500.sslabel +++|
06504  M01S06501.sslabel +++|      ITEM FLAG       U;             # RESPONSE FLAG #
06505  M01S06502.sslabel +++|      ITEM Y          U;             # Y COORDINATE #
06506  M01S06503.sslabel +++|      ITEM Z          U;             # Z COORDINATE #
06507  M01S06504.sslabel +++|      ITEM SERTYPE S:SERCH$TYPE;   # TYPE OF SERACH #
06508  M01S06505.sslabel +++|
06509  M01S06506.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(4); # *PUT* SMMAP ENTRY #
06510  M01S06507.sslabel +++|        BEGIN
06511  M01S06508.sslabel +++|        ITEM PT$MAPENT  C(00,00,30); # THREE WORD MAP ENTRY #
06512  M01S06509.sslabel +++|        ITEM PT$Y       U(03,00,30); # Y COORDINATE #
06513  M01S06510.sslabel +++|        ITEM PT$Z       U(03,30,30); # Z COORDINATE #
06514  M01S06511.sslabel +++|        END
06515  M01S06512.sslabel +++|
06516  M01S06513.sslabel +++|                                               CONTROL EJECT;
06517  M01S06514.sslabel +++|
06518  M01S06515.sslabel +++|#
06519  M01S06516.sslabel +++|*     LOAD CARTRIDGE FROM INPUT DRAWER AND READ LABEL.
06520  M01S06517.sslabel +++|#
06521  M01S06518.sslabel +++|
06522  M01S06519.sslabel +++|      Y = SM$ENT$TY;
06523  M01S06520.sslabel +++|      Z = SM$TY$Z;
06524  M01S06521.sslabel +++|      CALL4(REQTYP4"LOAD$CART",0,0,Y,Z,FLAG);
06525  M01S06522.sslabel +++|      IF FLAG NQ RESPTYP4"OK4"   ##
06526  M01S06523.sslabel +++|        AND FLAG NQ RESPTYP4"UNK$CART"  ##
06527  M01S06524.sslabel +++|        AND FLAG NQ RESPTYP4"CART$LB$ERR"
06528  M01S06525.sslabel +++|      THEN
06529  M01S06526.sslabel +++|        BEGIN
06530  M01S06527.sslabel +++|        CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,Z,FLAG);
06531  M01S06528.sslabel +++|        IF FLAG NQ RESPTYP4"OK4"
06532  M01S06529.sslabel +++|        THEN
06533  M01S06530.sslabel +++|          BEGIN
06534  M01S06531.sslabel +++|          LBRESP(FLAG,TYP"TYP4");
06535  M01S06532.sslabel +++|          END
06536  M01S06533.sslabel +++|
06537  M01S06534.sslabel +++|        ERRCODE = S"M86$HARDWR";
06538  M01S06535.sslabel +++|        LBERR(ERRCODE);
06539  M01S06536.sslabel +++|        RETURN;
06540  M01S06537.sslabel +++|        END
06541  M01S06538.sslabel +++|
06542  M01S06539.sslabel +++|#
06543  M01S06540.sslabel +++|*     SERACH SMMAP FOR DUPLICATE *CSN*.
06544  M01S06541.sslabel +++|#
06545  M01S06542.sslabel +++|
06546  M01S06543.sslabel +++|      SERTYPE = S"CSN$MATCH";
06547  M01S06544.sslabel +++|      SERCSU(SERTYPE,0,0,0,LAB$CSND[0],0,0,PT$CSU$ENT[0],FLAG);
06548  M01S06545.sslabel +++|      IF FLAG EQ 0
06549  M01S06546.sslabel +++|      THEN              # *CSN* IN MAP #
06550  M01S06547.sslabel +++|        BEGIN
06551  M01S06548.sslabel +++|        CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,SM$TY$Z,FLAG);
06552  M01S06549.sslabel +++|        IF FLAG NQ RESPTYP4"OK4"
06553  M01S06550.sslabel +++|        THEN
06554  M01S06551.sslabel +++|          BEGIN
06555  M01S06552.sslabel +++|          LBRESP(FLAG,TYP"TYP4");
06556  M01S06553.sslabel +++|          RETURN;
06557  M01S06554.sslabel +++|          END
06558  M01S06555.sslabel +++|
06559  M01S06556.sslabel +++|        ERRCODE = S"DUPL$CSN";
06560  M01S06557.sslabel +++|        LBERR(ERRCODE);
06561  M01S06558.sslabel +++|        RETURN;
06562  M01S06559.sslabel +++|        END
06563  M01S06560.sslabel +++|
06564  M01S06561.sslabel +++|
06565  M01S06562.sslabel +++|#
06566  M01S06563.sslabel +++|*     PUT CARTRIDGE BACK TO DRAWER IF LABEL IS FROM FAMILY OR POOL.
06567  M01S06564.sslabel +++|#
06568  M01S06565.sslabel +++|
06569  M01S06566.sslabel +++|      P<LABEL$CART> = OLDLABP;
06570  M01S06567.sslabel +++|      CKLAB(FLAG);
06571  M01S06568.sslabel +++|      IF FLAG EQ LABTYPE"FAM$LAB"    ##
06572  M01S06569.sslabel +++|      THEN
06573  M01S06570.sslabel +++|        BEGIN
06574  M01S06571.sslabel +++|        ERRCODE = S"GOOD$LAB";
06575  M01S06572.sslabel +++|        LBERR(ERRCODE);
06576  M01S06573.sslabel +++|        RETURN;
06577  M01S06574.sslabel +++|        END
06578  M01S06575.sslabel +++|
06579  M01S06576.sslabel +++|
06580  M01S06577.sslabel +++|#
06581  M01S06578.sslabel +++|*     GENERATE NEW LABEL.
06582  M01S06579.sslabel +++|#
06583  M01S06580.sslabel +++|
06584  M01S06581.sslabel +++|      P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06585  M01S06582.sslabel +++|      PT$Y[0] = 0;
06586  M01S06583.sslabel +++|      PT$Z[0] = LBARG$CC[0];
06587  M01S06584.sslabel +++|      CM$SUB[0] = 0;
06588  M01S06585.sslabel +++|      CM$FMLYNM[0] = " ";
06589  M01S06586.sslabel +++|      GENLAB(LABTYPE"SCR$LAB",PT$CSU$ENT[0],0,0,0,0,0,0);
06590  M01S06587.sslabel +++|      LAB$CLF[0] = 2;
06591  M01S06588.sslabel +++|      LAB$RCORD[0] = 6652;
06592  M01S06589.sslabel +++|
06593  M01S06590.sslabel +++|#
06594  M01S06591.sslabel +++|*     STORE CARTRIDGE.
06595  M01S06592.sslabel +++|#
06596  M01S06593.sslabel +++|
06597  M01S06594.sslabel +++|      CALL4(REQTYP4"WRT$LAB",0,0,PT$Y[0],PT$Z[0],FLAG);
06598  M01S06595.sslabel +++|      IF FLAG NQ RESPTYP4"OK4"
06599  M01S06596.sslabel +++|      THEN
06600  M01S06597.sslabel +++|        BEGIN
06601  M01S06598.sslabel +++|        LBRESP(FLAG,TYP"TYP4");
06602  M01S06599.sslabel +++|        RETURN;
06603  M01S06600.sslabel +++|        END
06604  M01S06601.sslabel +++|
06605  M01S06602.sslabel +++|
06606  M01S06603.sslabel +++|      END
06607  M01S06604.sslabel +++|
06608  M01S06605.sslabel +++|    TERM
06609  M01S06606.sslabel +++|PROC SERAST(FCTORD,FLAG);
06610  M01S06607.sslabel +++|# TITLE SERAST - SEARCHES THE AST FOR AN EMPTY CARTRIDGE.             #
06611  M01S06608.sslabel +++|
06612  M01S06609.sslabel +++|      BEGIN  # SERAST #
06613  M01S06610.sslabel +++|
06614  M01S06611.sslabel +++|#
06615  M01S06612.sslabel +++|**    SERAST - SEARCHES THE AST FOR AN EMPTY CARTRIDGE.
06616  M01S06613.sslabel +++|*
06617  M01S06614.sslabel +++|*     THIS PROC READS THE *AST* AND IFNDS THE FIRST EMPTY
06618  M01S06615.sslabel +++|*     CARTRIDGE IN A SPECIFIED GROUP.
06619  M01S06616.sslabel +++|*
06620  M01S06617.sslabel +++|*     PROC SERAST(FCTORD,FLAG)
06621  M01S06618.sslabel +++|*
06622  M01S06619.sslabel +++|*     ENTRY     (LB$BUFP) = FWA OF A BUFFER 1101B WORDS LONG.
06623  M01S06620.sslabel +++|*              (GROUP)  = IF GROUP = 0 THEN THE GROUP PARAMETER
06624  M01S06621.sslabel +++|*                         IS IGNORED. OTHERWISE, SELECT FROM THE
06625  M01S06622.sslabel +++|*                         SPECIFIED GROUP.
Proceed to Part 3
cdc/nos2.source/opl.opl871/deck/sslabel.002.txt ยท Last modified: by 127.0.0.1