Article View: mod.computers.apollo
Article #223GNU EMACS
From: Zubkoff
Date: Fri, 01 Aug 1986 03:41
Date: Fri, 01 Aug 1986 03:41
106 lines
5080 bytes
5080 bytes
This note is to announce the availability of modifications to GNU EMACS version
17.63 to support GPR on the APOLLO. Overall, GNU EMACS with GPR support is
quite nice; there are a few small problems though. The file APOLLO included
below describes the constraints on use of GNU EMACS. The GPR modifications are
being sent back to the MIT distribution, but in the meanwhile I expect many of
you would like to start using this immediately. Therefore, I've left the file
Ps:<Zubkoff.Public>apollo.tar on SU-SCORE.ARPA. This is a tar format file
containing all the files you will need. For each modified file, there is both
the original source file (with "-" appended to the name) and the new source
file. This will assist those not having version 17.63.
I will be leaving Saturday morning for the LISP Conference and AAAI, so if
anyone sends me mail, don't expect a reply for three weeks or so.
Enjoy!
Leonard
GNU EMACS GPR SUPPORT
Leonard N. Zubkoff
LUCID, Incorporated
29 July 1986
This version of GNU EMACS (17.63) includes experimental support for the APOLLO
DOMAIN Graphics Primitives (GPR) instead of using the VT100 server.
In order to use GPR with GNU EMACS, there are certain constraints due to
interactions between the GPR model of I/O and the GNU EMACS model of I/O.
Specifically, GNU EMACS expects to see interrupt driven I/O using the 4.2BSD
UNIX SIGIO signal, and it expects to use the 4.2BSD select system call to wait
for input from multiple sources. Therefore, the GPR support gets around this
by dividing the GNU EMACS process into two parts: the parent process invoked by
the user handles GPR input events and sends keystroke data down a pipe to a
child process, which processes the user keystrokes and performs display output
using GPR.
This method works imperfectly due to problems with running GPR in two separate
processes operating on the same window:
(1) A GNU EMACS window can neither be moved nor resized once it has been
created. If such a window is moved or resized, GNU EMACS will continue to
display output in the position the window previously occupied.
(2) The DM cursor and mouse cannot be used for input and output. Rather, GNU
EMACS explicitly draws and updates its own cursor.
(3) GNU EMACS cannot be suspended with C-Z or C-X C-Z. Therefore, the low
level SuspendEMACS primitive has been redefined to make the window EMACS is in
invisible. For this reason, I recommend using key definitions similar to the
following to make using EMACS easier:
kd F2 CP /bin/start_csh -N Emacs; WC -A; ES 'exec /lucid/gnuemacs/emacs' EN ke
kd F3 WI Emacs -W; WP Emacs -T ke
This defines the F2 key to create a new EMACS in a window named Emacs and
defines the F3 key to either POP the EMACS window or make it visible, whichever
is necessary. Running EMACS in a 4.2BSD csh may be necessary for proper
operation; if your SYSTYPE is not set to "bsd4.2", you must change the above
start_csh command from /bin/start_csh to /bsd4.2/bin/start_csh.
While in GNU EMACS several of the APOLLO function keys are translated into
standard EMACS commands rather than DM commands. These keys and their
EMACS key equivalents are:
BS DEL
DELETE DEL
CR C-M
TAB C-I
SHIFT TAB C-I
CONTROL TAB C-I
LINE DEL C-K
CHAR DEL C-D
UP ARROW C-P
LEFT ARROW C-B
RIGHT ARROW C-F
DOWN ARROW C-N
SHIFT LEFT ARROW M-B
SHIFT RIGHT ARROW M-F
LEFT BAR ARROW C-A
RIGHT BAR ARROW C-E
SHIFT UP ARROW M-1 M-V
SHIFT DOWN ARROW M-1 C-V
DOWN BOX ARROW C-V
UP BOX ARROW M-V
MARK C-@
COPY DM Copy Command
CUT DM Cut Command
PASTE DM Paste Command
UNDO C-_
GROW (ignored)
MOVE (ignored)
AGAIN C-@ C-E M-W M-> C-Y (useful in SHELL buffers)
SAVE C-X C-S
RIGHT BOX ARROW This key functions as a META KEY. Pressing control
followed by RIGHT BOX ARROW does not give a C-M-
command on keyboard 2 however; it seems to work
correctly on keyboard 3. Pressing META first and then
CONTROL does work.
LEFT BOX ARROW (ignored)
Note: To use the DM Copy, Cut, and Paste commands, EMACS commands to access DM
paste buffers must be available. Load lisp/apollo.el for appropriate EMACS
commands. This file also demonstrates use of the execute-DM-command function.
Thanks to J. W. Peterson from the University of Utah for the DM interface.
Technical Details
Message-ID:
<ZUBKOFF.12227222978.BABYL@SU-SCORE.ARPA>Path:
arc1-ca.pugleaf.net!utzoo!decvax!decwrl!pyramid!hplabs!ucbvax!SU-SCORE.ARPA!ZubkoffShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!decvax!decwrl!pyramid!hplabs!ucbvax!SU-SCORE.ARPA!Zubkoff From: Zubkoff@SU-SCORE.ARPA.UUCP Newsgroups: mod.computers.apollo Subject: GNU EMACS Message-ID: <ZUBKOFF.12227222978.BABYL@SU-SCORE.ARPA> Date: Thu, 31-Jul-86 23:41:00 EDT Article-I.D.: SU-SCORE.ZUBKOFF.12227222978.BABYL Posted: Thu Jul 31 23:41:00 1986 Date-Received: Fri, 1-Aug-86 23:14:58 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 106 Approved: apollo@yale-comix.arpa