Commit Graph

588 Commits

Author SHA1 Message Date
Bryce Denney
c5775cf076 - change "TCR write, reserved bits set" into an error instead of a panic.
This is happening in the debian image, but does not seem to affect
  operation of the NE2k at all.
2002-12-13 18:27:07 +00:00
Bryce Denney
d4ddc7a332 - changed my mind... With #ifdef macintosh there is the danger of messing
things up for MacOSX, and I don't want to risk that right now just before
  the release.  I changed it to #if BX_WITH_MACOS to be safe.
  (Bochs makefiles currently define -Dmacintosh on OSX.  Maybe they
  shouldn't but I'm not going to change it right now.)
2002-12-13 15:28:55 +00:00
Bryce Denney
a56b30d175 - #ifdef BX_WITH_MACOS is always true, even if BX_WITH_MACOS is defined to
be zero.  I changed it to #ifdef macintosh.
- removed extern "C" {} that only encompassed two #defines.  If there
  were any includes in there it would be important, but there weren't.
2002-12-13 14:42:11 +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
Bryce Denney
45ce7e1bc2 - clarify panic 2002-12-11 15:45:10 +00:00
Bryce Denney
e1e9a289a0 - apply patch from Alex Thiel from a December 8 email that fixes my
panic problem: "floppy:timer(): unknown case e6".
2002-12-11 15:41:24 +00:00
Volker Ruppert
d61b85202a - bugfixes in function redraw_area():
* missing VBE support added, use xmax / ymax variables instead of the
    values 640 / 480
  * use the constant Y_TILESIZE when checking the y position
  * variable vga_mem_updated was always set twice
2002-12-10 20:09:25 +00:00
Gregory Alexander
5130d479d6 change incorrect %lld terms to %llu. 2002-12-08 04:48:52 +00:00
Gregory Alexander
66e7558498 Cleaned up the realtime PIT code for win32.
This seeems to work on my laptop, but the processor
isn't fast enough to run anything substantial, so I'm
not certain how well it works.
2002-12-07 20:01:10 +00:00
Gregory Alexander
a9cf965597 Fixing up realtime PIT for use with win32.
Still need to do some cleanup that I was putting off.
2002-12-07 19:51:42 +00:00
Gregory Alexander
c4ad196af1 Still working on realtime PIT in win32.
This version is a bit of a hack that needs to be cleaned up before release.

There is also a glaring bug that lets things go WAY too fast when
we're trying to catch up to real time.  This is my highest priority
right now.
2002-12-07 19:17:01 +00:00
Volker Ruppert
cf44b0bd83 - added stub function update_timeval(). This function should convert the RTC
register values to a new timeval after date/time change. There is only a
  BX_ERROR for now.
- added separate cases for the alarm time registers and a BX_DEBUG message that
  reports the new alarm time.
2002-12-07 15:53:02 +00:00
Bryce Denney
f2b4a6b3d3 - remove tabs 2002-12-06 22:37:37 +00:00
Bryce Denney
da9de3c72d - use symbolic names for cmos register numbers instead of hex numbers.
This rev does not make any functional change.
2002-12-06 22:36:48 +00:00
Bryce Denney
7cb4093e4a - fill in CMOS register 0x37 with a copy of register 0x32. Some bioses use
0x32 for the century byte while others use 0x37.  Raul Hudea suggested this
  change, and Tony Heller reported that it allows WinXP to work!
2002-12-06 22:22:32 +00:00
Bryce Denney
050c47a182 - fix spelling of acquire 2002-12-06 18:48:08 +00:00
Bryce Denney
e9b135a5c6 - define macros to work around VC++ brain-dead-ness about converting between
unsigned 64-bit integer and 64-bit double precision floating point.  It
  knows how to convert Bit64s to double, but it refuses to convert Bit64u
  to double.  The macros: F2I converts from floating point to integer, and
  I2F converts the other way, using Bit64s as a transition step.
    F2I:  double -> Bit64s -> Bit64u
	I2F:  Bit64u -> Bit64s -> double
2002-12-05 17:43:00 +00:00
Volker Ruppert
a08c73548d - BX_ERROR added: changing time and date is not supported yet
- added register 0x32 (century) to the list of time and date registers
2002-12-04 21:09:36 +00:00
Gregory Alexander
5c99750c8b Updated the realtime PIT to work with win32. 2002-12-04 19:51:51 +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
357da5438d - Volker said read of port 70h should return 0xff. WinXP does not seem to care. 2002-12-03 21:01:48 +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
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
Bryce Denney
3edf45a1d9 - regenerate makefile dependencies 2002-11-25 15:05:51 +00:00
Bryce Denney
a900dc40fe - fix mismatched parens in BX_INFO calls 2002-11-25 13:49:56 +00:00
Volker Ruppert
0c0a87feb5 - added BX_ERROR message for not existing devices. If you enable PCI, NE2K or
SB16 in your bochsrc and the device is not compiled into bochs you will get
  an error.
2002-11-21 17:10:13 +00:00
Bryce Denney
691c9d56c7 - change to nmake compatible lines (from Psyon) 2002-11-20 20:36:05 +00:00
Bryce Denney
c56bba0a44 - add BX_PLUGGABLE to all ne2k sub-files, so that they will import DLL
symbols

Modified Files:
  eth.cc eth_arpback.cc eth_fbsd.cc eth_linux.cc eth_null.cc
  eth_packetmaker.cc eth_tap.cc eth_tuntap.cc
2002-11-20 19:06:23 +00:00
Bryce Denney
c43b46c531 - check in some small compile patches from Martin Str|mberg <ams@ludd.luth.se>
to make Bochs compile on DJGPP.
  - put references to SIGSTOP and SIGTSTP in #ifdefs
  - add definition of BX_CD_FRAMESIZE and CD_FRAMESIZE
  - look for curses functions in -ldcurses

Modified Files:
  gui/term.cc iodev/cdrom.cc configure.in configure
2002-11-20 12:23:42 +00:00
Volker Ruppert
64b66e709e - converted ne2k device to a plugin
- moved ne2k presence check to devices.cc
- added special make rules for the ne2k and the lowlevel network support
- added macro for the debug feature of the ne2k
2002-11-19 18:56:39 +00:00
Bryce Denney
97f911d1fe - when VC++ sees local variables in a for statement, it doesn't think
that they go out of scope at the end, so it complains about duplicate
  definitions.
2002-11-19 05:51:52 +00:00
Bryce Denney
0a7cb3a43c - apply patch.ifdef-disabled-options. Comments from that patch are below:
For a whole lot of configure options, I put #if...#endif around code that
  is specific to the option, even in files which are normally only compiled
  when the option is on.  This allows me to create a MS Visual C++ 6.0
  workspace that supports many of these options.  The workspace will basically
  compile every file all the time, but the code for disabled options will
  be commented out by the #if...#endif.

  This may one day lead to simplification of the Makefiles and configure
  scripts, but for the moment I'm leaving Makefiles and configure scripts
  alone.

  Affected options:
    BX_SUPPORT_APIC (cpu/apic.cc)
    BX_SUPPORT_X86_64 (cpu/*64.cc)
    BX_DEBUGGER (debug/*)
    BX_DISASM (disasm/*)
    BX_WITH_nameofgui (gui/*)
    BX_SUPPORT_CDROM (iodev/cdrom.cc)
    BX_NE2K_SUPPORT (iodev/eth*.cc, iodev/ne2k.cc)
    BX_SUPPORT_APIC (iodev/ioapic.cc)
    BX_IODEBUG_SUPPORT (iodev/iodebug.cc)
    BX_PCI_SUPPORT (iodev/pci*.cc)
    BX_SUPPORT_SB16 (iodev/sb*.cc)

Modified Files:
  cpu/apic.cc cpu/arith64.cc cpu/ctrl_xfer64.cc
  cpu/data_xfer64.cc cpu/fetchdecode64.cc cpu/logical64.cc
  cpu/mult64.cc cpu/resolve64.cc cpu/shift64.cc cpu/stack64.cc
  debug/Makefile.in debug/crc.cc debug/dbg_main.cc debug/lexer.l
  debug/linux.cc debug/parser.c debug/parser.y
  disasm/dis_decode.cc disasm/dis_groups.cc gui/amigaos.cc
  gui/beos.cc gui/carbon.cc gui/macintosh.cc gui/rfb.cc
  gui/sdl.cc gui/term.cc gui/win32.cc gui/wx.cc gui/wxdialog.cc
  gui/wxmain.cc gui/x.cc iodev/cdrom.cc iodev/eth.cc
  iodev/eth_arpback.cc iodev/eth_fbsd.cc iodev/eth_linux.cc
  iodev/eth_null.cc iodev/eth_packetmaker.cc iodev/eth_tap.cc
  iodev/eth_tuntap.cc iodev/eth_win32.cc iodev/ioapic.cc
  iodev/iodebug.cc iodev/ne2k.cc iodev/pci.cc iodev/pci2isa.cc
  iodev/sb16.cc iodev/soundlnx.cc iodev/soundwin.cc
2002-11-19 05:47:45 +00:00
Bryce Denney
d9eaf5c7d8 - eip is no longer in bx_cpu. Now we must call get_EIP() accessor instead. 2002-11-18 17:27:40 +00:00
Volker Ruppert
35c2be5518 - changed ne2k presence options from "valid" to "present" 2002-11-18 17:16:07 +00:00
Volker Ruppert
cde5737dc5 - the names of the object files for the lowlevel network support are now stored
in NETLOW_OBJS. The value of NE2K_OBJS is now 'ne2k.o' if ne2k support is
  enabled. These changes are necessary before converting the ne2k to a plugin.
2002-11-17 12:49:46 +00:00
Bryce Denney
cb1d6121b2 - this should fix bug #635223: VGA tiles array access out of bounds.
For years we have been writing beyond the end of this array in the VGA code:
    bx_bool  vga_tile_updated[BX_NUM_X_TILES][BX_NUM_Y_TILES];
  and doing who-know-how-much damage to other memory structures in the process.
  I changed every reference to vga_tile_updated[][] into calls to two macros
  GET_TILE_UPDATED and SET_TILE_UPDATED, and defined the macros to check
  the bounds of the array before referencing it.  At first I used an
  assert, then a panic, then an error, and now I'm not printing any message
  at all because there were thousands and thousands of messages during
  a boot of win95 when it's updating the win95 logo screen.
- I couldn't resist cleaning up a few confusing-looking things like
  "if (condition) { // }".  There are no functional changes except for
  bounds checking on the vga_tile_updated array.
2002-11-16 15:43:13 +00:00
Volker Ruppert
26c9b55bc2 - the SB16 plugin dll needs the link option -lwinmm
- BX_PLUGGABLE must be defined in soundwin.cc
2002-11-16 10:29:57 +00:00
Bryce Denney
adb6e17ffa - after plugin conversion, the global variable "bx_sb16" doesn't exist
anymore.  Point to the new global symbol for the sb16.
2002-11-15 18:29:19 +00:00
Volker Ruppert
3d3deeb5fc - replaced memcpy() in pci_read() by a more portable code. This should fix the
problems with PCI on big-endian machines.
2002-11-14 20:02:58 +00:00
Bryce Denney
1bd9a44a9e - plugins are now called libbx_NAME.so for unix and bx_NAME.dll for win32.
- plugins are installed into ${plugdir} which is defined to be
  ${libdir}/bochs-${VERSION}/plugins.

Modified Files:
  Makefile.in plugin.cc configure.in configure gui/Makefile.in
  iodev/Makefile.in
2002-11-14 18:45:49 +00:00
Bryce Denney
edf1b23a05 - check for NULL before using pluginSB16Device. 2002-11-14 02:32:33 +00:00
Volker Ruppert
84b4cf6d4c - converted sb16 device to a plugin
- moved sb16 presence check to devices.cc
- added special make rules for the sb16 and the lowlevel sound support
2002-11-13 18:39:41 +00:00
Volker Ruppert
675f140e37 - the name of the object file for the lowlevel sound support is now stored in
SOUNDLOW_OBJS. The value of SB16_OBJS is now 'sb16.o' if SB16 support is
  enabled. These changes are necessary before converting the SB16 to a plugin.
2002-11-12 21:07:17 +00:00
Christophe Bothamy
e359cfc5d3 - fix [ 628663 ] double panic from cmos get_timeval. As Volker said :
The cmos function get_timeval is only used by the pc_system
  to print the last system time on exit. We should remove the
  STUBFUNC() macro and simply return 0.
2002-11-11 22:01:08 +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
Volker Ruppert
95699f5a46 - removed initialization of the PCI plugins from init() since it is done by
bx_init_plugins()
2002-11-10 08:12:12 +00:00
Volker Ruppert
01027b46c9 - converted devices pci and pci2isa to plugins
- moved PCI presence check to devices.cc
- moved initialization of the PCI register arrays from constructor to init()
- PCI macros updated
2002-11-09 20:51:40 +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
92f04bdd0b - fix "if ((addr < 0xB0000) | (addr > 0xB7FFF)) return;" bug, thanks to Kazuo Fox Dohzono 2002-11-07 22:02:13 +00:00