From: kent@manzi.unx.sas.com (Paul Kent)
Newsgroups: comp.sys.hp
Subject: Re: Need hpterm or xterm keys to emulate VT100/VT200 keys on VMS
Date: 12 Nov 92 23:19:52 GMT
Organization: SAS Institute Inc.
Originator: kent@manzi.unx.sas.com


In article <BxMFr5.4CF@world.std.com>, kovar@world.std.com (David C Kovar) writes:
>  Some of the people in my office are trying to use their HP 700 XTerminals
>on VMS for development work. Their primary complaint is that they cannot
>get the application keypad to generate VT100 key sequences. This means
>that they can not really use the VMS debugger. So we have a lot of
>engineers with HPs and VT100s on their desks. They've apparently
>tried modmap, no no avail. But we're new to this game so we could
>have done something wrong.
>
>  Does anyone have a xmodmap, or some other tool, that will map
>the HP keyboard to a VT100 keyboard when using an xterminal window?
>
>  Any leads would be most appreciated.
>



this really should be in the FAQ (and it may even be, i don't have one handy).
does the FAQ maintainer read this list??



folks here at SAS do this by:

establishing an alternate name for xterm and defining xterm key translation resources
for that alternately named xterm... (we use "vaxterm") 

VUE complicates how this file is loaded, but one sure way is to clip the
attachment below into $HOME/vax.Xdef and do 

prompt> xrdb -m $HOME/vax.Xdef
prompt> xterm -name vaxterm &


voila, you have an xterm that


a) uses 8x13 fonts

b) has different colors, so you remember itsa a VAX (as if you needed that :-)

c) uses 80x60 rows... i find a "set term/dec_crt/tab/adv/page=60/width=80"
   in my vax LOGIN.COM helps a lot.

d) has 2048 lines of scroll back (which is not enough if you have been spoiled
   by the excellent apollo DM pads)

e) a charclass definition such that a double-click fishes out a VAX style path
   name (or at least enough to fool me)

f) a short cut key for logging on if your username is KENT and your password 
   is SILLY -- just press extend-1 at the USERNAME: prompt.

g) translations for the vax-style keypad. these may not be a complete set. i was
   never more than a two finger typer on a vax.




the cool thing about this approach over xmodmap is that you dont have to butcher the
keys in your honest-to-goodness xterms.


if you wanted to get even fancier, xterm has a function :

    keymap(name)
              This action dynamically defines a new translation table whose
              resource name is name with the suffix Keymap (case is
              significant).  The name None restores the original translation
              table.

you could define a number of keymaps and the keys to rotate around them
but i have not ventured down that path.




hope this helps you.
paul.



this be the file you wanna merge with xrdb (or make available as xterm resources in
one of the many ways (i use the XAPPLRESDIR scheme myself)
------------------------------------------------------------------------------------

!
! vaxterm is for DEC terminals.
!
! fonts
vaxterm*font:			8x13
vaxterm*boldFont:		8x13bold
! colors
vaxterm*background:		#029
vaxterm*foreground:		white
vaxterm*cursorColor:		red
vaxterm*pointerColor:		red
vaxterm*pointerColorBackground:	red
! other
vaxterm*curses:			on
vaxterm*VT100.geometry:		=80x60
vaxterm*logging:		off
vaxterm*saveLines:		2048
vaxterm*scrollBar:		on
vaxterm*ttyModes:		erase ^h intr ^c kill ^u eof ^d
vaxterm*visualBell:		off
vaxterm*utmpInhibit:		true
! cut behaviour
vaxterm*cutToBeginningOfLine:   false
vaxterm*charClass:              33:48,45-47:48,58-59:48,64:48,91:48,93:48
!
! BackSpace is mapped to DEL which is more natural for DEC boxen
!
! I think the rest map the keypad to a VAXlike keypad
!
vaxterm*VT100.Translations:	#override \
        Meta<Key>1:             string(KENT) string(0x0d) string(SILLY) string(0x0d) \n\
        Shift<Key>Next:         scroll-forw(1,page) \n\
        Shift<Key>Prior:        scroll-back(1,page) \n\
        <Key>DeleteLine:        string(0x1b) string([3~)   \n\
        <Key>InsertLine:        string(0x1b) string([2~)   \n\
        <Key>BackSpace:         string(0x7f)               \n\
        <Key>Next:              string(0x1b) string([6~)   \n\
        <Key>Prior:             string(0x1b) string([5~)   \n\
        <Key>DeleteChar:        string(0x1b) string([1~)   \n\
        <Key>F1:                string(0x1b) string([31~)  \n\
        <Key>F2:                string(0x1b) string([32~)  \n\
        <Key>F3:                string(0x1b) string([33~)  \n\
        <Key>F4:                string(0x1b) string([34~)  \n\
        <Key>KP_Multiply:	string(0x1b) string(OP)    \n\
        <Key>KP_Divide:		string(0x1b) string(OQ)    \n\
        <Key>KP_Add:		string(0x1b) string(OR)    \n\
        <Key>KP_Subtract:	string(0x1b) string(OS)    \n\
        <Key>KP_0:		string(0x1b) string(Op)    \n\
        <Key>KP_1:		string(0x1b) string(Oq)    \n\
        <Key>KP_2:		string(0x1b) string(Or)    \n\
        <Key>KP_3:		string(0x1b) string(Os)    \n\
        <Key>KP_4:		string(0x1b) string(Ot)    \n\
        <Key>KP_5:		string(0x1b) string(Ou)    \n\
        <Key>KP_6:		string(0x1b) string(Ov)    \n\
        <Key>KP_7:		string(0x1b) string(Ow)    \n\
        <Key>KP_8:		string(0x1b) string(Ox)    \n\
        <Key>KP_9:		string(0x1b) string(Oy)    \n\

-------------------------------------------------------------------------------------------

-- 

Paul Kent (SQL r&d)                   " nothing ventured, nothing disclaimed "
kent@unx.sas.com         SAS Institute Inc, SAS Campus Dr, Cary NC 27513-2414.
Newsgroups: comp.sys.hp