- fixed handling of rotate_on_autoeoi for master PIC in in IAC()
- removed old IRQ handling functions (trigger_irq / untrigger_irq)
- replaced BX_INFO in case of bx_dbg.pic by BX_DEBUG calls
the SMP interrupt handling is to blame. So I'm putting the 1.46 changes
back into the code. Now keyboard.cc is exactly the same as revision 1.51
again. A copy of the changes is now in patches/patch.eks-port64 so that
they can be easily examined by SMP debugging people.
boot of linux 2.2.17 to freeze forever. I don't understand what's being
done in this rev, so I'll ask Dave to check over it and see he can find
anything suspicious.
called <linux/netlink.h> the ethertap module will be defined. If other
OSes turn up that also have ethertap, we can change the test.
- in eth_tap.cc, I replaced the calls to GPL code from maconlinux with
my own stuff.
There is a problem with the existing function rx_timer_handler. It can
retrieve multiple packets from winpcap but returns when it finds one with
the source mac address address instead of ignoring it and processing any
remaining packets.
Replacing the function with the one in the attached file rectifies this.
With this I can browse the network fairly well from the guest NT4 and indeed
see the guest NT4 from other machines on the network.
Mike Lerwill <Mike@ml-solutions.co.uk>
- at the moment we only use hFile so the other pieces of the ADAPTER struct
don't affect how this code turns out. However, it would be safer to include
the winpcap header file instead of hardcoding the structures, which are bound
to change over time.
We should really be using #defines or enums to give these constants
a proper name! Thanks to Peter Tattam <peter@jazz-1.trumpet.com.au>
for the bug report.
Here are the patches (without the serial name fix). Let me know if you want
me to change that. Oh, FYI, my changes also open up the com1 terminal in raw
mode, which makes the emulation much more accurate. You'll also notice that
I added infrastructure for com2->4 in the option parsing. I didn't add it to
the serial code, as I think a bunch of things need to be untangled before
that can work.
This is basically the opposite of the slowdown timer. Instead
of trying to keep the PIT ticks in sync with bochs time, we
keep them in sync with REAL time. This is bad because it creates
unreproducible fails, but it's good if you want to run bochs at
maximum speed on your machine. However, bochs will take all of
the available resources from the machine also.
DO NOT use this with the slowdown timer. Results would be
unpredictable.
- new functions raise_irq() and lower_irq()
- all trigger_irq() / untrigger_irq() calls are replaced by the new functions
- REMARK: timer IRQ handling is not correct but it works
- TODO: IOAPIC IRQ handling needs to be changed
- interrupt reasons modem status change and receiver line status change added
- number of data bits is considered now
- REMARK: Windows 95 driver still makes trouble
- TODO: real serial communication, FIFO, second serial port
- length of 'configure' floppy command fixed
- busy flag is set until the result of a read/write command is complete
- read/write access to unsupported address causes a BX_ERROR, not a BX_PANIC
- commented BX_INFO statements removed
* 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.
which were generated with gcc -MM to the end of each Makefile.in
so that make understands which files depend on which. Basically,
everything depends on bochs.h, which depends on everything, which
is not ideal.
of just panicing. In particular, if the logical sector is out of bounds
or the disk image cannot be read/written at the desired offset, we now
abort the ATA command and return an error code. Many of the old BX_PANIC
messages are turned to BX_ERROR, so they will still appear in the
log, but now the device model will try to communicate this fact to
the OS instead of simply giving up.