Commit Graph

299 Commits

Author SHA1 Message Date
Volker Ruppert
5109a7e679 - fixed toc size returned by IOCTL_CDROM_READ_TOC_EX using the size field of toc data
- prepared read_block() function for block size 2352
- report block number at cdrom read block panic
2005-11-02 20:26:24 +00:00
Volker Ruppert
6d1e5d6d05 - SET FEATURES subcommands now returning success
- read raw toc for image files and platforms other than Windows XP implemented (ported from qemu)
- several cdrom capacity fixes / report capacity only on Bochs init and cdrom change
- flag 'using_file' must be set to 0 for WIN32 ASPI or direct access
- multisession format handling removed from harddrv.cc (now handled in cdrom code)
- ATAPI error messages improved
- prepared ATAPI buffer for block size 2352
2005-11-01 19:10:24 +00:00
Volker Ruppert
71185561ad - IDE busmaster DMA for cdroms fixed and enabled
- more accurate DMA timing depending on the transfer size
2005-10-30 19:18:59 +00:00
Volker Ruppert
13bfb46cdc - IDE busmaster DMA for cdroms (packet DMA) prepared, but not enabled yet 2005-10-30 14:14:03 +00:00
Volker Ruppert
2bbf61deed - read_block() now tries 3 times before giving up
- read_block() now returns a bx_bool value and panic moved to hard drive code
- insert_cdrom() now uses read_block() to test the media presence
- small code cleanups
2005-10-27 17:01:11 +00:00
Volker Ruppert
6a290014f6 - ATAPI command 'read cd' partially implemented
- cdrom name returned by ATAPI command 'inquiry' changed
- some more indent mode fixes
2005-10-02 15:44:10 +00:00
Volker Ruppert
0cacb9af0c - deprecated option 'newharddrivesupport' removed from hard drive code
- sense code ASC_ILLEGAL_OPCODE added for unimplemented/unknown ATAPI commands
- some panics changed to errors
- unsupported bits message in drive and head register changed to BX_DEBUG
- improved info about not existing drive
- indent mode fixed in ATAPI packet command section
2005-10-02 10:16:54 +00:00
Volker Ruppert
fb44fe9ed1 - removed disabled code for obsolete split-HD support
- missing return value added
- fixed indent mode in modified section
- fixed some typos
2005-09-14 19:52:41 +00:00
Volker Ruppert
c58b8b54c3 - binary RTC mode implemented
- cmos image options renamed
- new cmos option controls the usage of the RTC values from image
- report time0 in use after handling the cmos image stuff
- MSVC warning fixed
2005-09-11 20:03:56 +00:00
Volker Ruppert
feb7f84dd3 - the BM-DMA interrupt flag must be set when the ide controller generates an interrupt
- BM-DMA base address set to 0xc000 at reset (shoud be done by the PCI BIOS)
- BM-DMA status register write messages changed to BX_DEBUG
- fixed an MSVC warning in the harddrive code
2005-09-05 18:32:23 +00:00
Volker Ruppert
fec5b4e135 - added new function set_signature() for several ATA/ATAPI commands
- ATA command 0x90 (execute drive diagnostics) now supports cdrom (Plan 9 boots now)
- indent mode in modified sections fixed
2005-08-21 17:40:45 +00:00
Volker Ruppert
ea18b29e12 - geometry autodetection for 'flat' hard disk images added. It works with all
images created with bximage (heads = 16, sectors per track = 63)
- size check for 'flat' hard disk images added. The image size is now compared
  with the size calculated from the geometry.
2005-08-06 18:29:36 +00:00
Volker Ruppert
4f0892a8d4 - assign a unique serial number to each drive (fixes detection problems with
Linux kernels 2.6.x: "ignoring undecoded slave")
2005-08-05 18:35:00 +00:00
Volker Ruppert
8380541a8f - replacing uint* types by Bit*u types since they are identical (BeOS code untouched) 2005-06-26 10:54:49 +00:00
Volker Ruppert
60c7be796c - added prefix "ataX-Y:" to messages in some more harddisk commands
- added missing break statement after command_aborted() call
- fixed indent mode in the modified sections
2005-06-19 07:22:20 +00:00
Volker Ruppert
e23d77f103 - changes in some hard drive commands:
* added prefix "ataX-Y:" to panic mesages (X=channel, Y=drive)
  * added command_aborted() call after the panic
  * fixed indent mode in the modified section
2005-06-18 15:00:11 +00:00
Volker Ruppert
69fe0b00d4 - some more warnings in MSVC fixed 2005-06-07 19:26:21 +00:00
Volker Ruppert
4a7d435ba7 - now using GetDiskFreeSpaceEx() and valid arguments to determine the media size
- report the cdrom capacity in megabytes instead of bytes
- don't flood the logfile with error messages when the guest OS checks the cdrom
  unit periodicly for media presence
2005-05-04 18:19:49 +00:00
Stanislav Shwartsman
b2148cdf07 Fixed swapped memset params 2005-04-01 09:24:15 +00:00
Volker Ruppert
2b196e5c61 - removed useless VLB-IDE support (ISA and PCI IDE are working okay)
- removed dangerous options from the harddrive code
2005-02-15 20:48:14 +00:00
Volker Ruppert
a57464cb54 - Busmaster DMA fuction implemented, but disabled for now. BM-DMA works in Linux,
but failes in Win98 with this code, so I decided to disable it.
- BM-DMA register read messages changed to BX_DEBUG
2005-02-08 18:32:27 +00:00
Volker Ruppert
3f33b88941 - applied SF patch #1095472 by Ben Lunt (Reading from a CDRW fixed)
- fixed boot sequence reporting in logfile
2005-02-03 21:01:01 +00:00
Volker Ruppert
06b249ebc6 - boot sequence support added in the config interface and the hard drive init
code. Up to 3 boot drives are supported now. TODO: new boot dialog for wx.
- config.cc: missing ask formats for enum parameters added
- wxdialog.cc: tab window now uses the label instead of the ask format if defined
2004-10-16 15:44:00 +00:00
Volker Ruppert
8d585dc813 - removed lowlevel includes from iodev.h and device headers to reduce dependencies
- fixed some warnings
2004-09-05 10:30:19 +00:00
Volker Ruppert
9a3a22b1ae - CDROM_MODE_SENSE now returns the medium type if a medium is present (patch from Ben Lunt) 2004-08-24 15:15:19 +00:00
Volker Ruppert
8f15a12248 - extended read TOC support for WinXP (SF patch #961665 from Ben Lunt)
- return multisession info for image files on win32 (copied from harddrv.cc)
2004-08-23 09:39:45 +00:00
Volker Ruppert
99a42a8dbc - applied SF patch #838601: support for > 2 GB disk size with MSVC++
- support for non-standard disk sizes 1.68 MB and 1.72 MB in bximage
- large disk support also works now if compiled in msys/mingw
2004-08-19 19:42:22 +00:00
Volker Ruppert
f6f6568adf - configure / compile fixes for Solaris SunPro (patch from Robin Kay) 2004-08-11 11:09:01 +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
Christophe Bothamy
713db869f6 - implement atapi command 'CD-ROM capabilities & mech. status default values'
it helps during OS/2 install from cdrom.
2004-02-13 00:42:31 +00:00
Volker Ruppert
e7b558894c - harddisk/cdrom i/o light implemented. The light is turned off 0.5 seconds after
the last read/write operation.
2004-02-09 18:59:50 +00:00
Volker Ruppert
d78f3da836 - win32 statusbar now shows active items with light green background
- harddisk/cdrom status light feature prepared
2004-02-08 18:38:26 +00:00
Daniel Gimpelevich
126971af49 Made to compile on MacOS9 2004-02-06 22:28:00 +00:00
Christophe Bothamy
df2030c60b - completely desactivate code for compressed hd for now.
this fixes bug #883239
2004-01-26 00:55:23 +00:00
Christophe Bothamy
2117cdae7d - apply patches from Ben Lunt :
* do not panic when "calibrate drive" is issued to non disk
  * warn that "set tranfert mode" command not supported
2004-01-19 21:48:07 +00:00
Christophe Bothamy
0d281a9cca - initialize ata controller state even if master/slave device is not
present. This would prevent the simulation from running on windows
  if no slave device was present on the ata0 interface.
2003-11-25 23:00:06 +00:00
Christophe Bothamy
740d0806f5 - fix bug that corrupts disk data when using a redolog. 2003-11-07 22:59:05 +00:00
Christophe Bothamy
39db299002 - remove references to zlib compressed disk images.
Gzipped disk images are too slow to be useful anyway.
  Proper read/write compressed disk image support
  will be implemented after 2.1
2003-10-29 01:13:16 +00:00
Christophe Bothamy
27b8d78e2d - add parameter to set the redolog name for 'volatile' and 'undoable' disks 2003-09-22 23:32:24 +00:00
Christophe Bothamy
95b002087f - remove unwanted if (...) added in rev1.109 2003-09-17 12:19:34 +00:00
Christophe Bothamy
92f4a281b0 - fix compile problem when configured with --disable-cdrom (patch by Jamie Baxter) 2003-09-17 12:02:54 +00:00
Christophe Bothamy
6c66a9a9a9 - write cmd 0x70 (seek) should not set drq. (fix by Mathis) 2003-08-24 22:44:44 +00:00
Christophe Bothamy
832ef1209f - apply .bochsrc, cdrom, serial and ethernet patches for NetBSD
(patches by fredb, uebayasi and david laight)
2003-08-19 00:37:03 +00:00
Christophe Bothamy
974d3538a1 - change disk image mode name "growable" to the more accurate "growing" 2003-08-01 01:20:00 +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
99a7d850b3 - byte writes to the first register of an ATA channel are ignored now (BX_PANIC
replaced by BX_ERROR)
2003-07-29 16:08:54 +00:00
Volker Ruppert
451ab1a4e1 - read/write access to the ports 0x03f6 and 0x03f7 no longer causes a panic
if all ATA channels are disabled (fixes SF bug #741433)
2003-07-28 18:52:14 +00:00
Volker Ruppert
a4135fbee8 - a bunch of warnings fixed 2003-06-08 08:21:12 +00:00
Volker Ruppert
d1652093ac - applied some parts of the patch from Andrew Zabolotny <zap@cobra.ru>
* changed all %ll format descriptions to FMT_LL macro so that
    Microsoft Visual C works correctly (it uses %I64)
  * missing type conversions added
  * cdrom.cc: variable types for win32 fixed
  * removed some unused variables in eth_win32.cc and harddrv.cc
  * added missing includes in make_cmos_image.c and niclist.c
2003-06-07 19:16:55 +00:00
Stanislav Shwartsman
928e20bd49 Changed some BX_INFO messages to BX_DEBUG 2003-05-15 18:32:27 +00:00
Christophe Bothamy
f5976555e5 - fix compilation problems under cygwin reported by Stanislav in the ml 2003-05-06 20:30:21 +00:00
Christophe Bothamy
f43d2fe3e9 - backport of the BRANCH_HARDDISK_MODES to the main branch.
You can now choose for each disk on the ata interfaces the
  disk mode, between :
    - flat : one file flat layout
    - concat : multiple files layout
    - external : developer's specific, through a C++ class
    - dll : developer's specific, through a DLL
    - sparse : stackable, commitable, rollbackable
    - vmware3 : vmware3 disk support
    - undoable : flat file with commitable redolog
    - growable : growing file
    - volatile : flat file with volatile redolog
    - z-undoable : gziped flat file with commitable redolog
    - z-volatile : gziped flat file with volatile redolog
  A new "bxcommit" utility can merge commitable redologs to
  flat images.
2003-05-03 16:37:18 +00:00
Christophe Bothamy
4c91b32b33 - fix non detection of hard drives by minix2.
The problem was submitted by Erik van Zijst on the ml.
2003-03-05 10:43:52 +00:00
Christophe Bothamy
50efc3b8c7 - apply Conn Clark's patch.perf-regparm-cclark :
- it works only on x86 with gcc2.95+
  - uses the GCC function atribute "regparm(n)" to declare that certain
    functions use the register calling convention
  - performance improvement is about 6%
2003-03-02 23:59:12 +00:00
Volker Ruppert
9f1464768c - simplified the port number search in the read and write handler
- fixed port adresses in BX_* messages
2003-02-01 12:21:43 +00:00
Christophe Bothamy
f5ae12bfe8 - Update the mode sense command, cdrom capabillities.
This enables readinf some kind of cdroms.
  (patch from Hartmut Birr, bug submitted by Ben Lunt)
2003-01-05 03:22:03 +00:00
Christophe Bothamy
afc06f0296 - implement atapi command 0xA8 read (12) 2002-12-30 17:12:16 +00:00
Bryce Denney
d296fa5bd5 - add debug message to notice when the set_cd_media_status method is called 2002-12-12 18:30:03 +00:00
Christophe Bothamy
16ebfdb9e1 - update for macos compile 2002-12-12 15:29:45 +00:00
Christophe Bothamy
e69203b361 - change BX_PANIC to BX_ERROR on "Stop disc command", then raise_interrupt 2002-12-03 21:04:04 +00:00
Christophe Bothamy
e03430ec8d - added missing features that are required for winxp boot :
. read port 0x70 (cmos) : return index
  . atapi function 46 and 4a : return error
- put back the log prefix for cmos that disappeared when we did the plugins
2002-11-25 21:48:22 +00:00
Christophe Bothamy
4f843a183e - add check if cdrom.ready before reading another block. (this should not happen, but...) 2002-11-08 22:14:55 +00:00
Christophe Bothamy
814d8b69ef - add "none", "lba", "rechs", "large", "auto" translation
- if translation=auto :
  . translation=none if cylinders <=1024 and heads <=16
  . translation=large if cylinders * heads <= 131072
  . transaltion=lba otherwise
- changes default translation value to "auto"
- add example in .bochsrc
2002-10-27 21:25:33 +00:00
Bryce Denney
48acd53db4 - all #warnings are now inside #ifdef __GNUC__ ... #endif
Modified Files:
    ltdl.c main.cc plugin.cc cpu/cpu.cc cpu/debugstuff.cc
    cpu/exception.cc cpu/fetchdecode64.cc cpu/init.cc
    cpu/paging.cc gui/siminterface.cc gui/wxmain.cc
    iodev/harddrv.cc
2002-10-25 12:36:44 +00:00
Bryce Denney
cec9135e9f - Apply patch.replace-Boolean rev 1.3. Every "Boolean" is now changed to a
"bx_bool" which is always defined as Bit32u on all platforms.  In Carbon
  specific code, Boolean is still used because the Carbon header files
  define it to unsigned char.
- this fixes bug [ 623152 ] MacOSX: Triple Exception Booting win95.
  The bug was that some code in Bochs depends on Boolean to be a
  32 bit value.  (This should be fixed, but I don't know all the places
  where it needs to be fixed yet.)  Because Carbon defined Boolean as
  an unsigned char, Bochs just followed along and used the unsigned char
  definition to avoid compile problems.  This exposed the dependency
  on 32 bit Boolean on MacOS X only and led to major simulation problems,
  that could only be reproduced and debugged on that platform.
- On the mailing list we debated whether to make all Booleans into "bool" or
  our own type.  I chose bx_bool for several reasons.
  1. Unlike C++'s bool, we can guarantee that bx_bool is the same size on all
     platforms, which makes it much less likely to have more platform-specific
     simulation differences in the future.  (I spent hours on a borrowed
     MacOSX machine chasing bug 618388 before discovering that different sized
     Booleans were the problem, and I don't want to repeat that.)
  2. We still have at least one dependency on 32 bit Booleans which must be
     fixed some time, but I don't want to risk introducing new bugs into the
     simulation just before the 2.0 release.

Modified Files:
    bochs.h config.h.in gdbstub.cc logio.cc main.cc pc_system.cc
    pc_system.h plugin.cc plugin.h bios/rombios.c cpu/apic.cc
    cpu/arith16.cc cpu/arith32.cc cpu/arith64.cc cpu/arith8.cc
    cpu/cpu.cc cpu/cpu.h cpu/ctrl_xfer16.cc cpu/ctrl_xfer32.cc
    cpu/ctrl_xfer64.cc cpu/data_xfer16.cc cpu/data_xfer32.cc
    cpu/data_xfer64.cc cpu/debugstuff.cc cpu/exception.cc
    cpu/fetchdecode.cc cpu/flag_ctrl_pro.cc cpu/init.cc
    cpu/io_pro.cc cpu/lazy_flags.cc cpu/lazy_flags.h cpu/mult16.cc
    cpu/mult32.cc cpu/mult64.cc cpu/mult8.cc cpu/paging.cc
    cpu/proc_ctrl.cc cpu/segment_ctrl_pro.cc cpu/stack_pro.cc
    cpu/tasking.cc debug/dbg_main.cc debug/debug.h debug/sim2.cc
    disasm/dis_decode.cc disasm/disasm.h doc/docbook/Makefile
    docs-html/cosimulation.html fpu/wmFPUemu_glue.cc
    gui/amigaos.cc gui/beos.cc gui/carbon.cc gui/gui.cc gui/gui.h
    gui/keymap.cc gui/keymap.h gui/macintosh.cc gui/nogui.cc
    gui/rfb.cc gui/sdl.cc gui/siminterface.cc gui/siminterface.h
    gui/term.cc gui/win32.cc gui/wx.cc gui/wxmain.cc gui/wxmain.h
    gui/x.cc instrument/example0/instrument.cc
    instrument/example0/instrument.h
    instrument/example1/instrument.cc
    instrument/example1/instrument.h
    instrument/stubs/instrument.cc instrument/stubs/instrument.h
    iodev/cdrom.cc iodev/cdrom.h iodev/cdrom_osx.cc iodev/cmos.cc
    iodev/devices.cc iodev/dma.cc iodev/dma.h iodev/eth_arpback.cc
    iodev/eth_packetmaker.cc iodev/eth_packetmaker.h
    iodev/floppy.cc iodev/floppy.h iodev/guest2host.h
    iodev/harddrv.cc iodev/harddrv.h iodev/ioapic.cc
    iodev/ioapic.h iodev/iodebug.cc iodev/iodev.h
    iodev/keyboard.cc iodev/keyboard.h iodev/ne2k.h
    iodev/parallel.h iodev/pci.cc iodev/pci.h iodev/pic.h
    iodev/pit.cc iodev/pit.h iodev/pit_wrap.cc iodev/pit_wrap.h
    iodev/sb16.cc iodev/sb16.h iodev/serial.cc iodev/serial.h
    iodev/vga.cc iodev/vga.h memory/memory.h memory/misc_mem.cc
2002-10-25 11:44:41 +00:00
Bryce Denney
5e520261db Add plugin support to Bochs by merging all the changes from the
BRANCH_PLUGINS branch!

Authors:
  Bryce Denney
  Christophe Bothamy
  Kevin Lawton (we grabbed a lot of plugin code from plex86)
Testing help from:
  Volker Ruppert
  Don Becker (Psyon)
  Jeremy Parsons (Br'fin)

The change log is too long to paste in here.  To read the change log, do
  cvs log patches/patch.final-from-BRANCH_PLUGINS.gz

All the changes and a detailed description are contained in a patch
called patch.final-from-BRANCH_PLUGINS.gz.  To look at the complete
patch, do
  cvs upd -r1.1 patches/patch.final-from-BRANCH_PLUGINS.gz

Then you will have a local copy of the patch, which you can gunzip and
play with however you want.

Modified Files:
    .bochsrc Makefile.in aclocal.m4 bochs.h config.h.in configure
    configure.in gdbstub.cc logio.cc main.cc pc_system.cc
    pc_system.h state_file.h bios/Makefile.in bios/rombios.c
    cpu/Makefile.in cpu/access.cc cpu/apic.cc cpu/arith16.cc
    cpu/arith32.cc cpu/arith8.cc cpu/cpu.cc cpu/cpu.h
    cpu/ctrl_xfer32.cc cpu/exception.cc cpu/fetchdecode.cc
    cpu/fetchdecode64.cc cpu/flag_ctrl.cc cpu/flag_ctrl_pro.cc
    cpu/init.cc cpu/io.cc cpu/logical16.cc cpu/logical32.cc
    cpu/logical8.cc cpu/paging.cc cpu/proc_ctrl.cc
    cpu/protect_ctrl.cc cpu/segment_ctrl_pro.cc cpu/shift16.cc
    cpu/shift32.cc cpu/stack64.cc cpu/string.cc cpu/tasking.cc
    debug/Makefile.in debug/dbg_main.cc disasm/Makefile.in
    doc/docbook/user/user.dbk dynamic/Makefile.in fpu/Makefile.in
    gui/Makefile.in gui/amigaos.cc gui/beos.cc gui/carbon.cc
    gui/control.cc gui/control.h gui/gui.cc gui/gui.h
    gui/keymap.cc gui/keymap.h gui/macintosh.cc gui/nogui.cc
    gui/rfb.cc gui/sdl.cc gui/sdlkeys.h gui/siminterface.cc
    gui/siminterface.h gui/term.cc gui/win32.cc gui/wx.cc
    gui/wxdialog.cc gui/wxdialog.h gui/wxmain.cc gui/wxmain.h
    gui/x.cc gui/keymaps/sdl-pc-de.map gui/keymaps/sdl-pc-us.map
    gui/keymaps/x11-pc-de.map instrument/example0/instrument.h
    instrument/example1/instrument.h
    instrument/stubs/instrument.cc instrument/stubs/instrument.h
    iodev/Makefile.in iodev/biosdev.cc iodev/biosdev.h
    iodev/cdrom.cc iodev/cmos.cc iodev/cmos.h iodev/devices.cc
    iodev/dma.cc iodev/dma.h iodev/eth_fbsd.cc iodev/eth_linux.cc
    iodev/eth_null.cc iodev/eth_tap.cc iodev/floppy.cc
    iodev/floppy.h iodev/guest2host.cc iodev/guest2host.h
    iodev/harddrv.cc iodev/harddrv.h iodev/iodebug.cc
    iodev/iodebug.h iodev/iodev.h iodev/keyboard.cc
    iodev/keyboard.h iodev/ne2k.cc iodev/ne2k.h iodev/parallel.cc
    iodev/parallel.h iodev/pci.cc iodev/pci.h iodev/pci2isa.cc
    iodev/pci2isa.h iodev/pic.cc iodev/pic.h iodev/pit.cc
    iodev/pit.h iodev/pit_wrap.cc iodev/pit_wrap.h iodev/sb16.cc
    iodev/sb16.h iodev/scancodes.cc iodev/scancodes.h
    iodev/serial.cc iodev/serial.h iodev/slowdown_timer.cc
    iodev/slowdown_timer.h iodev/unmapped.cc iodev/unmapped.h
    iodev/vga.cc iodev/vga.h memory/Makefile.in memory/memory.cc
    memory/memory.h memory/misc_mem.cc misc/bximage.c
    misc/niclist.c
Added Files:
    README-plugins extplugin.h ltdl.c ltdl.h ltdlconf.h.in
    ltmain.sh plugin.cc plugin.h
2002-10-24 21:07:56 +00:00
Christophe Bothamy
957e1b5abe - fix bug [ 625676 ] VC++ do not support S_ISBLK. Block devices are not supported on win32 anyway. 2002-10-21 23:51:49 +00:00
Bryce Denney
9297b17797 - in main.cc make the bochsrc parser a little more lenient about
empty pathnames, zero cylinders, etc.  It doesn't seem fair to allow
  people to write out bochsrcs that they cannot read back in without
  patching them up by hand!
- in harddrv.cc add the equivalent checks with BX_PANICs so that at least
  we don't start simulating with incomplete device configuration.
- make a few error messages more clear
- modified: main.cc iodev/harddrv.cc
2002-10-21 11:22:26 +00:00
Christophe Bothamy
9be41f5f55 - add check forbiding block devices if --enable-split-hd 2002-10-17 07:04:45 +00:00
Volker Ruppert
3c769207e2 - fixed some warnings at BX_INFO, BX_PANIC, BX_ERROR and BX_DEBUG 2002-10-06 20:19:03 +00:00
Volker Ruppert
d2c286797e - missing conditions for lower_irq() added:
* hardware reset
  * setting software reset bit to 1
  * writing to command register
2002-10-05 19:40:51 +00:00
Volker Ruppert
7158dd8a11 - result data of the ATAPI command 'inquiry' fixed. The strings are padded with
spaces now.
- BX_PANIC at 'read multiple sectors' changed to BX_ERROR
2002-10-05 16:49:03 +00:00
Bryce Denney
d92ccf70ae - apply patch from Stu Grossman <grossman@juniper.net> that changes
harddrv code to use off_t for file offsets.  If off_t is going to
  require a configure test, I'll add it later.
2002-09-30 14:19:46 +00:00
Kevin Lawton
c3a74d4da0 Integrated patches/patch.promise-dc2300-vlbide from Christophe Bothamy.
From his patch file text:

  > This patch adds Promise DC2300 VLB IDE Support.
  > You may find msdos and win95 drivers on the net. Look for
  > P2300W95.ZIP and DC2300VLBIDEver260b.ZIP.
  >
  > The good news is that now win95 natively sees my cdrom,
  > and that the disks are not in msdos compatibility mode any more.
  >
  > The bad news is that it works only for the first ata interface.
  >
  > I tested that patch on msdos and win95 only.
  >
  > Some info on VLB IDE can be found at http://ryston.cz/petr/vlb/

I got Win95 running with 32-bit paging/filesystem using the
  recommended driver and these patches.  Since the patches did
  such a good job bracketing code modifications with a #define,
  they might as well become part of the current CVS code.
2002-09-24 20:02:00 +00:00
Christophe Bothamy
8ce766fc17 - fixed problem reported by Kevin. the buffer index was incremented twice when repeat-speedups is enabled 2002-09-23 21:11:51 +00:00
Christophe Bothamy
af215531f2 - fixed compile problem with --enable-repeat-speedups 2002-09-22 23:47:34 +00:00
Christophe Bothamy
440dffc803 - applied patch.4ata-channels and patch.4ata-channels.bbd
- Features :
 . number of active channels defined at boot-time config
 . new options in bochsrc
 . up to 8 devices support (disks or cdroms)
 . up to 4 cdrom devices can be changed at runtime config
 . wxwindows config interface
2002-09-22 20:56:12 +00:00
Bryce Denney
6a50742b20 - clean up ^M pollution from working in cygwin 2002-09-16 17:00:16 +00:00
Bryce Denney
d6cd93b462 - add support for Peter Tattam's external disk simulator 2002-09-12 06:49:04 +00:00
Kevin Lawton
414e97bc32 Enhanced the repeat IO accelerations (enabled by --enable-repeat-speedups)
to request bulk IO operations to IO devices which are bulk IO aware.
Currently, I modified only harddrv.cc to be aware.  I added some
fields to the bx_devices_c class for the IO instructions to
place requests and receive responses from the IO device emulation.
Devices except the hard drive, don't monitor these fields so they
respond as normal.  The hard drive now monitors these fields for
bulk requests, and if enabled, it memcpy()'s data straight from
the disk buffer to memory.  This eliminates numerous inp/outp calling
sequences per disk sector.

I used the fields in bx_devices_c so that I would not have to
disrupt most IO device modules.  Enhancements can be made to
other devices if they use high-bandwidth IO via in/out instructions.
2002-09-09 16:56:56 +00:00
Bryce Denney
7fdc7303c2 - add "void reset(unsigned type)" method to every I/O device.
Some devices already had one.  Some I had to add an empty one.
  I did a little cleaning of init() methods to make them more uniform
  but generally I left them alone.
- I also put these exact diffs into a patch "patch.iodev-add-reset"
  in case I want to revert these changes for some reason, for example
  if they break an old patch.  It should be deleted after a while.
2002-08-27 19:54:46 +00:00
Christophe Bothamy
1a7d18743f - added subcommand 0x66 (Disable reverting to power-on default)
and 0xCC (Enable reverting to power-on default) to list of unsupported
"Set Feature" subcommands.
2002-08-09 13:16:22 +00:00
Volker Ruppert
f81909361d - panic at MODE SENSE (chg) and a few audio cd functions replaced by a
BX_ERROR. The harddisk controller returns an error code until we are able to
  implement this features.
2002-08-07 08:53:01 +00:00
Christophe Bothamy
6c62d72398 - added a check on odd byte count for atapi command
- fixed problem with multiple drq atapi data transfers
2002-08-05 15:47:40 +00:00
Volker Ruppert
c3cda0a919 - separation of floppy device type and media type started. This feature needs
more work in the floppy and bios code.
- floppy and cdrom entries in the runtime config menu can be disabled if the
  drive wasn't defined in bochsrc or start menu
- floppy variable "initial_status" and cdrom variable "inserted" renamed to
  "status"
- unused variable *ips in function build_runtime_options_prompt() disabled
2002-08-04 08:42:34 +00:00
Volker Ruppert
2b2369a049 - panic at 'Read sub-channel with SubQ' replaced by a BX_ERROR. The harddisk
controller returns an error code until we are able to implement this feature.
- init_send_atapi_command(): don't panic if alloc_length is 0, use byte_count
  to set alloc_length instead
- fixed a BX_PANIC message in the io write handler for port 0x1f0
2002-07-30 09:54:26 +00:00
Volker Ruppert
4dbd597456 - panic at READ CD replaced by a BX_ERROR. The harddisk controller
returns an error code until we are able to implement this feature.
2002-07-27 18:42:31 +00:00
Volker Ruppert
397043b5e9 - odd byte count error in init_send_atapi_command() fixed: a byte count of
0xffff must be decremeted to 0xfffe
- ATAPI command code added to odd byte count error message
2002-07-19 13:32:49 +00:00
Christophe Bothamy
43f7efce45 - 32bits access flag for atapi devices (word 48 of identify packet device)
- fixed io_len check on port != 0x1f0 : must be 1 byte
2002-07-11 07:44:32 +00:00
Volker Ruppert
6aa5eed1ec - panic at MODE SENSE (curr) replaced by a BX_ERROR. The harddisk controller
returns an error code until we are able to implement this features.
2002-07-07 18:51:49 +00:00
Volker Ruppert
afca461cf3 - reading port 0x01f0 with drq==0 causes a BX_ERROR, not a BX_PANIC. The return
value after the error is set to 0. This fixes the problem with the netbsd 1.5
  rescue disk (SF bug #419415)
2002-06-29 08:54:11 +00:00
Christophe Bothamy
17fe31ad4d - reverted to before patch.blkdevsize inclusion, because compilation fails on WIN32.
It will be included back when we know which platforms handle the GETBLKSIZE ioctl right
2002-06-28 21:34:30 +00:00
Christophe Bothamy
fcc5bd67cb - added patch for block device size detection from Ph. Marek
- included it in the main branch as it is only active with block devices
2002-06-26 16:45:27 +00:00
Christophe Bothamy
b84c82e80c - changed the floppy_bootsig_check syntax to be more logical. the syntax is now :
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
2002-05-04 16:00:40 +00:00
Christophe Bothamy
a2fc610355 - included "patch.harddrv-sco-osr5" from Carl Sopchak 2002-05-03 08:17:18 +00:00
Christophe Bothamy
cd50268e2f - added a floppy_bootsig_check option to .bochsrc that will be used to enable/disable the 0xaa55 signature check ONLY for floppy-boot
- stored the boot signature check flag in cmos reg 0x38
- the rombios that is able to handle that flag will be uploaded later
2002-04-23 07:44:34 +00:00
Bryce Denney
7306746f0b - fd was never initialized, then the close() method read it. Thanks
valgrind.
2002-04-09 15:52:02 +00:00
Christophe Bothamy
fcd6f99391 - fixed cmos info on 2nd disk landing zone. 2002-03-25 01:47:13 +00:00
Volker Ruppert
8263d15e76 - renamed update_floppy_status_buttons() to update_drive_status_buttons() since
it handles the cdrom status too
2002-03-17 20:57:54 +00:00
Christophe Bothamy
7b6f19f1d2 - small bug fix in ATAPI command 0x42 (read sub-channel). 2002-02-12 16:03:00 +00:00
Christophe Bothamy
716e461c9d - enabled dword IO. Tiny performance increase 2002-02-07 17:43:06 +00:00
Volker Ruppert
2d5a9bd459 - new sense key SENSE_UNIT_ATTENTION for media change
- set sense key and raise an interrupt after inserting cdrom media
- atapi command 'eject disk' implemented
2002-02-03 20:49:44 +00:00
Volker Ruppert
84b649831e - new cdrom button in the headerbar
- changing cdrom media in a Bochs session now possible
- don't eject cdrom when the guest OS has locked the drive
2002-02-01 16:46:27 +00:00
Christophe Bothamy
ac91aa0d3c . changes to enable El-Torito boot. It is disabled by default in rombios.c 2002-01-30 10:30:52 +00:00
Volker Ruppert
ad072e2bc6 - implementation of the edge triggered IRQ mode
- 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
2002-01-29 17:20:12 +00:00
Volker Ruppert
2933948216 - set the media status for the siminterface to 'ejected' if cdrom is not present 2002-01-27 21:58:41 +00:00
Volker Ruppert
a9c1b785f0 - when checking the presence if diskd, check the presence of diskc, too
- clear IRQ after reading status register 0x1f7
- unused variable 'alloc_length' removed
- some messages fixed
2002-01-20 12:38:35 +00:00
Bryce Denney
cbd68598a3 - apply patch.memleaks-tominac from Darko Tominac <darko.tominac@zg.tel.hr>
which fixes some potential memory leaks
2001-12-21 19:33:18 +00:00
Bryce Denney
3934cd370c - change a few "char"s to "const char", from Roland Mainz compile patch 2001-11-12 03:34:45 +00:00
Bryce Denney
7279914d1b - don't blindly reject odd length atapi commands. There are cases when
it's really ok according to ATA-4.
2001-10-06 23:55:19 +00:00
Bryce Denney
a9204c53f0 - make hard disk code return error codes when data is not available instead
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.
2001-10-06 09:04:39 +00:00
Bryce Denney
ec6a8b3ef5 - when you write the device/head register, if the device doesn't exist or
something, we need to set the error in the status register.
2001-10-06 08:59:01 +00:00
Bryce Denney
daf2a9fb55 - add RCS Id to header of every file. This makes it easier to know what's
going on when someone sends in a modified file.
2001-10-03 13:10:38 +00:00
Bryce Denney
6145266a70 - now there are BX_ERROR lines for all commands from ATA/ATAPI 3,4,5,6. 2001-09-29 02:08:11 +00:00
Bryce Denney
1a856a1726 - add BX_ERROR for every command in ATAPI-6 that bochs does not support.
I still need to do add some commands from older specs that are obsolete
  (and not listed) in ATAPI-6.
- commands that aren't in the spec will still panic.
2001-09-28 22:20:49 +00:00
Bryce Denney
c0719c7eb7 - more cleanup: clarify some log messages, add command aborted when some
atapi commands are tried on a disk, etc.
2001-09-28 07:18:55 +00:00
Bryce Denney
951014d794 - add note about where to find the spec
- fill in names from spec on various commands
- add command aborted for 0x08 device reset on disks (it's only for ATAPI)
- add command aborted for 0xe1 idle immediate
2001-09-28 07:14:50 +00:00
Bryce Denney
3bba2f657f - apply patch from patches/patch.lba. This is taken from plex86 cvs
and modified for bochs.  Minimal testing so far...
2001-09-19 15:30:44 +00:00
Bryce Denney
690c4eee31 - clarify BX_INFO message 2001-09-19 15:10:38 +00:00
Bryce Denney
8c6446cf4c - only put 0xf into the 2nd hard disk field when the cdrom is not present.
This is a patch from Volker Ruppert <Volker.Ruppert@t-online.de>, who
  comments: "The fdisk command reports an unusable second harddisk if the cdrom
  is enabled. This patch helps, but I don't know if it is the right way."
2001-09-15 13:35:42 +00:00
Todd T.Fries
64ea80c050 more INFO->ERROR/DEBUG cleanups 2001-08-31 22:02:29 +00:00
Todd T.Fries
28885e4973 some INFO->DEBUG/ERROR cleanups 2001-08-31 16:06:32 +00:00
Bryce Denney
595d6a0132 - now I know that 0xe7 is flush cache so I improved the comments somewhat
- if an unknown command comes along and triggers a BX_PANIC and they
  choose the continue, call command_aborted().
2001-08-15 20:54:36 +00:00
Bryce Denney
b483593107 - add case for IDE command 0xe7 so that it doesn't panic when installing
win2000
2001-08-13 15:58:35 +00:00
Todd T.Fries
4f1c151520 Move Init $ to ::init() 2001-06-27 20:27:49 +00:00
Todd T.Fries
f833500359 some reformat, various misc stuff with Init, introduce $ 2001-06-27 20:11:10 +00:00
Todd T.Fries
a06b031dcf setprefix -> put 2001-06-27 19:16:01 +00:00
Bryce Denney
cbb040f68c - added BX_DEBUGs 2001-06-23 17:59:14 +00:00
Bryce Denney
6fcc0b3aa1 - bx_options.cdromd.inserted is now an enum, with values BX_INSERTED or
BX_EJECTED
- added a BX_DEBUG line or two
2001-06-23 15:28:49 +00:00
Bryce Denney
b7cb1a5dde - applied patch from bochs@sigint.cs.purdue.edu. The comments are:
> The Linux 2.4.5 CD-ROM driver sends a READ_DISC_INFO command which caused
  > an "unrecognized ATAPI command" panic.  Looks like READ_DISC_INFO is only
  > recognized by CD-R and CD-RW drives, so I ignore it for now.  (I don't
  > know if ASC_INV_FIELD_IN_CMD_PACKET is the right code, but it shouldn't
  > matter to Linux anyway.)
2001-06-22 04:08:15 +00:00
Bryce Denney
a6d74fd4b0 - oops Odev should have been Opath 2001-06-21 15:06:14 +00:00
Bryce Denney
e9d8fc0738 - fixed some bx_options name changes which were hiding inside
#ifdef LOWLEVEL_CDROM ... #endif
2001-06-21 14:40:01 +00:00
Bryce Denney
ec0fbf18bc - convert nearly all bx_options to parameter form. All options that have
been converted into parameters temporarily have the letter "O" appended
  to their name.  I don't want to keep it this way, but it has helped
  in the conversion process because the compiler refuses to compile the
  old uses of the name.  Before I started using the "O" trick, there were
  many bugs like this:   if (bx_options.diskc.present) {...}
  This was legal with the new parameters, but it was testing whether the
  parameter structure had been created, instead of testing the value of
  the present parameter.  Renaming present to Opresent turns this into
  a compile error, which points out the incorrect use of the param.
- the "--disable-control-panel" no longer works, I'm afraid.  I can no
  longer support this and continue progress.
2001-06-20 14:01:39 +00:00
Todd T.Fries
12985edb26 setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
Bryce Denney
5b0481dd25 - use BX_ASSERT instead of assert 2001-06-07 20:52:26 +00:00
Todd T.Fries
2bbb1ef8eb strip '\n' from BX_{INFO,DEBUG,ERROR,PANIC}
don't need it, moved the output of it into the general io functions.
saves space, as well as removes the confusing output if a '\n' is left off
2001-05-30 18:56:02 +00:00
Todd T.Fries
cd01453c9d cleanup output 2001-05-23 19:36:55 +00:00
Todd T.Fries
70099281ff tweaks and if(bx_dbg.foo) BX_INFO -> BX_DEBUG .. 2001-05-23 14:31:21 +00:00
Bryce Denney
af4ccaae3e - added I/O APIC and local APICs
- for more details, see BRANCH-smp-bochs
2001-05-23 07:48:11 +00:00
Todd T.Fries
bdb89cd364 merge in BRANCH-io-cleanup.
To see the commit logs for this use either cvsweb or
cvs update -r BRANCH-io-cleanup and then 'cvs log' the various files.

In general this provides a generic interface for logging.

logfunctions:: is a class that is inherited by some classes, and also
.   allocated as a standalone global called 'genlog'.  All logging uses
.   one of the ::info(), ::error(), ::ldebug(), ::panic() methods of this
.   class through 'BX_INFO(), BX_ERROR(), BX_DEBUG(), BX_PANIC()' macros
.   respectively.
.
.   An example usage:
.     BX_INFO(("Hello, World!\n"));

iofunctions:: is a class that is allocated once by default, and assigned
as the iofunction of each logfunctions instance.  It is this class that
maintains the file descriptor and other output related code, at this
point using vfprintf().  At some future point, someone may choose to
write a gui 'console' for bochs to which messages would be redirected
simply by assigning a different iofunction class to the various logfunctions
objects.

More cleanup is coming, but this works for now.  If you want to see alot
of debugging output, in main.cc, change onoff[LOGLEV_DEBUG]=0 to =1.

Comments, bugs, flames, to me: todd@fries.net
2001-05-15 14:49:57 +00:00
Bryce Denney
dfd58f5a0f - this change should not affect functionality at all. Make IDE_DISK the
default for diskd, but if a cdrom is present change to a cdrom.
2001-05-08 19:55:40 +00:00
Bryce Denney
a7b7563e3c - add support for split hard disk image, so that it is possible to store
different partitions in separate files.
2001-05-07 05:47:59 +00:00
Bryce Denney
ebc315500e - added code to fill in CMOS registers 0x24-0x2c when diskd is present.
- made the code that fills 0x1b-0x23 for diskc conditional on diskc being
  present; this was probably not necessary.
- added some code (still commented out) that will help in supporting a second
  IDE interface.
2001-05-03 21:08:42 +00:00
Bryce Denney
10412cdf1e - why restrict when people read the sector count? This was causing
unnecessary panics on openbsd when sector count was read soon after a
  reset.
2001-05-03 20:40:08 +00:00
Bryce Denney
ad175e9aae - specify where on the hard drive it fails to read or write. 2001-05-03 00:41:36 +00:00
Bryce Denney
417e4c01ec - print which unknown hard drive command causes a panic 2001-04-10 02:33:27 +00:00
Bryce Denney
a6fef54678 - update copyright dates to 2001 for all mandrake headers
- for bochs files with other header, replaced with current mandrake header
2001-04-10 02:20:02 +00:00
Bryce Denney
b05159c112 - Applied patch from Greg Alexander, 12/22/2000.
Implement aborts on a few SET FEATURE commands for ATA.
2001-04-10 02:09:09 +00:00
cvs
beff63eb32 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from
ftp.bochs.com
2001-04-10 01:04:59 +00:00