COMFVD3 
COMMON
  
#     COMFVD3 - VIRTUAL TERMINAL STORAGE MODULE 3. #
  
CONTROL NOLIST; 
CONTROL IFEQ LISTCON,1; 
CONTROL LIST; 
CONTROL FI; 
  
# 
***   COMFVD3 - VIRTUAL TERMINAL STORAGE MODULE 3.
* 
*     COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
* 
*     COMFVD3 CONTAINS STORAGE SYMBOLS FOR *VDT* ROUTINES.
# 
  
CONTROL IFEQ QTRMV,0; 
  
  ITEM INPTNAM    C(07)="INPUT";     # INPUT BUFFER NAME              # 
  ITEM OUTPNAM    C(07)="OUTPUT";    # OUTPUT BUFFER NAME             # 
  
  ARRAY TTYIBF [0:0] P(TTYIBUFSIZ);; # FILE BUFFER                    # 
  
  ARRAY TTYI [0:0] P(5);             # INPUT FET                      # 
    BEGIN 
    ITEM TTYICD     U(00,50,10)=[1]; # FET STATUS CODES               # 
    ITEM TTYIIN     U(02,42,18);     # IN ADDRESS                     # 
    ITEM TTYIOT     U(03,42,18);     # OUT ADDRESS                    # 
    END 
  
  ARRAY TTYOBF [0:0] P(TTYOBUFSIZ);; # *OUTPUT* BUFFER                # 
  
# START OF MODIFY CONDITIONAL FOR TERMINAL OUTPUT.                    # 
  
*IF DEF,CRM 
  BASED ARRAY TTYO [0:0] P(5);       # OUTPUT FET # 
    BEGIN # ARRAY TTYO #
    ITEM TTYONM     U(00,00,42);     # FILE NAME #
    ITEM TTYOCD     U(00,50,10);     # FET STATUS CODES # 
    ITEM TTYOFB     B(01,23,01);     # FLUSH BIT FOR NOS 460 #
    ITEM TTYOFT      U(01,42,18);    # FIRST ADDRESS #
    ITEM TTYOIN     U(02,42,18);     # IN ADDRESS # 
    ITEM TTYOOT     U(03,42,18);     # OUT ADDRESS #
    ITEM TTYOLM      U(04,42,18);    # LIMIT ADDRESS #
    END # ARRAY TTYO #
  
  ITEM LISTFETPTR I=0;               # FET POINTER #
*ELSE 
  ARRAY TTYO [0:0] P(5);             # OUTPUT FET                     # 
    BEGIN 
    ITEM TTYONM     U(00,00,42);     # FILE NAME                      # 
    ITEM TTYOCD     U(00,50,10)=[1]; # FET STATUS CODES               # 
    ITEM TTYOFB     B(01,23,01);     # FLUSH BIT FOR NOS 460          # 
    ITEM TTYOIN     U(02,42,18);     # IN ADDRESS                     # 
    ITEM TTYOOT     U(03,42,18);     # OUT ADDRESS                    # 
    END 
  
  ITEM LISTFETPTR I=0;               # FET POINTER                    # 
  
  ARRAY FETLIST [0:0] P(3); 
    BEGIN 
    ITEM FETLIST0  I(00,00,60)=[3];  # FET LIST                       # 
    ITEM FETLSTNAM U(01,00,42)=[0];  # FET LIST NAME                  # 
    ITEM FETLSTLOC U(01,42,18)=[0];  # FIRST ADDRESS                  # 
    ITEM FETLIST2  I(02,00,60)=[0];  # FET LIST                       # 
    END # ARRAY FETLIST # 
*ENDIF
  
# END OF MODIFY CONDITIONAL FOR TERMINAL OUTPUT.                      # 
  
# END OF COMVDT COMMON BLOCK.                                         # 
  
END  # COMVDT # 
  
CONTROL FI; 
  
CONTROL IFEQ QTRMV,1; 
  
COMMON COMVD3;
  
BEGIN  # COMVD3 # 
  
ITEM CHAIN I = 0;                    # CHAIN HEADER                   # 
  
# 
  THE NETWORK INFORMATION TABLE (NIT) IS THE GENERAL COMMUNICATIONS 
  BLOCK BETWEEN THE USER AND QTRM.  ACTUAL RESIDENCE IS IN THE USERS
  WORKING AREA. 
# 
  
BASED ARRAY NIT [0:0] S(10);         # NETWORK INFORMATION TABLE      # 
  BEGIN 
  ITEM NIT$WORD0  U(00,00,60);       # WORD ZERO (INTEGER)            # 
  ITEM NIT$AP$NME C(00,00,07);       # APPLICATION NAME               # 
  ITEM NIT$CH$SET U(00,42,06);       # CHARACTER SET TO USE           # 
  ITEM NIT$XPTSET U(00,42,03);       # TRANSPARENT MODE               # 
  ITEM NIT$PUTSET U(00,45,03);       # CHARACTER TYPE FOR QTPUT       # 
  ITEM NIT$MAX$TM U(00,48,12);       # MAXIMUM NUMBER OF TERMINALS    # 
  ITEM NIT$NSUP   U(01,00,60);       # SUPERVISOR WORD                # 
  ITEM NIT$NSUP$I B(01,03,01);       # INPUT AVAILABLE FROM NAM       # 
  ITEM NIT$NSUP$S B(01,04,01);       # SUPERVISORY DATA AVAILABLE     # 
  ITEM NIT$NSUP$N B(01,02,01);       # NAM AVAILABLE FLAG             # 
  ITEM NIT$SUPPAA U(03,54,06);       # SUPPORT A TO A                 # 
  ITEM NIT$MTLC   U(04,00,12);       # MAXIMUM TEXT LENGTH (CHAR.)    # 
  ITEM NIT$CTLC   U(04,12,12);       # CURRENT TEXT LENGTH (CHAR.)    # 
  ITEM NIT$SLEEP  I(04,24,06);       # SLEEP SETTING PARAMETER        # 
  ITEM NIT$CON    U(04,30,12);       # CONNECTION NUMBER FOR CALLER   # 
  ITEM NIT$RC 
           S:NITRTC(04,42,06);       # RETURN CODE                    # 
  ITEM NIT$S$RC   U(04,48,06);       # SECONDARY RETURN CODE          # 
  ITEM NIT$IN$MSG U(04,54,06);       # INTERNAL MESSAGE               # 
  ITEM NIT$NXT$AP C(05,00,07);       # NEXT APPLICATION CHARACTER     # 
  ITEM NIT$NXAP$N U(05,00,42);       # NEXT APPLICATION NUMERIC       # 
  ITEM NIT$REQ$AP C(06,00,07);       # OUTCALL NAME 1                 # 
  ITEM NIT$HOSTAA U(06,42,18);       # OUTCALL NAME 2 IN U            # 
# 
  ENTRY (10 WORDS) REPEATED FOR EACH CONNECTION.
# 
  ITEM NIT$WD0    U(00,00,60);       # WORD ZERO (INTEGER)            # 
  ITEM NIT$TNAME  C(00,00,07);       # TERMINAL NAME                  # 
  ITEM NIT$ANAME  C(00,00,07);       # CONNECTED APPLICATION NAME     # 
  ITEM NIT$TC     U(00,42,06);       # TERMINAL CLASS                 # 
  ITEM NIT$PW     U(00,48,12);       # PAGE WIDTH                     # 
  ITEM NIT$WD1    U(01,00,60);       # WORD ONE (INTEGER)             # 
  ITEM NIT$FMNAME C(01,00,07);       # FAMILY NAME                    # 
  ITEM NIT$HOSTID U(01,30,12);       # CONNECTED HOST ID              # 
  ITEM NIT$DEVTYP U(01,42,06);       # DEVICE TYPE                    # 
  ITEM NIT$PL     U(01,48,12);       # PAGE LENGTH                    # 
  ITEM NIT$WD2    U(02,00,60);       # WORD TWO (INTEGER)             # 
  ITEM NIT$USNAME C(02,00,07);       # USER NAME FOR THIS CONNECTION  # 
  ITEM NIT$MODEL  U(04,42,06);       # TERMINAL MODEL                 # 
  ITEM NIT$BSZ    U(02,48,12);       # MAX BLOCK SIZE FOR TERMINAL    # 
  ITEM NIT$WD3    U(03,00,60);       # WORD THREE (INTEGER)           # 
  ITEM NIT$ABL    U(03,00,06);       # APPLICATION BLOCK LIMIT        # 
  ITEM NIT$ABN    U(03,06,18);       # LAST ABN SENT TO NAM           # 
  ITEM NIT$AK$ABN U(03,24,18);       # LAST ABN ACKED BY NAM          # 
  ITEM NIT$STATE
            S:STATE(03,42,06);       # TERMINAL STATE                 # 
  ITEM NIT$UBRK   B(03,53,01);       # USER BREAK OUTSTANDING FLAG    # 
  ITEM NIT$C$ABL  U(03,54,06);       # CURRENT ABL                    # 
  ITEM NIT$WD4    U(04,00,60);       # WORD FOUR (INTEGER)            # 
  ITEM NIT$ICT    U(04,54,06);       # INPUT CHARACTER SET            # 
  ITEM NIT$PCT    U(04,00,18);       # PANEL CONTROL TABLE ADDRESS    # 
  ITEM NIT$WD5    U(05,00,60);       # WORD FIVE (INTEGER)            # 
  ITEM NIT$UP$ABH U(05,00,60);       # MOST RECENT UPLINE ABH         # 
  ITEM NIT$WD6    U(06,00,60);       # WORD SIX (INTEGER)             # 
  ITEM NIT$DN$ABH U(06,00,60);       # MOST RECENT DOWNLINE ABH       # 
  ITEM NIT$WD7    U(07,00,60);       # WORD SEVEN (INTEGER)           # 
  ITEM NIT$WD8    U(08,00,60);       # WORD EIGHT (INTEGER)           # 
  ITEM NIT$WD9    U(09,00,60);       # WORD NINE (INTEGER)            # 
  ITEM NIT$TRNAM  C(09,00,07);       # TERMINAL NAME                  # 
  END  # NIT #
  
BASED ARRAY PCT [0:0] P(1);          # PANEL CONTROL TABLE            # 
  BEGIN 
  ITEM PCT$WD0    U(00,00,60);       # WORD ZERO (INTEGER)            # 
  ITEM PCT$VRDATA U(00,42,18);       # VARDATA POINTER                # 
  END 
  
BASED ARRAY Q$BUFFER [0:0] P(1);     # USER-S BUFFER                  # 
  BEGIN 
  ITEM Q$WORD     U(00,00,60);       # WORD ZERO (INTEGER)            # 
  END 
  
BASED ARRAY QTRM$BUFFER [0:0] P(1);  # POINTER TO USERS BUFFER        # 
  BEGIN 
  ITEM QTRM$WD0   U(00,00,60);       # BUFFER WORD (INTEGER)          # 
  END 
  
BASED ARRAY Q$HEADER [0:0] S(3);     # BUFFER HEADER                  # 
  BEGIN 
  ITEM Q$WD0      U(00,00,60);       # WORD ZERO (INTEGER)            # 
  ITEM Q$CHARSET  U(00,00,12);       # CSET OF DATA IN BUFFER         # 
  ITEM Q$ACN      U(00,12,12);       # CONNECTION NUMBER              # 
  ITEM Q$BACK     U(00,24,18);       # BACKWARD CHAIN POINTER         # 
  ITEM Q$FORWARD  U(00,42,18);       # FORWARD CHAIN POINTER          # 
  ITEM Q$WD1      U(01,00,60);       # WORD ONE (INTEGER)             # 
  ITEM Q$NAME     C(01,00,07);       # QUEUE NAME (GET OR PUT)        # 
  ITEM Q$SIZE     U(01,42,18);       # SIZE OF BLOCK                  # 
  ITEM Q$WD2      U(02,00,60);       # WORD TWO (INTEGER)             # 
  ITEM Q$INCHAR   U(02,24,18);       # INSERT NEXT CHARACTER HERE     # 
  ITEM Q$OUTCHAR  U(02,42,18);       # REMOVE NEXT CHARACTER HERE     # 
  END 
  
# END OF COMVD3 COMMON BLOCK.                                         # 
  
END  # COMVD3 # 
  
CONTROL FI; 
  
CONTROL LIST; 
