;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs
-;; Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-;; 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2000-2016 Free Software Foundation, Inc.
-;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com>
-;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com>
+;; Author: Kevin Gallagher <kevin.gal@verizon.net>
+;; Maintainer: Kevin Gallagher <kevin.gal@verizon.net>
;; Keywords: emulations
;; Package: edt
;; emacs -q -l edt-mapper.el
-;; The "-q" option prevents loading of your .emacs file (commands
+;; The "-q" option prevents loading of your init file (commands
;; therein might confuse this program).
;; An instruction screen showing the typical LK-201 terminal
;; and loaded automatically when the EDT emulation is started. If
;; you specify a different file name, you will need to set the
;; variable "edt-keys-file" before starting the EDT emulation.
-;; Here's how you might go about doing that in your .emacs file.
+;; Here's how you might go about doing that in your init file:
;; (setq edt-keys-file (expand-file-name "~/.my-emacs-keys"))
;;; Code:
+;; Otherwise it just hangs. This seems preferable.
+(if noninteractive
+ (error "edt-mapper cannot be loaded in batch mode"))
+
;;;
;;; Decide Emacs Variant, GNU Emacs or XEmacs (aka Lucid Emacs).
;;; Determine Window System, and X Server Vendor (if appropriate).
;;;
(defconst edt-window-system (if (featurep 'xemacs) (console-type) window-system)
- "Indicates window system \(in GNU Emacs\) or console type \(in XEmacs\).")
+ "Indicates window system (in GNU Emacs) or console type (in XEmacs).")
(declare-function x-server-vendor "xfns.c" (&optional terminal))
;;; Logic in simple.el maps some of these unassigned function keys to
;;; ordinary typing keys. Where this is the case, a call to
;;; read-key-sequence, below, does not return the name of the function
-;;; key pressd by the user but, instead, it returns the name of the
+;;; key pressed by the user but, instead, it returns the name of the
;;; key to which it has been mapped. It needs to know the name of the
;;; key pressed by the user. As a workaround, we assign a function to
;;; each of the unassigned function keys of interest, here. These
Here's a picture of the standard LK-201 keypad for reference:
- _______________________ _______________________________
- | HELP | DO | | F17 | F18 | F19 | F20 |
- | | | | | | | |
- |_______|_______________| |_______|_______|_______|_______|
- _______________________ _______________________________
- | FIND |INSERT |REMOVE | | PF1 | PF2 | PF3 | PF4 |
- | | | | | | | | |
- |_______|_______|_______| |_______|_______|_______|_______|
- |SELECT |PREVIOU| NEXT | | KP7 | KP8 | KP9 | KP- |
- | | | | | | | | |
- |_______|_______|_______| |_______|_______|_______|_______|
- | UP | | KP4 | KP5 | KP6 | KP, |
- | | | | | | |
- _______|_______|_______ |_______|_______|_______|_______|
- | LEFT | DOWN | RIGHT | | KP1 | KP2 | KP3 | |
- | | | | | | | | |
- |_______|_______|_______| |_______|_______|_______| KPE |
- | KP0 | KPP | |
- | | | |
- |_______________|_______|_______|
+ ________________________ _______________________________
+ | HELP | DO | | F17 | F18 | F19 | F20 |
+ | | | | | | | |
+ |_______|________________| |_______|_______|_______|_______|
+ ________________________ _______________________________
+ | FIND |INSERT |REMOVE | | PF1 | PF2 | PF3 | PF4 |
+ | | | | | | | | |
+ |_______|________|_______| |_______|_______|_______|_______|
+ |SELECT |PREVIOUS|NEXT | | KP7 | KP8 | KP9 | KP- |
+ | | | | | | | | |
+ |_______|________|_______| |_______|_______|_______|_______|
+ | UP | | KP4 | KP5 | KP6 | KP, |
+ | | | | | | |
+ _______|________|_______ |_______|_______|_______|_______|
+ | LEFT | DOWN | RIGHT | | KP1 | KP2 | KP3 | |
+ | | | | | | | | |
+ |_______|________|_______| |_______|_______|_______| KPE |
+ | KP0 | KPP | |
+ | | | |
+ |_______________|_______|_______|
REMEMBER: JUST PRESS RETURN TO SKIP MAPPING A KEY.
PRESS THE KEY SPECIFIED IN THE MINIBUFFER BELOW.
- _______________________ _______________________________
- | HELP | DO | | F17 | F18 | F19 | F20 |
- |_______|_______________| |_______|_______|_______|_______|
- _______________________ _______________________________
- | FIND |INSERT |REMOVE | | PF1 | PF2 | PF3 | PF4 |
- |_______|_______|_______| |_______|_______|_______|_______|
- |SELECT |PREVIOU| NEXT | | KP7 | KP8 | KP9 | KP- |
- |_______|_______|_______| |_______|_______|_______|_______|
- | UP | | KP4 | KP5 | KP6 | KP, |
- _______|_______|_______ |_______|_______|_______|_______|
- | LEFT | DOWN | RIGHT | | KP1 | KP2 | KP3 | |
- |_______|_______|_______| |_______|_______|_______| KPE |
- | KP0 | KPP | |
- |_______________|_______|_______|
+ ________________________ _______________________________
+ | HELP | DO | | F17 | F18 | F19 | F20 |
+ |_______|________________| |_______|_______|_______|_______|
+ ________________________ _______________________________
+ | FIND |INSERT |REMOVE | | PF1 | PF2 | PF3 | PF4 |
+ |_______|________|_______| |_______|_______|_______|_______|
+ |SELECT |PREVIOUS| NEXT | | KP7 | KP8 | KP9 | KP- |
+ |_______|________|_______| |_______|_______|_______|_______|
+ | UP | | KP4 | KP5 | KP6 | KP, |
+ _______|________|_______ |_______|_______|_______|_______|
+ | LEFT | DOWN | RIGHT | | KP1 | KP2 | KP3 | |
+ |_______|________|_______| |_______|_______|_______| KPE |
+ | KP0 | KPP | |
+ |_______________|_______|_______|
REMEMBER: JUST PRESS RETURN TO SKIP MAPPING A KEY.")))
(defun edt-map-key (ident descrip)
(interactive)
(if (featurep 'xemacs)
- (progn
+ (progn
(setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident descrip)))
(setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 0))) "]"))
(cond ((not (equal edt-key edt-return))