- init(): set the initial status to BX_EJECTED if evaluate_media() fails
- don't modify the DOR when a drive > 1 is selected
- floppy command 'get status' now recognizes the head field
- floppy command 'recalibrate': don't set cylinder to 0 before completion
- floppy command 'sense interupt status' does not clear status register 0
- floppy command 'configure': more detailed BX_DEBUG messages
- floppy command 'read ID' does not modify status register 0
- floppy read/write commands: set the error bit in status register 0 if media
is not present
- better detection of not existing drives in some commands: check the media type
of the selected drive instead of the drive select value
- behaviour of floppy commands 'recalibrate' and 'seek' changed:
* drive is busy in the execution phase, but not the controller
* replaced the panic by setting the error status if drive is not existing
- evaluate_media(): set the media type even if device/file is not present
DMA functions defined. Most of the changes are based on the "bochs sync"
version of plex86. Here is the list of changes:
* register/unregister functions for DMA channels added. The DMA controller
can use the DMA read/write handlers of registered devices directly.
* "hardwired" code in dma.cc removed
* all DMA related code in devices.cc and iodev.h removed
* DMA related code in pc_system.* removed except HRQ handling
* macros for DMA functions defined in bochs.h
* floppy and SB16 code modified to use the changes described above
The new function register_pci_handlers() is similar to the register functions
for i/o addresses. A PCI device can register the read/write handlers for it's
private PCI configuration space. The i/o mapped registers of the host bridge
control the access to the configuration registers of each PCI device. You can
select the bus, device, function and register address with the confAddr
register. The confData register is a window to the configuration space of the
selected device.
- reset sets the values of the i/o mapped registers to 0
- changed some BX_INFO messages to BX_DEBUG
This means that the REALTIME_PIT now only works on machines
that are capable of sustaining 150000 IPS, in aggregate. This
seems a reasonable requirement, as even my 200Mhz PPC with 16MB
of memory can sustain that.
This is now probably ready for primetime, so I need to get it
added to the configure options.
This seems to work, but I don't think it works on slow machines (like mine.)
At least, I'm getting fails with the dlxlinux image, but they're pretty
sporadic. This code shouldn't cause any fails.
floppy_bootsig_check: disabled=[0|1]. It is not disabled by default.
Sorry for any inconvenience it could cause
- changed the default (if cmos reg is 0) behavior for the floppy boot signature
check, so the new bios is compatible with older bochs binaries (useful if we
want to use the new bios when we release 1.4.1) :
1 : disabled
0 : enabled
- added info at launch time about the boot device and the floppy boot signature
check
- added a "LBA capable" flag in the ata controller
- fixed opened netdevice name (/dev/net/tun...)
- fixed test on iface name (tun instead of tap)
- cosmetic changes
- added example in .bochsrc
Much of these fixes have been contributed by Frederic Bothamy
- The emulated vga card issues a dimension_update() using the real
screen dimensions and the real font height.
- The gui selects a font with the requested height or it recalculates
the screen height if the font height is not available.
- The text_update() function uses a new variable 'ncols' instead of the
fixed value of 80 for the number of text columns.
I have tested the changes with X11/Linux, SDL, wxGTK and win32. The changes
in the other guis are not tested yet.
cursor size issue a screen update request
- reading an invalid CRTC register returns 0 / writing is ignored
- bit 7 of CRTC address register is always 0
- debug messages for CRTC registers updated / panics removed
- use the number of visible columns in text mode when calculating the screen
width and the cursor position