- 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
(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
* 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
in text mode. The new variables 'text_rows' and 'text_cols' are used in the
text_update() function.
- desriptions of the functions text_update() and dimension_update() updated
These changes are based on the SF patch #742670. It did not work with
plugins disabled.
Here is the descriiption of patch #742670:
the library dependencies (see objdump -p file) in the
main bochs binary and the gui plugins are wrong:
- the gui plugins don't depend on their respective gui
libraries
- the main bochs binary depends on all the gui libraries
this doesn't seem much of a problem, since the needed
libraries are loaded anyway, but it's problematic when
building packages for binary distribution of bochs.
in Debian, the package building tools will set package
dependencies according to the library dependencies of
each file, so the result is:
- the main bochs package depends on all libraries. this
includes libwx, libsdl, libncurses and xlibs.
- the indivudual plugin packages don't depend on any
gui library
so when a user wants to run bochs with the curses gui
and installs the bochs-curses package, he/she will be
forced to install Xfree86, WxWindows and GTK+ on
his/her system.
the attached patch fixes the problem by moving the
linker flags related to GUI libraries to the right
makefile (gui/Makefile.in)
in text mode. The new variables 'text_rows' and 'text_cols' are used in the
text_update() function.
- optimizations in function UpdateScreen()
- desriptions of the functions text_update() and dimension_update() updated
* renamed variables textres_x and textres_y to text_cols and text_rows
* use text_rows in function text_update() instead of the function argument
(unused for now - should be removed)
* fixed a warning (bochs_icon_bits)
cursor enable/disable support implemented
- function dimension_update() now calculates the number of visible rows and
columns in text mode
- draw a border if the physical screen is larger than the bochs text screen
- initialize color pairs only when color support is present
- german umlaut characters added in function get_term_char()
- function get_term_char(): unsupported characters are now replaced by spaces
and implemented in SDL
* sequencer controller register 0x01 bit 0 controls the width of the characters.
This value is used to calculate the screen width.
* attribute controller register 0x10 bit 2 controls the appearance of graphics
characters (ASCII 0xC0 - 0cDF). A change of this value forces a charmap update
to rebuild the font bitmaps.
* the SDL display library uses the new feature described above
* the other display libraries recalculate the screen width, since they are using
a fixed font width of 8 for now.
- VGA: attribute controller register 0x10 bit 2 (enable_line_graphics) does not
switch the palatte in CGA mode
- line offset handling simplified
- calculate textres_x and textres_y after changing the font dimensions
- unnecessary size check in function dimension_update() removed
You can now choose for each disk on the ata interfaces the
disk mode, between :
- flat : one file flat layout
- concat : multiple files layout
- external : developer's specific, through a C++ class
- dll : developer's specific, through a DLL
- sparse : stackable, commitable, rollbackable
- vmware3 : vmware3 disk support
- undoable : flat file with commitable redolog
- growable : growing file
- volatile : flat file with volatile redolog
- z-undoable : gziped flat file with commitable redolog
- z-volatile : gziped flat file with volatile redolog
A new "bxcommit" utility can merge commitable redologs to
flat images.