[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