2.2 Alpha9: to 2nd Mar 1999
---------------------------

I've added magic numbers for some 2.9BSD binaries: all 2.9 binaries
run in the V7 environment, which seems to work but I'm sure that
2.9 != V7.

With help from Jonathan Naylor (g4klx@g4klx.demon.co.uk), and some work
myself, I've managed to compile Apout under RedHat Linux 2.2. There are
some 2.11BSD syscalls not implemented as a result, but I can recompile
the V7 and the 2.11BSD kernels, which is a good indicator.


2.2 Alpha8: to 15th Jan 1999
----------------------------

These changes came about due to my attempt to compile the UNIX `nsys'
kernel source code, dated 1973, with the 5th Edition development tools.

Added better detection of some special UNIX a.out binaries: the
environment for these binaries was being incorrectly set by aout.c.
There is now a magic.c which fixes the problem. See also LIMITATIONS
for a note of bugs in some a.out binaries.

Modified v7trap.c to be much cleaner, and to look a bit more like
bsdtrap.c. Introduced several small bugs in V5/V6/V7 syscall emulation,
notably pipe() and dup(), by the cleanup. These are fixed.


2.2 Alpha7: to 11th Jan 1999
----------------------------

Modified the code to handle the syscall differences between
V6 and V7: note that V5 and V6 are syscall identical. V6 has
a different seek() and stat() to V7.

Added a new file for 2.11BSD ioctls, did many of the terminal
ioctls, and a few more syscalls. Now 2.11 vi runs. However,
longjmp() doesn't work yet, because it requires working signals.

Changed some types and #ifdefs for NetBSD and OpenBSD: thanks Soren!


2.2 Alpha6: to 6th Jan 1999
---------------------------

Bugfixes: none that I can think of.

Enhancements: tidied the code up somewhat. Changed uint -> u_int
throughout. Added support for execution of native binaries: now I can
run vi from inside 2.11 bin/sh, yay! Finally wrote the long-overdue
manual page. Added RCS tags to all sources. Ensured that it compiled on
FreeBSD 3.x and 2.1.x: I need to take it home for FreeBSD 2.2.x.


2.2 Alpha5: to 5th Jan 1999
---------------------------

Bugfixes: fixed malloc bug, which was a too-large blksize from stat/fstat.
Fixed the gtty/stty emulation, which was causing make to break.

Enhancements: Apout can now run shell scripts. 2.11BSD overlay binaries
are now supported, which is good news. I can now compile the 2.11 GENERIC
kernel with no manual intervention. On a Pentium II 350MHz, this takes
4:16secs with an optimised Apout.


2.2 Alpha4: to 2nd Jan 1999
---------------------------

Fixed more deficiencies in the 2.11BSD emulation, in particular
fork(), vfork() and sbrk(). The argv/envp environment is better
but still not totally correct, I think. Finally got the correct
code for 2.11 readdir().

We now have a semi-working FP emulation. It's enough to keep 2.11
happy, but it isn't very good. It will do for now.

Many of the 2.11BSD syscalls are now implemented. Most are not
verified, but a lot of 2.11BSD commands run, including sh, make,
cc, date, cal. ls(1) goes into an infinite loop when doing ls -l,
the inf. loop is in malloc(3). By substituting malloc(3) from
Minix 1.3, this problem goes away. I don't know if it's a bug
in the emulator, or in the 2.11 malloc() code.


2.2 Alpha3 to 5th Dec 1998
--------------------------

Reorganised bsdtrap.[ch], and started work on the
2.11BSD emulated syscalls; this is surprisingly
easy for many of them.


Changes from 2.1 to 2.2
-----------------------

 + General code tidying up and niggling bug removal.
 + Code optimisation to speed things up, although
   I haven't quantified the improvement yet.
 + Separation of the binary loader and trap handlers
   from the main program. This doesn't do anything now,
   but it will make the emulation of several PDP-11
   environments (e.g 2.11BSD, RT-11) much easier to do.
 + Finished getting the stream buffering of I/O to work.
   I still don't know why fdopen doesn't work on "rw".
 + Some extra trap functionality, e.g basic signal handling.
