Google
 

Trailing-Edge - PDP-10 Archives - steco_19840320_1er_E35 - 10,5676/teco/source/tectbl.mac
There are 5 other files named tectbl.mac in the archive. Click here to see a list.
	SUBTTL	Introduction

; Copyright (c) 1980, 1981 Stevens Institute of Technology, Hoboken, New Jersey
; 07030.

; This software may be used and copied provided that this copyright notice
;is included, and provided that copies of all modifications are sent to:
;
;	TECO Project
;	Computer Center
;	Stevens Institute of Technology
;	Castle Point Station
;	Hoboken, New Jersey    07030
;
;
; The information in this software is subject to change without notice
; and should not be construed as a commitment by Stevens Institute of
; Technology.

  ; Search needed universals

	SEARCH	TECUNV		; TECO universal file

  ; Generate the prologue


	TECVER==200		; Major version number
	TECMIN==1		; Minor version number
	TECEDT==1163		; Edit level
	TECWHO==0		; Last editor


	PROLOGUE(TBL,<TECO Command and Video tables>)	; Generate the TITLE and other stuff

	$CODE			; Put into code PSECT
	SUBTTL	Table of Contents

;+
;.pag.lit

;		Table of Contents for TECTBL - Command and video tables
;
;
;			   Section			      Page
;   1. Introduction . . . . . . . . . . . . . . . . . . . . .    1
;   2. Revision History . . . . . . . . . . . . . . . . . . .    3
;   3. Character dispatch table
;        3.1.   Main. . . . . . . . . . . . . . . . . . . . .    4
;        3.2.   E Commands. . . . . . . . . . . . . . . . . .    6
;        3.3.   F Commands. . . . . . . . . . . . . . . . . .    7
;   4. E Commands
;        4.1.   EV processing
;             4.1.1.     Terminal tables. . . . . . . . . . .    8
;   5. End of TECTBL. . . . . . . . . . . . . . . . . . . . .   10

;.end lit.pag
;-
	SUBTTL	Revision History
COMMENT	|

1000	Start of this version

1001	By: Nick Bush		On: 15-July-1980
	Fix table entry to allow EH commands without an argument.
	Avoid %TECSUP messages when doing an EB/INPLACE.
	Modules: TECTBL,TECFIL

1025	By: Nick Bush		On: 20-August-1980
	Finish support for DEC VT-100 terminals. There are two flavors.
	EVVT100$ uses ANSI mode sequences for 80 character wide VT-100.
	EVVT132$ uses ANSI mode sequences for 132 character wide VT-100.
	Modules: TECTBL,TECDUM,TECDEC

1046	By: Nick Bush		On: 16-October-1980
	Add support for Hazeltine 1420 terminal.
	Modules: TECHZL,TECTBL

1061	By: Nick Bush		On: 18-December-1980
	1) Finish and debug Tektronix 4025 support.
	2) Add FW command.
	3) Add capability of logging screen update info in log file.
	Modules: TECUNV,TECTEK,TECSRH,TECTBL,TECECM,TECVID,TECERR

1062	By: Nick Bush		On: 18-December-1980
	Add n^D command to go down one screen line staying in the same column.
	Also add ^D as an immediate command to do a 1^D and ^U to do a -1^D.
	Modules: TECPRS,TECTBL,TECMVM

1124	By: Robert McQueen		On: 31-August-1981
	Incorporate the VT61 support (written by Nick Tamburri from DEC) and the
	corrected VT05 support (by Vern Brownell).
	Modules: TECTBL,TECDEC

Start of Version 200A(1126)

1133	By: Nick Bush		On: 11-December-1981
	Remove delete/insert character flag from entry for VT-61 since it is nearly
	impossible to do it right.
	Add control-C intercept flag for Tektronics 4025 to reset the command sequence
	to the expected thing.
	Modules: TECTBL

1151	By: Nick Bush		On: 24-March-1982
	Add Q-register 'EXIT-BUFFER' to be executed whenever TECO is exiting.
	Also remove the string to set VT-100's to smooth scroll on exit.  This
	can now be done by putting the correct macro in 'EXIT-BUFFER'.
	Modules: TECUNV,TECECM,TECPRS,TECTBL,TECDEC

1161	By: Nick Bush		On: 13-May-1982
	Add new code to support peek-ahead for immediate (FC table) commands and
	for a new form of the control-T command.
	Add the new form of the control-T command to allow macros to peek at
	input, and to make use of timed input.  Also add the Q-register
	TERMINAL-INPUT-BUFFER to hold the text being peeked at, with the side
	effect of allowing macros to store text into the Q-register, and have
	it be treated as input typed on the terminal.
	Also change the space command to just pass through the arguments unless
	EO is set to 4 or less.
	Modules: TECUNV,TECVID,TECUPD,TECMVM,TECPRS,TECTRM,TECCMD,TECTBL

1163	By: Nick Bush		On: 19-May-1982
	Fix ill mem ref when terminal length is set so that command buffer is
	not displayed.
	
	Also add VK100 (GIGI) support from Nick Tamburri at DEC.
	Modules: TECUPD,TECTBL,TECDEC
|
	SUBTTL	Character dispatch table -- Main

; The following is the command dispatch table.  This table also includes
; various flags to denote the type of character that is being processed.
; For a complete description of the flags in this table see the character
; flags section under flags.

DEFINE	TSTQRG(VALUE)<
	IFDEF .QR'VALUE,<
		$$F==$$F!CF.QRG+<INSVL.(.QR'VALUE,CD.QRI)>
	>
>


DEFINE	PARITY	(CHARACTER,SHIFT)
<IFE <SHIFT><1>+IFN <SHIFT><<<CHARACTER>&1>^!<PARITY(<CHARACTER_-1>,<SHIFT-1>)>>>

DEFINE	COMMAND(XXX),<

DEFINE	CHRENT(ARG1,ARG2,POSTARG,FLAGS,CHR,DSP),<
	$$F==	0
	.XCREF	$$F
IFNB <FLAGS>,<IRP <FLAGS>,<$$F==$$F+CF.'FLAGS>>
	$$$VAL==CHR
	IFN CF.LC&$$F,<$$$VAL==$$$VAL-40>
	TSTQRG(\$$$VAL)
	TABENT	CHR,$$F!<INSVL.(<PARITY(\<CHR>,7)>,CF.PAR)>!<INSVL.(.CP'POSTARG,CD.PST)>!<INSVL.($CA'ARG1,CD.AG1)>!<INSVL.($CA'ARG2,CD.AG2)>
>; End of CHRENT macro definition
DEFINE	CHRLCE(ARG1,ARG2,POSTARG,FLAGS,CHR,DSP),<
	$$F==	0
	.XCREF	$$F
IFNB <FLAGS>,<IRP <FLAGS>,<$$F==$$F+CF.'FLAGS>>
	$$$VAL==CHR
	TSTQRG(\$$$VAL)
	TABENT	CHR,$$F!<INSVL.(<PARITY(\<CHR>,7)>,CF.PAR)>!<INSVL.(.CP'POSTARG,CD.PST)>!<INSVL.($CA'ARG1,CD.AG1)>!<INSVL.($CA'ARG2,CD.AG2)>
	TABENT	<CHR+40>,$$F!<INSVL.(<PARITY(\<CHR+40>,7)>,CF.PAR)>!CF.LC!<INSVL.(.CP'POSTARG,CD.PST)>!<INSVL.($CA'ARG1,CD.AG1)>!<INSVL.($CA'ARG2,CD.AG2)>
>; End of CHRLCE macro definition

	TABDEF	XXX'FLG				; Define the table
	CHRS					; Generate the table
	TABEND					; End of the table

DEFINE	CHRENT(ARG1,ARG2,POST,A,CHR,COMMAND),<
	$$F==0
	.XCREF $$F
	IRP <A>,<IFIDN <A>,<ECA>,<$$F==-1>>
	IFE $$F,<
	    TABENT CHR,<INSVL. (COMMAND,CD.CMD)>
	> ; End of IFE $$F
	IFN $$F,<
	    TABENT CHR,<INSVL. (<[XWD COMMAND'FLG,COMMAND'TBL]>,CD.CMD)>
	> ; End of IFN $$F
>
DEFINE	CHRLCE(ARG1,ARG2,POST,A,CHR,COMMAND),<
	$$F==0
	.XCREF $$F
	IRP <A>,<IFIDN <A>,<ECA>,<$$F==-1>>
	IFE $$F,<
	    TABENT CHR,<INSVL. (COMMAND,CD.CMD)>
	    TABENT <CHR+40>,<INSVL. (COMMAND,CD.CMD)>
	> ; End of IFE $$F
	IFN $$F,<
	    TABENT CHR,<INSVL. (<[XWD COMMAND'FLG,COMMAND'TBL]>,CD.CMD)>
	    TABENT <CHR+40>,<INSVL. (<[XWD COMMAND'FLG,COMMAND'TBL]>,CD.CMD)>
	> ; End of IFN $$F
>
	TABDEF	XXX,,ERRILC
	CHRS
	TABEND
>; End of COMMAND macro definition
DEFINE	CHRS,<
XLIST						;; Remove this octal
CHRENT	(NON,NON,NON,,.CHNUL,ERRILC)		;; Null
CHRENT	(NON,NON,DEL,,.CHCNA,CMNT)		;; Control A
CHRENT	(NON,NON,NON,<1ST>,.CHCNB,ERRILC)	;; Control B
CHRENT	(NON,NON,NON,,.CHCNC,STOP)		;; Control C
CHRENT	(DF1,NON,NON,<1ST>,.CHCND,CDCMD)	;; Control D
CHRENT	(NON,NON,NON,,.CHCNE,FFEED)		;; Control E
CHRENT	(OPN,NON,NON,,.CHCNF,LAT)		;; Control F
CHRENT	(OPN,OPN,NON,,.CHBEL,BELDMP)		;; Control G (Bell)
CHRENT	(NON,NON,NON,1ST,.CHCNH,GTIME)		;; Control H
CHRENT	(NON,NON,INS,,.CHTAB,TAB)		;; Control I (Tab)
CHRENT	(OSN,OSN,NON,1ST,.CHLFD,PASRET)		;; Control J (Line Feed)
CHRENT	(NON,NON,NON,,.CHVTB,ERRILC)		;; Control K (Vertical Tab)
CHRENT	(NON,NON,NON,1ST,.CHFFD,FFDCMD)		;; Control L (Form Feed)
CHRENT	(OSN,OSN,NON,,.CHCRT,PASRET)		;; Control M (Carriage Return)
CHRENT	(NON,NON,NON,,.CHCNN,EOF)		;; Control N
CHRENT	(NON,NON,NON,,.CHCNO,OCTIN)		;; Control O
CHRENT	(OPN,NON,NON,,.CHCNP,QPAGE)		;; Control P
CHRENT	(NON,NON,NON,,.CHCNQ,ERRILC)		;; Control Q
CHRENT	(NON,NON,NON,,.CHCNR,ERRILC)		;; Control R
CHRENT	(NON,NON,NON,,.CHCNS,ERRILC)		;; Control S
CHRENT	(OPN,OPN,NON,,.CHCNT,SPTYI)		;; Control T
CHRENT	(MBN,NON,NON,1ST,.CHCNU,IUSET)		;; Control U
CHRENT	(OPN,NON,NON,1ST,.CHCNV,LOWCAS)		;; Control V
CHRENT	(OPN,NON,NON,1ST,.CHCNW,STDCAS)		;; Control W
CHRENT	(OPN,NON,NON,,.CHCNX,SETMCH)		;; Control X
CHRENT	(OPN,NON,NON,,.CHCNY,QYANK)		;; Control Y
CHRENT	(NON,NON,NON,,.CHCNZ,DECDMP)		;; Control Z

CHRENT	(OSN,OSN,NON,EOL,.CHESC,ALTMOD)		;; Control [
CHRENT	(NON,NON,NON,,.CHCBS,ERRILC)		;; Control \
CHRENT	(NON,NON,NON,,.CHCRB,ERRILC)		;; Control ]
CHRENT	(NON,NON,CHR,,.CHCCF,CNTRUP)		;; Control ^
CHRENT	(NON,NON,NON,,.CHCUN,ERRILC)		;; Control _

CHRENT	(ARG,ARG,NON,<1ST>,.CHSPC,SPCCMD)	;; Space
CHRENT	(OPN,OPN,DEL,,<"!">,EXCLAM)		;; "!"
CHRENT	(OSN,OSN,NON,<ECA>,"""",QCM)		;; Double quote
CHRENT	(ARG,ARG,NON,,"#",COR)			;; "#"
CHRENT	(NON,NON,NON,SYM,"$",ERRILC)		;; "$"
CHRENT	(OPN,NON,QRG,SYM,"%",PCNT)		;; "%"
CHRENT	(ARG,ARG,NON,,"&",CAND)			;; "&" (And)
CHRENT	(NON,NON,NON,,"'",SQUOTE)		;; "'" (Single Quote)
CHRENT	(NON,NON,NON,,.CHLPR,OPENP)		;; "("
CHRENT	(MBN,NON,NON,,.CHRPR,CLOSEP)		;; ")"
CHRENT	(ARG,ARG,NON,<1ST>,"*",TIMES)		;; "*"
CHRENT	(ARG,ARG,NON,,"+",PLUS)			;; "+"
CHRENT	(MNS,NON,NON,<CLN>,<",">,COMMA)		;; ","
CHRENT	(ARG,ARG,NON,,"-",MINUS)		;; "-"
CHRENT	(NON,NON,NON,,".",PNT)			;; "."
CHRENT	(ARG,ARG,NON,1ST,"/",SLASH)		;; "/"
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"0",CDNUM)	;; Numeric 0
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"1",CDNUM)	;; Numeric 1
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"2",CDNUM)	;; Numeric 2
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"3",CDNUM)	;; Numeric 3
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"4",CDNUM)	;; Numeric 4
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"5",CDNUM)	;; Numeric 5
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"6",CDNUM)	;; Numeric 6
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"7",CDNUM)	;; Numeric 7
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"8",CDNUM)	;; Numeric 8
CHRENT	(ARG,ARG,NON,<SYM,NUM>,"9",CDNUM)	;; Numeric 9

CHRENT	(NON,NON,NON,<CLN>,":",COLON)		;; ":"
CHRENT	(OPN,NON,NON,<1ST>,<";">,SEMICL)	;; ";"
CHRENT	(OPN,NON,NON,,.CHLAB,LSSTH)		;; Left angle bracket
CHRENT	(MNS,OPN,NON,,"=",PRNT)			;; "="
CHRENT	(OSN,OSN,NON,,.CHRAB,GRTH)		;; Right angle bracket
CHRENT	(NON,NON,NON,1ST,"?",QUESTN)		;; "?"
CHRENT	(NON,NON,AT,AT,"@",ATSIGN)		;; "@"

CHRLCE	(OPN,OPN,NON,<SYM,ALP>,"A",ACMD)	;; Upper Case A
CHRLCE	(NON,NON,NON,<SYM,ALP>,"B",RETZER)	;; Upper Case B
CHRLCE	(DF1,NON,NON,<SYM,ALP>,"C",CHARAC)	;; Upper Case C
CHRLCE	(DF1,NON,NON,<SYM,ALP>,"D",DELETE)	;; Upper Case D
CHRLCE	(OSN,OSN,NON,<SYM,ALP,ECA>,"E",ECM)	;; Upper Case E
CHRLCE	(OSN,OSN,NON,<SYM,ALP,ECA>,"F",FCM)	;; Upper Case F
CHRLCE	(NON,NON,QRG,<SYM,ALP>,"G",QGET)	;; Upper Case G
CHRLCE	(NON,NON,NON,<SYM,ALP>,"H",HOLE)	;; Upper Case H
CHRLCE	(OSN,NON,INS,<SYM,ALP>,"I",INSERT)	;; Upper Case I
CHRLCE	(OPN,NON,NON,<SYM,ALP>,"J",JMP)		;; Upper Case J
CHRLCE	(DF1,OPN,NON,<SYM,ALP>,"K",KILL)	;; Upper Case K
CHRLCE	(DF1,NON,NON,<SYM,ALP>,"L",LINE)	;; Upper Case L
CHRLCE	(OSN,OSN,QRG,<SYM,ALP>,"M",MAC)		;; Upper Case M
CHRLCE	(DF1,NON,SRH,<SYM,ALP>,"N",N$CMD)	;; Upper Case N
CHRLCE	(NON,NON,ALT,<SYM,ALP>,"O",OG)		;; Upper Case O
CHRLCE	(OPN,OPN,PW,<SYM,ALP>,"P",PUNCHA)	;; Upper Case P
CHRLCE	(NON,NON,QRG,<SYM,ALP>,"Q",QREG)	;; Upper Case Q
CHRLCE	(DF1,NON,NON,<SYM,ALP>,"R",REVERS)	;; Upper Case R
CHRLCE	(DF1,OPN,SRH,<SYM,ALP>,"S",SERCH)	;; Upper Case S
CHRLCE	(DF1,OPN,NON,<SYM,ALP>,"T",TYPE)	;; Upper Case T
CHRLCE	(MNS,OSN,QRG,<SYM,ALP>,"U",USE)		;; Upper Case U
CHRLCE	(DF1,OPN,NON,<SYM,ALP>,"V",VCMD)	;; Upper Case V
CHRLCE	(OSN,OSN,QRG,<SYM,ALP>,"W",MJRST)	;; Upper Case W
CHRLCE	(DF1,OPN,QRG,<SYM,ALP>,"X",XCMD)	;; Upper Case X
CHRLCE	(NON,NON,NON,<SYM,ALP>,"Y",YANKER)	;; Upper Case Y
CHRLCE	(NON,NON,NON,<SYM,ALP>,"Z",END1)	;; Upper Case Z
CHRENT	(OSN,OSN,QRG,,"[",OPENB)		;; "["
CHRENT	(OPN,NON,NON,,"\",BAKSL)		;; "\"
CHRENT	(NON,NON,QRG,,"]",CLOSEB)		;; "]"
CHRENT	(ARG,ARG,CHR,,"^",UAR)			;; "^"
CHRENT	(DF1,NON,SRH,,"_",LARR)			;; "_"
CHRENT	(NON,NON,AT,AT,"`",ATSIGN)		;; Lower Case "`"
CHRENT	(ARG,ARG,SAG,,"{",STRARG)		;; "{"
CHRENT	(NON,NON,NON,,"|",ERRILC)		;; "|"
CHRENT	(NON,NON,NON,,"}",ERRILC)		;; "}"
CHRENT	(NON,NON,NON,,"~",ERRILC)		;; "~"
CHRENT	(NON,NON,NON,,.CHDEL,ERRILC)		;; Rubout
LIST						;; Turn the listing back on
>;; End of CHRS macro definition

	MAX==.CHDEL				; Max character

	COMMAND	CHR				; Generate the table

ERRILC:	ERROR	E.ILC			; Illegal character
	SUBTTL	Character dispatch table -- E Commands

; The following is the disptach table for the E commands

DEFINE	CHRS,<
	XLIST			;; Remove from the listing
CHRENT	(NON,NON,QRG,<RST>,.CHLAB,E$LANG) ;; E Left angle bracket
CHRENT	(NON,NON,QRG,<RST>,.CHRAB,E$RANG) ;; E Right angle bracket command
CHRENT	(MBN,MBN,QRG,<RST>,"$",SETWIN)	;; E$ Command
CHRENT	(NON,NON,QRG,<RST>,".",SWTBUF)	;; E. Command
CHRENT	(OPN,NON,ALT,<RST>,"?",EQUEST)	;; E? Command
CHRLCE	(NON,NON,ALT,<RST>,"A",OPNWRA)	;; EA Command
CHRLCE	(NON,NON,ALT,<RST>,"B",EBCMD)	;; EB Command
CHRLCE	(OPN,NON,NON,<RST>,"C",ECCMD)	;; EC Command
CHRLCE	(NON,NON,ALT,<RST>,"D",EDCMD)	;; ED Command
CHRLCE	(NON,NON,ALT,<RST>,"E",EECMD)	;; EE Command
CHRLCE	(NON,NON,NON,<RST>,"F",CLOSEF)	;; EF Command
CHRLCE	(NON,NON,NON,<RST>,"G",EGCMD)	;; EG Command
CHRLCE	(OPN,NON,NON,<RST>,"H",ERRSET)	;; EH Command
CHRLCE	(OSN,OSN,ALT,<RST>,"I",EICMD)	;; EI Command
CHRLCE	(OPN,NON,QRG,<RST>,"J",EJCMD)	;; EJ Command
CHRLCE	(NON,NON,NON,<RST>,"K",EKILL)	;; EK Command
CHRLCE	(OPN,NON,ALT,<RST>,"L",MAKLOG)	;; EL Command
CHRLCE	(MBN,NON,NON,<RST>,"M",EMTAPE)	;; EM Command
CHRLCE	(NON,NON,ALT,<RST>,"N",ENCMD)	;; EN Command
CHRLCE	(OPN,NON,NON,<RST>,"O",OLDMOD)	;; EO Command
CHRLCE	(NON,NON,ALT,<RST>,"P",EPCMD)	;; EP Command
CHRLCE	(NON,NON,ALT,<RST>,"Q",EQCMD)	;; EQ Command
CHRLCE	(NON,NON,ALT,<RST>,"R",OPNRD)	;; ER Command
CHRLCE	(OPN,NON,NON,<RST>,"S",AUTOTY)	;; ES Command
CHRLCE	(OPN,NON,NON,<RST>,"T",TYOCTL)	;; ET Command
CHRLCE	(OPN,NON,NON,<RST>,"U",TYCASE)	;; EU Command
CHRLCE	(OPN,OPN,ALT,<RST>,"V",VIDEO)	;; EV Command
CHRLCE	(NON,NON,ALT,<RST>,"W",OPNWR)	;; EW Command
CHRLCE	(NON,NON,NON,<RST>,"X",FINISH)	;; EX Command
CHRLCE	(NON,NON,NON,<RST>,"Y",YANK)	;; EY Command
CHRLCE	(NON,NON,ALT,<RST>,"Z",ZERDIR)	;; EZ Command
	LIST			;; Turn the listing back on
> ; End of CHRS macro definition


	COMMAND	ECM
	SUBTTL	Character dispatch table -- F Commands

; The following is the dispatch table for the F commands

DEFINE	CHRS,<
	XLIST				;; Turn the listing off
CHRLCE	(NON,NON,ALT,<RST>,"C",FCCMD)		;; FC command
CHRLCE	(DF1,OPN,SRH,<RST>,"D",FDSRCH)		;; FD command
CHRLCE	(NON,NON,ALT,<RST>,"I",FICMD)		;; FI command
CHRLCE	(DF1,OPN,SRH,<RST>,"K",FKSRCH)		;; FK command
CHRLCE	(DF1,OPN,SIN,<RST>,"N",FNSRCH)		;; FN command
CHRLCE	(DF1,OPN,SIN,<RST>,"S",FSSRCH)		;; FS command
CHRLCE	(DF1,NON,NON,<RST>,"W",FW$CMD)		;; FW command
	LIST				;; Turn the listing back on
> ; End of CHRS macro definition

	COMMAND	FCM		; Generate the F command table
	SUBTTL	Character dispatch table -- " Commands

; The following is the dispatch table for the double quote commands.

DEFINE CHRS,<
	XLIST				;; Turn off the listing
CHRENT	(MBN,NON,NON,<RST>,.CHLAB,DQ.L)		;; " left angle bracket command
CHRENT	(MBN,NON,NON,<RST>,"=",DQ.E)		;; "= command
CHRENT	(MBN,NON,NON,<RST>,.CHRAB,DQ.G)		;; " right angle bracket command
CHRLCE	(MBN,NON,NON,<RST>,"A",DQ.A)		;; "A command
CHRLCE	(MBN,NON,NON,<RST>,"C",DQ.C)		;; "C command
CHRLCE	(MBN,NON,NON,<RST>,"D",DQ.D)		;; "D command
CHRLCE	(MNS,OSN,NON,<RST>,"E",DQ.E)		;; "E command
CHRLCE	(MBN,NON,NON,<RST>,"F",DQ.F)		;; "F command
CHRLCE	(MNS,OSN,NON,<RST>,"G",DQ.G)		;; "G command
CHRLCE	(MNS,OSN,NON,<RST>,"L",DQ.L)		;; "L command
CHRLCE	(MNS,OSN,NON,<RST>,"N",DQ.N)		;; "N command
CHRLCE	(MBN,NON,NON,<RST>,"S",DQ.S)		;; "S command
CHRLCE	(MBN,NON,NON,<RST>,"T",DQ.T)		;; "T command
CHRLCE	(MBN,NON,NON,<RST>,"U",DQ.U)		;; "U command
CHRLCE	(MBN,NON,NON,<RST>,"V",DQ.V)		;; "V command
CHRLCE	(MBN,NON,NON,<RST>,"W",DQ.W)		;; "W command
	LIST				;; Turn the listing back on
> ; End of CHRS macro definition

	COMMAND	QCM		; Generate the quote command table
SUBTTL	E Commands -- EV processing -- Terminal tables

; The following is a macro that is expanded to produce
; the different entries in the CRT tables.

DEFINE	CRTS,<
VT	TTY,	<TTY,RUB>	,VTTY		;; normal TTY
VT	CRT,	<WAP,RUB,CRT>	,VCRT		;; Any CRT
VT	ACT4,	<CRT,WAP>	,VACT4		;; ACT-4
VT	ACT5,	<CRT,WAP>	,VACT5		;; ACT-5
VT	ADD580,	<CRT>		,VADD5		;; ADDS Consul 580
VT	ADM2,	CRT		,VADM2		;; ADM2 CRT
VT	ADM3,	<WAP,CRT>	,VADM3		;; ADM3 CRT
VT	ADM3A,	<WAP,CRT>	,VAD3A		;; ADM3A
VT	BEE,	CRT		,VBEE		;; Beehive CRT
VT	CDC,	CRT		,VCDC		;; ???
VT	DM1520,	<WAP,CRT,NWPTAB>,V1520		;; Datamedia 1520
VT	DPT,	<WAP,CRT>	,VDPT		;; Datapoint CRT
VT	H19,	<DIC,DIL,CRT,WAP,TAB>,VH19	;; Heathkit H19 (VT52 compat)
VT	H19A,	<DIC,DIL,CRT,WAP,TAB>,VH19A	;; Heathkit H19 (Native mode)
VT	H1200,	CRT		,VHZL1		;; H1200
VT	H1500,	CRT		,VHZL5		;; H1500
VT	H1420,	<CRT,DIL,WAP>	,VHZ14		;; Hazeltine 1420
VT	H2000,	CRT		,VHZL2		;; H2000
VT	HMOD1,	<CRT,WAP>	,VHM1		;; Hazeltime MOD-1
VT	HMOD1I,	<CRT,DIL,WAP>	,VHM1		;; Hazeltime MOD-1 with insert/delete line
VT	HP2621,	<DIC,DIL,CRT,WAP>,VHP21		;; HP-2621
VT	HP2640,	<WAP,CRT>	,VHP26		;; HP-2640
VT	HP2648,	<DIC,DIL,CRT,WAP>,VHP21		;; HP-2648 (same)
VT	RGNT25,	<WAP,CRT>	,VRG25		;; ADDS REGENT 25
VT	TELRAY,	<CRT,DIC,DIL>	,VTR10		;; Teleray-10/1061
VT	TELVID,	<CRT,DIC,DIL>	,VTVI		;; TELEVID 912/920
VT	TK4025,	<WAP,DIC,DIL,CRT>,VT25		;; Tektronic 4025
VT	VT05,	<WAP,CRT>	,VVT05		;; DEC VT05
VT	VT100,	<CRT,DIL,SCR>,VV100		;; DEC VT100
VT	VK100,	<CRT,TAB,WAP,RLF>,VK100		;; DEC VK100 GIGI
VT	VT102,	<DIC,DIL,CRT,WAP>,VV102		;; Heathkit H19 (Native mode)
VT	VT50,	<WAP,CRT>	,VVT50		;; VT50
VT	VT52,	<CRT,TAB,RLF>	,VVT52		;; DEC VT52
VT	VT61,	<DIL,WAP,TAB,CRT>,VVT61	;; DEC VT61
>
DEFINE	VT(A,B,C),<
	EXP	SIXBIT	/A/
>

CRTTAB:	CRTS		; Generate the sixbit
 NUMCRT==.-CRTTAB


DEFINE VT(A,B,C),<
IFIDN <A>,<CRT>,<CRTGEN:>	;;General CRT
	$$F==CR$NRM
IFNB <B>,<IRP <B>,<$$F==$$F+CR$'B>>
	EXP	<$$F+C'FLG##+C'TBL##>	;;GENERATE FLAGS,,ADDRESSS
>

CRTDSP:	CRTS
	SUBTTL	End of TECTBL

	END			; End of TECTBL