* option "cmosimage" must be saved, too
* most important options (config_interface, display_library, megs, romimage,
vgaromimage, boot) moved to the top of the saved file
- add the "journal" option to the ataX-xxx directive, so the user can
set a specific path for the redolog file (applies only for undoable
and volatile disk modes)
- add the enable handler, so the status and journal options of the ataX-xxx
directive can be hidden even if the ataX-xxx parameter is enabled.
- add handlers called when a parameter is enabled or disabled.
This is useful for parameter dependent on another, that may
not wish to be enabled when its father parameter is enabled.
fixes a bug in exception handling in v8086 mode
Here are comments from the author:
Since the bug of bochs-2.0.win32 was found and
corrected, it reports. cpu/exception.cpp of src : Within
an interrupt() function, when present is the V8086 mode,
a bug is in the portion which processes 386 (286)
int/trap gate. From the V8086 mode, this portion is
performed, when it is going to execute an int imm
command. The portion in which push_32 () is called in
the state of VM=1 is still a mistake. Although this
push_32 () tends to write in to the stack of a protected
mode, if it is still VM=1 of EFLAGS, the
write_virtual_dword() function called out of push_32 () will
take out a segment protection exception. After
performing clear_VM() etc., it is necessary to make it
call push_32 () correctly, since EFLAGS is saved locally.
Syslinux 1.48 that is used to boot freesco, did not like the latest
int15 function e801 returning AX=0 and BX=0, although my real
system does, and Ralph Brown list allow it.
Interestingly enough, the symptoms were floppy accesses with a track
number > 100. Funny.
Now int15 function e801 returns both extended and configured memory.
Syntax error fixes:
[x] fixed error with array bounds in virt_timer.cc
[x] fixed error with returning value from void functions
[x] fixed const class member initialization (according C++ standard)
[x] for-loop local variable declaration moved out of loop
(for VC 6.0 compliance)
Removed already committed patch from Dirk Thierbach
Replaced the patch from Vitaly Vorobyov by set of splitted patches.
Now any of his patches could be committed separatelly from others !
[x] fixed bug in int01 (opcode 0xF1) emulation
[x] fixed bug in x86 debugger with dr0-dr3 registers
Committed disassembler bugfix from Dirk Thierbach:
[x] fixed bug in relative addresses in Jmp, Jcc, Call and so on
- installation instructions for FreeDOS Beta 8 added
- sb16 section: description of SB16CTRL.EXE improved
- description of the user shortcut feature updated
This is necessary for devices with different i/o port masks.
- BX_MAX_IO_DEVICES increased to 30
- io_len mask fixed and unnecessary io_len checks removed in
* biosdev.cc
* cmos.cc
* dma.cc
Unallowed cases are now handled in devices.cc and cause a BX_ERROR.
- io_len mask fixed and unnecessary io_len checks removed in
* devices.cc
* extfpuirq.cc
* gameport.cc
* ne2k.cc
* pit.cc
* pit_wrap.cc (i/o register function calls replaced by DEV_* macro calls)
- TODO: implement this in all other devices
The colors 0..7 appear in high intensity and the colors 8..15 blink using
low / high intensity. Blinking is not present in Bochs yet. For now, the 3rd
bit of the attribute will be inverted.
- attribute controller mode control register: only a change of the internal
palette size bit should force a redraw
- skip screen update if video is disabled
plane enable and color select
- a screen update is necessary after updating the charmap
- lots of missing parentheses added (found after disabling VGA_TRACE_FEATURE)
- BX_DEBUG and BX_INFO messages improved
- update function: the 'for' loop now initializes and increments the variables
xti and yti
- VBE: banked writes are now ignored in LFB mode, LFB writes are ignored in
banked mode (based on SF patch #742782)
- calculation of the VBE virtual height for >8bpp fixed
- visible screen size must be recalculated after changing the virtual width
- modify standard VGA register when enabling a VBE mode (some test applications
expect this behaviour)
- BX_INFO messages in the VBE code fixed
DEV_kbd_gen_scancode() is called instead of DEV_kbd_put_scancode(). This
change enables the support for different scancode sets. The win32 scancodes
are now converted to BX_KEY_* values (partially copied from gui/win32.cc)
- new text mode features: line offset, cursor size, font height
- key handling rewritten (taken from x.cc)
- headerbar now working
- headerbar colors changed
- graphics modes > 640x480 now cause a BX_PANIC
* configure.in: readline check is only necessary if the debugger is enabled
(patch from Jeroen Janssen)
* iodev/Makefile.in: dependencies updated after adding gameport device
- don't clear the VBE memory if the new flag VBE_DISPI_NOCLEARMEM is set
- vbe_bpp_multiplier for the 4bpp mode set to 1 (usually unused, but this value is save)
(based on a patch from Christopher Nelson <paradox@BBHC.ORG>)
* the win32 gui changes the bitmap settings using the bpp argument
* added stubs for all guis except win32
* descriptions of function dimension_update() updated
font usage)
- horizontal and vertical pel panning in text mode implemented (without windows
fonts only)
- separate bitmap for the textmode cursor no longer necessary
- text_update(): unused variable new_start removed
compile time. The old version used this fonts for char heights smaller 14.
If the Windows fonts are enabled, the font heights 12, 14 and 16 are used.
These features are not available in that case:
* charmap change
* char width switch 8/9
* horizontal and vertical pel panning
If the Windows fonts are disabled, the changeable guest font is used and all
implemented features are available. This is the default setting.
TODO: implement horizontal and vertical pel panning
FIXME: Should we add a bochsrc option to control the font usage?
- invalidate character at previous and new cursor location before entering the
update loop
- cursor drawing moved into the update loop
- variables for previous cursor position renamed
- invalidate character at previous and new cursor location before entering the
update loop
- cursor drawing moved into the update loop
- speed optimizations in function DrawBochsBitmap() (malloc/free removed)
- description of function text_update() updated
(using 72 Hz vertical frequency). The vertial retrace phase is often used for
vga register or memory manipulations to reduce screen flickering.
- update(): check variable vga_mem_updated before everything else
running on a 32 bit host. The problem was that the FPU code uses native pointers to
represent addresses. The assumption that an emulated address is the same size as a
native pointer breaks down when emulating 64 bit addresses on a 32 bit host. The
patch replaces the occurrences of such an address with a bx_address type.
Once this patch has been reviewed by other developers, it will be committed to the
main cvs branch.
(without localized variables)
- start address support for CGA modes added
- start address support for mode 13h completed
- clearing the text snapshot is not necessary after a start address change
(set needs_update to 1 in graphics mode only)
* changed all %ll format descriptions to FMT_LL macro so that
Microsoft Visual C works correctly (it uses %I64)
* missing type conversions added
* cdrom.cc: variable types for win32 fixed
* removed some unused variables in eth_win32.cc and harddrv.cc
* added missing includes in make_cmos_image.c and niclist.c
* support for different resource compilers added (rc / windres)
* bochs must be linked with advapi.lib for registry access
* optimization flag changed to /Ox
* symbols BX_HAVE_MKSTEMP, BX_HAVE_SYS_MMAN_H and HAVE_ETHERTAP must be set to 0
* BX_HAVE_REALTIME_USEC definition fixed for MSVC
* vmware3.h: definition of COW_Header fixed for MSVC