Google
 

Trailing-Edge - PDP-10 Archives - BB-R775E-BM - sources/edt/keypad.bli
There are 10 other files named keypad.bli in the archive. Click here to see a list.
 %TITLE 'KEYPAD - keypad definitions'
MODULE KEYPAD (				! Keypad definitions
		IDENT = '3-001'			! File: KEYPAD.BLI Edit: GB3001
		) =
BEGIN
!
!		      COPYRIGHT (c) 1980, 1985, 1981 BY
!	      DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!		ALL RIGHTS RESERVED.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
! ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
! INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
! COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
! OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
! TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
! AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
!

!++
! FACILITY:	EDT -- The DEC Standard Editor
!
! ABSTRACT:
!
!	This routine will contain the routines to initialize the keypad
!	translation table.  It also contains the default definitions for
!	for the keys.
!
! ENVIRONMENT:	Used in all EDT configurations.
!
! AUTHOR: T. Mitchell
!
! MODIFIED BY:
!
! Dan Szymanski, 30-JUL-80, 01
!
!	Tables modified so that the default definitions
!	for GOLD A, D, E, T, U, W, and Z are the same as corresponding
!	CONTROL char.  Definitions for accent and grave removed.
!
! 2-002	- Regularized the module and routine headers.  JBS 13-Feb-1981
! 2-003 - Extraneous definitions for accent and grave deleted.  Default
!	   keypad definitions for GOLD <- and GOLD -> (for VT100) deleted.
!	   DJS 17-Feb-1981
! 2-004	- Corrected a minor error in the header.  JBS 25-Feb-1981
! 2-005	- Fix module name.  JBS 10-Mar-1981
! 2-006	- Don't make keypad text global.  JBS 30-Mar-1981
! 2-007	- Use the new message codes.  JBS 04-Aug-1981
! 2-008 - Add documentation for HELP indices.  SMB 19-Nov-1981
! 2-009	- EDT$DEFK returns a status.  JBS 18-May-1982
! 2-010 - Change call to OUT_MSG to MSG_BELL.  SMB 17-Jun-1982
! 2-011	- Correct the ident.  JBS 01-Jul-1982
! 2-012 - Take extra spaces out of GOLD 7 key definition.  SMB 22-Jul-1982
! 2-013	- Add GOLD and revise the format of the tables for the new
!	   implementation of defined keys.  JBS 13-Aug-1982
! 2-014	- Make GOLD GOLD = GOLD, for compatibility.  JBS 18-Aug-1982
! 2-015	- Make ESC insert an escape, for compatibility.  JBS 03-Sep-1982
! 2-016	- Add conditional for VT220 support.  JBS 11-Feb-1983
! 3-001 - Modify for Tops10/20 version.  GB 02-Jun-1983
!--
%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!

REQUIRE 'EDTSRC:TRAROUNAM';

FORWARD ROUTINE
    EDT$$DEF_DFLTK;				! Define a lot of keys

!
! INCLUDE FILES:
!

REQUIRE 'EDTSRC:EDTREQ';

LIBRARY 'EDTSRC:KEYPADDEF';

LIBRARY 'EDTSRC:SUPPORTS';

!
! MACROS:
!
!	NONE
!
! EQUATED SYMBOLS:
!
!	NONE
!
! OWN STORAGE:
!
!	NONE
!
! EXTERNAL REFERENCES:
!
!	In the routine
!<BLF/PAGE>
!+
! Define the default translations for the editing keys.
!-

BIND
    T_GOLD = UPLIT (%STRING (%CHAR (4), 'GOLD')),
    T_WORD = UPLIT (%STRING (%CHAR (2), 'W.')),
    T_BL = UPLIT (%STRING (%CHAR (3), 'BL.')),
    T_EOL = UPLIT (%STRING (%CHAR (3), 'EL.')),
    T_LINE = UPLIT (%STRING (%CHAR (2), 'L.')),
    T_CHAR = UPLIT (%STRING (%CHAR (2), 'C.')),
    T_UNDC = UPLIT (%STRING (%CHAR (5), 'UNDC.')),
    T_UNDW = UPLIT (%STRING (%CHAR (5), 'UNDW.')),
    T_UNDL = UPLIT (%STRING (%CHAR (5), 'UNDL.')),
    T_EXIT = UPLIT (%STRING (%CHAR (3), 'EX.')),
    T_BR = UPLIT (%STRING (%CHAR (3), 'BR.')),
    T_ER = UPLIT (%STRING (%CHAR (3), 'ER.')),
    T_CUT = UPLIT (%STRING (%CHAR (6), 'CUTSR.')),
    T_PASTE = UPLIT (%STRING (%CHAR (6), 'PASTE.')),
    T_REPLACE = UPLIT (%STRING (%CHAR (19), 'CUTSR=DELETE PASTE.')),
    T_APPEND = UPLIT (%STRING (%CHAR (9), 'APPENDSR.')),
    T_FIND = UPLIT (%STRING (%CHAR (18), %CHAR (0), '?''Search for: ''',
	%CHAR (0), '.')),
    T_NEXT = UPLIT (%STRING (%CHAR (3), '"".')),
    T_ADV = UPLIT (%STRING (%CHAR (4), 'ADV.')),
    T_BACK = UPLIT (%STRING (%CHAR (5), 'BACK.')),
    T_UP = UPLIT (%STRING (%CHAR (3), '-V.')),
    T_DOWN = UPLIT (%STRING (%CHAR (3), '+V.')),
    T_RIGHT = UPLIT (%STRING (%CHAR (3), '+C.')),
    T_LEFT = UPLIT (%STRING (%CHAR (3), '-C.')),
    T_SEL = UPLIT (%STRING (%CHAR (4), 'SEL.')),
    T_DEL = UPLIT (%STRING (%CHAR (5), 'D+NL.')),
    T_DELW = UPLIT (%STRING (%CHAR (4), 'DEW.')),
    T_DELC = UPLIT (%STRING (%CHAR (4), 'D+C.')),
    T_OPEN = UPLIT (%STRING (%CHAR (7), '(^M-C).')),
    T_DEOL = UPLIT (%STRING (%CHAR (5), 'D+EL.')),
    T_DBL = UPLIT (%STRING (%CHAR (4), 'DBL.')),
    T_DBW = UPLIT (%STRING (%CHAR (4), 'DBW.')),
    T_PAGE = UPLIT (%STRING (%CHAR (8), 'PAGETOP.')),
    T_SECT = UPLIT (%STRING (%CHAR (6), '(16L).')),
    T_RUBC = UPLIT (%STRING (%CHAR (4), 'D-C.')),
    T_ITAB = UPLIT (%STRING (%CHAR (4), 'TAB.')),
    T_TD = UPLIT (%STRING (%CHAR (3), 'TD.')),
    T_TI = UPLIT (%STRING (%CHAR (3), 'TI.')),
    T_TC = UPLIT (%STRING (%CHAR (3), 'TC.')),
    T_ICR = UPLIT (%STRING (%CHAR (3), '^M.')),
    T_IFF = UPLIT (%STRING (%CHAR (3), '^L.')),
    T_COM = UPLIT (%STRING (%CHAR (17), 'EXT ?''Command: ''.')),
    T_REF = UPLIT (%STRING (%CHAR (4), 'REF.')),
    T_SUBS = UPLIT (%STRING (%CHAR (25), '(CUTSR=DELETE PASTEKS"").')),
    T_RESET = UPLIT (%STRING (%CHAR (5), 'RESET')),
    T_ENTER = UPLIT (%STRING (%CHAR (1), '.')),
    T_ASC = UPLIT (%STRING (%CHAR (4), 'ASC.')),
    T_CHGC = UPLIT (%STRING (%CHAR (7), 'CHGCSR.')),
    T_HELP = UPLIT (%STRING (%CHAR (5), 'HELP.')),
    T_SHR = UPLIT (%STRING (%CHAR (4), 'SHR.')),
    T_SHL = UPLIT (%STRING (%CHAR (4), 'SHL.')),
    T_FILL = UPLIT (%STRING (%CHAR (7), 'FILLSR.')),
    T_DEF = UPLIT (%STRING (%CHAR (5), 'DEFK.')),
    T_TADJ = UPLIT (%STRING (%CHAR (7), 'TADJSR.')),

%IF SUPPORT_VT220
%THEN
    T_PREV_SCR = UPLIT (%STRING (%CHAR (7), '(-16L).')),
    T_NEXT_SCR = UPLIT (%STRING (%CHAR (7), '(+16L).')),
%FI

    T_ESC = UPLIT (%STRING (%CHAR (8), '(27ASC).'));

!<BLF/PAGE>
!+
! These are the default keypad definitions for the VT100. (#) = index into
! help file
!-

BIND
    VT100_TABLE = UPLIT (			!
	ASC_K_DEL, T_RUBC - T_GOLD, 				! (127) DEL key
	K_KPAD_BASE + 0, T_LINE - T_GOLD, 			! (300) 0
	K_KPAD_BASE + 1, T_WORD - T_GOLD, 			! (301) 1
	K_KPAD_BASE + 2, T_EOL - T_GOLD, 			! (302) 2
	K_KPAD_BASE + 3, T_CHAR - T_GOLD, 			! (303) 3
	K_KPAD_BASE + 4, T_ADV - T_GOLD, 			! (304) 4
	K_KPAD_BASE + 5, T_BACK - T_GOLD, 			! (305) 5
	K_KPAD_BASE + 6, T_CUT - T_GOLD, 			! (306) 6
	K_KPAD_BASE + 7, T_PAGE - T_GOLD, 			! (307) 7
	K_KPAD_BASE + 8, T_SECT - T_GOLD, 			! (308) 8
	K_KPAD_BASE + 9, T_APPEND - T_GOLD, 			! (309) 9
	K_KPAD_BASE + 10, T_HELP - T_GOLD, 			! (310) PF2
	K_KPAD_BASE + 11, T_NEXT - T_GOLD, 			! (311) PF3
	K_KPAD_BASE + 12, T_UP - T_GOLD, 			! (312) UP ARROW
	K_KPAD_BASE + 13, T_DOWN - T_GOLD, 			! (313) DOWN ARROW
	K_KPAD_BASE + 14, T_RIGHT - T_GOLD, 			! (314) RIGHT ARROW
	K_KPAD_BASE + 15, T_LEFT - T_GOLD, 			! (315) LEFT ARROW
	K_KPAD_BASE + 16, T_SEL - T_GOLD, 			! (316) .
	K_KPAD_BASE + 17, T_DEL - T_GOLD, 			! (317) PF4
	K_KPAD_BASE + 18, T_DELW - T_GOLD, 			! (318) -
	K_KPAD_BASE + 19, T_DELC - T_GOLD, 			! (319) ,
	K_KPAD_BASE + 20, T_GOLD - T_GOLD, 			! (320) PF1
	K_KPAD_BASE + 21, T_ENTER - T_GOLD, 			! (321) ENTER
	K_KPAD_BASE + K_GOLD_BASE + 0, T_OPEN - T_GOLD, 	! (800) GOLD 0
	K_KPAD_BASE + K_GOLD_BASE + 1, T_CHGC - T_GOLD, 	! (801) GOLD 1
	K_KPAD_BASE + K_GOLD_BASE + 2, T_DEOL - T_GOLD, 	! (802) GOLD 2
	K_KPAD_BASE + K_GOLD_BASE + 3, T_ASC - T_GOLD, 		! (803) GOLD 3
	K_KPAD_BASE + K_GOLD_BASE + 4, T_ER - T_GOLD, 		! (804) GOLD 4
	K_KPAD_BASE + K_GOLD_BASE + 5, T_BR - T_GOLD, 		! (805) GOLD 5
	K_KPAD_BASE + K_GOLD_BASE + 6, T_PASTE - T_GOLD, 	! (806) GOLD 6
	K_KPAD_BASE + K_GOLD_BASE + 7, T_COM - T_GOLD, 		! (807) GOLD 7
	K_KPAD_BASE + K_GOLD_BASE + 8, T_FILL - T_GOLD, 	! (808) GOLD 8
	K_KPAD_BASE + K_GOLD_BASE + 9, T_REPLACE - T_GOLD, 	! (809) GOLD 9
	K_KPAD_BASE + K_GOLD_BASE + 10, T_HELP - T_GOLD, 	! (810) GOLD PF2
	K_KPAD_BASE + K_GOLD_BASE + 11, T_FIND - T_GOLD, 	! (811) GOLD PF3
	K_KPAD_BASE + K_GOLD_BASE + 16, T_RESET - T_GOLD, 	! (816) GOLD  .
	K_KPAD_BASE + K_GOLD_BASE + 17, T_UNDL - T_GOLD, 	! (817) GOLD PF4
	K_KPAD_BASE + K_GOLD_BASE + 18, T_UNDW - T_GOLD, 	! (818) GOLD -
	K_KPAD_BASE + K_GOLD_BASE + 19, T_UNDC - T_GOLD, 	! (819) GOLD ,
	K_KPAD_BASE + K_GOLD_BASE + 20, T_GOLD - T_GOLD, 	! (820) GOLD PF1
	K_KPAD_BASE + K_GOLD_BASE + 21, T_SUBS - T_GOLD, 	! (821) GOLD ENTER
	%C'A' - 64, T_TC - T_GOLD, 				! (1) CNTRL A
	%C'D' - 64, T_TD - T_GOLD, 				! (4) CNTRL D
	%C'E' - 64, T_TI - T_GOLD, 				! (5) CNTRL E
	ASC_K_BS, T_BL - T_GOLD, 				! (8) CNTRL H
	ASC_K_TAB, T_ITAB - T_GOLD, 				! (9) CNTRL I
	ASC_K_LF, T_DBW - T_GOLD, 				! (10) CNTRL J
	ASC_K_CTRL_K, T_DEF - T_GOLD, 				! (11) CNTRL K
	ASC_K_FF, T_IFF - T_GOLD, 				! (12) CNTRL L
	ASC_K_CR, T_ICR - T_GOLD, 				! (13) CNTRL M
	%C'R' - 64, T_REF - T_GOLD, 				! (18) CNTRL R
	%C'T' - 64, T_TADJ - T_GOLD, 				! (19) CNTRL T
	ASC_K_CTRL_U, T_DBL - T_GOLD, 				! (20) CNTRL U
	%C'W' - 64, T_REF - T_GOLD, 				! (22) CNTRL W
	ASC_K_CTRL_Z, T_EXIT - T_GOLD, 				! (25) CNTRL Z
	ASC_K_ESC, T_ESC - T_GOLD,				! (27) ESC
	K_GOLD_BASE + %C'A', T_TC - T_GOLD, 			! (565) GOLD A
	K_GOLD_BASE + %C'D', T_TD - T_GOLD, 			! (568) GOLD D
	K_GOLD_BASE + %C'E', T_TI - T_GOLD, 			! (569) GOLD E
	K_GOLD_BASE + %C'R', T_REF - T_GOLD, 			! (582) GOLD R
	K_GOLD_BASE + %C'T', T_TADJ - T_GOLD, 			! (584) GOLD T
	K_GOLD_BASE + %C'U', T_DBL - T_GOLD, 			! (585) GOLD U
	K_GOLD_BASE + %C'W', T_REF - T_GOLD, 			! (587) GOLD W
	K_GOLD_BASE + %C'Z', T_EXIT - T_GOLD, 			! (590) GOLD Z
%IF SUPPORT_VT220 %THEN
	K_FUN_BASE + 28, T_HELP - T_GOLD,			! (428) HELP
	K_FUN_BASE + 29, T_ENTER - T_GOLD,			! (429) DO
	K_FUN_BASE + 1, T_FIND - T_GOLD,			! (401) FIND
	K_FUN_BASE + 2, T_PASTE - T_GOLD,			! (402) INSERT HERE
	K_FUN_BASE + 3, T_CUT - T_GOLD,				! (403) REMOVE
	K_FUN_BASE + 4, T_SEL - T_GOLD,				! (404) SELECT
	K_FUN_BASE + 5, T_PREV_SCR - T_GOLD,			! (405) PREV SCREEN
	K_FUN_BASE + 6, T_NEXT_SCR - T_GOLD,			! (406) NEXT SCREEN
	K_FUN_BASE + 24, T_BL - T_GOLD,				! (424) F12 (used as BS)
	K_FUN_BASE + 25, T_DBW - T_GOLD,			! (425) F13 (used as LF)
%FI
	K_KEY_MAX + 1) : VECTOR [];

!<BLF/PAGE>
!+
! Default key definitions for VT52.
!-

BIND
    VT52_TABLE = UPLIT (			!
	ASC_K_DEL, T_RUBC - T_GOLD, 				! (127) DEL key
	K_KPAD_BASE + 0, T_LINE - T_GOLD, 			! (300) 0
	K_KPAD_BASE + 1, T_WORD - T_GOLD, 			! (301) 1
	K_KPAD_BASE + 2, T_EOL - T_GOLD, 			! (302) 2
	K_KPAD_BASE + 3, T_CUT - T_GOLD, 			! (303) 3
	K_KPAD_BASE + 4, T_ADV - T_GOLD, 			! (304) 4
	K_KPAD_BASE + 5, T_BACK - T_GOLD, 			! (305) 5
	K_KPAD_BASE + 6, T_DELC - T_GOLD, 			! (306) 6
	K_KPAD_BASE + 7, T_PAGE - T_GOLD, 			! (307) 7
	K_KPAD_BASE + 8, T_NEXT - T_GOLD, 			! (308) 8
	K_KPAD_BASE + 9, T_DELW - T_GOLD, 			! (309) 9
	K_KPAD_BASE + 10, T_HELP - T_GOLD, 			! (310) PF2 (RED)
	K_KPAD_BASE + 11, T_DEL - T_GOLD, 			! (311) PF3 (GREY)
	K_KPAD_BASE + 12, T_UP - T_GOLD, 			! (312) UP ARROW
	K_KPAD_BASE + 13, T_DOWN - T_GOLD, 			! (313) DOWN ARROW
	K_KPAD_BASE + 14, T_RIGHT - T_GOLD, 			! (314) RIGHT ARROW
	K_KPAD_BASE + 15, T_LEFT - T_GOLD, 			! (315) LEFT ARROW
	K_KPAD_BASE + 16, T_SEL - T_GOLD, 			! (316) .
	K_KPAD_BASE + 20, T_GOLD - T_GOLD, 			! (320) PF1 (BLUE)
	K_KPAD_BASE + 21, T_ENTER - T_GOLD, 			! (321) ENTER
	K_KPAD_BASE + K_GOLD_BASE + 0, T_OPEN - T_GOLD, 	! (800) GOLD 0
	K_KPAD_BASE + K_GOLD_BASE + 1, T_CHGC - T_GOLD, 	! (801) GOLD 1
	K_KPAD_BASE + K_GOLD_BASE + 2, T_DEOL - T_GOLD, 	! (802) GOLD 2
	K_KPAD_BASE + K_GOLD_BASE + 3, T_PASTE - T_GOLD, 	! (803) GOLD 3
	K_KPAD_BASE + K_GOLD_BASE + 4, T_ER - T_GOLD, 		! (804) GOLD 4
	K_KPAD_BASE + K_GOLD_BASE + 5, T_BR - T_GOLD, 		! (805) GOLD 5
	K_KPAD_BASE + K_GOLD_BASE + 6, T_UNDC - T_GOLD, 	! (806) GOLD 6
	K_KPAD_BASE + K_GOLD_BASE + 7, T_COM - T_GOLD, 		! (807) GOLD 7
	K_KPAD_BASE + K_GOLD_BASE + 8, T_FIND - T_GOLD, 	! (808) GOLD 8
	K_KPAD_BASE + K_GOLD_BASE + 9, T_UNDW - T_GOLD, 	! (809) GOLD 9
	K_KPAD_BASE + K_GOLD_BASE + 10, T_HELP - T_GOLD, 	! (810) GOLD PF2 (RED)
	K_KPAD_BASE + K_GOLD_BASE + 11, T_UNDL - T_GOLD, 	! (811) GOLD PF3 (GREY)
	K_KPAD_BASE + K_GOLD_BASE + 12, T_REPLACE - T_GOLD, 	! (812) GOLD UP
	K_KPAD_BASE + K_GOLD_BASE + 13, T_SECT - T_GOLD, 	! (813) GOLD DOWN
	K_KPAD_BASE + K_GOLD_BASE + 14, T_ASC - T_GOLD, 	! (814) GOLD RIGHT
	K_KPAD_BASE + K_GOLD_BASE + 15, T_APPEND - T_GOLD, 	! (815) GOLD LEFT
	K_KPAD_BASE + K_GOLD_BASE + 16, T_RESET - T_GOLD, 	! (816) GOLD .
	K_KPAD_BASE + K_GOLD_BASE + 20, T_GOLD - T_GOLD, 	! (820) GOLD PF1 (BLUER
	K_KPAD_BASE + K_GOLD_BASE + 21, T_SUBS - T_GOLD, 	! (821) GOLD ENTER
	%C'A' - 64, T_TC - T_GOLD, 				! (1) CNTRL A
	%C'D' - 64, T_TD - T_GOLD, 				! (4) CNTRL D
	%C'E' - 64, T_TI - T_GOLD, 				! (5) CNTRL E
	%C'F' - 64, T_FILL - T_GOLD, 				! (6) CNTRL F
	ASC_K_BS, T_BL - T_GOLD, 				! (8) CNTRL H
	ASC_K_TAB, T_ITAB - T_GOLD, 				! (9) CNTRL I
	ASC_K_LF, T_DBW - T_GOLD, 				! (10) CNTRL J
	ASC_K_CTRL_K, T_DEF - T_GOLD, 				! (11) CNTRL K
	ASC_K_FF, T_IFF - T_GOLD, 				! (12) CNTRL L
	ASC_K_CR, T_ICR - T_GOLD, 				! (13) CNTRL M
	%C'R' - 64, T_REF - T_GOLD, 				! (18) CNTRL R
	%C'S' - 64, T_TADJ - T_GOLD, 				! (20) CNTRL T
	ASC_K_CTRL_U, T_DBL - T_GOLD, 				! (21) CNTRL U
	%C'W' - 64, T_REF - T_GOLD, 				! (23) CNTRL W
	ASC_K_CTRL_Z, T_EXIT - T_GOLD, 				! (26) CNTRL Z
	ASC_K_ESC, T_ESC - T_GOLD,				! (27) ESC
	K_GOLD_BASE + %C'A', T_TC - T_GOLD, 			! (565) GOLD A
	K_GOLD_BASE + %C'D', T_TD - T_GOLD, 			! (568) GOLD D
	K_GOLD_BASE + %C'E', T_TI - T_GOLD, 			! (569) GOLD E
	K_GOLD_BASE + %C'F', T_FILL - T_GOLD, 			! (570) GOLD F
	K_GOLD_BASE + %C'R', T_REF - T_GOLD, 			! (582) GOLD R
	K_GOLD_BASE + %C'T', T_TADJ - T_GOLD, 			! (584) GOLD T
	K_GOLD_BASE + %C'U', T_DBL - T_GOLD, 			! (585) GOLD U
	K_GOLD_BASE + %C'W', T_REF - T_GOLD, 			! (587) GOLD W
	K_GOLD_BASE + %C'Z', T_EXIT - T_GOLD, 			! (590) GOLD Z
	K_KEY_MAX + 1) : VECTOR [];
%SBTTL 'EDT$$DEF_DFLTK  - Define the default keypad'

GLOBAL ROUTINE EDT$$DEF_DFLTK 			! Define the default keypad
    =
!+
! FUNCTIONAL DESCRIPTION:
!
!	Define the default keypad, for either the VT100 or the VT52.  Any keys
!	already defined are left alone.
!
! FORMAL PARAMETERS:
!
!	NONE
!
! IMPLICIT INPUTS:
!
!	NONE
!
! IMPLICIT OUTPUTS:
!
!	TRN_TBLINIT 	Set to 1 to indicate that the table is initialized
!
! ROUTINE VALUE:
!
!	1 = success, even value = an error from EDT$$DEFK
!
! SIDE EFFECTS:
!
!	NONE
!
!-
    BEGIN

    EXTERNAL ROUTINE
	EDT$$DEFK,				! Define a key
	EDT$$FIND_KEY;				! Find the definition of a key

    EXTERNAL
	TRN_TBLINIT,			! Set to 1 after the table is initialized
	TI_TYP;				! The type of terminal

    LOCAL
	TABLE : REF VECTOR [],
	I;

!+
! Point to the proper table.
!-

    SELECTONE .TI_TYP OF
	SET

	[TERM_VT52] :
	    TABLE = VT52_TABLE;

	[TERM_VT100] :
	    TABLE = VT100_TABLE;

	[OTHERWISE] :
	    RETURN (1);				! Don't mark the table initialized until we have a scope
	TES;

    I = 0;

    WHILE (.TABLE [.I] NEQ K_KEY_MAX + 1) DO
	BEGIN

	LOCAL
	    STATUS,
	    TEXT_PTR,
	    KEY_PTR : REF BLOCK [ ] FIELD (KEY_DEF_FIELD);

	IF ( NOT EDT$$FIND_KEY (.TABLE [.I], KEY_PTR))
	THEN
	    BEGIN
	    TEXT_PTR = CH$PTR (T_GOLD + .TABLE [.I + 1]);
	    STATUS = EDT$$DEFK (.TABLE [.I], CH$PLUS (.TEXT_PTR, 1), CH$RCHAR (.TEXT_PTR));

	    IF ( NOT .STATUS) THEN RETURN (.STATUS);

	    END;

	I = .I + 2;
	END;

    TRN_TBLINIT = 1;
    RETURN (1);
    END;					! of routine EDT$$DEF_DFLTK

!<BLF/PAGE>
END						! of module EDT$KEYPAD

ELUDOM