
								 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   1
								20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (1)

;   0001  0	MODULE VT200_KIND
;   0002  0		(
;   0003  0		 MAIN = VT200_KIND,
;   0004  0		 %TITLE'Is terminal VT200 or VT240'
;   0005  0		 IDENT = '1-0.0'
;   0006  0		) =
;   0007  0	
;   0008  1	 BEGIN
;   0009  1	  !++
;   0010  1	  ! FACILITY:		User utilities
;   0011  1	  !
;   0012  1	  ! ABSTRACT:
;   0013  1	  !
;   0014  1	  !	This program solicits the terminal for detailed information about
;   0015  1	  !	itself.  If the VAX says it is a VT200 series terminal, the secondary
;   0016  1	  !	Device Attributes (DA) request is made, and a determination made
;   0017  1	  !	based upon the report.  The result is set into the DCL symbol
;   0018  1	  !	VT_KIND, and will be the string "VT220", "VT240", or "UNKNOWN".
;   0019  1	  !
;   0020  1	  !	Note that the typeahead buffer is purged by this program.
;   0021  1	  !
;   0022  1	  ! ENVIRONMENT:	User mode, attached to terminal
;   0023  1	  !
;   0024  1	  ! AUTHOR:		Ken A L Coar
;   0025  1	  !
;   0026  1	  ! MODIFIED BY:
;   0027  1	  !
;   0028  1	  !	KLC0259	Ken Coar	20-JAN-1987 08:52
;   0029  1	  !		Original.  Developed because of DECUS DCS need.
;   0030  1	  !--
;   0031  1	
;   0032  1	  %SBTTL'Declarations'
;   0033  1	
;   0034  1	  !
;   0035  1	  ! SWITCHES:
;   0036  1	  !
;   0037  1	
;   0038  1	  SWITCHES
;   0039  1	   ADDRESSING_MODE (EXTERNAL = GENERAL, NONEXTERNAL = WORD_RELATIVE);
;   0040  1	
;   0041  1	  !
;   0042  1	  ! LINKAGES:
;   0043  1	  !
;   0044  1	  !	NONE.
;   0045  1	  !
;   0046  1	
;   0047  1	  !
;   0048  1	  ! INCLUDE FILES:
;   0049  1	  !
;   0050  1	
;   0051  1	  LIBRARY 'SYS$LIBRARY:LIB';		! LIB plus STARLET
;   0052  1	  LIBRARY 'KEN_LIBRARY:KENLIB';		! Local declarations
;   0053  1	
;   0054  1	  !
;   0055  1	  ! FORWARD ROUTINES:
;   0056  1	  !
;   0057  1	

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   2
1-0.0		Declarations					20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (1)

;   0058  1	  FORWARD ROUTINE
;   0059  1	   VT200_KIND			:	EXTERNAL_CALL;
;   0060  1	
;   0061  1	  !
;   0062  1	  ! EXTERNAL REFERENCES:
;   0063  1	  !
;   0064  1	
;   0065  1	  EXTERNAL ROUTINE
;   0066  1	   LIB$FREE_EF,
;   0067  1	   LIB$GET_EF,
;   0068  1	   LIB$SET_SYMBOL,
;   0069  1	   STR$COPY_DX;
;   0070  1	
;   0071  1	  !
;   0072  1	  ! MACROS:
;   0073  1	  !
;   0074  1	  !	NONE.
;   0075  1	  !
;   0076  1	
;   0077  1	  !
;   0078  1	  ! EQUATED SYMBOLS:
;   0079  1	  !
;   0080  1	
;   0081  1	  LITERAL
;   0082  1	   K_CSI			=	%X'9B',
;   0083  1	   K_ESC			=	%X'1B',
;   0084  1	   K_TTBUF_SIZE			=	128;
;   0085  1	
;   0086  1	  !
;   0087  1	  ! FIELDS:
;   0088  1	  !
;   0089  1	  !	NONE.
;   0090  1	  !
;   0091  1	
;   0092  1	  !
;   0093  1	  ! PSECTS:
;   0094  1	  !
;   0095  1	
;   0096  1	  RTL_PSECTS (FACILITY=DCS);
;   0097  1	
;   0098  1	  !
;   0099  1	  ! OWN STORAGE:
;   0100  1	  !
;   0101  1	
;   0102  1	  OWN
;   0103  1	   DSYMBOL		:	DESCR (CLASS=DYNAMIC),
;   0104  1	   DC			:	LONG,
; P 0105  1	   DVILST		:	_ITMLST(
; P 0106  1						DVI$_,
; P 0107  1						(4, DEVCLASS, DC, 0)
;   0108  1					       ),
;   0109  1	   TTBUF		:	VECTOR [K_TTBUF_SIZE, BYTE],
;   0110  1	   TTCHAN		:	WORD,
;   0111  1	   REQEF		:	LONG,
;   0112  1	   REQSTAT		:	_IOSB,
;   0113  1	   !
;   0114  1	   !	Note that the following must be done at run-time to be pretty because

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   3
1-0.0		Declarations					20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (1)

;   0115  1	   !	it needs bit %C'c' (63 hex) set, and it is very ugly to do that in
;   0116  1	   !	a BIND statement.
;   0117  1	   !
;   0118  1	   !	Also, since all the other bits need to be clear, we have to fill the
;   0119  1	   !	structure with zero bytes.  BLISS-32 no longer lets you have both
;   0120  1	   !	an INITIAL and a PRESET on the same structure, which is a shame.
;   0121  1	   !
;   0122  1	   R_TRM_BYTES		:	BBLOCK [16]
;   0123  1					INITIAL (REP 16 OF BYTE (0));
;   0124  1	
;   0125  1	  BIND
;   0126  1	   KD_SYMNAME		=	%ASCID'VT_KIND',
;   0127  1	   KD_VT220		=	%ASCID'VT220',
;   0128  1	   KD_VT240		=	%ASCID'VT240',
;   0129  1	   KD_UNKNOWN		=	%ASCID'UNKNOWN',
;   0130  1	   KD_INPUT_SOURCE	=	UPLIT LONG(
;   0131  1							%ASCID'SYS$INPUT',
;   0132  1							%ASCID'SYS$OUTPUT',
;   0133  1							%ASCID'SYS$COMMAND',
;   0134  1							%ASCID'TT',
;   0135  1							0
;   0136  1						  )
;   0137  1				:	VECTOR [, LONG],
;   0138  1	   !
;   0139  1	   !	Notice that we use an escape in the report request string.  This is
;   0140  1	   !	because even the terminals in 8-bit mode recognise that sequence,
;   0141  1	   !	whereas those in 7-bit mode might not understand the CSI prefix.
;   0142  1	   !
;   0143  1	   KD_PROMPT		=	%ASCID %STRING (%CHAR (K_ESC), '[>0c')
;   0144  1				:	BBLOCK,
;   0145  1	   KR_TERMINATORS	=	UPLIT(
;   0146  1						WORD (16),
;   0147  1						WORD (0),
;   0148  1						LONG (R_TRM_BYTES)
;   0149  1					     );

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   4
1-0.0		FIND_SOURCE - Locate the terminal LNM		20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (2)

;   0150  1	%SBTTL'FIND_SOURCE - Locate the terminal LNM'
;   0151  1	  ROUTINE FIND_SOURCE
;   0152  1		: INTERNAL_CALL =
;   0153  1	  !++
;   0154  1	  ! FUNCTIONAL DESCRIPTION:
;   0155  1	  !
;   0156  1	  !	This routine steps through the list of input sources defined by
;   0157  1	  !	KD_INPUT_SOURCE until it reaches a zero, or finds one that $GETDVIW
;   0158  1	  !	reports is defined by the VAX as a terminal.  It assigns a channel
;   0159  1	  !	to the terminal, if found; otherwise, it returns an error.
;   0160  1	  !
;   0161  1	  ! CALLING SEQUENCE:
;   0162  1	  !
;   0163  1	  !	ret-status.wlc.v = FIND_SOURCE ();
;   0164  1	  !
;   0165  1	  ! FORMAL PARAMETERS:
;   0166  1	  !
;   0167  1	  !	NONE.
;   0168  1	  !
;   0169  1	  ! IMPLICIT INPUTS:
;   0170  1	  !
;   0171  1	  !	KD_INPUT_SOURCE		list of descriptor addresses, terminated by
;   0172  1	  !				a longword of zero.  The descriptors contain
;   0173  1	  !				device or logical names to be checked for
;   0174  1	  !				terminal-ness.
;   0175  1	  !
;   0176  1	  !	REQSTAT			IOSB for $GETDVIW.
;   0177  1	  !
;   0178  1	  !	REQEF			longword containing EF for $GETDVIW.
;   0179  1	  !
;   0180  1	  ! IMPLICIT OUTPUTS:
;   0181  1	  !
;   0182  1	  !	TTCHAN			word to receive the channel number assigned
;   0183  1	  !				to the terminal, if found.
;   0184  1	  !
;   0185  1	  ! COMPLETION STATUS:
;   0186  1	  !
;   0187  1	  !	SS$_NORMAL		successful completion, channel assigned
;   0188  1	  !	SHR$_NOTTERM		warning; none of the specified sources was
;   0189  1	  !				known as a terminal by the VAX.
;   0190  1	  !	SS$_xxx			status returned by $GETDVIW or $ASSIGN.
;   0191  1	  !
;   0192  1	  ! SIDE EFFECTS:
;   0193  1	  !
;   0194  1	  !	Channel assigned if terminal is found.
;   0195  1	  !
;   0196  1	  !--
;   0197  2	   BEGIN
;   0198  2	    LOCAL
;   0199  2	     IDX		:	LONG INITIAL (0),
;   0200  2	     SOURCE		:	LONG,
;   0201  2	     STATUS		:	LONG;
;   0202  2	    WHILE (SOURCE = .KD_INPUT_SOURCE [.IDX]) NEQ 0 DO
;   0203  3	     BEGIN
; P 0204  3	      STATUS = $GETDVIW(
; P 0205  3				DEVNAM=.SOURCE,
; P 0206  3				EFN=.REQEF,

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   5
1-0.0		FIND_SOURCE - Locate the terminal LNM		20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (2)

; P 0207  3				IOSB=REQSTAT,
; P 0208  3				ITMLST=DVILST
;   0209  3			       );
;   0210  3	      IF .STATUS THEN STATUS = .REQSTAT [IOSB_W_STATUS];
;   0211  3	      %CHECK (.STATUS);
;   0212  3	      IF .DC EQL DC$_TERM THEN EXITLOOP;
;   0213  3	      IDX = .IDX + 1;
;   0214  2	     END;
;   0215  2	    IF .SOURCE EQL 0 THEN RETURN SHR$_NOTTERM;
;   0216  2	    %CHECK ($ASSIGN (CHAN=TTCHAN, DEVNAM=.SOURCE));
;   0217  2	    RETURN SS$_NORMAL;
;   0218  1	   END;

; Routine Size:  104 bytes,    Routine Base:  _DCS_CODE + 00B4


VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   6
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)

;   0219  1	%SBTTL'VT200_KIND - Main program'
;   0220  1	  GLOBAL ROUTINE VT200_KIND
;   0221  1		: EXTERNAL_CALL	=
;   0222  1	  !++
;   0223  1	  ! FUNCTIONAL DESCRIPTION:
;   0224  1	  !
;   0225  1	  !	This is the main program.  It calls FIND_SOURCE to locate the terminal
;   0226  1	  !	(if there is one), and then sends a secondary DA request to it.  The
;   0227  1	  !	response, if there is one, is parsed, and the KD_SYMNAME symbol set
;   0228  1	  !	accordingly.
;   0229  1	  !
;   0230  1	  !	Note that the typeahead buffer is purged by this program.
;   0231  1	  !
;   0232  1	  ! CALLING SEQUENCE:
;   0233  1	  !
;   0234  1	  !	Called by DCL as main entry point.
;   0235  1	  !
;   0236  1	  ! FORMAL PARAMETERS:
;   0237  1	  !
;   0238  1	  !	NONE.
;   0239  1	  !
;   0240  1	  ! IMPLICIT INPUTS:
;   0241  1	  !
;   0242  1	  !	NONE.
;   0243  1	  !
;   0244  1	  ! IMPLICIT OUTPUTS:
;   0245  1	  !
;   0246  1	  !	[KD_SYMNAME]		Local DCL symbol whose name is specified by
;   0247  1	  !				this identifier is defined as "VT220", "VT240",
;   0248  1	  !				or "UNKNOWN", if a terminal can be found..
;   0249  1	  !
;   0250  1	  ! COMPLETION STATUS:
;   0251  1	  !
;   0252  1	  !	SS$_NORMAL		successful completion
;   0253  1	  !	SHR$_NOTTERM		warning; no terminal found with this process
;   0254  1	  !	other			error from LIB$GET_EF, LIB$FREE_EF, or
;   0255  1	  !				FIND_SOURCE (q.v.).
;   0256  1	  !
;   0257  1	  ! SIDE EFFECTS:
;   0258  1	  !
;   0259  1	  !	If no errors are encountered, a local DCL symbol will be defined.
;   0260  1	  !
;   0261  1	  !--
;   0262  2	   BEGIN
;   0263  2	    LABEL
;   0264  2	     PARSE_LOAD;
;   0265  2	    LOCAL
;   0266  2	     TYPE_OFFSET	:	BYTE,
;   0267  2	     SYMVAL		:	LONG,
;   0268  2	     STATUS		:	LONG;
;   0269  2	    %CHECK (LIB$GET_EF (REQEF));
;   0270  2	    %CHECK (FIND_SOURCE ());
;   0271  2	    !
;   0272  2	    !	Now set up the terminator mask by setting the %C'c' bit (63 hex).
;   0273  2	    !	This needs to be done at run-time because of megagrossity in
;   0274  2	    !	readability if done at compile-time.
;   0275  2	    !

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   7
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)

;   0276  2	    R_TRM_BYTES [%C'c' / 8, %C'c' MOD 8, 1, 0] = 1;
;   0277  2	    !
;   0278  2	    !	If we've gotten this far, we can interrogate the terminal.  Note that
;   0279  2	    !	anything the user has typed up to this point will be discarded from the
;   0280  2	    !	typeahead buffer.
;   0281  2	    !
; P 0282  2	    STATUS = $QIOW(
; P 0283  2				EFN=.REQEF,
; P 0284  2				CHAN=.TTCHAN,
; P 0285  2				IOSB=REQSTAT,
; P 0286  2				FUNC=(
; P 0287  2					IO$_TTYREADPALL OR
; P 0288  2					IO$M_PURGE OR
; P 0289  2					IO$M_NOECHO OR
; P 0290  2					IO$M_TIMED
; P 0291  2				      ),
; P 0292  2				P1=TTBUF,
; P 0293  2				P2=K_TTBUF_SIZE,
; P 0294  2				P3=3,
; P 0295  2				P4=KR_TERMINATORS,
; P 0296  2				P5=.KD_PROMPT [DSC$A_POINTER],
; P 0297  2				P6=.KD_PROMPT [DSC$W_LENGTH]
;   0298  2			  );
;   0299  2	    !
;   0300  2	    !	The response to the above will be one of
;   0301  2	    !
;   0302  2	    !		A timeout (terminal too slow, or didn't understand query)
;   0303  2	    !		CSI > n ; ... c		8-bit terminal response
;   0304  2	    !		ESC [ > n ; ... c	7-bit terminal response
;   0305  2	    !
;   0306  2	    !	In the last two above, the spaces between characters are for clarity;
;   0307  2	    !	they are not actually part of the response.  The `n' is either `1,'
;   0308  2	    !	indicating a VT220, or `2,' indicating a VT240.
;   0309  2	    !
;   0310  2	    !	If the response does not comply to either of the above formats, we
;   0311  2	    !	don't know what it is.
;   0312  2	    !
;   0313  2	    IF .STATUS THEN STATUS = .REQSTAT [IOSB_W_STATUS];
;   0314  2	    SYMVAL = KD_UNKNOWN;
;   0315  2	    PARSE_LOAD:
;   0316  3	     BEGIN
;   0317  3	      IF .STATUS EQL SS$_TIMEOUT THEN LEAVE PARSE_LOAD;
;   0318  3	      SELECTONE .TTBUF [0] OF
;   0319  3	       SET
;   0320  3		!
;   0321  3		!	If first character is a CSI, set the offset to the position
;   0322  3		!	of the identifying character.
;   0323  3		!
;   0324  3		[K_CSI]		:	TYPE_OFFSET = 2;
;   0325  3		!
;   0326  3		!	If it's an escape, increase the offset because the prefix
;   0327  3		!	is two characters (ESC [) rather than just one (CSI).
;   0328  3		!
;   0329  3		[K_ESC]		:	TYPE_OFFSET = 3;
;   0330  3		!
;   0331  3		!	If the prefix isn't one of these, the user probably responded
;   0332  3		!	with text on a non-VT200 series terminal.

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   8
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)

;   0333  3		!
;   0334  3		[OTHERWISE]	:	LEAVE PARSE_LOAD;
;   0335  3	       TES;
;   0336  3	      SELECTONE .TTBUF [.TYPE_OFFSET] OF
;   0337  3	       SET
;   0338  3		[%C'1']		:	SYMVAL = KD_VT220;
;   0339  3		[%C'2']		:	SYMVAL = KD_VT240;
;   0340  3		!
;   0341  3		!	If it wasn't one of the above, we don't know what the response
;   0342  3		!	is, so ignore it.
;   0343  3		!
;   0344  3		[OTHERWISE]	:	LEAVE PARSE_LOAD;
;   0345  3	       TES;
;   0346  2	     END;	%( BLOCK PARSE_LOAD )%
;   0347  2	    !
;   0348  2	    !	Set the symbol according to the above analysis.
;   0349  2	    !
;   0350  2	    %CHECK (LIB$SET_SYMBOL (KD_SYMNAME, .SYMVAL));
;   0351  2	    !
;   0352  2	    !	We don't need the channel or event flag anymore, so let's get rid of
;   0353  2	    !	them.  Note that we do this AFTER the symbol definition, so an error
;   0354  2	    !	won't prevent the symbol from being available.
;   0355  2	    !
;   0356  2	    %CHECK (LIB$FREE_EF (REQEF));
;   0357  2	    %CHECK ($DASSGN (CHAN=.TTCHAN));
;   0358  2	    RETURN SS$_NORMAL;
;   0359  1	   END;

; Routine Size:  200 bytes,    Routine Base:  _DCS_CODE + 011C

;   0360  1	
;   0361  1	 END
;   0362  0	ELUDOM

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page   9
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)

Symbol               Type  Defined  Referenced ...
------------------ -------- ----- ----------------
$ASSIGN		   KeyWMacr Lib01   216  
$DASSGN		   KeyWMacr Lib01   357  
$GETDVIW	   KeyWMacr Lib01   204  
$QIOW		   KeyWMacr Lib01   282  
%CHECK		   Macro    Lib02   211     216     269     270     350     356     357  
BBLOCK		   Structur Lib02   112     122     144  
DC		   Own        104   108a    212. 
DC$_TERM	   Literal  Lib01   212  
DESCR		   KeyWMacr Lib02   103  
DSC$A_POINTER	   Macro    Lib01   103     296  
DSC$B_CLASS	   Macro    Lib01   103  
DSC$B_DTYPE	   Macro    Lib01   103  
DSC$K_CLASS_A	   Unbound          103  
DSC$K_CLASS_D	   Literal  Lib01   103  
DSC$K_CLASS_S	   Unbound          103  
DSC$K_CLASS_Z	   Unbound          103  
DSC$K_DTYPE_T	   Unbound          103  
DSC$K_DTYPE_V	   Unbound          103  
DSC$K_DTYPE_Z	   Literal  Lib01   103  
DSC$W_LENGTH	   Macro    Lib01   103     297  
DSYMBOL		   Own        103   103= 
DVI$_DEVCLASS	   Literal  Lib01   108  
DVILST		   Own        105   108=    209a 
EXTERNAL_CALL	   Macro    Lib02    59     221  
FIND_SOURCE	   Routine    152   270c 
IDX		   Local      199   199=    202.    213=    213. 
INTERNAL_CALL	   Macro    Lib02   152  
IO$M_NOECHO	   Literal  Lib01   298  
IO$M_PURGE	   Literal  Lib01   298  
IO$M_TIMED	   Literal  Lib01   298  
IO$_TTYREADPALL    Literal  Lib01   298  
IOSB_K_LENGTH	   Literal  Lib02   112  
IOSB_W_STATUS	   Macro    Lib02   210     313  
KD_INPUT_SOURCE    Bind       130   202. 
KD_PROMPT	   Bind       143   298. 
KD_SYMNAME	   Bind       126   350a 
KD_UNKNOWN	   Bind       129   314a 
KD_VT220	   Bind       127   338a 
KD_VT240	   Bind       128   339a 
KR_TERMINATORS	   Bind       145   298a 
K_CSI		   Literal     82   324  
K_ESC		   Literal     83   143     329  
K_TTBUF_SIZE	   Literal     84   109     298  
LIB$FREE_EF	   ExtRout     66   356c 
LIB$GET_EF	   ExtRout     67   269c 
LIB$SET_SYMBOL	   ExtRout     68   350c 
PARSE_LOAD	   Label      264   315     317     334     344  
REQEF		   Own        111   209.    269a    298.    356a 
REQSTAT		   Own        112   209a    210.    298a    313. 
RTL_PSECTS	   KeyWMacr Lib02    96  
R_TRM_BYTES	   Own        122   123=    148a    276= 
SDL$STARLET_CONCAT Macro    Lib01   209     216     298     357  
SDL$STARLET_REQ    Macro    Lib01   209     216     298     357  
SHR$_NOTTERM	   Literal  Lib01   215  
SOURCE		   Local      200   202=    209.    215.    216. 

VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page  10
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)

Symbol               Type  Defined  Referenced ...
------------------ -------- ----- ----------------
SS$_NORMAL	   Literal  Lib01   217     358  
SS$_TIMEOUT	   Literal  Lib01   317  
STATUS		   Unbound          211     216     269     270     350     356     357  
		   Local      201   204=    210.    210=    211. 
		   Local      268   282=    313.    313=    317. 
STR$COPY_DX	   ExtRout     69
SYMVAL		   Local      267   314=    338=    339=    350. 
SYS$ASSIGN	   ExtRout    216   216c 
SYS$DASSGN	   ExtRout    357   357c 
SYS$GETDVIW	   ExtRout    209   209c 
SYS$QIOW	   ExtRout    298   298c 
TTBUF		   Own        109   298a    318.    336. 
TTCHAN		   Own        110   216a    298.    357. 
TYPE_OFFSET	   Local      266   324=    329=    336. 
VT200_KIND	   GlobRout   221    59f 
_CODE		   KeyWMacr Lib02    96  
_DATA		   KeyWMacr Lib02    96  
_IOSB		   Macro    Lib02   112  
_ITMLST		   Macro    Lib02   105  
__ITM_INIT	   Macro    Lib02   108  
__ITM_ITEM	   Macro    Lib02   108  
___STATUS	   Local      211   211=    211. 
		   Local      216   216=    216. 
		   Local      269   269=    269. 
		   Local      270   270=    270. 
		   Local      350   350=    350. 
		   Local      356   356=    356. 
		   Local      357   357=    357. 



		CROSS REFERENCE MAP

Line #      Event	 File ...
-----  ---------------  ---------
    1  Source (start)	KEN_01:[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10
    2  Module VT200_KIND
   51  Library #1	SYS$COMMON:[SYSLIB]LIB.L32;1
   52  Library #2	KEN_01:[COAR.VMS.SYSLIB]KENLIB.L32;101
  362  Eludom VT200_KIND


	KEY TO REFERENCE TYPE FLAGS

	    .	Fetch
	    =	Store
	    c	Routine call
	    a	Address use
	    @	Indirect use
	    e	External, external routine, or external literal declaration
	    f	Forward or forward routine declaration
	    h	Condition handler enabling
	    m	Map declaration
	    u	Undeclare declaration


VT200_KIND	Is terminal VT200 or VT240			 5-Mar-1987 18:36:42	VAX-11 Bliss-32 V4.1-746	    Page  11
1-0.0		VT200_KIND - Main program			20-Jan-1987 11:39:17	[COAR.DECUS.SIGTAPE]VT200_KIND.B32;10	 (3)


;				Library Statistics
;
;					     -------- Symbols --------	    Pages	Processing
;	File				     Total    Loaded   Percent      Mapped	Time
;
;  SYS$COMMON:[SYSLIB]LIB.L32;1		     19280        21         0      1036          00:01.6
;  KEN_01:[COAR.VMS.SYSLIB]KENLIB.L32;101
;					      1010        14         1        78          00:00.9







;					COMMAND QUALIFIERS

;	BLISS/DEBUG/TRACEBACK/CROSS_REFERENCE/TERMINAL=STATISTICS/LIST=LIS_/OBJECT=OBJ_/MACHINE_CODE_LIST=NOOBJECT SIGTAPED:VT200
;	_KIND


;			COMPILER INTERNAL TIMING

;	Phase	     Faults	  Cpu-time	Elapsed-time
;	LEXSYN	        289	   00:05.6	   00:07.4
;	FLOWAN	          4	   00:00.3	   00:00.4
;	DELAY	          5	   00:00.3	   00:00.3
;	TNBIND	         14	   00:00.2	   00:00.2
;	CODE	         18	   00:00.3	   00:00.4
;	FINAL	         40	   00:01.1	   00:01.3
;	Total	        370	   00:07.8	   00:10.1

; Size:		304 code + 376 data bytes
; Run Time:	   00:08.6
; Elapsed Time:	   00:11.0
; Lines/CPU Min:    2525
; Lexemes/CPU-Min: 26539
; Memory Used:	130 pages
; Compilation Complete
