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