*COMDECK,TCB$COM
#     TERMINAL CONTROL BLOCK - TCB                                     #
  
#           USE - MAINTAINS INFORMATION ABOUT THE REMOTE STATION"S     #
#                 CONSOLE AND ASSOCIATED BATCH DEVICES AS WELL AS      #
#                 THE STATUS OF THE REMOTE STATION (TERMINAL)          #
  
#           SIZE - TCB$SIZE (8 WORDS)                                  #
# 
            NOTE - TCB REQUIRES PREVIOUS *CALL"S FOR COMDECKS 
                   MISC$, TCH$COM, AND IP$COM 
# 
# 
            NOTE - THIS BASED ARRAY AND COMMON BLOCK IS USED BY 
                   SETACN COMPASS ROUTINE. ANY CHANGES HERE SHOULD BE 
                   FOLLOWED BY CHANGES IN SETACN. 
# 
      COMMON TCB$COM; 
      BEGIN # TCB$COM # 
      BASED ARRAY TCB [1:1] S(1); 
        ITEM
        TCB$COMPLETE    B (0,0,1),               # EVENT COMPLETE      #
        TCB$CRINTR      B (0,1,1),               # BATCH INTERRUPT,CR  #
        TCB$LPINTR      B (0,2,1),               # BATCH INTERRUPT,LP  #
        TCB$INTERRPT    U (0,1,2),               # INTERRUPT FLAG,200UT#
        TCB$RESUME      B (0,3,1),               # INTERACTIVE MODE    #
        TCB$REFRESH     B (0,4,1),               # REFRESH MODE        #
        TCB$BATCH       B (0,5,1),               # BATCH MODE          #
        TCB$INPTYPE     U (0,6,6),               # INPUT TYPE          #
        TCB$TIME        U (0,12,12),             # CONSOLE TIMMER      #
        TCB$EVENT       U (0,24,18),             # EVENT ADDRESS       #
        TCB$LINK        U (0,42,18),             # RETURN ADDRESS      #
        TCB$BLKSIZE     U (1,0,12),              # XMISSION BLOCK SIZE #
        TCB$REF         U (1,12,12),             # REFRESH TIMMER      #
        TCB$ACN         U (1,24,12),             # CONSOLE ACN         #
        TCB$ABL         U (1,36,3),              # BLOCK LIMIT         #
        TCB$STPFLAG     B (1,39,1),              # CONSOLE STOPPED     #
        TCB$IAFFLAG     B (1,40,1),              # GONE TO IAF         #
        TCB$ENDFLAG     B (1,41,1),              # END CONNECTION      #
        TCB$AUTOGO      B (1,42,1),              # RESTRICED I/O       #
        TCB$RIC         U (1,42,1), 
        TCB$MD4A        B (1,43,1),              # MODE 4A TERMINAL    #
        TCB$DT          S:DEVICETYPE (1,44,3),   # DEVICE TYPE         #
        TCB$TC          S:TERMINALCLAS (1,47,5), # TERMINAL CLASS      #
        TCB$DTTC        U (1,44,8),              # DEVICE TYPE/CLASS   #
        TCB$NDEVICE     U (1,52,8),              # NO OF BATCH DEVICES #
        TCB$TERMNAME    C (2,0,7),               # NAME OF CONSOLE     #
        TCB$READY       B (2,42,1),              # ISSUE READY MSG     #
        TCB$PAGEWAIT    B (2,43,1),              # PAGE WAIT FLAG      #
        TCB$PW          U (2,44,8),              # PAGE WIDTH          #
        TCB$PL          U (2,52,8),              # PAGE LENGTH         #
        TCB$FAMNAME     C (3,0,7),               # LOGIN FAMILY NAME   #
        TCB$FAMORD      U (3,42,18),             # FAMILY ORDINAL      #
        TCB$FAMWORD     U (3,0,60),              # FAMILY NAME/ORDINAL #
        TCB$USERNUM     C (4,0,7),               # LOGIN USER NUMBER   #
        TCB$USERORD     U (4,42,18),             # USER ORDINAL        #
        TCB$USRWORD     U (4,0,60),              # USER NUMBER/ORDINAL #
        TCB$DIS         I (5,0,10),              # DISPLAY TYPE        #
        TCB$JOBFLAG     B (5,0,1),               # JOB DISPLAY FLAG    #
        TCB$DEVFLAG     B (5,1,1),               # DEVICE DISPLAY FLAG #
        TCB$QFLAGS      U (5,5,5),               # QUEUE TYPE          #
        TCB$INFLAG      U (5,9,1) , 
        TCB$EXFLAG      U (5,8,1) , 
        TCB$OQFLAGS     U (5,5,3) , 
        TCB$PRFLAG      U (5,7,1) , 
        TCB$PUFLAG      U (5,6,1) , 
        TCB$PTFLAG      U (5,5,1) , 
        TCB$MOREINQ     B (5,10,1),              # MORE JOBS ON DIS,RFR#
        TCB$EXTDIVC1    B (5,11,1),              # QAC CALLED 1ST TIME #
        TCB$DIVFLAGS    U (5,12,4),              # DIVERT FLAGS        #
        TCB$EXTDIVS     U (5,13,3),              # EXTENDED DIVERT FLAG#
        TCB$EXTPTDIV    B (5,13,1),              # PLOT QUEUE DIVERT   #
        TCB$EXTPUDIV    B (5,14,1),              # PUNCH QUEUE DIVERT  #
        TCB$EXTPRDIV    B (5,15,1),              # PRINT QUEUE DIVERT  #
        TCB$NEXTBSN     U (5,16,4),              # NEXT BSN            #
        TCB$NXTACKSN    U (5,20,4),              # NEXT ACK BSN EXPECT #
        TCB$QABBUF      U (5,24,12),             # QAC REQUEST BLOCK   #
        TCB$ANNEXORD    U (5,24,12),             # ADDITIONAL BLK, DIS #
        TCB$ILAST       U (5,36,12),             # LAST INPUT BLOCK    #
        TCB$INPUT       U (5,48,12),             # FIRST INPUT BLOCK   #
        TCB$WAITACK     B (6,0,1),               # WAIT FOR ACK FLAG   #
        TCB$AL          U(6,21,3) ,            # SECURITY ACCESS LEVEL #
        TCB$ALOFLAG     B (6,1,1),               # AUTO-LOGOUT FLAG    #
        TCB$ALOTIME     U (6,2,12),              # INACTIVITY TIMER    #
        TCB$HWFLAG      B (6,14,1),              # HARDWIRED TERM FLAG #
        TCB$CTIM        B (6,15,1),              # NO TIMEOUT FLAG     #
        TCB$CDCNT       B (6,16,1),              # CDCNET CONNECTION   #
        TCB$CITBUF      U (6,24,12),             # CMD INTERFACE BLOCK #
        TCB$OLAST       U (6,36,12),             # LAST OUTPUT BLOCK   #
        TCB$OUTPUT      U (6,48,12),             # FIRST OUTPUT BLOCK  #
        TCB$JOBNAME     C (7,0,7),               # JOB NAME            #
        TCB$JSN      C (7,0,04),  # JOB SEQUENCE NUMBER # 
        TCB$ZERO     U (7,24,18),  #   ZERO FIELD         # 
        TCB$JOBZERO     I (7,0,42),              # JOB NAME            #
        TCB$CURACTN     U (7,42,6),              # CURRENT ACTION      #
        TCB$CURSTATE    U (7,48,6),              # CURRENT STATE       #
        TCB$CURINPUT    U (7,54,6),              # CURRENT INPUT       #
        TCB$LASTWD      I (7,0,60);              # LAST WORD OF TCB    #
      CONTROL EJECT;
#     TCB$DEVICE TABLE                                                 #
# 
            USE - MAINTAINS INFORMATION ABOUT A BATCH DEVICE
                  ASSOCIATED WITH THE CONSOLE IN THE TCB TO WHICH 
                  THIS ENTRY IS APPENDED. 
  
           SIZE - TWO WORDS PER ENTRY.
  
           NOTE - ENTIES DEFINED IN TCB$DEVICE ARE APPENDED TO A TCB. 
                  TCB$NDEVICE IN THE TCB GIVES THE NUMBER OF APPENDED 
                  TCB$DEVICE ENTRIES. 
                  ACN$DEVINDEX OF THE BATCH DEVICE"S ACN$TABLE ENTRY
                  CONTAINS THE POSITION OF THE DEVICES TCB$DEVICE 
                  ENTRY AFTER THE LAST WORD IN THE TCB. 
# 
      BASED ARRAY TCB$DEVICE [1:1] S(2);
      ITEM
        TCB$DEVWORD1    U (0,0,60),              # WORD 1 OF TABLE     #
        TCB$DEVWORD2    U (1,0,60),              # WORD 2 OF TABLE     #
        TCB$DEVBSZ      U (0,0,12),              # XMISSION BLOCK SIZE #
        TCB$ORGWIDTH    U (0,12,7),              # DEFAULT PAGE WIDTH  #
        TCB$CURWIDTH    U (0,19,7),              # CURRENT PAGE WIDTH  #
        TCB$ENDCON      B (0,26,1),              # END BATCH DEV.200UT# 
        TCB$DEVDTTC     U (0,27,8),              # DEVICE TYPE/CLASS   #
        TCB$DEVDT       U (0,27,3),              # DEVICE TYPE         #
        TCB$DEVTC       U (0,30,5),              # TERMINAL CLASS      #
        TCB$ERRORS      U (0,35,10),             # DEVICE DISPLAY FLAGS#
        TCB$NOTRDY      B (0,35,1),              # CR NOTREADY         #
        TCB$CARDERR     B (0,36,1),              # CARD READER ERROR   #
        TCB$INPQFULL    B (0,37,1),              # INPUT QUEUE FULL    #
        TCB$DISKERR     B (0,38,1),              # DISK PARITY ERROR   #
        TCB$DISKFULL    B (0,39,1),              # DISK FULL           #
        TCB$JOBERR      B (0,40,1),              # JOB CARD ERROR      #
        TCB$ACCTERR     B (0,41,1),              # USER CARD ERROR     #
        TCB$PM          B (0,42,1),              # PM INTERRUPT        #
        TCB$DEVACN      U (0,45,12),             # DEVICE ACN          #
        TCB$ORD         U (0,57,3),              # DEVICE ORDINAL      #
        TCB$SKPVAL      I (1,0,13),              # SKIP VALUE          #
        TCB$SKPDFL      B (1,13,1),              # SKIP TO DAYFILE FLAG#
        TCB$REPEAT      I (1,14,7),              # REPEAT COUNTER      #
        TCB$OPT         U (1,21,3),              # OPTIONS IN EFFECT   #
        TCB$ACKFLAG     B (1,21,1),              # ACKNOLEDGE JOB NAME #
        TCB$FMTFLAG     B (1,22,1),              # FORMAT EFFECTOR FLAG#
        TCB$BANFLAG     B (1,23,1),              # BANNER FLAG         #
        TCB$PRIORITY    U (1,24,12),             # FILE PRIORITY       #
        TCB$DEVUPS      U(1,24,2),              # UPLINE SZE IN PRU # 
        TCB$DEVDPS      U(1,24,2),              # DOWNLN SZE IN PRU # 
        TCB$FORMS       U (1,36,12),             # FORMS CODE          #
        TCB$TRAIN       U (1,51,3),              # PRINT TRAIN TYPE    #
        TCB$CMDTY       U (1,54,6);              # BATCH COMMAND       #
     END   # TCB$COM #
  
      #       BUFFER AREA FOR DIS USE ONLY.                            #
      BASED ARRAY TCB$ANNEX S(3); 
        BEGIN                # EXTRA TCB WORDS NEEDED ONLY BY DIS      #
        ITEM EMPTYDISPLAY  B(0,0,1);   # TRUE IF NO DATA RCVD FOR DIS  #
        ITEM LASTQACCALL   B(0,2,1);   # NO MORE CALLS TO QAC NEEDED   #
        ITEM TITLESENT     B(0,3,1);   # TRUE IF AT LEAST 1 TITLE SENT #
        ITEM LINENR        I(0,6,12);  # LINE NUMBER WITHIN PAGE       #
        ITEM LASTORD       I(0,24,12);
        ITEM NRQACREQS     I(0,42,18); # NR OF PEEK REPLIES REQSTD QAC #
        ITEM  WMSGORD       U(1,0,12); # WARNING MASG. ORDINAL        # 
        ITEM  QABBUF        U(1,12,12); # CURRENT QAC REQUEST ORDINAL # 
        ITEM  QINDEX        U(1,24,12); # INDEX TO QUEUE              # 
        ITEM  FLUSHBUF      B(1,36,1);  # TRUE IF BLOCK TO BE SENT    # 
        ITEM  FULLPAGE      B(1,37,1);  # TRUE IF NO ROOM FOR MSG     # 
        ITEM  FULLBUF       B(1,38,1);  # TRUE IF BUFFER FULL         # 
        ITEM NOCURBUF      B(2,0,1);   # NO DIS BUF NOW ALLOCATED      #
        ITEM BYTES$USED    U(2,24,12); # NR ASCII BYTES AFTER CONVERTN #
        ITEM WORDS$USED    U(2,36,12); # NR OF CM-WORDS IN CURRENT BUF #
        ITEM CURBUFORD     U(2,48,12); # TSB ORDINAL OF CURRENT BUF    #
        END                  # EXTRA TCB WORDS ...                     #
  
