TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      52  IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES

   (8)     222  TTY$PUTNEXTCHAR - BUFFER CHARACTER 

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   1

V06                                                                                                                              (1)



                                     0000     1 	.TITLE	TTYCHARI - TERMINAL INPUT CHARACTER ROUTINES

                                     0000     2 	.IDENT	/V06/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1978

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     6 ;

                                     0000     7 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0000     8 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000     9 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    10 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    11 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    12 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    13 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    14 ;

                                     0000    15 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0000    16 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0000    17 ; EQUIPMENT CORPORATION.

                                     0000    18 ;

                                     0000    19 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0000    20 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    21 ;

                                     0000    22 ;++

                                     0000    23 ;

                                     0000    24 ; FACILITY:

                                     0000    25 ;

                                     0000    26 ;	VAX/VMS TERMINAL DRIVER

                                     0000    27 ;

                                     0000    28 ; ABSTRACT:

                                     0000    29 ;

                                     0000    30 ;	THIS MODULE CONTAINS ROUTINES NEEDED FOR CHARACTER INPUT.

                                     0000    31 ;

                                     0000    32 ; AUTHOR:

                                     0000    33 ;

                                     0000    34 ;	R.HEINEN  11-AUG-1976

                                     0000    35 ;--

                                     0000    36 ;

                                     0000    37 ; EXTERNAL SYMBOLS

                                     0000    38 ;

                                     0000    39 	$IODEF				; DEFINE I/O FUNCTION CODES

                                     0000    40 	$IPLDEF				; DEFINE IPL'S

                                     0000    41 	$IRPDEF				; DEFINE IRP

                                     0000    42 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000    43 	$SSDEF				; DEFINE SYSTEM SERVICE STATUS CODES

                                     0000    44 	$UCBDEF				; DEFINE UCB

                                     0000    45 	$TTDEF				; DEFINE TERMINAL CHARACTERISTICS

                                     0000    46 	$TTYDEF				; DEFINE TERMINAL DRIVER SYMBOLS

                                     0000    47 	$TTYUCBDEF			; DEFINE TERMINAL DRIVER SYMBOLS

                                     0000    48 	TTYMACS				; DEFINE TERMINAL MACROS

                                     0000    49  

                                 00000000    50 	.PSECT	$$$115_DRIVER,LONG	; DEFINE NON-PAGED PSECT

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   2

V06             IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES                                                                       (2)



                                     0000    52 	.SBTTL IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES

                                     0000    53  

                                     0000    54 	.ENABL	LSB

                                     0000    55 ;++

                                     0000    56 ; CONTROLC - SIGNAL CONTROL C INPUT

                                     0000    57 ; CONTROLY - SIGNAL CONTROL Y INPUT

                                     0000    58 ;

                                     0000    59 ; FUNCTIONAL DESCRIPTION:

                                     0000    60 ;

                                     0000    61 ; THIS ROUTINE IS ENTERED WHEN A CONTROL C OR Y IS TYPED.

                                     0000    62 ; THE ACTION IS TO SIGNAL, VIA AN AST, THE HOLDER OF THE AST ENABLE.

                                     0000    63 ; IF NO ENABLE IS PRESENT, AN ATTEMPT IS MADE TO SIGNAL THE JOB CONTROLLER

                                     0000    64 ; IF IT HAS NOT BEEN SIGNALED.

                                     0000    65 ;

                                     0000    66 ; INPUTS:

                                     0000    67 ;

                                     0000    68 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0000    69 ;	R5 = UCB ADDRESS

                                     0000    70 ;

                                     0000    71 ; OUTPUTS:

                                     0000    72 ;

                                     0000    73 ; 	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0000    74 ;	R5 = UCB ADDRESS

                                     0000    75 ;--

                                     0000    76 CONTROLC:				; ENTRY FOR CONTROL C

            54       0080 C5     DE  0000    77 	MOVAL	UCB$L_TT_CTRLC(R5),R4	; GET ADDRESS OF CONTROL C AST LIST

                          64     D5  0005    78 	TSTL	(R4)			; EMPTY?

                          0D     13  0007    79 	BEQL	10$			; IF EQL THEN NO CTRLC

            53       0000'CF     9E  0009    80 	MOVAB	W^TTY$A_CTRLC,R3	; ADDRESS EVENTUAL OUTPUT STRING

         6C A5       0651 8F     3C  000E    81 	MOVZWL	#SS$_CONTROLC,UCB$W_BOFF(R5); SET STATUS AND ZERO COUNT

                          13     11  0014    82 	BRB	15$

                                     0016    83 ;

                                     0016    84 ; CONTROL Y PROCESSING

                                     0016    85 ;

                                     0016    86 CONTROLY:

            54         7C A5     DE  0016    87 10$:	MOVAL	UCB$L_TT_CTRLY(R5),R4	; GET ADDRESS OF CONTROL Y AST LIST

                          64     D5  001A    88 	TSTL	(R4)			; EMPTY LIST?

                          4E     13  001C    89 	BEQL	100$			; IF EQL THEN YES  

            53       0000'CF     9E  001E    90 	MOVAB	W^TTY$A_CTRLY,R3	; ADDRESS EVENTUAL OUTPUT STRING

         6C A5       0611 8F     3C  0023    91 	MOVZWL	#SS$_CONTROLY,UCB$W_BOFF(R5); SET STATUS AND ZERO COUNT

         78 A5            53     D0  0029    92 15$:	MOVL	R3,UCB$L_TT_MULTI(R5)	; SET UP FOR MULTIECHO

                 00000000'GF     16  002D    93 	JSB	G^COM$DELATTNAST	; DELIVER ATTENTION ASTS

                          FFCA'  30  0033    94 	BSBW	TTY$PURGE_AHEAD		; PURGE THE TYPEAHEAD

                                     0036    95 	SET_STATE MULTI			;

         3C A5            0E     E5  003A    96 	BBCC	#TT$V_HOLDSCREEN,UCB$L_DEVDEPEND(R5),20$; BR IF NOT IN HOLD SCREEN

                          04         003E       

         78 A5            02     C2  003F    97 	SUBL	#2,UCB$L_TT_MULTI(R5)	; ADJUST STRING ADDRESS TO REMOVE HOLD SCREEN

                          FFBA'  30  0043    98 20$:	BSBW	TTY$STOPIO		; COMPLETE THE I/O

                          56     11  0046    99 	BRB	CANCEL_CTRLS		; CANCEL CONTROL S AND BEGIN ECHO

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   3

V06             IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES                                                                       (3)



                                     0048   101 ;++

                                     0048   102 ; CONTROLX - PURGE TYPEAHEAD BECAUSE OF CONTROL X INPUT

                                     0048   103 ;

                                     0048   104 ; FUNCTIONAL DESCRIPTION:

                                     0048   105 ;

                                     0048   106 ; THIS ROUTINE PURGES THE TYPEAHEAD BUFFER AND IF THE REASON IS THAT

                                     0048   107 ; A CONTROL X WAS TYPED DURING A READ THEN A CONTROL U IS INSERTED IN

                                     0048   108 ; THE INPUT STREAM TO PURGE THE CURRENT INPUT LINE.

                                     0048   109 ;

                                     0048   110 ; INPUTS:

                                     0048   111 ;

                                     0048   112 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0048   113 ;	R5 = UCB ADDRESS

                                     0048   114 ;

                                     0048   115 ; OUTPUTS:

                                     0048   116 ;

                                     0048   117 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0048   118 ;	R3 = CONTROL U - IF CONTROL X TYPED DURING READ

                                     0048   119 ;	R5 = UCB ADDRESS

                                     0048   120 ;--

                                     0048   121 CONTROLX:

                          FFB5'  30  0048   122 	BSBW	TTY$PURGE_AHEAD		; PURGE TYPEAHEAD

                                     004B   123 	IF_NOT_STATE READ,75$		; DONE IF NO READ IN PROGRESS

            53            15     9A  0051   124 	MOVZBL	#TTY$C_CTRLU,R3		; FORCE A CONTROL U IN INPUT STREAM

                          16     11  0054   125 	BRB	100$			; CONTINUE AND BUFFER CHARACTER

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   4

V06             IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES                                                                       (5)



                                     0056   127 

                                     0056   128 ;++

                                     0056   129 ; CONTROLS - STOP OUTPUT TO UNIT

                                     0056   130 ;

                                     0056   131 ; FUNCTIONAL DESCRIPTION:

                                     0056   132 ;

                                     0056   133 ; THIS ROUTINE IS ENTERED WHEN THE USER TYPES A CONTROL S.

                                     0056   134 ; ON UNITS THAT DO NOT HAVE THE TM$_NOTTSYNC CHARACTERISTIC, THE OUTPUT

                                     0056   135 ; IS STOPED BY TURNING THE OUTPUT INTERRUPT ENABLE BIT IN THE UCB

                                     0056   136 ; OFF.

                                     0056   137 ;

                                     0056   138 ; INPUTS:

                                     0056   139 ;

                                     0056   140 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0056   141 ;	R5 = UCB ADDDRESS

                                     0056   142 ;

                                     0056   143 ; OUTPUTS:

                                     0056   144 ;

                                     0056   145 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0056   146 ;	R5 = UCB ADDRESS

                                     0056   147 ;--

                                     0056   148 CONTROLS:

         3C A5            05     E1  0056   149 	BBC	#TT$V_TTSYNC,UCB$L_DEVDEPEND(R5),100$; TERMINAL SYNCH?

                          11         005A       

                                     005B   150 	IF_STATE BRDCST,75$		; IGNORE IF BROADCAST IN PROGRESS

                                     0061   151 	SET_STATE CTRLS			; STOP OUTPUT

                                     0064   152 75$:					; IGNORE CHARACTER OR RETURN WITH NO OUTPUT

                          53     D4  0064   153 	CLRL	R3			; SET NO CHARACTER TO RETURN

                                 05  0066   154 	RSB				; AND RETURN TO DRIVER CODE

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   5

V06             IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES                                                                       (6)



                                     0067   156 ;++

                                     0067   157 ; CONTROLQ - START OUTPUT ON CONTROL S STOPED UNIT

                                     0067   158 ;

                                     0067   159 ; FUNCTIONAL DESCRIPTION:

                                     0067   160 ;

                                     0067   161 ; THIS ROUTINE STARTS OUTPUT ON A UNIT WHICH IS STOPED BECAUSE

                                     0067   162 ; OF CONTROL S.

                                     0067   163 ;

                                     0067   164 ; INPUTS:

                                     0067   165 ;

                                     0067   166 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0067   167 ;	R5 = UCB ADDRESS

                                     0067   168 ;

                                     0067   169 ; OUTPUTS:

                                     0067   170 ;

                                     0067   171 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     0067   172 ;	R5 = UCB ADDRESS

                                     0067   173 ;--

                                     0067   174 CONTROLQ:

         3C A5            05     E0  0067   175 	BBS	#TT$V_TTSYNC,UCB$L_DEVDEPEND(R5),CANCEL_CTRLS; TERMINAL SYNCH?

                          32         006B       

                          60     11  006C   176 100$:	BRB	BUFFER_CHAR		; BUFFER THE CHARACTER NORMALLY

                                     006E   177  

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   6

V06             IMMEDIATE CONTROL SEQUENCE ACTION ROUTINES                                                                       (7)



                                     006E   179 ;++

                                     006E   180 ; CONTROLO - START OR STOP OUTPUT ON UNIT

                                     006E   181 ;

                                     006E   182 ; FUNCTIONAL DESCRIPTION:

                                     006E   183 ;

                                     006E   184 ; THIS ROUTINE TOGGLES THE OUTPUT ENABLE OF A UNIT.

                                     006E   185 ; OUTPUT IS STOPED UNTIL THE NEXT READ OPERATION, IO$_WRTCANCTRLO

                                     006E   186 ; OR CONTROL O.

                                     006E   187 ;

                                     006E   188 ; INPUTS:

                                     006E   189 ;

                                     006E   190 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     006E   191 ;	R5 = UCB ADDRESS

                                     006E   192 ;

                                     006E   193 ; OUTPUTS:

                                     006E   194 ;

                                     006E   195 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     006E   196 ;	R5 = UCB ADDRESS

                                     006E   197 ;--

                                     006E   198 CONTROLO:

                                     006E   199 ;

                                     006E   200 ; IGNORE CONTROL O IF IN A READ AND THEN PROMPT IS COMPLTET

                                     006E   201 	IF_NOT_STATE READ,120$		; IF NOT READ THEN HONOR

                                     0074   202 	IF_NOT_STATE CTRLR,75$		; IF CONTROL R THEN IGNORE

            62       1000 8F     AC  007A   203 120$:	XORW	#<TTY$M_ST_CTRLO>,(R2)	; FLOP CONTROL O BIT

                                     007F   204 	IF_STATE	BRDCST,75$

                                     0085   205 	IF_NOT_STATE CTRLO,CANCEL_CTRLS	; IF NOW CLEAR THEN START OUTPUT

         78 A5       0000'CF     9E  008B   206 	MOVAB	W^TTY$A_CTRLO,UCB$L_TT_MULTI(R5); INSERT ADDRESS OF STRING

                                     0091   207 	SET_STATE MULTI

                     009A C5     B5  0095   208 	TSTW	UCB$W_TT_CURSOR(R5)	; IF CURSOR AT 0 THEN OUTPUT NEWLINE

                          03     12  0099   209 	BNEQ	CANCEL_CTRLS

                       78 A5     D7  009B   210 	DECL	UCB$L_TT_MULTI(R5)	; OUTPUT LINE FEED FIRST

                                     009E   211 ;

                                     009E   212 ; RESTART OUTPUT ON STOPED UNIT

                                     009E   213 ;

                                     009E   214 ; ENTRY FROM CONTROLY AND CONTROLC

                                     009E   215 ;

                                     009E   216 CANCEL_CTRLS:

                                     009E   217 	CLR_STATE CTRLS			; RESET CONTROL S STATE

                          00C7   31  00A1   218 	BRW	BEGIN_ECHO		; BEGIN OUTPUT

                                     00A4   219  

                                     00A4   220 	.DSABL	LSB

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   7

V06             TTY$PUTNEXTCHAR - BUFFER CHARACTER                                                                               (8)



                                     00A4   222 	.SBTTL	TTY$PUTNEXTCHAR - BUFFER CHARACTER 

                                     00A4   223 ;++

                                     00A4   224 ; TTY$PUTNEXTCHAR - BUFFER CHARACTER 

                                     00A4   225 ;

                                     00A4   226 ; FUNCTIONAL DESCRIPTION:

                                     00A4   227 ;

                                     00A4   228 ; THIS ROUTINE IS CALLED BY THE DEVICE DEPENDENTINPUT INTERRUPT ROUTINES.

                                     00A4   229 ;

                                     00A4   230 ; CHARACTERS RECEIVED ON NON PASSALL UNITS ARE FILTERED FOR IMMEDIATE

                                     00A4   231 ; CONTROL SEQUENCES. THESE SEQUENCES REPRESENT:

                                     00A4   232 ;

                                     00A4   233 ;	CONTROL Y -- 	CAUSES THE TYPEAHEAD BUFFER TO BE PURGED, THE

                                     00A4   234 ;		     	ENABLED PROCESS TO RECEIVE AN AST, A "^Y" TO

                                     00A4   235 ;			BE OUTPUT AND THE CURRENT OPERATION IF ANY TO

                                     00A4   236 ;			BE COMPLETED WITH A ZERO TRANSFER COUNT FOR READ 

                                     00A4   237 ;			AND AS IF CONTROL O FOR WRITE.

                                     00A4   238 ;

                                     00A4   239 ;	CONTROL C --	CAUSES THE RECEIVER OF CONTROL C AST'S OR THE RECEIVER

                                     00A4   240 ;			OF CONTROL Y AST'S TO BE SIGNALLED AS IN CONTROL Y.

                                     00A4   241 ;

                                     00A4   242 ;	CONTROL X -- 	CAUSES THE CONTENTS OF THE TYPEAHEAD BUFFER

                                     00A4   243 ;			TO BE PURGED AND A CONTROL U TO BE INSERTED

                                     00A4   244 ;			IN THE INPUT STREAM IF A READ IS IN PROGRESS.

                                     00A4   245 ;

                                     00A4   246 ;	CONTROL S --	CAUSES ALL OUTPUT ON UNIT TO STOP UNTIL

                                     00A4   247 ;			CONTROL Q,Y OR C.

                                     00A4   248 ;

                                     00A4   249 ;	CONTROL Q --	RESETS CONTROL S MODE AND STARTS OUTPUT UP.

                                     00A4   250 ;

                                     00A4   251 ; SLAVE MODE ( NO UNSOLICITED INPUT ) UNITS MUST HAVE OUTSTANDING

                                     00A4   252 ; READS OTHERWISE THE CHARACTER, AFTER CONTROL CHARACTER FILTERING

                                     00A4   253 ; IS IGNORED.

                                     00A4   254 ;

                                     00A4   255 ; INPUTS:

                                     00A4   256 ;	R3 = CHARACTER TO BUFFER

                                     00A4   257 ;	R5 = UCB

                                     00A4   258 ;	R1,R2,R4 ARE AVAILABLE FOR USE

                                     00A4   259 ;

                                     00A4   260 ; OUTPUTS:	

                                     00A4   261 ;

                                     00A4   262 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     00A4   263 ;	R3 = CHARACTER TO OUTPUT 0 IF NONE (CC= EQL)

                                     00A4   264 ;	R5 = UCB ADDRESS

                                     00A4   265 ;--

                                     00A4   266 TTY$PUTNEXTCHAR::

            52         74 A5     9E  00A4   267 	MOVAB	UCB$L_TT_STATE(R5),R2	; ADDRESS STATUS OF UNIT

         3C A5       8000 8F     B3  00A8   268 	BITW	#TT$M_EIGHTBIT,UCB$L_DEVDEPEND(R5); 8BIT TERMINAL?

                          04     12  00AE   269 	BNEQ	5$			; IF NEQ THEN YES

            53         80 8F     8A  00B0   270 	BICB	#^X080,R3		; STRIP 8TH BIT

                                     00B4   271 ;

                                     00B4   272 ; AVOID CHECK FOR PASSALL MODE

                                     00B4   273 ;

                                     00B4   274 5$:	IF_STATE PASALL,BUFFER_CHAR	; NO CONTROL SEQS IF PASSALL

                                     00BB   275 ;

                                     00BB   276 ; CHECK FOR CONTROL SEQUENCE CHARACTER

                                     00BB   277 ;

                                     00BB   278 	CASE	W^TTY$A_TYPE[R3],TYPE=B,LIMIT=#1@TTY$V_CH_CTRL,-

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   8

V06             TTY$PUTNEXTCHAR - BUFFER CHARACTER                                                                               (8)



                                     00BB   279 		<CONTROLC,CONTROLO,CONTROLQ,CONTROLS,CONTROLX,CONTROLY>

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page   9

V06             TTY$PUTNEXTCHAR - BUFFER CHARACTER                                                                               (9)



                                     00CE   281 ;++

                                     00CE   282 ; BUFFER_CHAR - INSERT CHARACTER INTO TYPEAHEAD BUFFER

                                     00CE   283 ;

                                     00CE   284 ; FUNCTIONAL DESCRIPTION:

                                     00CE   285 ;

                                     00CE   286 ; AT THIS POINT WE KNOW THAT THE CHARACTER DOES NOT REPRESENT SOME IMMEDIATE

                                     00CE   287 ; ACTION.

                                     00CE   288 ;

                                     00CE   289 ; INPUTS:

                                     00CE   290 ;

                                     00CE   291 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     00CE   292 ;	R3 = CHARACTER TO BUFFER

                                     00CE   293 ;	R5 = UCB ADDRESS

                                     00CE   294 ;

                                     00CE   295 ; OUTPUTS:

                                     00CE   296 ;

                                     00CE   297 ;	R2,R3,R5 ARE PRESERVED

                                     00CE   298 ;--

                                     00CE   299 BUFFER_CHAR:				; BUFFER CHARACTER

                                     00CE   300 	IF_STATE READ,40$		; IF READ THEN BUFFER CHARACTER

         3C A5            02     E0  00D4   301 	BBS	#TT$V_NOTYPEAHD,UCB$L_DEVDEPEND(R5),5$; IF SLAVED TERMINAL, IGNORE CHARACTER

                          16         00D8       

                       50 A5     B5  00D9   302 	TSTW	UCB$W_REFC(R5)		; UNIT REF COUNT 0?

                          14     13  00DC   303 	BEQL	10$			; IF EQL THEN JOB CONTROLLER POSSIBILITY

                       54 A5     D5  00DE   304 	TSTL	UCB$L_AMB(R5)		; USER ASSOCIATED MAILBOX?

                          52     13  00E1   305 	BEQL	50$			; IF EQL THEN NO

         3C A5            10     E0  00E3   306 	BBS	#TT$V_MBXDSABL,UCB$L_DEVDEPEND(R5),50$; BR IF NOT ENABLED

                          4D         00E7       

         5A A5            02     E0  00E8   307 	BBS	#UCB$V_TT_NOTIF,UCB$W_DEVSTS(R5),50$; BR IF ALREADY NOTIFIED

                          48         00EC       

                          22     11  00ED   308 	BRB	15$			; CONTINUE IN COMMON

                          008C   31  00EF   309 5$:	BRW	DISMIS			; CONTINUE

       0000'CF            53     E1  00F2   310 10$:	BBC	R3,W^TTY$A_STANDARD,50$	; IF NOT TERMINATOR THEN NOT FOR JOBCTLRLR

                          3D         00F7       

         5A A5            00     E0  00F8   311 	BBS	#UCB$V_JOB,UCB$W_DEVSTS(R5),50$; IF ALREADY NOTIFIED THEN GO

                          38         00FC       

            54   00000000'GF     9E  00FD   312 	MOVAB	G^OPA$UCB0,R4		; ADDRESS CONSOLE UCB

            55            54     D1  0104   313 	CMPL	R4,R5			; IS THIS THE CONSOLE

                          08     13  0107   314 	BEQL	15$			; IF EQL THEN SKIP TERMINAL ENABLED TEST

                 0000005A'GF     B5  0109   315 	TSTW	G^SYS$GL_JOBCTLMB+UCB$W_DEVSTS; TERMINALS ENABLED FOR JOBCTLR?

                          DE     15  010F   316 	BLEQ	5$			; IF LEQ THEN DISMIS

            54            19     D0  0111   317 15$:	MOVL	#TTY$V_ST_UNSOL,R4	; ASK FOR UNSOLICITED DATA FORK

                          53     DD  0114   318 	PUSHL	R3			;

                          FEE7'  30  0116   319 	BSBW	TTY$CRE_FORK		; FORK TO SEND MESSAGE

                          53   8ED0  0119   320 	POPL	R3

                          17     11  011C   321 	BRB	50$			; AND BUFFER CHARACTER

                                     011E   322 ;

                                     011E   323 ; RESET READ TIMEOUT DUE TIME

                                     011E   324 ;

         5A A5            01     E1  011E   325 40$:	BBC	#UCB$V_TT_TIMO,UCB$W_DEVSTS(R5),50$; BR IF NO TIMEOUT

                          12         0122       

            54         68 A5     D0  0123   326 	MOVL	UCB$L_SVAPTE(R5),R4	; ADDRESS READ BUFFER BLOCK

            54         0E A4     3C  0127   327 	MOVZWL	TTY$W_RB_TIMOS(R4),R4	; GET THE NUMBER OF SECONDS

   00000000'GF            54     C1  012B   328 	ADDL3	R4,G^EXE$GL_ABSTIM,UCB$L_TT_RDUE(R5); RESET THE TIME

                     008C C5         0132       

                                     0135   329 ;

                                     0135   330 ; BUFFER CHARACTER IN CIRCULAR TYPEAHEAD BUFFER

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  10

V06             TTY$PUTNEXTCHAR - BUFFER CHARACTER                                                                               (9)



                                     0135   331 ;

                                     0135   332 ; TEST TO SEE IF THE NUMBER OF CHARACTERS IN THE TYPEAHEAD IS CRITICAL

                                     0135   333 ; THIS TEST DOES NOT WORK FOR TYPEAHEAD BUFFERS BIGGER THAN 32K BYTES.

                                     0135   334 ;

            01            36     3D  0135   335 50$:	ACBW	#TTY$C_TYPAHDSIZ-TTY$L_TA_DATA-8,#1,UCB$W_TT_INAHD(R5),60$

            0014     0092 C5         0138       

                                     013D   336 	SET_STATE <XOFF,TYPFUL>		; SET UP STOP SEQUENCE

       0092 C5            3E     B1  0144   337 	CMPW	#TTY$C_TYPAHDSIZ-TTY$L_TA_DATA,UCB$W_TT_INAHD(R5); OVERFLOW?

                          06     18  0149   338 	BGEQ	60$			; IF GEQ THEN NO OVERFLOW - BUFFER CHARACTER

                     0092 C5     B7  014B   339 	DECW	UCB$W_TT_INAHD(R5)	; RESET COUNT ON OVERFLOW

                          1A     11  014F   340 	BRB	BEGIN_ECHO		; START THE SEQUENCE

                                     0151   341 ;

                                     0151   342 ; INSERT CHARACTER IN TYPEAHEAD BUFFER

                                     0151   343 ;

            54       0088 C5     D0  0151   344 60$:	MOVL	UCB$L_TT_TYPAHD(R5),R4	; ADDRESS TYPEAHEAD BUFFER

                          1C     13  0156   345 	BEQL	NO_BUFFER		; IF EQL THEN NONE

         00 B4            53     90  0158   346 	MOVB	R3,@TTY$L_TA_PUT(R4)	; INSERT CHARACTER IN BUFFER

            64         0C A4     F2  015C   347 	AOBLSS	TTY$L_TA_END(R4),TTY$L_TA_PUT(R4),70$; INDEX AND BR IF NOT AROUND

                          04         0160       

            64         10 A4     9E  0161   348 	MOVAB	TTY$L_TA_DATA(R4),TTY$L_TA_PUT(R4); RESET POINTER

                                     0165   349 70$:	IF_NOT_STATE <READ>,DISMIS

                                     016B   350 ;

                                     016B   351 ; BEGIN ECHO ON READ

                                     016B   352 ;

                                     016B   353 BEGIN_ECHO:

                                     016B   354 ;

                                     016B   355 ; START UP OUTPUT IF NOT ALREADY STARTED

                                     016B   356 ;

         58 A5            02     B3  016B   357 	BITW	#UCB$M_INT,UCB$W_STS(R5); INTERRUPT EXPECTED?

                          0D     12  016F   358 	BNEQ	DISMIS			; IF NEQ THEN YES

                          FE8C'  31  0171   359 	BRW	TTY$GETNEXTCHAR		; FIND THE NEXT CHARACTER FOR THIS UNIT

                                     0174   360 ;

                                     0174   361 ; NO TYPEAHEAD BUFFER - ALLOACTE ONE

                                     0174   362 ;

                                     0174   363 NO_BUFFER:				;

                     0092 C5     B4  0174   364 	CLRW	UCB$W_TT_INAHD(R5)	; SET NO BUFFERED CHARACTERS

            54            18     D0  0178   365 	MOVL	#TTY$V_ST_GETAHD,R4	; ASK FOR TYPEAHEAD FORK

                          FE82'  30  017B   366 	BSBW	TTY$CRE_FORK		; CREATE THE FORK FOR ALLOCATION

                                     017E   367 ;

                                     017E   368 ; DISMIS INTERRUPT - NOTHING TO DO

                                     017E   369 ;

                          53     D4  017E   370 DISMIS:	CLRL	R3			; SET NO RETURN CHARACTER

                                 05  0180   371 	RSB				; RETURN

                                     0181   372 	.END

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (9)



BEGIN_ECHO       0000016B R     03   IO$V_BINARY    = 00000006            IO$_READVBLK   = 00000031            

BIT...         = 00000008            IO$V_CANCTRLO  = 00000006            IO$_RECAL      = 00000003            

BUFFER_CHAR      000000CE R     03   IO$V_COMMOD    = 00000006            IO$_RELEASE    = 00000005            

CANCEL_CTRLS     0000009E R     03   IO$V_CREATE    = 00000007            IO$_RETCENTER  = 00000007            

COM$DELATTNAST   ********   X   03   IO$V_CTRLCAST  = 00000008            IO$_REWIND     = 00000024            

CONTROLC         00000000 R     03   IO$V_CTRLYAST  = 00000007            IO$_REWINDOFF  = 00000022            

CONTROLO         0000006E R     03   IO$V_CVTLOW    = 00000008            IO$_SEARCH     = 00000009            

CONTROLQ         00000067 R     03   IO$V_DATACHECK = 0000000E            IO$_SEEK       = 00000002            

CONTROLS         00000056 R     03   IO$V_DELETE    = 00000008            IO$_SENSECHAR  = 0000001B            

CONTROLX         00000048 R     03   IO$V_DMOUNT    = 0000000A            IO$_SENSEMODE  = 00000027            

CONTROLY         00000016 R     03   IO$V_DSABLMBX  = 0000000A            IO$_SETCHAR    = 0000001A            

DISMIS           0000017E R     03   IO$V_ENABLMBX  = 00000007            IO$_SETMODE    = 00000023            

EXE$GL_ABSTIM    ********   X   03   IO$V_FCODE     = 00000000            IO$_SKIPFILE   = 00000025            

GBL...         = 00000000            IO$V_HANGUP    = 00000009            IO$_SKIPRECORD = 00000026            

IO$M_ABORT     = 00000100            IO$V_INHERLOG  = 0000000B            IO$_SPACEFILE  = 00000002            

IO$M_ACCESS    = 00000040            IO$V_INHEXTGAP = 0000000C            IO$_SPACERECORD= 00000009            

IO$M_ATTNAST   = 00000100            IO$V_INHRETRY  = 0000000F            IO$_STARTSPNDL = 00000019            

IO$M_BINARY    = 00000040            IO$V_INHSEEK   = 0000000C            IO$_UNLOAD     = 00000001            

IO$M_CANCTRLO  = 00000040            IO$V_INTERRUPT = 00000006            IO$_VIRTUAL    = 0000003F            

IO$M_COMMOD    = 00000040            IO$V_INTSKIP   = 00000008            IO$_WRITECHECK = 0000000A            

IO$M_CREATE    = 00000080            IO$V_MOUNT     = 00000009            IO$_WRITECHECKH= 00000018            

IO$M_CTRLCAST  = 00000100            IO$V_NOECHO    = 00000006            IO$_WRITEHEAD  = 0000000D            

IO$M_CTRLYAST  = 00000080            IO$V_NOFILTR   = 00000009            IO$_WRITELBLK  = 00000020            

IO$M_CVTLOW    = 00000100            IO$V_NOFORMAT  = 00000008            IO$_WRITEMARK  = 0000001C            

IO$M_DATACHECK = 00004000            IO$V_NOW       = 00000006            IO$_WRITEOF    = 00000028            

IO$M_DELETE    = 00000100            IO$V_NOWAIT    = 00000007            IO$_WRITEPBLK  = 0000000B            

IO$M_DMOUNT    = 00000400            IO$V_PACKED    = 00000007            IO$_WRITETRACKD= 0000000F            

IO$M_DSABLMBX  = 00000400            IO$V_PURGE     = 0000000B            IO$_WRITEVBLK  = 00000030            

IO$M_ENABLMBX  = 00000080            IO$V_READATTN  = 00000007            IPL$_ASTDEL    = 00000002            

IO$M_FCODE     = 0000003F            IO$V_REVERSE   = 00000006            IPL$_HWCLK     = 00000018            

IO$M_HANGUP    = 00000200            IO$V_SHUTDOWN  = 00000007            IPL$_IOPOST    = 00000004            

IO$M_INHERLOG  = 00000800            IO$V_STARTUP   = 00000006            IPL$_MAILBOX   = 0000000B            

IO$M_INHEXTGAP = 00001000            IO$V_SYNCH     = 00000009            IPL$_POWER     = 0000001F            

IO$M_INHRETRY  = 00008000            IO$V_TIMED     = 00000007            IPL$_QUEUEAST  = 00000006            

IO$M_INHSEEK   = 00001000            IO$V_TRMNOECHO = 0000000C            IPL$_SCHED     = 00000003            

IO$M_INTERRUPT = 00000040            IO$V_WRTATTN   = 00000008            IPL$_SYNCH     = 00000007            

IO$M_INTSKIP   = 00000100            IO$_ACCESS     = 00000032            IPL$_TIMER     = 00000007            

IO$M_MOUNT     = 00000200            IO$_ACPCONTROL = 00000038            IRP$B_CARCON     00000038            

IO$M_NOECHO    = 00000040            IO$_CREATE     = 00000033            IRP$B_EFN        00000022            

IO$M_NOFILTR   = 00000200            IO$_DEACCESS   = 00000034            IRP$B_PRI        00000023            

IO$M_NOFORMAT  = 00000100            IO$_DELETE     = 00000035            IRP$B_RMOD       0000000B            

IO$M_NOW       = 00000040            IO$_DIAGNOSE   = 0000001D            IRP$B_TYPE       0000000A            

IO$M_NOWAIT    = 00000080            IO$_DRVCLR     = 00000004            IRP$C_LENGTH     0000004C            

IO$M_PACKED    = 00000080            IO$_ERASETAPE  = 00000006            IRP$K_LENGTH     0000004C            

IO$M_PURGE     = 00000800            IO$_LOGICAL    = 0000002F            IRP$L_AST        00000010            

IO$M_READATTN  = 00000080            IO$_MODIFY     = 00000036            IRP$L_ASTPRM     00000014            

IO$M_REVERSE   = 00000040            IO$_MOUNT      = 00000039            IRP$L_DIAGBUF    00000044            

IO$M_SHUTDOWN  = 00000080            IO$_NOP        = 00000000            IRP$L_IOQBL      00000004            

IO$M_STARTUP   = 00000040            IO$_OFFSET     = 00000006            IRP$L_IOQFL      00000000            

IO$M_SYNCH     = 00000200            IO$_PACKACK    = 00000008            IRP$L_IOSB       00000024            

IO$M_TIMED     = 00000080            IO$_PHYSICAL   = 0000001F            IRP$L_IOST1      00000034            

IO$M_TRMNOECHO = 00001000            IO$_READHEAD   = 0000000E            IRP$L_IOST2      00000038            

IO$M_WRTATTN   = 00000100            IO$_READLBLK   = 00000021            IRP$L_MEDIA      00000034            

IO$S_FCODE     = 00000006            IO$_READPBLK   = 0000000C            IRP$L_PID        0000000C            

IO$V_ABORT     = 00000008            IO$_READPRESET = 00000019            IRP$L_SEGVBN     00000040            

IO$V_ACCESS    = 00000006            IO$_READPROMPT = 00000037            IRP$L_SEQNUM     00000048            

IO$V_ATTNAST   = 00000008            IO$_READTRACKD = 00000010            IRP$L_SVAPTE     0000002C            

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (9)



IRP$L_TT_TERM    00000038            PR$_P1LR       = 0000000B            SS$_CONTROLO   = 00000609            

IRP$L_UCB        0000001C            PR$_PCBB       = 00000010            SS$_CONTROLY   = 00000611            

IRP$L_WIND       00000018            PR$_PME        = 0000003D            SS$_CREATED    = 00000619            

IRP$M_BUFIO    = 00000001            PR$_RXCS       = 00000020            SS$_CTRLERR    = 00000054            

IRP$M_CHAINED  = 00000020            PR$_RXDB       = 00000021            SS$_DATACHECK  = 0000005C            

IRP$M_COMPLX   = 00000008            PR$_SBIER      = 00000034            SS$_DATAOVERUN = 00000838            

IRP$M_DIAGBUF  = 00000080            PR$_SBIFS      = 00000030            SS$_DEBUG      = 0000046C            

IRP$M_FUNC     = 00000002            PR$_SBIMT      = 00000033            SS$_DECOVF     = 000004A4            

IRP$M_MBXIO    = 00000400            PR$_SBIQC      = 00000036            SS$_DEVACTIVE  = 000002C4            

IRP$M_PAGIO    = 00000004            PR$_SBIS       = 00000031            SS$_DEVALLOC   = 00000840            

IRP$M_PHYSIO   = 00000100            PR$_SBISC      = 00000032            SS$_DEVALRALLOC= 00000641            

IRP$M_PRIVIO   = 00000200            PR$_SBITA      = 00000035            SS$_DEVASSIGN  = 00000848            

IRP$M_SWAPIO   = 00000040            PR$_SBR        = 0000000C            SS$_DEVFOREIGN = 00000064            

IRP$M_VIRTUAL  = 00000010            PR$_SCBB       = 00000011            SS$_DEVICEFULL = 00000850            

IRP$Q_NT_PRVMSK  0000003C            PR$_SID        = 0000003E            SS$_DEVMOUNT   = 0000006C            

IRP$S_FCODE    = 00000006            PR$_SIRR       = 00000014            SS$_DEVNOTALLOC= 00000858            

IRP$S_FMOD     = 0000000A            PR$_SISR       = 00000015            SS$_DEVNOTMBX  = 00000074            

IRP$S_MODE     = 00000002            PR$_SLR        = 0000000D            SS$_DEVNOTMOUNT= 0000007C            

IRP$V_BUFIO    = 00000000            PR$_SSP        = 00000002            SS$_DEVOFFLINE = 00000084            

IRP$V_CHAINED  = 00000005            PR$_TBIA       = 00000039            SS$_DIRFULL    = 00000860            

IRP$V_COMPLX   = 00000003            PR$_TBIS       = 0000003A            SS$_DRVERR     = 0000008C            

IRP$V_DIAGBUF  = 00000007            PR$_TODR       = 0000001B            SS$_DUPFILENAME= 00000868            

IRP$V_FCODE    = 00000000            PR$_TXCS       = 00000022            SS$_DUPLNAM    = 00000094            

IRP$V_FMOD     = 00000006            PR$_TXDB       = 00000023            SS$_ENDOFFILE  = 00000870            

IRP$V_FUNC     = 00000001            PR$_USP        = 00000003            SS$_ENDOFTAPE  = 00000878            

IRP$V_MBXIO    = 0000000A            PR$_WCSA       = 0000002C            SS$_ENDOFUSRLBL= 00000970            

IRP$V_MODE     = 00000000            PR$_WCSD       = 0000002D            SS$_EXQUOTA    = 0000001C            

IRP$V_PAGIO    = 00000002            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

IRP$V_PHYSIO   = 00000008            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

IRP$V_PRIVIO   = 00000009            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

IRP$V_SWAPIO   = 00000006            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

IRP$V_VIRTUAL  = 00000004            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

IRP$W_ABCNT      0000003C            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

IRP$W_BCNT       00000032            SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            

IRP$W_BOFF       00000030            SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            

IRP$W_CHAN       00000028            SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            

IRP$W_FUNC       00000020            SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            

IRP$W_OBCNT      0000003E            SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            

IRP$W_SIZE       00000008            SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            

IRP$W_STS        0000002A            SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            

IRP$W_TT_PRMPT   0000003C            SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            

NO_BUFFER        00000174 R     03   SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            

OPA$UCB0         ********   X   03   SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            

PR$_ACCR       = 00000029            SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            

PR$_ACCS       = 00000028            SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            

PR$_ASTLVL     = 00000013            SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            

PR$_ESP        = 00000001            SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            

PR$_ICCS       = 00000018            SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            

PR$_ICR        = 0000001A            SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            

PR$_IPL        = 00000012            SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            

PR$_ISP        = 00000004            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

PR$_KSP        = 00000000            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

PR$_MAPEN      = 00000038            SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

PR$_NICR       = 00000019            SS$_CMODUSER   = 00000424            SS$_ILLEFC     = 000000EC            

PR$_P0BR       = 00000008            SS$_COMPAT     = 0000042C            SS$_ILLIOFUNC  = 000000F4            

PR$_P0LR       = 00000009            SS$_CONTINUE   = 00000001            SS$_ILLLBLAST  = 00000968            

PR$_P1BR       = 0000000A            SS$_CONTROLC   = 00000651            SS$_ILLPAGCNT  = 000000FC            

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (9)



SS$_ILLSEQOP   = 000002DC            SS$_NOTINTBLSZ = 000001D4            TT$C_BAUD_7200 = 0000000E            

SS$_ILLSER     = 00000104            SS$_NOTLABELMT = 000001DC            TT$C_BAUD_75   = 00000002            

SS$_ILLUSRLBLRD= 00000958            SS$_NOTMODIFIED= 00000659            TT$C_BAUD_9600 = 0000000F            

SS$_ILLUSRLBLWT= 00000960            SS$_NOTNETDEV  = 000002EC            TT$M_ALTRPAR   = 00000020            

SS$_INCVOLLABEL= 0000010C            SS$_NOTRAN     = 00000629            TT$M_CRFILL    = 00000400            

SS$_INSFARG    = 00000114            SS$_NOTSQDEV   = 000001E4            TT$M_EIGHTBIT  = 00008000            

SS$_INSFMEM    = 00000124            SS$_OPCCUS     = 00000434            TT$M_ESCAPE    = 00000008            

SS$_INSFRAME   = 0000012C            SS$_OPCDEC     = 0000043C            TT$M_HOLDSCREEN= 00004000            

SS$_INSFWSL    = 0000011C            SS$_OPINCOMPL  = 000002D4            TT$M_HOSTSYNC  = 00000010            

SS$_INTDIV     = 00000484            SS$_PAGOWNVIO  = 000001EC            TT$M_LFFILL    = 00000800            

SS$_INTOVF     = 0000047C            SS$_PAGRDERR   = 00000444            TT$M_LOWER     = 00000080            

SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            TT$M_MBXDSABL  = 00010000            

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            TT$M_MECHTAB   = 00000100            

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            TT$M_NOBRDCST  = 00020000            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            TT$M_NOECHO    = 00000002            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            TT$M_NOTYPEAHD = 00000004            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            TT$M_ODD       = 00000080            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            TT$M_PAGE      = FE000000            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            TT$M_PARITY    = 00000040            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            TT$M_PASSALL   = 00000001            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            TT$M_READSYNC  = 00040000            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            TT$M_REMOTE    = 00002000            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            TT$M_SCOPE     = 00001000            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            TT$M_SCRIPT    = 00000040            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            TT$M_TTSYNC    = 00000020            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            TT$M_WRAP      = 00000200            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            TT$S_PAGE      = 00000008            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            TT$V_ALTRPAR   = 00000005            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            TT$V_CRFILL    = 0000000A            

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            TT$V_EIGHTBIT  = 0000000F            

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            TT$V_ESCAPE    = 00000003            

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            TT$V_HOLDSCREEN= 0000000E            

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            TT$V_HOSTSYNC  = 00000004            

SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            TT$V_LFFILL    = 0000000B            

SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            TT$V_LOWER     = 00000007            

SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            TT$V_MBXDSABL  = 00000010            

SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            TT$V_MECHTAB   = 00000008            

SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            TT$V_NOBRDCST  = 00000011            

SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            TT$V_NOECHO    = 00000001            

SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            TT$V_NOTYPEAHD = 00000002            

SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            TT$V_ODD       = 00000007            

SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            TT$V_PAGE      = 00000019            

SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            TT$V_PARITY    = 00000006            

SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            TT$V_PASSALL   = 00000000            

SS$_NONEXDRV   = 000001C4            SYS$GL_JOBCTLMB  ********   X   03   TT$V_READSYNC  = 00000012            

SS$_NONEXPR    = 000008E8            TT$C_BAUD_110  = 00000003            TT$V_REMOTE    = 0000000D            

SS$_NONLOCAL   = 000008F0            TT$C_BAUD_1200 = 00000008            TT$V_SCOPE     = 0000000C            

SS$_NOPRIV     = 00000024            TT$C_BAUD_134  = 00000004            TT$V_SCRIPT    = 00000006            

SS$_NORMAL     = 00000001            TT$C_BAUD_150  = 00000005            TT$V_TTSYNC    = 00000005            

SS$_NOSIGNAL   = 00000900            TT$C_BAUD_1800 = 00000009            TT$V_WRAP      = 00000009            

SS$_NOSOLICIT  = 00000284            TT$C_BAUD_2000 = 0000000A            TT$_LA36       = 00000020            

SS$_NOSUCHDEV  = 00000908            TT$C_BAUD_2400 = 0000000B            TT$_LAX        = 00000020            

SS$_NOSUCHFILE = 00000910            TT$C_BAUD_300  = 00000006            TT$_UNKNOWN    = 00000000            

SS$_NOSUCHNODE = 0000028C            TT$C_BAUD_3600 = 0000000C            TT$_VT05       = 00000001            

SS$_NOSUCHSEC  = 00000978            TT$C_BAUD_4800 = 0000000D            TT$_VT52       = 00000040            

SS$_NOTAPEOP   = 00000264            TT$C_BAUD_50   = 00000001            TT$_VT55       = 00000041            

SS$_NOTFILEDEV = 000001CC            TT$C_BAUD_600  = 00000007            TT$_VT5X       = 00000040            

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (9)



TTY$A_CTRLC      ********   X   03   TTY$L_BD_MIN     00000028            TTY$V_ST_CTRLR = 0000000A            

TTY$A_CTRLO      ********   X   03   TTY$L_BD_UCB     00000010            TTY$V_ST_CTRLS = 00000002            

TTY$A_CTRLY      ********   X   03   TTY$L_RB_DATA    00000010            TTY$V_ST_CURSOR= 00000004            

TTY$A_STANDARD   ********   X   03   TTY$L_RB_NXT     00000000            TTY$V_ST_DEL   = 0000000D            

TTY$A_TYPE       ********   X   03   TTY$L_RB_UVA     00000004            TTY$V_ST_EOL   = 00000009            

TTY$B_BD_CNT     00000015            TTY$L_TA_DATA    00000010            TTY$V_ST_ESC   = 00000013            

TTY$B_BD_IPL     00000017            TTY$L_TA_END     0000000C            TTY$V_ST_ESC_O = 0000001A            

TTY$B_BD_REFC    00000016            TTY$L_TA_GET     00000004            TTY$V_ST_FILL  = 00000003            

TTY$B_BD_TYPE    0000000A            TTY$L_TA_PUT     00000000            TTY$V_ST_GETAHD= 00000018            

TTY$B_BD_WHO     00000014            TTY$L_WB_DATA    0000000C            TTY$V_ST_MULTI = 00000006            

TTY$B_TA_TYPE    0000000A            TTY$L_WB_END     00000004            TTY$V_ST_NL    = 00000015            

TTY$CRE_FORK     ********   X   03   TTY$L_WB_NXT     00000000            TTY$V_ST_NOECHO= 0000000F            

TTY$C_BELL     = 00000007            TTY$M_A        = 00003FFF            TTY$V_ST_NOFLTR= 00000012            

TTY$C_BLANK    = 00000020            TTY$M_CH_CTRL  = 00000020            TTY$V_ST_PASALL= 0000000E            

TTY$C_BS       = 00000008            TTY$M_CH_CTRL2 = 00000080            TTY$V_ST_PROMPT= 00000011            

TTY$C_CR       = 0000000D            TTY$M_CH_LOWER = 00000040            TTY$V_ST_READ  = 0000000B            

TTY$C_CTRLC    = 00000003            TTY$M_CH_SPEC  = 00000010            TTY$V_ST_SENDLF= 00000005            

TTY$C_CTRLO    = 0000000F            TTY$M_ST_BADESC= 00100000            TTY$V_ST_SKIPLF= 00000017            

TTY$C_CTRLQ    = 00000011            TTY$M_ST_BRDCST= 00000080            TTY$V_ST_TYPFUL= 00000016            

TTY$C_CTRLR    = 00000012            TTY$M_ST_CTRLO = 00001000            TTY$V_ST_UNSOL = 00000019            

TTY$C_CTRLS    = 00000013            TTY$M_ST_CTRLR = 00000400            TTY$V_ST_WRITE = 00000008            

TTY$C_CTRLU    = 00000015            TTY$M_ST_CTRLS = 00000004            TTY$V_ST_WRTALL= 00000010            

TTY$C_CTRLX    = 00000018            TTY$M_ST_CURSOR= 00000010            TTY$V_ST_XOFF  = 00000001            

TTY$C_CTRLY    = 00000019            TTY$M_ST_DEL   = 00002000            TTY$V_ST_XON   = 00000000            

TTY$C_CTRLZ    = 0000001A            TTY$M_ST_EOL   = 00000200            TTY$W_BD_SIZE    00000008            

TTY$C_DELETE   = 0000007F            TTY$M_ST_ESC   = 00080000            TTY$W_RB_ORGHOR  0000000C            

TTY$C_DOLLAR   = 00000024            TTY$M_ST_ESC_O = 04000000            TTY$W_RB_SIZE    00000008            

TTY$C_DS_ACTIVE= 00000001            TTY$M_ST_FILL  = 00000008            TTY$W_RB_TIMOS   0000000E            

TTY$C_DS_ATTN1 = 00000002            TTY$M_ST_GETAHD= 01000000            TTY$W_TA_SIZE    00000008            

TTY$C_DS_ATTN3 = 00000009            TTY$M_ST_MULTI = 00000040            TTY$W_WB_SIZE    00000008            

TTY$C_DS_HANG  = 0000000A            TTY$M_ST_NL    = 00200000            UCB$B_AMOD       00000053            

TTY$C_DS_IDLE  = 00000000            TTY$M_ST_NOECHO= 00008000            UCB$B_CEX        00000077            

TTY$C_DS_RESET = 0000000B            TTY$M_ST_NOFLTR= 00040000            UCB$B_CM1        0000004A            

TTY$C_ESCAPE   = 0000001B            TTY$M_ST_PASALL= 00004000            UCB$B_CM2        0000004B            

TTY$C_FC_N_SET = 00000004            TTY$M_ST_PROMPT= 00020000            UCB$B_DEVCLASS   00000038            

TTY$C_FC_READ  = 00000000            TTY$M_ST_READ  = 00000800            UCB$B_DEVTYPE    00000039            

TTY$C_FC_SETC  = 00000003            TTY$M_ST_SENDLF= 00000020            UCB$B_DIPL       00000052            

TTY$C_FC_SETM  = 00000002            TTY$M_ST_SKIPLF= 00800000            UCB$B_DX_SCTCNT  000000A6            

TTY$C_FC_WRITE = 00000001            TTY$M_ST_TYPFUL= 00400000            UCB$B_ERTCNT     00000070            

TTY$C_FF       = 0000000C            TTY$M_ST_UNSOL = 02000000            UCB$B_ERTMAX     00000071            

TTY$C_HIGHIPL  = 00000016            TTY$M_ST_WRITE = 00000100            UCB$B_ESCAPE     0000004B            

TTY$C_LF       = 0000000A            TTY$M_ST_WRTALL= 00010000            UCB$B_FEX        00000076            

TTY$C_LOWA     = 00000061            TTY$M_ST_XOFF  = 00000002            UCB$B_FIPL       0000000B            

TTY$C_LOWZ     = 0000007B            TTY$M_ST_XON   = 00000001            UCB$B_LOCSRV     0000003C            

TTY$C_NL       = 00000080            TTY$PURGE_AHEAD  ********   X   03   UCB$B_OFFNDX     00000094            

TTY$C_ONE      = 00000031            TTY$PUTNEXTCHAR  000000A4 RG    03   UCB$B_OFFRTC     00000095            

TTY$C_PLUS     = 0000002B            TTY$Q_BD_LINK    00000000            UCB$B_REMSRV     0000003D            

TTY$C_SCRIPT   = 00000060            TTY$STOPIO       ********   X   03   UCB$B_SECTORS    0000003C            

TTY$C_TAB      = 00000009            TTY$S_A        = 0000000E            UCB$B_SLAVE      00000074            

TTY$C_TYPAHDSIZ= 0000004E            TTY$V_A        = 00000000            UCB$B_SPR        00000075            

TTY$C_VT       = 0000000B            TTY$V_CH_CTRL  = 00000005            UCB$B_STATE      00000052            

TTY$C_XOFF     = 00000013            TTY$V_CH_CTRL2 = 00000007            UCB$B_TRACKS     0000003D            

TTY$C_XON      = 00000011            TTY$V_CH_LOWER = 00000006            UCB$B_TT_BRDPT   00000098            

TTY$C_ZERO     = 00000030            TTY$V_CH_SPEC  = 00000004            UCB$B_TT_CRFILL  0000009D            

TTY$GETNEXTCHAR  ********   X   03   TTY$V_ST_BADESC= 00000014            UCB$B_TT_DECRF   000000A1            

TTY$L_BD_DATA    00000018            TTY$V_ST_BRDCST= 00000007            UCB$B_TT_DELFF   000000A2            

TTY$L_BD_FORK    0000000C            TTY$V_ST_CTRLO = 0000000C            UCB$B_TT_DESPEE  000000A0            

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (9)



UCB$B_TT_DETYPE  000000A4            UCB$L_TT_TYPAHD  00000088            UCB$V_NT_NAME  = 00000004            

UCB$B_TT_DIAL    00000096            UCB$L_VCB        00000030            UCB$V_ONLINE   = 00000004            

UCB$B_TT_ESC     00000095            UCB$M_BACKP    = 00000020            UCB$V_POWER    = 00000005            

UCB$B_TT_ESC_O   00000099            UCB$M_BSY      = 00000100            UCB$V_PRMMBX   = 00000000            

UCB$B_TT_FILL    00000097            UCB$M_CANCEL   = 00000008            UCB$V_SEGFLO   = 00000002            

UCB$B_TT_LFFILL  0000009E            UCB$M_DEADMO   = 00000400            UCB$V_TIM      = 00000000            

UCB$B_TT_LINE    00000094            UCB$M_DELMBX   = 00000002            UCB$V_TIMOUT   = 00000006            

UCB$B_TT_SPEED   0000009C            UCB$M_DIAGBUF  = 00000002            UCB$V_TT_NOTIF = 00000002            

UCB$B_TYPE       0000000A            UCB$M_DX_WRITE = 00000008            UCB$V_TT_ODD   = 00000007            

UCB$B_VERTSZ     0000003F            UCB$M_ECC      = 00000001            UCB$V_TT_PARTY = 00000006            

UCB$C_LENGTH     00000074            UCB$M_ERLOGIP  = 00000004            UCB$V_TT_SPEED = 00000000            

UCB$C_LOGLNK   = 00000001            UCB$M_INT      = 00000002            UCB$V_TT_TIMO  = 00000001            

UCB$K_LENGTH     00000074            UCB$M_INTTYPE  = 00000080            UCB$V_UNLOAD   = 0000000C            

UCB$L_AMB        00000054            UCB$M_JOB      = 00000001            UCB$V_VALID    = 0000000B            

UCB$L_ASTQBL     00000010            UCB$M_MOUNTING = 00000200            UCB$W_BCNT       0000006E            

UCB$L_ASTQFL     0000000C            UCB$M_NOCNVRT  = 00000004            UCB$W_BCR        00000096            

UCB$L_CPID       0000005C            UCB$M_NT_BFROVF= 00000004            UCB$W_BOFF       0000006C            

UCB$L_CRB        00000020            UCB$M_NT_BREAK = 00000020            UCB$W_BUFQUO     00000018            

UCB$L_DDB        00000024            UCB$M_NT_NAME  = 00000010            UCB$W_BYTESTOGO  0000003E            

UCB$L_DEVCHAR    00000034            UCB$M_ONLINE   = 00000010            UCB$W_CHARGE     0000004A            

UCB$L_DEVDEPEND  0000003C            UCB$M_POWER    = 00000020            UCB$W_CYLINDERS  0000003E            

UCB$L_DPC        00000080            UCB$M_PRMMBX   = 00000001            UCB$W_DA         0000008C            

UCB$L_DUETIM     0000005C            UCB$M_TIM      = 00000001            UCB$W_DC         0000008E            

UCB$L_DX_BFPNT   0000009C            UCB$M_TIMOUT   = 00000040            UCB$W_DEVBUFSIZ  0000003A            

UCB$L_DX_BUF     00000098            UCB$M_TT_NOTIF = 00000004            UCB$W_DEVSTS     0000005A            

UCB$L_DX_RXDB    000000A0            UCB$M_TT_ODD   = 00000080            UCB$W_DIRSEQ     00000088            

UCB$L_EMB        00000078            UCB$M_TT_PARTY = 00000040            UCB$W_DSTADDR    00000018            

UCB$L_FIRST      00000014            UCB$M_TT_SPEED = 0000003F            UCB$W_DX_BCR     000000A4            

UCB$L_FPC        0000000C            UCB$M_TT_TIMO  = 00000002            UCB$W_EC1        00000090            

UCB$L_FQBL       00000004            UCB$M_UNLOAD   = 00001000            UCB$W_EC2        00000092            

UCB$L_FQFL       00000000            UCB$M_VALID    = 00000800            UCB$W_ERRCNT     00000072            

UCB$L_FR3        00000010            UCB$S_LNKPRI   = 00000002            UCB$W_FUNC       0000007E            

UCB$L_FR4        00000014            UCB$S_LTYPE    = 00000002            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_IOQBL      00000044            UCB$S_TT_ODD   = 00000001            UCB$W_MSGCNT     00000016            

UCB$L_IOQFL      00000040            UCB$S_TT_PARTY = 00000001            UCB$W_MSGMAX     00000014            

UCB$L_IRP        0000004C            UCB$S_TT_SPEED = 00000006            UCB$W_NT_CHAN    0000007C            

UCB$L_LINK       0000002C            UCB$T_PARTNER    0000000C            UCB$W_OFFSET     0000008A            

UCB$L_LOGADR     00000064            UCB$V_BACKP    = 00000005            UCB$W_REFC       00000050            

UCB$L_MAXBLOCK   00000084            UCB$V_BSY      = 00000008            UCB$W_SIZE       00000008            

UCB$L_MEDIA      0000008C            UCB$V_CANCEL   = 00000003            UCB$W_SRCADDR    0000001A            

UCB$L_NT_DATSSB  00000074            UCB$V_DEADMO   = 0000000A            UCB$W_STS        00000058            

UCB$L_NT_INTSSB  00000078            UCB$V_DELMBX   = 00000001            UCB$W_TT_CURSOR  0000009A            

UCB$L_OPCNT      00000060            UCB$V_DIAGBUF  = 00000001            UCB$W_TT_DESIZE  000000A5            

UCB$L_OWNUIC     0000001C            UCB$V_DX_WRITE = 00000003            UCB$W_TT_HOLD    00000090            

UCB$L_PID        00000028            UCB$V_ECC      = 00000000            UCB$W_TT_INAHD   00000092            

UCB$L_RQBL       00000004            UCB$V_ERLOGIP  = 00000002            UCB$W_UNIT       00000048            

UCB$L_RQFL       00000000            UCB$V_INT      = 00000001            UCB$W_VPROT      0000001A            

UCB$L_SVAPTE     00000068            UCB$V_INTTYPE  = 00000007            W              = 00000008            

UCB$L_SVPN       00000064            UCB$V_JOB      = 00000000            X              = 00000000            

UCB$L_TTCHAR     0000003C            UCB$V_LNKPRI   = 00000006            Z              = 00000001            

UCB$L_TT_BRDCST  00000084            UCB$V_LTYPE    = 00000000            

UCB$L_TT_CTRLC   00000080            UCB$V_MOUNTING = 00000009            

UCB$L_TT_CTRLY   0000007C            UCB$V_MSGACK   = 00000004            

UCB$L_TT_DECHAR  000000A8            UCB$V_MSGFLO   = 00000003            

UCB$L_TT_MULTI   00000078            UCB$V_NOCNVRT  = 00000002            

UCB$L_TT_RDUE    0000008C            UCB$V_NT_BFROVF= 00000002            

UCB$L_TT_STATE   00000074            UCB$V_NT_BREAK = 00000005            

TTYCHARI        - TERMINAL INPUT CHARACTER ROUTINES              21-AUG-1978 21:03:20   VAX-11 MACRO X0.3-11               Page  16

PROGRAM SECTION SYNOPSIS                                                                                                         (9)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$$$115_DRIVER    00000181      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

3246. BYTES LEFT IN FREE MEMORY POOL.

2898. BYTES OF RECLAIMED MEMORY.

OBJ$:TTYCHARI,LIS$:TTYCHARI/-SP=EXECML$/ML,SRC$:TTYCHARI

9 MLB DIR RDS - 1186 GETS TO DEFINE 20 MACROS. 101 INTER. FILE WRITES. 

