Commit Graph

46 Commits

Author SHA1 Message Date
Volker Ruppert
f65c4e66b8 - debugger command 'info device': implemented support for additional arguments
- ne2k: replaced debugger command 'info ne2k' completely by a new version based
  on 'info device' with additional arguments and removed all of the now obsolete
  stuff (ne2k device stub, macro for print_info())
- pci: added option 'dump=full' for the debugger command 'info device' to show
  the whole PCI config space
- TODO: some other devices could have support for additional options in
  debug_dump()
2012-04-23 17:06:19 +00:00
Volker Ruppert
c43cf378f4 - floppy: added debug_dump() 2012-03-23 17:22:30 +00:00
Volker Ruppert
47f2137edf - set device state structure to 0 with memset() for some devices
- cleaned up vga core init code after adding memset()
- floppy: removed structures that had been used for win95 direct access
2012-02-05 10:08:56 +00:00
Volker Ruppert
aaf5d0a94d - removed raw floppy access support for Win 95/98/ME hosts 2011-08-22 17:57:21 +00:00
Volker Ruppert
d5973c06cf - added runtime config handler for the floppy. Now the media change is handled
after all parameters have been set.
2011-08-19 20:20:25 +00:00
Stanislav Shwartsman
00981cd7a6 Adding Id and Rev property to all files 2011-02-24 22:05:47 +00:00
Volker Ruppert
00c4dc40d6 - added floppy string parameter handler and moved "path" handling there
- the "readlonly" parameter is now completely handled in the floppy code
- detect VVFAT as 1.44 MB media when using the "image=" parameter in bochsrc
2011-01-18 21:04:44 +00:00
Volker Ruppert
9d3fc394a5 - simplified floppy parameter init code
- added floppy parameter handler and moved some runtime parameters there
2011-01-17 21:36:00 +00:00
Volker Ruppert
b728142477 - the floppy media (e.g. image file) must be closed in destructor
- moved all the close() stuff to the new method close_media()
2011-01-11 22:00:41 +00:00
Volker Ruppert
bc60caaccc - added vvfat floppy support (1.44 MB media only / currently not working with
plugins enabled)
- added special characters (0xe5 <-> 0x05) conversion in short filename
2011-01-11 20:14:21 +00:00
Volker Ruppert
8b46dcfc0b - added parameter to control the floppy media write protection. This is based on
the SF patch #1539417, but rewritten from scratch (patch too old). Differences
  to the original version:
  * internal parameter name "readonly"
  * update parameter if floppy image is readonly
  * wxWidgets support
  * documentation updates
  * no specific toolbar buttons
2010-07-03 05:34:27 +00:00
Volker Ruppert
e801f4a256 - removed floppy method get_media_status() (floppy media change handler already
updates the parameter)
2010-06-18 17:23:50 +00:00
Stanislav Shwartsman
153d43520d change copyright to bochs project 2009-12-04 19:50:29 +00:00
Volker Ruppert
e5eac65b59 - removed wrong character from FSF address (converted invisible and useless
2-byte character)
- updated FSF address in some files
- added license to some files
2009-02-08 09:05:52 +00:00
Stanislav Shwartsman
dd03e043a3 Updated FSF address 2009-02-07 21:05:31 +00:00
Stanislav Shwartsman
071c5c1a26 A lot of changes but everything is really trivial.
Make save/restore default feature, the configure option for save/restore removed from configure script and save/restore made available forever. All code now assume it is exists. Bochs save/restore tree previosly called "save_restore" renamed to "bochs" tree and it will be havily used everywhere, starting from save/restore and ending by various bochs debugger functions. I am going to rework debugger code to get rid of debug CPU access functions and use this "bochs" param tree instead
2007-09-28 19:52:08 +00:00
Volker Ruppert
4a8996153f - partial support for non-DMA mode (initial patch #1641816 by John Comeau) 2007-02-09 14:23:50 +00:00
Stanislav Shwartsman
8b0df8e99b Merge SAVE_RESTORE branch to CVS 2006-05-27 15:54:49 +00:00
Stanislav Shwartsman
77653bcf3d More indent and C++ style changes (explicitly write virtual before virtual desctructors).
The PCI read/write handlers written in new C++ - more flexible and easy-to-understand
2006-03-07 21:11:20 +00:00
Stanislav Shwartsman
242c2fa51c Style and indent changes 2006-03-07 18:16:41 +00:00
Volker Ruppert
31c23fc102 - floppy media type check added (prevents inserting of invalid media in drive,
e.g. 1.2MB 5.25" media in 1.44MB 3.5" drive)
2005-11-22 18:34:51 +00:00
Volker Ruppert
cbf474f7d3 - disk change line behaviour fixed (set at media removal and hardware reset,
cleared at the first step pulse)
2005-11-20 14:15:28 +00:00
Volker Ruppert
8fd02e184b - floppy controller type changed to 82077AA and added a few commands to make
Linux detect it correctly. This changes has no effect on r/w operations.
- data rate select register partially implemented
- register reset fixes and additions
2005-11-16 21:21:35 +00:00
Volker Ruppert
e0f02463f9 - the step delay for the recalibrate and seek commands is now calculated from the
number of steps to do, the step rate time and the date rate
- the option floppy_command_delay is obsolete now, since all floppy delays are
  based on the hardware specs. The usage of this option caused a warning now.
2005-11-12 10:38:51 +00:00
Volker Ruppert
902b8ec684 - better floppy write timing implementation (TC pulse is only available in DMA
r/w functions and must be stored in a variable)
2005-11-10 18:56:45 +00:00
Volker Ruppert
7b8ed58815 - end-of-track (EOT) condition implemented
- set valid EOT value in BIOS floppy read/write functions
- added hack to make older Bochs BIOS version work with EOT feature
2005-10-27 07:38:20 +00:00
Volker Ruppert
86c3c68dc4 - fixes for OS/2 in the floppy and rombios code (patch from Robin Kay)
* support for XDF images added
  * floppy controller should hang if media not present
  * rombios has to reset the floppy controller after read/write failure
2005-08-24 20:45:57 +00:00
Volker Ruppert
3c475e831f - prepared non-DMA mode implementation
- improved lseek() panic message and immediatly return if lseek() fails
2005-03-11 21:12:54 +00:00
Volker Ruppert
9d01ce4bfc - raw floppy access now supported in Win 9x (patch from Ben Lunt) 2004-05-31 14:47:12 +00:00
Volker Ruppert
f5c165e32a - statusbar items for floppy and keyboard added (win32 gui only). TODO: implement
statusbar in other display libraries and add items for harddisk/cdrom and network.
2004-02-07 14:34:35 +00:00
Volker Ruppert
d05e7cc10c - floppy cleanup patch from Alex Thiel. New functions enter_idle_phase() and
enter_result_phase(). This patch does not add new features and should not
  break anything.
2002-11-30 09:39:29 +00:00
Volker Ruppert
24eaffd453 - dma read/write functions of floppy and sb16 are now private members of the
device objects
- sb16: function opl_timerevent() and variables currentdma8 and currentdma16
  are now private members of the device object
2002-11-10 10:14:55 +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
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
Volker Ruppert
e33b16701f - the status of the 'disk changed' line depends on the selected drive.
The digital input register is now an array (DIR[4]).
2002-08-13 12:02:37 +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
ca5a805aff - behaviour of floppy command 'sense interrupt status' after reset fixed
(DLX linux boots again)
- new function raise_interrupt() sets variables and calls raise_irq()
2002-02-06 18:51:48 +00:00
Volker Ruppert
a8e9c246c7 - variables for 'format track' and MT=0 support added 2001-12-28 16:36:45 +00:00
Volker Ruppert
84f0593409 - added variable 'pending_irq' (needed for 'sense interrupt status' 2001-12-27 09:28:53 +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
7a095b60e4 - now floppy controller returns a proper error response if you try to write
a read-only disk image.  For systems such as DOS that actually use the
  BIOS services, it was also necessary to add code in int13_diskette_function
  to recognize a write-protected error and return the correct error
  status code (AH=3, Carry Set).
2001-06-13 07:06:10 +00:00
Bryce Denney
6ecd58beb9 - NOT A COMPLETE FIX!
now floppy.cc no longer crashes if you try to open a write-protected
  disk or read-only disk image.  Instead, it tries a second time to
  open the image read-only and only panics if this also fails.  If the
  image is opened read-only, a readonly flag is set
  (bx_floppy.s.media[drive].read_only).  If you try to write the floppy
  when this flag is set, the write silently fails except for some messages
  into the log.  Instead of failing silently we should learn what the
  floppy controller would really do in this situation and emulate it.
2001-06-13 00:30:34 +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
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
cvs
beff63eb32 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from
ftp.bochs.com
2001-04-10 01:04:59 +00:00