#!/bin/sh # vmsterm # from an original script by Bob Ess # key translations by Erik Ahlefeldt # # Script file using Xterm and telnet to connect to a VMS host # and give a decent vt220 emulation. # # modified by Joseph Huber: ssh instead of telnet # option -host or argument 1 is user@host, # user defaults to $USER # Usage statement Usage(){ echo echo " Usage : vmsterm -options [user@host] def: $HOST" echo echo " Options: -80 for 80 column terminal" echo " -132 for 132 column terminal" echo " -bg colorname" echo " -fg colorname" echo " -fn fontname" echo " -fb bold fontname" echo " -host [$HOST]" echo "" echo " Example: \"vmsterm -80 -fg white -bg black -fn 9x15 -fb 9x15b -host earth\"" echo " Starts a VMS session with an 80 column terminal" echo " with a black background, white foreground, a normal" echo " font of 9x15 and a bold font of 9x15b, and connects" echo " to the node 'earth'" echo "" echo " Example: \"vmsterm -host earth\"" echo " Starts a VMS session with default terminal settings " echo "" echo " Example: \"vmsterm -help\"" echo " Displays vmsterm options " echo exit 1 } # Default to a black foreground with a white background. # Use the 9x15 and 9x15bold fonts. Connect to 192.168.3.3 by default. # FG=black BG=white HOST=$USER@node.domain FONT=9x15 BFONT=9x15bold COLS=80 SSHVER= # Parse the command line arguments # while [ $# != 0 ]; do case $1 in -80) COLS=80 FONT=spc10x24c BFONT=spc10x24b shift ;; -2) SSHVER=-2 shift ;; -132) COLS=120 FONT=9x15 BFONT=9x15b shift ;; -fg) shift FG=$1 shift;; -bg) shift BG=$1 shift;; -fn) shift FONT=$1 shift;; -fb) shift BFONT=$1 shift;; -host) shift HOST=$1 shift;; -help) Usage shift;; *) HOST=$1 shift esac done echo VMSterm doing ssh $HOST ... xterm -title "VMSTERM" -sb -sl 1000 -geo ${COLS}x50 -fg ${FG} -bg ${BG} \ -cr blue -132 -ti vt220 -tn vt220 -fn ${FONT} -fb ${BFONT} -xrm \ "XTerm*vt100.translations: #override \n \ ~Shift F1: string(0x1b) string("OP") \n \ ~Shift F2: string(0x1b) string("OQ") \n \ ~Shift F3: string(0x1b) string("OR") \n \ ~Shift F4: string(0x1b) string("OS") \n \ ~Shift F5: string("Break") \n \ ~Shift F6: string(0x1b) string("[17~") \n \ ~Shift F7: string(0x1b) string("[18~") \n \ ~Shift F8: string(0x1b) string("[19~") \n \ ~Shift F9: string(0x1b) string("[20~") \n \ ~Shift F10: string(0x1b) string("[21~") \n \ ~Shift F11: string(0x1b) string("[23~") \n \ ~Shift F12: string(0x1b) string("[24~") \n \ Shift F1: string(0x1b) string("[23~") \n \ Shift F2: string(0x1b) string("[24~") \n \ Shift F3: string(0x1b) string("[25~") \n \ Shift F4: string(0x1b) string("[26~") \n \ Shift F5: string(0x1b) string("[28~") \n \ Shift F6: string(0x1b) string("[29~") \n \ Shift F7: string(0x1b) string("[31~") \n \ Shift F8: string(0x1b) string("[32~") \n \ Shift F9: string(0x1b) string("[33~") \n \ Shift F10: string(0x1b) string("[34~") \n \ Shift F11: string(0x1b) string("[28~") \n \ Shift F12: string(0x1b) string("[29~") \n \ Print: string(0x1b) string("[28~") \n \ Cancel: string(0x1b) string("[29~") \n \ Pause: string(0x1b) string("Om") \n \ Insert: string(0x1b) string("[2~") \n \ Delete: string(0x1b) string("[3~") \n \ Home: string(0x1b) string("[1~") \n \ End: string(0x1b) string("[4~") \n \ Prior: string(0x1b) string("[5~") \n \ Next: string(0x1b) string("[6~") \n \ BackSpace: string(0x7f) \n \ Num_Lock: string(0x1b) string("OP") \n \ KP_Divide: string(0x1b) string("OQ") \n \ KP_Multiply: string(0x1b) string("OR") \n \ KP_Subtract: string(0x1b) string("OS") \n \ KP_Add: string(0x1b) string("Ol") \n \ KP_Enter: string(0x1b) string("OM") \n \ KP_Decimal: string(0x1b) string("On") \n \ KP_0: string(0x1b) string("Op") \n \ KP_1: string(0x1b) string("Oq") \n \ KP_2: string(0x1b) string("Or") \n \ KP_3: string(0x1b) string("Os") \n \ KP_4: string(0x1b) string("Ot") \n \ KP_5: string(0x1b) string("Ou") \n \ KP_6: string(0x1b) string("Ov") \n \ KP_7: string(0x1b) string("Ow") \n \ KP_8: string(0x1b) string("Ox") \n \ KP_9: string(0x1b) string("Oy") \n \ ~Shift Up: string(0x1b) string("[A") \n \ Shift Up: scroll-back(1,lines) \n \ ~Shift Down: string(0x1b) string("[B") \n \ Shift Down: scroll-forw(1,lines) \n \ Right: string(0x1b) string("[C") \n \ Left: string(0x1b) string("[D")" \ -e ssh $SSHVER $HOST &