				OEMACS
		       Release 4.1 (BETA RELEASE)
			    August 22, 1993

     This is Release 4.1 of "OEmacs", a version of V19 GNU Emacs that
can run under both MSDOS and Windows (in a DOS Window).

This file contains the following sections:

      * New major features in Release 4.1.
      * New major features in Release 4.0.
      * Major differences between OEmacs and demacs.
      * Release notes for OEmacs Release 4.1.
      * Old release notes.


***** New major features in Release 4.1:

* This release is based upon GNU Emacs V19.19.

* This release contains mainly bugfixes.

* Added a new function, `emacs-pc-set-mouse-cursor', which is a
  very-low-level interface to set how the mouse is displayed.  This
  function takes two arguments:

	screen-mask
	cursor-mask

  The `screen-mask' is a 16-bit integer that is masked (bitwise-AND)
  against the attribute and character under the mouse cursor (the
  attribute is the upper 8 bits, and the character is the lower 8
  bits).  The `cursor-mask', another 16-bit integer, is then
  bitwise-XOR'd with the result to produce the attribute/character that
  is displayed as the mouse cursor.

  For example, to make the mouse cursor have a red background, while
  preserving the character below the mouse cursor, a screen-mask of
  0x0fff and a cursor-mask of 0x4000 would be used, e.g.:

	(emacs-pc-set-mouse-cursor 4095 16384)


***** New major features in Release 4.0:

* The ANSI.SYS driver is no longer required, but can still be optionally
  used.	 By default, release 4 will attempt to do direct screen writes;
  if you want to go through ANSI.SYS, you have to specify the "-ansi"
  command-line option, and it must be the very first option.

* If direct screen writes are used, you can enable mouse support.  Of
  course, you must have loaded a mouse driver in order for this to work.

* If direct screen writes are used, V19 Emacs "faces" (color text) can
  be used.  Check out Jonathan Stigelman's hilit19.el for a demo.

* This version requires fewer environment variables to be set; the
  environment variable, "EMACSTOPDIR", is that main environment variable
  that needs to be set.  Note, however, that old environment variables
  used by previous versions of Emacs are still used, and take precedence
  over any "EMACSTOPDIR" setting, which could cause this version of
  Emacs to not function correctly.  Further note that this version will
  automatically set other environment variables to a reasonable default
  (if they are not explicitly set), and so this version needs sufficient
  free environment space to be present.  A couple hundred bytes of free
  space should be sufficient.

* On US keyboards, the C-h key can be used as the help key.  This may or
  may not work on non-US keyboards, depending on how the non-US keyboard
  device driver is written.  It is known to work on UK keyboards.

* The Ctrl-space key can be used to set the mark.  It is no longer used
  as a prefix key.

* A native X11 version exists for users of DESQview/X.	This version is
  a full, multi-window X11 implementation of GNU Emacs, complete with
  pop-up menus and changeable fonts.


***** Major differences between OEmacs and demacs:

* OEmacs has mouse and color-text support.  Demacs does not.

* OEmacs does not require that ANSI.SYS be loaded.

* OEmacs is based upon GNU Emacs V19.  Demacs is based upon an ancient
  version of V18.

* OEmacs works within a Windows 3.1 DOS box.  Demacs does not (however,
  rumor has it that demacs can run within a Windows 3.1 DOS box if the
  latest DPMI-aware go32 is used).

* The _emacs files are different.  In OEmacs, the _emacs file has been
  simplified and streamlined.  Demacs cannot use the OEmacs' _emacs
  file, and OEmacs cannot use the demacs' _emacs file.	As a matter of
  fact, OEmacs does not need a _emacs file.

* The terminal config files ("lisp/term/ibmpc.el") are different.
  Unlike demacs, OEmacs does not rely on reprogramming the keyboard
  mapping via ANSI.SYS.  Some versions of ANSI.SYS don't allow keyboard
  mapping, and some versions even crashed if this was attempted, and so
  OEmacs uses a different method of keyboard handling.

* OEmacs doesn't have the NEMACS or FEPCTRL code merged into the Emacs C
  code.  I can't test these features, and so I didn't bother merging
  them in.  The merge was done by hand (and not via patch(1)), and so
  merging these untestable features would have added more work, which I
  didn't want.  The demacs support for 8-bit characters was not added to
  Release 3.0 or 4.1, as V19 already contains support for 8-bit
  characters.

* The WATCOM C/386 version of OEmacs needs to load the emacs-lisp files
  at startup (this takes about 20 seconds on a 33MHz 486DX), while the
  DJGPP-compiled OEmacs is dumped and loads about as fast as demacs.


***** Release notes for OEmacs Release 4.1:

* Release 4.1 is based upon V19.19!



***** Old release notes:

     While I would have liked to have used the name "demacs" or
"demacs2", I didn't, because I don't want people thinking that this
version is compatible with demacs.  For reasons of ease-of-use and
ease-of-installation, this version is partially incompatible with
demacs.	 In particular, the two versions cannot share the same "_emacs"
file (the "_emacs" file is the MSDOS equivalent of ".emacs").

* Fewer environment variables need to be set, if direct screen writes
  are used:

	Emacs version			Required environment variables
       ----------------------------------------------------------------
	DJGPP-compiled			EMACSTOPDIR USER GO32
	WATCOM C/386-compiled		EMACSTOPDIR USER DOS4G

  Note that these are merely the minimum environment variables that need
  to be set.  If others are not set (see below), Emacs will set them to
  a reasonable default, but Emacs needs free environment space in order
  to do this.  If you do not have sufficient free environment space,
  Emacs will be unable to properly set these variables, and Emacs may
  malfunction.

  If direct screen writes are not used, and ANSI.SYS is used, the
  TERMCAP environment variable also needs to be set.  This must be done
  regardless of which compiled binary is used.  For example:

	set TERMCAP=c:\junk\emacs-19.19\termcap

  If the DESQview/X version is used, the DISPLAY environment variable
  must also be set, in addition to the ones listed above, e.g.:

	set DISPLAY=:0

  EMACSTOPDIR must be set to point to the top-level Emacs directory.
  For example:

	set EMACSTOPDIR=c:\junk\emacs-19.19

  Forward or back slashes can be used, and a trailing slash is not
  necessary.

  The USER environment variable should be set to your "user name", e.g.:

	set USER=joeuser

  Only letters, numbers, and underscores can be used here.  Spaces and
  punctuation are not allowed.

  DOS4G should be set thusly (only for the WATCOM C/386-compiled
  version):

	set DOS4G=NULLP QUIET

  GO32 could be set thusly (you may have to edit this, depending on your
  system configuration):

	set GO32=ansi

  Other, optional, environment variables that you might want to set are:

	HOME	(defaults to "%EMACSTOPDIR")
	TZ	(defaults to "GMT0")

  Note that the old Emacs environment variables, if set, will take
  precedence over any EMACSTOPDIR setting, and this could cause Emacs to
  malfunction.	You may want to unset any old Emacs environment
  variables.  These include:

	TERM
	EMACSLOADPATH
	EMACSEXECPATH
	EMACSPATH
	EMACSDATA
	INFOPATH

  (Note that TERM defaults to "ibmpc", which is the only allowed value.
  Setting TERM to anything else will cause Emacs to malfunction.)

* US keyboards can use C-h as the help key by setting
  `emacs-pc-use-dos-input' to nil, which is the default.  This works by
  bypassing DOS and talking directly to the keyboard BIOS, and so this
  method may not work with non-US keyboards, which require a DOS device
  driver to operate correctly.  This is known to work with UK keyboards,
  however, as the UK keyboard driver hooks into the keyboard BIOS
  interrupt.  Other keyboard drivers may or may not work when
  `emacs-pc-use-dos-input' is set to nil.

* By default, this version of OEmacs will do direct screen writes and
  does not require that ANSI.SYS be loaded.  If you must access the
  screen via ANSI.SYS, you must specify the command-line option,
  "-ansi", and this must be the very first option.

* By default, the mouse is disabled.  To enable the mouse, assuming that
  you loaded a mouse driver *BEFORE* starting OEmacs, you must execute
  the function `emacs-pc-enable-mouse'.  This can be done by placing the
  following line in your _emacs file:

	(emacs-pc-enable-mouse)

  This is also an interactive function and can be executed via M-x.

  To disable the mouse, there is a corresponding function called
  `emacs-pc-disable-mouse'.

  The mouse is accessed via the standard V19 mouse interface.  The left
  button is button 1, the right button is button 3, and, for
  three-button mice (Logitech ones, at least), the middle button is
  button 2.  See the V19 docs for more information.

  Note that, the first time you enable the mouse, a full hardware mouse
  reset is done, and this can take a couple of seconds to execute.  This
  is done only the first time the mouse is enabled; subsequent enablings
  use the faster software mouse reset.

  The mouse can only be used if direct screen writes are used.

  There is, currently, no way to force a hardware mouse reset.

* If direct screen writes are used, Emacs-lisp functions can be used to
  switch between the different standard VGA resolutions:

	Function			New display resolution
       --------------------------------------------------------
	emacs-pc-25-line-mode		80x25
	emacs-pc-43-line-mode		80x43
	emacs-pc-50-line-mode		80x50

  Try doing `M-x emacs-pc-50-line-mode'.

* Here is a list of the PC text colors understood by OEmacs:

	black			blinkingblack
	blue			blinkingblue
	green			blinkinggreen
	cyan			blinkingcyan
	red			blinkingred
	magenta			blinkingmagenta
	brown			blinkingbrown
	white			blinkingwhite
	gray			blinkinggray
	lightblue		blinkinglightblue
	lightgreen		blinkinglightgreen
	lightcyan		blinkinglightcyan
	lightred		blinkinglightred
	lightmagenta		blinkinglightmagenta
	yellow			blinkingyellow
	brightwhite		blinkingbrightwhite

  The following variables are used to translate other color names into
  one of the above colors:

	emacs-pc-translate-x11-colors		(variable)
		If non-nil (the default), Emacs will attempt to
		translate an X11-style color name into some PC text
		color.	If nil, Emacs will not do any translation, and
		will generate an error if the color is not a standard PC
		color.

	emacs-pc-translate-color-table		(variable)
		This is an alist of "(COLOR . PC-COLOR)", where COLOR is
		an arbitrary color name, and PC-COLOR is the
		corresponding PC text color to use for the given COLOR.
		This alist takes precedence over any mapping done by the
		X11 color remapper (used if
		`emacs-pc-translate-x11-colors' is non-nil, which is the
		default).  This alist is used to fine-tune selection of
		colors.

* Other new Emacs-lisp functions and variables:

	emacs-pc-screen-p			(function)
		Returns non-nil if direct screen writes are being used.
		Nil is returned under all other circumstances.

	emacs-pc-follow-mode-changes		(variable)
		If non-nil (the default), Emacs will reconfigure itself
		when the text display resolution changes after shelling
		to DOS.	 This is useful if you shell to DOS, change the
		display resolution, and exit back to Emacs (which will
		resize itself to fit the new display resolution, if this
		variable is non-nil).  If nil, Emacs will forcibly reset
		the display to the old resolution (unfortunately, if the
		old resolution was 80x43 or 80x50, the display will get
		reset to 80x25).

* The default input mode has been changed to allow the use of the Alt
  key as a meta key.  With other versions of Emacs, the default input
  mode would not use the Alt key as a meta key.  (Note that the input
  mode can be changed using `set-input-mode'.)  Also, with vanilla Emacs
  and OEmacs, the default input mode does not allow 8-bit input.  To
  enable 8-bit input (which disables the use of the Alt key as a meta
  key), put the following into your ~/_emacs file:

	;; Enable 8bit input.  This disables the Alt key as a meta key.
	(set-input-mode (car (current-input-mode))
			(nth 1 (current-input-mode))
			0)

* The info files are in binary, and not text, format (end of lines are
  marked by LF and not CRLF).  This was done because the standalone info
  reader (available separately) cannot handle info files in text format.

* OEmacs can works within a Windows 3.1 DOS box.  To use the
  DJGPP-compiled version, which starts very quickly, you need to have a
  numeric coprocessor in order to run within Windows.  If you don't have
  a numeric coprocessor, you need to use the WATCOM C/386-compiled
  version, which is undumped and takes a moment or two to start up.

* You can press Ctrl-Break at any time to interrupt OEmacs.  Note that
  the C-g key will only interrupt Emacs if Emacs is waiting for input.

* The DJGPP-compiled version needs a special version of GO32, to get
  proper Ctrl-Break checking.  One is provided with the DJGPP-compiled
  binaries, and the sources can be found in the file, "go32oe.zip".

* Fixed the bug where files on the command line had to contain names
  with forward slashes if they were not in the current directory.
  Filenames on the command line are now allowed to contain backslashes
  ("\") as directory separators.  Users of MSDOS filename completion
  programs (like 4DOS) can use them to complete filenames for Emacs.

  The primary fix for this is in `expand-file-name'; this function will
  now lower-case the filename, and convert backslashes to forward
  slashes.

* Fixed the bug where dired "randomly" displayed some file dates with a
  year (e.g., "1990") instead of a time (e.g., "14:53").  Now, dired
  will display the file's modification year if the file is
  *approximately* over six months old (the actual time is around six
  months plus or minus a day or two).  This is more like Unix.

* M-x compile does not work.  This is especially true of the
  DJGPP-compiled version, as the special GO32 used with OEmacs has not
  been modified to "keep" (not swap out) memory when shelling to DOS;
  shelling to DOS can take a long time because of this.

* The default "help key" is Ctrl-Backspace.  If you have a US keyboard,
  you can use the C-h key as the help key by setting
  `emacs-pc-use-dos-input' to nil.

  Users of non-US keyboards may have to place the following line in
  their _emacs file to allow 8-bit input:

	(set-input-mode nil nil 0)

  You may also have to place the following line into _emacs to get the
  8-bit display working properly:

	(standard-display-european 1)

* Due to MSDOS filename limitations, the files:

	c++-mode.el
	c++-mode-1.el

  have been renamed to:

	cxx-mode.el
	cxx-mod1.el

  The variable `auto-mode-alist' has been updated to reflect this fact.

* There seems to be a bug with RCS handling.  Errors do not seem to be
  detected if they occur during an RCS check-in or check-out, which
  can (and *HAS*) caused data loss.  Release 3 of OEmacs would have
  been out sooner if I hadn't lost the complete contents of
  src/keyboard.c due to a botched check-in ....	 I will try to fix
  this in a future release.
