*DECK  IDDSPL 
USETEXT COMCBEG 
USETEXT COMRDSD 
USETEXT COMRNET 
PROC IDDSPL;
# TITLE IDDSPL - FORMAT ID DISPLAY #
  
      BEGIN  # IDDSPL # 
  
# 
**    IDDSPL - FORMAT ID DISPLAY
* 
*     FORMAT ID DISPLAY IN THE DSD L DISPLAY BUFFER 
* 
*     PROC IDDSPL.
* 
*     ENTRY      - NONE 
* 
*     EXIT       - DSDLBUF UPDATED WITH THE ID DISPLAY
* 
*     PROCESSING -
*         STARTING WITH THE CURRENT INDEX GENERATE THE ID DISPLAY 
*         RETURN
# 
  
# 
****  PROC IDDSPL - XREF LIST BEGIN.
# 
      XREF
        BEGIN 
        FUNC BINTODD C(10); 
        ITEM NDTADDR  I;             # NETWORK DEFINITION TABLE ADDR #
        END 
# 
****  PROC IDDSPL - XREF LIST END.
# 
  
  
    CONTROL IFEQ  OS$NOSBE; 
      BASED ARRAY IDHDR[0:0] S(1); # ID DISPLAY HEADER #
        BEGIN 
        ITEM IDHD$TWC   U(00,00,06); # TITLE WORD COUNT # 
        ITEM IDHD$TSZ   U(00,06,06); # SIZE AND INTENSITY # 
        ITEM IDHD$TYCD  U(00,12,12); # TITLE Y COORDINATE # 
        ITEM IDHD$TXCD  U(00,24,12); # TITLE X COORDINATE # 
        ITEM IDHD$TC    C(00,36,14); # TITLE #
        ITEM IDHD$HWC   U(02,00,06); # HEADER WORD COUNT #
        ITEM IDHD$HSZ   U(02,06,06); # SIZE AND INTENSITY # 
        ITEM IDHD$HYCD  U(02,12,12); # HEADER Y COORDINATE #
        ITEM IDHD$HXCD  U(02,24,12); # HEADER X COORDINATE #
        ITEM IDHD$HC    C(02,36,64); # HEADER # 
        ITEM IDHD$END   U(09,00,60); # END OF ID HEADER # 
        END 
  
      BASED ARRAY IDDSP[0:0] S(1); # ID DISPLAY # 
        BEGIN 
        ITEM IDDS$WD0   U(00,00,60); # REFERENCE WORD ZERO #
        ITEM IDDS$WC    U(00,00,06); # WORD COUNT # 
        ITEM IDDS$SZ    U(00,06,06); # SIZE AND INTENSITY # 
        ITEM IDDS$YCD   U(00,12,12); # Y COORDINATE # 
        ITEM IDDS$ORDX  U(00,24,12); # ORD X COORDINATE # 
        ITEM IDDS$ORDC  C(00,36,02); # ORDINAL #
        ITEM IDDS$PIDX  U(00,48,12); # PID X COORDINATE # 
        ITEM IDDS$PIDC  C(01,00,04); # PID #
        ITEM IDDS$PID   U(01,00,24); # PID #
        ITEM IDDS$LIDX  U(01,24,12); # LID X COORDINATE # 
        ITEM IDDS$LIDC  C(01,36,04); # LID #
        ITEM IDDS$LID   U(01,36,24); # LID #
        ITEM IDDS$ENAX  U(02,00,12); # ENABLE X COORDINATE #
        ITEM IDDS$ENAC  C(02,12,04); # ENABLE # 
        ITEM IDDS$MFX   U(02,36,12); # MFTYPE X COORDINATE #
        ITEM IDDS$MFC   C(02,48,07); # MFTYPE # 
        ITEM IDDS$MFF   C(03,30,01); # MFTYPE FILL #
        ITEM IDDS$FILL  U(03,36,24); # LINE FILL #
        ITEM IDDS$END   U(04,00,60); # END OF ID DISPLAY LINE # 
        END 
  
      ITEM I I; 
      ITEM LIDL I;
      ITEM LID1 I;
      ITEM PIDF B;
      ITEM SKIPS I; 
CONTROL EJECT;
  
      P<IDHDR> = LOC(DSD$DSPST[0]); 
    CONTROL IFEQ OS$NOSBE;
      IDHD$TWC[0] = 2;
      IDHD$TSZ[0] = 0;
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      IDHD$TWC[0] = O"55";
      IDHD$TSZ[0] = O"55";
    CONTROL ENDIF;
      IDHD$TYCD[0] = O"7000" + (45 * 10); 
      IDHD$TXCD[0] = O"6000"; 
      IDHD$TC[0] = "LCN ID DISPLAY";
    CONTROL IFEQ OS$NOSBE;
      IDHD$HWC[0] = 7;
      IDHD$HSZ[0] = 0;
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      IDHD$HWC[0] = O"55";
      IDHD$HSZ[0] = O"55";
    CONTROL ENDIF;
      IDHD$HYCD[0] = O"7000" + (43 * 10); 
      IDHD$HXCD[0] = O"6000" + O"20"; 
      IDHD$HC[0] = HDRIDDSP;
      P<IDDSP> = LOC(IDHD$END[0]);
      SKIPS = 0;
      PIDF = TRUE;
      P<NET$HEADER> = NDTADDR;
      FOR I = 1 STEP 1 WHILE (I LS DISP$INDX[DISORDID]) DO
        BEGIN 
        IF DISP$INDX[DISORDID] GR ( I + NET$NUMLID[0] ) 
        THEN
          BEGIN 
          I = I + NET$NUMLID[0];
          P<NET$HEADER> = NET$NXTPID[0];
          END 
        ELSE
          BEGIN 
          P<LID$ENTRY> = NET$LIDADR[0] +
                         (DISP$INDX[DISORDID]-I-1)/2; 
          LID1 = (DISP$INDX[DISORDID]-I) -
                 (2*((DISP$INDX[DISORDID]-I)/2)); 
          LIDL = (NET$NUMLID[0]+I-DISP$INDX[DISORDID] + 1); 
          I = DISP$INDX[DISORDID];
          PIDF = FALSE; 
          END 
        END 
      FOR I = 0 STEP 1 WHILE ((I+SKIPS) LE DISPLIDMX
                     AND P<NET$HEADER> NE 0)  DO
        BEGIN 
      CONTROL IFEQ OS$NOSBE;
        IDDS$WC[0] = 4; 
        IDDS$SZ[0] = 0; 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        IDDS$WC[0] = O"55"; 
        IDDS$SZ[0] = O"55"; 
      CONTROL ENDIF;
        IDDS$YCD[0] = O"7000" + YSTART - ((I + SKIPS) * 10);
        IDDS$ORDX[0] = O"6000" + O"20"; 
        IDDS$ORDC[0] = BINTODD(I+DISP$INDX[DISORDID],2);
        IDDS$PIDX[0] = O"6000" + O"160";
        IDDS$LIDX[0] = O"6000" + O"340";
        IDDS$ENAX[0] = O"6000" + O"530";
        IDDS$MFX[0] = O"6000" + O"700"; 
        IDDS$MFC[0] = NET$MFC[0]; 
        IDDS$MFF[0] = BLANK;
        IF PIDF 
        THEN
          BEGIN 
          IDDS$PID[0] = NET$PID[0]; 
          IDDS$LIDC[0] = BLANK; 
          IF NET$ENABLE 
          THEN
            BEGIN 
            IDDS$ENAC[0] = "YES"; 
            END 
          ELSE
            BEGIN 
            IDDS$ENAC[0] = "NO";
            END 
          LID1 = 1; 
          LIDL = NET$NUMLID[0]; 
          P<LID$ENTRY> = NET$LIDADR[0]; 
          PIDF = FALSE; 
          END 
        ELSE
          BEGIN 
          IF LID1 EQ 1
          THEN
            BEGIN 
            LID1 = 0; 
            IDDS$LID[0] = LID$1[0]; 
            IF LID$ENAB1[0] 
            THEN
              BEGIN 
              IDDS$ENAC[0] = "YES"; 
              END 
            ELSE
              BEGIN 
              IDDS$ENAC[0] = "NO";
              END 
            END 
          ELSE
            BEGIN 
            LID1 = 1; 
            IDDS$LID[0] = LID$2[0]; 
            IF LID$ENAB2[0] 
            THEN
              BEGIN 
              IDDS$ENAC[0] = "YES"; 
              END 
            ELSE
              BEGIN 
              IDDS$ENAC[0] = "NO";
              END 
            P<LID$ENTRY> = P<LID$ENTRY> + 1;
            END 
          IDDS$PIDC[0] = BLANK; 
          LIDL = LIDL - 1;
          END 
        IF LIDL EQ 0
        THEN
          BEGIN 
          PIDF = TRUE;
          SKIPS = SKIPS + 1;
          P<NET$HEADER> = NET$NXTPID[0];
          END 
        IDDS$FILL[0] = 0; 
        P<IDDSP> = LOC(IDDS$END[0]);
        END 
      IDDS$WD0[0] = 0;
    CONTROL  ENDIF; 
      RETURN; 
      END 
  
      TERM
