5 uemacs is a full screen editor based on uEmacs/PK 4.0. This particular
6 version is intended to run on current Linux systems as well as on BSD
7 variants and therefore cleans up legacy code from the old MSDOS and
8 friends era. Furthermore, this version got permission by aquest/Greg
9 Mowczko to be released under the terms of GPL, version 2.
11 The public GIT repository of this fork is available at:
12 http://repo.or.cz/w/uemacs.git
14 For questions or patches you are welcome to write an email to:
15 Daniel Borkmann <borkmann@gnumaniacs.org>
17 Have a look at the INSTALL file for setup instructions and at the
18 HACKING file for uemacs code hacking. Have fun!
26 Full screen editor based on MicroEMACS 3.9e
28 MicroEMACS was written by Dave G. Conroy and
29 greatly modified by Daniel M. Lawrence
33 MicroEMACS 3.9 (c) Copyright 1987 Daniel M. Lawrence.
34 Reference Manual Copyright 1987 by Brian Straight and
35 Daniel M. Lawrence. No copyright claimed for modifications
36 made by Petri H. Kutvonen.
38 Original statement of copying policy:
40 MicroEMACS 3.9 can be copied and distributed freely for any
41 non-commercial purposes. MicroEMACS 3.9 can only be incorporated
42 into commercial software with the permission of the current author
48 uEmacs/PK 4.0 is an enhanced version of MicroEMACS 3.9e. Enhancements
49 have been incorporated by Petri H. Kutvonen, University of Helsinki,
50 Finland <kutvonen@cs.Helsinki.FI>.
53 WHY IS IT BASED ON AN OLD VERSION OF MicroEMACS?
55 In my opinion 3.9e was the best of all MicroEMACSes. Creeping
56 featurism, growing size, and reduced portability made versions 3.10 and
57 3.11 less attractive. MicroEMACS 3.9e was one of the few editors that
58 were truly portable between different flavours of UNIX, PC/MS-DOS, and
59 VAX/VMS. It was pretty robust - although not flawless. uEmacs/PK 4.0
60 includes numerous bug fixes, adds some new functionality and comfort but
61 does not sacrifice the best things (small size and portability).
64 WHAT IS NEW - COMPARED TO MicroEMACS 3.9e?
68 o advisory file locking on BSD-derived systems
69 o new screen update algorithm, borrowed largely form "vile" by
70 Paul G. Fox <pgf@cayman.com>, uEmacs can now be used on slow (1200 bps)
71 connections because it uses terminal scrolling capabilities
72 o new variables $scroll, $jump, and $overlap to control scrolling
73 o uEmacs reacts to windows size change signals (UNIX), also from "vile"
74 o automatic file name completion, works under UNIX and PC/MS-DOS
75 o functions keys on VT200 style keyboards can be used
76 o new command: justify-paragraph (Meta J)
77 o something important for us Europeans: allow the use of 8 bit ISO Latin 1
78 alphabet (UNIX and VMS), on an IBM-PC the accented characters are
79 interpreted as letters too
80 o the characters {|}[\] can be interpreted as letters, these are
81 frequently used as "national replacement characters" especially in
83 o allow use of XON/XOFF flow control: alternative key sequences for
84 ^S and ^Q, don't disable flow control
85 o speed up reading of files (under VMS especially)
86 o new variable $tab, hardware tab stop (4 or 8)
87 o automatic configuration on some common systems
88 o new style mode line, includes percentage indicator
91 Bug fixes - not very interesting:
93 o use TI and TE termcap strings, uEmacs works now correctly under
94 Sunview and OpenWindows
95 o use old protection mask on existing files (VMS)
96 o catch data overrun errors (VMS)
97 o allow VMS file names with characters < and >, replacements for [ and ]
98 o allow ANSI screens larger than 24 lines
99 o fix add/delete(-global)-mode
100 o display EOF as char = 0x0, not as garbage
101 o allow upper case letters in answers
102 o fix command interpreter spawning
103 o don't use reverse video on some (TVI925 style) terminals
104 o fix message line writing
106 o fix &left and &mid functions
108 o smaller bug fixes are too numerous to mention
112 o removed (obsolete and untested) support for Amiga, Atari, and Mac
115 WHERE HAS IT BEEN TESTED?
117 uEmacs/PK 4.0 has been tested by myself on the following platforms:
119 IBM PC and compatibles, PC/MS-DOS 3.2 and up
121 SPARC, SunOS 4.1.X and 5.{2|3|4|5} (Solaris 2)
122 VAX 8800 and 6000-420, VMS 5.4
123 DECstation 3100, Ultrix V4.1
124 IBM RS/6000, AIX 3.1.5
125 IBM PS/2, UNIX System V/386 Release 3.2
127 AT&T 3B2/400, UNIX System V Release 2.0
128 Various Toshiba i486 laptops, Linux 0.99pl13 thru 2.0.21
130 I have no reason to believe that there would be any problems to port
131 uEmacs/PK 4.0 to any reasonable BSD-, OSF/1-, or SVR4-based UNIX system.
136 uEmacs/PK is available by anonymous FTP from ftp.cs.Helsinki.FI (IP
137 address can change) in the directory pub/Software/Local/uEmacs-PK. You
138 cannot get it by email of uucp. Hopefully it will bee soon available
139 from other file servers too.
142 WHAT IS IN THE PACKAGE
144 o em-4.0.<x>.tar.gz: full source, make and command files to build the
145 editor, reference manual as a MS-Write document,
146 tarred and gzipped, for patchlevel <x>
148 o there used to be a packages with binaries for PC/MS-DOS,
149 SPARC/SunOS4, Sun 3, MIPS/Ultrix, 386/ix, IBM RS/6000, VAX/VMS,
150 if you are really desperate you can try contacting me for an old
154 HOW TO INSTALL uEmacs/PK?
156 o PC/MS-DOS: Compile the package with using Turbo C 2.0 or MSC 6.0.
157 (Pretty obsolete both of these.) There are some support files
158 you might find useful in the full distribution.
160 o UNIX: Copy makefile.unx to makefile, edit to taste, look at estruct.h,
161 do a 'make', test the editor, 'make install'.
163 o VMS: To compile use '@VMSMAKE', install manually, uEmacs/PK uses a
164 logical name EMACS_DIR to locate its initialization files.
169 There will probably not be many new versions of uEmacs/PK, maybe just
170 some bug fixes. I have no intention to develope the code any further.
171 However, if you have some comments or good suggestions, you may find
172 the email address below useful.
175 Department of Computer Science
176 P.O.Box 26 (Teollisuuskatu 23)
177 FIN-00014 UNIVERSTITY OF HELSINKI
180 email: kutvonen@cs.Helsinki.FI
184 ACKNOWLEDGEMENTS AND STATUS
186 I would like to thank Linus Torvalds and Jyrki Havia for their work on
187 some bugs. uEmacs/PK 4.0.10 included fixes for a number of bugs and it
188 was assumed to be the final release for the UNIX platform. However,
189 there has been a couple of maintenance releases, so the final version is
190 4.0.13. On other platforms there has been no new releases since 4.0.3 in
195 And yet another release (thanks Linus)! This is most definitely the
196 really last (not latest) version, 4.0.14. Hmm ... 14 looks nicer than 13.
200 Still one more release - or actually a small patch - which closes a
201 potential security hole. Now we are at 4.0.15. This IS the FINAL release!
206 MicroEMACS 3.9 Release Notes July 22, 1987
208 **********************************************************************
210 (C)opyright 1987 by Daniel M. Lawrence
211 MicroEMACS 3.9 can be copied and distributed freely for any
212 non-commercial purposes. MicroEMACS 3.9 can only be incorporated
213 into commercial software with the permission of the current author.
215 **********************************************************************
217 MicroEMACS 3.9 is availible in a couple of different ways.
218 First, it is availible via my bulletin board system.....
220 The Programmer's Room
223 24 hours 300/1200 baud
225 Also it should be online on the following BBS's:
227 The Starship Trooper Fido 201/1 (317) 423-2281 2400
229 [These following two are open from 10pm till 5pm
230 and only while Purdue is in session]
231 The NightStaff Fido 201/4 (317) 495-4270 1200
232 The Access Violation Fido 201/5 (317) 495-4270 9600
234 There it is arranged as three MSDOS .ARC files, EMACSDOC.ARC
235 which contains the documentation and command files, EMACSSRC.ARC which
236 contains the sources and the UNIX Makefile, and EMACSEXE.EXE which
237 contains the MSDOS executables. Also all the various executables are
238 available individually.
240 EMACSDOC.ARC includes the files:
244 (These four files should be in your path for the standard setup)
245 EMACS.RC Standard startup file
246 NEWPAGE.CMD Shifted Function key Pager
247 PPAGE.CMD Programming page
248 WPAGE.CMD Word processing page
249 BPAGE.CMD Block and box manipulation page
251 ME110.RC HP110 startup file
252 ME150.RC HP150 startup file
253 AMIGA.RC AMIGA ".emacsrc" startup file
254 ST520.RC ATARI ST startup file
256 EMACS.HLP Online help file
257 EMACS.MSS MicroSCRIBE format of EMACS.TXT
258 EMACS.TXT EMACS BEGINNER'S/REFERENCE MANUAL
260 AZMAP.CMD Translate AZTEC .SYM files to .MAP
261 BDATA.CMD BASIC Data statement builder
262 FINDCOM.CMD Find mismatched C comments
263 FUNC.CMD Allow function keys on systems with non (like UNIX)
264 MENU.CMD Sample Menu system
265 MENU1 datafile for menu system
266 SHELL.CMD Sample interactive MSDOS shell
267 TRAND.CMD Generate random numbers and do statistics on them
269 EMACSSRC.ARC includes the files:
271 ALINE.H Atari ST graphic header file
272 ANSI.C ANSI screen driver
273 BASIC.C basic cursor movement
274 BIND.C key binding commands
275 BUFFER.C buffer manipulation commands
276 CRYPT.C encryption functions
277 DOLOCK file locking stub routines
278 DG10.C Data General 10 screen driver
279 DISPLAY.C main display driver
281 EDEF.H global variable declarations
282 EFUNC.H function name list
283 EPATH.H default path settings
284 ESTRUCT.H configuration and structure definitions
285 EVAL.C expression evaluator
286 EVAR.H EMACS macro variable declarations
287 EXEC.C macro execution functions
288 FILE.C user file functions
289 FILEIO.C low level file I/O driver
290 HP110.C HP110 screen driver
291 HP150.C HP150(A or C) screen driver
292 IBMPC.C IBM-PC CGA and MONOCHROME driver
293 INPUT.C low level user input driver
294 ISEARCH.C incremental search functions
295 LINE.C text line manipulation functions
296 LOCK.C file locking functions
297 MAIN.C argument parsing and command loop
298 RANDOM.C other random user functions
299 REGION.C region cut & paste functions
300 SEARCH.C search and replace functions
301 SPAWN.C OS interface driver
302 ST520.C ATARI ST1040 screen driver
303 TCAP.C Termcap screen driver
304 TERMIO.C low level I/O driver
305 TIPC.C TI-PC screen driver
306 VMSVT.C VMS screen driver
307 VT52.C VT52 screen driver
308 WINDOW.C window manipulation functions
309 WORD.C word manipulation functions
310 Z309.C Zenith 100 PC series terminal driver
312 EMACSEXE.ARC includes the files:
314 MEIBM.EXE IBM-PC CGA/MONO/EGA version
315 MEANSI.EXE MSDOS ANSI graphics version
316 ME110.EXE HP110 portable version
317 ME150.EXE HP150 version
318 ME309.EXE Zenith 100 PC series version
319 ME520.PRG Atari 520/1040ST version
320 MEAMIGA. Amiga 1000 version
322 Recently, MicroSPELL 1.0 has been released. This program allows
323 you to spell check text files and uses MicroEMACS to scan the file,
324 doing various corrections.
326 MicroSCRIBE, a fairly SCRIBE compatible text formatter to go
327 along with these programs will probably be available for beta testing
328 early spring 1988. This program is turning out to be a lot more complex
329 than I thought it would be, and is taking more time to get out.
331 I have in my possesion a port of MicroEMACS 3.8i to the
332 Macintosh, and I will be incorporating the needed changes for the current
333 version to support the Macintosh.
335 As before, I will continue to support these programs, and
336 encourage everyone to spread them around as much as they can. If you
337 make what you think are changes that are useful to many, send me the
338 updates, and as time permits, I will incorporate the ones I understand,
339 and agree with into the master sources.
341 MicroEMACS is available on disk directly from my by sending me
342 $25 per order and a note specifying the disk format and the product that
343 you need. I can fill orders for IBM-PC high/low density 5 1/4 and 3
344 1/5, ATARI ST single and double density, AMIGA disks and HP150 disks.
345 (You do not need to send disks or mailers, I will provide these.) The
346 distribution set includes on disk all docs, executables and sources.
347 Also I will register you and you will receive automatic notices of new
348 versions of all the programs I am releasing.
350 Commercial lisences to allow MicroEMACS to be incorporated into
351 other software packages are also available at a reasonable per package
352 price. Also I am available to do customization of MicroEMACS at an
353 hourly rate. Send all requests to the address below:
355 USmail: Daniel Lawrence
359 UUCP: pur-ee!j.cc.purdue.edu!nwd
360 ARPA: nwd@j.cc.purdue.edu
361 FIDO: The Programmer's Room 201/2
366 New Features since version 3.8i
367 ===============================
369 ** New standard startup file
371 The new emacs.rc file is segmented into more parts and loads much
372 faster than before. Separate "pages" of shifted function keys are
373 available. Users can write their own "pages".
375 *** New Variables (there are a lot...)
377 $status returns status of last command
378 $palette color palette settings
379 $lastkey returns last keystroke
380 $curchar returns and set the ascii number of the
381 character under the point
382 $progname always returns "MicroEMACS"
383 $version always returns the current version ("3.9")
384 $discmd sets display of messages on the command
385 line (except via the write-message command)
386 $disinp sets echoing of characters during input on the
388 $wline returns and sets # lines in current window
389 $cwline returns and set current line within window
390 $target returns/sets target for line moves
391 $search returns/sets default search string
392 $replace returns/sets default replace string
393 $match returns last matched string in magic search
394 $cmode returns/sets encoded mode of current buffer
395 $gmode returns/sets encoded global mode (see appendix E
396 in emacs.mss to decode this)
397 $tpause returns/sets the pause for fence matching
398 (this is in rather arbitrary units which
399 WILL vary from machine to machine)
400 $line return/sets the contents of the current line
401 $gflags global operations flag (see emacs.txt Appendix G)
402 $rval child process return value
404 *** New computers supported
406 Atari 1040ST all three graphics modes and 50 line mode on a
407 monochrome monitor. The mouse is bound to the
410 *** New Compilers supported
412 Turbo C v1.0 under MSDOS is now a supported compiler.
413 Mark Williams C on the Atari ST is also supported.
417 !while <condition> loops while <cond> is true
419 !break breaks out of the innermost !while
421 !endwhile delimits the end of a !while loop
423 All !gotos are legal into and out of a !while loop.
427 This mode saves the file out to disk every time 256 have been
428 inserted. $asave controls the # of characters between saves, $acount
429 controls the # of chars to the next save.
433 &and <log> <log> Logical AND
434 &or <log> <log> Logical OR
435 &len <str> returns length of <str>
436 &lower <str> lowercase <str>
437 &upper <str> uppercase <str>
438 &rnd <int> generate a random integer between 1 and <int>
439 &sindex <str1> <str2> search for string 2 within string 1
440 returning its position, or zero if it fails
441 &env <str> return value of DOS environment
443 &bind <str> returns the function name bound to the
445 &exist <str> Does file <str> exist?
446 &find <str> find file <str> along the PATH
447 &band <num> <num> bitwise and
448 &bor <num> <num> bitwise or
449 &bxor <num> <num> bitwise xor
450 &bnot <num> bitwise not
451 &xlate <str1> <str2> <str3>
452 scan <str1> replacing characters in
453 <str2> with the coresponding characters
456 *** Advanced word processing commands
458 ^X^T trim-line trim all trailing whitespace
459 ^X^E entab-line change all multiple char runs to tabs
460 ^X^D detab-line change all tabs to multiple spaces
462 *** Merged EGA driver
464 The EGA driver is now part of the IBM-PC driver. This driver now
465 supports MONO, CGA and EGA cards/modes. (settable by using the $sres
468 *** 8 bit characters fully supported
470 Eight bit characters (including foreign language and line
471 drawing characters) are now supported on the various micro environments)
473 *** List Buffers expanded
475 Given a numeric argument, ^X^B (list-buffers) will now also list
476 all the hidden internal buffers.
478 *** -k switch enhanced
480 If you use the -k (encrypted file) switch on the command line
481 without a key immediatly following it, it will prompt you for the key to
484 *** word delete enhanced
486 with a zero (0) argument, M-D (delete-next-word) deletes the
487 next word and not any intervening whitespace or special characters.
489 *** New File read hook
491 Whenever MicroEMACS reads a file from disk, right before it is
492 read, whatever function is bound to M-FNR (which is an illegal
493 keystroke) will execute. By default this would be (nop), but the
494 standard emacs.rc binds this to a file that examines the file name and
495 places the buffer int CMODE if the extension ends in a .c or .h. You can
496 of course redefine this macro to taste.
498 *** Search Path modified
500 The order in which emacs looks for all .rc (startup) and
501 .cmd (command macros) is as follows:
503 $HOME (the HOME environment variable if it exists)
504 the current directory
505 $PATH (executable PATH)
506 default list contained in epath.h
508 *** Line length limits removed
510 Lines of arbitrary length may be read, edited, and written.
512 *** Out of memory handling improved
514 EMACS will announce "OUT OF MEMORY" when it runs out of dynamic
515 memory while reading files or inserting new text. It should then be
516 safe to save buffers out IF THE CONTENTS OF THE BUFFER ARE COMPLETE at
517 that time. When a buffer has been truncated while reading, a pound sign
518 "#" will appear in the first position of the mode line. Also a # will
519 appear in a buffer listing. If you attempt to save a truncated buffer,
520 EMACS will ask if you are certain before allowing the truncated file to
521 be written. As before, still beware of killing blocks of text after you
522 have run out of memory.
524 *** DENSE mode on the Atari ST
526 On an Atari ST monochrome monitor, setting $sres to "DENSE" will
527 result in a 50 line display.
531 Execute-program (^X-$) will execute an external program without
532 calling up an intervening shell is possible.
534 *** Better close braces in CMODE
536 The name says it all, try it.