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.12 -- 0.9.13

	- Made it faster by reordering some if/else clauses and
	    partially unrolling the inner interpreter loop.
	- Made `AHEAD' immediate as it should be.
	- Fixed yet more bugs in the configuration script.
	- Fixed an ugly bug: Instead of signal names SIGxyz the
	    numbers were defined as constants. The same bug messed
	    up search paths for source and block files.

0.9.11 -- 0.9.12

	- Extracted the glossary parts from dpANS6 for online help.
	- Fixed install target in Makefile.
	- Fixed several of the rewritten file access words.
	- Fixed several details in guesscfg.sh
	- Finally runs on NeXTstep (without -posix option).
	- Uses global register variables on M68K CPU now.

0.9.10 -- 0.9.11

	- Completely rewrote configuration, hopefully more reliable now.
	    Please read file INSTALL.
	- Fixed Bug in `SEARCH'.
	- Added source file `filesub.c' and moved some subroutines
	    for file access there. Partly rewrote file access words.
	    Namely `RESIZE-FILE' uses truncate() now if available.
	- Added words `COPY-FILE' and `MOVE-FILE', same stack effect
	    as `RENAME-FILE'.
	- Rewrote block word set, added another block extension word set,
	    each word with prefix `FILE-' takes additional fid. E.g.
		`10 an-fid FILE-LIST'
	    list block 10 in the opened file.
	- Added `LOAD"' to load from another block file like this
		1 LOAD" other-file"
	- Added support for Watcom C. It's not better than gcc.
	- Added Watcom compiled binaries. They are not perfect.

0.9.9 -- 0.9.10

	- Fixed `FCONSTANT' and `FVARIABLE' on HP 700.
	- Checked command line options -D and -d. Made
	  turnkey-applications work. See demo/tt.app.
	- Fixed a problem with the help index not readable.
	  Installation of the online help is still a mess.

0.9.8 -- 0.9.9

	- Added an `install' target to the makefile.
	- Added parameters to the config script:
	    CC="the C compiler"	overrides the tendency towards gcc
	    --prefix=dir	to specify a destination directory
	- Once more fiddled around with the terminal stuff.
	- Fixed several bugs on the DEC alpha architecture.
	- Rewrote `>FLOAT' not to rely on sscanf() any more.
	- Renamed a few things to avoid name clashes,
	    e.g. the -DBSD option now is -D_BSD. Read `install'.

0.9.7 -- 0.9.8

	(This was an accidental release and not announced.)
	- Added `HELP', see `help/README' for how to install,
	  then try `HELP ?STACK'.
	- Added command line options in ARGC / ARGV according to
	  an idea by Guenther Thomsen. See `demo/arguments'.
	- Moved configurable options to file `options.h'.
	- Fixed `>FLOAT', `FE.', `FLNP1', `REPRESENT'.
	- Fixed `PARSE'-bug introduced in 0.9.4: No refill at end of line.
	- Fixed `SEE' and debugger to display the value `TO' refers to.
	- Made `CATCH' and `THROW' aware of the floating point stack.
	- Made it significantly faster using GNU-C's global register
	  variable feature.

0.9.6 -- 0.9.7

	- Two new keys in the debugger allow counting of Forth
	  primitives executed. Simple profiling facility.
	- `WORD' issues an error if parsed string would be longer
	  than 255 chars.
	- More-like effect in `WORDS' improved by Andrew Houghton.
	- Variable `FLOAT-INPUT' when false disables input of
	  floating point numbers. Use on 386 without coprocessor.
	- Multiple buffers for `S"' and `C"' when used interactively.
	  Try: `S" world! " S" Hello " TYPE TYPE'.
	- Changed `POCKET', now takes an S"-buffer number.
	- New command line options and options in const.h:
		-E-	disables floating point input,
			good on 386 w/o 387 under DOS.
		-F	converts file names to lower case,
			good on UNIX-like systems when caps-lock is on.
		-P	specify number of buffers for `S"'.
	- Rewrote Files Word set for better C-source and error checking.
	- Fixed badly lined up display output of the debugger.
	- Fixed tilde-expansion of file names.
	- Fixed `S" WORDLISTS" ENVIRONMENT?' to return the
	  maximum search order length.
	- Fixed double number arithmetics to work with 64 bit machines.
	- Fixed a few other bugs introduced in 0.9.6
	- Minor fix in `SEE' eliminates empty line appearing sometimes.
	- Added online help utilities. Please check directory help
	  for how you can contribute to online help for pfe.

0.9.5 -- 0.9.6

	- Fixed a bug in the debugger (when EXECUTE is involved).
	- Fixed another old bug in the debugger (with locals).
	- Termcap driver now issues "ks" and "ke" strings,
	  hopefully fixing cursor key trouble on xterm et al.
	- Termcap driver: vt100 assumption made optional.
	  When disabled (default) input from unknown terminals
	  is received simply with fgets(), no echoing.
	  This works better in emacs shell mode.
	- Termcap driver: simplified handling of nonblocking input,
	  i.e. KEY? and fixed it to work with FreeBSD.
	- Added Lennart Benshop's 6809 simulator to the demos.
	- Improved keyboard handling of tetris demo.
	- Improved command line completion:
	  Type TAB twice to see possible completions.
	- WWORDS is like WORDS but with wildcards.
	  Usage:
			WWORDS pattern
		Form patterns like this:
			* matches any sequence of characters
			? matches any single character
			\ quotes * and ?
			any other character matches this character
		Try:
			WWORDS ??
			WWORDS E*
			WWORDS F*A*
			WWORDS *\?

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).
