Changes in 1.2.1 (June 12, 2001):
- more work on makefile for building RPMs
- [ #432382 ] build debian packages patch
  add build/debian directory from Rob Lemley <rjlemley@calypsoblue.org>
  which allows us to make Debian packages!
- optimize for speed when simulating one processor.  Now 1-processor
  performance should be equivalent to 1.1.2.
- [ #425640 ] sb16 assumes fpos_t is long int
  This fixes compiles of iodev/sb16.cc on linux systems with newer libraries
  in which fpos_t is not an integer.
- [ #432488 ] SMP:assert "n_logfn < MAX_LOGFNS" fails
  increase MAX_LOGFNS since we ran out of them on an SMP simulation with
  4 processors
- changes to compile clean on cygwin:
  - don't use the WIN32 snprintf define for cygwin
  - add ssize_t definition for cygwin
  - only compile "struct timeval tval" if select is available
    on that platform.
- [ #432491 ] SMP: CPUID says no APIC feature
  clean up inconsistent use of BX_SUPPORT_APIC and BX_APIC_SUPPORT, which
  caused the CPUID to report no APIC was present
- [ #431025 ] --enable-external-device-models broken
  removed configure options for external-device-models and 
  external-cpu-memory.  These don't work and aren't going to be fixed.
- [ #429448 ] configure: -lreadline when not there
  Now configure allows you to choose not to use readline, even if it's found
  on your system.
- [ #428915 ] apply extended keyboard patch
  extended keyboard patch by Dave Poirier <eks@void-core.2y.net>
- [ #428626 ] if no X11 found, configure&make fails
  Now configure halts if X windows is selected but no X libraries are found.
- updated rombios to version 1.13.  This fixes several problems:
  - [ #430472 ] DOS HIMEM "A20 line" error
    This problem was apparantly caused when Bryce added a function that prints
    the BIOS version, and he called it too early in the boot process.  Now the
    same function is called later, and it doesn't break the A20.
  - [ #431010 ] SMP structure overwritten in v1.2
    SMP structures were getting overwritten by BCC-generated data, 
    preventing SMP operating systems from detecting that other processors
    were available.
  - [ #431016 ] bios: SMP struct has wrong entry count
    SMP structure had the wrong entry counts
- very minor doc updates (typos, replace broken link to mtools info)
- quit when the user clicks the power button, even if they have disabled
  panics.
- win32 now defaults to having mouse capture mode turned off.  For new users,
  it would be distressing for their mouse cursor to disappear until they
  pressed F12.
- [ #428222 ] vga font not installed
  added script called "install-x11-fonts" which should help people install
  the VGA font on X windows systems, if it isn't already there.

Changes in 1.2 (June 3, 2001):
- [ #427259 ] rombios HALT calls don't print
  Fixed bios/rombios.c HALT macro so that it writes the line number of the
  panic to the PANIC_PORT (port 0x400) and then does NOT do a halt 
  instruction.  Also changed iodev/unmapped.cc so that the line number written
  to PANIC_PORT is displayed as a BX_PANIC message.  Because the HALT
  macro now triggers the normal panic behavior, it can be controlled by
  the bochsrc.
- [ #429016 ] crash if no hard drive
  rombios used to call HALT macro if no hard drive was found. Now it only
  calls HALT if a hard drive has an illegal geometry.
- [ #425388 ] include source for simple disk img tool
  [ #428478 ] mkimg tool creates image 1 byte too big
  Added bximage tool, which makes empty floppy and hard disk images.
  It is now included in the top level Makefile, so it will get built
  by default on all platforms.
- [ #426036 ] eth_fbsd.cc compile problem on solaris26
  added configure test so that "configure --enable-ne2000" only
  includes the Berkeley Packet Filter code (eth_fbsd) if the header
  file <net/bpf.h> can be found.  If you don't have BPF the ne2000
  will not actually move packets, but at least it will compile clean now.
- [ #428214 ] 1.2.pre1 need documentation for binaries
  Write windows and linux specific documentation to be installed in
  binary releases.
- [ #429258 ] disable RESET for version 1.2
  Since soft reset was not completely working, I reverted the reset patch.
  Now it does panics on reset instead of trying to reboot, as the old
  bochs versions did.
- [ #428222 ] Should the linux RPM install vga font?
  now font/vga.pcf will be installed in the RPM package
- [ #429020 ] stop renaming the BIOS!!!
  new BIOS changes are now in BIOS-bochs-latest, instead of a BIOS 
  whose name changes every time we change anything!  To help distinguish
  different BIOS versions, the BIOS now prints its RCS Id into the
  log file.
- [ #428625 ] compile problem if SHOW_IPS is on
  removed extra paren that broke SHOW_IPS
- [ #428219 ] PCI doesn't compile with SMF=1
- [ #429375 ] pthreads detection broken
- [ #429073 ] configure: if no X11, makes bad config
- [ #429229 ] install current .bochsrc in binary rels
- install Tim's man pages on linux RPM
- BIOS prints messages in log in case of boot failure
- rewrote instructions for compiling in win32 (win32.txt)
- fixed link in HTML changelog.html to point to the real sources on SF.
- added missing LOG_THIS definition to gui/nogui.cc and gui/rfb.cc
- added additional check for null pointer in debugger exit routine
- added diskd to .bochsrc

Changes in version 1.2-pre1 (May 25, 2001):
- major cleanup of .bochsrc
- major cleanup of stderr output: prints bochs version information when
  starting, and at the end it tries to print the message that caused 
  bochs to quit.
- two hard disk support (diskd).  At present, you cannot have two 
  hard drives and a cdrom at the same time, because there is only
  one IDE controller with two channels.
- split hard disk support allows different partitions to be stored in
  different image files
- two new GUI choices: term mode and RFB mode.  Term is a text-only
  interface, and RFB creates a server that can be accessed using
  the AT&T VNC viewer.
- now Bochs can simulate an SMP machine, if you configure with
  --enable-processors=N.  Configuring more than one processor has
  a major performance impact, so the default is 1 processor.
  See SMP documentation for more details.
- to make SMP work, bx_mem and bx_cpu have been replaced with
  bx_mem_array[] and bx_cpu_array[].  The cpus are referenced through
  the BX_CPU(n) macro and memories through the BX_MEM(n).  Normal
  mode has one cpu and one memory, SMP mode has multiple cpu's and 
  one memory, cosimulation mode has multiple cpus and multiple memories.
- use --enable-cpu-level=6 to make Bochs claim to be a Pentium Pro.
  The only feature that requires CPU level 6 is apic support.
- new logging system by Todd Fries, which has 4 levels of event
  severity (panic, error, info, debug).  There are new .bochsrc
  options that control what action to take when a 
  panic/error/info/debug event occurs.
- now searches for .bochsrc, bochsrc, bochsrc.txt, and (on unix only)
  $HOME/.bochsrc.
- use GNU readline library if --enable-debugger is on, as long as readline
  can be found on the machine
- configure checks for existence strtoull and strtouq. if neither exists, 
  Bochs uses its own implementation
- applied patches from Cliff Hones <cliff@aonix.co.uk> to fix up the
  rombios.  This includes many improvements, which you can list by
  doing "cvs log -r 1.6 bios/rombios.c" or looking at cvsweb.
- added suggested geometries of larger disks to the documentation
- this is the first release to have official binary packages for win32
  and Linux.  There is a new "make rpm" in the top-level Makefile which
  will create an RPM of the current bochs directory.  To use this,
  become root and type "configure; make rpm".
- applied some FreeBSD patches from Maxim Sobolev (cdrom and serial).

Changes in version 1.1.2 (bugfix3, May 16, 2001):
- updated Elpin VGA BIOS to version 2.40, and changed pointer in .bochsrc
- fixed .conf.x86 script so that it uses c++ instead of egcs for C++ files
- now Makefile targets that recurse into subdirectories use double colons,
  so that it will always recurse into subdirectories.  Now a single make
  command should notice a modified source file in a subdir.
- fixed bug in bx_panic.  If BX_PANIC_IS_FATAL==0 and a (non-fatal) panic 
  occurs, it used to call bx_atexit() and then return.  It should never
  call bx_atexit, which starts to shut down the simulator, unless it's
  really going to quit!
- support 2.88 MB floppy disks
- since dataseghack is checked in as non-executable, invoke it with 
  "csh dataseghack"
- double fault patch from Thomas Petazzoni <thomas.petazzoni@ifrance.com>,
  sourceforge patch #423726.
- removed -fno-builtin from fpu makefiles
- redefine u_char, u_short, etc. in order to not conflict with system
  definitions of these same types.
- in cdrom.cc, remove the extern "C" { } structure around some of the
  header files.  This is no longer necessary.
- do not panic on hard disk command 0x1f2 (read sector count)
- in keyboard.cc:
  - apply Todd Fries' reset patch
  - recognize most of the "Grey" insert/delete/home/end/etc. keys the
    same as keypad keys.
  - removed panic on "kbd_ctrl_to_kbd(): got value of 0x??"
  - implement mouse command 0xf6 (set defaults)
- apply Suboner@aol.com's Xwindows timing patch from
  http://sourceforge.net/tracker/index.php?func=detail&aid=418730&group_id=12580&atid=312580
- remove all patches from patches subdir which have already been applied.
  The remaining ones are under consideration but not applied.

Changes in version 1.1.1 (bugfix2, April 9, 2001):
- in soundwin.cc, arg 3 should be typecast to LPWAVEFORMATEX
- in fpu_entry.c, Bryce mistyped his own initials!
- in configure.in and configure, define good defaults for VC++
   #define BX_64BIT_CONSTANTS_USE_LL 0
   #define inline __inline
   #define BX_NO_EMPTY_STRUCTS 1
   #define BX_NO_ATTRIBUTES 1
   #define BX_HAVE_HASH_MAP 0
- in config.h.in, fixed typo in #error message


Changes in version 1.1 (bugfix1, April 6, 2001):

(FIXED, patch #414360: update copyrights)
update headers.  Change copyright to 2001, replace config.h.in header with
the standard mandrake header that every other file uses.

(FIXED, patch #414356: inlines)
make macro to replace inline and static/extern keywords.  Then make 
define the macro appropriately based on configure.

(FIXED: patch #414234: macos-no-strdup)
--with-macos should force HAVE_STRDUP=0.

(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
Linux and BSD (maybe others) cause panic in mouse code.

(FIXED, patch #413851: const64bit patch)
VC++ does not allow "LL" after 64-bit constant.

(FIXED, patch #413859: fabs symbol conflict)
fpu code contains fabs, which conflicts with math library fabs.

(FIXED, patch #403004: Implement aborts on a few SET FEATURE commands...)
Implement aborts on a few SET FEATURE commands for ATA.

(FIXED, patch #402991: Update to iodev/vga.cc to add 3c3h read support)
Implement VGA enable register, at 0x3c3.

(FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
Mouse panic in linux/BSD: 
KBD: io write 0x64: command = 0xD3(write mouse outb)

(FIXED, patch #414229: panic-is-fatal)
Allow user to decide if panic is fatal, or just a warning

(FIXED, patch #414230: sun-cdrom)
Support Sun CDROM

(FIXED, patch #413574: portable1)
there are cases where a pointer is cast to a 32-bit int,
then later cast to a pointer and dereferenced, which crashes any 64-bit
machine.

(FIXED, patch #413574: portable1)
some machines have no snprintf or strtoull.  include a replacement function
when needed.

(FIXED, patch #413574: portable1)
Some compilers don't allow "typedef struct { } foo;"

(FIXED, patch #413574: portable1)
Some people don't have hash_map.h, used in dbg_main.cc.  Disable this code
if hash_map.h not found.

(FIXED, patch #413574: portable1)
Some compilers can't handle labels at the end of a block, as in
   void main () { /*code*/ label: }  

(FIXED, patch #413574: portable1)
Most compilers can't handle __attribute__.  Use macro to define it away.

(FIXED, patch #413574: portable1)
if --enable-debugger, turn on --enable-disasm too.

(FIXED, patch #413574: portable1)
ome compilers can't handle any chars after an #endif

(FIXED, patch #413574: portable1)
wrong type arg1 of bx_dbg_watch and bx_dbg_unwatch.  The code in
lexer.l was calling it with integers (not booleans)

(FIXED, patch #413574: portable1)
in fpu code, "setcc" macro was implemented with braces inside parens,
which some compilers don't understand.

(FIXED, patch #413574: portable1)
in fpu_entry.c, FPU_load_int32 was consistently called with arg1 of
type (s32 *), but should be (u32 *)

(FIXED, patch #413574: portable1)
comment out sigcontext structure in fpu/stubs/asm/sigcontext.h because
it conflicted with sigcontext of other machines.  This struct was never
used by bochs anyway.

(FIXED, patch #414046: portable2)
move definition of missing library functions into osdep.h and osdep.cc,
include contents of macutils*.

(FIXED, patch #414061: win32-rawcd)
CDROM drive letter for WIN32 should not be hardcoded.

(FIXED, patch #414060: win32-rawfloppy)
Bypass fstat when opening WIN32 raw floppy disk.

(FIXED, patch #414226: pit-panic)
WinME install dies with panic:
bochs: panic, pit: outp(43h): comm Bh, mode 00, bcd 00 unhandled
I think I had a similar problem.  All three timers should support modes
0, 2, and 3.  Other modes really aren't implemented.

