roeder@sbsvax.UUCP (Edgar Roeder) (01/09/90)
Hi! Now it is ready! The new version of GNU-Emacs 18.55 is posted to the binaries group. It is 22 parts. So if your machine has a small expiration time, you can start looking out for this package. The program will run on machines with 1 MB, but only if you are an absolute emacs fan. After a small patch you can get 200 kB free for editing on an otherwise empty 1040 ST (with gulam). I'll post now temacs and the binaries needed to produce a running emacs (18.55). The lisp sources and C-source diffs will be posted later. You may need more than 1 MB to dump emacs (i dumped it to a 500 kB RAM-disk on a Mega ST2) and the dumped executable is then 520 kB. What you get is a full port of GNU-Emacs enhanced with mouse-support minus processes (can't work without multitasking). The editor will start up in 4 seconds from a hard-disk (packed executable in 11 sec). - Edgar Here is the read_me file of the package and the contents of gnuemacs.zoo: Archive gnuemacs.zoo: doc-18.55 abbrev.elc atari.elc buff-men.elc c-mode.elc dumpfix dumping.txt files.elc fill.elc help.elc indent.elc isearch.elc keypad.elc lisp-mod.elc lisp.elc loaddefs.el loadup.el page.elc paragrap.elc paths.el register.elc replace.elc simple.elc site-ini.el site-loa.el st-mouse.elc startup.elc subr.elc temacs text-mod.elc version.el window.elc bytecomp.el dired.el dumpfix.c header.el novice.el read_me shell.el st-mouse.el ------------------------------- GNU Emacs 18.55 Atari ST 1. Filename Syntax All filenames inside of emacs use the unix syntax ('/' as directory delimiter). To specify a drive name you can either use '/dev/X' or '~X' where X is the drive letter. In the path replace all occurences of '\' with '/' (no slashes are allowed inside of filenames). As usual in unix '~/' means the directory '$HOME/' (HOME is an environment var). Alternatively you can use the 'st-mount-drive' command to specify a mounting point for a specific st-drive. To access drive A: as /disk and drive C: as / you can do the following: 'M-x st-mount-drive<Return>' 'A<Return>' '/disk/<Return>' and the same for drive C. You can also write in your emacs.rc file: (st-mount-drive "C" "/"). 2. Termcap Emacs uses the termcap library. You can specify a terminal name in the env-var TERM (default is 'atari') and a termcap file or an entry in TERMCAP (default is '/etc/termcap'). The termcap entry (or the entry in the file corresponding to TERM) has the same syntax as in unix. A sample file is included. If you have some enhanced terminal emulator for the ST (for example the X_VT52.PRG) you can use its features (underline, colors). If you are using emacs over a serial line from another machine and you get a hangup (carrier high -> low) the program is finished (after an auto-save). The only problem with using emacs over a serial line is the number of lines and columns. They don't come from the termcap-entry but are read from negative line-A variables. 3. Environment Variables You can set the environment vars with the 'setenv' command in your favourite shell or you can initialize it for the desktop with GEMBOOT.PRG. The lisp code of emacs is loaded from $EMACSLOADPATH (default is '/usr/lib/GNUemacs/lisp'). The documentation and info dirs are: '/usr/lib/GNUemacs/etc' and '/usr/lib/GNUemacs/info'. The variable EMACSLIB overwrites the default value for the lisp-library-dir, EMACSDOC is the same for the documentation. To support 'add-log.el', you can set some variables to identify your machine and yourself: USER or LOGNAME is your user-name (as on unix) FULLNAME it's you full name (of course :-) SYSNAME is the name of your machine (default: st-tos) Environment variables are expected in unix-format. In gulam you get this with 'set env_style=mw', in master 'setenv UNIX [n]' with [n] > 0. 4. Special Files At startup time emacs loads $EMACSLOADPATH/loadup.el and this loads $EMACSLOADPATH/site-ini.el, then ~/emacs.rc or $EMACSLOADPATH/default are loaded. To inhibit the last step, you can use 'emacs -q'. 5. Functions ommited in this Version All functions dealing with the user-id, dumping of emacs (which would at least be very difficult in TOS) and asynchronous processes. 6. New Functions Not new but a different implementation has call-process. This is essentially a system()-call (via _shell_p) to the running shell. The output (and input) for shell-commands is redirected in (and from) files if the variable shell-tmpfile is non-nil. If this is nil a feature of my favourite shell Master is used, namely redirection of the output in the shell-variable SHELL_OUTPUT via '==>'. In addition the new function getvar is used to get the value of such a shell variable into the emacs environment. The function time-to-string converts a time pair as given by file-attributes into a human readable string. If you suspend emacs (either by pressing ^Z or using 'suspend-emacs') the running shell is invoked with '-i' as single parameter (gulam is called with 'ue', the craft-shell with 'sh'). You can go back to emacs with the 'exit'-command of your shell (gulam: ^Z or ^X^C). ST-specific functions start with 'st-'. You can switch on mouse-support with 'st-enable-mouse' (switch off with 'st-disable-mouse'). See also "st-mouse.el". The file "shell.el" has implemented a shell-mode as a first try. In master you should set 'varsize 50000' (or another large value) to get all output. Sometimes if the shell sends escape-sequences you may need to redisplay the screen with ^L. In gulam you should set 'st-shell-tmpfile' to a filename on a RAM-disk to speed up execution. The command 'call-process-on-region' seems not to work under gulam (it always wants to read from the console). 7. Keyboard The Alternate-key is used as emacs' Meta-key. The function keys, the keys on the cursor block and those on the numeric keypad have ESC-sequences assigned which start with ESC-# and then follows either the ascii or the scan code returned by the key. The escape sequences are different when you press Alternate at the same time. The file 'atari.el' contains some sample key bindings for those keys. Alternate is only accepted if meta-flag is t or your termcap-entry has the xm capability set. Instead of Esc-# the function keys start then with M-# ('#'|0x80). This is invaluable in incremental-search. 8. Memory requirements Emacs was designed for computers with (nearly) unlimited virtual memory. Since the program crashes very fast if you have no more memory, you should obey the 95% warning. The actual version uses the whole system-memory from the end of BSS until it's own memory top for malloc and the stack (alloca). The warning is only given by malloc. You can ask about your free memory with 'M-Esc data-bytes-free'. At file-offset 366828 is the variable system-heap (default 00 01 90 00 = 100 kB), which tells the program how much space it should leave for the operating system (and so the shell). On a Mega ST4 you can enlarge this value. With 1 MB main memory, you can set this to a few kB. You can do this with a disk monitor (hint: the above sequence of 4 hex bytes appears 2 times in the whole file temacs). 9. Creating a dumped Version You need two different memory dumps to get a new (relocatable) emacs. The dump files will be ~500 kB large. The running emacs is 520 kB (380 kB packed). Please see the file dumping.txt for instructions how to dump temacs and produce xemacs (= emacs). And please: ask me if you have any problems (E-Mail address is below)! This was the most tricky part for me too! 10. Misc Emacs recognizes extended argument passing with the xArg protocoll of Dale Schumacher. The modified system vectors (address error, VBL queue and etv_term) are marked with "XBRA" & "GNUC". Because the routines for the keyboard interrupt are very time critical, emacs shares the routine with other programs (if they are started before emacs and the version number is the same). Emacs has been crosscompiled for Atari ST on a Sun 3/60 with the GNU-C compiler version 1.35 and also compiled on a Mega ST2. Edgar Roeder E-Mail: roeder@cs.uni-sb.de -- Mail: Edgar R\"oder E-Mail: roeder@cs.uni-sb.de Liesbet-Dill-Stra\ss e 3 D-6602 Dudweiler -o- -o- W-Germany ^ Phone: 06897/74643 '---'
buggs@cup.portal.com (William Edward JuneJr) (01/15/90)
WHERE is the latest version of GCC found? Is there an ST port of G++? I'd prefer a dial up BBS as I can't FTP here, or if they could be UL'd to the comp.sys.binaries, that be great too! Ed June 71171, 1311 CI$ 404-471-9230, Ground Control BBS, HST & Pursuitable FoReM ST node 386 *AND* Fido node 1:133/403