*DECK  APPLDSPL 
USETEXT COMCBEG 
USETEXT COMRDSD 
USETEXT COMRAPL 
PROC APPLDSPL;
# TITLE APPLDSPL - FORMAT APPLICATION DISPLAY # 
  
      BEGIN  # APPLDSPL # 
  
# 
**    APPLDSPL - FORMAT APPLICATION DISPLAY 
* 
*     FORMAT APPLICATION DISPLAY IN THE DSD L DISPLAY BUFFER
* 
*     PROC APPLDSPL.
* 
*     ENTRY      - NONE 
* 
*     EXIT       - DSDLBUF UPDATED WITH THE APPLICATION DISPLAY 
* 
*     PROCESSING -
*         STARTING WITH THE CURRENT INDEX GENERATE THE APPLICATION
*             DISPLAY 
*         GENERATE THE APPLICATION JOB NAME DISPLAY 
*         RETURN
# 
  
# 
****  PROC APPLDSPL - XREF LIST BEGIN.
# 
      XREF
        BEGIN 
        FUNC BINTODD C(10); 
        ITEM FAPLADR  I;             # FIRST APPLICATION TABLE ADDRESS #
        ITEM LAPLADR  I;             # LAST APPLICATION TABLE ADDRESS # 
        END 
# 
****  PROC APPLDSPL - XREF LIST END.
# 
  
  
      BASED ARRAY APHDR[0:0] S(1); # APPL DISPLAY HEADER #
        BEGIN 
        ITEM APHD$TWC   U(00,00,06); # TITLE WORD COUNT # 
        ITEM APHD$TSZ   U(00,06,06); # SIZE AND INTENSITY # 
        ITEM APHD$TYCD  U(00,12,12); # TITLE Y COORDINATE # 
        ITEM APHD$TXCD  U(00,24,12); # TITLE X COORDINATE # 
        ITEM APHD$TC    C(00,36,24); # TITLE OF APPLICATION DISPLAY#
        ITEM APHD$HWC   U(03,00,06); # HEADER WORD COUNT #
        ITEM APHD$HSZ   U(03,06,06); # SIZE AND INTENSITY # 
        ITEM APHD$HY1   U(03,12,12); # HEADER LINE 1 Y COORDINATE # 
        ITEM APHD$HX1   U(03,24,12); # HEADER LINE 1 X COORDINATE # 
        ITEM APHD$HC1   C(03,36,28); # HEADER LINE 1 #
        ITEM APHD$HY2   U(06,24,12); # HEADER LINE 2 Y COORDINATE # 
        ITEM APHD$HX2   U(06,36,12); # HEADER LINE 2 X COORDINATE # 
        ITEM APHD$HC2   C(06,48,64); # HEADER LINE 2 #
        ITEM APHD$END   U(13,00,60); # END OF HEADER #
        END 
  
      BASED ARRAY APDSP[0:0] S(1); # APPL DISPLAY # 
        BEGIN 
        ITEM APDS$WC    U(00,00,06); # DISPLAY LINE WORD COUNT #
        ITEM APDS$SZ    U(00,06,06); # SIZE AND INTENSITY # 
        ITEM APDS$YCD   U(00,12,12); # DISPLAY LINE Y COORDINATE #
        ITEM APDS$ORDX  U(00,24,12); # ORDINAL X COORDINATE # 
        ITEM APDS$ORDC  C(00,36,04); # ORDINAL #
        ITEM APDS$APNX  U(01,00,12); # APPL NAME X COORDINATE # 
        ITEM APDS$APNC  C(01,12,07); # APPL NAME #
        ITEM APDS$APNF  C(01,54,01); # APPL NAME FILL # 
        ITEM APDS$ENAX  U(02,00,12); # ENABLE X COORDINATE #
        ITEM APDS$ENAC  C(02,12,04); # ENABLE # 
        ITEM APDS$MCPX  U(02,36,12); # MAX COPIES X COORDINATE #
        ITEM APDS$MCPC  C(02,48,02); # MAX COPIES # 
        ITEM APDS$ACCX  U(03,00,12); # ACTIVE COPIES X COORDINATE # 
        ITEM APDS$ACCC  C(03,12,02); # ACTIVE COPIES #
        ITEM APDS$MCNX  U(03,24,12); # MAX CONNECTS X COORDINATE #
        ITEM APDS$MCNC  C(03,36,02); # MAX CONNECTS # 
        ITEM APDS$FILL  U(03,48,12); # LINE FILL #
        ITEM APDS$END   U(04,00,60); # APPL DISPLAY LINE END #
        END 
  
      BASED ARRAY AAHDR[0:0] S(1);  # ACTIVE APPLICATIONS HEADER #
        BEGIN 
        ITEM AAHD$WC    U(00,00,06); # LINE 1 WORD COUNT #
        ITEM AAHD$SZ    U(00,06,06); # SIZE AND INTENSITY # 
        ITEM AAHD$Y1    U(00,12,12); # LINE 1 Y COORDINATE #
        ITEM AAHD$X1    U(00,24,12); # LINE 1 X COORDINATE #
        ITEM AAHD$L1C   C(00,36,50); # HEADER LINE 1 #
        ITEM AAHD$Y2    U(05,36,12); # LINE 2 Y COORDINATE #
        ITEM AAHD$X2    U(05,48,12); # LINE 2 X COORDINATE #
        ITEM AAHD$L2C   C(06,00,62); # HEADER LINE 2 #
        ITEM AAHD$END   U(12,00,60); # END OF HEADER #
        END 
  
      BASED ARRAY AADSP[0:0] S(1);  # ACTIVE APPLICATION DISPLAY #
        BEGIN 
        ITEM AADS$WD0   U(00,00,60); # REFERENCE WORD ZERO #
        ITEM AADS$WC    U(00,00,06); # DISPLAY LINE WORD COUNT #
        ITEM AADS$SZ    U(00,06,06); # SIZE AND INTENSITY # 
        ITEM AADS$YCD   U(00,12,12); # DISPLAY LINE Y COORDINATE #
        ITEM AADS$JNX   U(00,24,12); # JOB NAME X COORDINATE #
        ITEM AADS$JNC   C(00,36,08); # JOB NAME # 
      CONTROL IFEQ OS$NOS;
        ITEM AADS$JNC1  C(00,36,04); # JOB NAME # 
        ITEM AADS$JNC2  C(01,00,04); # BLANK FILL # 
      CONTROL ENDIF;
        ITEM AADS$ORDX  U(01,24,12); # ORD X COORDINATE # 
        ITEM AADS$ORDC  C(01,36,06); # ORDINAL #
        ITEM AADS$CONX  U(02,12,12); # CONNECT X COORDINATE # 
        ITEM AADS$CONC  C(02,24,12); # CONNECTS # 
        ITEM AADS$FILL  U(02,36,24); # LINE FILL #
        ITEM AADS$END   U(03,00,60); # END OF DISPLAY # 
        END 
  
      ITEM CNT I; 
      ITEM CURACT I;
      ITEM CURRAPPL I;
      ITEM I I; 
      ITEM J I; 
      ITEM XCD I; 
CONTROL EJECT;
  
      P<APHDR> = LOC(DSD$DSPST[0]); 
    CONTROL IFEQ OS$NOSBE;
      APHD$TWC[0] = 3;
      APHD$TSZ[0] = 0;
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      APHD$TWC[0] = O"55";
      APHD$TSZ[0] = O"55";
    CONTROL ENDIF;
      APHD$TYCD[0] = O"7000" + (45 * 10); 
      APHD$TXCD[0] = O"6000"; 
      APHD$TC[0] = "APPLICATION DISPLAY"; 
    CONTROL IFEQ OS$NOSBE;
      APHD$HWC[0] = 10; 
      APHD$HSZ[0] = 0;
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      APHD$HWC[0] = O"55";
      APHD$HSZ[0] = O"55";
    CONTROL ENDIF;
      APHD$HY1[0] = O"7000" + (43 * 10);
      APHD$HX1[0] = O"6000" + O"400"; 
      APHD$HC1[0] = HDRAPDSP1;
      APHD$HY2[0] = O"7000" + (42 * 10);
      APHD$HX2[0] = O"6000";
      APHD$HC2[0] = HDRAPDSP2;
      P<AAHDR> = LOC(APHD$END[0]);
    CONTROL IFEQ OS$NOSBE;
      AAHD$WC[0] = 12;
      AAHD$SZ[0] = 0; 
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      AAHD$WC[0] = O"55"; 
      AAHD$SZ[0] = O"55"; 
    CONTROL ENDIF;
      AAHD$Y1[0] = O"7000" + (23 * 10); 
      AAHD$X1[0] = O"6000"; 
      AAHD$L1C[0] = HDRAADSP1;
      AAHD$Y2[0] = O"7000" + (22 * 10); 
      AAHD$X2[0] = O"6000"; 
      AAHD$L2C[0] = HDRAADSP2;
      P<APL$HEADER> = FAPLADR;
      CURRAPPL = APL$NAME[0]; 
      I = 1;
      ASLONGAS (I LS DISP$INDX[DISORDAP] AND P<APL$HEADER> LS LAPLADR)
      DO
        BEGIN 
        P<APL$HEADER> = P<APL$HEADER> + APL$LENGTH
             + APL$NUMCON[0] * CON$LENGTH;
        IF CURRAPPL NE APL$NAME[0]
        THEN
          BEGIN 
          I = I + 1;
          CURRAPPL = APL$NAME[0]; 
          END 
        END 
      IF I LS DISP$INDX[DISORDAP] 
      THEN
        BEGIN 
        DISP$INDX[DISORDAP] = I;
        END 
      I = 0;
      P<APDSP> = LOC(AAHD$END[0]);
      ASLONGAS (I LE DISPLAPPLMX AND P<APL$HEADER> LE LAPLADR)
      DO
        BEGIN 
        CNT = 0;
        CURACT = 0; 
        CURRAPPL = APL$NAME[0]; 
      CONTROL IFEQ OS$NOSBE;
        APDS$WC[0] = 4; 
        APDS$SZ[0] = 0; 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        APDS$WC[0] = O"55"; 
        APDS$SZ[0] = O"55"; 
      CONTROL ENDIF;
        APDS$YCD[0] = O"7000" + YSTART - (I * 10);
        APDS$ORDX[0] = O"6000"; 
        APDS$ORDC[0] = BINTODD(DISP$INDX[DISORDAP]+I,4);
        APDS$APNX[0] = O"6000" + O"110";
        APDS$APNC[0] = APL$NAME[0]; 
        APDS$APNF[0] = BLANK; 
        APDS$ENAX[0] = O"6000" + O"250";
        IF APL$ENABLE[0]
        THEN
          BEGIN 
          APDS$ENAC[0] = "YES"; 
          END 
        ELSE
          BEGIN 
          APDS$ENAC[0] = "NO";
          END 
        APDS$MCNX[0] = O"6000" + O"720";
        APDS$MCNC[0] = BINTODD(APL$NUMCON,2); 
        ASLONGAS (CURRAPPL EQ APL$NAME[0] 
               AND P<APL$HEADER> LE LAPLADR)
        DO
          BEGIN 
          CNT = CNT + 1;
          IF APL$NETON[0] 
          THEN
            BEGIN 
            CURACT = CURACT + 1;
            END 
          P<APL$HEADER> = P<APL$HEADER> + APL$LENGTH
                + APL$NUMCON[0] * CON$LENGTH; 
          END 
        APDS$MCPX[0] = O"6000" + O"420";
        APDS$MCPC[0] = BINTODD(CNT,2);
        APDS$ACCX[0] = O"6000" + O"560";
        APDS$ACCC[0] = BINTODD(CURACT,2); 
        APDS$FILL[0] = 0; 
        APDS$END[0] = 0;
        P<APDSP> = LOC(APDS$END[0]);
        I = I + 1;
        END 
      P<AADSP> = P<APDSP>;
      XCD = 0;
      I = 0;
      P<APL$HEADER> = FAPLADR;
      ASLONGAS (I LE DISPLAAMX AND P<APL$HEADER> LE LAPLADR)
      DO
        BEGIN 
        IF APL$NETON[0] 
        THEN
          BEGIN 
        CONTROL IFEQ OS$NOSBE;
          AADS$WC[0] = 3; 
          AADS$SZ[0] = 0; 
        CONTROL ENDIF;
        CONTROL IFEQ OS$NOS;
          AADS$WC[0] = O"55"; 
          AADS$SZ[0] = O"55"; 
        CONTROL ENDIF;
          AADS$YCD[0] = O"7000" + AASTART - (I * 10); 
          AADS$JNX[0] = O"6000" + (XCD * O"10");
          AADS$JNC[0] = APL$JOBNAM[0];
        CONTROL IFEQ OS$NOS;
          AADS$JNC2 = BLANK;
        CONTROL ENDIF;
          AADS$ORDX[0] = O"6000" + ((XCD + O"12") * O"10"); 
          FOR J = 0 STEP 1 UNTIL 5 DO 
            BEGIN 
            C<J,1>AADS$ORDC[0] = B<J*3,3>APL$JOBORD[0] + O"33"; 
            END 
          AADS$CONX[0] = O"6000" + ((XCD + O"24") * O"10"); 
          P<CONNECTION> = P<APL$HEADER> + APL$LENGTH ;
          CNT = 0 ; 
          FOR J = 1 STEP 1 UNTIL APL$NUMCON[0] DO 
            BEGIN 
            IF CON$INIT[0]
            THEN
              BEGIN 
              CNT = CNT + 1 ; 
              END 
            P<CONNECTION> = P<CONNECTION> + CON$LENGTH ;
            END 
          AADS$CONC[0] = BINTODD(CNT,2);
          AADS$FILL[0] = 0; 
          P<AADSP> = LOC(AADS$END[0]);
          IF XCD EQ 0 
          THEN
            BEGIN 
            XCD = O"40";
            END 
          ELSE
            BEGIN 
            XCD = 0;
            I = I + 1;
            END 
          END 
        P<APL$HEADER> = P<APL$HEADER> + APL$LENGTH
                   + APL$NUMCON[0] * CON$LENGTH;
        END 
      AADS$WD0[0] = 0;
      RETURN; 
      END 
  
      TERM
