[Simh] MAME and simh
Bob Eager
rde at tavi.co.uk
Thu Jul 2 07:22:54 EDT 2020
I got some xterm resources off the net that I use with VMS. I don't
remember where, and I hacked them a bit. But here is the command I use:
#!/bin/sh
# vmsterm
# from an original script by Bob Ess
# key translations by Erik Ahlefeldt
# modified for TrueType fonts and extra options by Bob Eager
# modified to suppress utf-8 for EIGHT_BIT mode
#
# Script file using Xterm and telnet to connect to a VMS host
# and give a decent vt220 emulation.
#
# Defaults
#
CURSOR=white
FG=white
BG=black
HOST=localhost
PORT=5555
TT=YES
TTFONT=Hack-Regular
FONT=9x15
BFONT=9x15bold
FONTSIZE=10
COLS=80
SCROLLBACK=1000
TERMID=vt220
#
ME="${0##*/}"
#
# Usage statement
#
Usage(){
echo " Usage: ${ME} [options]"
echo " Options: -80 for 80 column terminal"
echo " -132 for 132 column terminal"
echo " (default is ${COLS})"
echo " -bg colorname (default ${BG})"
echo " -fg colorname (default ${FG})"
echo " -fn fontname (when using -nott) (default ${FONT})"
echo " -fb bold fontname (when using -nott) (default ${BFONT})"
echo " -fa TrueType face name (not with -nott) (default ${TTFONT})"
echo " -fs font size (not with -nott) (default ${FONTSIZE})"
echo " -nott Don't use TrueType fonts (default is to use Truetype)"
echo " -sl scrollback lines (default ${SCROLLBACK})"
echo " -host [name | IP ] (default ${HOST})"
echo " -port number (default ${PORT})"
echo " -help|-h display help"
echo ""
echo " Example: \"${ME} -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 " Example: \"${ME} -host earth\""
echo " Starts a VMS session with default terminal settings "
echo " Example: \"${ME} -help\""
echo " Displays ${ME} options "
exit 1
}
#
# Parse the command line arguments
#
while [ $# != 0 ];
do
case $1 in
-80) COLS=80
FONT=spc12x24c
BFONT=spc12x24b
shift;;
-132) COLS=132
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;;
-fa) shift
TTFONT=$1
shift;;
-fs) shift
FONTSIZE=$1
shift;;
-nott) shift
TT=NO
shift;;
-sl) shift
SCROLLBACK=$1
shift;;
-host) shift
HOST=$1
shift;;
-port) shift
PORT=$1
shift;;
-h|-help|*)
Usage;;
esac
done
if [ "${TT}" == "YES" ]; then
FONTSEL="-fa ${TTFONT} -fs ${FONTSIZE}"
else
FONTSEL="-fn ${FONT} -fb ${BFONT}"
fi
xterm -title "VMSterm" -sb -sl ${SCROLLBACK} -geometry ${COLS}x24 \
-132 -fg ${FG} -bg ${BG} -cr ${CURSOR} ${FONTSEL} \
-rightbar -ti ${TERMID} -uc -ut \
-xrm XTerm.vt100.utf8:0 \
-xrm \
'XTerm*VT100.translations: #override \n \
~Shift <Key>F1: string(0x1b) string("OP") \n \
~Shift <Key>F2: string(0x1b) string("OQ") \n \
~Shift <Key>F3: string(0x1b) string("OR") \n \
~Shift <Key>F4: string(0x1b) string("OS") \n \
~Shift <Key>F5: string("Break") \n \
~Shift <Key>F6: string(0x1b) string("[17~") \n \
~Shift <Key>F7: string(0x1b) string("[18~") \n \
~Shift <Key>F8: string(0x1b) string("[19~") \n \
~Shift <Key>F9: string(0x1b) string("[20~") \n \
~Shift <Key>F10: string(0x1b) string("[21~") \n \
~Shift <Key>F11: string(0x1b) string("[23~") \n \
~Shift <Key>F12: string(0x1b) string("[24~") \n \
Shift <Key>F1: string(0x1b) string("[23~") \n \
Shift <Key>F2: string(0x1b) string("[24~") \n \
Shift <Key>F3: string(0x1b) string("[25~") \n \
Shift <Key>F4: string(0x1b) string("[26~") \n \
Shift <Key>F5: string(0x1b) string("[28~") \n \
Shift <Key>F6: string(0x1b) string("[29~") \n \
Shift <Key>F7: string(0x1b) string("[31~") \n \
Shift <Key>F8: string(0x1b) string("[32~") \n \
Shift <Key>F9: string(0x1b) string("[33~") \n \
Shift <Key>F10: string(0x1b) string("[34~") \n \
Shift <Key>F11: string(0x1b) string("[28~") \n \
Shift <Key>F12: string(0x1b) string("[29~") \n \
<Key>Print: string(0x1b) string("[28~") \n \
<Key>Cancel: string(0x1b) string("[29~") \n \
<Key>Pause: string(0x1b) string("Om") \n \
<Key>Insert: string(0x1b) string("[2~") \n \
<Key>Delete: string(0x1b) string("[3~") \n \
<Key>Home: string(0x1b) string("[1~") \n \
<Key>End: string(0x1b) string("[4~") \n \
<Key>Prior: string(0x1b) string("[5~") \n \
<Key>Next: string(0x1b) string("[6~") \n \
<Key>BackSpace: string(0x7f) \n \
<Key>Num_Lock: string(0x1b) string("OP") \n \
<Key>KP_Divide: string(0x1b) string("OQ") \n \
<Key>KP_Multiply: string(0x1b) string("OR") \n \
<Key>KP_Subtract: string(0x1b) string("OS") \n \
<Key>KP_Add: string(0x1b) string("Ol") \n \
<Key>KP_Enter: string(0x1b) string("OM") \n \
<Key>KP_Decimal: string(0x1b) string("On") \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 \
~Shift <Key>Up: string(0x1b) string("[A") \n \
Shift <Key>Up: scroll-back(1,lines) \n \
~Shift <Key>Down: string(0x1b) string("[B") \n \
Shift <Key>Down: scroll-forw(1,lines) \n \
<Key>Right: string(0x1b) string("[C") \n \
<Key>Left: string(0x1b) string("[D")' \
-e telnet $HOST $PORT
More information about the Simh
mailing list