CHANGES MADE TO PFE:
====================

If I haven't fixed the bug you've seen, please drop a line to

Dirk Zoller  (duz@roxi.rz.fht-mannheim.de)


Thanks to your bug reports and suggestions,
I was able to fix these errors and do the following improvements:
=================================================================

0.9.4 -- 0.9.5

	- Fixed parse and word to accept any whitespace given blank
	  as delimiter. (Replaces a hack in READ-LINE.)
	- fixed EKEY?, now matches EKEY and KEY? matches KEY.
	- More constants for e-keys defined, K-LEFT etc.
	- Some renaming in the C source files to avoid name clashes
	  with the curses library.
	- added experimental terminal driver curses.c replacing termcap.c,
	  (formerly term-ux.c). The latter still is better.
	- added file shell.c with words for manipulating files and
	  directories interactively like with a shell:
		RM file		--- ; removes the file
		TOUCH file	--- ; sets last file modification time
					to current time or creates file
		CD directory	--- ; changes directory
		RMDIR directory --- ; removes directory
		MKDIR directory --- ; creates new directory
		LN file altname	--- ; creates link altname to file file
		MV file newname	--- ; moves or renames file to name newname
		CP file1 file1	--- ; copies file1 to file2
		LL pattern	--- ; lists files long matching pattern
		LS pattern	--- ; lists files short matching pattern

		$$		--- pid ; pid of the running pfe
		$UID		--- uid ; real user id of running pfe
		$EUID		--- uid ; real user id of running pfe
		$GID		--- gid ; your group id
		$HOME		--- addr cnt ; home directory
		$CWD		--- addr cnt ; current working directory
		PWD		--- ; print current working directory
		UMASK		new --- old ; change umask, returns old
	  Note: No globbing except in LS and LL, no directory as
		destination for cp, mv, ln.
		Not all of them available with EMX.

0.9.3 -- 0.9.4

	- Reworked the installation procedure:
		replaced `sysdep.h' by a script `config' to
		automagically determine the neccessary information
		from your system. Please read file install!
	- After `ONLY FORTH' you get a bare ANSI-Forth.
		Use `EXTENSIONS ALSO' to access the rest.
	- New concept of default search order: Say
			DEFAULT-ORDER
		and the active search order is saved. Say
			RESET-ORDER
		to return to the saved search order. ABORT executes
		RESET-ORDER. Thus you can decide which search order you
		get after an error.
		After system startup the following order is default:
			ONLY EXTENSIONS ALSO FORTH ALSO DEFINTIONS
	- Fixed signal handling with BSD-like systems.
	- Fixed handling of job control signals.
	- More L&P-F83-compatibility:
		added `?LEAVE', `BS', `ASCII', `CONTROL', `UPC'.
	- Modified `PARSE': now refills at end of line when loading from file.
	- Added Tetris demo.
	- Fixed `+TO' applied to locals.
	- C-Source: Changed type name `CFA' to `Xt' and `pcode' to `pCode'.
		(better uniformity: type names have one capital letter)
	- Dropped support for global register variables. It never worked.
a)	- Fixed several bugs introduced with 0.9.4, again signals...

0.9.2 -- 0.9.3

	- Fixed bugs introduced in 0.9.2.
	- `SIGNAL' allows to install a Forth word as signal handler.
	- Further tidied up terminal driver interface.
		see term-ux.h for system dependent switches
		related to unix terminal handling.
	- `term-ux.c': now assumes vt100 if termcap failes.
	- Merged files `syserr.h/c' into `main.c'.
	- EMX: Caps lock now works with IBM character set 437.
	- EMX: Improved signal handling though it still doesn't work all right.
	- Made `fakemake' script work with nested ifdefs.
a)	- Fixed EXIT discarding local variables (compiling).
	- Fixed debugger displaying too many local variables.
	- Fixed Ultrix bug introduced in 0.9.3
	- Fixed EMX displaying strange characters when debugging.

0.9.1 -- 0.9.2

	- Fixed `GET-ORDER' which returned the searched word lists
		in the wrong order.
	- Fixed `FLUSH-FILE' now returning the status.
	- Fixed `BRANCH' and `?BRANCH'.
	- Fixed `SEE' refusing to show words after `DEBUG word'.
	- Removed `SAVE' and `RELOAD'. Sorry. They were incorrect.
	- Added command line options -D to save a dictionary image
		containing compiled Forth code to a file.
		Command line option -d reads such an image in later.
	- Added variable `APPLICATION': contains an xt or zero. The
		xt is executed after startup instead of `QUIT'. Use
		this with options -D/-d to create turnkey applications.
	- Added variable `RESET-ORDER'. After `RESET-ORDER OFF' the
		search order isn't reset by `ABORT', i.e. after errors.
	- Added `ARGC' and `ARGV' making the shell command line options
		visible to FORTH.
	- Now includes ~/.pferc (name can be changed in const.h) on
		startup.
	- In const.h: added ISO_CHARSET to enable accents and "umlauts"
		on all machines supporting them, not only on Linux.
	- Added file `unix.c' and moved some unix-idosycrasies there.
	- Added file `yours.c' for your own primitives.
	- Added terminal driver for DOS-OS/2-EMX in file `term-emx.c'.
	- Updated installation hints for DOS users -- please read them.
	- Use environment variable PFEOPTIONS to set your favourite
		command line options permanently.
	- Split file support.c in support.c and dictnry.c.
	- Split file term.c in term.c and term-ux.c separating system
		dependencies. When porting, please write separate files
		term-xxx.c for completely different machines xxx and set
		variable TERMO in Makefile accordingly.
	- C-source: renamed several variables and structure components
		for better readability, added macros to access Forth-
		variables more easily.
	- C-source: Renamed catch() to cAtch() since "catch" becomes
		a keyword in C++.
	- Makefile: common options made default options.

0.9.0 -- 0.9.1

	- search path and default extensions for
		include- and block files.
		See source file `const.h' for defaults,
		environment variable `PFEINCLUDE' and
		command line option `-Ipath'.
	- `EXPAND-FN' ( addr1 cnt1 addr2 --- addr2 cnt2 )
		expands a given file name with path and extension.
	- added variable `LAST' pointing to the most recently CREATEd
		word. Changed `DOES>' to work with this variable instead
		of `LATEST' (which is - roughly - `CURRENT @ @').
	- added variable `REDEFINED-MSG'. If false, the message
		`"xxx" is redefined' is omitted.
	- `SOURCE-LINE' returns the line number while INCLUDing a file.

0.8.11 -- 0.9.0

	- Included Kevin Haddock's structure tool. See file `struct.4'.
	- Ported to DOS and OS/2 using Eberhard Mattes' `emx'-environment.
	- C standard io: stdin, stdout, stderr now visible as Forth-files
		with the obvious names: `STDIN', `STDOUT' and `STDERR'.
	- Can be used as filter now: Interprets stdin (if not a terminal)
		until EOF and exits.
	- Added word `#!' with the same meaning as `REFILL'
		to support shell scripts like this:
			#! ./pfe -q
			1 2 3 4 + + + . BYE
a)	- Improved fakemake-script by Giorgio Richelli.
	- Changed directory organization. Sources now in `src'.
	- Changed directory name inside archive for unpacking in DOS.
	- Fixed a floating point alignment bug on HP-UX.
	- Block editor:	^KL interprets current line,
			^KB loads current block.

0.8.10 -- 0.8.11

	- Included Kevin Haddock's interface to Linux' shared libraries.
		Linux users see README.linux-shlibs. This is experimental.
	- Several fixes to `SEE'.
	- Fixed `SEARCH-WORDLIST'.
	- In case pfe fails to detect the text window size,
		the command line option -t can be used. E.g.:
			-t132x28
		makes pfe assume the screen size was
		132 columns, 28 rows.
	- Slightly changed inner interpreter.
	- Prepared support for global register variables, see `sysdep.h'.
		(HP-UX users: please read INSTALLATION)
	- Moving C sources towards the GNU indentation style
		(GNU-emacs' c-mode with default settings).

0.8.9 -- 0.8.10

	- Ported it to ULTRIX.
	- Renamed constants: `XMAX' to `COLS' and `YMAX' to `ROWS'.
		`XMAX' and `YMAX' might some day become the pixel size
		of a graphics window.
	- Added support for hex number input regardless of `BASE':
		In `const.h' define PREFIX_HEX as prefix character,
		e.g. '$' to make pfe understand $100 as 256.
	- Same support exists for binary numbers, prefix defaults to '%'.
	- Fixed `VALUE' to expect an initializer when defining a value.

0.8.8 -- 0.8.9

	- Added multi-dimensional array support, see `library.4'.
	- Fixed a bug in the query to the termcap database when using
	  the System V curses emulation of termcap functions. This
	  bug led to abuse of malloc()ed memory and to very severe
	  problems on some machines...
	- Added `reliable' signal() using sigaction() according to
	  Stevens. It has been reported however that this is
	  unreliable at least on Linux. So don't define USE_SIGACTION.

0.8.7 -- 0.8.8

	- Made aware of changing window size when running in an xterm.
	- Added file `termcap.linux-xterm'
		with a modified termcap-entry for xterm under Linux.
	- Modified the return codes of EKEY.
	- `ORDER' shows the `CURRENT' vocabulary too.
	- GET-ORDER doesn't report the `ONLY' word list occuring
		at the last position in the search order any more.
	- Added a few words to `library.4'.

0.8.6 -- 0.8.7

	- Fixed `RENAME'-bug.
	- Several slight changes to make it acceptable to a C++-compiler.
	- Added `+TO'.
	- More (shell) command line options.
	- Begun with man-page. Have a look at `pfe.1' with
		nroff -t -man pfe.1 | more
	- changed INSTALL, system specific hints for SGI and HP

0.8.5 -- 0.8.6

	- Simple debugger: Say `DEBUG XYZ' and further executions
		of `XYZ' will be done single stepping. Works with Colon-
		definitions and DOES>-defined words.
		Type '?' or 'H' at the debugger prompt to see available keys.
		Use `NO-DEBUG XYZ' to restore `XYZ' to normal.
	- Added file `lpf83.c' to provide some compatibility to
		Laxen&Perry's F83. Moved some definitions to that file and
		added some more.

0.8.4 -- 0.8.5

	- Improved SEE, produces nicely formatted output now.
		This required some major changes to the internal
		organization of the compiler.
	- KEY fixed for national characters with codes > 127.
	- Command line completion can be excluded from compilation.
	- Some changes to *maybe* allow compilation on 64 Bit machines.
a)
	- Fixed two bugs introduced in 0.8.5
	- Commandline supports configurable function keys. Try:
		: DIR SYSTEM" ls -l" ;  K1 EXECUTES DIR
	  then press F1!

0.8.3 -- 0.8.4

	- C@ no more sign-extends the byte.
	- Fixed `CONVERT'.
	- Fixed error condition after incomplete `READ-FILE'/`WRITE-FILE'.
	- Commandline does completion of a word on tab-key.
	- `RANDOM' and `SRAND' provide pseudo random numbers.
	- Improved `SEE' a little -- yet still not satisfying.
	- Moved compiler internals related declarations to file `compiler.h'.

0.8.2 -- 0.8.3

	- `MS' utilizes usleep() if available.
	- `U-SEC' returns an unsigned quantity representing
		the system time in microseconds.
	- Added file `library.4' open for your source code enhancements.

0.8.1 -- 0.8.2

	- `REPRESENT' fixed.
	- `.S' prints floating stack too.
	- Lots of ports done by Marko Teiste.
	- `fakemake' script by Marko Teiste eases switching
		to your platform if your make knows no conditionals.

0.8.0 -- 0.8.1

	- `SAVE filename' saves entire dictionary.
	- `RELOAD filename' reloads such a saved dictionary.
	- Command line option -d loads a dictionary at startup.
	- Fixed number input conversion with `LOWER-CASE ON'.
	- Vectorized I/O:
		. `EMIT' does a `*EMIT* @ EXECUTE'
		. which by default executes `(EMIT)'
		. same applies to KEY, EXPECT and TYPE
		. `STANDARD-I/O' restores the defaults

0.7.6 -- 0.8.0

	- Fixed DNEGATE with HP-UX' c89-compiler.
	- Fixed floating point alignment problem.
	- Modified term.c, supports optionally ioctl() instead of tcsetattr().
	- Cooperates with job control now.
	- Connected QUIT to THROW.
	- Executable name selectable in the Makefile (changed it to `pfe').
	- Changed EDT to EDIT-TEXT and EDIT to EDIT-BLOCK.
	- After an error during compilation:
		EDIT-ERROR jumps to the source line.
	- `C"' can be used outside definitions.
	- Fixed `COMPILE,' and `[IF]' with `LOWER-CASE ON'.

0.7.5 -- 0.7.6

	- Fixed `ORDER' and `VOCS'.
	- Added HP-UX support.
	- Separated file `forth-83.c' from `misc.c'.
	- Independent from gcc now, no usage of `long long' any more.

0.7.4 -- 0.7.5

	- Fixed floored divide bug.
	- Fixed COMPARE bug.
	- Changed error checking in control flow words to allow
		"extended control flow patterns".
	- Changed ':' to not immediate.
	- Passes tester.fr/core.fr, which are included in the distribution.
		I did a small fix to core.fr, definition `GP7'.
	- Modified control flow words compiling strategy
		to allow a more modular C-source organization.
	- Simplified term.c, uses only POSIX.1-conforming system calls.
	- Simplified signal handling, more flexible.
	- Enabled break (^U) and quit (default ^\) signals.
		Break leads to ABORT, quit terminates the system.
	- Changed file name "missing.h" to "sysdep.h" and moved all
		system dependend constants and definitions there,
		not only "missing" ones.
	- Added file `sysdep.c' for system dependend definitions.
	- Added some System V Release 2 support. See `sysdep.h/-.c'.
	- More flexible Makefile

0.7.3 -- 0.7.4

	- Fixed READ-LINE bug, INCLUDED works again.
	- Some minor bugs in the interpreter fixed.
	- Command line history now fully operable.
		Try up/down-arrow, ^E/^X.
	- More block-editor help. Pops up 1 second after ^Q/K/O.
	- Begun with test-suite. Try 'make test'.
	- Adapded file TODO to new insights.
a)
	- Fixed local variable bug.

0.7.2 -- 0.7.3

	- UNTIL now really immediate.
	- Block editor: find and replace fixed.
	- Block editor: stamps changed screens now with LOGNAME
		and date/time. Turn feature on/off with ^OS.
	- Commandline allows recall of one command with ^E now.
	- Variable LOWER-CASE added. If 0<> "dup" finds "DUP".
	- Command line option -l defaults LOWER-CASE to TRUE.
	- ^C at the command line toggles CAPS-mode: lower and
		upper case characters are exchanged.
	- ^OC in the block editor toggles similar CAPS mode.

0.7.1 -- 0.7.2

	- Fixed FCONSTANT.
	- File access word set completed.
	- POCKET (-- addr u) added for interactive use of S".
	- USING and EDIT deal with read-only files now.
		hint: Do EMPTY-BUFFERS if you accidentally UPDATEd
		a block in a readonly file.
	- EKEY reworked, now returns a distinct code for every key
		termcap informs about.
	- C-source: better naming of several structure members.

0.7.0 -- 0.7.1

	- Including file from command line "activated".
	- POSTPONE fixed
	- BLOCK/BUFFER/UPDATE more stable now
	- The block editor learned:
		. how to search (^QF) and replace (^QA),
		. how to insert (^KV) and delete (^KG) screens,
		. how to display some help - there will be more.
	- Compressed the distribution with compress instead of gzip.
	- Less strong error checking in signal handling.
	- Runs with AIX 3.x now (BIG_ENDIAN = 1, -DAIX3).
