1 /* BEGIN INCLUDE FILE ... tcb.incl.pl1 */
  2 
  3 /* Date Last Modified and Reason
  4    Created 04/19/77 by J. Stern (from part of tty.incl.pl1)
  5    Modified 2/6/78 by Robert Coren to add input_msg_size
  6    Modified 4/18/78 by Robert Coren to add framing_chars
  7    Modified 8/31/78 by J. Nicholls to add scroll mode
  8    Extracted 9/12/78 by J. Stern from tty_data.incl.pl1
  9    Modified Oct.1979 by Robert Coren to expand to 36 possible modes
 10    Modified 1/21/80 by Robert Coren to add no_outp, oddp, & eight_bit modes
 11    Modified 10/08/80 by Robert Coren to add meters for tty_read & tty_write
 12    Modified: 10 November 1980 by G. Palter to add can_type and explicit padding
 13    Modified 12/04/80 by Robert Coren to add saved copy of meters
 14    Modified 2/24/81 by Robert Coren to add time spent in tty_read and _write
 15    Modified April 1981 by Robert Coren to add time last dialed up
 16 */
 17 
 18 dcl  tcbp ptr;
 19 
 20 dcl 1 tcb based (tcbp) aligned,                             /* declaration of per terminal control block */
 21 
 22     2 terminal_type char (32) unaligned,                    /* terminal type name */
 23     2 tables,
 24       3 input_mvtrp bit (18) unaligned,                     /* rel pointer to current input mvt table */
 25       3 output_mvtrp bit (18) unaligned,                    /* rel pointer to current output mvt table */
 26       3 input_tctrp bit (18) unaligned,                     /* rel pointer to current input tct table */
 27       3 output_tctrp bit (18) unaligned,                    /* rel pointer to current output tct table */
 28       3 specialrp bit (18) unaligned,                       /* rel pointer to current special chars table */
 29       3 delayrp bit (18) unaligned,                         /* rel pointer to current delay table */
 30     2 default_tables,
 31       3 df_input_mvtrp bit (18) unaligned,                  /* rel pointer to default input mvt table */
 32       3 df_output_mvtrp bit (18) unaligned,                 /* rel pointer to default output mvt table */
 33       3 df_input_tctrp bit (18) unaligned,                  /* rel pointer to default input tct table */
 34       3 df_output_tctrp bit (18) unaligned,                 /* rel pointer to default output tct table */
 35       3 df_specialrp bit (18) unaligned,                    /* rel pointer to default special chars table */
 36       3 df_delayrp bit (18) unaligned,                      /* rel pointer to default delay table */
 37     2 special_input_chars unaligned,
 38       3 erase char (1) unaligned,                           /* erase character */
 39       3 kill char (1) unaligned,                            /* kill character */
 40     2 old_type fixed bin (17) unaligned,                    /* old terminal type number */
 41 
 42     2 modes unaligned,                                      /* modes set by order call */
 43       3 edited bit (1) unaligned,                           /* edited output mode */
 44       3 tabm bit (1) unaligned,                             /* insert output tabs mode */
 45       3 canm bit (1) unaligned,                             /* do canonical form conversion */
 46 
 47       3 escm bit (1) unaligned,                             /* do input escape conversions */
 48       3 erklm bit (1) unaligned,                            /* do erase kill processing */
 49       3 rawim bit (1) unaligned,                            /* don't convert input */
 50 
 51       3 rawom bit (1) unaligned,                            /* don't convert output */
 52       3 redm bit (1) unaligned,                             /* has red-shift function */
 53       3 vertsp bit (1) unaligned,                           /* send real ff's and vt's if on, else escape them */
 54 
 55       3 echo_cr bit (1) unaligned,                          /* echo carriage returns */
 56       3 echo_lf bit (1) unaligned,                          /* echo line feeds */
 57       3 echo_tab bit (1) unaligned,                         /* echo tabs */
 58 
 59       3 hndlquit bit (1) unaligned,                         /* cr's on quit */
 60       3 full_duplex bit (1) unaligned,                      /* xmit and receive simultaneously */
 61       3 echoplex bit (1) unaligned,                         /* echo input characters on terminal */
 62 
 63       3 upper_case bit (1) unaligned,                       /* map lower-case output into upper-case */
 64       3 replay bit (1) unaligned,                           /* replay interrupted input */
 65       3 polite bit (1) unaligned,                           /* output must start at left margin */
 66 
 67       3 control bit (1) unaligned,                          /* accept control characters */
 68       3 blk_xfer bit (1) unaligned,                         /* block transfer or "frame" mode */
 69       3 breakall bit (1) unaligned,                         /* break on all characters */
 70 
 71       3 scroll bit (1) unaligned,                           /* scroll mode for crt terminals */
 72       3 prefixnl bit (1) unaligned,                         /* prefix output iwth nl when input interrupted */
 73       3 wake_tbl bit (1) unaligned,                         /* input wakeups determined by wakeup table */
 74 
 75       3 iflow bit (1) unaligned,                            /* input flow control */
 76       3 oflow bit (1) unaligned,                            /* output flow control */
 77       3 no_outp bit (1) unaligned,                          /* don't generate output parity */
 78 
 79       3 eight_bit bit (1) unaligned,                        /* don't strip input parity */
 80       3 odd_parity bit (1) unaligned,                       /* generate odd parity (if any) */
 81 
 82       3 modes_pad bit (7) unaligned,
 83 
 84     2 id char (4) unaligned,                                /* terminal id */
 85 
 86     2 colmax fixed bin (8) unaligned,                       /* current maximum number of columns */
 87     2 linemax fixed bin (8) unaligned,                      /* current maximum number of lines/frame */
 88     2 wrt_lchar fixed bin (17) unaligned,                   /* char within last write block */
 89 
 90     2 input_msg_size fixed bin,                             /* maximum input message size in chars */
 91     2 framing_chars unaligned,
 92       3 frame_begin char (1) unaligned,                     /* frame-begin character */
 93       3 frame_end char (1) unaligned,                       /* frame-end character */
 94     2 max_output_block fixed bin (18) unsigned unaligned,   /* maximum size of output block in block_acknowledge */
 95 
 96     2 input_suspend_seq unaligned,                          /* sequence for input suspension */
 97       3 count fixed bin (9) unsigned,
 98       3 chars char (3),
 99     2 input_resume_seq unaligned,                           /* likewise for input resumption */
100       3 count fixed bin (9) unsigned,
101       3 chars char (3),
102 
103     2 output_suspend_etb_seq unaligned,                     /* sequence for output suspension or end_of_block */
104       3 count fixed bin (9) unsigned,
105       3 chars char (3),
106     2 output_resume_ack_seq unaligned,                      /* likewise for resumption or ack */
107       3 count fixed bin (9) unsigned,
108       3 chars char (3),
109 
110     2 flags unaligned,                                      /* tty dim flag bits */
111       3 breakall_enabled bit (1) unaligned,                 /* channel is permitted to use breakall mode */
112       3 dont_count_next bit (1) unaligned,                  /* next output character is escaped */
113       3 keyboard_locking bit (1) unaligned,                 /* ON if doing keybd locking for ASCIi line type */
114       3 no_printer_off bit (1) unaligned,                   /* reject printer_off/printer_on orders */
115       3 break_char_pending bit (1) unaligned,               /* break character is in preconverted buffer */
116       3 uproc_attached bit (1) unaligned,                   /* user process has attached device */
117       3 block_acknowledge bit (1) unaligned,                /* block acknowledgement output protocol */
118       3 flags_pad bit (27) unaligned,
119 
120     2 actshift bit (2) unaligned,                           /* tty shift, 00 none, 01 lower, 10 upper, 11 unknown */
121 
122     2 cumulative_meters,                                    /* continuously running meters */
123       3 read_calls fixed bin (35),                          /* number of calls to tty_read */
124       3 write_calls fixed bin (35),                         /* number of calls to tty_write */
125       3 read_chars fixed bin (35),                          /* after conversion */
126       3 write_chars fixed bin (35),                         /* before conversion */
127       3 read_time fixed bin (71),                           /* total time spent in tty_read */
128       3 write_time fixed bin (71),                          /* total time spent in tty_write */
129     2 saved_meters like tcb.cumulative_meters,              /* meters saved at last dialup */
130 
131     2 can_type fixed binary (9) unaligned unsigned,         /* type of canonicalization to use on this channel */
132     2 pad1 bit (27) unaligned,                              /* to word boundary */
133     2 time_dialed fixed bin (71);                           /* clock time of last copy_meters order */
134 
135 /* END INCLUDE FILE ... tcb.incl.pl1 */