Google
 

Trailing-Edge - PDP-10 Archives - bb-h138f-bm - 7-sources/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) DIGITAL EQUIPMENT CORPORATION 1981, 1988.  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 THAT 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