Bochs/bochs/iodev
Bryce Denney 55ed69273b - commit patch from David Haslam <dch@sirius.clara.co.uk>
posted to bochs-developers on Wed, 29 Aug 2001 00:08:45 +0100

  David Haslam wrote:
  > I have been looking at the keyboard problem with Minix, which for
  > those that haven't tried Minix results in every key press giving the
  > response: ^@
  >
  > I am aware of the comments in the changelog that suggest removing 2
  > keyboard ACKs in iodev/keyboard.cc, but this is a bit of a hack,
  > (which is presumably why it was never incorporated).
  >
  > The problem seems to be that the Minix keyboard driver doesn't obey
  > the rules, and Bochs doesn't model the 8042 accurately. When issuing
  > commands to set the LEDs, Minix polls the 8042 output data register
  > waiting for an ACK even though the OBF flag isn't set.
  >
  > Bochs returns zero under these circumstances, which seems to
  > trigger obscure behaviour that messes up the Minix internal
  > keyboard queue. I don't fully understand why Minix breaks, but I
  > think the fact that the ACK generates an interrupt, and Minix treats
  > it as a scan code also has something to do with it.
  >
  > In any case, I believe, the fix is for Bochs to return the output
  > buffer contents, regardless of whether the OBF flag (called outb in
  > Bochs) is set.
  >
  > I expect the real hardware allows the register to be read at anytime,
  > and with this fix we are modelling the behaviour of the hardware more
  > accurately.
  >
  > I have tested it with Minix 2.0.0. Also DOS 6.22 still works after this fix.
  > Does anyone think this will break anything else?
  >
  > This diff is against the latest CVS of iodev/keyboard.cc, version 1.29
  > The last part of the diff is a minor fix to an unrelated debug print.
2001-09-11 16:49:54 +00:00
..
aspi-win32.h - only define PACKED if it's not already defined, since in Cygwin it's 2001-06-25 12:52:37 +00:00
cdrom_amigaos.cc - remove newlines from BX_PANIC and similar statements. it is implied. 2001-08-14 06:48:03 +00:00
cdrom.cc - remove the include of "type.h" that was added with Psyon's cdrom patch. 2001-08-14 05:01:49 +00:00
cdrom.h some reformat, various misc stuff with Init, introduce $ 2001-06-27 20:11:10 +00:00
cmos.cc some reformat, various misc stuff with Init, introduce $ 2001-06-27 20:11:10 +00:00
cmos.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
crc32.cc some reformat, various misc stuff with Init, introduce $ 2001-06-27 20:11:10 +00:00
crc32.h Fixed compile problems in the CRC code, eth.cc, and eth_fbsd.cc. 2001-06-17 23:08:27 +00:00
devices.cc some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
dma.cc Move Init $ to ::init() 2001-06-27 20:27:49 +00:00
dma.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
eth_arpback.cc More preprocessor controls. 2001-07-05 23:55:22 +00:00
eth_fbsd.cc more INFO->ERROR/DEBUG cleanups 2001-08-31 22:02:29 +00:00
eth_linux.cc - remove newlines from BX_PANIC and similar statements. it is implied. 2001-08-14 06:48:03 +00:00
eth_null.cc - add logging code to eth_fbsd, similar to eth_null.cc 2001-06-19 16:09:13 +00:00
eth_packetmaker.cc More preprocessor controls. 2001-07-05 23:55:22 +00:00
eth_packetmaker.h More preprocessor controls. 2001-07-05 23:55:22 +00:00
eth.cc Fixed compile problems in the CRC code, eth.cc, and eth_fbsd.cc. 2001-06-17 23:08:27 +00:00
eth.h More preprocessor controls. 2001-07-05 23:55:22 +00:00
floppy.cc some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
floppy.h - now floppy controller returns a proper error response if you try to write 2001-06-13 07:06:10 +00:00
guest2host.cc Move Init $ to ::init() 2001-06-27 20:27:49 +00:00
guest2host.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
harddrv.cc more INFO->ERROR/DEBUG cleanups 2001-08-31 22:02:29 +00:00
harddrv.h - for big endian machines I reversed the bit fields in interrupt_reason. 2001-08-13 15:48:13 +00:00
ioapic.cc setprefix -> put 2001-06-27 19:16:01 +00:00
ioapic.h - added I/O APIC and local APICs 2001-05-23 07:48:11 +00:00
iodev.h Lots of timer stuff. 2001-08-18 03:28:23 +00:00
keyboard.cc - commit patch from David Haslam <dch@sirius.clara.co.uk> 2001-09-11 16:49:54 +00:00
keyboard.h Another mouse fix. This one changes the model a bit to 2001-08-24 13:48:05 +00:00
Makefile.in Put the new PIT back in. The whole thing should be ifdef'd 2001-07-02 01:21:59 +00:00
ne2k.cc more INFO->ERROR/DEBUG cleanups 2001-08-31 22:02:29 +00:00
ne2k.h - apply ne2k patch from splite@purdue.edu to fix a few problems that 2001-06-26 07:49:25 +00:00
parallel.cc Move Init $ to ::init() 2001-06-27 20:27:49 +00:00
parallel.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
pci.cc more INFO->ERROR/DEBUG cleanups 2001-08-31 22:02:29 +00:00
pci.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
pic.cc setprefix -> put 2001-06-27 19:16:01 +00:00
pic.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
pit82c54.cc Fixed a small problem in the latching code in the new pit. 2001-09-05 14:41:55 +00:00
pit82c54.h Lots of timer stuff. 2001-08-18 03:28:23 +00:00
pit_wrap.cc - fix expression that required implicit bool->int which caused havoc on 2001-08-30 02:02:10 +00:00
pit_wrap.h - give the "struct {} s" a type name 2001-08-30 02:04:42 +00:00
pit.cc - changed #ifdefs to #ifs. Even when the new PIT is unused, there will 2001-08-15 20:23:58 +00:00
pit.h - give the "struct {} s" a type name 2001-08-30 02:04:42 +00:00
sb16.cc setprefix -> put 2001-06-27 19:16:01 +00:00
sb16.h - converted ne2k and sb16 to new style parameters and control panel, 2001-06-21 18:34:50 +00:00
scsi_commands.h - make it clear that it's only used for cdrom_amigaos.cc. 2001-08-15 20:32:16 +00:00
scsidefs.h - added little headers to the .h files 2001-06-25 14:02:29 +00:00
scsipt.h - added little headers to the .h files 2001-06-25 14:02:29 +00:00
serial_raw.cc setprefix -> put 2001-06-27 19:16:01 +00:00
serial_raw.h - added empty stubs for serial_raw. To try it out, define USE_RAW_SERIAL 2001-06-16 19:27:41 +00:00
serial.cc cleanup debug stuff 2001-07-10 17:20:36 +00:00
serial.h - added empty stubs for serial_raw. To try it out, define USE_RAW_SERIAL 2001-06-16 19:27:41 +00:00
slowdown_timer.cc Improve mouse performance/responsiveness. 2001-08-23 13:04:14 +00:00
slowdown_timer.h Oh, and this one too. 2001-08-22 02:03:04 +00:00
soundlnx.cc merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
soundlnx.h - converted ne2k and sb16 to new style parameters and control panel, 2001-06-21 18:34:50 +00:00
soundwin.cc - converted ne2k and sb16 to new style parameters and control panel, 2001-06-21 18:34:50 +00:00
soundwin.h - update copyright dates to 2001 for all mandrake headers 2001-04-10 02:20:02 +00:00
unmapped.cc some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
unmapped.h - apply BIOS patch from Barry Allard to check the boot signature 2001-08-15 04:56:00 +00:00
vga.cc setprefix -> put 2001-06-27 19:16:01 +00:00
vga.h - added option of changing vga update interval on the fly. 2001-06-09 19:57:56 +00:00