* floppy command 'format track' implemented
* read and write operations with MT=0 are working now
(function 'increment_sector()' updated)
* result code of floppy command 'get status' fixed
* flag FS_MS_DIO is not set while the 'configure' floppy command is pending
* diskette controller data register returns last result if no new data
is available
* reset will be activated when the reset bit is changed to normal operation
* reset sets the error bits in status register 0
* write access to port 0x3f4 will cause a BX_ERROR now
* unsupported and invalid floppy commands are setting the error status bit
'invalid command' - BX_PANIC not necessary
* flag FS_MS_DIO is not set while a floppy command is pending
* floppy command 'specify': cause a BX_ERROR when non-DMA mode is selected
* floppy command 'sense interrupt status' returns an error is no interrupt
is pending
* floppy command 'read ID' sets the 'busy' flag and returns no data if the
motor is not on
* removed SIMX86 section (not defined in bochs)
* define variable 'sTemp' for win32 only
- fopen with "wb" so that win32 doesn't translate CRLF
- add initmode setting
- fix bug, fill in behavior in write handler
- now it works for him with DOS, Linux, and Windows guests
probably been treated as ifdef instead, but a sun compiler doesn't like
them. Anyway, they were being used around a check for irq_num > 15.
This bounds check seems ok to do all the time, so I just removed the
#if BX_DEBUG lines and corresponding #endifs.
interface menus. Parallel port #1 is implemented, and I left stubs for
parallel port #2 in case we want to ever add it. If the parallel port
is enabled, the init method of parallel.cc does an fopen() on the output
file. If disabled, or if the fopen fails, the file handler remains
NULL and no characters are printed. There is no attempt to enable/disable
the operation of the parallel port, only the output to a file.
[ #468340 ] pic:slave: OCW3 not implemented
The service_master_pic() method supported special mask mode but
service_slave_pic() did not. I added the code to service_slave_pic(). I
have no clear way to test that this is actually working right. If I can put
a gdb breakpoint in the pic.cc code and then step through and watch it work,
I'll be more confident.
I compiled Bochs on Linux and installed a linux
in it, but when I ping a machine on my LAN, I get
packet loss. Sometimes as much as 70% is lost.
So I read ne2k.cc, Linux 8390 driver and 8390 chip
specification. I find that 8390 command register START
bit is misused in ne2k.cc. According to the chip
specification, even if START=0, the chip does not stop
working.
device and disk file for a while. Even though its version of
read_toc is minimal, in fact I would say broken, it lets people use
an ISO disk file as a cdrom.
- in this revision, I wrote the "unix equivalent" of the win32 code, including
the broken version of read_toc. Now win32 and unix should act very similar
when they encounter an ISO disk image.
- one important improvement is in read_toc, I have added "*length=1" for both
win32 and unix, since otherwise the function returns random junk for the
length of the TOC. I also tried "*length=0" and that created the "lost
interrupt" behavior that psyon has been trying to get rid of...I changed it
back to *length=1 of course and left a note to him in that bug report.