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 (Todd Fries)
since dataseghack is checked in as non-executable, invoke it with
"csh dataseghack"
This was the first SourceForge release by Bryce Denney, with patches from many sources on the bochs-developers list.
add BX_PANIC_IS_FATAL option. WARNING: Due to a implementation bug, nonfatal panics can create problems. If you need to use BX_PANIC_IS_FATAL=0, move the bx_atexit() after the return line. This problem was corrected in CVS after 5/2/2001 but has not made it into a bugfix release yet.
win32:
CDROM drive letter is no longer hardcoded
bypass fstat when opening WIN32 raw floppy disk
device models:
support sun cdrom
mouse: fix panics on 0xd3, 0xeb commands
harddrv: implement aborts on a few SET FEATURE commands
vga: implement VGA enable register 0x3c3
pit: allow modes 0,2,3 on any timer
many portability fixes
fix compile problems in FPU related to inline keyword
configure checks if compiler allows "LL" for 64-bit constant
renamed fpu function fabs, conflicts with math library
fix pointer crashes in FPU on 64-bit machines
provide libc functions snprintf, strtoull if missing
check if compiler allows __attribute__
comment out sigcontext struct definition because it conflicted with sigcontext on host system
Started work on special guest driver to host interface, which
will ultimately be used by disk/video/network etc drivers
to enhance performance in bochs. Not usable yet.
Fix to mouse BIOS code (int15h:c2:06:00). The use of
local code block/variables is not handled correctly by
the bcc compiler. Removed braces, and moved local variable
to top level of function.
Fix to extended mem access BIOS function (int15h:87).
This was killing Minix.
Fix to floppy.cc, was reading one extra sector.
Fix to Makefiles etc for compiling without floating point.
Minix boots again inside bochs. Though, the keyboard code
is not yet right for running Minix. For some reason, if
you comment out the 2 keyboard ACKs at lines 947 and
966 in iodev/keyboard.cc, it works.
Bochs now can be compiled to use wm-FPU-emu,
the x87 FPU emulator included in the Linux kernel. It
was written by Bill Metzenthen. Look in fpu.html for
more info. Added "--enable-fpu=" to configure. For now,
this will only work on x86, since wm-FPU-emu has some
assembly components.
Coded illegal instruction exception for old XBTS and IBTS
opcodes.
Moved default cpu level to 486.
Decoupled main web page from user documentation in "docs-html".
bochs-990907a
Fixed bug in rombios.c, new bios is bios/BIOS-bochs-990907a
Commented out load32bitOSImage directive in .bochsrc,
should not have been left uncommented.
integrated mega patches which allow bochs to boot
and run NT4/SP4 (simulating a 486sx)
- Magic breakpoint
- IDE CD-ROM (needs low-level OS stuff for all OSs)
- Current time in time0
- Instruction based simulation clock
- Time breakpoints
- Bios improvements [rombios-new.c]
- Read/write breakpoints
- Mode switch breakpoints
- Bugfixes in iret
- Bugfixes in the fetch/decode tables
- CPUID instruction implemented
- Additional support for the AC and ID bits
- Intel division 'emulation'
- Floating point fixes
- INVLPG instruction implemented
- Read-modify-write fault behavior fix
- Paging bugfixes
- Minor LES fix
- Interrupt handling bugfix
- V86 mode bugfixes
- Debugger bugfixes
- Sync on cpu implemented
- Sync on memory implemented
- New debugger commands:
trace-on
trace-off
ptime
sb
sba
diff-memory
sync-memory
sync-cpu
fast-forward
info-addr
record
playback
modebp
where
print-string
show
print-stack
load-symbols
watch
unwatch
phy2log
force-check
- Mouse support through PS/2 interface
- IDE improvements and bugfixes
- External disk simulation interface
- Keyboard bugfixes
- Mouse support in the X11 gui
- Improved debug support in I/O devices
- VGA improvements and bugfixes
New .bochsrc directives: "time0", "magic_break", "ne2k", "cdromd".
Task switch bug fixed
Integrated Mac port enhancements
bochs-990312b
(ftp://ftp.bochs.com/pub/DT/bochs-990312b.tar.gz)
First teaser release with dynamic translation framework!
Only a few instructions translated, but the framework
is coming along nicely. Read "readme.990312b" in the
ftp directory above for more info. I include some
preliminary performance tests, and you can benchmark
bochs with dynamic translation on your own machine.
Converted all read-modify-write instructions to use
RMW versions of write_virtual_xyz() & read_virtual_xyz().
Addition of Linux/PPC to successful port matrix.
Dynamic translation framework is coming along nicely,
but not included here yet. I'll include it soon in
an upcoming release.
Roadrunner OS booted.
Integrated many patches from bochs users:
Floppy: change line support.
Beos: BX_KEY_{LEFT,RIGHT}_ARROW, omitted _ARROW.
Bochs port to Cygwin32 without cygnus layer (pure win32 mode).
New version of win32.cc, fixes to fetchdecode.cc for win32.
Fixes to keyboard.
Fixes to X11 cursor problem.
Added --enable-port-e9-hack for sending port output to console.
New version of macintosh.cc.
Changes to allow quoting pathnames in .bochsrc so you
can have filenames with spaces.
Harddrv.cc: implemented command 0x21 as 0x20.
bochs-990127d
Rehashed CPU code in preparation for dynamic translation.
Fetch-decode, address resolve, and execute phases are
all distinct now.
Each instruction gets it's parameters from a pointer to
a structure passed to it.
Added '--enable-time0' option to configure. Use this only
if you want to always start the cmos clock at the same
value every time. This is valuable for reproducable runs.
It was invaluable to me during cosimulation of this version
of bochs against an older one to find bugs.
Fix in cpu/paging.cc. Set all segment register descriptor
caches to invalid, until they were properly loaded.
bochs-990110b
Fixed handling of CR0.val32 shadow to individual flags.
Oops, I goofed in bochs-990110a.
Redhat 5.2 boot floppy image works again.
Incorporated new serial port diffs.
Configure senses if you have select(). New macro BX_HAVE_SELECT.
Added future configure option '--enable-dynamic-translation'.
Don't use this, as its not yet supported.
bochs-990110a
Direct floppy disk access fix. I was only checking if
file was a character-special file. Added check for
block-special file.
Minor fixes for Macintosh platform.
Small changes to compile bochs on BeOS R4 for x86 using gcc.
Fix to timer framework code in pc_system.cc.
Fix to iodev/floppy.cc, was using AND instead of OR.
Fix to handling of IOPL flag in real-mode.
change CR0 reserved bits handling to model actual x86
added .conf.beos-x86-R4 script
completely rehashed INT 1A BIOS time-of-day services.
LOADLIN.EXE no longer complains about being in v86 mode.
bochs-981229a
Changed configure option '--with-win32-vc50' to '--with-win32-vcpp'
Changed script file '.conf.win32-vc50' to '.conf.win32-vcpp'
Integrated Macintosh port of bochs by David Batterham
Added '--with-macos' option to configure.
Updated web pages with pointer to MacBochs site and local info.
bochs-981222a
Generated new bios 'bios/BIOS-bochs-981222a'
Serial port: integrated diffs I received which implement a single
8259 UART with IO attached to console
Partially integrated mods from some limited i440fx PCI support
A few more mods to integrate, DON'T USE YET
Added '--enable-pci' to ./configure and BX_PCI_SUPPORT macro
Added 'i440fxsupport: enabled=' option to .bochsrc
Added settable BX_SHADOW_RAM macro to config.h.in, in case
your software counts on C0000..FFFFF being writable.
Added 'cmosimage:' option to .bocshrc. If you use this,
an image file is read into CMOS registers upon startup.
Then certain values are written over, as the IO devices
initialize. Not complete yet. DON'T USE YET
Added 'newharddrivesupport: enabled=' option to .bochsrc.
Set this to 0 or 1. If set to 1, some new hard drive commands
are accepted and some behaviour is changed per some diffs I
received. After I have time to look at these more, I'll
integrate them permanently and get rid of this option.
Some fixes to keyboard/floppy/hard-drive support.
Rehashed the CMOS code. Now support the RTC, interval timer
and alarm clock. This code has not been tested properly.
Rehashed the bochs native timer support which some of
the IO devices use.
bochs-981102b
Rehashed paging.cc and TLB. Fixed problem with dirty bit not
being set after a read operation cached an entry in the TLB.
Also, added in legwork for supporting 486+ syle paging behaviour
for use with OS's which have copy-on-write strategies.
bochs-981015a
cosimulation support for verifying a 2nd CPU simulator (lot's of files touched)
moved web pages and ftp to bochs.com
developer's email list now hosted by RedHat
planning dynamic translation
bochs-980707a
added commands to debugger
CRC debugger command to checksum regions of memory
"info dirty" command, to display pages dirtied since last display
"take dma" now takes optional count.
rehashed phyical read/write routines for effeciency
Winstone'98 success so far:
Access 97
CorelDRAW! 7
Excel 97
Lotus 1-2-3 97
Word 97
PowerPoint 97
Quattro Pro 7
WordPerfect 7
Winstone'98 tests remaining:
Netscape Navigator
Task Switching 1
Task Switching 2
bochs-980629a
much in the way of x86 validation; many x86 emulation fixes!
you can now pass all .bochsrc options on command line
deleted breakpoints can now be reused, in debugger
added user-level 486 instructions (set config.h:BX_CPU_HACKED to 4 to use)
some minor speed-ups
Unix machine can generate complete Win32/MS Visual C++ Makefiles, config files
You may now create your own instrumentation library, with
--enable-instrumentation="instrument/mydir"
Winstone'98 success so far:
Access 97
CorelDRAW! 7
Excel 97
Lotus 1-2-3 97
Word 97
Winstone'98 tests remaining:
Netscape Navigator
PowerPoint 97
Quattro Pro 7
WordPerfect 7
Task Switching 1
Task Switching 2
bochs-980512a
added disassembly commands to debugger interface
fixed bx_panic() calls when using debugger
bochs-980512a
more debugger commands and features
co-emulation debugger commands
added more instrumentation macros to CPU code
added handling of EEh (echo) from keyboard ctrl to keyboard
bochs-980407a
added some instrumentation features:
added '--enable-instrumentation' to configure
added "instrumentation.h" that defines instrumenation macros
added macros to some main decode loop and some instructions in cpu/
added "win32.txt", updated "gui/win32.cc", added "bochsrc.win32"
from David Ross (dross@pobox.com). win32 GUI code now filled out.
bochs-980331a
added '--with-nogui' option to configure to run without any GUI. Also provides
documentation for the GUI specific functions.
recoded the PS2 mouse BIOS and some mouse hardware emulation. Mouse now
works on X11. Haven't implemented it for BeOS yet. Double click timing
doesn't work yet though.
(possibly) fixed the panic during Win'95 install due to keyboard.
added private_colormap option to .bochsrc. requests a non-shared
colormap from your GUI. Only implemented on X11 so far.
added mouse option to .bochsrc. Not implemented yet for any of
the GUI specific modules, but it will request that mouse events not
be generated by the GUI.
changed palette change technique to tell GUI of each individual
palette element change. The GUI has a chance now, to tell
the VGA code if a redraw of the screen is necessary. Redraw
is not necessary if using a private colormap.
bochs-980311d
configure works with any permutation of disassembler and debugger
fixed endian changes, messed up on 980304a
Makefiles now use CC, CXX, CFLAGS, CXXFLAGS
added --enable-cpp option to configure for use with that C++ suffix
got BeOS code up to speed on the cursor changes.
bochs-980304a
changed BIG_ENDIAN & LITTLE_ENDIAN to use BX_ prefix
added text mode video block cursor
added vi package to Redhat install script
bochs-980303a
debugger command "info break" to display breakpoints
debugger command "d[elete] xyz" to delete breakpoints
patch to gui/x.cc for 24bit displays
added instructions and script for installing RedHat 5.0 from CD
rehashed CMOS RTC code so Linux works
bochs-980224a
added 32bit hardware task switching (only from jump's so far)
fixes to floppy emulation
created new optional debug interface, similar to GDB
rehased disassembler for use in debug environment
added hardware scrolling to VGA
fixed handling of errorcode returned for paging errors
Linux now boots!!!
bochs-980124c
BIOS floppy read/write fix. AH was not being set.
moved config.h:BX_PROCESSOR_IPS to .bochsrc 'ips' directive.
Now you can run the same binary on different speed machines
of the same type. Just tune the 'ips' directive.
converted vga.bdf font to bitmaps for use with BeOS.
The BeOS module no longer uses any BeOS system fonts,
but just includes the bitmaps in the source code.
included patches for 980118.
Changed 'mips' field to 'm_ips'. Hopefully, this
will fix compiles for MIPS processor based machines.
bochs-980118a
Added toolbar to top of GUI
Floppy drive can switch between 1.44M & 1.680M formats
Implemented Int15 function 87h in real BIOS
bochs BIOS is now 100% clean of any 'C' hacks.
bochs-971216b
Several optimizations
Added prefetch queue
Made all device models into C++ classes
Moved state information for each device model into state
structure within class for future save/restore of device state.
bochs-971118a
Moved all GUI specific files (X11 and BeOS) into gui/ subdir
Put in temp fix for exception handling restoring original eSP
Began process of removing any knowlege of scancodes from GUI code