	SUBROUTINE SCR_KEYHELP(LOGMODE,LOGKEY)
C
C	The variables passed to KEYHELP define how the keypad
C	is to perform.  They can not be modified by this routine.
C	This routine's sole purpose is to display in bold print
C	how the keypad is defined.
C
C
C	WRITTEN BY  G. LAND  APRIL 2, 1985
C_________________________________________________________________
	LOGICAL*1 LOGKEY,LOGMODE
	INCLUDE 'SCREEN.FOR'
	CHARACTER*1 IANS
	CHARACTER*57 L1
     &	  /'---------------------------------------------------------'/
	CHARACTER*57 L2
     &	  /'|-------------|-------------|-------------|-------------|'/
	CHARACTER*57 L3
     &    /'|             |             |             |             |'/
	CHARACTER*57 L4
     &	  /'|---------------------------|-------------|             |'/
	DATA IBOLD/2/
C
C	CLEAR SCREEN
C
	CALL LIB$ERASE_PAGE(1,1)
C
C	DRAW OUTLINE OF KEYPAD
C
	CALL LIB$PUT_SCREEN(L1,1,2)
	CALL LIB$PUT_SCREEN(L3,2,2)
	CALL LIB$PUT_SCREEN(L3,3,2)
	CALL LIB$PUT_SCREEN(L3,4,2)
	CALL LIB$PUT_SCREEN(L2,5,2)
	CALL LIB$PUT_SCREEN(L3,6,2)
	CALL LIB$PUT_SCREEN(L3,7,2)
	CALL LIB$PUT_SCREEN(L3,8,2)
	CALL LIB$PUT_SCREEN(L2,9,2)
	CALL LIB$PUT_SCREEN(L3,10,2)
	CALL LIB$PUT_SCREEN(L3,11,2)
	CALL LIB$PUT_SCREEN(L3,12,2)
	CALL LIB$PUT_SCREEN(L2,13,2)
	CALL LIB$PUT_SCREEN(L3,14,2)
	CALL LIB$PUT_SCREEN(L3,15,2)
	CALL LIB$PUT_SCREEN(L3,16,2)
	CALL LIB$PUT_SCREEN(L4,17,2)
	CALL LIB$PUT_SCREEN(L3,18,2)
	CALL LIB$PUT_SCREEN(L3,19,2)
	CALL LIB$PUT_SCREEN(L3,20,2)
	CALL LIB$PUT_SCREEN(L1,21,2)

C
C	PRINT FUNCTION KEYS 
C
	IFLAG=0
	CALL LIB$PUT_SCREEN('PF1',2,4,IFLAG)
	CALL LIB$PUT_SCREEN('PF2',2,18,IFLAG)
	CALL LIB$PUT_SCREEN('PF3',2,32,IFLAG)
	CALL LIB$PUT_SCREEN('PF4',2,46,IFLAG)
C
C	IF ALTERNATE KEYPAD WAS SELECTED PRINT NUMERIC KEY DESIGNATIONS
C	NORMAL.  IF NUMERIC KEYPAD WAS SELECTED PRINT NUMERIC KEY
C	DESIGNATIONS BOLD STYLE.
C
	IF(LOGKEY)THEN
		IFLAG=0
	ELSE
		IFLAG=1
	END IF
	CALL LIB$PUT_SCREEN('7',6,4,IFLAG)
	CALL LIB$PUT_SCREEN('8',6,18,IFLAG)
	CALL LIB$PUT_SCREEN('9',6,32,IFLAG)
	CALL LIB$PUT_SCREEN('-',6,46,IFLAG)
	CALL LIB$PUT_SCREEN('4',10,4,IFLAG)
	CALL LIB$PUT_SCREEN('5',10,18,IFLAG)
	CALL LIB$PUT_SCREEN('6',10,32,IFLAG)
	CALL LIB$PUT_SCREEN(',',10,46,IFLAG)
	CALL LIB$PUT_SCREEN('1',14,4,IFLAG)
	CALL LIB$PUT_SCREEN('2',14,18,IFLAG)
	CALL LIB$PUT_SCREEN('3',14,32,IFLAG)
	CALL LIB$PUT_SCREEN('ENTER',14,46,IFLAG)
	CALL LIB$PUT_SCREEN('0',18,4,IFLAG)
	CALL LIB$PUT_SCREEN('.',18,32,IFLAG)
C
C	IF ALTERNATE KEYPAD WAS SELECTED PRINT ALTERNATE KEY
C	DESIGNATIONS BOLD STYLE.  IF NUMERIC KEYPAD WAS SELECTED
C	PRINT ALTERNATE KEY DESIGNATIONS NORMAL STYLE.
C
	IF(LOGKEY)THEN
		IFLAG=1
	ELSE
		IFLAG=0
	END IF
	CALL LIB$PUT_SCREEN('GOLD',3,7,IBOLD)
	CALL LIB$PUT_SCREEN('HELP',3,21,IFLAG)
	CALL LIB$PUT_SCREEN('TOGGLE',3,34,IFLAG)
	CALL LIB$PUT_SCREEN('DEL L',3,49,IFLAG)
	CALL LIB$PUT_SCREEN('KEYPAD',4,34,IFLAG)
	CALL LIB$PUT_SCREEN('UND L',4,49,IBOLD)
	CALL LIB$PUT_SCREEN('UNDEFINED',7,4,IFLAG)
	CALL LIB$PUT_SCREEN('UNDEFINED',7,18,IFLAG)
	CALL LIB$PUT_SCREEN('UNDEFINED',7,32,IFLAG)
	CALL LIB$PUT_SCREEN('DEL W',7,49,IFLAG)
	CALL LIB$PUT_SCREEN('UND W',8,49,IBOLD)
	CALL LIB$PUT_SCREEN('ADVANCE',11,5,IFLAG)
	CALL LIB$PUT_SCREEN('BACKUP',11,20,IFLAG)
	CALL LIB$PUT_SCREEN('UNDEFINED',11,32,IFLAG)
	CALL LIB$PUT_SCREEN('DEL C',11,49,IFLAG)
	CALL LIB$PUT_SCREEN('BOTTOM',12,6,IBOLD)
	CALL LIB$PUT_SCREEN('TOP',12,21,IBOLD)
	CALL LIB$PUT_SCREEN('UND C',12,49,IBOLD)
	CALL LIB$PUT_SCREEN('NEXT',15,7,IFLAG)
	CALL LIB$PUT_SCREEN('EOL',15,21,IFLAG)
	CALL LIB$PUT_SCREEN('UNDEFINED',15,32,IFLAG)
	CALL LIB$PUT_SCREEN('WORD',16,7,IFLAG)
	CALL LIB$PUT_SCREEN('DEL EOL',16,19,IBOLD)
	CALL LIB$PUT_SCREEN('DONE',17,49,IFLAG)
	CALL LIB$PUT_SCREEN('NEXT',19,14,IFLAG)
	CALL LIB$PUT_SCREEN('TOGGLE',19,34,IFLAG)
	CALL LIB$PUT_SCREEN('FIELD',20,14,IFLAG)
	CALL LIB$PUT_SCREEN('EXC/INS',20,34,IFLAG)
C
C	PUT STATUS LINE AT BOTTOM
C
	CALL LIB$PUT_SCREEN('/',23,16)
	CALL LIB$PUT_SCREEN('/',23,55)
	IF(LOGMODE)THEN
		CALL LIB$PUT_SCREEN('EXCHANGE MODE',23,2,1)
		CALL LIB$PUT_SCREEN('INSERT MODE',23,18)
	ELSE
		CALL LIB$PUT_SCREEN('EXCHANGE MODE',23,2)
		CALL LIB$PUT_SCREEN('INSERT MODE',23,18,1)
	END IF
C
	IF(LOGKEY)THEN
		CALL LIB$PUT_SCREEN('ALTERNATE KEYPAD',23,38,1)
		CALL LIB$PUT_SCREEN('NUMERIC KEYPAD',23,57)
	ELSE
		CALL LIB$PUT_SCREEN('ALTERNATE KEYPAD',23,38)
		CALL LIB$PUT_SCREEN('NUMERIC KEYPAD',23,57,1)
	END IF
	IFLAG = 0
	CALL LIB$PUT_SCREEN('CONTROL CHARACTERS',2,62,1)
	CALL LIB$PUT_SCREEN('^B := INVERSE DISP',4,62,IFLAG)
	CALL LIB$PUT_SCREEN('^C := ABORT',5,62,IFLAG)
	CALL LIB$PUT_SCREEN('^N := NORMAL DISP',6,62,IFLAG)
	CALL LIB$PUT_SCREEN('^V := PRINT VALUES',7,62,IFLAG)
	CALL LIB$PUT_SCREEN('^W := PRINT SCREEN',8,62,IFLAG)
	CALL LIB$PUT_SCREEN('^Y := ABORT',9,62,IFLAG)
	CALL LIB$PUT_SCREEN('^Z := ACCEPT DATA',10,62,IFLAG)

	CALL LIB$PUT_SCREEN('PRESS RETURN TO EXIT HELP',24,1)
	READ (*,100,END=110) IANS(1:1)
100	FORMAT(A)
110	CALL SCR_WRTSECT
	CALL LIB$SET_CURSOR(ILIN,ICOL)
	RETURN
	END
