TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      51  TTY$STARTIO - START I/O OPERATION ON TERMINAL

   (3)     215  TTY$STARTOUTPUT - START OUTPUT OPERATION ON UNI

   (4)     249  TTY$READONE - READ OPERATION DONE

   (5)     290  TTT$WRITEDONE - WRITE OPERATION DONE

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   1

X01                                                                                                                              (1)



                                     0000     1 	.TITLE	TTYSTRSTP - STARLET TERMINAL DRIVER START AND STOP I/O ROUTINES

                                     0000     2 	.IDENT	/X01/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     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 ; FACILITY:

                                     0000    24 ;	VAX/VMS TERMINAL DRIVER

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;

                                     0000    28 ;	THIS MODULE CONTAINS ROUTINES PERTAINING TO STARTING AND COMPLETING

                                     0000    29 ;	I/O REQUESTS.

                                     0000    30 ;

                                     0000    31 ; AUTHOR:

                                     0000    32 ;	R.HEINEN 10-OCT-1977

                                     0000    33 ;--

                                     0000    34 ;

                                     0000    35 ; EXTERNAL SYMBOLS

                                     0000    36 ;

                                     0000    37 	$CRBDEF				; DEFINE CRB

                                     0000    38 	$IODEF				; DEFINE I/O FUNCTION CODES

                                     0000    39 	$IPLDEF				; DEFINE IPL'S

                                     0000    40 	$IRPDEF				; DEFINE IRP

                                     0000    41 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000    42 	$UCBDEF				; DEFINE UCB

                                     0000    43 	$TTDEF				; DEFINE TERMINAL CHARACTERISTICS

                                     0000    44 	$TTYUCBDEF			; DEFINE TERMINAL CHARACTERISTICS

                                     0000    45 	$TTYDEF				; DEFINE TERMINAL DRIVER SYMBOLS

                                     0000    46 	$VECDEF				; DEFINE CRB VECTOR OFFSETS

                                     0000    47 	TTYMACS				; DEFINE TERMINAL MACROS

                                     0000    48  

                                 00000000    49 	.PSECT	WIONONPAGED		; DEFINE NON-PAGED PSECT

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   2

X01             TTY$STARTIO - START I/O OPERATION ON TERMINAL                                                                    (2)



                                     0000    51 	.SBTTL	TTY$STARTIO - START I/O OPERATION ON TERMINAL

                                     0000    52 ;++

                                     0000    53 ; TTY$STARTIO - START I/O OPERATION ON TERMINAL

                                     0000    54 ;

                                     0000    55 ; FUNCTIONAL DESCRIPTION:

                                     0000    56 ;

                                     0000    57 ; THIS ROUTINE IS ENTERED WHEN THE UNIT IS IDLE AND THERE IS A PACKET TO PROCESS.

                                     0000    58 ;

                                     0000    59 ; READ OR WRITE FUNCTIONS:

                                     0000    60 ;

                                     0000    61 ; THE FUNCTION DEPENDENT STATE BITS ARE SET IN UCB$L_TT_STATE FROM IRP$L_MEDIA

                                     0000    62 ; AND THE UCB BUFFERED I/O BLOCK ADDRESS, TRANSFER SIZES AND PACKET DATA

                                     0000    63 ; STORAGE IS INITIALIZED.

                                     0000    64 ; THE TTY$GETNEXTCHAR ROUTINE IS USED TO START THE OPERATION. IF THAT ROUTINE

                                     0000    65 ; RETURNS WITH A CHARACTER TO OUTPUT, THE DEVICE DEPENDENT START I/O ROUTINE IS

                                     0000    66 ; CALLED TO OUTPUT THE CHARACTER.

                                     0000    67 ;

                                     0000    68 ; SET FUNCTIONS:

                                     0000    69 ;

                                     0000    70 ; THE OPERATION OF THE SET FUNCTIONS IS TO INSERT THE DATA CONTAINED IN

                                     0000    71 ; THE PACKET INTO THE UCB AND COMPLETE THE REQUEST.

                                     0000    72 ;

                                     0000    73 ; INPUTS:

                                     0000    74 ;

                                     0000    75 ;  IRP$W_FUNC<5:0> CONTAINS THE TERMINAL SPECIFIC FUNCTION CODE.

                                     0000    76 ;

                                     0000    77 ;	R3 = I/O PACKET ADDRESS

                                     0000    78 ;	R5 = UCB ADDRESS

                                     0000    79 ;

                                     0000    80 ; OUTPUTS:

                                     0000    81 ;

                                     0000    82 ;	NONE

                                     0000    83 ;

                                     0000    84 ; IMPLICIT I/O PACKET DATA FOR TRANSFER FUNCTIONS:

                                     0000    85 ;

                                     0000    86 ;	IRP$L_MEDIA = FUNCTION DEPENDENT BITS FOR UCB$L_TT_STATE

                                     0000    87 ;	IRP$L_SVAPTE = BUFFERED I/O BLOCK ADDRESS

                                     0000    88 ;	IRP$W_BCNT = SIZE OF DATA TRANSFER

                                     0000    89 ;	IRP$W_BOFF = SIZE OF PROMPT STRING FOR READS

                                     0000    90 ;

                                     0000    91 ; IMPLICIT I/O PACKET DATA FOR SET MODE FUNCTIONS:

                                     0000    92 ;

                                     0000    93 ;	IRP$B_CARCON AND IRP$L_MEDIA = SET FUNCTION DEPENDENT DATA

                                     0000    94 ;--

                                     0000    95 TTY$STARTIO::				; START TERMINAL I/O

                          FFFD'  30  0000    96 	BSBW	TTY$LOCK		; SETUP IPL AND REGISTERS

         20 A3       FFC0 8F     AB  0003    97 	BICW3	#^X0FFC0,IRP$W_FUNC(R3),R4; GET INTERNAL FUNCTION CODE

                          54         0009       

                                     000A    98 	CASE	R4,TYPE=B,<DO_READ,DO_WRITE,DO_SETM,DO_SETC,DO_SETC>

                                     0018    99 ;

                                     0018   100 ; SET MODE OPERATION

                                     0018   101 ;

                                     0018   102 DO_SETM:				;

         38 A3   00002043 8F     CA  0018   103 	BICL	#TT$M_REMOTE!TT$M_PASSALL!TT$M_NOECHO!TT$M_SCRIPT,IRP$L_MEDIA+4(R3)

                                 CB  0020   104 	BICL3	#^C<TT$M_REMOTE!TT$M_PASSALL!TT$M_NOECHO!TT$M_SCRIPT>,-

         3C A5   FFFFDFBC 8F         0021   105 		UCB$L_DEVDEPEND(R5),R4	; GET CURRENT VALUES

                          54         0028       

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   3

X01             TTY$STARTIO - START I/O OPERATION ON TERMINAL                                                                    (2)



         38 A3            54     C8  0029   106 	BISL	R4,IRP$L_MEDIA+4(R3)	; AND INSURE THE SAME

                                     002D   107 ;

                                     002D   108 ; DO SET CHARACTERISTICS

                                     002D   109 ;

                                     002D   110 DO_SETC:				;

         20 A3            09     E1  002D   111 	BBC	#IO$V_HANGUP,IRP$W_FUNC(R3),10$; BR IF NOT HANGUP FUNCTION

                          0C         0031       

            51         20 A5     D0  0032   112 	MOVL	UCB$L_CRB(R5),R1	; GET CRB FOR UNIT

                          53     DD  0036   113 	PUSHL	R3			; SAVE PACKET

                       34 B1     16  0038   114 	JSB	@CRB$L_INTD+VEC$L_TT_DISC(R1); DISCONNECT UNIT

                          53   8ED0  003B   115 	POPL	R3			; RESTORE PACKET

            06            00     ED  003E   116 10$:	CMPZV	#IRP$V_FCODE,#IRP$S_FCODE,IRP$W_FUNC(R3),#TTY$C_FC_N_SET; NO SET?

            04         20 A3         0041       

                          03     12  0044   117 	BNEQ	15$			; IF NEQ THEN CONTINUE WITH SET

                          008C   31  0046   118 	BRW	100$			; OTHERWISE DONE

         3C A5         38 A3     CD  0049   119 15$:	XORL3	IRP$L_MEDIA+4(R3),UCB$L_DEVDEPEND(R5),R4; GET MODIFIED BITS

                          54         004E       

         3C A5            54     CA  004F   120 	BICL	R4,UCB$L_DEVDEPEND(R5)	; CLEAR THE CHANGED BITS

         3C A5         38 A3     C8  0053   121 	BISL	IRP$L_MEDIA+4(R3),UCB$L_DEVDEPEND(R5);

         39 A5         35 A3     90  0058   122 	MOVB	IRP$L_MEDIA+1(R3),UCB$B_DEVTYPE(R5); INSERT NEW TERMINAL TYPE

            54            0E     E1  005D   123 	BBC	#TT$V_HOLDSCREEN,R4,25$	; BR IF HOLD SCREEN DID NOT CHANGE

                          15         0060       

         D8 A5       0000'CF     9E  0061   124 	MOVAB	W^TTY$A_HLDSCREEN,UCB$L_TT_MULTI(R5); ASSUME ENTER HOLD SCREEN

         38 A3            0E     E0  0067   125 	BBS	#TT$V_HOLDSCREEN,IRP$L_MEDIA+4(R3),20$; BR IF ENTERING

                          06         006B       

         D8 A5       0000'CF     9E  006C   126 	MOVAB	W^TTY$A_RLSCREEN,UCB$L_TT_MULTI(R5); SET TO RELEASE SCREEN

                                     0072   127 20$:	SET_STATE MULTI			;

         3A A5         36 A3     B0  0076   128 25$:	MOVW	IRP$L_MEDIA+2(R3),UCB$W_DEVBUFSIZ(R5); INSERT NEW CARRIAGE WIDTH

            51         3C A3     9A  007B   129 	MOVZBL	IRP$W_TT_PRMPT(R3),R1	; GET NEW SPEED

                          04     13  007F   130 	BEQL	30$			; IF EQL THEN NO CHANGE

         FB A5            51     90  0081   131 	MOVB	R1,UCB$B_TT_SPEED(R5)	; INSERT LINE SPEED

                          50     D4  0085   132 30$:	CLRL	R0			; ASSUME NEW VALUE IS 0

         3C A5            0A     E1  0087   133 	BBC	#TT$V_CRFILL,UCB$L_DEVDEPEND(R5),37$; CR FILL ON?

                          0A         008B       

            50         3E A3     9A  008C   134 	MOVZBL	IRP$W_TT_PRMPT+2(R3),R0	; GET NEW VALUE

            54            0A     E0  0090   135 	BBS	#TT$V_CRFILL,R4,37$	; CHANGE?

                          02         0093       

                          0B     13  0094   136 	BEQL	40$			; IF NEQ EQL 0 THEN NO CHANGE

         F9 A5            50     90  0096   137 37$:	MOVB	R0,UCB$B_TT_CRFILL(R5)	; RESET VALUE

                          05     12  009A   138 	BNEQ	40$			; IF NEQ THEN OK

         3C A5            0A     E5  009C   139 	BBCC	#TT$V_CRFILL,UCB$L_DEVDEPEND(R5),40$; SET OFF

                          00         00A0       

                          50     D4  00A1   140 40$:	CLRL	R0			; ASSUME NEW VALUE IS 0

         3C A5            0B     E1  00A3   141 	BBC	#TT$V_LFFILL,UCB$L_DEVDEPEND(R5),47$; CR FILL ON?

                          0A         00A7       

            50         3F A3     9A  00A8   142 	MOVZBL	IRP$W_TT_PRMPT+3(R3),R0	; GET NEW VALUE

            54            0B     E0  00AC   143 	BBS	#TT$V_LFFILL,R4,47$	; CHANGE?

                          02         00AF       

                          0B     13  00B0   144 	BEQL	50$			; IF NEQ EQL 0 THEN NO CHANGE

         FA A5            50     90  00B2   145 47$:	MOVB	R0,UCB$B_TT_LFFILL(R5)	; RESET VALUE

                          05     12  00B6   146 	BNEQ	50$			; IF NEQ THEN OK

         3C A5            0B     E5  00B8   147 	BBCC	#TT$V_LFFILL,UCB$L_DEVDEPEND(R5),50$; SET OFF

                          00         00BC       

            02            00     EF  00BD   148 50$:	EXTZV	#TT$V_PASSALL,#2,UCB$L_DEVDEPEND(R5),R4; SET SETTINGS OF PASSALL/NOECHO

            54         3C A5         00C0       

            0E            54     F0  00C3   149 	INSV	R4,#TTY$V_ST_PASALL,#2,(R2); INSERT IN STATE VECTOR

            62            02         00C6       

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   4

X01             TTY$STARTIO - START I/O OPERATION ON TERMINAL                                                                    (2)



            54         20 A5     D0  00C8   150 	MOVL	UCB$L_CRB(R5),R4	; GET CRB ADDRESS

                       2C B4     16  00CC   151 	JSB	@CRB$L_INTD+VEC$L_TT_ILINE(R4); INIT LINE

                       FE A5     B4  00CF   152 	CLRW	UCB$W_TT_CURSOR(R5)	; RESET HORIZON MARKER

                       F1 A5     94  00D2   153 	CLRB	UCB$B_TT_LINE(R5)	; RESET VERTICLE PAGE POSITION

            50         FB A5     9A  00D5   154 100$:	MOVZBL	UCB$B_TT_SPEED(R5),R0	; RETURN SPEED

            50            10     78  00D9   155 	ASHL	#16,R0,R0		; SHIFT TO HIGH WORD

                          50         00DC       

            51         F9 A5     3C  00DD   156 	MOVZWL	UCB$B_TT_CRFILL(R5),R1	; AND FILLS

            50       0000'8F     B0  00E1   157 	MOVW	#SS$_NORMAL,R0		; SET STATUS

                                     00E6   158 	REQCOM

                                     00E9   159 ;

                                     00E9   160 ; WRITE OPERATION

                                     00E9   161 ;

                                     00E9   162 DO_WRITE:				;

            62         34 A3     C8  00E9   163 	BISL	IRP$L_MEDIA(R3),(R2)	; SET NEW STATE BITS

                       34 A3     D4  00ED   164 	CLRL	IRP$L_MEDIA(R3)		; SET UP OPERATION STORAGE

         20 A3            07     E1  00F0   165 	BBC	#IO$V_ENABLMBX,IRP$W_FUNC(R3),20$; BR IF ENABLE MBX NOT REQUESTED

                          05         00F4       

         3C A5            10     E5  00F5   166 	BBCC	#TT$V_MBXDSABL,UCB$L_DEVDEPEND(R5),20$; ENABLE MAILBOX

                          00         00F9       

         20 A3            06     E1  00FA   167 20$:	BBC	#IO$V_CANCTRLO,IRP$W_FUNC(R3),30$; BR IF CANCEL CTRLO NOT REQUESTED

                          04         00FE       

                                     00FF   168 	CLR_STATE CTRLO			; CANCEL THE CONTROL O

                          0061   31  0103   169 30$:	BRW	STARTOUTPUT		; START THE OUTPUT

                                     0106   170 ;

                                     0106   171 ; READ OPERATION

                                     0106   172 ;

                                     0106   173 DO_READ:				; 

            62         34 A3     C8  0106   174 	BISL	IRP$L_MEDIA(R3),(R2)	; INSERT READ STATE BITS IN VECTOR

         6C A5         3C A3     3C  010A   175 	MOVZWL	IRP$W_TT_PRMPT(R3),UCB$W_BOFF(R5); SAVE PROMPT SIZE

                                     010F   176 ;

                                     010F   177 ; RESET I/O PACKET STORAGE FOR THE I/O IN PROGRESS DATA

                                     010F   178 ;

                       34 A3     D4  010F   179 	CLRL	IRP$L_MEDIA(R3)		; SET UP READ TERMINATOR STORAGE

            54         2C A3     D0  0112   180 	MOVL	IRP$L_SVAPTE(R3),R4	; GET BUFFERED BLOCK ADDRESS

         0C A4         FE A5     B0  0116   181 	MOVW	UCB$W_TT_CURSOR(R5),TTY$W_RB_ORGHOR(R4); SAVE OPERATION START CURSOR IN BLOCK

         20 A3            0A     E1  011B   182 	BBC	#IO$V_DSABLMBX,IRP$W_FUNC(R3),10$; BR IF ENABLE MBX NOT REQUESTED

                          05         011F       

         3C A5            10     E2  0120   183 	BBSS	#TT$V_MBXDSABL,UCB$L_DEVDEPEND(R5),10$; DISABLE MAILBOX

                          00         0124       

                                     0125   184 ;

                                     0125   185 ; SET UP READ TIMEOUT IF NECESSARY

                                     0125   186 ;

         20 A3            07     E1  0125   187 10$:	BBC	#IO$V_TIMED,IRP$W_FUNC(R3),20$; BR IF NOT READ TIMED

                          11         0129       

            54         0E A4     3C  012A   188 	MOVZWL	TTY$W_RB_TIMOS(R4),R4	; GET THE NUMBER OF SECONDS BETWEEN CHARACTERS

   00000000'EF            54     C1  012E   189 	ADDL3	R4,EXE$GL_ABSTIM,UCB$L_TT_RDUE(R5); SET UP DUE TIME

                       EC A5         0135       

         5A A5            02     A8  0137   190 	BISW	#UCB$M_TT_TIMO,UCB$W_DEVSTS(R5); SET READ TIMEOUT ENABLE

                                     013B   191 ;

                                     013B   192 ; PROCESS STATE DEPENDENT I/O FUNCTIONS FOR READ

                                     013B   193 ;

                                     013B   194 20$:	CLR_STATE	<CTRLO>		; TURN CONTROLO

         5A A5            04     AA  013F   195 	BICW	#UCB$M_TT_NOTIF,UCB$W_DEVSTS(R5); SET NOT NOTIFIED

         20 A3            0B     E1  0143   196 	BBC	#IO$V_PURGE,IRP$W_FUNC(R3),50$; BR IF NOT "FLUSH" SUBFUNCTION

                          03         0147       

                          FEB5'  30  0148   197 	BSBW	TTY$PURGE_AHEAD		; PURGE TYPEAHEAD BUFFER

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   5

X01             TTY$STARTIO - START I/O OPERATION ON TERMINAL                                                                    (2)



                                     014B   198 50$:	IF_STATE PROMPT,STARTOUTPUT	; PROMPT READ?

                                     0151   199 ;

                                     0151   200 ; IF NORMAL READ  CHECK FOR LINE FEED NEEDED

                                     0151   201 ;

            62            15     E4  0151   202 	BBSC	#TTY$V_ST_NL,(R2),60$	; BR IF AT NEWLINE BECAUSE OF CURSOR OVERFLOW

                          0F         0154       

                                     0155   203 	IF_STATE <PASALL,NOECHO>,60$	; NO TEST IF PASSALL OR NOECHO

                       FE A5     B5  015C   204 	TSTW	UCB$W_TT_CURSOR(R5)	; CURSOR AT 0?

                          03     12  015F   205 	BNEQ	60$			; IF NO THEN SEND NO LINE FEED

                                     0161   206 	SET_STATE SENDLF		; SEND A LINE FEED FIRST

                                     0164   207 ;

                                     0164   208 60$:	SET_STATE XON

                                     0167   209  

                                     0167   210 	.ENABL	LSB

                                     0167   211  

                                     0167   212 STARTOUTPUT:

                                     0167   213 	IF_STATE BRDCST,100$		; IF BRDCST THEN DON'T START

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   6

X01             TTY$STARTOUTPUT - START OUTPUT OPERATION ON UNI                                                                  (3)



                                     016D   215 	.SBTTL	TTY$STARTOUTPUT - START OUTPUT OPERATION ON UNIT

                                     016D   216 ;++

                                     016D   217 ; TTY$STARTOUTPUT - START OUTPUT ON UNIT

                                     016D   218 ;

                                     016D   219 ; FUNCTIONAL DESCRIPTION:

                                     016D   220 ;

                                     016D   221 ; THIS ROUTINE IS USED TO INITIATE OUTPUT ON A UNIT. THIS OPERATION STARTS

                                     016D   222 ; THE FLOW OF DATA EVEN IN THE CASE OF READS. THE ACTION IS TO TEST THE

                                     016D   223 ; STATE OF INTERRUPT EXPECTED. IF AN INTERRUPT IS EXPECTED, THEN NOTHING NEED BE DON

                                     016D   224 ; BECAUSE A SUBSEQUENT INTERRUPT WILL CONTINUE APPROP. WITH THE CURRENT STATE.

                                     016D   225 ; IF NO INTERRUPT IS EXPECTED, THEN THE TTY$GETNXTCHAR ROUTINE IS ENTERED TO RETURN

                                     016D   226 ; THE NEXT CHARACTER FOR THE UNIT. THEN IF A CHARACTER IS AVAILABLE THE DEVICE

                                     016D   227 ; DEPENDENT STARTIO ROUTINE IS ENTERED. 

                                     016D   228 ; THIS OPERATION IS IDENTICAL TO THE OPERATION OF AN OUTPUT READY INTERRUPT.

                                     016D   229 ;

                                     016D   230 ; INPUTS:

                                     016D   231 ;

                                     016D   232 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     016D   233 ;	R5 = UCB ADDRESS

                                     016D   234 ;

                                     016D   235 ; OUTPUTS:

                                     016D   236 ;

                                     016D   237 ;	IF NO INTERRUPT IS EXPECTED, THEN CONTROL IS PASSED TO THE DEVICE

                                     016D   238 ;	DEPENDENT STARTIO ROUTINE.

                                     016D   239 ;--

                                     016D   240 TTY$STARTOUTPUT::			; START OUTPUT

         58 A5            01     E0  016D   241 	BBS	#UCB$V_INT,UCB$W_STS(R5),100$; LEAVE HERE IF INTERRUPT EXPECTED

                          0A         0171       

                          FE8B'  30  0172   242 	BSBW	TTY$GETNEXTCHAR		; GET NEXT CHARACTER FOR UNIT

            54         20 A5     D0  0175   243 	MOVL	UCB$L_CRB(R5),R4	; GET THE CRB ADDRESS

                       30 B4     17  0179   244 	JMP	@CRB$L_INTD+VEC$L_TT_STRTIO(R4); ENTER THE DEVICE DEP. ROUTINE

                                 05  017C   245 100$:	RSB				; RETURN

                                     017D   246  

                                     017D   247 	.DSABL	LSB

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   7

X01             TTY$READONE - READ OPERATION DONE                                                                                (4)



                                     017D   249 	.SBTTL	TTY$READONE - READ OPERATION DONE

                                     017D   250 ;++

                                     017D   251 ; TTY$READONE - READ I/O OPERATION DONE

                                     017D   252 ;

                                     017D   253 ; FUNCTIONAL DESCRIPTION:

                                     017D   254 ;

                                     017D   255 ; THIS ROUTINE IS ENTERED TO COMPLETE THE CURRENT READ OPERATION.

                                     017D   256 ; THE ACTION IS TO RESET THE STATE OF THE UNIT TO REFLECT THE CHANGE AND TO

                                     017D   257 ; FORK ON THE IRP TO COMPLETE THE PROCESSING.

                                     017D   258 ;

                                     017D   259 ; INPUTS:

                                     017D   260 ;

                                     017D   261 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     017D   262 ;	R5 = UCB ADDRESS

                                     017D   263 ;

                                     017D   264 ;		UCB$W_BOFF = STATUS WORD

                                     017D   265 ;		UCB$W_BCNT = COUNT OF TRANSFER

                                     017D   266 ;	IRP$L_MEDIA(CURRENT PACKET) = TERMINATOR AND TERMINATOR SIZE

                                     017D   267 ;

                                     017D   268 ; OUTPUTS:

                                     017D   269 ;

                                     017D   270 ;

                                     017D   271 ;	NONE

                                     017D   272 ;--

                                     017D   273 TTY$READONE::				; READ I/O DONE

                                     017D   274 	IF_STATE	EOL,1$		; IF EQL SET THEN NORMAL TERMINATE

                                     0183   275 	SET_STATE	XOFF		; ELSE SET XOFF FOR LATER

         5A A5            02     AA  0186   276 1$:	BICW	#UCB$M_TT_TIMO,UCB$W_DEVSTS(R5); CLEAR TIMEOUT ENABLED

                                     018A   277 ;

                                     018A   278 ; SET UP ERRORS ON ESCAPE SEQUENCES

                                     018A   279 ;

                                     018A   280 	IF_NOT_STATE ESC,5$		; IF NOT ESCAPE THEN BR

         6C A5       0000'8F     B0  0190   281 	MOVW	#SS$_PARTESCAPE,UCB$W_BOFF(R5); ASSUME PARTIAL ESCAPE SEQUENCE

                                     0196   282 5$:	IF_NOT_STATE BADESC,10$		; ESCAPE SYNTAX CORRECT?

         6C A5       0000'8F     B0  019C   283 	MOVW	#SS$_BADESCAPE,UCB$W_BOFF(R5); SET STATUS FOR IMPROPER ESCAPE SEQ

                                     01A2   284 ;

                                     01A2   285 ; RESET PASSALL AND NOECHO IF MODES

                                     01A2   286 ;

            02            00     EF  01A2   287 10$:	EXTZV	#TT$V_PASSALL,#2,UCB$L_DEVDEPEND(R5),R4; GET TERMINAL MODES

            54         3C A5         01A5       

            0E            54     F0  01A8   288 	INSV	R4,#TTY$V_ST_PASALL,#2,(R2); RESET PASSALL AND NOECHO

            62            02         01AB       

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   8

X01             TTT$WRITEDONE - WRITE OPERATION DONE                                                                             (5)



                                     01AD   290 	.SBTTL	TTT$WRITEDONE - WRITE OPERATION DONE

                                     01AD   291 ;++

                                     01AD   292 ; TTY$WRITEDONE - WRITE OPERATION DONE

                                     01AD   293 ;

                                     01AD   294 ; FUNCTIONAL DESCRIPTION:

                                     01AD   295 ;

                                     01AD   296 ; THIS ROUTINE PROCESSES WRITE OPERATION DONE.

                                     01AD   297 ;

                                     01AD   298 ; INPUTS:

                                     01AD   299 ;

                                     01AD   300 ;	R2 = ADDRESS OF THE UNIT STATE VECTOR

                                     01AD   301 ;	R5 = UCB ADDRESS

                                     01AD   302 ;

                                     01AD   303 ;	UCB$W_BOFF CONTAINS THE STATUS

                                     01AD   304 ;	UCB$W_BCNT CONTAINS THE TRANSFER SIZE

                                     01AD   305 ;

                                     01AD   306 ; OUTPUTS:

                                     01AD   307 ;

                                     01AD   308 ;	R2,R5 ARE PRESERVED.

                                     01AD   309 ;--

                                     01AD   310 TTY$WRITEDONE::				; 

                                     01AD   311 	CLR_STATE <READ,DEL,XON,EOL,PROMPT,CTRLR,NOFLTR,-

                                     01AD   312 		WRITE,WRTALL,ESC,ESC_O,BADESC>

            53         4C A5     D0  01B4   313 	MOVL	UCB$L_IRP(R5),R3	; ADDRESS CURRENT PACKET

         68 B5         3C A3     3C  01B8   314 	MOVZWL	IRP$W_TT_PRMPT(R3),@UCB$L_SVAPTE(R5); INSERT DATA ADDRESS

         68 B5         68 A5     C0  01BD   315 	ADDL	UCB$L_SVAPTE(R5),@UCB$L_SVAPTE(R5);

         38 A3         0C A3     D0  01C2   316 	MOVL	IRP$L_PID(R3),IRP$L_TT_TERM(R3); SAVE DATA FOR FORK BLOCK

         3C A3         0B A3     90  01C7   317 	MOVB	IRP$B_RMOD(R3),IRP$W_TT_PRMPT(R3);

         0B A3         0B A5     90  01CC   318 	MOVB	UCB$B_FIPL(R5),IRP$B_RMOD(R3); SET FORK IPL

         30 A3         6C A5     D0  01D1   319 	MOVL	UCB$W_BOFF(R5),IRP$W_BOFF(R3); SAVE TRANSFER SIZE AND STATUS

                          24     BB  01D6   320 	PUSHR	#^M<R2,R5>		;

            55            53     D0  01D8   321 	MOVL	R3,R5			; SET UP FORK BLOCK ADDRESS

            53         10 A3     7D  01DB   322 	MOVQ	IRP$L_AST(R3),R3	; GET PARAMS FOR FORK

                       0F'AF     9F  01DF   323 	PUSHAB	B^50$			; FORCE RETURN TO RESTORE UCB ADDRESS

                                     01E2   324 	FORK				; CREATE FORK PROCESS

                                     01E5   325 ;

                                     01E5   326 ; I/O DONE FORK PROCESS

                                     01E5   327 ;

            53            55     D0  01E5   328 	MOVL	R5,R3			; RESTORE PACKET AND UCB ADDRESSES

            55         1C A3     D0  01E8   329 	MOVL	IRP$L_UCB(R3),R5	;

            50         30 A3     D0  01EC   330 	MOVL	IRP$W_BOFF(R3),R0	; GET STATUS AND TRANSFER SIZE

         32 A3         36 A3     A0  01F0   331 	ADDW	IRP$L_MEDIA+2(R3),IRP$W_BCNT(R3) ; CALC TOTAL TRANSFER SIZE

            51         34 A3     D0  01F5   332 	MOVL	IRP$L_MEDIA(R3),R1	; SET TERMINATOR DATA

         0C A3         38 A3     D0  01F9   333 	MOVL	IRP$L_TT_TERM(R3),IRP$L_PID(R3); RETURN IRP DATA

         0B A3         3C A3     90  01FE   334 	MOVB	IRP$W_TT_PRMPT(R3),IRP$B_RMOD(R3);

            54         2C A3     D0  0203   335 	MOVL	IRP$L_SVAPTE(R3),R4	; GET ADDRESS OF THE BUFFER BLOCK

         30 A3         08 A4     B0  0207   336 	MOVW	TTY$W_RB_SIZE(R4),IRP$W_BOFF(R3); MAKE IT QUOTA

                                     020C   337 	REQCOM				; COMPLETE REQUEST

                          24     BA  020F   338 50$:	POPR	#^M<R2,R5>		;

                                 05  0211   339 	RSB

                                     0212   340  

                                     0212   341 	.END

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (5)



BIT...         = 00000008            IO$M_SYNCH     = 00000200            IO$_PHYSICAL   = 0000001F            

CRB$B_MASK       0000000E            IO$M_TIMED     = 00000080            IO$_READHEAD   = 0000000E            

CRB$B_TT_ATTN    00000004            IO$M_TRMNOECHO = 00001000            IO$_READLBLK   = 00000021            

CRB$B_TT_EXPEC   00000005            IO$M_WRTATTN   = 00000100            IO$_READPBLK   = 0000000C            

CRB$B_TYPE       0000000A            IO$S_FCODE     = 00000006            IO$_READPRESET = 00000019            

CRB$C_LENGTH     00000028            IO$V_ABORT     = 00000008            IO$_READPROMPT = 00000037            

CRB$K_LENGTH     00000028            IO$V_ACCESS    = 00000006            IO$_READTRACKD = 00000010            

CRB$L_INTD       00000014            IO$V_ATTNAST   = 00000008            IO$_READVBLK   = 00000031            

CRB$L_LINK       00000010            IO$V_BINARY    = 00000006            IO$_RECAL      = 00000003            

CRB$L_TT_DIAL    00000000            IO$V_CANCTRLO  = 00000006            IO$_RELEASE    = 00000005            

CRB$L_WQBL       00000004            IO$V_COMMOD    = 00000006            IO$_RETCENTER  = 00000007            

CRB$L_WQFL       00000000            IO$V_CREATE    = 00000007            IO$_REWIND     = 00000024            

CRB$M_BSY      = 00000001            IO$V_CTRLCAST  = 00000008            IO$_REWINDOFF  = 00000022            

CRB$V_BSY      = 00000000            IO$V_CTRLYAST  = 00000007            IO$_SEARCH     = 00000009            

CRB$W_REFC       0000000C            IO$V_CVTLOW    = 00000008            IO$_SEEK       = 00000002            

CRB$W_SIZE       00000008            IO$V_DATACHECK = 0000000E            IO$_SENSECHAR  = 0000001B            

DO_READ          00000106 R     03   IO$V_DELETE    = 00000008            IO$_SENSEMODE  = 00000027            

DO_SETC          0000002D R     03   IO$V_DMOUNT    = 0000000A            IO$_SETCHAR    = 0000001A            

DO_SETM          00000018 R     03   IO$V_DSABLMBX  = 0000000A            IO$_SETMODE    = 00000023            

DO_WRITE         000000E9 R     03   IO$V_ENABLMBX  = 00000007            IO$_SKIPFILE   = 00000025            

EXE$FORK         ********   X   03   IO$V_FCODE     = 00000000            IO$_SKIPRECORD = 00000026            

EXE$GL_ABSTIM    ********   X   03   IO$V_HANGUP    = 00000009            IO$_SPACEFILE  = 00000002            

GBL...         = 00000000            IO$V_INHERLOG  = 0000000B            IO$_SPACERECORD= 00000009            

IO$M_ABORT     = 00000100            IO$V_INHEXTGAP = 0000000C            IO$_STARTSPNDL = 00000019            

IO$M_ACCESS    = 00000040            IO$V_INHRETRY  = 0000000F            IO$_UNLOAD     = 00000001            

IO$M_ATTNAST   = 00000100            IO$V_INHSEEK   = 0000000C            IO$_VIRTUAL    = 0000003F            

IO$M_BINARY    = 00000040            IO$V_INTERRUPT = 00000006            IO$_WRITECHECK = 0000000A            

IO$M_CANCTRLO  = 00000040            IO$V_MOUNT     = 00000009            IO$_WRITECHECKH= 00000018            

IO$M_COMMOD    = 00000040            IO$V_NOECHO    = 00000006            IO$_WRITEHEAD  = 0000000D            

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

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

IO$M_CTRLYAST  = 00000080            IO$V_NOW       = 00000006            IO$_WRITEOF    = 00000028            

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

IO$M_DATACHECK = 00004000            IO$V_PACKED    = 00000007            IO$_WRITETRACKD= 0000000F            

IO$M_DELETE    = 00000100            IO$V_PURGE     = 0000000B            IO$_WRITEVBLK  = 00000030            

IO$M_DMOUNT    = 00000400            IO$V_READATTN  = 00000007            IOC$REQCOM       ********   X   03   

IO$M_DSABLMBX  = 00000400            IO$V_REVERSE   = 00000006            IPL$_ASTDEL    = 00000002            

IO$M_ENABLMBX  = 00000080            IO$V_SHUTDOWN  = 00000007            IPL$_HWCLK     = 00000018            

IO$M_FCODE     = 0000003F            IO$V_STARTUP   = 00000006            IPL$_IOPOST    = 00000004            

IO$M_HANGUP    = 00000200            IO$V_SYNCH     = 00000009            IPL$_MAILBOX   = 0000000B            

IO$M_INHERLOG  = 00000800            IO$V_TIMED     = 00000007            IPL$_POWER     = 0000001F            

IO$M_INHEXTGAP = 00001000            IO$V_TRMNOECHO = 0000000C            IPL$_QUEUEAST  = 00000006            

IO$M_INHRETRY  = 00008000            IO$V_WRTATTN   = 00000008            IPL$_SCHED     = 00000003            

IO$M_INHSEEK   = 00001000            IO$_ACCESS     = 00000032            IPL$_SYNCH     = 00000007            

IO$M_INTERRUPT = 00000040            IO$_ACPCONTROL = 00000038            IPL$_TIMER     = 00000007            

IO$M_MOUNT     = 00000200            IO$_CREATE     = 00000033            IRP$B_CARCON     00000038            

IO$M_NOECHO    = 00000040            IO$_DEACCESS   = 00000034            IRP$B_EFN        00000022            

IO$M_NOFILTR   = 00000200            IO$_DELETE     = 00000035            IRP$B_PRI        00000023            

IO$M_NOFORMAT  = 00000100            IO$_DIAGNOSE   = 0000001D            IRP$B_RMOD       0000000B            

IO$M_NOW       = 00000040            IO$_DRVCLR     = 00000004            IRP$B_TYPE       0000000A            

IO$M_NOWAIT    = 00000080            IO$_ERASETAPE  = 00000006            IRP$C_LENGTH     0000004C            

IO$M_PACKED    = 00000080            IO$_LOGICAL    = 0000002F            IRP$K_LENGTH     0000004C            

IO$M_PURGE     = 00000800            IO$_MODIFY     = 00000036            IRP$L_AST        00000010            

IO$M_READATTN  = 00000080            IO$_MOUNT      = 00000039            IRP$L_ASTPRM     00000014            

IO$M_REVERSE   = 00000040            IO$_NOP        = 00000000            IRP$L_DIAGBUF    00000044            

IO$M_SHUTDOWN  = 00000080            IO$_OFFSET     = 00000006            IRP$L_IOQBL      00000004            

IO$M_STARTUP   = 00000040            IO$_PACKACK    = 00000008            IRP$L_IOQFL      00000000            

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (5)



IRP$L_IOSB       00000024            PR$_P0BR       = 00000008            TT$M_NOBRDCST  = 00020000            

IRP$L_IOST1      00000034            PR$_P0LR       = 00000009            TT$M_NOECHO    = 00000002            

IRP$L_IOST2      00000038            PR$_P1BR       = 0000000A            TT$M_NOTYPEAHD = 00000004            

IRP$L_MEDIA      00000034            PR$_P1LR       = 0000000B            TT$M_ODD       = 00000080            

IRP$L_PID        0000000C            PR$_PCBB       = 00000010            TT$M_PAGE      = FE000000            

IRP$L_SEGVBN     00000040            PR$_RXCS       = 00000020            TT$M_PARITY    = 00000040            

IRP$L_SEQNUM     00000048            PR$_RXDB       = 00000021            TT$M_PASSALL   = 00000001            

IRP$L_SVAPTE     0000002C            PR$_SBIER      = 00000034            TT$M_REMOTE    = 00002000            

IRP$L_TT_TERM    00000038            PR$_SBIFS      = 00000030            TT$M_SCOPE     = 00001000            

IRP$L_UCB        0000001C            PR$_SBIMT      = 00000033            TT$M_SCRIPT    = 00000040            

IRP$L_WIND       00000018            PR$_SBIQC      = 00000036            TT$M_TTSYNC    = 00000020            

IRP$M_BUFIO    = 00000001            PR$_SBIS       = 00000031            TT$M_WRAP      = 00000200            

IRP$M_CHAINED  = 00000020            PR$_SBISC      = 00000032            TT$S_PAGE      = 00000008            

IRP$M_COMPLX   = 00000008            PR$_SBITA      = 00000035            TT$V_CRFILL    = 0000000A            

IRP$M_DIAGBUF  = 00000080            PR$_SBR        = 0000000C            TT$V_EIGHTBIT  = 0000000F            

IRP$M_FUNC     = 00000002            PR$_SCBB       = 00000011            TT$V_ESCAPE    = 00000003            

IRP$M_PAGIO    = 00000004            PR$_SID        = 0000003E            TT$V_HOLDSCREEN= 0000000E            

IRP$M_PHYSIO   = 00000100            PR$_SIRR       = 00000014            TT$V_HOSTSYNC  = 00000004            

IRP$M_PRIVIO   = 00000200            PR$_SISR       = 00000015            TT$V_LFFILL    = 0000000B            

IRP$M_SWAPIO   = 00000040            PR$_SLR        = 0000000D            TT$V_LOWER     = 00000007            

IRP$M_VIRTUAL  = 00000010            PR$_SSP        = 00000002            TT$V_MBXDSABL  = 00000010            

IRP$S_FCODE    = 00000006            PR$_TBIA       = 00000039            TT$V_MECHTAB   = 00000008            

IRP$S_FMOD     = 0000000A            PR$_TBIS       = 0000003A            TT$V_NOBRDCST  = 00000011            

IRP$S_MODE     = 00000002            PR$_TODR       = 0000001B            TT$V_NOECHO    = 00000001            

IRP$V_BUFIO    = 00000000            PR$_TXCS       = 00000022            TT$V_NOTYPEAHD = 00000002            

IRP$V_CHAINED  = 00000005            PR$_TXDB       = 00000023            TT$V_ODD       = 00000007            

IRP$V_COMPLX   = 00000003            PR$_USP        = 00000003            TT$V_PAGE      = 00000019            

IRP$V_DIAGBUF  = 00000007            PR$_WCSA       = 0000002C            TT$V_PARITY    = 00000006            

IRP$V_FCODE    = 00000000            PR$_WCSD       = 0000002D            TT$V_PASSALL   = 00000000            

IRP$V_FMOD     = 00000006            SS$_BADESCAPE    ********   X   03   TT$V_REMOTE    = 0000000D            

IRP$V_FUNC     = 00000001            SS$_NORMAL       ********   X   03   TT$V_SCOPE     = 0000000C            

IRP$V_MODE     = 00000000            SS$_PARTESCAPE   ********   X   03   TT$V_SCRIPT    = 00000006            

IRP$V_PAGIO    = 00000002            STARTOUTPUT      00000167 R     03   TT$V_TTSYNC    = 00000005            

IRP$V_PHYSIO   = 00000008            TT$C_BAUD_110  = 00000003            TT$V_WRAP      = 00000009            

IRP$V_PRIVIO   = 00000009            TT$C_BAUD_1200 = 00000008            TT$_LA120      = 00000021            

IRP$V_SWAPIO   = 00000006            TT$C_BAUD_134  = 00000004            TT$_LA36       = 00000020            

IRP$V_VIRTUAL  = 00000004            TT$C_BAUD_150  = 00000005            TT$_LAX        = 00000020            

IRP$W_ABCNT      0000003C            TT$C_BAUD_1800 = 00000009            TT$_UNKNOWN    = 00000000            

IRP$W_BCNT       00000032            TT$C_BAUD_2000 = 0000000A            TT$_VT05       = 00000001            

IRP$W_BOFF       00000030            TT$C_BAUD_2400 = 0000000B            TT$_VT52       = 00000040            

IRP$W_CHAN       00000028            TT$C_BAUD_300  = 00000006            TT$_VT55       = 00000041            

IRP$W_FUNC       00000020            TT$C_BAUD_3600 = 0000000C            TT$_VT5X       = 00000040            

IRP$W_OBCNT      0000003E            TT$C_BAUD_4800 = 0000000D            TTY$A_HLDSCREEN  ********   X   03   

IRP$W_SIZE       00000008            TT$C_BAUD_50   = 00000001            TTY$A_RLSCREEN   ********   X   03   

IRP$W_STS        0000002A            TT$C_BAUD_600  = 00000007            TTY$B_BD_CNT     00000015            

IRP$W_TT_PRMPT   0000003C            TT$C_BAUD_7200 = 0000000E            TTY$B_BD_IPL     00000017            

PR$_ACCR       = 00000029            TT$C_BAUD_75   = 00000002            TTY$B_BD_REFC    00000016            

PR$_ACCS       = 00000028            TT$C_BAUD_9600 = 0000000F            TTY$B_BD_TYPE    0000000A            

PR$_ASTLVL     = 00000013            TT$M_CRFILL    = 00000400            TTY$B_BD_WHO     00000014            

PR$_ESP        = 00000001            TT$M_EIGHTBIT  = 00008000            TTY$B_TA_TYPE    0000000A            

PR$_ICCS       = 00000018            TT$M_ESCAPE    = 00000008            TTY$C_BELL     = 00000007            

PR$_ICR        = 0000001A            TT$M_HOLDSCREEN= 00004000            TTY$C_BLANK    = 00000020            

PR$_IPL        = 00000012            TT$M_HOSTSYNC  = 00000010            TTY$C_BS       = 00000008            

PR$_ISP        = 00000004            TT$M_LFFILL    = 00000800            TTY$C_CR       = 0000000D            

PR$_KSP        = 00000000            TT$M_LOWER     = 00000080            TTY$C_CTRLC    = 00000003            

PR$_MAPEN      = 00000038            TT$M_MBXDSABL  = 00010000            TTY$C_CTRLO    = 0000000F            

PR$_NICR       = 00000019            TT$M_MECHTAB   = 00000100            TTY$C_CTRLQ    = 00000011            

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (5)



TTY$C_CTRLR    = 00000012            TTY$M_CH_SPEC  = 00000010            TTY$V_ST_PASALL= 0000000E            

TTY$C_CTRLS    = 00000013            TTY$M_ST_BADESC= 00100000            TTY$V_ST_PROMPT= 00000011            

TTY$C_CTRLU    = 00000015            TTY$M_ST_BRDCST= 00000080            TTY$V_ST_READ  = 0000000B            

TTY$C_CTRLX    = 00000018            TTY$M_ST_CTRLO = 00001000            TTY$V_ST_SENDLF= 00000005            

TTY$C_CTRLY    = 00000019            TTY$M_ST_CTRLR = 00000400            TTY$V_ST_SKIPLF= 00000017            

TTY$C_CTRLZ    = 0000001A            TTY$M_ST_CTRLS = 00000004            TTY$V_ST_TYPFUL= 00000016            

TTY$C_DELETE   = 0000007F            TTY$M_ST_CURSOR= 00000010            TTY$V_ST_UNSOL = 0000001A            

TTY$C_DOLLAR   = 00000024            TTY$M_ST_DEL   = 00002000            TTY$V_ST_WRITE = 00000008            

TTY$C_DS_ACTIVE= 00000001            TTY$M_ST_EOL   = 00000200            TTY$V_ST_WRTALL= 00000010            

TTY$C_DS_ATTN1 = 00000002            TTY$M_ST_ESC   = 00080000            TTY$V_ST_XOFF  = 00000001            

TTY$C_DS_ATTN2 = 00000003            TTY$M_ST_ESC_O = 08000000            TTY$V_ST_XON   = 00000000            

TTY$C_DS_ATTN3 = 00000004            TTY$M_ST_FILL  = 00000008            TTY$WRITEDONE    000001AD RG    03   

TTY$C_DS_HANG  = 00000005            TTY$M_ST_GETAHD= 02000000            TTY$W_BD_SIZE    00000008            

TTY$C_DS_HANG2 = 00000006            TTY$M_ST_HANGUP= 01000000            TTY$W_RB_ORGHOR  0000000C            

TTY$C_DS_IDLE  = 00000000            TTY$M_ST_MULTI = 00000040            TTY$W_RB_SIZE    00000008            

TTY$C_DS_RESET = 00000007            TTY$M_ST_NL    = 00200000            TTY$W_RB_TIMOS   0000000E            

TTY$C_ESCAPE   = 0000001B            TTY$M_ST_NOECHO= 00008000            TTY$W_TA_SIZE    00000008            

TTY$C_FC_N_SET = 00000004            TTY$M_ST_NOFLTR= 00040000            TTY$W_WB_SIZE    00000008            

TTY$C_FC_READ  = 00000000            TTY$M_ST_PASALL= 00004000            UCB$B_AMOD       00000053            

TTY$C_FC_SETC  = 00000003            TTY$M_ST_PROMPT= 00020000            UCB$B_CEX        00000077            

TTY$C_FC_SETM  = 00000002            TTY$M_ST_READ  = 00000800            UCB$B_CM1        0000004A            

TTY$C_FC_WRITE = 00000001            TTY$M_ST_SENDLF= 00000020            UCB$B_CM2        0000004B            

TTY$C_FF       = 0000000C            TTY$M_ST_SKIPLF= 00800000            UCB$B_DEVCLASS   00000038            

TTY$C_HIGHIPL  = 00000016            TTY$M_ST_TYPFUL= 00400000            UCB$B_DEVTYPE    00000039            

TTY$C_LF       = 0000000A            TTY$M_ST_UNSOL = 04000000            UCB$B_DIPL       00000052            

TTY$C_LOWA     = 00000061            TTY$M_ST_WRITE = 00000100            UCB$B_DX_SCTCNT  FFFFFFFE            

TTY$C_LOWZ     = 0000007B            TTY$M_ST_WRTALL= 00010000            UCB$B_DX_SPARE   FFFFFFFF            

TTY$C_NL       = 00000080            TTY$M_ST_XOFF  = 00000002            UCB$B_ERTCNT     00000070            

TTY$C_ONE      = 00000031            TTY$M_ST_XON   = 00000001            UCB$B_ERTMAX     00000071            

TTY$C_PLUS     = 0000002B            TTY$PURGE_AHEAD  ********   X   03   UCB$B_ESCAPE     0000004B            

TTY$C_SCRIPT   = 00000060            TTY$Q_BD_LINK    00000000            UCB$B_FEX        00000076            

TTY$C_TAB      = 00000009            TTY$READONE      0000017D RG    03   UCB$B_FIPL       0000000B            

TTY$C_TYPAHDSIZ= 0000004E            TTY$STARTIO      00000000 RG    03   UCB$B_LOCSRV     0000003C            

TTY$C_VT       = 0000000B            TTY$STARTOUTPUT  0000016D RG    03   UCB$B_OFFNDX     00000090            

TTY$C_XOFF     = 00000013            TTY$S_A        = 0000000E            UCB$B_OFFRTC     00000091            

TTY$C_XON      = 00000011            TTY$V_A        = 00000000            UCB$B_REMSRV     0000003D            

TTY$C_ZERO     = 00000030            TTY$V_CH_CTRL  = 00000005            UCB$B_SECTORS    0000003C            

TTY$GETNEXTCHAR  ********   X   03   TTY$V_CH_CTRL2 = 00000007            UCB$B_SLAVE      00000074            

TTY$LOCK         ********   X   03   TTY$V_CH_LOWER = 00000006            UCB$B_SPR        00000075            

TTY$L_BD_DATA    00000018            TTY$V_CH_SPEC  = 00000004            UCB$B_STATE      00000052            

TTY$L_BD_FORK    0000000C            TTY$V_ST_BADESC= 00000014            UCB$B_TRACKS     0000003D            

TTY$L_BD_MIN     00000028            TTY$V_ST_BRDCST= 00000007            UCB$B_TT_BRDPT   FFFFFFFC            

TTY$L_BD_UCB     00000010            TTY$V_ST_CTRLO = 0000000C            UCB$B_TT_CRFILL  FFFFFFF9            

TTY$L_RB_DATA    00000010            TTY$V_ST_CTRLR = 0000000A            UCB$B_TT_DIAL    FFFFFFF3            

TTY$L_RB_NXT     00000000            TTY$V_ST_CTRLS = 00000002            UCB$B_TT_ESC     FFFFFFF2            

TTY$L_RB_UVA     00000004            TTY$V_ST_CURSOR= 00000004            UCB$B_TT_ESC_O   FFFFFFFD            

TTY$L_TA_DATA    00000010            TTY$V_ST_DEL   = 0000000D            UCB$B_TT_FILL    FFFFFFF8            

TTY$L_TA_END     0000000C            TTY$V_ST_EOL   = 00000009            UCB$B_TT_LFFILL  FFFFFFFA            

TTY$L_TA_GET     00000004            TTY$V_ST_ESC   = 00000013            UCB$B_TT_LINE    FFFFFFF1            

TTY$L_TA_PUT     00000000            TTY$V_ST_ESC_O = 0000001B            UCB$B_TT_SPARE   FFFFFFF0            

TTY$L_WB_DATA    0000000C            TTY$V_ST_FILL  = 00000003            UCB$B_TT_SPEED   FFFFFFFB            

TTY$L_WB_END     00000004            TTY$V_ST_GETAHD= 00000019            UCB$B_TYPE       0000000A            

TTY$L_WB_NXT     00000000            TTY$V_ST_HANGUP= 00000018            UCB$B_VERTSZ     0000003F            

TTY$M_A        = 00003FFF            TTY$V_ST_MULTI = 00000006            UCB$C_LENGTH     00000074            

TTY$M_CH_CTRL  = 00000020            TTY$V_ST_NL    = 00000015            UCB$C_LOGLNK   = 00000001            

TTY$M_CH_CTRL2 = 00000080            TTY$V_ST_NOECHO= 0000000F            UCB$K_LENGTH     00000074            

TTY$M_CH_LOWER = 00000040            TTY$V_ST_NOFLTR= 00000012            UCB$L_AMB        00000054            

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (5)



UCB$L_ASTQBL     00000010            UCB$M_NT_BFROVF= 00000004            UCB$W_BCNT       0000006E            

UCB$L_ASTQFL     0000000C            UCB$M_NT_BREAK = 00000020            UCB$W_BCR        00000092            

UCB$L_CPID       0000005C            UCB$M_NT_NAME  = 00000010            UCB$W_BOFF       0000006C            

UCB$L_CRB        00000020            UCB$M_NT_NONTR = 00000040            UCB$W_BUFQUO     00000018            

UCB$L_DDB        00000024            UCB$M_NT_SDP   = 00000008            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        0000007C            UCB$M_PRMMBX   = 00000001            UCB$W_DA         00000088            

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

UCB$L_DX_BFPNT   FFFFFFF4            UCB$M_TIMOUT   = 00000040            UCB$W_DEVBUFSIZ  0000003A            

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

UCB$L_DX_RXDB    FFFFFFF8            UCB$M_TT_ODD   = 00000020            UCB$W_DSTADDR    00000018            

UCB$L_EMB        00000078            UCB$M_TT_PARTY = 00000010            UCB$W_DX_BCR     FFFFFFFC            

UCB$L_FIRST      00000014            UCB$M_TT_SPEED = 0000000F            UCB$W_EC1        0000008C            

UCB$L_FPC        0000000C            UCB$M_TT_TIMO  = 00000002            UCB$W_EC2        0000008E            

UCB$L_FQBL       00000004            UCB$M_VALID    = 00000800            UCB$W_ERRCNT     00000072            

UCB$L_FQFL       00000000            UCB$S_LNKPRI   = 00000002            UCB$W_FUNC       00000084            

UCB$L_FR3        00000010            UCB$S_LTYPE    = 00000002            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_FR4        00000014            UCB$S_TT_ODD   = 00000001            UCB$W_MSGCNT     00000016            

UCB$L_IOQBL      00000044            UCB$S_TT_PARTY = 00000001            UCB$W_MSGMAX     00000014            

UCB$L_IOQFL      00000040            UCB$S_TT_SPEED = 00000004            UCB$W_NT_CHAN    0000007C            

UCB$L_IRP        0000004C            UCB$T_PARTNER    0000000C            UCB$W_OFFSET     00000086            

UCB$L_LINK       0000002C            UCB$V_BACKP    = 00000005            UCB$W_REFC       00000050            

UCB$L_LOGADR     00000064            UCB$V_BSY      = 00000008            UCB$W_SIZE       00000008            

UCB$L_MAXBLOCK   00000080            UCB$V_CANCEL   = 00000003            UCB$W_SRCADDR    0000001A            

UCB$L_MEDIA      00000088            UCB$V_DEADMO   = 0000000A            UCB$W_STS        00000058            

UCB$L_NT_DATSSB  00000074            UCB$V_DELMBX   = 00000001            UCB$W_TT_CURSOR  FFFFFFFE            

UCB$L_NT_INTSSB  00000078            UCB$V_DIAGBUF  = 00000001            UCB$W_TT_HOLD    FFFFFFF4            

UCB$L_OPCNT      00000060            UCB$V_DX_WRITE = 00000003            UCB$W_TT_INAHD   FFFFFFF6            

UCB$L_OWNUIC     0000001C            UCB$V_ECC      = 00000000            UCB$W_UNIT       00000048            

UCB$L_PID        00000028            UCB$V_ERLOGIP  = 00000002            UCB$W_VPROT      0000001A            

UCB$L_RQBL       00000004            UCB$V_INT      = 00000001            VEC$B_DATAPATH   00000013            

UCB$L_RQFL       00000000            UCB$V_INTTYPE  = 00000007            VEC$B_NUMREG     00000012            

UCB$L_SVAPTE     00000068            UCB$V_JOB      = 00000000            VEC$L_ADP        00000014            

UCB$L_SVPN       00000064            UCB$V_LNKPRI   = 00000006            VEC$L_IDB        00000008            

UCB$L_TTCHAR     0000003C            UCB$V_LTYPE    = 00000000            VEC$L_INITIAL    0000000C            

UCB$L_TT_BRDCST  FFFFFFE4            UCB$V_MOUNTING = 00000009            VEC$L_TT_DISC    00000020            

UCB$L_TT_CTRLC   FFFFFFE0            UCB$V_MSGACK   = 00000004            VEC$L_TT_ILINE   00000018            

UCB$L_TT_CTRLY   FFFFFFDC            UCB$V_MSGFLO   = 00000003            VEC$L_TT_STRTIO  0000001C            

UCB$L_TT_MULTI   FFFFFFD8            UCB$V_NOCNVRT  = 00000002            VEC$M_MAPLOCK  = 00008000            

UCB$L_TT_RDUE    FFFFFFEC            UCB$V_NT_BFROVF= 00000002            VEC$M_PATHLOCK = 00000080            

UCB$L_TT_STATE   FFFFFFD4            UCB$V_NT_BREAK = 00000005            VEC$Q_DISPATCH   00000000            

UCB$L_TT_TYPAHD  FFFFFFE8            UCB$V_NT_NAME  = 00000004            VEC$S_DATAPATH = 00000007            

UCB$L_VCB        00000030            UCB$V_NT_NONTR = 00000006            VEC$S_MAPREG   = 0000000F            

UCB$M_BSY      = 00000100            UCB$V_NT_SDP   = 00000003            VEC$V_DATAPATH = 00000000            

UCB$M_CANCEL   = 00000008            UCB$V_ONLINE   = 00000004            VEC$V_MAPLOCK  = 0000000F            

UCB$M_DEADMO   = 00000400            UCB$V_POWER    = 00000005            VEC$V_MAPREG   = 00000000            

UCB$M_DELMBX   = 00000002            UCB$V_PRMMBX   = 00000000            VEC$V_PATHLOCK = 00000007            

UCB$M_DIAGBUF  = 00000002            UCB$V_SEGFLO   = 00000002            VEC$W_MAPREG     00000010            

UCB$M_DX_WRITE = 00000008            UCB$V_TIM      = 00000000            W              = 081F2F01            

UCB$M_ECC      = 00000001            UCB$V_TIMOUT   = 00000006            X              = 0000081F            

UCB$M_ERLOGIP  = 00000004            UCB$V_TT_NOTIF = 00000002            Z              = 00000000            

UCB$M_INT      = 00000002            UCB$V_TT_ODD   = 00000005            

UCB$M_INTTYPE  = 00000080            UCB$V_TT_PARTY = 00000004            

UCB$M_JOB      = 00000001            UCB$V_TT_SPEED = 00000000            

UCB$M_MOUNTING = 00000200            UCB$V_TT_TIMO  = 00000001            

UCB$M_NOCNVRT  = 00000004            UCB$V_VALID    = 0000000B            

TTYSTRSTP       - STARLET TERMINAL DRIVER START AND STOP I/O RO  22-AUG-1978 00:01:04   VAX-11 MACRO X0.3-11               Page  13

PROGRAM SECTION SYNOPSIS                                                                                                         (5)







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$            FFFFFFFF      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

WIONONPAGED      00000212      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

7370. BYTES LEFT IN FREE MEMORY POOL.

2364. BYTES OF RECLAIMED MEMORY.

OBJ$:TTYSTRSTP,LIS$:TTYSTRSTP/-SP=LIB$:LIB/ML,SRC$:TTYSTRSTP

11 MLB DIR RDS - 996 GETS TO DEFINE 23 MACROS. 84 INTER. FILE WRITES. 

