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