*COMDECK COMRDSDL 
#     COMRDSDL - DSD L-DISPLAY BUFFER AREA #
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
# 
***   COMRDSDL CONTAINS THE BUFFERS FOR DSD L-DISPLAY 
*     PROCESSING.  THE COMMAND/DISPLAY BUFFER FOR COMMUNICATIONS
*     WITH DSD, STATUS INFORMATION AND BASED ARRAYS FOR 
*     DISPLAY GENERATION.  IT ALSO CONTAINS THE DEFS USED IN
*     THE L-DISPLAY PROCESSING. 
# 
      BEGIN  # COMRDSDL COMDECK # 
  
      DEF AASTART       #(20 * 10)#; # LINE START FOR ACT APPL DISP # 
      DEF AVCMDHD       #"AVAILABLE COMMANDS"#; # AVAILABLE CMDS HDR #
      DEF AVCMDHXCD     #O"6320"#;   # AVAILABLE CMD HDR X COORD #
      DEF AVCMD1        #"ENABLE,XX    DISABLE,XX"#;
                                     # AVAILABLE CMDS LINE 1 #
      DEF AVCMD1XCD     #O"6320"#;   # AVAILABLE CMD LINE 1 X COORD # 
      DEF AVCMD2        #"XX,ND=XX,AC=XXXX,DD=X,RT=XXXX,LT=XXXX,"#; 
                                     # AVAILABLE CMDS LINE 2 #
      DEF AVCMD2XCD     #O"6320"#;   # AVAILABLE CMD LINE 2 X COORD # 
      DEF AVCMD2YCD     #O"7120"#;   # AVAILABLE CMD LINE 2 Y COORD # 
      DEF AVCMD3        #"   LOG=YES/NO"#;  # AVAILABLE CMDS LINE 3 # 
      DEF AVCMD3XCD     #O"6320"#;   # AVAILABLE CMD LINE 3 X COORD # 
      DEF AVCMD3YCD     #O"7106"#;   # AVAILABLE CMD LINE 3 Y COORD # 
      CONTROL  IFEQ  OS$NOS;
      DEF  AVDIS        #"APPL    PATH"#;  #AVAILABLE NOS DISPLAYS# 
      CONTROL  ENDIF; 
      CONTROL  IFEQ  OS$NOSBE;
      DEF AVDIS         #"APPL    ID    PATH"#;  # AVAILABLE DISPLAYS # 
      CONTROL  ENDIF; 
      DEF AVDISHDR      #"AVAILABLE DISPLAYS"#;  # AVAILABLE DIS HDR #
      DEF AVDIS1XCD     #O"6000"#;   # AVAILABLE DIS LINE 1 X COORD # 
      DEF AVHDXCD       #O"6000"#;   # AVAILABLE HEADER X COORD # 
      DEF AVHDYCD       #O"7144"#;   # AVAILABLE HEADER Y COORD # 
      DEF AVWC          #16#;        # AVAILABLE DIS/CMD WORD COUNT # 
      DEF AV1YCD        #O"7132"#;   # AVAILABLE DIS/CMD LINE 1 Y COORD#
      DEF BLANK         #" "#;       # BLANK CHARACTER #
      DEF DISCMDSZ      #8#;         # BAD COMMAND WORD COUNT # 
      DEF DISINVSZ      #3#;         # INVALID COMMAND WORD COUNT SIZE #
      DEF DISORDAP      #0#;         # ORDINAL OF APPL DISPLAY #
      DEF DISORDID      #1#;         # ORDINAL OF ID DISPLAY #
      DEF DISORDPT      #2#;         # ORDINAL OF PATH DISPLAY #
      DEF DISPLAAMX     #9#;         # MAXIMUM ENTRIES FOR ACT APPL DIS#
      DEF DISPLAPPLMX   #16#;        # MAXIMUM LINES FOR APPL # 
      DEF DISPLIDMX     #20#;        # MAXIMUN LINES FOR ID # 
      DEF DISPLPATHMX   #20#;        # MAXIMUN LINES FOR PATH # 
      DEF DISRTNSZ      #4#;         # RETURN TO DSD WORD COUNT SIZE #
      DEF DSDBUFSZ      #300#;       # THE SIZE OF THE DSD BUFFER # 
      DEF HDRAADSP1 
#"JOB       JOBORD/               JOB       JOBORD/"#;
                                     # HDR LINE1 FOR ACTIVE APPL DISP # 
      DEF HDRAADSP2 
#"NAME      CTL PT    CONNECTS    NAME      CTL PT    CONNECTS"#; 
                                     # HDR LINE2 FOR ACTIVE APPL DISP # 
      DEF HDRAPDSP1     #"MAX         ACTIVE      MAX"#;
                                     # HEADER LINE 1 FOR APPL DISPLAY # 
      DEF HDRAPDSP2 
#" ORD    APPL      ENABLED      COPIES      COPIES      CONNECTS"#;
                                     # HEADER LINE 2 FOR APPL DISPLAY # 
      DEF HDRIDDSP
#"ORD          PID           LID         ENABLED        MFTYPE"#; 
                                     # HEADER LINE FOR ID DISPLAY # 
      DEF HDRPTDSP1     #"LOCAL  REMOTE REMOTE"#; 
                                    # HEADER LINE 1 FOR PATH DISPLAY #
      DEF HDRPTDSP2     #"TRUNK  TRUNK   NAD      ACCESS CON   LOG"#; 
                                     # HEADER LINE 2 FOR PATH DISPLAY#
      DEF HDRPTDSP3 
#"ORD PID EST CH ENABLED ENABLES ENABLES ADDR DEST CODE COUNT ERRS"#; 
                                     # HEADER LINE 3 FOR PATH DISPLAY # 
      DEF INCAPPL       #5#;         # APPLICATION DISPLAY INCREMENT #
      DEF  INCLID       #15#;        # ID DISPLAY INCREMENT # 
      DEF  INCPATH      #10#;        # PATH DISPLAY INCREMANT # 
      DEF INVCOMMAND    #"INVALID COMMAND"#;
      DEF MAXCMDSZ      #7#;         # MAX DSD COMMAND SIZE # 
      DEF MAXDIS        #2#;         # THE SIZE OF DISPSTAT(NUMDIS-1) # 
      DEF MAXFORPSZ     #6#;         # MAX NUM OF PARMS ON PATH CMD # 
      DEF MAXAC         #4#;         # MAX NUM OF DIGITS IN AC PARM # 
      DEF MAXDD         #1#;         # MAX NUM OF DIGITS IN DD PARM # 
      DEF MAXLT         #4#;         # MAX NUM OF DIGITS IN LT PARM # 
      DEF MAXND         #2#;         # MAX NUM OF DIGITS IN ND PARM # 
      DEF MAXRT         #4#;         # MAX NUM OF DIGITS IN RT PARM # 
      DEF MAXLOG        #3#;         # MAX NUM OF DIGITS IN LOG PARM #
      DEF NUMCMD        #9#;         # THE NUMBER OF COMMANDS # 
      DEF NUMDIS        #3#;         # THE NUMBER OF DISPLAYS # 
      DEF XCDCMD        #O"6000"#;   # X COORDINATE FOR COMMAND LINE #
      DEF XCDINV        #O"6000"#;   # X COORDINATE FOR INVALID COMMAND#
      DEF XCDRTN        #O"6000"#;   # X COORDINATE FOR RETURN TO DSD # 
      DEF YCDCMD        #O"7074"#;   # Y COORDINATE FOR COMMAND LINE #
      DEF YCDINV        #O"7062"#;   # Y COORDINATE FOR INVALID COMMAND#
      DEF YCDRTN        #O"7050"#;   # Y COORDINATE FOR RETURN TO DSD # 
      DEF YSTART        #(40 * 10)#; # LINE START FOR DISPLAY ENTRIES # 
      DEF ZENABLE       #O"05160102140500000000"#;#"ENABLE" WITH 0 FILL#
      DEF ZDISABLE      #O"04112301021405000000"#;#"DISABLE" WITH 0 FIL#
      DEF ZIDLE         #O"11041405000000000000"#;#"IDLE" WITH 0 FILL # 
      DEF ZAPPL         #O"01202014000000000000"#;# "APPL" WITH 0 FILL #
      DEF ZID           #O"11040000000000000000"#;# "ID" WITH ZERO FILL#
      DEF ZPATH         #O"20012410000000000000"#;# "PATH" WITH 0 FILL #
      DEF ZPLUS         #O"45000000000000000000"#;# "+" WITH 0 FILL # 
      DEF ZMINUS        #O"46000000000000000000"#;# "-" WITH 0 FILL # 
  
      STATUS CMD ,ENABLE, 
                 DISABLE, 
                 IDLE,
                 PATHCMD, 
                 APPLDIS, 
                 IDDIS, 
                 PATHDIS, 
                 PLUS,
                 MINUS; 
  
      COMMON COMRDSDL;
      BEGIN  # COMRDSDL COMMON AREA # 
  
      ITEM CONVERR I;                # CONVERSION ERROR REPLY # 
      ITEM PATHORD I;                # PATH ORDINAL # 
  
      ARRAY  DISPSTAT [0:MAXDIS] S(1);
        BEGIN 
        ITEM DISP$INDX  U(00,00,12) = [NUMDIS(1)];   # DISPLAY ORDINAL #
        ITEM DISP$INC   U(00,12,12) = [INCAPPL, 
                                       INCLID,
                                       INCPATH];   # DISPLAY INCREMENT #
        END 
  
      ARRAY  DSDLBUF [0:0] S(DSDBUFSZ); 
        BEGIN 
        ITEM DSD$WD0    U(00,00,60); # REFERENCE WORD 0 # 
        ITEM DSD$POS    U(00,00,12); # CURRENT COMMAND CHAR POSITION #
        ITEM DSD$CMDW   U(01,00,60); # REFERENCE DSD COMMAND WORD # 
        ITEM DSD$CMDC   C(01,00,70); # DSD COMMAND #
        ITEM DSD$CNT    U(08,48,12); # DSD COUNT #
      CONTROL IFEQ OS$NOSBE;
        ITEM DSD$LSCR   U(09,00,06) = [ 1 ]; # IGNORE WORD #
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        ITEM DSD$LSCR   U(09,00,60); # NOS CONTROL WORD # 
        ITEM DSD$CHARSZ B(09,10,01) = [FALSE]; # SMALL CHARACTERS # 
        ITEM DSD$FORMAT B(09,11,01) = [FALSE]; # COORDINATES SPECIFIED #
        ITEM DSD$CMPLT  B(09,59,01) = [FALSE]; # DATA DISPLAYED FLAG #
      CONTROL ENDIF;
  
        ITEM DSD$DSP    U(10,00,60); # START OF DISPLAY # 
  
      CONTROL IFEQ OS$NOSBE;
        ITEM DSD$INVWC  U(10,00,06) = [ DISINVSZ ]; 
                                     # WORD COUNT FOR INVALID COMMAND # 
        ITEM DSD$INVYCD U(10,12,12) = [ YCDINV ]; 
                                     # Y COORDINATE FOR INVALID CMD # 
        ITEM DSD$INVXCD U(10,24,12) = [ XCDINV ]; 
                                     # X COORDINATE FOR INVALID CMD # 
        ITEM DSD$INVC   C(10,36,24) = [ BLANK ];
                                     # INVALID COMMAND DISPLAY #
        ITEM DSD$CMDWC  U(13,00,06) = [ DISCMDSZ ]; 
                                     # WORD COUNT FOR BAD COMMAND # 
        ITEM DSD$CMDYCD U(13,12,12) = [ YCDCMD ]; 
                                     # Y COORDINATE FOR BAD COMMAND # 
        ITEM DSD$CMDXCD U(13,24,12) = [ XCDCMD ]; 
                                     # X COORDINATE FOR BAD COMMAND # 
        ITEM DSD$CMDBC  C(13,36,74) = [ BLANK ];
                                     # BAD COMMAND DISPLAY #
        ITEM DSD$RTNWC  U(21,00,06) = [ DISRTNSZ ]; 
                                     # WORD COUNT FOR RETURN MESSAGE #
        ITEM DSD$RTNYCD U(21,12,12) = [ YCDRTN ]; 
                                     # Y COORDINATE FOR RETURN MESSAGE #
        ITEM DSD$RTNXCD U(21,24,12) = [ XCDRTN ]; 
                                     # X COORDINATE FOR RETURN MESSAGE #
        ITEM DSD$RTNC   C(21,36,34) = [ "TYPE = TO RETURN TO DSD MODE"];
                                     # RETURN TO DSD MESSAGE #
        ITEM DSD$AVWC   U(25,00,06) = [ AVWC ]; 
                                     # AVAILABLE WORD COUNT # 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        ITEM DSD$INVYCD U(10,00,12) = [ YCDINV ]; 
                                     # Y COORDINATE FOR INVALID CMD # 
        ITEM DSD$INVXCD U(10,12,12) = [ XCDINV ]; 
                                     # X COORDINATE FOR INVALID CMD # 
        ITEM DSD$INVC   C(10,24,26) = [ BLANK ];
                                     # INVALID COMMAND DISPLAY #
        ITEM DSD$CMDYCD U(13,00,12) = [ YCDCMD ]; 
                                     # Y COORDINATE FOR BAD COMMAND # 
        ITEM DSD$CMDXCD U(13,12,12) = [ XCDCMD ]; 
                                     # X COORDINATE FOR BAD COMMAND # 
        ITEM DSD$CMDBC  C(13,24,76) = [ BLANK ];
                                     # BAD COMMAND DISPLAY #
        ITEM DSD$RTNYCD U(21,00,12) = [ YCDRTN ]; 
                                     # Y COORDINATE FOR RETURN MSG #
        ITEM DSD$RTNXCD U(21,12,12) = [ XCDRTN ]; 
                                     # X COORDINATE FOR RETURN MSG #
        ITEM DSD$RTNC   C(21,24,38) = [ BLANK ];
                                     # RETURN TO DSD MESSAGE #
      CONTROL ENDIF;
        ITEM DSD$AHYCD  U(25,12,12) = [ AVHDYCD ] ; 
                                     # AVAILABLE Y COORD #
        ITEM DSD$AHDXC  U(25,24,12) = [ AVHDXCD ] ; 
                                     # AVAILABLE DIS HEADER X COORD # 
        ITEM DSD$AVDH   C(25,36,20) = [ AVDISHDR ] ;
                                     # AVAILABLE DISPLAY HEADER # 
        ITEM DSD$AHCXC  U(27,36,12) = [ AVCMDHXCD ] ; 
                                     # AVAILABLE COM HEADER X COORD # 
        ITEM DSD$AVC    C(27,48,18) = [ AVCMDHD ] ; 
                                     # AVAILABLE COMMAND HEADER # 
        ITEM DSD$A1YCD  U(29,36,12) = [ AV1YCD ] ;
                                     # AVAILABLE LINE 1 Y COORD # 
        ITEM DSD$AD1XC  U(29,48,12) = [ AVDIS1XCD ] ; 
                                     # AVAILABLE DIS X COORD #
        ITEM DSD$AD     C(30,00,18) = [ AVDIS ] ; 
                                     # AVAILABLE DISPLAYS # 
        ITEM DSD$AC1XC  U(31,48,12) = [ AVCMD1XCD ] ; 
                                     # AVAILABLE CMDS LINE 1 X COORD #
        ITEM DSD$AC1    C(32,00,24) = [ AVCMD1 ] ;
                                     # AVAILABLE CMDS LINE 1 #
        ITEM DSD$AC2YC  U(34,24,12) = [ AVCMD2YCD ] ; 
                                     # AVAILABLE CMDS LINE 2 Y COORD #
        ITEM DSD$AC2XC  U(34,36,12) = [ AVCMD2XCD ] ; 
                                     # AVAILABLE CMDS LINE 2 X COORD #
        ITEM DSD$AC2    C(34,48,38) = [ AVCMD2 ]; 
                                     # AVAILABLE CMDS LINE 2 #
        ITEM DSD$AC3YC  U(38,36,12) = [ AVCMD3YCD ];
                                     # AVAILABLE CMDS LINE 3 Y COORD #
        ITEM DSD$AC3XC  U(38,48,12) = [ AVCMD3XCD ];
                                     # AVAILABLE CMDS LINE 3 X COORD #
        ITEM DSD$AC3    C(39,00,20) = [ AVCMD3 ]; 
                                     # AVAILABLE CMDS LINE 3 #
        ITEM DSD$DSPST  U(41,00,60); # START FOR BASED ARRAYS # 
        END 
  
      ARRAY LBUFST [0:0] S(1);
        BEGIN 
        ITEM LBUF$CURD  U(00,00,12); # CURRENT DISPLAY #
        ITEM LBUF$UPD   B(00,59,01); # UPDATE DISPLAY FLAG #
        END 
  
      END  # COMRDSDL COMMON AREA # 
  
      END  # COMRDSDL COMMON DECK # 
                                               CONTROL LIST;
