User Tools

Site Tools


Action unknown: copypageplugin__copy
cdc:nos2.source:opl.opl871:deck:sslabel.002

Deck SSLABEL Part 002

1 Modification

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
04385  M00S04385.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04386  M00S04386.sslabel +++|        LBERR(ERRCODE);
04387  M00S04387.sslabel +++|        ERRFLAG = 1;
04388  M00S04388.sslabel +++|        RETURN;
04389  M00S04389.sslabel +++|        END
04390  M00S04390.sslabel +++|
04391  M00S04391.sslabel +++|#
04392  M00S04392.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *PT*.
04393  M00S04393.sslabel +++|#
04394  M00S04394.sslabel +++|
04395  M00S04395.sslabel +++|      IF LBARG$PT[0] NQ "P"          ##
04396  M00S04396.sslabel +++|        AND LBARG$PT[0] NQ "D"       ##
04397  M00S04397.sslabel +++|        AND LBARG$PT[0] NQ "F"       ##
04398  M00S04398.sslabel +++|        AND LBARG$PT[0] NQ "R"
04399  M00S04399.sslabel +++|      THEN
04400  M00S04400.sslabel +++|        BEGIN
04401  M00S04401.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04402  M00S04402.sslabel +++|        LBERR(ERRCODE);
04403  M00S04403.sslabel +++|        ERRFLAG = 1;
04404  M00S04404.sslabel +++|        RETURN;
04405  M00S04405.sslabel +++|        END
04406  M00S04406.sslabel +++|
04407  M00S04407.sslabel +++|#
04408  M00S04408.sslabel +++|*     CHECK IF *CN* IS SPECIFIED CORRECTLY.
04409  M00S04409.sslabel +++|#
04410  M00S04410.sslabel +++|
04411  M00S04411.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04412  M00S04412.sslabel +++|        AND (LBARG$OP[0] EQ "AS" OR LBARG$OP[0] EQ "RS" OR LBARG$OP[0]
04413  M00S04413.sslabel +++|        EQ "AB"                      ##
04414  M00S04414.sslabel +++|        OR LBARG$OP[0] EQ "RB")
04415  M00S04415.sslabel +++|      THEN
04416  M00S04416.sslabel +++|        BEGIN
04417  M00S04417.sslabel +++|        ERRCODE = S"CSN$VIOL";       # "VSN OPTION VIOLATED" #
04418  M00S04418.sslabel +++|        LBERR(ERRCODE);
04419  M00S04419.sslabel +++|        ERRFLAG = 1;
04420  M00S04420.sslabel +++|        RETURN;
04421  M00S04421.sslabel +++|        END
04422  M00S04422.sslabel +++|
04423  M00S04423.sslabel +++|#
04424  M00S04424.sslabel +++|*     CHECK IF *CM* PARAMETER IS SPECIFIED CORRECTLY.
04425  M00S04425.sslabel +++|#
04426  M00S04426.sslabel +++|
04427  M00S04427.sslabel +++|      IF (LBARG$CM[0] NQ IBMCART     ##
04428  M00S04428.sslabel +++|        AND LBARG$C[0] NQ 0)         ##
04429  M00S04429.sslabel +++|        OR LBARG$CM[0] NQ IBMCART
04430  M00S04430.sslabel +++|      THEN
04431  M00S04431.sslabel +++|        BEGIN
04432  M00S04432.sslabel +++|        ERRCODE = S"CSN$VIOL";       # *CSN* OPTION VIOLATED #
04433  M00S04433.sslabel +++|        LBERR(ERRCODE);
04434  M00S04434.sslabel +++|        ERRFLAG = 1;
04435  M00S04435.sslabel +++|        RETURN;
04436  M00S04436.sslabel +++|        END
04437  M00S04437.sslabel +++|
04438  M00S04438.sslabel +++|#
04439  M00S04439.sslabel +++|*     CHECK *N* OR *PK* IS SPECIFIED WHEN
04440  M00S04440.sslabel +++|*     *V* IS SPECIFIED.
04441  M00S04441.sslabel +++|#
04442  M00S04442.sslabel +++|
04443  M00S04443.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04444  M00S04444.sslabel +++|        AND (LBARG$N[0] NQ 1         ##
04445  M00S04445.sslabel +++|        OR LBARG$PK[0] NQ 0)
04446  M00S04446.sslabel +++|      THEN
04447  M00S04447.sslabel +++|        BEGIN
04448  M00S04448.sslabel +++|        ERRCODE = S"CSN$VIOL";       # "VSN OPTION VIOLATED" #
04449  M00S04449.sslabel +++|        LBERR(ERRCODE);
04450  M00S04450.sslabel +++|        ERRFLAG = 1;
04451  M00S04451.sslabel +++|        RETURN;
04452  M00S04452.sslabel +++|        END
04453  M00S04453.sslabel +++|
04454  M00S04454.sslabel +++|#
04455  M00S04455.sslabel +++|*     CHECK IF *PT* IS SPECIFIED TO BE *P*
04456  M00S04456.sslabel +++|*     WHEN *V* IS SPECIFIED FOR *AM*.
04457  M00S04457.sslabel +++|#
04458  M00S04458.sslabel +++|
04459  M00S04459.sslabel +++|      IF LBARG$C[0] NQ 0             ##
04460  M00S04460.sslabel +++|        AND LBARG$OP[0] EQ "AM"      ##
04461  M00S04461.sslabel +++|        AND LBARG$PT[0] EQ "P"
04462  M00S04462.sslabel +++|      THEN
04463  M00S04463.sslabel +++|        BEGIN
04464  M00S04464.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04465  M00S04465.sslabel +++|        LBERR(ERRCODE);
04466  M00S04466.sslabel +++|        ERRFLAG = 1;
04467  M00S04467.sslabel +++|        RETURN;
04468  M00S04468.sslabel +++|        END
04469  M00S04469.sslabel +++|
04470  M00S04470.sslabel +++|#
04471  M00S04471.sslabel +++|*     CHECK IF *PK* AND *PT* ARE SPECIFIED
04472  M00S04472.sslabel +++|*     CORRECTLY FOR *AM*.
04473  M00S04473.sslabel +++|#
04474  M00S04474.sslabel +++|
04475  M00S04475.sslabel +++|      IF LBARG$OP[0] EQ "AM"         ##
04476  M00S04476.sslabel +++|        AND LBARG$CC[0] EQ -1 AND ((LBARG$PK[0] NQ 0  ##
04477  M00S04477.sslabel +++|        AND LBARG$PK[0] NQ "D"       ##
04478  M00S04478.sslabel +++|        AND LBARG$PK[0] NQ "P")      ##
04479  M00S04479.sslabel +++|        OR (LBARG$PT[0] NQ "P"       ##
04480  M00S04480.sslabel +++|        AND LBARG$PT[0] NQ "F"))
04481  M00S04481.sslabel +++|      THEN
04482  M00S04482.sslabel +++|        BEGIN
04483  M00S04483.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04484  M00S04484.sslabel +++|        LBERR(ERRCODE);
04485  M00S04485.sslabel +++|        ERRFLAG = 1;
04486  M00S04486.sslabel +++|        RETURN;
04487  M00S04487.sslabel +++|        END
04488  M00S04488.sslabel +++|
04489  M00S04489.sslabel +++|#
04490  M00S04490.sslabel +++|*     CHECK IF *PK* AND *PT* ARE SPECIFIED
04491  M00S04491.sslabel +++|*     CORRECTLY FOR *RM*.
04492  M00S04492.sslabel +++|#
04493  M00S04493.sslabel +++|
04494  M00S04494.sslabel +++|      IF LBARG$OP[0] EQ "RM"         ##
04495  M00S04495.sslabel +++|        AND ((LBARG$PK[0] NQ 0       ##
04496  M00S04496.sslabel +++|        AND LBARG$PK[0] NQ "P"       ##
04497  M00S04497.sslabel +++|        AND LBARG$PK[0] NQ "F")      ##
04498  M00S04498.sslabel +++|        OR (LBARG$PT[0] NQ "D"       ##
04499  M00S04499.sslabel +++|        AND LBARG$PT[0] NQ "P"))
04500  M00S04500.sslabel +++|      THEN
04501  M00S04501.sslabel +++|        BEGIN
04502  M00S04502.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04503  M00S04503.sslabel +++|        LBERR(ERRCODE);
04504  M00S04504.sslabel +++|        ERRFLAG = 1;
04505  M00S04505.sslabel +++|        RETURN;
04506  M00S04506.sslabel +++|        END
04507  M00S04507.sslabel +++|
04508  M00S04508.sslabel +++|#
04509  M00S04509.sslabel +++|*     CHECK IF *PK* IS SPECIFIED CORRECTLY
04510  M00S04510.sslabel +++|*     FOR *RB*.
04511  M00S04511.sslabel +++|#
04512  M00S04512.sslabel +++|
04513  M00S04513.sslabel +++|      IF LBARG$OP[0] EQ "RB"         ##
04514  M00S04514.sslabel +++|        AND (LBARG$PK[0] NQ "P"      ##
04515  M00S04515.sslabel +++|        AND LBARG$PK[0] NQ "F"       ##
04516  M00S04516.sslabel +++|        AND LBARG$PK[0] NQ "R")
04517  M00S04517.sslabel +++|      THEN
04518  M00S04518.sslabel +++|        BEGIN
04519  M00S04519.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04520  M00S04520.sslabel +++|        LBERR(ERRCODE);
04521  M00S04521.sslabel +++|        ERRFLAG = 1;
04522  M00S04522.sslabel +++|        RETURN;
04523  M00S04523.sslabel +++|        END
04524  M00S04524.sslabel +++|
04525  M00S04525.sslabel +++|#
04526  M00S04526.sslabel +++|*     CHECK IF *PK* AND *PT* ARE BOTH SPECIFIED
04527  M00S04527.sslabel +++|*     TO BE *P* FOR *AM* OR *RM*.
04528  M00S04528.sslabel +++|#
04529  M00S04529.sslabel +++|
04530  M00S04530.sslabel +++|      IF (LBARG$PK[0] EQ "P"         ##
04531  M00S04531.sslabel +++|        AND LBARG$PT[0] EQ "P")      ##
04532  M00S04532.sslabel +++|        AND LBARG$CC[0] EQ -1        ##
04533  M00S04533.sslabel +++|        AND (LBARG$OP[0] EQ "AM"     ##
04534  M00S04534.sslabel +++|        OR LBARG$OP[0] EQ "RM")
04535  M00S04535.sslabel +++|      THEN
04536  M00S04536.sslabel +++|        BEGIN
04537  M00S04537.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04538  M00S04538.sslabel +++|        LBERR(ERRCODE);
04539  M00S04539.sslabel +++|        ERRFLAG = 1;
04540  M00S04540.sslabel +++|        RETURN;
04541  M00S04541.sslabel +++|        END
04542  M00S04542.sslabel +++|
04543  M00S04543.sslabel +++|#
04544  M00S04544.sslabel +++|*     CHECK IF *PT* IS SPECIFIED CORRECTLY FOR *AB*.
04545  M00S04545.sslabel +++|#
04546  M00S04546.sslabel +++|
04547  M00S04547.sslabel +++|      IF LBARG$OP[0] EQ "AB"         ##
04548  M00S04548.sslabel +++|        AND ((LBARG$PT[0] EQ "D")    ##
04549  M00S04549.sslabel +++|        OR (LBARG$N[0] NQ 1          ##
04550  M00S04550.sslabel +++|        AND LBARG$PT[0] EQ "R"))
04551  M00S04551.sslabel +++|      THEN
04552  M00S04552.sslabel +++|        BEGIN
04553  M00S04553.sslabel +++|        ERRCODE = S"PK$PT$VIOL";     # "PK,PT OPTION VIOLATED" #
04554  M00S04554.sslabel +++|        LBERR(ERRCODE);
04555  M00S04555.sslabel +++|        ERRFLAG = 1;
04556  M00S04556.sslabel +++|        RETURN;
04557  M00S04557.sslabel +++|        END
04558  M00S04558.sslabel +++|
04559  M00S04559.sslabel +++|#
04560  M00S04560.sslabel +++|*     CHECK IF *YI*, *ZI* OPTION IS SELECTED FOR *AB*.
04561  M00S04561.sslabel +++|#
04562  M00S04562.sslabel +++|
04563  M00S04563.sslabel +++|      IF LBARG$OP[0] EQ "AB"         ##
04564  M00S04564.sslabel +++|        AND LBARG$PT[0] EQ "R"       ##
04565  M00S04565.sslabel +++|        AND LBARG$YI[0] EQ -1        ##
04566  M00S04566.sslabel +++|        AND LBARG$ZI[0] EQ -1
04567  M00S04567.sslabel +++|      THEN
04568  M00S04568.sslabel +++|        BEGIN
04569  M00S04569.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04570  M00S04570.sslabel +++|        LBERR(ERRCODE);
04571  M00S04571.sslabel +++|        ERRFLAG = 1;
04572  M00S04572.sslabel +++|        RETURN;
04573  M00S04573.sslabel +++|        END
04574  M00S04574.sslabel +++|
04575  M00S04575.sslabel +++|#
04576  M00S04576.sslabel +++|*     CHECK IF *YI*, *ZI* OPTION IS IMPROPERLY USED FOR *AM*.
04577  M00S04577.sslabel +++|#
04578  M00S04578.sslabel +++|
04579  M00S04579.sslabel +++|      IF LBARG$OP[0] EQ "AM"         ##
04580  M00S04580.sslabel +++|        AND (LBARG$YI[0] NQ -1       ##
04581  M00S04581.sslabel +++|        OR LBARG$ZI[0] NQ -1)        ##
04582  M00S04582.sslabel +++|        AND LBARG$CC[0] EQ -1
04583  M00S04583.sslabel +++|      THEN
04584  M00S04584.sslabel +++|        BEGIN
04585  M00S04585.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04586  M00S04586.sslabel +++|        LBERR(ERRCODE);
04587  M00S04587.sslabel +++|        ERRFLAG = 1;
04588  M00S04588.sslabel +++|        RETURN;
04589  M00S04589.sslabel +++|        END
04590  M00S04590.sslabel +++|
04591  M00S04591.sslabel +++|
04592  M00S04592.sslabel +++|#
04593  M00S04593.sslabel +++|*     CHECK IF *LOST OPTION* IS SPECIFIED CORRECTLY.
04594  M00S04594.sslabel +++|#
04595  M00S04595.sslabel +++|
04596  M00S04596.sslabel +++|      IF LBARG$LT[0] NQ 0            ##
04597  M00S04597.sslabel +++|        AND (LBARG$OP[0] NQ "RM"     ##
04598  M00S04598.sslabel +++|        OR LBARG$C[0] EQ 0)          ##
04599  M00S04599.sslabel +++|      THEN
04600  M00S04600.sslabel +++|        BEGIN
04601  M00S04601.sslabel +++|        ERRCODE = S"LT$VIOL";        # "LT OPTION VIOLATED" #
04602  M00S04602.sslabel +++|        LBERR(ERRCODE);
04603  M00S04603.sslabel +++|        ERRFLAG = 1;
04604  M00S04604.sslabel +++|        RETURN;
04605  M00S04605.sslabel +++|        END
04606  M00S04606.sslabel +++|
04607  M00S04607.sslabel +++|#
04608  M00S04608.sslabel +++|*     CHECK IF GROUP NUMBER IS LEGAL.
04609  M00S04609.sslabel +++|#
04610  M00S04610.sslabel +++|
04611  M00S04611.sslabel +++|      IF ((LBARG$GR[0] GQ 0)         ##
04612  M00S04612.sslabel +++|        AND ((LBARG$OP[0] EQ "AS")   ##
04613  M00S04613.sslabel +++|        OR (LBARG$OP[0] EQ "AB")     ##
04614  M00S04614.sslabel +++|        OR (LBARG$OP[0] EQ "RS")     ##
04615  M00S04615.sslabel +++|        OR (LBARG$OP[0] EQ "RB")     ##
04616  M00S04616.sslabel +++|        OR (LBARG$OP[0] EQ "FX")     ##
04617  M00S04617.sslabel +++|        OR (LBARG$OP[0] EQ "RC")     ##
04618  M00S04618.sslabel +++|        OR (LBARG$OP[0] EQ "IB")))
04619  M00S04619.sslabel +++|      THEN                           # INCORRECT USE OF GROUP #
04620  M00S04620.sslabel +++|        BEGIN
04621  M00S04621.sslabel +++|        ERRCODE = S"GR$INCORR";
04622  M00S04622.sslabel +++|        LBERR(ERRCODE);
04623  M00S04623.sslabel +++|        ERRFLAG = 1;
04624  M00S04624.sslabel +++|        RETURN;
04625  M00S04625.sslabel +++|        END
04626  M00S04626.sslabel +++|
04627  M00S04627.sslabel +++|      IF LBARG$GR[0] GR 20
04628  M00S04628.sslabel +++|        OR LBARG$GR[0] EQ 0
04629  M00S04629.sslabel +++|      THEN                           # GROUP OUT OF RANGE #
04630  M00S04630.sslabel +++|        BEGIN
04631  M00S04631.sslabel +++|        ERRCODE = S"GR$RANGE";
04632  M00S04632.sslabel +++|        LBERR(ERRCODE);
04633  M00S04633.sslabel +++|        ERRFLAG = 1;
04634  M00S04634.sslabel +++|        RETURN;
04635  M00S04635.sslabel +++|        END
04636  M00S04636.sslabel +++|
04637  M00S04637.sslabel +++|
04638  M00S04638.sslabel +++|#
04639  M00S04639.sslabel +++|*     CHECK IF *PT* IS *P* AND *OP* IS *AM* WITH *GR* SPECIFIED.
04640  M00S04640.sslabel +++|#
04641  M00S04641.sslabel +++|
04642  M00S04642.sslabel +++|      IF LBARG$GR[0] GQ 0 AND LBARG$OP[0] EQ "AM" AND LBARG$PT[0] EQ "P
04643  M00S04643.sslabel +++| "
04644  M00S04644.sslabel +++|      THEN
04645  M00S04645.sslabel +++|        BEGIN
04646  M00S04646.sslabel +++|        ERRCODE = S"GR$INCORR";
04647  M00S04647.sslabel +++|        LBERR(ERRCODE);
04648  M00S04648.sslabel +++|        ERRFLAG = 1;
04649  M00S04649.sslabel +++|        RETURN;
04650  M00S04650.sslabel +++|        END
04651  M00S04651.sslabel +++|
04652  M00S04652.sslabel +++|
04653  M00S04653.sslabel +++|#
04654  M00S04654.sslabel +++|*     CHECK IF *CN* IS SPECIFIED FOR *IB* AND *FX*.
04655  M00S04655.sslabel +++|#
04656  M00S04656.sslabel +++|
04657  M00S04657.sslabel +++|      IF (LBARG$OP[0] EQ "IB"        ##
04658  M00S04658.sslabel +++|        OR LBARG$OP[0] EQ "FX")      ##
04659  M00S04659.sslabel +++|        AND LBARG$C[0] EQ 0
04660  M00S04660.sslabel +++|      THEN
04661  M00S04661.sslabel +++|        BEGIN
04662  M00S04662.sslabel +++|        ERRCODE = S"CSN$VIOL";       # VSN OPTION VIOLATED #
04663  M00S04663.sslabel +++|        LBERR(ERRCODE);
04664  M00S04664.sslabel +++|        ERRFLAG = 1;
04665  M00S04665.sslabel +++|        RETURN;
04666  M00S04666.sslabel +++|        END
04667  M00S04667.sslabel +++|
04668  M00S04668.sslabel +++|#
04669  M00S04669.sslabel +++|*     CHECK IF *ON* OR *OF* IS SPECIFIED
04670  M00S04670.sslabel +++|*     FOR ANY DIRECTIVE OTHER THAN *IB* OR *FC*.
04671  M00S04671.sslabel +++|#
04672  M00S04672.sslabel +++|
04673  M00S04673.sslabel +++|      IF (LBARG$OP[0] NQ "IB" AND LBARG$OP[0] NQ "FC")  ##
04674  M00S04674.sslabel +++|        AND(LBARG$ON[0] NQ 0 OR LBARG$OF[0] NQ 0)
04675  M00S04675.sslabel +++|      THEN
04676  M00S04676.sslabel +++|        BEGIN
04677  M00S04677.sslabel +++|        ERRCODE = S"ON$OF$VIOL";     # "ON,OFF NOT SPECIFIED CORRECTLY"
04678  M00S04678.sslabel +++|                                     #
04679  M00S04679.sslabel +++|        LBERR(ERRCODE);
04680  M00S04680.sslabel +++|        ERRFLAG = 1;
04681  M00S04681.sslabel +++|        RETURN;
04682  M00S04682.sslabel +++|        END
04683  M00S04683.sslabel +++|
04684  M00S04684.sslabel +++|#
04685  M00S04685.sslabel +++|*     CHECK IF *ON* OR *OF* ARE SPECIFIED
04686  M00S04686.sslabel +++|*     CORRECTLY FOR *IB* OR *FC*:
04687  M00S04687.sslabel +++|#
04688  M00S04688.sslabel +++|
04689  M00S04689.sslabel +++|      IF (LBARG$OP[0] EQ "IB" OR LBARG$OP[0] EQ "FC")  ##
04690  M00S04690.sslabel +++|        AND ((LBARG$ON[0] EQ 0       ##
04691  M00S04691.sslabel +++|        AND LBARG$OF[0] EQ 0)        ##
04692  M00S04692.sslabel +++|        OR (LBARG$ON[0] NQ 0         ##
04693  M00S04693.sslabel +++|        AND LBARG$OF[0] NQ 0))
04694  M00S04694.sslabel +++|      THEN
04695  M00S04695.sslabel +++|        BEGIN
04696  M00S04696.sslabel +++|        ERRCODE = S"ON$OF$VIOL";     # "ON,OFF NOT SPECIFIED CORRECTLY"
04697  M00S04697.sslabel +++|                                     #
04698  M00S04698.sslabel +++|        LBERR(ERRCODE);
04699  M00S04699.sslabel +++|        ERRFLAG = 1;
04700  M00S04700.sslabel +++|        RETURN;
04701  M00S04701.sslabel +++|        END
04702  M00S04702.sslabel +++|
04703  M00S04703.sslabel +++|#
04704  M00S04704.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *CS*.
04705  M00S04705.sslabel +++|#
04706  M00S04706.sslabel +++|
04707  M00S04707.sslabel +++|      IF LBARG$SM[0] GR "H"          ##
04708  M00S04708.sslabel +++|        OR LBARG$SM[0] LS "A"        ##
04709  M00S04709.sslabel +++|        OR LBARG$ZSM[0] NQ 0
04710  M00S04710.sslabel +++|      THEN
04711  M00S04711.sslabel +++|        BEGIN
04712  M00S04712.sslabel +++|        ERRCODE = S"ILL$SM";         # "ILLEGAL *SM* NUMBER" #
04713  M00S04713.sslabel +++|        LBERR(ERRCODE);
04714  M00S04714.sslabel +++|        ERRFLAG = 1;
04715  M00S04715.sslabel +++|        RETURN;
04716  M00S04716.sslabel +++|        END
04717  M00S04717.sslabel +++|
04718  M00S04718.sslabel +++|#
04719  M00S04719.sslabel +++|*     CHECK THE VALUE OF YS AND ZS.
04720  M00S04720.sslabel +++|#
04721  M00S04721.sslabel +++|
04722  M00S04722.sslabel +++|      IF LBARG$YI[0] GR MAX$Y        ##
04723  M00S04723.sslabel +++|        OR LBARG$YF[0] GR MAX$Y      ##
04724  M00S04724.sslabel +++|        OR LBARG$ZI[0] GR MAX$Z      ##
04725  M00S04725.sslabel +++|        OR LBARG$ZI[0] EQ Z$NO$CUBE  ##
04726  M00S04726.sslabel +++|        OR LBARG$ZF[0] GR MAX$Z      ##
04727  M00S04727.sslabel +++|        OR LBARG$ZF[0] EQ Z$NO$CUBE
04728  M00S04728.sslabel +++|      THEN
04729  M00S04729.sslabel +++|        BEGIN
04730  M00S04730.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04731  M00S04731.sslabel +++|        LBERR(ERRCODE);
04732  M00S04732.sslabel +++|        ERRFLAG = 1;
04733  M00S04733.sslabel +++|        RETURN;
04734  M00S04734.sslabel +++|        END
04735  M00S04735.sslabel +++|
04736  M00S04736.sslabel +++|#
04737  M00S04737.sslabel +++|*     CHECK IF *YI*, *ZI*, *YF* AND *ZF* ARE SPECIFIED
04738  M00S04738.sslabel +++|*     CORRECTLY.
04739  M00S04739.sslabel +++|#
04740  M00S04740.sslabel +++|
04741  M00S04741.sslabel +++|      IF (LBARG$YI[0] EQ -1          ##
04742  M00S04742.sslabel +++|        AND LBARG$YF[0] GR 0)        ##
04743  M00S04743.sslabel +++|        OR (LBARG$ZI[0] EQ -1        ##
04744  M00S04744.sslabel +++|        AND LBARG$ZF[0] GR 0)
04745  M00S04745.sslabel +++|      THEN
04746  M00S04746.sslabel +++|        BEGIN
04747  M00S04747.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04748  M00S04748.sslabel +++|        LBERR(ERRCODE);
04749  M00S04749.sslabel +++|        ERRFLAG = 1;
04750  M00S04750.sslabel +++|        RETURN;
04751  M00S04751.sslabel +++|        END
04752  M00S04752.sslabel +++|
04753  M00S04753.sslabel +++|#
04754  M00S04754.sslabel +++|*     CHECK IF *N* IS SPECIFIED ALONG WITH
04755  M00S04755.sslabel +++|*     *YI* OR *ZI*.
04756  M00S04756.sslabel +++|#
04757  M00S04757.sslabel +++|
04758  M00S04758.sslabel +++|      IF (LBARG$YI[0] GQ 0 OR LBARG$ZI[0] GQ 0) AND LBARG$N[0] GR 1
04759  M00S04759.sslabel +++|        THEN
04760  M00S04760.sslabel +++|        BEGIN
04761  M00S04761.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04762  M00S04762.sslabel +++|        LBERR(ERRCODE);
04763  M00S04763.sslabel +++|        ERRFLAG = 1;
04764  M00S04764.sslabel +++|        RETURN;
04765  M00S04765.sslabel +++|        END
04766  M00S04766.sslabel +++|
04767  M00S04767.sslabel +++|#
04768  M00S04768.sslabel +++|*     CHECK IF *YF* AND *ZF* ARE NOT
04769  M00S04769.sslabel +++|*     SPECIFIED TOGETHER.
04770  M00S04770.sslabel +++|#
04771  M00S04771.sslabel +++|
04772  M00S04772.sslabel +++|      IF (LBARG$YF[0] GQ 0           ##
04773  M00S04773.sslabel +++|        AND LBARG$ZF[0] EQ -1)       ##
04774  M00S04774.sslabel +++|        OR (LBARG$YF[0] EQ -1 AND LBARG$ZF[0] GQ 0)
04775  M00S04775.sslabel +++|      THEN
04776  M00S04776.sslabel +++|        BEGIN
04777  M00S04777.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04778  M00S04778.sslabel +++|        LBERR(ERRCODE);
04779  M00S04779.sslabel +++|        ERRFLAG = 1;
04780  M00S04780.sslabel +++|        RETURN;
04781  M00S04781.sslabel +++|        END
04782  M00S04782.sslabel +++|
04783  M00S04783.sslabel +++|#
04784  M00S04784.sslabel +++|*     CHECK IF *YF* IS GREATER THAN OR EQUAL
04785  M00S04785.sslabel +++|*     TO *YI* WHEN BOTH ARE SPECIFIED.
04786  M00S04786.sslabel +++|#
04787  M00S04787.sslabel +++|
04788  M00S04788.sslabel +++|      IF ((LBARG$YI[0] NQ -1)        ##
04789  M00S04789.sslabel +++|        AND (LBARG$YF[0] NQ -1))     ##
04790  M00S04790.sslabel +++|        AND (LBARG$YF[0] LS LBARG$YI[0])
04791  M00S04791.sslabel +++|      THEN
04792  M00S04792.sslabel +++|        BEGIN
04793  M00S04793.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04794  M00S04794.sslabel +++|        LBERR(ERRCODE);
04795  M00S04795.sslabel +++|        ERRFLAG = 1;
04796  M00S04796.sslabel +++|        RETURN;
04797  M00S04797.sslabel +++|        END
04798  M00S04798.sslabel +++|
04799  M00S04799.sslabel +++|#
04800  M00S04800.sslabel +++|*     CHECK IF *ZF* IS GREATER THAN OR EQUAL
04801  M00S04801.sslabel +++|*     TO *ZI* WHEN BOTH ARE SPECIFIED.
04802  M00S04802.sslabel +++|#
04803  M00S04803.sslabel +++|
04804  M00S04804.sslabel +++|      IF ((LBARG$ZI[0] NQ -1)        ##
04805  M00S04805.sslabel +++|        AND (LBARG$ZF[0] NQ -1) )    ##
04806  M00S04806.sslabel +++|        AND (LBARG$ZF[0] LS LBARG$ZI[0])
04807  M00S04807.sslabel +++|      THEN
04808  M00S04808.sslabel +++|        BEGIN
04809  M00S04809.sslabel +++|        ERRCODE = S"YZ$VIOL";        # "Y,Z OPTION VIOLATED" #
04810  M00S04810.sslabel +++|        LBERR(ERRCODE);
04811  M00S04811.sslabel +++|        ERRFLAG = 1;
04812  M00S04812.sslabel +++|        RETURN;
04813  M00S04813.sslabel +++|        END
04814  M00S04814.sslabel +++|
04815  M00S04815.sslabel +++|
04816  M00S04816.sslabel +++|#
04817  M00S04817.sslabel +++|*     CHECK IF *YI* AND *ZI* SPECIFY NON-EXISTANT CUBES WHILE
04818  M00S04818.sslabel +++|*     *YF* AND *ZF* ARE NOT SPECIFIED.
04819  M00S04819.sslabel +++|#
04820  M00S04820.sslabel +++|
04821  M00S04821.sslabel +++|      IF (LBARG$YF[0] EQ -1 AND LBARG$ZF[0] EQ -1)
04822  M00S04822.sslabel +++|        AND LBARG$CC[0] EQ -1
04823  M00S04823.sslabel +++|      THEN                           # SINGLE CUBE SPECIFIED #
04824  M00S04824.sslabel +++|        BEGIN
04825  M00S04825.sslabel +++|        IF (LBARG$ZI[0] EQ Z$NO$CUBE)  ##
04826  M00S04826.sslabel +++|          OR ((LBARG$ZI[0] EQ 0)     ##
04827  M00S04827.sslabel +++|          AND ((LBARG$YI[0] EQ 0)    ##
04828  M00S04828.sslabel +++|          OR (LBARG$YI[0] EQ 11)     ##
04829  M00S04829.sslabel +++|          OR (LBARG$YI[0] EQ 12)     ##
04830  M00S04830.sslabel +++|          OR (LBARG$YI[0] EQ 13)     ##
04831  M00S04831.sslabel +++|          OR (LBARG$YI[0] EQ 14)     ##
Line S04832 Modification History
M01 (Removed by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04832  M01S04832.msea013 ---|          OR (LBARG$YI[0] EQ 15)     ##
04833  M01S04833.msea013 ---|          OR (LBARG$YI[0] EQ 21)))   ##
Line S00001 Modification History
M01 (Added by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04834  M01S00001.msea013 +++|          OR (LBARG$YI[0] EQ 15)))     ##
04835  M00S04834.sslabel +++|          OR ((LBARG$ZI[0] EQ 1)     ##
04836  M00S04835.sslabel +++|          AND ((LBARG$YI[0] EQ 11)   ##
04837  M00S04836.sslabel +++|          OR (LBARG$YI[0] EQ 12)     ##
04838  M00S04837.sslabel +++|          OR (LBARG$YI[0] EQ 13)     ##
04839  M00S04838.sslabel +++|          OR (LBARG$YI[0] EQ 14)     ##
Line S04839 Modification History
M01 (Removed by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04840  M01S04839.msea013 ---|          OR (LBARG$YI[0] EQ 15)     ##
04841  M01S04840.msea013 ---|          OR (LBARG$YI[0] EQ 0)))    ##
Line S00002 Modification History
M01 (Added by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04842  M01S00002.msea013 +++|          OR (LBARG$YI[0] EQ 15)))     ##
04843  M00S04841.sslabel +++|          OR ((LBARG$ZI[0] EQ 15)    ##
04844  M00S04842.sslabel +++|          AND ((LBARG$YI[0] EQ 0)    ##
04845  M00S04843.sslabel +++|          OR (LBARG$YI[0] EQ 11)     ##
04846  M00S04844.sslabel +++|          OR (LBARG$YI[0] EQ 21)))   ##
Line S04845 Modification History
M01 (Removed by) msea013
Seq #  *Modification Id* Act 
----------------------------+
04847  M01S04845.msea013 ---|          OR ((LBARG$ZI[0] EQ 14)    ##
04848  M01S04846.msea013 ---|          AND ((LBARG$YI[0] EQ 0)    ##
04849  M01S04847.msea013 ---|          OR ( LBARG$YI[0] EQ 21)))  ##
04850  M00S04848.sslabel +++|        THEN                         # IGNORE NON-EXISTANT CUBE #
04851  M00S04849.sslabel +++|          BEGIN
04852  M00S04850.sslabel +++|          ERRCODE = S"YZ$VIOL";      # "Y,Z OPTION VIOLATED" #
04853  M00S04851.sslabel +++|          LBERR(ERRCODE);
04854  M00S04852.sslabel +++|          ERRFLAG =1;
04855  M00S04853.sslabel +++|          RETURN;
04856  M00S04854.sslabel +++|          END
04857  M00S04855.sslabel +++|
04858  M00S04856.sslabel +++|        END
04859  M00S04857.sslabel +++|
04860  M00S04858.sslabel +++|
04861  M00S04859.sslabel +++|#
04862  M00S04860.sslabel +++|*     CHECK FOR A LEGAL VALUE FOR *SB*.
04863  M00S04861.sslabel +++|#
04864  M00S04862.sslabel +++|
04865  M00S04863.sslabel +++|      IF LBARG$SB[0] LS 0 OR LBARG$SB[0] GR 7
04866  M00S04864.sslabel +++|      THEN
04867  M00S04865.sslabel +++|        BEGIN
04868  M00S04866.sslabel +++|        ERRCODE = S"ILL$SB";         # "ILLEGAL SUBFAMILY" #
04869  M00S04867.sslabel +++|        LBERR(ERRCODE);
04870  M00S04868.sslabel +++|        ERRFLAG = 1;
04871  M00S04869.sslabel +++|        END
04872  M00S04870.sslabel +++|
04873  M00S04871.sslabel +++|#
04874  M00S04872.sslabel +++|*     CHECK FOR LEGAL VALUE  OF *CC*.
04875  M00S04873.sslabel +++|#
04876  M00S04874.sslabel +++|
04877  M00S04875.sslabel +++|      IF (LBARG$CC[0] NQ -1 AND LBARG$OP NQ "AM") OR (LBARG$CC[0] NQ 0
04878  M00S04876.sslabel +++|        AND LBARG$CC[0] NQ 15 AND LBARG$CC[0] NQ -1)
04879  M00S04877.sslabel +++|      THEN
04880  M00S04878.sslabel +++|        BEGIN
04881  M00S04879.sslabel +++|        ERRCODE = S"ILL$DIRCTV";
04882  M00S04880.sslabel +++|        LBERR(ERRCODE);
04883  M00S04881.sslabel +++|        ERRFLAG = 1;
04884  M00S04882.sslabel +++|        RETURN;
04885  M00S04883.sslabel +++|        END
04886  M00S04884.sslabel +++|
04887  M00S04885.sslabel +++|#
04888  M00S04886.sslabel +++|*     CHECK FOR LEGAL *B* VALUE.
04889  M00S04887.sslabel +++|#
04890  M00S04888.sslabel +++|
04891  M00S04889.sslabel +++|      IF (LBARG$B[0] LS 0) OR (LBARG$B[0] GR 1931)  ##
04892  M00S04890.sslabel +++|        OR ((LBARG$B[0] NQ 600)      ##
04893  M00S04891.sslabel +++|        AND (LBARG$OP[0] NQ "AM"))
04894  M00S04892.sslabel +++|      THEN                           # *B* INCORRECT #
04895  M00S04893.sslabel +++|        BEGIN
04896  M00S04894.sslabel +++|        ERRCODE = S"B$INCORR";
04897  M00S04895.sslabel +++|        LBERR(ERRCODE);
04898  M00S04896.sslabel +++|        ERRFLAG = 1;
04899  M00S04897.sslabel +++|        RETURN;
04900  M00S04898.sslabel +++|        END
04901  M00S04899.sslabel +++|
04902  M00S04900.sslabel +++|
04903  M00S04901.sslabel +++|      RETURN;                        # RETURN ERRFLAG = NO ERROR #
04904  M00S04902.sslabel +++|
04905  M00S04903.sslabel +++|      END  # LBOPT #
04906  M00S04904.sslabel +++|
04907  M00S04905.sslabel +++|    TERM
04908  M00S04906.sslabel +++|PROC LBRESP((RESP$CODE),(CALLTYP));
04909  M00S04907.sslabel +++|# TITLE LBRESP - ACTS UPON RESPONSE CODES FROM EXEC.                  #
04910  M00S04908.sslabel +++|
04911  M00S04909.sslabel +++|      BEGIN  # LBRESP #
04912  M00S04910.sslabel +++|
04913  M00S04911.sslabel +++|#
04914  M00S04912.sslabel +++|**    LBRESP - ACTS UPON RESPONSE CODES FROM EXEC.
04915  M00S04913.sslabel +++|*
04916  M00S04914.sslabel +++|*     THIS PROC CHECKS THE RESPONSE CODE RETURNED BY EXEC
04917  M00S04915.sslabel +++|*     AND CALLS *LBERR* WITH THE APPROPRIATE ERROR CODE IF
04918  M00S04916.sslabel +++|*     ANY ERROR OCCURRED.
04919  M00S04917.sslabel +++|*
04920  M00S04918.sslabel +++|*     PROC LBRESP((RESP$CODE),(CALLTYP))
04921  M00S04919.sslabel +++|*
04922  M00S04920.sslabel +++|*     ENTRY    RESP$CODE,  CODE RETURNED BY EXEC IN RESPONSE
04923  M00S04921.sslabel +++|*                          TO A UCP REQUEST, OR BY A CATALOG/MAP
04924  M00S04922.sslabel +++|*                          ACCESS ROUTINE.
04925  M00S04923.sslabel +++|*              CALLTYP,    TYPE OF CALL.
04926  M00S04924.sslabel +++|*                            0 - CATALOG/MAP ACCESS.
04927  M00S04925.sslabel +++|*                            3 - TYPE 3 UCP REQUEST.
04928  M00S04926.sslabel +++|*                            4 - TYPE 4 UCP REQUEST.
04929  M00S04927.sslabel +++|*
04930  M00S04928.sslabel +++|*     EXIT     PROC *LBERR* CALLED OR RETURN DIRECTLY TO CALLING PROC.
04931  M00S04929.sslabel +++|*
04932  M00S04930.sslabel +++|*     MESSAGES SSLABEL ABNORMAL, LBRESP.
04933  M00S04931.sslabel +++|*
04934  M00S04932.sslabel +++|*     NOTES    PROC *LBRESP* CHECKS THE VALUE OF *RESP$CODE* AND CALLS
04935  M00S04933.sslabel +++|*              *LBERR* WITH THE APPROPRIATE ERROR CODE IF ANY ERRORS
04936  M00S04934.sslabel +++|*              ARE INDICATED.
04937  M00S04935.sslabel +++|#
04938  M00S04936.sslabel +++|
04939  M00S04937.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
04940  M00S04938.sslabel +++|      ITEM CALLTYP    U;             # TYPE OF CALL MADE #
04941  M00S04939.sslabel +++|
04942  M00S04940.sslabel +++|#
04943  M00S04941.sslabel +++|****  PROC LBRESP - XREF LIST BEGIN.
04944  M00S04942.sslabel +++|#
04945  M00S04943.sslabel +++|
04946  M00S04944.sslabel +++|      XREF
04947  M00S04945.sslabel +++|        BEGIN
04948  M00S04946.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
04949  M00S04947.sslabel +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
04950  M00S04948.sslabel +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
04951  M00S04949.sslabel +++|                                       OR RETURN #
04952  M00S04950.sslabel +++|        END
04953  M00S04951.sslabel +++|
04954  M00S04952.sslabel +++|#
04955  M00S04953.sslabel +++|****  PROC LBRESP - XREF LIST END.
04956  M00S04954.sslabel +++|#
04957  M00S04955.sslabel +++|
04958  M00S04956.sslabel +++|      DEF PROCNAME #"LBRESP."#;      # PROC NAME #
04959  M00S04957.sslabel +++|
04960  M00S04958.sslabel +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
04961  M00S04959.sslabel +++|*CALL COMBFAS
04962  M00S04960.sslabel +++|*CALL COMBCMS
04963  M00S04961.sslabel +++|*CALL COMBCPR
04964  M00S04962.sslabel +++|*CALL COMTERR
04965  M00S04963.sslabel +++|*CALL COMTLAB
04966  M00S04964.sslabel +++|
04967  M00S04965.sslabel +++|#
04968  M00S04966.sslabel +++|*     STATUS SWITCH FOR THE RESPONSE CODES
04969  M00S04967.sslabel +++|*     RETURNED BY EXEC IN RESPONSE TO TYPE 3
04970  M00S04968.sslabel +++|*     CALLSS REQUEST.
04971  M00S04969.sslabel +++|#
04972  M00S04970.sslabel +++|
04973  M00S04971.sslabel +++|      SWITCH RESP$ACT3:RESPTYP3      # ACTION ON RESPONSE TO TYPE 3
04974  M00S04972.sslabel +++|                                       REQUEST #
04975  M00S04973.sslabel +++|               OK3$ACT:OK3,          # REQUEST PROCESSED #
04976  M00S04974.sslabel +++|            INTLCK$ACT:C$M$INTLCK,   # CATALOG/MAP INTERLOCKED #
04977  M00S04975.sslabel +++|             NOPEN$ACT:C$M$NOPEN,    # CATALOG/MAP NOT OPEN #
04978  M00S04976.sslabel +++|             SUBEX$ACT:SUB$CAT$EX,   # SUB CATALOG ALREADY EXISTS #
04979  M00S04977.sslabel +++|             NOSUB$ACT:NO$SUB$CAT,   # NO SUCH SUBCATALOG #
04980  M00S04978.sslabel +++|            PFPROB$ACT: PF$PROB;     # PERMANENT FILE PROBLEM #
04981  M00S04979.sslabel +++|
04982  M00S04980.sslabel +++|#
04983  M00S04981.sslabel +++|*     STATUS SWITCH FOR THE RESPONSE RETURNED BY
04984  M00S04982.sslabel +++|*     EXEC TO A TYPE 4 CALLSS REQUEST.  ONLY THE
04985  M00S04983.sslabel +++|*     APPLICABLE RESPONSE CODES ARE LISTED HERE.
04986  M00S04984.sslabel +++|#
04987  M00S04985.sslabel +++|
04988  M00S04986.sslabel +++|      SWITCH RESP$ACT4:RESPTYP4      # ACTION ON RESPONSE TO TYPE 4
04989  M00S04987.sslabel +++|                                       REQUEST #
04990  M00S04988.sslabel +++|               OK4$ACT:OK4,          # REQUEST PROCESSED #
04991  M00S04989.sslabel +++|            CLBERR$ACT:CART$LB$ERR,  # CARTRIDGE LABEL ERROR #
04992  M00S04990.sslabel +++|            CUSERR$ACT:CSN$IN$USE,      # CARTRIDGE IN USE #
04993  M00S04991.sslabel +++|            SMOFF$ACT:SMA$OFF,          # STORAGE MODULE OFF #
04994  M00S04992.sslabel +++|            CEMERR$ACT:CELL$EMP,
04995  M00S04993.sslabel +++|            CFLERR$ACT:CELL$FULL,
04996  M00S04994.sslabel +++|            UNKERR$ACT:UNK$CART,     # UNKNOWN LABEL ERROR #
04997  M00S04995.sslabel +++|            URDERR$ACT:UN$RD$ERR,    # UNRECOVERABLE READ ERROR #
04998  M00S04996.sslabel +++|            UWTERR$ACT:UN$WRT$ERR,   # UNRECOVERABLE WRITE ERROR #
04999  M00S04997.sslabel +++|            MHDERR$ACT:M86$HDW$PR;   # M86 HARDWARE PROBLEM #
05000  M00S04998.sslabel +++|
05001  M00S04999.sslabel +++|                                               CONTROL EJECT;
05002  M00S05000.sslabel +++|
05003  M00S05001.sslabel +++|#
05004  M00S05002.sslabel +++|*     DO PROCESSING APPROPRIATE TO TYPE OF RESPONSE CODE.
05005  M00S05003.sslabel +++|#
05006  M00S05004.sslabel +++|
05007  M00S05005.sslabel +++|      IF CALLTYP EQ TYP"TYP3"
05008  M00S05006.sslabel +++|      THEN                           # TYPE 3 UCP REQUEST #
05009  M00S05007.sslabel +++|        BEGIN
05010  M00S05008.sslabel +++|        GOTO RESP$ACT3[RESP$CODE];
05011  M00S05009.sslabel +++|        END
05012  M00S05010.sslabel +++|
05013  M00S05011.sslabel +++|      IF CALLTYP EQ TYP"TYP4"
05014  M00S05012.sslabel +++|      THEN                           # TYPE 4 UCP REQUEST #
05015  M00S05013.sslabel +++|        BEGIN
05016  M00S05014.sslabel +++|        GOTO RESP$ACT4[RESP$CODE];
05017  M00S05015.sslabel +++|        END
05018  M00S05016.sslabel +++|
05019  M00S05017.sslabel +++|      IF CALLTYP NQ 0
05020  M00S05018.sslabel +++|      THEN                           # ILLEGAL CALL TYPE #
05021  M00S05019.sslabel +++|        BEGIN
05022  M00S05020.sslabel +++|        LBMSG$PROC[0] = PROCNAME;
05023  M00S05021.sslabel +++|        MESSAGE(LBMSG[0],SYSUDF1);
05024  M00S05022.sslabel +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
05025  M00S05023.sslabel +++|        END
05026  M00S05024.sslabel +++|
05027  M00S05025.sslabel +++|#
05028  M00S05026.sslabel +++|*     ERROR PROCESSING FOR CATALOG/MAP ACCESS.
05029  M00S05027.sslabel +++|#
05030  M00S05028.sslabel +++|
05031  M00S05029.sslabel +++|      IF RESP$CODE EQ CMASTAT"INTLK"
05032  M00S05030.sslabel +++|      THEN                           # CATALOG/MAP INTERLOCKED #
05033  M00S05031.sslabel +++|        BEGIN
05034  M00S05032.sslabel +++|        ERRCODE = S"CAT$MAP$LK";
05035  M00S05033.sslabel +++|        LBERR(ERRCODE);
05036  M00S05034.sslabel +++|        RETURN;
05037  M00S05035.sslabel +++|        END
05038  M00S05036.sslabel +++|
05039  M00S05037.sslabel +++|      IF RESP$CODE EQ CMASTAT"ATTERR"
05040  M00S05038.sslabel +++|      THEN                           # PROCESS ATTACH ERROR #
05041  M00S05039.sslabel +++|        BEGIN
05042  M00S05040.sslabel +++|        ERRCODE = S"PF$PROB";
05043  M00S05041.sslabel +++|        LBERR(ERRCODE);
05044  M00S05042.sslabel +++|        RETURN;
05045  M00S05043.sslabel +++|        END
05046  M00S05044.sslabel +++|
05047  M00S05045.sslabel +++|      IF RESP$CODE EQ CMASTAT"NOSUBCAT"
05048  M00S05046.sslabel +++|      THEN                           # NO SUCH SUBCATALOG #
05049  M00S05047.sslabel +++|        BEGIN
05050  M00S05048.sslabel +++|        ERRCODE = S"NO$CAT$MAP";
05051  M00S05049.sslabel +++|        LBERR(ERRCODE);
05052  M00S05050.sslabel +++|        RETURN;
05053  M00S05051.sslabel +++|        END
05054  M00S05052.sslabel +++|
05055  M00S05053.sslabel +++|      IF RESP$CODE NQ CMASTAT"NOERR" AND RESP$CODE NQ CMASTAT"FOPEN"
05056  M00S05054.sslabel +++|        THEN                         # ERROR OTHER THAN *CATALOG
05057  M00S05055.sslabel +++|                                       ALREADY OPEN* #
05058  M00S05056.sslabel +++|        BEGIN
05059  M00S05057.sslabel +++|        LBMSG$PROC[0] = PROCNAME;
05060  M00S05058.sslabel +++|        MESSAGE(LBMSG[0],SYSUDF1);
05061  M00S05059.sslabel +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
05062  M00S05060.sslabel +++|        END
05063  M00S05061.sslabel +++|
05064  M00S05062.sslabel +++|#
05065  M00S05063.sslabel +++|*     ERROR PROCESSING FOR TYPE 3 REQUESTS TO EXEC.
05066  M00S05064.sslabel +++|#
05067  M00S05065.sslabel +++|
05068  M00S05066.sslabel +++|OK3$ACT:                             # NO ERROR #
05069  M00S05067.sslabel +++|      RETURN;
05070  M00S05068.sslabel +++|
05071  M00S05069.sslabel +++|INTLCK$ACT:                          # CATALOG/MAP INTERLOCKED #
05072  M00S05070.sslabel +++|      ERRCODE = S"CAT$MAP$LK";
05073  M00S05071.sslabel +++|      LBERR(ERRCODE);
05074  M00S05072.sslabel +++|      RETURN;
05075  M00S05073.sslabel +++|
05076  M00S05074.sslabel +++|NOPEN$ACT:                           # CATALOG/MAP NOT OPEN #
05077  M00S05075.sslabel +++|      ERRCODE = S"NOT$OPEN";
05078  M00S05076.sslabel +++|      LBERR(ERRCODE);
05079  M00S05077.sslabel +++|      RETURN;
05080  M00S05078.sslabel +++|
05081  M00S05079.sslabel +++|SUBEX$ACT:                           # SUB CATALOG ALREADY EXISTS #
05082  M00S05080.sslabel +++|      ERRCODE = S"SM$DEFND";
05083  M00S05081.sslabel +++|      LBERR(ERRCODE);
05084  M00S05082.sslabel +++|      RETURN;
05085  M00S05083.sslabel +++|
05086  M00S05084.sslabel +++|NOSUB$ACT:                           # NO SUCH SUBCATALOG #
05087  M00S05085.sslabel +++|      ERRCODE = S"NO$CAT$MAP";
05088  M00S05086.sslabel +++|      LBERR(ERRCODE);
05089  M00S05087.sslabel +++|      RETURN;
05090  M00S05088.sslabel +++|
05091  M00S05089.sslabel +++|PFPROB$ACT:                          # PERMANENT FILE PROBLEM #
05092  M00S05090.sslabel +++|      ERRCODE = S"PF$PROB";
05093  M00S05091.sslabel +++|      LBERR(ERRCODE);
05094  M00S05092.sslabel +++|      RETURN;
05095  M00S05093.sslabel +++|
05096  M00S05094.sslabel +++|#
05097  M00S05095.sslabel +++|*     ERROR PROCESSING FOR TYPE 4 REQUESTS TO EXEC.
05098  M00S05096.sslabel +++|#
05099  M00S05097.sslabel +++|
05100  M00S05098.sslabel +++|OK4$ACT:                             # NO ERRORS #
05101  M00S05099.sslabel +++|      RETURN;
05102  M00S05100.sslabel +++|
05103  M00S05101.sslabel +++|CLBERR$ACT:                          # CARTRIDGE LABEL ERROR #
05104  M00S05102.sslabel +++|
05105  M00S05103.sslabel +++|      ERRCODE = S"LAB$ERR";
05106  M00S05104.sslabel +++|      LBERR(ERRCODE);
05107  M00S05105.sslabel +++|      RETURN;
05108  M00S05106.sslabel +++|
05109  M00S05107.sslabel +++|
05110  M00S05108.sslabel +++|CUSERR$ACT:
05111  M00S05109.sslabel +++|
05112  M00S05110.sslabel +++|      ERRCODE = S"CAR$IN$USE";
05113  M00S05111.sslabel +++|      LBERR(ERRCODE);
05114  M00S05112.sslabel +++|      RETURN;
05115  M00S05113.sslabel +++|
05116  M00S05114.sslabel +++|
05117  M00S05115.sslabel +++|CEMERR$ACT:                          # CARTRIDGE NOT FOUND #
05118  M00S05116.sslabel +++|
05119  M00S05117.sslabel +++|      ERRCODE = S"CR$NOTFND";
05120  M00S05118.sslabel +++|      LBERR(ERRCODE);
05121  M00S05119.sslabel +++|      RETURN;
05122  M00S05120.sslabel +++|
05123  M00S05121.sslabel +++|CFLERR$ACT:                          # CELL IS FULL #
05124  M00S05122.sslabel +++|
05125  M00S05123.sslabel +++|      ERRCODE = S"CELL$FULL";
05126  M00S05124.sslabel +++|      LBERR(ERRCODE);
05127  M00S05125.sslabel +++|      RETURN;
05128  M00S05126.sslabel +++|
05129  M00S05127.sslabel +++|
05130  M00S05128.sslabel +++|UNKERR$ACT:                          # UNKNOWN LABEL ERROR #
05131  M00S05129.sslabel +++|
05132  M00S05130.sslabel +++|      ERRCODE = S"LAB$ERR";
05133  M00S05131.sslabel +++|      LBERR(ERRCODE);
05134  M00S05132.sslabel +++|      RETURN;
05135  M00S05133.sslabel +++|
05136  M00S05134.sslabel +++|
05137  M00S05135.sslabel +++|URDERR$ACT:                          # UNRECOVERABLE READ ERROR #
05138  M00S05136.sslabel +++|      ERRCODE = S"UNRECV$RD";
05139  M00S05137.sslabel +++|      LBERR(ERRCODE);
05140  M00S05138.sslabel +++|      RETURN;
05141  M00S05139.sslabel +++|
05142  M00S05140.sslabel +++|UWTERR$ACT:                          # UNRECOVERABLE WRITE ERROR #
05143  M00S05141.sslabel +++|      ERRCODE = S"UNRECV$WRT";
05144  M00S05142.sslabel +++|      LBERR(ERRCODE);
05145  M00S05143.sslabel +++|      RETURN;
05146  M00S05144.sslabel +++|
05147  M00S05145.sslabel +++|MHDERR$ACT:                          # MSF HARDWARE PROBLEM #
05148  M00S05146.sslabel +++|      ERRCODE = S"M86$HARDWR";
05149  M00S05147.sslabel +++|      LBERR(ERRCODE);
05150  M00S05148.sslabel +++|      RETURN;
05151  M00S05149.sslabel +++|SMOFF$ACT:
05152  M00S05150.sslabel +++|
05153  M00S05151.sslabel +++|      ERRCODE = S"SM$OFF";
05154  M00S05152.sslabel +++|      LBERR(ERRCODE);
05155  M00S05153.sslabel +++|      RETURN;
05156  M00S05154.sslabel +++|
05157  M00S05155.sslabel +++|
05158  M00S05156.sslabel +++|      END  # LBRESP #
05159  M00S05157.sslabel +++|
05160  M00S05158.sslabel +++|    TERM
05161  M00S05159.sslabel +++|PROC LBRMCSU;
05162  M00S05160.sslabel +++|# TITLE LBRMCSU - REMOVE A *SM* FROM A FAMILY CATALOG.                 #
05163  M00S05161.sslabel +++|
05164  M00S05162.sslabel +++|      BEGIN  # LBRMCSU #
05165  M00S05163.sslabel +++|
05166  M00S05164.sslabel +++|#
05167  M00S05165.sslabel +++|**    LBRMCSU - REMOVE A *SM* FROM A FAMILY CATALOG.
05168  M00S05166.sslabel +++|*
05169  M00S05167.sslabel +++|*     THIS PROC UPDATES THE CATALOG FOR A FAMILY TO REMOVE
05170  M00S05168.sslabel +++|*     ASSIGNMENT OF A PARTICULAR CSU.
05171  M00S05169.sslabel +++|*
05172  M00S05170.sslabel +++|*     PROC LBRMCSU.
05173  M00S05171.sslabel +++|*
05174  M00S05172.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05175  M00S05173.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05176  M00S05174.sslabel +++|*               IN *COMTLBP*.
05177  M00S05175.sslabel +++|*
05178  M00S05176.sslabel +++|*     EXIT      *SM* REMOVED FROM FAMILY OR ERROR CONDITION.
05179  M00S05177.sslabel +++|*
05180  M00S05178.sslabel +++|*     NOTES     PROC *LBRMCSU* SEARCHES THE SMMAP FOR THE *SM*
05181  M00S05179.sslabel +++|*               SPECIFIED TO VERIFY THAT NO CUBES ARE ASSIGNED
05182  M00S05180.sslabel +++|*               TO THE FAMILY.  A REQUEST IS THEN SENT TO EXEC
05183  M00S05181.sslabel +++|*               TO UPDATE THE CATALOG TO REFLECT THE REMOVAL OF
05184  M00S05182.sslabel +++|*               THE *SM*.
05185  M00S05183.sslabel +++|#
05186  M00S05184.sslabel +++|
05187  M00S05185.sslabel +++|#
05188  M00S05186.sslabel +++|****  PROC LBRMCSU - XREF LIST BEGIN.
05189  M00S05187.sslabel +++|#
05190  M00S05188.sslabel +++|
05191  M00S05189.sslabel +++|      XREF
05192  M00S05190.sslabel +++|        BEGIN
05193  M00S05191.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
05194  M00S05192.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05195  M00S05193.sslabel +++|        PROC LBRESP;                 # PROCESSES RESPONSE FROM EXEC #
05196  M00S05194.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05197  M00S05195.sslabel +++|        END
05198  M00S05196.sslabel +++|
05199  M00S05197.sslabel +++|#
05200  M00S05198.sslabel +++|****  PROC LBRMCSU - XREF LIST END.
05201  M00S05199.sslabel +++|#
05202  M00S05200.sslabel +++|
05203  M00S05201.sslabel +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
05204  M00S05202.sslabel +++|*CALL COMBFAS
05205  M00S05203.sslabel +++|*CALL COMBCPR
05206  M00S05204.sslabel +++|*CALL COMTERR
05207  M00S05205.sslabel +++|*CALL COMTLAB
05208  M00S05206.sslabel +++|*CALL COMTLBP
05209  M00S05207.sslabel +++|
05210  M00S05208.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05211  M00S05209.sslabel +++|      ITEM REQCODE    U;             # REQUEST CODE #
05212  M00S05210.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
05213  M00S05211.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SMMAP SEARCH TYPE #
05214  M00S05212.sslabel +++|
05215  M00S05213.sslabel +++|
05216  M00S05214.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05217  M00S05215.sslabel +++|        BEGIN
05218  M00S05216.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05219  M00S05217.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05220  M00S05218.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05221  M00S05219.sslabel +++|        END
05222  M00S05220.sslabel +++|
05223  M00S05221.sslabel +++|
05224  M00S05222.sslabel +++|                                               CONTROL EJECT;
05225  M00S05223.sslabel +++|
05226  M00S05224.sslabel +++|#
05227  M00S05225.sslabel +++|*     SEARCH SMMAP FOR CUBES ASSIGNED TO FAMILY AND UPDATE CATALOG.
05228  M00S05226.sslabel +++|#
05229  M00S05227.sslabel +++|
05230  M00S05228.sslabel +++|      SERTYPE = S"ASGN$FAM";
05231  M00S05229.sslabel +++|      SERCSU(SERTYPE,0,0,0,0,LBARG$FM[0],LBARG$SB[0], PK$CSU$ENT[0],
05232  M00S05230.sslabel +++|        FLAG);
05233  M00S05231.sslabel +++|
05234  M00S05232.sslabel +++|      IF FLAG EQ OK
05235  M00S05233.sslabel +++|      THEN                           # ENTRY FOUND #
05236  M00S05234.sslabel +++|        BEGIN
05237  M00S05235.sslabel +++|        ERRCODE = S"CB$ASGN$SB";
05238  M00S05236.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
05239  M00S05237.sslabel +++|        RETURN;
05240  M00S05238.sslabel +++|        END
05241  M00S05239.sslabel +++|
05242  M00S05240.sslabel +++|      REQCODE = REQTYP3"RMV$CSU";
05243  M00S05241.sslabel +++|      CALL3(REQCODE,0,0,0,RESP$CODE);  # REMOVE *SM* FROM FAMILY #
05244  M00S05242.sslabel +++|      IF RESP$CODE NQ RESPTYP3"OK3"
05245  M00S05243.sslabel +++|      THEN                           # PROCESS THE RESPONSE #
05246  M00S05244.sslabel +++|        BEGIN
05247  M00S05245.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP3");
05248  M00S05246.sslabel +++|        END
05249  M00S05247.sslabel +++|
05250  M00S05248.sslabel +++|      RETURN;
05251  M00S05249.sslabel +++|
05252  M00S05250.sslabel +++|      END  # LBRMCSU #
05253  M00S05251.sslabel +++|
05254  M00S05252.sslabel +++|    TERM
05255  M00S05253.sslabel +++|PROC LBRMCUB;
05256  M00S05254.sslabel +++|# TITLE LBRMCUB - REMOVES CUBES FROM FAMILY/POOL/RESERVED AREA.       #
05257  M00S05255.sslabel +++|
05258  M00S05256.sslabel +++|      BEGIN  # LBRMCUB #
05259  M00S05257.sslabel +++|
05260  M00S05258.sslabel +++|#
05261  M00S05259.sslabel +++|**    LBRMCUB - REMOVES CUBES FROM FAMILY/POOL/RESERVED AREA.
05262  M00S05260.sslabel +++|*
05263  M00S05261.sslabel +++|*     THIS PROC REMOVES ASSIGNED CUBES FROM A FAMILY, POOL,
05264  M00S05262.sslabel +++|*     OR RESERVED AREA OF THE CSU.
05265  M00S05263.sslabel +++|*
05266  M00S05264.sslabel +++|*     PROC LBRMCUB.
05267  M00S05265.sslabel +++|*
05268  M00S05266.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05269  M00S05267.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05270  M00S05268.sslabel +++|*               IN *COMTLBP*.
05271  M00S05269.sslabel +++|*
05272  M00S05270.sslabel +++|*     EXIT      SPECIFIED NUMBER OR LOCATIONS OF CUBES HAVE
05273  M00S05271.sslabel +++|*               BEEN REMOVED, OR ERROR CONDITION.
05274  M00S05272.sslabel +++|*
05275  M00S05273.sslabel +++|*     NOTES     PROC *LBRMCUB* REMOVES CUBES FROM A FAMILY,
05276  M00S05274.sslabel +++|*               POOL, OR RESERVED AREA BY CHANGING THEIR STATUS
05277  M00S05275.sslabel +++|*               FROM *ASSIGNED* TO *UNASSIGNED*.  IF THE *N*
05278  M00S05276.sslabel +++|*               OPTION IS USED THE SMMAP IS SEARCHED FOR EMPTY
05279  M00S05277.sslabel +++|*               CUBES WITH THE APPROPRIATE ASSIGNMENT.  IF THE
05280  M00S05278.sslabel +++|*               LOCATION OPTION IS USED, THE SMMAP IS CHECKED
05281  M00S05279.sslabel +++|*               TO ENSURE THAT THE SPECIFIC CUBES ARE EMPTY AND
05282  M00S05280.sslabel +++|*               ASSIGNED AS EXPECTED.  A REQUEST IS THEN SENT
05283  M00S05281.sslabel +++|*               TO EXEC TO REMOVE THE CUBES FROM ASSIGNMENT.
05284  M00S05282.sslabel +++|#
05285  M00S05283.sslabel +++|
05286  M00S05284.sslabel +++|#
05287  M00S05285.sslabel +++|****  PROC LBRMCUB - XREF LIST BEGIN.
05288  M00S05286.sslabel +++|#
05289  M00S05287.sslabel +++|
05290  M00S05288.sslabel +++|      XREF
05291  M00S05289.sslabel +++|        BEGIN
05292  M00S05290.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
05293  M00S05291.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05294  M00S05292.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
05295  M00S05293.sslabel +++|        PROC MFLUSH;                 # FLUSHES MAP BUFFER #
05296  M00S05294.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05297  M00S05295.sslabel +++|        PROC SETCORD;                # SETS UP Y AND Z COORDINATES #
05298  M00S05296.sslabel +++|        END
05299  M00S05297.sslabel +++|
05300  M00S05298.sslabel +++|#
05301  M00S05299.sslabel +++|****  PROC LBRMCUB - XREF LIST END.
05302  M00S05300.sslabel +++|#
05303  M00S05301.sslabel +++|
05304  M00S05302.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
05305  M00S05303.sslabel +++|*CALL COMBFAS
05306  M00S05304.sslabel +++|*CALL COMBCPR
05307  M00S05305.sslabel +++|*CALL COMBMAP
05308  M00S05306.sslabel +++|*CALL COMTERR
05309  M00S05307.sslabel +++|*CALL COMTLAB
05310  M00S05308.sslabel +++|*CALL COMTLBP
05311  M00S05309.sslabel +++|
05312  M00S05310.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05313  M00S05311.sslabel +++|      ITEM I          I;             # LOOP VARIABLE #
05314  M00S05312.sslabel +++|      ITEM LOC$OPTION B;             # TRUE IF *LOC* OPTION FALSE IF
05315  M00S05313.sslabel +++|                                       *N* OPTION #
05316  M00S05314.sslabel +++|      ITEM REQCODE    U;             # RESPONSE CODE FROM EXEC #
05317  M00S05315.sslabel +++|      ITEM RESP$CODE  U;             # RESPONSE CODE FROM EXEC #
05318  M00S05316.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # TYPE OF SEARCH THROUGH SMMAP #
05319  M00S05317.sslabel +++|      ITEM SP$CODE    U;             # CODE FOR CUBE/CARTRIDGE
05320  M00S05318.sslabel +++|                                       ASSIGNMENT #
05321  M00S05319.sslabel +++|      ITEM SP$FAM     C(7);          # SPECIFIED FAMILY NAME #
05322  M00S05320.sslabel +++|      ITEM SP$SUB     U;             # SPECIFIED SUB FAMILY #
05323  M00S05321.sslabel +++|      ITEM SP$VSN     C(8);          # SPECIFIED CARTRIDGE *CSND* #
05324  M00S05322.sslabel +++|      ITEM SP$Y       U;             # Y COORDINATE #
05325  M00S05323.sslabel +++|      ITEM SP$Z       U;             # Z COORDINATE #
05326  M00S05324.sslabel +++|
05327  M00S05325.sslabel +++|
05328  M00S05326.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05329  M00S05327.sslabel +++|        BEGIN
05330  M00S05328.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05331  M00S05329.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05332  M00S05330.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05333  M00S05331.sslabel +++|        END
05334  M00S05332.sslabel +++|
05335  M00S05333.sslabel +++|
05336  M00S05334.sslabel +++|                                               CONTROL EJECT;
05337  M00S05335.sslabel +++|
05338  M00S05336.sslabel +++|#
05339  M00S05337.sslabel +++|*     CHECK FOR *N* OPTION OR *LOC* OPTION.
05340  M00S05338.sslabel +++|#
05341  M00S05339.sslabel +++|
05342  M00S05340.sslabel +++|      LOC$OPTION = FALSE;
05343  M00S05341.sslabel +++|      IF LBARG$YI[0] NQ -1 OR LBARG$ZI[0] NQ -1
05344  M00S05342.sslabel +++|      THEN                           # *LOC* OPTION SPECIFIED #
05345  M00S05343.sslabel +++|        BEGIN
05346  M00S05344.sslabel +++|        SETCORD;                     # BUILD Y,Z MATRIX #
05347  M00S05345.sslabel +++|        LOC$OPTION = TRUE;
05348  M00S05346.sslabel +++|        END
05349  M00S05347.sslabel +++|
05350  M00S05348.sslabel +++|#
05351  M00S05349.sslabel +++|*     PROCESS EACH OF THE *N* CUBES SPECIFIED.
05352  M00S05350.sslabel +++|#
05353  M00S05351.sslabel +++|
05354  M00S05352.sslabel +++|      SP$VSN = " ";
05355  M00S05353.sslabel +++|      SP$FAM = " ";
05356  M00S05354.sslabel +++|      SP$SUB = 0;
05357  M00S05355.sslabel +++|      FASTFOR I = 1 STEP 1 UNTIL LBARG$N[0]
05358  M00S05356.sslabel +++|      DO
05359  M00S05357.sslabel +++|        BEGIN  # PROCESS *N* CUBES #
05360  M00S05358.sslabel +++|        IF NOT LOC$OPTION
05361  M00S05359.sslabel +++|        THEN
05362  M00S05360.sslabel +++|          BEGIN  # *N* OPTION #
05363  M00S05361.sslabel +++|          SERTYPE = S"ASSIGN";       # SEARCH FOR ASSIGNED CUBE #
05364  M00S05362.sslabel +++|          IF LBARG$PK[0] EQ "F"
05365  M00S05363.sslabel +++|          THEN                       # REMOVE CUBE FROM FAMILY #
05366  M00S05364.sslabel +++|            BEGIN
05367  M00S05365.sslabel +++|            SP$CODE = CUBSTAT"SUBFAM";
05368  M00S05366.sslabel +++|            SP$FAM = LBARG$FM[0];
05369  M00S05367.sslabel +++|            SP$SUB = LBARG$SB[0];
05370  M00S05368.sslabel +++|            END
05371  M00S05369.sslabel +++|
05372  M00S05370.sslabel +++|          IF LBARG$PK[0] EQ "P"
05373  M00S05371.sslabel +++|          THEN                       # REMOVE CUBE FROM POOL #
05374  M00S05372.sslabel +++|            BEGIN
05375  M00S05373.sslabel +++|            SP$CODE = CUBSTAT"SCRPOOL";
05376  M00S05374.sslabel +++|            END
05377  M00S05375.sslabel +++|
05378  M00S05376.sslabel +++|          IF LBARG$PK[0] EQ "R"
05379  M00S05377.sslabel +++|          THEN                       # REMOVE FROM RESERVED AREA #
05380  M00S05378.sslabel +++|            BEGIN
05381  M00S05379.sslabel +++|            SP$CODE = CUBSTAT"ALTCSU";
05382  M00S05380.sslabel +++|            END
05383  M00S05381.sslabel +++|
05384  M00S05382.sslabel +++|          END  # *N* OPTION #
05385  M00S05383.sslabel +++|
05386  M00S05384.sslabel +++|        ELSE
05387  M00S05385.sslabel +++|          BEGIN  # *LOC* OPTION #
05388  M00S05386.sslabel +++|          SERTYPE = S"LOC";          # LOOK FOR SPECIFIC LOCATION #
05389  M00S05387.sslabel +++|          SP$Y = Y$COORD[I];
05390  M00S05388.sslabel +++|          SP$Z = Z$COORD[I];
05391  M00S05389.sslabel +++|          END  # *LOC* OPTION #
05392  M00S05390.sslabel +++|
05393  M00S05391.sslabel +++|#
05394  M00S05392.sslabel +++|*     SEARCH THE SMMAP FOR THE SPECIFIED ENTRY.
05395  M00S05393.sslabel +++|#
05396  M00S05394.sslabel +++|
05397  M00S05395.sslabel +++|        SERCSU(SERTYPE,SP$Y,SP$Z,SP$CODE,SP$VSN,SP$FAM,SP$SUB,
05398  M00S05396.sslabel +++|          PK$CSU$ENT[0],FLAG);
05399  M00S05397.sslabel +++|        IF FLAG NQ OK
05400  M00S05398.sslabel +++|        THEN                         # NO EMPTY CUBES #
05401  M00S05399.sslabel +++|          BEGIN
05402  M00S05400.sslabel +++|          NUMDONE = I - 1;
05403  M00S05401.sslabel +++|          ERRCODE = S"NO$EMPCB";
05404  M00S05402.sslabel +++|          LBERR(ERRCODE);
05405  M00S05403.sslabel +++|          RETURN;
05406  M00S05404.sslabel +++|          END
05407  M00S05405.sslabel +++|
05408  M00S05406.sslabel +++|#
05409  M00S05407.sslabel +++|*     CHECK CUBE ASSIGNMENT.
05410  M00S05408.sslabel +++|#
05411  M00S05409.sslabel +++|
05412  M00S05410.sslabel +++|        P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05413  M00S05411.sslabel +++|        IF CM$CSND[0] NQ " "
05414  M00S05412.sslabel +++|        THEN                         # CUBE NOT EMPTY #
05415  M00S05413.sslabel +++|          BEGIN
05416  M00S05414.sslabel +++|          NUMDONE = I - 1;
05417  M00S05415.sslabel +++|          ERRCODE = S"CB$NOT$EMP";
05418  M00S05416.sslabel +++|          LBERR(ERRCODE);            # DO ERROR PROCESSING #
05419  M00S05417.sslabel +++|          RETURN;
05420  M00S05418.sslabel +++|          END
05421  M00S05419.sslabel +++|
05422  M00S05420.sslabel +++|        IF LBARG$PK[0] EQ "F"        ##
05423  M00S05421.sslabel +++|          AND CM$CODE[0] EQ CUBSTAT"SUBFAM"  ##
05424  M00S05422.sslabel +++|          AND CM$FMLYNM[0] EQ LBARG$FM[0]  ##
05425  M00S05423.sslabel +++|          AND CM$SUB[0] EQ LBARG$SB[0]
05426  M00S05424.sslabel +++|        THEN                         # REMOVE CUBE FROM FAMILY #
05427  M00S05425.sslabel +++|          BEGIN
05428  M00S05426.sslabel +++|          REQCODE = REQTYP3"RMV$CUBE";
05429  M00S05427.sslabel +++|          END
05430  M00S05428.sslabel +++|
05431  M00S05429.sslabel +++|        ELSE
05432  M00S05430.sslabel +++|          BEGIN  # REMOVE FROM POOL/RESERVED AREA #
05433  M00S05431.sslabel +++|          IF (LBARG$PK[0] EQ "P" AND CM$CODE[0] EQ CUBSTAT"SCRPOOL")
05434  M00S05432.sslabel +++|            OR (LBARG$PK[0] EQ "R" AND CM$CODE[0] EQ CUBSTAT"ALTCSU")
Line S00003 Modification History
M01 (Added by) msea013
Seq #  *Modification Id* Act 
----------------------------+
05435  M01S00003.msea013 +++|            OR (LBARG$PK[0] EQ "R" AND CM$CODE[0] EQ CUBSTAT"SYSUSE")
05436  M00S05433.sslabel +++|            THEN
05437  M00S05434.sslabel +++|            BEGIN
05438  M00S05435.sslabel +++|            REQCODE = REQTYP3"UPD$MAP";  # UPDATE SMMAP ENTRY #
05439  M00S05436.sslabel +++|            CM$CODE[0] = CUBSTAT"UNASGN";
05440  M00S05437.sslabel +++|            CM$FLAG1[0] = FALSE;     # CLEAR ERROR FLAG IN MAP ENTRY #
05441  M00S05438.sslabel +++|            END
05442  M00S05439.sslabel +++|
05443  M00S05440.sslabel +++|          ELSE                       # PROCESS ERROR CONDITION #
05444  M00S05441.sslabel +++|            BEGIN
05445  M00S05442.sslabel +++|            NUMDONE = I - 1;
05446  M00S05443.sslabel +++|            ERRCODE = S"UNX$CB$ASN";
05447  M00S05444.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05448  M00S05445.sslabel +++|            RETURN;
05449  M00S05446.sslabel +++|            END
05450  M00S05447.sslabel +++|
05451  M00S05448.sslabel +++|          END  # REMOVE FROM POOL/RESERVED AREA #
05452  M00S05449.sslabel +++|
05453  M00S05450.sslabel +++|#
05454  M00S05451.sslabel +++|*     ISSUE TYPE 3 CALLSS REQUEST AND DO ERROR PROCESSING IF AN
05455  M00S05452.sslabel +++|*     ERROR STATUS IS RETURNED BY EXEC.
05456  M00S05453.sslabel +++|#
05457  M00S05454.sslabel +++|
05458  M00S05455.sslabel +++|        CALL3(REQCODE,PK$CSU$ENT[0],0,0,RESP$CODE);
05459  M00S05456.sslabel +++|        IF RESP$CODE NQ RESPTYP3"OK3"
05460  M00S05457.sslabel +++|        THEN                         # PROCESS THE RESPONSE #
05461  M00S05458.sslabel +++|          BEGIN
05462  M00S05459.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP3");
05463  M00S05460.sslabel +++|          RETURN;
05464  M00S05461.sslabel +++|          END
05465  M00S05462.sslabel +++|
05466  M00S05463.sslabel +++|        MFLUSH;
05467  M00S05464.sslabel +++|        END  # PROCESS *N* CUBES #
05468  M00S05465.sslabel +++|
05469  M00S05466.sslabel +++|      RETURN;
05470  M00S05467.sslabel +++|
05471  M00S05468.sslabel +++|      END  # LBRMCUB #
05472  M00S05469.sslabel +++|
05473  M00S05470.sslabel +++|    TERM
05474  M00S05471.sslabel +++|PROC LBRMMSC;
05475  M00S05472.sslabel +++|# TITLE LBRMMSC - REMOVES CARTRIDGES FROM A FAMILY OR POOL.           #
05476  M00S05473.sslabel +++|
05477  M00S05474.sslabel +++|      BEGIN  # LBRMMSC #
05478  M00S05475.sslabel +++|
05479  M00S05476.sslabel +++|#
05480  M00S05477.sslabel +++|**    LBRMMSC - REMOVES CARTRIDGES FROM A FAMILY OR POOL.
05481  M00S05478.sslabel +++|*
05482  M00S05479.sslabel +++|*     THIS PROC LOCATES AND REMOVES EMPTY CARTRIDGES.
05483  M00S05480.sslabel +++|*
05484  M00S05481.sslabel +++|*     PROC LBRMMSC.
05485  M00S05482.sslabel +++|*
05486  M00S05483.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
05487  M00S05484.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
05488  M00S05485.sslabel +++|*               IN *COMTLBP*.
05489  M00S05486.sslabel +++|*               (LB$BUFP) = FWA OF A BUFFER 1101B WORDS LONG.
05490  M00S05487.sslabel +++|*
05491  M00S05488.sslabel +++|*     EXIT      CARTRIDGES REMOVED OR ERROR CONDITION.
05492  M00S05489.sslabel +++|*
05493  M00S05490.sslabel +++|*     MESSAGES  FAMILY NOT FOUND.
05494  M00S05491.sslabel +++|*               CARTRIDGE NOT EMPTY, VSN.
05495  M00S05492.sslabel +++|*
05496  M00S05493.sslabel +++|*     NOTES     PROC *LBRMMSC* OPENS THE CATALOG AND SEARCHES IT
05497  M00S05494.sslabel +++|*               FOR CARTRIDGES FREE IF NO CSN
05498  M00S05495.sslabel +++|*               IS SPECIFIED.  IF CSN IS SPECIFIED THE SMMAP IS
05499  M00S05496.sslabel +++|*               SEARCHED FOR A MATCHING CSN.  IF THE *LOST* OPTION
05500  M00S05497.sslabel +++|*               IS SPECIFIED, THE CARTRIDGE IS REMOVED FROM THE
05501  M00S05498.sslabel +++|*               FAMILY AFTER VERIFYING THAT IT IS MISSING AND
05502  M00S05499.sslabel +++|*               ASSIGNED TO THE FAMILY.  THE CARTRIDGE IS LOADED
05503  M00S05500.sslabel +++|*               AND ITS LABEL IS CHECKED.  A NEW SCRATCH LABEL IS
05504  M00S05501.sslabel +++|*               WRITTEN AND THE CARTRIDGE IS UNLOADED TO THE POOL
05505  M00S05502.sslabel +++|*               OR OUTPUT DRAWER, AS SPECIFIED BY *PT*.
05506  M00S05503.sslabel +++|#
05507  M00S05504.sslabel +++|
05508  M00S05505.sslabel +++|#
05509  M00S05506.sslabel +++|****  PROC LBRMMSC - XREF LIST BEGIN.
05510  M00S05507.sslabel +++|#
05511  M00S05508.sslabel +++|
05512  M00S05509.sslabel +++|      XREF
05513  M00S05510.sslabel +++|        BEGIN
05514  M00S05511.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 EXEC CALLSS #
05515  M00S05512.sslabel +++|        PROC CALL4;                  # ISSUES TYPE 4 EXEC CALLSS #
05516  M00S05513.sslabel +++|        PROC CCLOSE;                 # CLOSE SFMCAT #
05517  M00S05514.sslabel +++|        PROC CGETFCT;                # GETS AN FCT ENTRY #
05518  M00S05515.sslabel +++|        PROC COPEN;                  # OPENS THE CATALOG #
05519  M00S05516.sslabel +++|        PROC DLABFLD;                # DISPLAY CARTRIDGE LABEL FIELDS #
05520  M00S05517.sslabel +++|        PROC GENLAB;                 # GENERATES A NEW LABEL #
05521  M00S05518.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
05522  M00S05519.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
05523  M00S05520.sslabel +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
05524  M00S05521.sslabel +++|        PROC MCLOSE;                 # CLOSE SMMAP #
05525  M00S05522.sslabel +++|        PROC MESSAGE;                # DISPLAYS MESSAGE #
05526  M00S05523.sslabel +++|        PROC MFLUSH;                 # FLUSH MAP BUFFER #
05527  M00S05524.sslabel +++|        PROC MOPEN;                  # OPEN SMMAP #
05528  M00S05525.sslabel +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
05529  M00S05526.sslabel +++|                                       OR RETURN #
05530  M00S05527.sslabel +++|        PROC SERAST;                 # SEARCH FOR EMPTY CARTRIDGES #
05531  M00S05528.sslabel +++|        PROC SERCSU;                 # SEARCHES THE SMMAP #
05532  M00S05529.sslabel +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
05533  M00S05530.sslabel +++|        FUNC XCOD;                   # INTEGER TO DISPLAY CONVERSION #
05534  M00S05531.sslabel +++|        END
05535  M00S05532.sslabel +++|
05536  M00S05533.sslabel +++|#
05537  M00S05534.sslabel +++|****  PROC LBRMMSC - XREF LIST END.
05538  M00S05535.sslabel +++|#
05539  M00S05536.sslabel +++|
05540  M00S05537.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
05541  M00S05538.sslabel +++|*CALL COMBFAS
05542  M00S05539.sslabel +++|*CALL COMBCMS
05543  M00S05540.sslabel +++|*CALL,COMBCMD
05544  M00S05541.sslabel +++|*CALL COMBCPR
05545  M00S05542.sslabel +++|*CALL COMBLBL
05546  M00S05543.sslabel +++|*CALL COMBMAP
05547  M00S05544.sslabel +++|*CALL COMBMCT
05548  M00S05545.sslabel +++|*CALL COMBPFP
05549  M00S05546.sslabel +++|*CALL COMSPFM
05550  M00S05547.sslabel +++|*CALL COMTERR
05551  M00S05548.sslabel +++|*CALL COMTLAB
05552  M00S05549.sslabel +++|*CALL COMTLBP
05553  M00S05550.sslabel +++|
05554  M00S05551.sslabel +++|      ITEM CART$CSN   C(20);         # CARTRIDGE SERIAL NUMBER #
05555  M00S05552.sslabel +++|      ITEM ERR$CNT    I;             # ERROR COUNT #
05556  M00S05553.sslabel +++|      ITEM FCTORD     U;             # EMPTY CARTRIDGE FCT ORDINAL #
05557  M00S05554.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
05558  M00S05555.sslabel +++|      ITEM HR$ERR     I;             # HARD READ ERRORS #
05559  M00S05556.sslabel +++|      ITEM I          I;             # LOOP VARIABLE #
05560  M00S05557.sslabel +++|      ITEM LD$CNT     I;             # LOAD COUNT #
05561  M00S05558.sslabel +++|      ITEM LD$ERR     I;             # LOAD ERRORS #
05562  M00S05559.sslabel +++|      ITEM PS$CNT     I;             # PASS COUNT #
05563  M00S05560.sslabel +++|      ITEM REQCODE    I;             # REQUEST CODE #
05564  M00S05561.sslabel +++|      ITEM RESP$CODE  I;             # RESPONSE CODE #
05565  M00S05562.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SEARCH TYPE #
05566  M00S05563.sslabel +++|      ITEM SGROUP     I;             # SAVE GROUP PARAMETER #
05567  M00S05564.sslabel +++|      ITEM SLOT       I;             # DRAWER NUMBER #
05568  M00S05565.sslabel +++|      ITEM SP$CODE    I;             # SPECIFIED CODE #
05569  M00S05566.sslabel +++|      ITEM SP$Y       I;             # SPECIFIED Y #
05570  M00S05567.sslabel +++|      ITEM SP$Z       I;             # SPECIFIED Z #
05571  M00S05568.sslabel +++|      ITEM SR$ERR     I;             # SOFT READ ERRORS #
05572  M00S05569.sslabel +++|      ITEM STR$RD     I;             # STRIPES READ #
05573  M00S05570.sslabel +++|      ITEM STR$WR     I;             # STRIPES WRITTEN #
05574  M00S05571.sslabel +++|      ITEM STR$DM     I;             # STRIPES DEMARKED #
05575  M00S05572.sslabel +++|      ITEM SW$ERR     I;             # SOFT WRITE ERRORS #
05576  M00S05573.sslabel +++|
05577  M00S05574.sslabel +++|      ARRAY CMAP$NM [0:0] P(1);      # BUILD SMMAP NAME #
05578  M00S05575.sslabel +++|        BEGIN
05579  M00S05576.sslabel +++|        ITEM CMAP$NAME  C(00,00,07);  # SMMAP FILE NAME #
05580  M00S05577.sslabel +++|        ITEM CMAP$IN    C(00,00,05);  # FIRST 5 CHARACTERS #
05581  M00S05578.sslabel +++|        ITEM CMAP$ID    C(00,30,01);  # SM-ID #
05582  M00S05579.sslabel +++|        ITEM CMAP$Z     C(00,36,24) = [0];  # ZERO FILL #
05583  M00S05580.sslabel +++|        END
05584  M00S05581.sslabel +++|
05585  M00S05582.sslabel +++|      ARRAY MSFCATNM [0:0] P(1);     # CATALOG NAME #
05586  M00S05583.sslabel +++|        BEGIN
05587  M00S05584.sslabel +++|        ITEM MSFCAT$NM  C(00,00,06);  # FIRST 6 CHARACTERS #
05588  M00S05585.sslabel +++|        ITEM MSFCAT$LST C(00,36,01);  # LAST CHARACTER #
05589  M00S05586.sslabel +++|        END
05590  M00S05587.sslabel +++|
05591  M00S05588.sslabel +++|      ARRAY PK$CSU$ENT [0:0] P(4);   # *PICK* SMMAP ENTRY #
05592  M00S05589.sslabel +++|        BEGIN
05593  M00S05590.sslabel +++|        ITEM PK$MAPENT  C(00,00,30);  # THREE WORD SMMAP ENTRY #
05594  M00S05591.sslabel +++|        ITEM PK$Y       U(03,00,30);  # Y COORDINATE #
05595  M00S05592.sslabel +++|        ITEM PK$Z       U(03,30,30);  # Z COORDINATE #
05596  M00S05593.sslabel +++|        END
05597  M00S05594.sslabel +++|
05598  M00S05595.sslabel +++|
05599  M00S05596.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(5);   # *PUT* SMMAP ENTRY #
05600  M00S05597.sslabel +++|        BEGIN
05601  M00S05598.sslabel +++|        ITEM PT$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
05602  M00S05599.sslabel +++|        ITEM PT$Y       U(03,00,30);  # Y COORDINATE #
05603  M00S05600.sslabel +++|        ITEM PT$Z       U(03,30,30);  # Z COORDINATE #
05604  M00S05601.sslabel +++|        ITEM PT$GR      U(04,00,07);  # GROUP #
05605  M00S05602.sslabel +++|        ITEM PT$GRT     U(04,07,04);  # GROUP ORDINAL #
05606  M00S05603.sslabel +++|        END
05607  M00S05604.sslabel +++|
05608  M00S05605.sslabel +++|
05609  M00S05606.sslabel +++|                                               CONTROL EJECT;
05610  M00S05607.sslabel +++|
05611  M00S05608.sslabel +++|#
05612  M00S05609.sslabel +++|*     INITIALIZE POINTERS AND MISCELLANEOUS ITEMS.
05613  M00S05610.sslabel +++|#
05614  M00S05611.sslabel +++|
05615  M00S05612.sslabel +++|      PFP$WRD0[0] = 0;
05616  M00S05613.sslabel +++|      PFP$FG1[0] = TRUE;
05617  M00S05614.sslabel +++|      PFP$FG4[0] = TRUE;
05618  M00S05615.sslabel +++|      P<FCT> = LB$BUFP;
05619  M00S05616.sslabel +++|      P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05620  M00S05617.sslabel +++|      SGROUP = LBARG$GR[0];
05621  M00S05618.sslabel +++|
05622  M00S05619.sslabel +++|#
05623  M00S05620.sslabel +++|*     REMOVE EACH OF *N* CARTRIDGES FROM THE FAMILY OR POOL.
05624  M00S05621.sslabel +++|#
05625  M00S05622.sslabel +++|
05626  M00S05623.sslabel +++|      SLOWFOR I = 1 STEP 1 UNTIL LBARG$N[0]
05627  M00S05624.sslabel +++|      DO
05628  M00S05625.sslabel +++|        BEGIN  # REMOVE CARTRIDGE #
05629  M00S05626.sslabel +++|        LBARG$GR[0] = SGROUP;
05630  M00S05627.sslabel +++|
05631  M00S05628.sslabel +++|#
05632  M00S05629.sslabel +++|*     PROCESSING FOR *CSN NOT SPECIFIED*.
05633  M00S05630.sslabel +++|#
05634  M00S05631.sslabel +++|
05635  M00S05632.sslabel +++|        P<SMUMAP> = LOC(PT$CSU$ENT[0]);
05636  M00S05633.sslabel +++|        IF LBARG$C[0] EQ 0
05637  M00S05634.sslabel +++|        THEN
05638  M00S05635.sslabel +++|          BEGIN  # CSN NOT SPECIFIED #
05639  M00S05636.sslabel +++|
05640  M00S05637.sslabel +++|          IF LBARG$PK[0] EQ "F"
05641  M00S05638.sslabel +++|          THEN
05642  M00S05639.sslabel +++|            BEGIN  # SELECT CARTRIDGE FROM FAMILY #
05643  M00S05640.sslabel +++|
05644  M00S05641.sslabel +++|#
05645  M00S05642.sslabel +++|*     OPEN CATALOG AND CHECK ERROR STATUS.
05646  M00S05643.sslabel +++|#
05647  M00S05644.sslabel +++|
05648  M00S05645.sslabel +++|            PFP$FAM[0] = LBARG$FM[0];
05649  M00S05646.sslabel +++|            PFP$UI[0] = DEF$UI + LBARG$SB[0];
05650  M00S05647.sslabel +++|            SETPFP(PFP);
05651  M00S05648.sslabel +++|            IF PFP$STAT[0] NQ 0
05652  M00S05649.sslabel +++|            THEN                     # FAMILY NOT FOUND #
05653  M00S05650.sslabel +++|              BEGIN
05654  M00S05651.sslabel +++|              LBMSG$LN[0] = " FAMILY NOT FOUND.";
05655  M00S05652.sslabel +++|              MESSAGE(LBMSG[0],SYSUDF1);
05656  M00S05653.sslabel +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
05657  M00S05654.sslabel +++|              END
05658  M00S05655.sslabel +++|
05659  M00S05656.sslabel +++|            MSFCAT$NM[0] = SFMCAT;   # SET UP CATALOG NAME #
05660  M00S05657.sslabel +++|            MSFCAT$LST[0] = XCOD(LBARG$SB[0]);
05661  M00S05658.sslabel +++|            COPEN(LBARG$FM[0],LBARG$SB[0],MSFCATNM[0],"RM",TRUE,FLAG);
05662  M00S05659.sslabel +++|            IF FLAG EQ CMASTAT"NOERR"
05663  M00S05660.sslabel +++|            THEN
05664  M00S05661.sslabel +++|              BEGIN
05665  M00S05662.sslabel +++|              LOFPROC(OCT$LFN[1]);   # ADD LFN TO LIST OF FILES #
05666  M00S05663.sslabel +++|              END
05667  M00S05664.sslabel +++|
05668  M00S05665.sslabel +++|            IF FLAG NQ CMASTAT"NOERR" AND FLAG NQ CMASTAT"FOPEN"
05669  M00S05666.sslabel +++|            THEN                     # ERROR CONDITION OTHER THAN
05670  M00S05667.sslabel +++|                                       *CATALOG ALREADY OPEN* #
05671  M00S05668.sslabel +++|              BEGIN
05672  M00S05669.sslabel +++|              LBRESP(FLAG,0);
05673  M00S05670.sslabel +++|              RETURN;
05674  M00S05671.sslabel +++|              END
05675  M00S05672.sslabel +++|
05676  M00S05673.sslabel +++|
05677  M00S05674.sslabel +++|#
05678  M00S05675.sslabel +++|*     SEARCH *AST* FOR EMPTY CARTRIDGE.
05679  M00S05676.sslabel +++|#
05680  M00S05677.sslabel +++|
05681  M00S05678.sslabel +++|            SERAST(FCTORD,FLAG);
05682  M00S05679.sslabel +++|            IF FLAG NQ OK
05683  M00S05680.sslabel +++|            THEN                     # NO EMPTY CARTRIDGE FOUND #
05684  M00S05681.sslabel +++|              BEGIN
05685  M00S05682.sslabel +++|              NUMDONE = I - 1;
05686  M00S05683.sslabel +++|              ERRCODE = S"NO$EMP$CR";
05687  M00S05684.sslabel +++|              LBERR(ERRCODE);        # DO ERROR PROCESSING #
05688  M00S05685.sslabel +++|              RETURN;
05689  M00S05686.sslabel +++|              END
05690  M00S05687.sslabel +++|
05691  M00S05688.sslabel +++|#
05692  M00S05689.sslabel +++|*     GET FCT ENTRY OF EMPTY CARTRIDGE AND SET LOAD, PASS,
05693  M00S05690.sslabel +++|*     AND ERROR COUNTS FOR NEW LABEL.
05694  M00S05691.sslabel +++|#
05695  M00S05692.sslabel +++|
05696  M00S05693.sslabel +++|            CGETFCT(LBARG$FM[0],LBARG$SB[0],LBARG$SMID[0],FCTORD,
05697  M00S05694.sslabel +++|              LB$BUFP,0,FLAG);
05698  M00S05695.sslabel +++|            IF FLAG NQ OK
05699  M00S05696.sslabel +++|            THEN                     # PROCESS ERROR STATUS #
05700  M00S05697.sslabel +++|              BEGIN
05701  M00S05698.sslabel +++|              LBRESP(FLAG,0);
05702  M00S05699.sslabel +++|              RETURN;
05703  M00S05700.sslabel +++|              END
05704  M00S05701.sslabel +++|
05705  M00S05702.sslabel +++|            LD$CNT = FCT$CRLD[0];
05706  M00S05703.sslabel +++|            HR$ERR = FCT$HRDE[0];
05707  M00S05704.sslabel +++|            SW$ERR = FCT$SWRE[0];
05708  M00S05705.sslabel +++|            SR$ERR = FCT$SRDE[0];
05709  M00S05706.sslabel +++|            STR$RD = FCT$STRD[0];
05710  M00S05707.sslabel +++|            STR$WR = FCT$STWR[0];
05711  M00S05708.sslabel +++|            STR$DM = FCT$STDM[0];
05712  M00S05709.sslabel +++|
05713  M00S05710.sslabel +++|#
05714  M00S05711.sslabel +++|*     GET SMMAP ENTRY.
05715  M00S05712.sslabel +++|#
05716  M00S05713.sslabel +++|
05717  M00S05714.sslabel +++|            SERTYPE = S"LOC";
05718  M00S05715.sslabel +++|            SERCSU(SERTYPE,FCT$Y[0],FCT$Z[0],0,0,0,0, PK$CSU$ENT[0],
05719  M00S05716.sslabel +++|              FLAG);
05720  M00S05717.sslabel +++|            CCLOSE(LBARG$FM[0],LBARG$SB[0],0,FLAG);
05721  M00S05718.sslabel +++|            END  # SELECT CARTRIDGE FROM FAMILY #
05722  M00S05719.sslabel +++|
05723  M00S05720.sslabel +++|          IF LBARG$PK[0] EQ "P"
05724  M00S05721.sslabel +++|          THEN
05725  M00S05722.sslabel +++|            BEGIN  # SELECT CARTRIDGE FROM POOL #
05726  M00S05723.sslabel +++|            SERTYPE = S"CART$POOL";
05727  M00S05724.sslabel +++|            SERCSU(SERTYPE,0,0,0,0,0,0,PK$CSU$ENT[0],FLAG);
05728  M00S05725.sslabel +++|            IF FLAG NQ OK
05729  M00S05726.sslabel +++|            THEN                     # POOL EMPTY #
05730  M00S05727.sslabel +++|              BEGIN
05731  M00S05728.sslabel +++|              NUMDONE = I - 1;
05732  M00S05729.sslabel +++|              ERRCODE = S"NO$CR$PL";
05733  M00S05730.sslabel +++|              LBERR(ERRCODE);        # DO ERROR PROCESSING #
05734  M00S05731.sslabel +++|              RETURN;
05735  M00S05732.sslabel +++|              END
05736  M00S05733.sslabel +++|
05737  M00S05734.sslabel +++|            CMAP$ID[0] = LBARG$SM[0];
05738  M00S05735.sslabel +++|            CMAP$IN[0] = SMMAP;
05739  M00S05736.sslabel +++|            END  # SELECT CARTRIDGE FROM POOL #
05740  M00S05737.sslabel +++|
05741  M00S05738.sslabel +++|          END  # VSN NOT SPECIFIED #
05742  M00S05739.sslabel +++|
05743  M00S05740.sslabel +++|#
05744  M00S05741.sslabel +++|*     PROCESSING FOR *VSN SPECIFIED*.
05745  M00S05742.sslabel +++|#
05746  M00S05743.sslabel +++|
05747  M00S05744.sslabel +++|        IF LBARG$C[0] NQ 0
05748  M00S05745.sslabel +++|        THEN
05749  M00S05746.sslabel +++|          BEGIN  # VSN SPECIFIED #
05750  M00S05747.sslabel +++|          SERTYPE = S"CSN$MATCH";    # SEARCH FOR VSN #
05751  M00S05748.sslabel +++|          SERCSU(SERTYPE,0,0,0,LBARG$C[0],0,0,PK$CSU$ENT[0],FLAG);
05752  M00S05749.sslabel +++|          IF FLAG NQ 0
05753  M00S05750.sslabel +++|          THEN                       # VSN NOT FOUND #
05754  M00S05751.sslabel +++|            BEGIN
05755  M00S05752.sslabel +++|            ERRCODE = S"CSN$NOTFND";
05756  M00S05753.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05757  M00S05754.sslabel +++|            RETURN;
05758  M00S05755.sslabel +++|            END
05759  M00S05756.sslabel +++|
05760  M00S05757.sslabel +++|#
05761  M00S05758.sslabel +++|*     OPEN CATALOG AND CHECK ERROR STATUS.
05762  M00S05759.sslabel +++|#
05763  M00S05760.sslabel +++|
05764  M00S05761.sslabel +++|          IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
05765  M00S05762.sslabel +++|          THEN
05766  M00S05763.sslabel +++|            BEGIN  # OPEN CATALOG #
05767  M00S05764.sslabel +++|            PFP$FAM[0] = CM$FMLYNM[0];
05768  M00S05765.sslabel +++|            PFP$UI[0] = DEF$UI + CM$SUB[0];
05769  M00S05766.sslabel +++|            SETPFP(PFP);
05770  M00S05767.sslabel +++|            IF PFP$STAT[0] NQ 0
05771  M00S05768.sslabel +++|            THEN                     # FAMILY NOT FOUND #
05772  M00S05769.sslabel +++|              BEGIN
05773  M00S05770.sslabel +++|              LBMSG$LN[0] = " FAMILY NOT FOUND.";
05774  M00S05771.sslabel +++|              MESSAGE(LBMSG[0],SYSUDF1);
05775  M00S05772.sslabel +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
05776  M00S05773.sslabel +++|              END
05777  M00S05774.sslabel +++|
05778  M00S05775.sslabel +++|            MSFCAT$NM[0] = SFMCAT;   # SET UP CATALOG NAME #
05779  M00S05776.sslabel +++|            MSFCAT$LST[0] = XCOD(CM$SUB[0]);
05780  M00S05777.sslabel +++|            COPEN(CM$FMLYNM[0],CM$SUB[0],MSFCATNM[0],"RM",TRUE,FLAG);
05781  M00S05778.sslabel +++|            IF FLAG EQ CMASTAT"NOERR"
05782  M00S05779.sslabel +++|            THEN
05783  M00S05780.sslabel +++|              BEGIN
05784  M00S05781.sslabel +++|              LOFPROC(OCT$LFN[1]);   # ADD LFN TO LIST OF FILES #
05785  M00S05782.sslabel +++|              END
05786  M00S05783.sslabel +++|
05787  M00S05784.sslabel +++|            IF FLAG NQ CMASTAT"NOERR" AND FLAG NQ CMASTAT"FOPEN"
05788  M00S05785.sslabel +++|            THEN                     # ERROR CONDITION OTHER THAN
05789  M00S05786.sslabel +++|                                       *CATALOG ALREADY OPEN* #
05790  M00S05787.sslabel +++|              BEGIN
05791  M00S05788.sslabel +++|              LBRESP(FLAG,0);
05792  M00S05789.sslabel +++|              RETURN;
05793  M00S05790.sslabel +++|              END
05794  M00S05791.sslabel +++|
05795  M00S05792.sslabel +++|            END  # OPEN CATALOG #
05796  M00S05793.sslabel +++|
05797  M00S05794.sslabel +++|          END  # VSN SPECIFIED #
05798  M00S05795.sslabel +++|
05799  M00S05796.sslabel +++|#
05800  M00S05797.sslabel +++|*     *LOST* OPTION PROCESSING.
05801  M00S05798.sslabel +++|#
05802  M00S05799.sslabel +++|
05803  M00S05800.sslabel +++|        IF LBARG$LT[0] NQ 0
05804  M00S05801.sslabel +++|        THEN
05805  M00S05802.sslabel +++|          BEGIN  # *LOST* OPTION SPECIFIED #
05806  M00S05803.sslabel +++|          IF CM$CODE[0] NQ CUBSTAT"SUBFAM"
05807  M00S05804.sslabel +++|          THEN                       # NOT A FAMILY CARTRIDGE #
05808  M00S05805.sslabel +++|            BEGIN
05809  M00S05806.sslabel +++|            ERRCODE = S"UNX$CR$ASN";
05810  M00S05807.sslabel +++|            LBERR(ERRCODE);
05811  M00S05808.sslabel +++|            RETURN;
05812  M00S05809.sslabel +++|            END
05813  M00S05810.sslabel +++|
05814  M00S05811.sslabel +++|#
05815  M00S05812.sslabel +++|*     GET FCT ENTRY FOR SPECIFIED CARTRIDGE.
05816  M00S05813.sslabel +++|#
05817  M00S05814.sslabel +++|
05818  M00S05815.sslabel +++|          CGETFCT(CM$FMLYNM[0],CM$SUB[0],LBARG$SMID[0],CM$FCTORD[0],
05819  M00S05816.sslabel +++|            LB$BUFP,0,FLAG);
05820  M00S05817.sslabel +++|          IF FLAG NQ OK
05821  M00S05818.sslabel +++|          THEN                       # PROCESS ERROR STATUS #
05822  M00S05819.sslabel +++|            BEGIN
05823  M00S05820.sslabel +++|            LBRESP(FLAG,0);
05824  M00S05821.sslabel +++|            RETURN;
05825  M00S05822.sslabel +++|            END
05826  M00S05823.sslabel +++|
05827  M00S05824.sslabel +++|          IF NOT FCT$LCF[0]
05828  M00S05825.sslabel +++|          THEN                       # FCT *LOST* FLAG NOT SET #
05829  M00S05826.sslabel +++|            BEGIN
05830  M00S05827.sslabel +++|            ERRCODE = S"LOST$NSET";
05831  M00S05828.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05832  M00S05829.sslabel +++|            RETURN;
05833  M00S05830.sslabel +++|            END
05834  M00S05831.sslabel +++|
05835  M00S05832.sslabel +++|          REQCODE = REQTYP4"LOAD$CART";
05836  M00S05833.sslabel +++|          CALL4(REQCODE,DRD$NUM,CART$CSN,PK$Y[0],PK$Z[0],RESP$CODE);
05837  M00S05834.sslabel +++|          IF RESP$CODE EQ RESPTYP4"CELL$EMP"
05838  M00S05835.sslabel +++|          THEN
05839  M00S05836.sslabel +++|            BEGIN  # REMOVE LOST CARTRIDGE FROM FAMILY #
05840  M00S05837.sslabel +++|            REQCODE = REQTYP3"RMV$CART";
05841  M00S05838.sslabel +++|            CALL3(REQCODE,PK$CSU$ENT,0,0,RESP$CODE);
05842  M00S05839.sslabel +++|            IF RESP$CODE EQ RESPTYP3"MSC$NEMPTY"
05843  M00S05840.sslabel +++|            THEN
05844  M00S05841.sslabel +++|              BEGIN
05845  M00S05842.sslabel +++|              LBMSG$LINE[0] = " CARTRIDGE NOT EMPTY,         .";
05846  M00S05843.sslabel +++|              LBMSG$CSN[0] = CM$CSND[0];
05847  M00S05844.sslabel +++|              MESSAGE(LBMSG$BUF[0],SYSUDF1);
05848  M00S05845.sslabel +++|              TEST I;
05849  M00S05846.sslabel +++|              END
05850  M00S05847.sslabel +++|
05851  M00S05848.sslabel +++|            IF RESP$CODE NQ RESPTYP3"OK3"
05852  M00S05849.sslabel +++|            THEN
05853  M00S05850.sslabel +++|              BEGIN
05854  M00S05851.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP3");
05855  M00S05852.sslabel +++|              END
05856  M00S05853.sslabel +++|
05857  M00S05854.sslabel +++|            RETURN;
05858  M00S05855.sslabel +++|            END  # REMOVE LOST CARTRIDGE FROM FAMILY #
05859  M00S05856.sslabel +++|
05860  M00S05857.sslabel +++|          ELSE
05861  M00S05858.sslabel +++|            BEGIN  # PROCESS ERROR STATUS #
05862  M00S05859.sslabel +++|            IF RESP$CODE EQ RESPTYP4"OK4"
05863  M00S05860.sslabel +++|            THEN
05864  M00S05861.sslabel +++|              BEGIN
05865  M00S05862.sslabel +++|              REQCODE = REQTYP4"UNLD$CART";
05866  M00S05863.sslabel +++|              CALL4(REQCODE,0,0,PK$Y[0],PK$Z[0],RESP$CODE);
05867  M00S05864.sslabel +++|              IF RESP$CODE NQ RESPTYP4"OK4"
05868  M00S05865.sslabel +++|              THEN
05869  M00S05866.sslabel +++|                BEGIN
05870  M00S05867.sslabel +++|                LBRESP(RESP$CODE,TYP"TYP4");
05871  M00S05868.sslabel +++|                RETURN;
05872  M00S05869.sslabel +++|                END
05873  M00S05870.sslabel +++|
05874  M00S05871.sslabel +++|              ERRCODE = S"LOST$SET";
05875  M00S05872.sslabel +++|              LBERR(ERRCODE);
05876  M00S05873.sslabel +++|              RETURN;
05877  M00S05874.sslabel +++|              END
05878  M00S05875.sslabel +++|
05879  M00S05876.sslabel +++|            ELSE                     # PROCESS DETAIL STATUS #
05880  M00S05877.sslabel +++|              BEGIN
05881  M00S05878.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
05882  M00S05879.sslabel +++|              RETURN;
05883  M00S05880.sslabel +++|              END
05884  M00S05881.sslabel +++|
05885  M00S05882.sslabel +++|            END  # PROCESS ERROR STATUS #
05886  M00S05883.sslabel +++|
05887  M00S05884.sslabel +++|          END  # *LOST* OPTION SPECIFIED #
05888  M00S05885.sslabel +++|
05889  M00S05886.sslabel +++|#
05890  M00S05887.sslabel +++|*     CHECK CARTRIDGE ASSIGNMENT AND *PT* OPTION.
05891  M00S05888.sslabel +++|#
05892  M00S05889.sslabel +++|
05893  M00S05890.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SCRPOOL" AND LBARG$PT[0] EQ "P"
05894  M00S05891.sslabel +++|        THEN                         # IGNORE THE CARTRIDGE #
05895  M00S05892.sslabel +++|          BEGIN
05896  M00S05893.sslabel +++|          TEST I;
05897  M00S05894.sslabel +++|          END
05898  M00S05895.sslabel +++|
05899  M00S05896.sslabel +++|#
05900  M00S05897.sslabel +++|*     FIND EMPTY OUTPUT DRAWER OR CUBE IN POOL.
05901  M00S05898.sslabel +++|#
05902  M00S05899.sslabel +++|
05903  M00S05900.sslabel +++|        IF LBARG$PT[0] EQ "D"
05904  M00S05901.sslabel +++|        THEN
05905  M00S05902.sslabel +++|          BEGIN  # FIND EMPTY OUTPUT DRAWER #
05906  M00S05903.sslabel +++|          P<SMUMAP> = LOC(PT$CSU$ENT[0]);
05907  M00S05904.sslabel +++|          PT$Y[0] = 12;
05908  M00S05905.sslabel +++|          PT$Z[0] = 0;
05909  M00S05906.sslabel +++|          CM$FCTORD[0] = 0;
05910  M00S05907.sslabel +++|          CM$FMLYNM[0] = "";
05911  M00S05908.sslabel +++|          END  # FIND EMPTY OUTPUT DRAWER #
05912  M00S05909.sslabel +++|
05913  M00S05910.sslabel +++|        ELSE
05914  M00S05911.sslabel +++|          BEGIN  # FIND EMPTY CUBE IN POOL #
05915  M00S05912.sslabel +++|          SERTYPE = S"ASSIGN";
05916  M00S05913.sslabel +++|          SP$CODE = CUBSTAT"SCRPOOL";
05917  M00S05914.sslabel +++|          SERCSU(SERTYPE,0,0,SP$CODE,"","",0,PT$CSU$ENT[0],FLAG);
05918  M00S05915.sslabel +++|          IF FLAG NQ 0
05919  M00S05916.sslabel +++|          THEN                       # NO EMPTY CUBES IN FAMILY/POOL #
05920  M00S05917.sslabel +++|            BEGIN
05921  M00S05918.sslabel +++|            NUMDONE = I - 1;
05922  M00S05919.sslabel +++|            ERRCODE = S"NO$EMPCBFP";
05923  M00S05920.sslabel +++|            LBERR(ERRCODE);          # DO ERROR PROCESSING #
05924  M00S05921.sslabel +++|            RETURN;
05925  M00S05922.sslabel +++|            END
05926  M00S05923.sslabel +++|
05927  M00S05924.sslabel +++|          END  # FIND EMPTY CUBE IN POOL #
05928  M00S05925.sslabel +++|
05929  M00S05926.sslabel +++|#
05930  M00S05927.sslabel +++|*     GET CARTRIDGE AND CHECK ITS LABEL.
05931  M00S05928.sslabel +++|#
05932  M00S05929.sslabel +++|
05933  M00S05930.sslabel +++|        REQCODE = REQTYP4"LOAD$CART";
05934  M00S05931.sslabel +++|        CALL4(REQCODE,DRD$NUM,CART$CSN,PK$Y[0],PK$Z[0],RESP$CODE);
05935  M00S05932.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"  ##
05936  M00S05933.sslabel +++|        THEN
05937  M00S05934.sslabel +++|          BEGIN  # LOAD FAILS #
05938  M00S05935.sslabel +++|          IF RESP$CODE EQ RESPTYP4"CELL$EMP"
05939  M00S05936.sslabel +++|          THEN
05940  M00S05937.sslabel +++|            BEGIN  # SET UP ERROR FLAGS #
05941  M00S05938.sslabel +++|            P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05942  M00S05939.sslabel +++|            IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
05943  M00S05940.sslabel +++|            THEN                     # SET ERROR FLAG IN SMMAP ENTRY #
05944  M00S05941.sslabel +++|              BEGIN
05945  M00S05942.sslabel +++|              CM$FLAG1[0] = TRUE;
05946  M00S05943.sslabel +++|              CALL3(REQTYP3"UPD$MAP",PK$CSU$ENT[0],0,0,FLAG);
05947  M00S05944.sslabel +++|              END
05948  M00S05945.sslabel +++|
05949  M00S05946.sslabel +++|            ELSE                     # SET LOST FLAG IN CATALOG ENTRY #
05950  M00S05947.sslabel +++|              BEGIN
05951  M00S05948.sslabel +++|              CALL3(REQTYP3"UPD$CAT",PK$CSU$ENT[0],UCF"LOST",1,FLAG);
05952  M00S05949.sslabel +++|              END
05953  M00S05950.sslabel +++|
05954  M00S05951.sslabel +++|            NUMDONE = I - 1;
05955  M00S05952.sslabel +++|            ERRCODE = S"CR$NOTFND";  # CARTRIDGE NOT FOUND #
05956  M00S05953.sslabel +++|            LBERR(ERRCODE);
05957  M00S05954.sslabel +++|            IF FLAG NQ RESPTYP3"OK3"
05958  M00S05955.sslabel +++|            THEN
05959  M00S05956.sslabel +++|              BEGIN
05960  M00S05957.sslabel +++|              LBRESP(FLAG,TYP"TYP3");
05961  M00S05958.sslabel +++|              RETURN;
05962  M00S05959.sslabel +++|              END
05963  M00S05960.sslabel +++|
05964  M00S05961.sslabel +++|            RETURN;
05965  M00S05962.sslabel +++|            END  # SET UP ERROR FLAGS #
05966  M00S05963.sslabel +++|
05967  M00S05964.sslabel +++|          ELSE                       # PROCESS RESPONSE CODE #
05968  M00S05965.sslabel +++|            BEGIN
05969  M00S05966.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
05970  M00S05967.sslabel +++|            IF RESP$CODE EQ RESPTYP4"CART$LB$ERR"  ##
05971  M00S05968.sslabel +++|              OR RESP$CODE EQ RESPTYP4"UNK$CART"
05972  M00S05969.sslabel +++|            THEN            # UNLOAD CARTRIDGE TO EXIT TRAY #
05973  M00S05970.sslabel +++|              BEGIN
05974  M00S05971.sslabel +++|              CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,SM$TY$Z,  ##
05975  M00S05972.sslabel +++|                RESP$CODE);
05976  M00S05973.sslabel +++|              END
05977  M00S05974.sslabel +++|
05978  M00S05975.sslabel +++|            RETURN;
05979  M00S05976.sslabel +++|            END
05980  M00S05977.sslabel +++|
05981  M00S05978.sslabel +++|          END  # LOAD FAILS #
05982  M00S05979.sslabel +++|
05983  M00S05980.sslabel +++|
05984  M00S05981.sslabel +++|        P<SMUMAP> = LOC(PK$CSU$ENT[0]);
05985  M00S05982.sslabel +++|        P<LABEL$CART> = OLDLABP;
05986  M00S05983.sslabel +++|
05987  M00S05984.sslabel +++|#
05988  M00S05985.sslabel +++|*     VERIFY VSN, Y, Z IN THE LABEL.
05989  M00S05986.sslabel +++|#
05990  M00S05987.sslabel +++|
05991  M00S05988.sslabel +++|        IF LAB$CSND[0] NQ CM$CSND[0]  ##
05992  M00S05989.sslabel +++|          AND(LAB$Y[0] NQ PK$Y[0] OR LAB$Z[0] NQ PK$Z[0])
05993  M00S05990.sslabel +++|        THEN
05994  M00S05991.sslabel +++|          BEGIN  # TEST Y,Z #
05995  M00S05992.sslabel +++|          REQCODE = REQTYP4"UNLD$CART";
05996  M00S05993.sslabel +++|          CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
05997  M00S05994.sslabel +++|          IF RESP$CODE NQ RESPTYP4"OK4"
05998  M00S05995.sslabel +++|          THEN
05999  M00S05996.sslabel +++|            BEGIN
06000  M00S05997.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
06001  M00S05998.sslabel +++|            RETURN;
06002  M00S05999.sslabel +++|            END
06003  M00S06000.sslabel +++|
06004  M00S06001.sslabel +++|          ERRCODE = S"M86$HARDWR";   # MSF HARDWARE PROBLEM #
06005  M00S06002.sslabel +++|          LBERR(ERRCODE);
06006  M00S06003.sslabel +++|          RETURN;
06007  M00S06004.sslabel +++|          END  # TEST Y,Z #
06008  M00S06005.sslabel +++|
06009  M00S06006.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
06010  M00S06007.sslabel +++|        THEN                         # CARTRIDGE FROM POOL #
06011  M00S06008.sslabel +++|          BEGIN
06012  M00S06009.sslabel +++|          LD$CNT = LAB$CRLD[0];      # USE OLD LOAD/PASS/ERROR COUNTS #
06013  M00S06010.sslabel +++|          LD$ERR = LAB$LDER[0];
06014  M00S06011.sslabel +++|          SR$ERR = LAB$SRDE[0];
06015  M00S06012.sslabel +++|          SW$ERR = LAB$SWRE1[0];
06016  M00S06013.sslabel +++|          B<28,4>SW$ERR = LAB$SWRE[0];
06017  M00S06014.sslabel +++|          HR$ERR = LAB$HRDE[0];
06018  M00S06015.sslabel +++|          STR$RD = LAB$STRD[0];
06019  M00S06016.sslabel +++|          STR$WR = LAB$STWR1[0];
06020  M00S06017.sslabel +++|          B<36,24>STR$WR = LAB$STWR[0];
06021  M00S06018.sslabel +++|          STR$DM = LAB$STDM[0];
06022  M00S06019.sslabel +++|          END
06023  M00S06020.sslabel +++|
06024  M00S06021.sslabel +++|#
06025  M00S06022.sslabel +++|*     CHECK IF CSU, Y, Z, FAMILY, AND SUBFAMILY DO NOT
06026  M00S06023.sslabel +++|*     AGREE IN OLDLABEL AND SMMAP ENTRY.
06027  M00S06024.sslabel +++|#
06028  M00S06025.sslabel +++|
06029  M00S06026.sslabel +++|        IF LAB$SMID[0] NQ LBARG$SMID[0]
06030  M00S06027.sslabel +++|          OR LAB$Y[0] NQ PK$Y[0]
06031  M00S06028.sslabel +++|          OR LAB$Z[0] NQ PK$Z[0]
06032  M00S06029.sslabel +++|          OR LAB$FMLY[0] NQ CM$FMLYNM[0]
06033  M00S06030.sslabel +++|          OR LAB$SF[0] NQ CM$SUB[0]
06034  M00S06031.sslabel +++|        THEN
06035  M00S06032.sslabel +++|          BEGIN  # SET UP ERROR FLAGS #
06036  M00S06033.sslabel +++|          IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
06037  M00S06034.sslabel +++|          THEN                       # SET ERROR FLAG IN SMMAP ENTRY #
06038  M00S06035.sslabel +++|            BEGIN
06039  M00S06036.sslabel +++|            CM$FLAG1[0] = TRUE;
06040  M00S06037.sslabel +++|            CALL3(REQTYP3"UPD$MAP",PK$CSU$ENT[0],0,0,FLAG);
06041  M00S06038.sslabel +++|            END
06042  M00S06039.sslabel +++|
06043  M00S06040.sslabel +++|          ELSE                       # SET LOST FLAG IN CATALOG ENTRY #
06044  M00S06041.sslabel +++|            BEGIN
06045  M00S06042.sslabel +++|            CALL3(REQTYP3"UPD$CAT",PK$CSU$ENT[0],UCF"LOST",1,FLAG);
06046  M00S06043.sslabel +++|            END
06047  M00S06044.sslabel +++|
06048  M00S06045.sslabel +++|          IF FLAG NQ RESPTYP3"OK3"
06049  M00S06046.sslabel +++|          THEN
06050  M00S06047.sslabel +++|            BEGIN
06051  M00S06048.sslabel +++|            LBRESP(FLAG,TYP"TYP3");
06052  M00S06049.sslabel +++|            REQCODE = REQTYP4"UNLD$CART";
06053  M00S06050.sslabel +++|            CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06054  M00S06051.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06055  M00S06052.sslabel +++|            THEN
06056  M00S06053.sslabel +++|              BEGIN
06057  M00S06054.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06058  M00S06055.sslabel +++|              RETURN;
06059  M00S06056.sslabel +++|              END
06060  M00S06057.sslabel +++|
06061  M00S06058.sslabel +++|            RETURN;
06062  M00S06059.sslabel +++|            END
06063  M00S06060.sslabel +++|
06064  M00S06061.sslabel +++|          DLABFLD;
06065  M00S06062.sslabel +++|          REQCODE = REQTYP4"UNLD$CART";
06066  M00S06063.sslabel +++|          CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06067  M00S06064.sslabel +++|          IF RESP$CODE NQ RESPTYP4"OK4"
06068  M00S06065.sslabel +++|          THEN
06069  M00S06066.sslabel +++|            BEGIN
06070  M00S06067.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP4");
06071  M00S06068.sslabel +++|            RETURN;
06072  M00S06069.sslabel +++|            END
06073  M00S06070.sslabel +++|
06074  M00S06071.sslabel +++|          ERRCODE = S"UNXP$CYZFS";
06075  M00S06072.sslabel +++|          LBERR(ERRCODE);            # DO ERROR PROCESSING #
06076  M00S06073.sslabel +++|          RETURN;
06077  M00S06074.sslabel +++|          END  # SET UP ERROR FLAGS #
06078  M00S06075.sslabel +++|
06079  M00S06076.sslabel +++|#
06080  M00S06077.sslabel +++|*     GENERATE LABEL AND UPDATE SMUMAP.
06081  M00S06078.sslabel +++|#
06082  M00S06079.sslabel +++|
06083  M00S06080.sslabel +++|        GENLAB(LABTYPE"SCR$LAB",PT$CSU$ENT[0],LD$CNT,LD$ERR,  ##
06084  M00S06081.sslabel +++|          SR$ERR,SW$ERR,HR$ERR,STR$RD,STR$WR,STR$DM);
06085  M00S06082.sslabel +++|        P<LABEL$CART> = NEWLABP;
06086  M00S06083.sslabel +++|        IF B<0,8>LAB$CSN[0] NQ X"C9"      ##
06087  M00S06084.sslabel +++|          OR B<8,8>LAB$CSN[0] NQ X"C2" OR B<16,8>LAB$CSN[0] NQ X"D4"
06088  M00S06085.sslabel +++|        THEN             # CARTRIDGE IS NOT IBM #
06089  M00S06086.sslabel +++|          BEGIN
06090  M00S06087.sslabel +++|          LAB$CCOD[0] = OTHCART;
06091  M00S06088.sslabel +++|          END
06092  M00S06089.sslabel +++|
06093  M00S06090.sslabel +++|        ELSE
06094  M00S06091.sslabel +++|          BEGIN
06095  M00S06092.sslabel +++|          LAB$CCOD[0] = IBMCART;
06096  M00S06093.sslabel +++|          END
06097  M00S06094.sslabel +++|
06098  M00S06095.sslabel +++|        LAB$CRLD[0] = LAB$CRLD[0] + 1;  # UPDATE LOAD/PASS COUNTS #
06099  M00S06096.sslabel +++|        IF LBARG$PT[0] EQ "D"
06100  M00S06097.sslabel +++|        THEN                         # CLEAR CSU, Y, Z FIELDS #
06101  M00S06098.sslabel +++|          BEGIN
06102  M00S06099.sslabel +++|          LAB$SMID[0] = 0;
06103  M00S06100.sslabel +++|          LAB$Y[0] = 12;             # SET TO CAS EXIT #
06104  M00S06101.sslabel +++|          LAB$Z[0] = 0;
06105  M00S06102.sslabel +++|          END
06106  M00S06103.sslabel +++|
06107  M00S06104.sslabel +++|        P<SMUMAP>= LOC(PK$CSU$ENT[0]);
06108  M00S06105.sslabel +++|        IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
06109  M00S06106.sslabel +++|        THEN                         # ASSIGNED TO FAMILY #
06110  M00S06107.sslabel +++|          BEGIN
06111  M00S06108.sslabel +++|          REQCODE = REQTYP3"RMV$CART";
06112  M00S06109.sslabel +++|          END
06113  M00S06110.sslabel +++|
06114  M00S06111.sslabel +++|        ELSE                         # ASSIGNED TO POOL #
06115  M00S06112.sslabel +++|          BEGIN
06116  M00S06113.sslabel +++|          REQCODE = REQTYP3"UPD$MAP";
06117  M00S06114.sslabel +++|          CM$CSND[0] = " ";          # REMOVE VSN FROM SMMAP ENTRY #
06118  M00S06115.sslabel +++|          CM$CCOD[0] = " ";
06119  M00S06116.sslabel +++|          CM$FLAG1[0] = FALSE;       # CLEAR ERROR FLAG IN MAP ENTRY #
06120  M00S06117.sslabel +++|          END
06121  M00S06118.sslabel +++|
06122  M00S06119.sslabel +++|        CALL3(REQCODE,PK$CSU$ENT[0],0,0,RESP$CODE);
06123  M00S06120.sslabel +++|        IF RESP$CODE NQ RESPTYP3"OK3"
06124  M00S06121.sslabel +++|        THEN                         # FAMILY/POOL REMOVAL FAILS #
06125  M00S06122.sslabel +++|          BEGIN  # PROCESS ERROR RESPONSE #
06126  M00S06123.sslabel +++|          IF RESP$CODE NQ RESPTYP3"MSC$NEMPTY"
06127  M00S06124.sslabel +++|          THEN
06128  M00S06125.sslabel +++|            BEGIN
06129  M00S06126.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP3");
06130  M00S06127.sslabel +++|            REQCODE = REQTYP4"UNLD$CART";
06131  M00S06128.sslabel +++|            CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06132  M00S06129.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06133  M00S06130.sslabel +++|            THEN
06134  M00S06131.sslabel +++|              BEGIN
06135  M00S06132.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06136  M00S06133.sslabel +++|              RETURN;
06137  M00S06134.sslabel +++|              END
06138  M00S06135.sslabel +++|
06139  M00S06136.sslabel +++|            RETURN;
06140  M00S06137.sslabel +++|            END
06141  M00S06138.sslabel +++|
06142  M00S06139.sslabel +++|          ELSE
06143  M00S06140.sslabel +++|            BEGIN  # PROCESS CARTRIDGE NOT EMPTY #
06144  M00S06141.sslabel +++|
06145  M00S06142.sslabel +++|
06146  M00S06143.sslabel +++|#
06147  M00S06144.sslabel +++|*     UNLOAD CARTRIDGE BACK AT ORIGINAL LOCATION.
06148  M00S06145.sslabel +++|#
06149  M00S06146.sslabel +++|
06150  M00S06147.sslabel +++|            CALL4(REQTYP4"UNLD$CART",DRD$NUM,CART$CSN,PK$Y[0], ##
06151  M00S06148.sslabel +++|              PK$Z[0],RESP$CODE);
06152  M00S06149.sslabel +++|            IF RESP$CODE NQ RESPTYP4"OK4"
06153  M00S06150.sslabel +++|            THEN
06154  M00S06151.sslabel +++|              BEGIN
06155  M00S06152.sslabel +++|              LBRESP(RESP$CODE,TYP"TYP4");
06156  M00S06153.sslabel +++|              RETURN;
06157  M00S06154.sslabel +++|              END
06158  M00S06155.sslabel +++|
06159  M00S06156.sslabel +++|            ERRCODE = S"CR$NTEMPT";
06160  M00S06157.sslabel +++|            LBERR(ERRCODE);
06161  M00S06158.sslabel +++|            END  # PROCESS CARTRIDGE NOT EMPTY #
06162  M00S06159.sslabel +++|
06163  M00S06160.sslabel +++|          END  # PROCESS ERROR RESPONSE #
06164  M00S06161.sslabel +++|
06165  M00S06162.sslabel +++|#
06166  M00S06163.sslabel +++|*     WRITE NEW LABEL AND PUT CARTRIDGE IN NEW LOCATION.
06167  M00S06164.sslabel +++|#
06168  M00S06165.sslabel +++|
06169  M00S06166.sslabel +++|        REQCODE = REQTYP4"WRT$LAB";
06170  M00S06167.sslabel +++|        CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y,PT$Z,RESP$CODE);
06171  M00S06168.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06172  M00S06169.sslabel +++|        THEN                         # *WRITE* FAILS #
06173  M00S06170.sslabel +++|          BEGIN
06174  M00S06171.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06175  M00S06172.sslabel +++|          RETURN;
06176  M00S06173.sslabel +++|          END
06177  M00S06174.sslabel +++|
06178  M00S06175.sslabel +++|        IF LBARG$PT[0] EQ "P"
06179  M00S06176.sslabel +++|        THEN
06180  M00S06177.sslabel +++|          BEGIN  # ADD CARTRIDGE TO POOL #
06181  M00S06178.sslabel +++|          REQCODE = REQTYP3"UPD$MAP";
06182  M00S06179.sslabel +++|          P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06183  M00S06180.sslabel +++|          CM$CSND[0] = LAB$CSND[0];
06184  M00S06181.sslabel +++|        CM$CCOD[0] = LAB$CCOD[0];
06185  M00S06182.sslabel +++|
06186  M00S06183.sslabel +++|#
06187  M00S06184.sslabel +++|*     ADD CARTRIDGE TO POOL.
06188  M00S06185.sslabel +++|#
06189  M00S06186.sslabel +++|
06190  M00S06187.sslabel +++|          CALL3(REQCODE,PT$CSU$ENT[0],0,0,RESP$CODE);
06191  M00S06188.sslabel +++|          IF RESP$CODE NQ RESPTYP3"OK3"
06192  M00S06189.sslabel +++|          THEN                       # MAP UPDATE FAILS #
06193  M00S06190.sslabel +++|            BEGIN
06194  M00S06191.sslabel +++|            LBRESP(RESP$CODE,TYP"TYP3");
06195  M00S06192.sslabel +++|            RETURN;
06196  M00S06193.sslabel +++|            END
06197  M00S06194.sslabel +++|
06198  M00S06195.sslabel +++|          END  # ADD CARTRIDGE TO POOL #
06199  M00S06196.sslabel +++|
06200  M00S06197.sslabel +++|        MFLUSH;                    # FLUSH MAP BUFFER #
06201  M00S06198.sslabel +++|        END
06202  M00S06199.sslabel +++|
06203  M00S06200.sslabel +++|
06204  M00S06201.sslabel +++|      RETURN;
06205  M00S06202.sslabel +++|
06206  M00S06203.sslabel +++|      END  # LBRMMSC #
06207  M00S06204.sslabel +++|
06208  M00S06205.sslabel +++|    TERM
06209  M00S06206.sslabel +++|PROC LBRSMSC;
06210  M00S06207.sslabel +++|# TITLE LBRSMSC - RESTORES A CARTRIDGE TO THE CSU.                    #
06211  M00S06208.sslabel +++|
06212  M00S06209.sslabel +++|      BEGIN  # LBRSMSC #
06213  M00S06210.sslabel +++|
06214  M00S06211.sslabel +++|#
06215  M00S06212.sslabel +++|**    LBRSMSC - RESTORES A CARTRIDGE TO THE CSU.
06216  M00S06213.sslabel +++|*
06217  M00S06214.sslabel +++|*     THIS PROC GETS A CARTRIDGE FROM THE INPUT DRAWER AND RETURNS
06218  M00S06215.sslabel +++|*     IT TO ITS ASSIGNED LOCATION.
06219  M00S06216.sslabel +++|*
06220  M00S06217.sslabel +++|*     PROC LBRSMSC.
06221  M00S06218.sslabel +++|*
06222  M00S06219.sslabel +++|*     ENTRY     CRACKED AND SYNTAX CHECKED DIRECTIVE
06223  M00S06220.sslabel +++|*               PARAMETERS SET UP IN COMMON AREA DEFINED
06224  M00S06221.sslabel +++|*               IN *COMTLBP*.
06225  M00S06222.sslabel +++|*
06226  M00S06223.sslabel +++|*     EXIT      CARTRIDGE RESTORED OR ERROR CONDITION.
06227  M00S06224.sslabel +++|*
06228  M00S06225.sslabel +++|*     NOTES     PROC *LBRSMSC* CHECKS THAT THERE IS A CARTRIDGE IN
06229  M00S06226.sslabel +++|*               AN INPUT DRAWER AS SPECIFIED, AND CALLS EXEC TO
06230  M00S06227.sslabel +++|*               BRING THE CARTRIDGE TO A DRIVE AND READ ITS LABEL.
06231  M00S06228.sslabel +++|*               IF THE LABEL HAS THE CORRECT *SM* NUMBER, AND IF
06232  M00S06229.sslabel +++|*               A SMMAP ENTRY IS FOUND WITH MATCHING VSN, FAMILY,
06233  M00S06230.sslabel +++|*               SUBFAMILY, AND COORDINATES, THEN EXEC IS CALLED TO
06234  M00S06231.sslabel +++|*               REPLACE THE CARTRIDGE AND UPDATE THE CATALOG.
06235  M00S06232.sslabel +++|#
06236  M00S06233.sslabel +++|
06237  M00S06234.sslabel +++|#
06238  M00S06235.sslabel +++|****  PROC LBRSMSC - XREF LIST BEGIN.
06239  M00S06236.sslabel +++|#
06240  M00S06237.sslabel +++|
06241  M00S06238.sslabel +++|      XREF
06242  M00S06239.sslabel +++|        BEGIN
06243  M00S06240.sslabel +++|        PROC CALL3;                  # ISSUES TYPE 3 CALLSS TO EXEC #
06244  M00S06241.sslabel +++|        PROC CALL4;                  # ISSUES TYPE 4 CALLSS TO EXEC #
06245  M00S06242.sslabel +++|        PROC DLABFLD;                # DISPLAY CARTRIDGE LABEL FIELDS #
06246  M00S06243.sslabel +++|        PROC LBERR;                  # *SSLABEL* ERROR PROCESSOR #
06247  M00S06244.sslabel +++|        PROC LBRESP;                 # RESPONSE CODE PROCESSOR #
06248  M00S06245.sslabel +++|        PROC SERCSU;                 # SEARCHES SMMAP #
06249  M00S06246.sslabel +++|        END
06250  M00S06247.sslabel +++|
06251  M00S06248.sslabel +++|#
06252  M00S06249.sslabel +++|****  PROC LBRSMSC - XREF LIST END.
06253  M00S06250.sslabel +++|#
06254  M00S06251.sslabel +++|
06255  M00S06252.sslabel +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
06256  M00S06253.sslabel +++|*CALL COMBFAS
06257  M00S06254.sslabel +++|*CALL COMBCPR
06258  M00S06255.sslabel +++|*CALL COMBLBL
06259  M00S06256.sslabel +++|*CALL COMBMAP
06260  M00S06257.sslabel +++|*CALL COMTERR
06261  M00S06258.sslabel +++|*CALL COMTLAB
06262  M00S06259.sslabel +++|*CALL COMTLBP
06263  M00S06260.sslabel +++|      ITEM CART$CSN   C(20);         # CARTRIDGE SERIAL NUMBER #
06264  M00S06261.sslabel +++|      ITEM CATFLD     U;             # CATALOG FIELD #
06265  M00S06262.sslabel +++|      ITEM CATVALUE   I;             # CATALOG VALUE #
06266  M00S06263.sslabel +++|      ITEM FLAG       I;             # ERROR FLAG #
06267  M00S06264.sslabel +++|      ITEM I          I;             # INDUCTION VARIABLE #
06268  M00S06265.sslabel +++|      ITEM REQCODE    I;             # REQUEST CODE #
06269  M00S06266.sslabel +++|      ITEM RESP$CODE  I;             # RESPONSE CODE #
06270  M00S06267.sslabel +++|      ITEM SERTYPE    S:SERCH$TYPE;  # SEARCH TYPE #
06271  M00S06268.sslabel +++|      ITEM SLOT       I;             # DRAWER NUMBER #
06272  M00S06269.sslabel +++|      ITEM SP$VSN     C(8);          # SPECIFIED *CSN* #
06273  M00S06270.sslabel +++|      ITEM SP$Y       I;             # SPECIFIED Y #
06274  M00S06271.sslabel +++|      ITEM SP$Z       I;             # SPECIFIED Z #
06275  M00S06272.sslabel +++|
06276  M00S06273.sslabel +++|
06277  M00S06274.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(5);   # *PUT* SMMAP ENTRY #
06278  M00S06275.sslabel +++|        BEGIN
06279  M00S06276.sslabel +++|        ITEM PT$MAPENT  C(00,00,30);  # THREE WORD MAP ENTRY #
06280  M00S06277.sslabel +++|        ITEM PT$Y       U(03,00,30);  # Y COORDINATE #
06281  M00S06278.sslabel +++|        ITEM PT$Z       U(03,30,30);  # Z COORDINATE #
06282  M00S06279.sslabel +++|        ITEM PT$GR      U(04,00,07);  # GROUP #
06283  M00S06280.sslabel +++|        ITEM PT$GRT     U(04,07,04);  # GROUP ORDINAL #
06284  M00S06281.sslabel +++|        END
06285  M00S06282.sslabel +++|
06286  M00S06283.sslabel +++|      BASED
06287  M00S06284.sslabel +++|      ARRAY TEMP$LAB [0:0] P(1);
06288  M00S06285.sslabel +++|        BEGIN
06289  M00S06286.sslabel +++|        ITEM TEMP$LABW  U(00,00,60);
06290  M00S06287.sslabel +++|        END
06291  M00S06288.sslabel +++|
06292  M00S06289.sslabel +++|
06293  M00S06290.sslabel +++|                                               CONTROL EJECT;
06294  M00S06291.sslabel +++|
06295  M00S06292.sslabel +++|#
06296  M00S06293.sslabel +++|*     FIND CARTRIDGE IN SPECIFIED INPUT DRAWER AND LOAD IT.
06297  M00S06294.sslabel +++|#
06298  M00S06295.sslabel +++|
06299  M00S06296.sslabel +++|      REQCODE = REQTYP4"LOAD$CART";
06300  M00S06297.sslabel +++|      PT$Y[0] = 14;
06301  M00S06298.sslabel +++|      PT$Z[0] = 0;
06302  M00S06299.sslabel +++|      CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y[0],PT$Z[0],RESP$CODE);
06303  M00S06300.sslabel +++|      IF RESP$CODE NQ RESPTYP4"OK4"   ##
06304  M00S06301.sslabel +++|      THEN                           # LOAD FAILS #
06305  M00S06302.sslabel +++|        BEGIN
06306  M00S06303.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP4");
06307  M00S06304.sslabel +++|        RETURN;
06308  M00S06305.sslabel +++|        END
06309  M00S06306.sslabel +++|
06310  M00S06307.sslabel +++|      DRD$NUM = CPR$DRD[0];          # SET UP TRANSPORT ID #
06311  M00S06308.sslabel +++|
06312  M00S06309.sslabel +++|      P<LABEL$CART>  = OLDLABP;
06313  M00S06310.sslabel +++|
06314  M00S06311.sslabel +++|#
06315  M00S06312.sslabel +++|*     COMPARE THE CSU-ID, FAMILY AND THE SUBFAMILY IN THE LABEL
06316  M00S06313.sslabel +++|*     AGAINST THE USER SPECIFIED VALUES.
06317  M00S06314.sslabel +++|#
06318  M00S06315.sslabel +++|
06319  M00S06316.sslabel +++|      IF LAB$SMID[0] NQ LBARG$SM[0]
06320  M00S06317.sslabel +++|      THEN
06321  M00S06318.sslabel +++|        BEGIN
06322  M00S06319.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06323  M00S06320.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06324  M00S06321.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06325  M00S06322.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06326  M00S06323.sslabel +++|        THEN
06327  M00S06324.sslabel +++|          BEGIN
06328  M00S06325.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06329  M00S06326.sslabel +++|          RETURN;
06330  M00S06327.sslabel +++|          END
06331  M00S06328.sslabel +++|
06332  M00S06329.sslabel +++|        ERRCODE = S"UNXP$CYZFS";
06333  M00S06330.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06334  M00S06331.sslabel +++|        RETURN;
06335  M00S06332.sslabel +++|        END
06336  M00S06333.sslabel +++|
06337  M00S06334.sslabel +++|      SERTYPE = S"CSN$MATCH";
06338  M00S06335.sslabel +++|      SP$VSN = LAB$CSND[0];          # SEARCH SMMAP FOR VSN MATCH #
06339  M00S06336.sslabel +++|      SERCSU(SERTYPE,0,0,0,SP$VSN,0,0,PT$CSU$ENT[0],FLAG);
06340  M00S06337.sslabel +++|      IF FLAG NQ OK
06341  M00S06338.sslabel +++|      THEN                           # VSN NOT FOUND #
06342  M00S06339.sslabel +++|        BEGIN
06343  M00S06340.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06344  M00S06341.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06345  M00S06342.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06346  M00S06343.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06347  M00S06344.sslabel +++|        THEN
06348  M00S06345.sslabel +++|          BEGIN
06349  M00S06346.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06350  M00S06347.sslabel +++|          RETURN;
06351  M00S06348.sslabel +++|          END
06352  M00S06349.sslabel +++|
06353  M00S06350.sslabel +++|        ERRCODE = S"CSN$NOTFND";
06354  M00S06351.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06355  M00S06352.sslabel +++|        RETURN;
06356  M00S06353.sslabel +++|        END
06357  M00S06354.sslabel +++|
06358  M00S06355.sslabel +++|      P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06359  M00S06356.sslabel +++|
06360  M00S06357.sslabel +++|#
06361  M00S06358.sslabel +++|*     CHECK TO SEE IF LABEL AND MAP ENTRY DIFFER ON
06362  M00S06359.sslabel +++|*     Y, Z, FAMILY, OR SUBFAMILY.
06363  M00S06360.sslabel +++|#
06364  M00S06361.sslabel +++|
06365  M00S06362.sslabel +++|      IF LAB$Y[0] NQ PT$Y[0]         ##
06366  M00S06363.sslabel +++|        OR LAB$Z[0] NQ PT$Z[0]       ##
06367  M00S06364.sslabel +++|        OR LAB$FMLY[0] NQ CM$FMLYNM[0]  ##
06368  M00S06365.sslabel +++|        OR LAB$SF[0] NQ CM$SUB[0]
06369  M00S06366.sslabel +++|      THEN
06370  M00S06367.sslabel +++|        BEGIN
06371  M00S06368.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06372  M00S06369.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06373  M00S06370.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06374  M00S06371.sslabel +++|        THEN
06375  M00S06372.sslabel +++|          BEGIN
06376  M00S06373.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06377  M00S06374.sslabel +++|          RETURN;
06378  M00S06375.sslabel +++|          END
06379  M00S06376.sslabel +++|
06380  M00S06377.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06381  M00S06378.sslabel +++|        ERRCODE = S"UNXP$CYZFS";
06382  M00S06379.sslabel +++|        LBERR(ERRCODE);              # DO ERROR PROCESSING #
06383  M00S06380.sslabel +++|        RETURN;
06384  M00S06381.sslabel +++|        END
06385  M00S06382.sslabel +++|
06386  M00S06383.sslabel +++|#
06387  M00S06384.sslabel +++|*     CLEAR *LOST* FLAG IN THE CATALOG IF THE CARTRIDGE IS TO BE
06388  M00S06385.sslabel +++|*     RESTORED TO THE FAMILY OR CLEAR SMMAP ERROR FLAG IF THE
06389  M00S06386.sslabel +++|*     CARTRIDGE IS TO BE RESTORED TO THE POOL AND RETURN THE
06390  M00S06387.sslabel +++|*     CARTRIDGE TO ITS ASSIGNED LOCATION.
06391  M00S06388.sslabel +++|#
06392  M00S06389.sslabel +++|
06393  M00S06390.sslabel +++|
06394  M00S06391.sslabel +++|      IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
06395  M00S06392.sslabel +++|      THEN
06396  M00S06393.sslabel +++|        BEGIN  # CLEAR *LOST* FLAG #
06397  M00S06394.sslabel +++|        REQCODE = REQTYP3"UPD$CAT";
06398  M00S06395.sslabel +++|        CATFLD = UCF"LOST";
06399  M00S06396.sslabel +++|        CATVALUE = 0;                # CLEAR *LOST* FLAG IN CATALOG #
06400  M00S06397.sslabel +++|        CALL3(REQCODE,PT$CSU$ENT[0],CATFLD,CATVALUE,RESP$CODE);
06401  M00S06398.sslabel +++|        END  # CLEAR *LOST* FLAG #
06402  M00S06399.sslabel +++|
06403  M00S06400.sslabel +++|      ELSE
06404  M00S06401.sslabel +++|        BEGIN  # CLEAR SMMAP ERROR FLAG #
06405  M00S06402.sslabel +++|        P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06406  M00S06403.sslabel +++|        CM$FLAG1[0] = FALSE;
06407  M00S06404.sslabel +++|        REQCODE = REQTYP3"UPD$MAP";
06408  M00S06405.sslabel +++|        CALL3(REQCODE,PT$CSU$ENT[0],0,0,FLAG);
06409  M00S06406.sslabel +++|        END  # CLEAR SMMAP ERROR FLAG #
06410  M00S06407.sslabel +++|
06411  M00S06408.sslabel +++|      IF RESP$CODE NQ RESPTYP3"OK3"
06412  M00S06409.sslabel +++|      THEN                           # UPDATE CATALOG/MAP FAILED #
06413  M00S06410.sslabel +++|        BEGIN
06414  M00S06411.sslabel +++|        REQCODE = REQTYP4"UNLD$CART";
06415  M00S06412.sslabel +++|        CALL4(REQCODE,0,0,SM$EXIT$TY,SM$TY$Z,RESP$CODE);
06416  M00S06413.sslabel +++|        IF RESP$CODE NQ RESPTYP4"OK4"
06417  M00S06414.sslabel +++|        THEN
06418  M00S06415.sslabel +++|          BEGIN
06419  M00S06416.sslabel +++|          LBRESP(RESP$CODE,TYP"TYP4");
06420  M00S06417.sslabel +++|          RETURN;
06421  M00S06418.sslabel +++|          END
06422  M00S06419.sslabel +++|
06423  M00S06420.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06424  M00S06421.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP3");
06425  M00S06422.sslabel +++|        RETURN;
06426  M00S06423.sslabel +++|        END
06427  M00S06424.sslabel +++|
06428  M00S06425.sslabel +++|#
06429  M00S06426.sslabel +++|*     PUT CARTRIDGE IN ASSIGNED LOCATION.
06430  M00S06427.sslabel +++|#
06431  M00S06428.sslabel +++|
06432  M00S06429.sslabel +++|      P<LABEL$CART> = OLDLABP;
06433  M00S06430.sslabel +++|      P<TEMP$LAB> = NEWLABP;
06434  M00S06431.sslabel +++|      SLOWFOR I = 0 STEP 1 UNTIL LABLEN-1
06435  M00S06432.sslabel +++|      DO                             # MOVE LABEL TO NEW BUFFER #
06436  M00S06433.sslabel +++|        BEGIN
06437  M00S06434.sslabel +++|        TEMP$LABW[I] = LAB$W1[I];
06438  M00S06435.sslabel +++|        END
06439  M00S06436.sslabel +++|
06440  M00S06437.sslabel +++|      REQCODE = REQTYP4"UNLD$CART";
06441  M00S06438.sslabel +++|      CALL4(REQCODE,DRD$NUM,CART$CSN,PT$Y[0],PT$Z[0],RESP$CODE);
06442  M00S06439.sslabel +++|      IF RESP$CODE NQ RESPTYP4"OK4"
06443  M00S06440.sslabel +++|      THEN                           # PUT FAILS #
06444  M00S06441.sslabel +++|        BEGIN
06445  M00S06442.sslabel +++|        DLABFLD;                     # DISPLAY LABEL FIELDS #
06446  M00S06443.sslabel +++|        LBRESP(RESP$CODE,TYP"TYP4");
06447  M00S06444.sslabel +++|        END
06448  M00S06445.sslabel +++|
06449  M00S06446.sslabel +++|      RETURN;
06450  M00S06447.sslabel +++|
06451  M00S06448.sslabel +++|      END  # LBRSMSC #
06452  M00S06449.sslabel +++|
06453  M00S06450.sslabel +++|    TERM
06454  M00S06451.sslabel +++|PROC LBSTCLR;
06455  M00S06452.sslabel +++|# TITLE LBSTCLR - STORES A *CE* CARTRIDGE IN 0,0 OR 0,15.             #
06456  M00S06453.sslabel +++|
06457  M00S06454.sslabel +++|      BEGIN  # LBSTCLR #
06458  M00S06455.sslabel +++|
06459  M00S06456.sslabel +++|#
06460  M00S06457.sslabel +++|**    LBSTCLR - STORES A *CE* CARTRIDGE IN 0,0 OR 0,15.
06461  M00S06458.sslabel +++|*
06462  M00S06459.sslabel +++|*     THIS PROC STORES A SPECIAL CARTRIDGE IN ONE OF TWO SPECIFIC
06463  M00S06460.sslabel +++|*     LOCATIONS.
06464  M00S06461.sslabel +++|*
06465  M00S06462.sslabel +++|*     PROC LBSTCLR.
06466  M00S06463.sslabel +++|*
06467  M00S06464.sslabel +++|*     ENTRY       (LBARG$CC) = IF EQUAL TO 0, STORE CARTRIDGE FROM
06468  M00S06465.sslabel +++|*                              DRAWER TO LOCATION 0,0.
06469  M00S06466.sslabel +++|*                              IF EQUAL TO 15, STORE INTO 0,15.
06470  M00S06467.sslabel +++|*
06471  M00S06468.sslabel +++|*     EXIT        CARTRIDGE IN LOCATION SPECIFIED.
06472  M00S06469.sslabel +++|*
06473  M00S06470.sslabel +++|#
06474  M00S06471.sslabel +++|
06475  M00S06472.sslabel +++|      DEF LISTCON #0#;               # DO NOT DEF LIST COMDECKS #
06476  M00S06473.sslabel +++|
06477  M00S06474.sslabel +++|#
06478  M00S06475.sslabel +++|****  PROC LBSTCLR - XREF LIST BEGIN.
06479  M00S06476.sslabel +++|#
06480  M00S06477.sslabel +++|
06481  M00S06478.sslabel +++|      XREF
06482  M00S06479.sslabel +++|        BEGIN
06483  M00S06480.sslabel +++|        PROC CALL4;                  # MAKE TYPE 4 REQUESTS #
06484  M00S06481.sslabel +++|        PROC CKLAB;                  # CHECK LABEL #
06485  M00S06482.sslabel +++|        PROC GENLAB;      # GENERATE CARTRIDGE LABEL #
06486  M00S06483.sslabel +++|        PROC LBERR;                  # PROCESS ERROR RESPONSE #
06487  M00S06484.sslabel +++|        PROC LBRESP;                 # PROCESS ERROR FROM EXEC #
06488  M00S06485.sslabel +++|        PROC SERCSU;      # SEARCH SMMAP #
06489  M00S06486.sslabel +++|        END
06490  M00S06487.sslabel +++|
06491  M00S06488.sslabel +++|#
06492  M00S06489.sslabel +++|****  PROC LBSTCLR - XREF LIST END.
06493  M00S06490.sslabel +++|#
06494  M00S06491.sslabel +++|
06495  M00S06492.sslabel +++|*CALL COMBFAS
06496  M00S06493.sslabel +++|*CALL COMBCMD
06497  M00S06494.sslabel +++|*CALL COMBCPR
06498  M00S06495.sslabel +++|*CALL COMBLBL
06499  M00S06496.sslabel +++|*CALL COMBMAP
06500  M00S06497.sslabel +++|*CALL COMTERR
06501  M00S06498.sslabel +++|*CALL COMTLAB
06502  M00S06499.sslabel +++|*CALL COMTLBP
06503  M00S06500.sslabel +++|
06504  M00S06501.sslabel +++|      ITEM FLAG       U;             # RESPONSE FLAG #
06505  M00S06502.sslabel +++|      ITEM Y          U;             # Y COORDINATE #
06506  M00S06503.sslabel +++|      ITEM Z          U;             # Z COORDINATE #
06507  M00S06504.sslabel +++|      ITEM SERTYPE S:SERCH$TYPE;   # TYPE OF SERACH #
06508  M00S06505.sslabel +++|
06509  M00S06506.sslabel +++|      ARRAY PT$CSU$ENT [0:0] P(4); # *PUT* SMMAP ENTRY #
06510  M00S06507.sslabel +++|        BEGIN
06511  M00S06508.sslabel +++|        ITEM PT$MAPENT  C(00,00,30); # THREE WORD MAP ENTRY #
06512  M00S06509.sslabel +++|        ITEM PT$Y       U(03,00,30); # Y COORDINATE #
06513  M00S06510.sslabel +++|        ITEM PT$Z       U(03,30,30); # Z COORDINATE #
06514  M00S06511.sslabel +++|        END
06515  M00S06512.sslabel +++|
06516  M00S06513.sslabel +++|                                               CONTROL EJECT;
06517  M00S06514.sslabel +++|
06518  M00S06515.sslabel +++|#
06519  M00S06516.sslabel +++|*     LOAD CARTRIDGE FROM INPUT DRAWER AND READ LABEL.
06520  M00S06517.sslabel +++|#
06521  M00S06518.sslabel +++|
06522  M00S06519.sslabel +++|      Y = SM$ENT$TY;
06523  M00S06520.sslabel +++|      Z = SM$TY$Z;
06524  M00S06521.sslabel +++|      CALL4(REQTYP4"LOAD$CART",0,0,Y,Z,FLAG);
06525  M00S06522.sslabel +++|      IF FLAG NQ RESPTYP4"OK4"   ##
06526  M00S06523.sslabel +++|        AND FLAG NQ RESPTYP4"UNK$CART"  ##
06527  M00S06524.sslabel +++|        AND FLAG NQ RESPTYP4"CART$LB$ERR"
06528  M00S06525.sslabel +++|      THEN
06529  M00S06526.sslabel +++|        BEGIN
06530  M00S06527.sslabel +++|        CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,Z,FLAG);
06531  M00S06528.sslabel +++|        IF FLAG NQ RESPTYP4"OK4"
06532  M00S06529.sslabel +++|        THEN
06533  M00S06530.sslabel +++|          BEGIN
06534  M00S06531.sslabel +++|          LBRESP(FLAG,TYP"TYP4");
06535  M00S06532.sslabel +++|          END
06536  M00S06533.sslabel +++|
06537  M00S06534.sslabel +++|        ERRCODE = S"M86$HARDWR";
06538  M00S06535.sslabel +++|        LBERR(ERRCODE);
06539  M00S06536.sslabel +++|        RETURN;
06540  M00S06537.sslabel +++|        END
06541  M00S06538.sslabel +++|
06542  M00S06539.sslabel +++|#
06543  M00S06540.sslabel +++|*     SERACH SMMAP FOR DUPLICATE *CSN*.
06544  M00S06541.sslabel +++|#
06545  M00S06542.sslabel +++|
06546  M00S06543.sslabel +++|      SERTYPE = S"CSN$MATCH";
06547  M00S06544.sslabel +++|      SERCSU(SERTYPE,0,0,0,LAB$CSND[0],0,0,PT$CSU$ENT[0],FLAG);
06548  M00S06545.sslabel +++|      IF FLAG EQ 0
06549  M00S06546.sslabel +++|      THEN              # *CSN* IN MAP #
06550  M00S06547.sslabel +++|        BEGIN
06551  M00S06548.sslabel +++|        CALL4(REQTYP4"UNLD$CART",0,0,SM$EXIT$TY,SM$TY$Z,FLAG);
06552  M00S06549.sslabel +++|        IF FLAG NQ RESPTYP4"OK4"
06553  M00S06550.sslabel +++|        THEN
06554  M00S06551.sslabel +++|          BEGIN
06555  M00S06552.sslabel +++|          LBRESP(FLAG,TYP"TYP4");
06556  M00S06553.sslabel +++|          RETURN;
06557  M00S06554.sslabel +++|          END
06558  M00S06555.sslabel +++|
06559  M00S06556.sslabel +++|        ERRCODE = S"DUPL$CSN";
06560  M00S06557.sslabel +++|        LBERR(ERRCODE);
06561  M00S06558.sslabel +++|        RETURN;
06562  M00S06559.sslabel +++|        END
06563  M00S06560.sslabel +++|
06564  M00S06561.sslabel +++|
06565  M00S06562.sslabel +++|#
06566  M00S06563.sslabel +++|*     PUT CARTRIDGE BACK TO DRAWER IF LABEL IS FROM FAMILY OR POOL.
06567  M00S06564.sslabel +++|#
06568  M00S06565.sslabel +++|
06569  M00S06566.sslabel +++|      P<LABEL$CART> = OLDLABP;
06570  M00S06567.sslabel +++|      CKLAB(FLAG);
06571  M00S06568.sslabel +++|      IF FLAG EQ LABTYPE"FAM$LAB"    ##
06572  M00S06569.sslabel +++|      THEN
06573  M00S06570.sslabel +++|        BEGIN
06574  M00S06571.sslabel +++|        ERRCODE = S"GOOD$LAB";
06575  M00S06572.sslabel +++|        LBERR(ERRCODE);
06576  M00S06573.sslabel +++|        RETURN;
06577  M00S06574.sslabel +++|        END
06578  M00S06575.sslabel +++|
06579  M00S06576.sslabel +++|
06580  M00S06577.sslabel +++|#
06581  M00S06578.sslabel +++|*     GENERATE NEW LABEL.
06582  M00S06579.sslabel +++|#
06583  M00S06580.sslabel +++|
06584  M00S06581.sslabel +++|      P<SMUMAP> = LOC(PT$CSU$ENT[0]);
06585  M00S06582.sslabel +++|      PT$Y[0] = 0;
06586  M00S06583.sslabel +++|      PT$Z[0] = LBARG$CC[0];
06587  M00S06584.sslabel +++|      CM$SUB[0] = 0;
06588  M00S06585.sslabel +++|      CM$FMLYNM[0] = " ";
06589  M00S06586.sslabel +++|      GENLAB(LABTYPE"SCR$LAB",PT$CSU$ENT[0],0,0,0,0,0,0);
06590  M00S06587.sslabel +++|      LAB$CLF[0] = 2;
06591  M00S06588.sslabel +++|      LAB$RCORD[0] = 6652;
06592  M00S06589.sslabel +++|
06593  M00S06590.sslabel +++|#
06594  M00S06591.sslabel +++|*     STORE CARTRIDGE.
06595  M00S06592.sslabel +++|#
06596  M00S06593.sslabel +++|
06597  M00S06594.sslabel +++|      CALL4(REQTYP4"WRT$LAB",0,0,PT$Y[0],PT$Z[0],FLAG);
06598  M00S06595.sslabel +++|      IF FLAG NQ RESPTYP4"OK4"
06599  M00S06596.sslabel +++|      THEN
06600  M00S06597.sslabel +++|        BEGIN
06601  M00S06598.sslabel +++|        LBRESP(FLAG,TYP"TYP4");
06602  M00S06599.sslabel +++|        RETURN;
06603  M00S06600.sslabel +++|        END
06604  M00S06601.sslabel +++|
06605  M00S06602.sslabel +++|
06606  M00S06603.sslabel +++|      END
06607  M00S06604.sslabel +++|
06608  M00S06605.sslabel +++|    TERM
06609  M00S06606.sslabel +++|PROC SERAST(FCTORD,FLAG);
06610  M00S06607.sslabel +++|# TITLE SERAST - SEARCHES THE AST FOR AN EMPTY CARTRIDGE.             #
06611  M00S06608.sslabel +++|
06612  M00S06609.sslabel +++|      BEGIN  # SERAST #
06613  M00S06610.sslabel +++|
06614  M00S06611.sslabel +++|#
06615  M00S06612.sslabel +++|**    SERAST - SEARCHES THE AST FOR AN EMPTY CARTRIDGE.
06616  M00S06613.sslabel +++|*
06617  M00S06614.sslabel +++|*     THIS PROC READS THE *AST* AND IFNDS THE FIRST EMPTY
06618  M00S06615.sslabel +++|*     CARTRIDGE IN A SPECIFIED GROUP.
06619  M00S06616.sslabel +++|*
06620  M00S06617.sslabel +++|*     PROC SERAST(FCTORD,FLAG)
06621  M00S06618.sslabel +++|*
06622  M00S06619.sslabel +++|*     ENTRY     (LB$BUFP) = FWA OF A BUFFER 1101B WORDS LONG.
06623  M00S06620.sslabel +++|*              (GROUP)  = IF GROUP = 0 THEN THE GROUP PARAMETER
06624  M00S06621.sslabel +++|*                         IS IGNORED. OTHERWISE, SELECT FROM THE
06625  M00S06622.sslabel +++|*                         SPECIFIED GROUP.
06626  M00S06623.sslabel +++|*
06627  M00S06624.sslabel +++|*      EXIT     (FCTORD) = FCT ORDINAL OF EMPTY CARTRIDGE, IF ANY.
06628  M00S06625.sslabel +++|*                          FREE, IF ANY.
06629  M00S06626.sslabel +++|*               (FLAG)   = ITEM INDICATING RESULT OF SEARCH.
06630  M00S06627.sslabel +++|*                          0,  EMPTY CARTRIDGE FOUND.
06631  M00S06628.sslabel +++|*                          1,  NO EMPTY CARTRIDGES.
06632  M00S06629.sslabel +++|*
06633  M00S06630.sslabel +++|*      NOTES    PROC *SERAST* READS THE *AST* FOR THE SPECIFIED
06634  M00S06631.sslabel +++|*               SUBFAMILY AND GROUP. THE *AST* IS SEARCHED
Proceed to Part 3
cdc/nos2.source/opl.opl871/deck/sslabel.002.txt ยท Last modified: by 127.0.0.1