Commit Graph

119 Commits

Author SHA1 Message Date
Volker Ruppert
7b5d0b53ed - fixed horizontal pel panning handling in text mode 2005-04-30 21:22:26 +00:00
Volker Ruppert
34653048ef - optimizations in function redraw_area()
- if a screen update is needed after i/o writes, now redraw_area() is called instead
  of duplicating the code
2005-04-15 17:33:54 +00:00
Volker Ruppert
bf1f4816a6 - store the text snapshot at the base address of the text_snapshot array again.
The old code could fail when an OS scroll with start address changes (DLX Linux)
- handle the graphics controller shift register value 3 the same way as 2. We need
  a test case for this setting.
2005-03-27 08:02:54 +00:00
Volker Ruppert
6144d8118a - text mode update code no longer depends on the memory mapping (fixes SF bug
#1159639)
- size of text snapshot space increased to 128 kByte (for all memory mappings)
- immediately return after the panic when the number of text lines is too large
  to avoid segfault
2005-03-18 14:52:29 +00:00
Volker Ruppert
0b1497d13e - fixed broken screen updating in VBE mode (SF patch #1153511)
- fixed 8-bit DAC support in the VBE update code
- simplified redraw code in vbe_write()
2005-02-28 21:23:34 +00:00
Volker Ruppert
5b57471245 - vga extension check added. Unsupported extension names now cause a panic
- vga extension option in bochsrc sample added
2005-02-10 09:48:12 +00:00
Volker Ruppert
a16fbc293a - vga extension option partially implemented (Bochs VBE interface and PCI VGA
dummy interface are now disabled if the extension isn't set to "vbe"
- writing charmap data in graphics mode now supported (SF patch #1059199)
- fixed set_ask_format() for the mouse type option
2005-02-01 19:16:39 +00:00
Volker Ruppert
975cd53fa5 - vbe update code now uses the new graphics API
- old update code removed from display libraries sdl, wx and x
- wx.cc: fixed a warning
2004-11-06 17:03:44 +00:00
Volker Ruppert
03b9d07d52 - unused vga function dump_status() rewritten for the use with the debugger ("info vga") 2004-08-24 10:15:56 +00:00
Volker Ruppert
09043def10 - fixed possible segfault if the LFB is accessed and VBE is disabled
- if USB is disabled in bochsrc the old VBE interface can be enabled, too
2004-08-23 18:47:25 +00:00
Volker Ruppert
45ccb97021 - CL-GD 54xx SVGA emulation added (SF patch #869822 from m_suzu_abc@yahoo.co.jp)
- changes to the original svga_cirrus patch:
  * PCI memory/mmio PnP support, some emulation and compile fixes
  * ported write mode 4 + 5 and some bufixes from cirrus vga in qemu
  * new graphics API, hardware cursor support, configure option added (Robin Kay)
  * partial support for transparent bitblt and bitblt write mask
2004-08-16 08:07:23 +00:00
Volker Ruppert
d06c80cee3 - changed all iodev config macros to BX_SUPPORT_xxx
- removed incorrect SDL/ prefix from include paths (patch from Robin KAY)
2004-08-06 15:49:55 +00:00
Volker Ruppert
89f4d0b7d0 - 16-bit read access now enabled for the attribute controller
- vbe: setup of vga compatible registers modified: 2 CRTC registers removed (now
  done in LGPL'd VGABIOS) and 2 sequencer controller registers added
- obsolete comments removed
2004-07-24 18:12:00 +00:00
Volker Ruppert
6784f00723 - VBE 4 bpp support added, VBE mode 0x0102 works much better now in WHATVGA 2004-07-21 20:39:54 +00:00
Volker Ruppert
f24f8a4c77 - VGA memory now registered using DEV_register_memory_handlers (static VGA
memory handling in memory.cc removed)
- CRTC write protection implemented
- 16-bit read access to some VGA registers added
- memory handler code now conciders the status of the A20 line
2004-07-18 19:40:51 +00:00
Stanislav Shwartsman
5873b26a82 Speed up compilation process.
bochs.h already not include iodev.h which reduces compilation dependences for almost all cpu and fpu files, now cpu files will not be recompiled if iodev includes was changed
2004-06-19 15:20:15 +00:00
Volker Ruppert
36d7f60c21 - VBE LFB memory now registered using DEV_register_memory_handlers (static LFB
memory handling in memory.cc removed)
- type of memory handlers changed to bx_bool
- misc_mem.cc: fixed a warning
2004-06-06 17:01:19 +00:00
Volker Ruppert
7cd2f11e79 - VBE 8 bit DAC support added 2004-05-04 20:41:53 +00:00
Volker Ruppert
02f326264e - charmap address for block numbers > 0 fixed
- some BX_INFO and BX_DEBUG messages changed
2004-04-25 07:16:09 +00:00
Volker Ruppert
ac6bed9a17 - vga code prepared for the split screen feature in text mode
- display library sdl: text mode split screen implemented
2004-04-09 15:04:54 +00:00
Volker Ruppert
5c9c57a60a - don't enable vbe if already active
- value of flag vbe_get_capabilities fixed
2004-03-02 16:29:27 +00:00
Volker Ruppert
7f9edd09c8 - convert the display library option string (options separated with commas) to an
array of strings in vga init
- added sdl specific option "fullscreen" (startup in fullscreen mode)
2004-02-24 19:21:48 +00:00
Volker Ruppert
d5f337e1ef - prepared implementation of display library specific options
- fixed bug #890734 (commas in strings enclosed with double quotes)
2004-02-22 18:51:38 +00:00
Volker Ruppert
d748f22ed0 - new gui function get_capabilities() returns the maximum values for xres, yres
and bpp (done for the x display library)
- new switch VBE_DISPI_GETCAPS. The xres, yres and bpp registers return the gui
  capabilities if enabled.
- VBE_DISPI_ID3 defined
2004-02-22 13:03:02 +00:00
Volker Ruppert
897695270b - notify the display library if the bpp value changes (switching from VBE to VGA mode) 2004-01-24 20:50:45 +00:00
Volker Ruppert
2127a3925b - re-implemented old VBE interface for backward compatibility (USB must be disabled) 2003-12-31 10:33:27 +00:00
Volker Ruppert
c99cd71125 - don't print the VBE disable info if the status is unchanged 2003-11-06 18:48:01 +00:00
Volker Ruppert
597c2834ca - CRTC initialisation fixed (bug found with valgrind) 2003-11-02 16:34:10 +00:00
Volker Ruppert
6c398a7170 - the CRT controller works the same way in color and monochrome emulation modes
- use the same text mode update code for color and monochrome modes (vga mode 0x07
  now works with the Elpin BIOS)
2003-11-01 10:28:40 +00:00
Volker Ruppert
5616d81a67 - removed unnecessary comments 2003-10-31 15:49:29 +00:00
Daniel Gimpelevich
abc180a397 fix oversight and prepare for change in vgabios 2003-10-04 15:58:21 +00:00
Volker Ruppert
df2d388fa4 - io_len mask fixed and unnecessary io_len checks removed from the remaining
devices except pciusb
2003-07-31 19:51:42 +00:00
Volker Ruppert
4a4e90d96e - missing #if BX_SUPPORT_VBE added in i/o write handler 2003-07-27 17:50:43 +00:00
Volker Ruppert
1155b63564 - undocumented feature (???): blinking feature exists in graphics modes, too.
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
2003-07-19 21:44:37 +00:00
Volker Ruppert
687b8281cc - these attribute controller registers now force a redraw: mode control, color
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
2003-07-18 18:31:50 +00:00
Volker Ruppert
592d7a7207 - a palette entry change must force a redraw in VBE mode, too
- 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)
2003-07-17 07:55:56 +00:00
Volker Ruppert
a016eff261 - VBE LFB flag added
- VBE set bank now ignored in LFB mode
2003-07-16 17:56:25 +00:00
Volker Ruppert
4e63eca16c - vbe_mem_write(): offset calculation fixed
- 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
2003-07-15 13:05:20 +00:00
Volker Ruppert
5c11b64bdf - support for 15 bpp modes added in the vga code and the sdl display library
- sdl: in function graphics_tile_update() vga_bpp handled in a case structure
2003-07-09 20:15:38 +00:00
Volker Ruppert
cc4708c348 - a dimension update after enabling a VBE mode is only necessary for modes >4bpp
- 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)
2003-07-01 16:07:59 +00:00
Volker Ruppert
3845a23b55 - support for 16, 24 and 32 bit VBE modes implemented in the vga code and the
X11 display library (vga changes based on a patch from Chistopher Nelson)
- VBE_DISPI_ID2 0xB0C2 defined
2003-06-30 18:53:12 +00:00
Volker Ruppert
906b7f8d1c - update(): skip screen update if the vertical retrace is in progress
(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
2003-06-10 16:26:19 +00:00
Volker Ruppert
e75e7a929d - graphics update code rewritten based on patch.vga-mode2-speed-dohzono
(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)
2003-06-08 16:45:24 +00:00
Volker Ruppert
3a788ddcf4 - char width switch feature (8 / 9 pixels) prepared for all display libraries
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
2003-05-11 15:07:54 +00:00
Volker Ruppert
46d5548439 - modify the horizontal pel panning value of the tm_info structure if a char
width of 9 is enabled. For now, a panning value of 8 must be decremented.
2003-05-10 12:00:58 +00:00
Volker Ruppert
36959329c5 - more accurate emulation of the horizontal and vertical retrace
ATTENTION: the Elpin VGA BIOS uses a delay of 280 vertical retraces after
  displaying the copyright text
- changes to the horizontal or vertical pel panning registers force a redraw of
  the screen
- screen update problems in text mode fixed
- sort order of the CRT register write cases changed
2003-05-09 15:32:28 +00:00
Volker Ruppert
5ab9786871 - function text_update() prepared for new features. New structure
'bx_vga_tminfo_t' replaces variable 'cursor_state'.
2003-05-07 19:15:47 +00:00
Volker Ruppert
b6c957a3b2 - behaviour of CRTC reg 0x18 (line compare) fixed
- fixed calculation of the byte offset for standard VGA modes if line compare
  is active
- force a resize of the screen after a change of the display mode (text/graphics)
- mem_write(): skip the rotation of the cpu byte if 'data_rotate' is 0
2003-05-06 17:10:13 +00:00
Volker Ruppert
b937905a97 - dotclock/2 switch implemented - stored in new variable 'x_dotclockdiv2'.
If set, the screen size will be horizontally doubled in CGA and standard
  VGA modes.
- doublescan feature for CGA mode 320x200x4 added
- removed trailing spaces in VBE update code
2003-05-03 16:09:39 +00:00
Volker Ruppert
3411535a8b - 'split screen' feature for standard VGA 16-color modes implemented
* new variables 'line_compare' and 'vertical_display_end' depend on CRT
    register values
  * implemented 'split screen' in functions update() and mem_write()
- mem_write(): CGA section: unnecessary variable 'isEven' removed
2003-05-02 07:32:06 +00:00