🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: mod.computers.apollo
Article #223

GNU EMACS

#223
From: Zubkoff
Date: Fri, 01 Aug 1986 03:41
106 lines
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!Zubkoff

Show 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