Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: 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: 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 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: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.