*DECK APPLDISEN 
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRDSD 
PROC APPLDISEN(ORD,TYPE); 
# TITLE - APPLDISEN - ENABLE/DISABLE APPLICATION #
  
      BEGIN  # APPLDISEN #
  
# 
**    APPLDISEN - ENABLE/DISABLE APPLICATION
* 
*     EITHER ENABLE OR DISABLE APPLICATION(ORD) BASED ON TYPE 
* 
*     PROC APPLDISEN(ORD,TYPE)
* 
*     ENTRY      - ORD - ORDINAL OF APPLICATION 
*                  TYPE - TRUE=ENABLE,FALSE=DISABLE 
* 
*     EXIT       - APPLICATION TABLE MODIFIED OR ERROR DISPLAYED
* 
*     PROCESSING -
*         FOR I=1 STEP 1 WHILE ( I LT ORD AND NOT AT END OF TABLE) DO 
*           IF LAST APPL ENTRY
*             END OF TABLE = TRUE 
*           ELSE
*             GET NEXT ENTRY
*         IF I NE ORD 
*         THEN
*           CALL ERROR
*         ELSE
*           IF TYPE = ENABLE AND APL$ASTART 
*           THEN
*             AUTO START APPLICATION. 
*           FOR EACH APPL ENTRY FOR THAT ORD DO 
*             APPL ENTRY ENABLE = TYPE
*             IF TYPE = DISABLE 
*               AND APPLICATION IS NETTED ON
*             THEN
*               SEND IDLE MESSAGE TO THAT APPL
*           IF TYPE = DISABLE 
*           THEN
*             DAYFILE APPL DISABLED MESSAGE 
*           ELSE
*             DAYFILE APPL ENABLED MESSAGE
*         RETURN
# 
  
      ITEM ORD U;     # ORDINAL TO BE MODIFIED #
      ITEM TYPE B;    # TYPE OF MODIFICATION - TRUE=ENABLE,FALSE=DISABL#
  
# 
****  APPLDISEN - XREF LIST BEGIN.
# 
      XREF
        BEGIN 
        PROC ERROR; 
        ITEM FAPLADR  I;             # FIRST APPLICATION TABLE ADDRESS #
        ITEM LAPLADR  I;             # LAST APPLICATION TABLE ADDRESS # 
        PROC RHFMSG;      # DAYFILE MESSAGE # 
        PROC SNDSHDM;     # SEND SHUT DOWN MESSAGE #
        PROC STRTJOB;                # INITIATE APPLICATION PROGRAM # 
        END 
# 
****  PROC APPLDISEN - XREF LIST END. 
# 
  
  
      ITEM  CURRAPPL C(7);
      ITEM  I I;
      ITEM  IDLE I = 0;              # SEND IDLE MESSAGE #
  
      ARRAY [0:0] S(6); 
        BEGIN # APPLICATION DISABLED MESSAGE #
        ITEM MSG$APLDIS C(00,00,40) = 
          ["RHF, APLNAME DISABLED BY OPERATOR."]; 
        ITEM MSG$APLNME C(00,30,07); # USED TO PLUG APLNAME # 
        ITEM MSG$APLZBT I(04,00,60) = [0]; # ZERO BYTE TERMINATOR # 
        ITEM MSG$APLLGT I(05,48,12) = [40]; # LENGTH IN CHARACTERS #
        END 
  
      ARRAY [0:0] S(6); 
        BEGIN # APPLICATION ENABLED MESSAGE # 
        ITEM MSG$APLENB C(00,00,40) = 
          ["RHF, APLNAME ENABLED BY OPERATOR."];
        ITEM MSG$APENME C(00,30,07); # USED TO PLUG APLNAME # 
        ITEM MSG$APEZBT I(04,00,60) = [0]; # ZERO BYTE TERMINATOR # 
        ITEM MSG$APELGT I(05,48,12) = [40]; # LENGTH IN CHARACTERS #
        END 
CONTROL EJECT;
  
      P<APL$HEADER> = FAPLADR;
      FOR I = 1 STEP 1 WHILE (I LT ORD AND P<APL$HEADER> LE LAPLADR)
      DO
        BEGIN 
        CURRAPPL = APL$NAME[0]; 
        ASLONGAS (APL$NAME[0] EQ CURRAPPL AND 
                  P<APL$HEADER> LE LAPLADR) 
        DO
          BEGIN 
          P<APL$HEADER> = P<APL$HEADER> + APL$LENGTH
              + APL$NUMCON[0] * CON$LENGTH; 
          END 
        END 
      IF I EQ ORD 
        AND P<APL$HEADER> LE LAPLADR
      THEN   # ORDINAL FOUND #
        BEGIN 
        IF TYPE 
          AND APL$ASTART
          AND NOT APL$NETON 
        THEN
          BEGIN 
          APL$ENABLE[0] = TYPE; 
          STRTJOB;
          END 
  
        CURRAPPL = APL$NAME[0]; 
        ASLONGAS (APL$NAME[0] EQ CURRAPPL AND 
                  P<APL$HEADER> LE LAPLADR) 
        DO
          BEGIN 
          APL$ENABLE[0] = TYPE; 
          IF NOT TYPE 
            AND APL$NETON 
          THEN
            BEGIN 
            SNDSHDM(IDLE);
            END 
          P<APL$HEADER> = P<APL$HEADER> + APL$LENGTH
              + APL$NUMCON[0] * CON$LENGTH; 
          END 
        IF NOT TYPE 
        THEN
          BEGIN 
          MSG$APLNME = CURRAPPL;
          RHFMSG(LOC(MSG$APLDIS),MSG$APLLGT); 
          END 
        ELSE
          BEGIN 
          MSG$APENME = CURRAPPL;
          RHFMSG(LOC(MSG$APLENB),MSG$APELGT); 
          END 
        END 
      ELSE
        BEGIN 
        ERROR;
        END 
      RETURN; 
      END 
  
      TERM
