├── glass_tty_vt220.ttf ├── README.md └── wps8term.sh /glass_tty_vt220.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaymiiOrg/wps8term/master/glass_tty_vt220.ttf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a xterm script to get simh-pdp8 to work with WPS-8. License is GPLv3 2 | 3 | On the [xterm](http://invisible-island.net/xterm/xterm.faq.html) website there is a script named `vmsterm`. This implements key remapping so that the numeric isle on your keyboard mimics the PF1-PF4 keys, it remaps the Backspace to send the correct RUB OUT CHAR (ascii 127) and other specific keys. It is intended for usage with VMS (PDP11 -> VAX -> VMS). 4 | 5 | I used this script and the `showkey` command on my own `vt220` in `vt52` mode to get the correct keycodes for the numeric function keys. It works in the specific `vt52` mode required for WPS-8. It remaps the arrow keys as well: 6 | 7 | - UP: LINE 8 | - DOWN: LINE 9 | - LEFT: BACKUP 10 | - RIGHT: ADVANCE 11 | 12 | See the WPS-8 guide on [my site](https://raymii.org) for a full explanation on the meaning of these specific keys. This mapping allows you to use left and right to go back one character and left/right + up/down to advance or go back one line at a time. 13 | 14 | 15 | -------------------------------------------------------------------------------- /wps8term.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # wps8term 3 | # Based on vmsterm, from an original script by Bob Ess 4 | # key translations by Erik Ahlefeldt 5 | # 6 | # Script file to run WPS-8 via SIMH pdp-8 7 | # emulator with correct remapping of a vt78 8 | # by Remy van Elst, https://raymii.org 9 | # Key translations recorded on a vt220 10 | # in vt52 mode, running simh and showkeys 11 | 12 | # usage: wps8term.sh wps.ini 13 | 14 | xterm -ti vt52 -title "wps8term" \ 15 | -geo 80x24 -fg green -bg black \ 16 | -cr green -fa 'Glass TTY VT220' -fs 15 -xrm \ 17 | 'XTerm*VT100.translations: #override \n \ 18 | ~Shift F5: string("Break") \n \ 19 | ~Shift F6: string(0x1b) string("?q") \n \ 20 | ~Shift F7: string(0x1b) string("?p") \n \ 21 | ~Shift F8: string(0x1b) string("[19~") \n \ 22 | ~Shift F9: string(0x1b) string("[20~") \n \ 23 | ~Shift F10: string(0x1b) string("[21~") \n \ 24 | ~Shift F11: string(0x1b) string("[23~") \n \ 25 | ~Shift F12: string(0x1b) string("[24~") \n \ 26 | Shift F1: string(0x1b) string("[23~") \n \ 27 | Shift F2: string(0x1b) string("[24~") \n \ 28 | Shift F3: string(0x1b) string("[25~") \n \ 29 | Shift F4: string(0x1b) string("[26~") \n \ 30 | Shift F5: string(0x1b) string("[28~") \n \ 31 | Shift F6: string(0x1b) string("[29~") \n \ 32 | Shift F7: string(0x1b) string("[31~") \n \ 33 | Shift F8: string(0x1b) string("[32~") \n \ 34 | Shift F9: string(0x1b) string("[33~") \n \ 35 | Shift F10: string(0x1b) string("[34~") \n \ 36 | Shift F11: string(0x1b) string("[28~") \n \ 37 | Shift F12: string(0x1b) string("[29~") \n \ 38 | Delete: string(0x7f) \n \ 39 | BackSpace: string(0x7f) \n \ 40 | Num_Lock: string(0x1b) string("?P") \n \ 41 | KP_Divide: string(0x1b) string("?Q") \n \ 42 | KP_Multiply: string(0x1b) string("?R") \n \ 43 | KP_Subtract: string(0x1b) string("?S") \n \ 44 | KP_Add: string(0x1b) string("?l") \n \ 45 | KP_Enter: string(0x1b) string("?M") \n \ 46 | KP_Decimal: string(0x1b) string("?n") \n \ 47 | KP_0: string(0x1b) string("?p") \n \ 48 | KP_1: string(0x1b) string("?q") \n \ 49 | KP_2: string(0x1b) string("?r") \n \ 50 | KP_3: string(0x1b) string("?s") \n \ 51 | KP_4: string(0x1b) string("?t") \n \ 52 | KP_5: string(0x1b) string("?u") \n \ 53 | KP_6: string(0x1b) string("?v") \n \ 54 | KP_7: string(0x1b) string("?w") \n \ 55 | KP_8: string(0x1b) string("?x") \n \ 56 | KP_9: string(0x1b) string("?y") \n \ 57 | ~Shift Up: string(0x1b) string("?r")\n \ 58 | Shift Up: scroll-back(1,lines) \n \ 59 | ~Shift Down: string(0x1b) string("?r") \n \ 60 | Shift Down: scroll-forw(1,lines) \n \ 61 | Right: string(0x1b) string("?p") \n \ 62 | Left: string(0x1b) string("?q")' \ 63 | -e simh-pdp8 "$1" 64 | 65 | --------------------------------------------------------------------------------