Commit Graph

462 Commits

Author SHA1 Message Date
Volker Ruppert
da975f3edf - applied SF patch #1116663: temporary fix for vbe and cirrus support check
(the check can be removed when the vga extension option works completely)
2005-02-05 10:05:30 +00:00
Volker Ruppert
f98ecd09b1 - changed wxWindows to wxWidgets (includes SF patch #1094407 by Alexander Schuch) 2005-01-05 19:54:32 +00:00
Stanislav Shwartsman
14be5a7f01 Fix typo 2004-10-23 19:31:13 +00:00
Stanislav Shwartsman
b37ae8a969 added new option --enable-show-ips to configure -> allow to enable BX_SHOW_IPS through configure script
fixed print prefixes in disasm -> only LOCK, REP and REPNE prefixes printed
update changes
2004-10-16 21:17:44 +00:00
Volker Ruppert
f93b04df0b - the PCI Pseudo-NIC is now independent from the NE2000 NIC stuff. New symbol
BX_NETWORKING controls the presence of the lowlevel networking stuff.
- eth.cc: unused stuff removed
2004-10-03 20:06:12 +00:00
Stanislav Shwartsman
eb2b8a3afc Ability to enable PNI 2004-09-21 21:07:39 +00:00
Volker Ruppert
5e47de7968 - missing extension ".exe" added for "make install" on cygwin
- compile niclist.exe on cygwin if networking is enabled
2004-09-12 11:25:01 +00:00
Volker Ruppert
91ac899439 - applied SF patch #867045 from m_suzu_abc@yahoo.co.jp
* fixed compiler errors to build on VC++
  * removed /GX from CXXFLAGS since C++ exception is not used
2004-08-18 11:52:25 +00:00
Volker Ruppert
45ccb97021 - CL-GD 54xx SVGA emulation added (SF patch #869822 from m_suzu_abc@yahoo.co.jp)
- changes to the original svga_cirrus patch:
  * PCI memory/mmio PnP support, some emulation and compile fixes
  * ported write mode 4 + 5 and some bufixes from cirrus vga in qemu
  * new graphics API, hardware cursor support, configure option added (Robin Kay)
  * partial support for transparent bitblt and bitblt write mask
2004-08-16 08:07:23 +00:00
Volker Ruppert
f6f6568adf - configure / compile fixes for Solaris SunPro (patch from Robin Kay) 2004-08-11 11:09:01 +00:00
Volker Ruppert
d06c80cee3 - changed all iodev config macros to BX_SUPPORT_xxx
- removed incorrect SDL/ prefix from include paths (patch from Robin KAY)
2004-08-06 15:49:55 +00:00
Stanislav Shwartsman
f9bd2b74be 1. Fixed bug in FSUB instruction
2. Fixed bug

[ 989478 ] I-Cache and undefined Instruktions

The L4 microkernel uses an undefined instruction to
trap for a special requests into the kernel (LOCK NOP).
The handler fixes this up and gives the user a special
code page with syscall stubs. If you're not using the
I-Cache optimization everthing works find on bochs. But
if you enable the I-Cache (--enable-icache), then the
undefined opcode exception is thrown only once for ever
virtual address it occurs. See the demodisk of the
L4KA::pistachio
(http://www.l4ka.org/projects/pistachio/download.php).
In this case the pingpong benchmark of this demo is of
interest. Everything runs fine until the program tries
to spawn a new task for its measurements. This new task
shares the code of the creating program. But the new
task stops executing at the undefined instruction
explained above and no exception is thrown.
2004-07-29 20:15:19 +00:00
Stanislav Shwartsman
35741f5cbd Fix configure script for Peter Tattam 2004-07-15 19:57:31 +00:00
Volker Ruppert
bf243f892a - added PCI IDE controller (dummy device - busmaster feature not present yet) 2004-06-09 20:55:58 +00:00
Christophe Bothamy
ea987f266c - remove "pc" platform check for enabling pcidev. Platform must
be linux still.
2004-06-01 07:30:34 +00:00
Stanislav Shwartsman
66f95e54c6 3dnow is not required for 64-bit architecture extensions 2004-04-09 11:52:45 +00:00
Christophe Bothamy
d5362faede - regen from configure.in rev1.252 2004-02-16 22:48:00 +00:00
Volker Ruppert
199f6a72c1 - fixed default setting of BX_SUPPORT_MMX 2004-02-13 16:11:14 +00:00
Stanislav Shwartsman
0d74cc8973 * ignore-bad-msrs enabled by default because it essential for booting Windows
* -enable-mmx enabled by default only if cpu-level > 4
2004-02-13 12:21:47 +00:00
Daniel Gimpelevich
5366cc369e Added Brian Huffman's Sound for OSX code with a couple of tweaks. 2004-02-09 22:23:53 +00:00
Christophe Bothamy
2805eba4ad - add check for vsnprintf 2004-02-08 10:27:00 +00:00
Christophe Bothamy
8ad4cf6056 - add speaker log, pluginSpeaker, and beep_on/off methods in guis 2004-02-01 23:48:57 +00:00
Volker Ruppert
ad5543a4b6 - updated configure script after adding BX_USE_TEXTCONFIG 2004-01-30 16:39:29 +00:00
Michael Brown
d1922bc835 Changed #ifdef MAGIC_BREAKPOINT to #if BX_MAGIC_BREAKPOINT and added a
configure script option --enable-magic-breakpoints (enabled by default).

Documented the instruction required to trigger the magic breakpoint
(xchgw %bx,%bx).
2004-01-29 17:49:03 +00:00
Daniel Gimpelevich
5e48704ebb Added --enable-raw-serial. 2004-01-17 20:33:19 +00:00
Daniel Gimpelevich
63e4f9d270 Now allows compiling tuntap on MacOSX.
Couldn't configure the interface to work, though.
2004-01-17 11:47:12 +00:00
Michael Brown
299947f64f Added the PCI Pseudo-NIC (pnic). Mainly useful for running Etherboot
inside Bochs.
2004-01-13 19:21:21 +00:00
Christophe Bothamy
cbb07730ee - prepare 2.1.pre3 release 2004-01-04 13:22:21 +00:00
Volker Ruppert
0e1cac616d - missing defines BX_SUPPORT_GAME added 2003-12-26 14:18:06 +00:00
Volker Ruppert
643e7f268d - configure updated after adding gameport option 2003-12-26 13:55:31 +00:00
Stanislav Shwartsman
4baec805fa Fixed:
[ 725796 ] configure script bug

configure script bug
Current CVS configure script enables MMX even if FPU
is disabled.
2003-12-25 21:46:07 +00:00
Christophe Bothamy
7dd1b63f7a - regen from configure.in rev1.233 2003-12-10 21:03:29 +00:00
Daniel Gimpelevich
fff74a6f83 Fixed incompatibility with gcc3.3, I think. 2003-11-28 15:07:29 +00:00
Christophe Bothamy
c95a329afb - preparing 2.1pre2 release 2003-11-27 01:36:55 +00:00
Daniel Gimpelevich
d0c10dd46b *** empty log message *** 2003-10-02 11:33:42 +00:00
Christophe Bothamy
6df9d54240 - regen from configure.in rev1.228 2003-10-02 07:40:42 +00:00
Bryce Denney
a4a5b0f677 - bump up version number to 2.1.pre1 2003-10-01 02:11:40 +00:00
Christophe Bothamy
d983849b1f - regen from configure.in rev1.226 2003-09-05 23:10:00 +00:00
Christophe Bothamy
9c9b054ef9 - regen from configure.in rev1.225 2003-08-28 00:15:50 +00:00
Christophe Bothamy
8d8ae28b2f - avoid ethertap detection when compiling for win32 2003-08-22 00:57:31 +00:00
Christophe Bothamy
e555765d75 - add a "clock: sync=[none|slowdown|realtime], time0=[timeValue|local|utc]"
- pit: and time0: options are still supported but deprecated
- warn when parsing deprecated directives
- fix wrong number of ata_device_translation_names
- still to do:
  - setting time0 to utc is not yet supported
  - the man page, user guide and .bochsrc still need to be updated
    with the new options
2003-08-19 00:10:39 +00:00
Christophe Bothamy
fb171e482a - apply MartinS compile patch for missing function in curses 2003-08-17 23:40:39 +00:00
Volker Ruppert
d386471ac4 - new option allows the user to disable the check for XPM support (enabled by default) 2003-08-10 16:05:41 +00:00
Alexander Krisak
45df735c30 Apply Vitaly's Vorobyov debugger patch 2003-08-04 16:03:09 +00:00
Volker Ruppert
e895145ef8 - wx resource problem in plugin mode on win32 fixed. Windows supports only one
resource section and we had two binary resource files if both wx and win32
  are enabled. Now we have only one binary file with all resources.
2003-07-13 23:30:55 +00:00
Volker Ruppert
b0da735fd8 - check for socket() in wsock32 removed (it doesn't work this way) 2003-07-06 11:46:31 +00:00
Volker Ruppert
69d8b791f4 - detection of the socket function (used by RFB) fixed for the win32 target 2003-07-06 09:00:36 +00:00
Volker Ruppert
125e3479e6 - fixes for cross-compilation (building win32 binary on linux)
* configure.in: readline check is only necessary if the debugger is enabled
    (patch from Jeroen Janssen)
  * iodev/Makefile.in: dependencies updated after adding gameport device
2003-07-05 05:31:40 +00:00
Volker Ruppert
dd46d0ec71 - configure check for XPM support added
- x.cc uses the old monochrome icon if there's no XPM support present
2003-06-13 16:05:03 +00:00
Volker Ruppert
4d25b39655 - changes for better MSVC support based on patch #735990
* support for different resource compilers added (rc / windres)
  * bochs must be linked with advapi.lib for registry access
  * optimization flag changed to /Ox
  * symbols BX_HAVE_MKSTEMP, BX_HAVE_SYS_MMAN_H and HAVE_ETHERTAP must be set to 0
  * BX_HAVE_REALTIME_USEC definition fixed for MSVC
  * vmware3.h: definition of COW_Header fixed for MSVC
2003-06-06 19:57:25 +00:00
Stanislav Shwartsman
ccd40d8111 added --eanble-daz configure option 2003-05-30 08:57:25 +00:00
Volker Ruppert
4ccaddc32d - removed obsolete X11 VGA font and it's installation mechanism
* files font/vga.pcf, font/vga.bdf, font/hercules.bdf and font/README removed
  * files install-x11-fonts.in and test-x11-fonts removed
  * font installation mechanism removed from Makefile.in and build/debian/rules
  * configure script updated
2003-05-25 09:48:12 +00:00
Volker Ruppert
4f2af797b5 - library dependencies in the main bochs binary and the gui plugins fixed.
These changes are based on the SF patch #742670. It did not work with
  plugins disabled.

Here is the descriiption of patch #742670:

the library dependencies (see objdump -p file) in the
main bochs binary and the gui plugins are wrong:

- the gui plugins don't depend on their respective gui
libraries
- the main bochs binary depends on all the gui libraries

this doesn't seem much of a problem, since the needed
libraries are loaded anyway, but it's problematic when
building packages for binary distribution of bochs.

in Debian, the package building tools will set package
dependencies according to the library dependencies of
each file, so the result is:

- the main bochs package depends on all libraries. this
includes libwx, libsdl, libncurses and xlibs.
- the indivudual plugin packages don't depend on any
gui library

so when a user wants to run bochs with the curses gui
and installs the bochs-curses package, he/she will be
forced to install Xfree86, WxWindows and GTK+ on
his/her system.

the attached patch fixes the problem by moving the
linker flags related to GUI libraries to the right
makefile (gui/Makefile.in)
2003-05-24 17:09:26 +00:00
Volker Ruppert
7ec7b58eed - adding resources for Bochs with SDL on win32 makes the "ask" dialog work 2003-05-23 17:54:17 +00:00
Volker Ruppert
7edc0948b7 - "ask" dialogbox as an extension of the "textconfig" interface on the win32 platform added 2003-05-21 20:33:24 +00:00
Stanislav Shwartsman
6822fa35a3 regenerate configure script from new configure.in 2003-05-21 16:16:04 +00:00
Christophe Bothamy
a547dd8703 - regen from configure.in rev1.206 2003-05-06 20:21:23 +00:00
Christophe Bothamy
b0a4684072 - regen from configure.in rev1.205 2003-05-04 12:59:19 +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
21cd7a9e73 - regen from configure.in rev1.203 2003-04-28 13:09:39 +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
Christophe Bothamy
fd280a300a - autoconf'ed from configure.in rev1.201 2003-02-21 20:20:52 +00:00
Christophe Bothamy
a774fc7df5 - autoconf configure.in rev1.200 2003-01-30 18:38:41 +00:00
Volker Ruppert
f25a3df39b - added minimal USB support (patch from Ben Lunt <fys@cybertrails.com>, updated
and improved by Christophe Bothamy and Volker Ruppert)

Comment from the author:

Attached is a "patch" file detailing what you need to do
to add USB support (UHCI only for now) to your existing
Bochs (2.0.xx) source code.

I use Win32 and VC++ but the source and modifications
should be platform and compiler independant.

Please let me know if this patch some how breaks the
build process of your compilation (Bochs 2.0.0 or above
only).

I would also like any feedback on how this code works
(or doesn't work) on your platform and within your
images. If you explain in as much detail as you can on
how it did or did not work, I will try to add to the source
to help it work on all platforms and images.
2003-01-28 16:58:10 +00:00
Christophe Bothamy
e90aeaef08 - autoconfed from configure.in rev1.197 2003-01-20 20:12:59 +00:00
Christophe Bothamy
e6ff0a8560 - add check for strrev and implementation if not found 2003-01-10 22:32:46 +00:00
Bryce Denney
abdf3ef751 - show something reasonable in the version string, instead of showing 2.0.pre4. 2003-01-04 19:22:47 +00:00
Volker Ruppert
ef8a7b1dc6 - new application icon for the win32 gui using 'bochs.ico' 2002-12-26 18:24:41 +00:00
Bryce Denney
8bdffcbe46 - apply patch from Peter Tattam. x86-64 requires SSE2 or it fails without
any indiciation of what went wrong.
2002-12-21 16:36:07 +00:00
Bryce Denney
8bacd82133 - add BeOS target which builds the binary and then runs "copyattr"
to copy the resources into the binary
2002-12-21 14:31:30 +00:00
Bryce Denney
dc204f58c8 - update date for pre4 release 2002-12-14 21:26:44 +00:00
Bryce Denney
943586ad61 - bump up version number for 2.0.pre4...hopefully the last prerelease 2002-12-13 22:25:52 +00:00
Bryce Denney
3af7afb12e *** empty log message *** 2002-12-13 22:23:05 +00:00
Bryce Denney
610116cf45 - if we're going to build docbook files, do it during make rather than
make install
2002-12-13 20:37:38 +00:00
Bryce Denney
4f4e6a2fa8 - add configure option --enable-docbook. If it is turned on, then during
make install it will build the docbook documentation and install it
  into $(prefix)/share/doc/bochs.  If it is not specified, then it will
  be enabled only if the program "docbook2html" is found in your path.
- this completes [ 652957 ] install docbook docs instead of HTML

Modified Files:
  Makefile.in configure configure.in doc/docbook/Makefile.in
2002-12-13 17:52:16 +00:00
Bryce Denney
f548660ca6 - see bug [ 652957 ] install docbook docs instead of HTML
- now configure script does substitutions in doc/docbook/Makefile.in
- add "make install_docbook" target in main makefile that runs make install
  in doc/docbook.  It will not be run unless you ask for it.

Modified Files:
  configure.in Makefile.in configure doc/docbook/Makefile.in
2002-12-13 16:21:04 +00:00
Volker Ruppert
e0d63bdf75 - don't use libtool when compiling with Cygwin (fixes linking failure with SDL
and without plugins on Cygwin)
2002-12-12 19:43:40 +00:00
Christophe Bothamy
90ea64ad9e - update to have macos compile.
- define default option for macos compile
2002-12-12 13:27:47 +00:00
Christophe Bothamy
6f45543452 - regen from configure.in revison 1.183 2002-12-12 11:10:08 +00:00
Bryce Denney
54a0b5836d - get rid of --enable-realtime-pit configure option since it's now
enabled in bochsrc instead
2002-12-11 21:38:37 +00:00
Bryce Denney
1812808d82 - get rid of bochs-docs which didn't work anyway
- move DOC-linux.html into the docbook in a section called "Quick Start for
  Linux Users", and removed all references to the DOC-linux file that I could
  find.  Most of the text has been moved into the Linux RPM section.  Parts
  that did not fit into the docbook are now in doc/docbook/misc.txt.
- put vga.pcf into INSTALL_LIST_X11 so that it's only installed when
  you configure with --with-x11.
- transfer section on VGA font installation from docs-html into user guide
- remove RCS id from screen shots within user guide, since they are changed
  to the revision info of user.dbk.

Modified Files:
  Makefile.in configure configure.in build/linux/.cvsignore
  build/redhat/bochs.rpmspec.template doc/docbook/misc.txt
  doc/docbook/user/user.dbk doc/man/bochs-dlx.1 doc/man/bochs.1
  doc/man/bochsrc.5 doc/man/bximage.1 docs-html/install.html
Removed Files:
  build/linux/DOC-linux.html.in build/linux/bochs-docs.in
2002-12-11 19:16:20 +00:00
Bryce Denney
5024d92ecc - change version numbers for 2.0 pre3 2002-12-04 23:44:13 +00:00
Bryce Denney
ca6fdcc47a - change REL_STRING so that it explains that this isn't 2.0.pre2, it's
the CVS version.
2002-11-23 06:37:56 +00:00
Bryce Denney
c6674c7b67 - add -lm to LIBS, but only when it's needed to link math functions.
Some platforms don't need anything, and others add -lm automatically.
2002-11-23 00:29:43 +00:00
Bryce Denney
eaedb25694 - set INSTALL_TARGET to use install_macosx target, when carbon --with-carbon
is used
2002-11-22 06:44:44 +00:00
Bryce Denney
7382b84f8c - A new GUI is born!
add SVGALIB display library by Igor Popik <igipop@wsfiz.edu.pl>
  While it's running, you can press F12 to escape into the runtime config
  menu, and then you can change disks or quit or whatever.

  Better not try it with the bochs debugger...you could get stuck.

Modified Files:
  Makefile.in config.h.in configure configure.in main.cc
  plugin.h gui/Makefile.in
Added Files:
  gui/svga.cc
Removed Files:
  patches/patch.svgalib-gui patches/patch.svgalib-gui-f12
2002-11-21 19:26:07 +00:00
Bryce Denney
4098c5bed8 - in 1.173 I accidently checked in some pieces of the svgalib patch along
with the nsis installer stuff.  This reverts the svgalib part.  When
  we check in the svgalib patch, I want to do it all in one piece.
2002-11-21 17:40:17 +00:00
Bryce Denney
f21ab23c51 - add NSIS makefile 2002-11-21 03:50:59 +00:00
Bryce Denney
b2ec77815d - renamed bochs.nsi to bochs.nsi.in, added configure variables
- substitute version from configure script automatically

Modified Files:
  configure.in configure
Added Files:
  build/win32/nsis/bochs.nsi.in
Removed Files:
  build/win32/nsis/bochs.nsi
2002-11-21 03:43:04 +00:00
Bryce Denney
0ab5bfa1d2 - move "$(LIBTOOL) --mode=link" into the @LINK@ configure variable, so that
it doesn't show up in nmake makefiles
2002-11-20 20:42:40 +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
Bryce Denney
7f596646c6 - bump up version number to 2.0.pre2 in preparation to start building
binaries
2002-11-19 16:36:17 +00:00
Bryce Denney
ab6cb49693 - this fixes bug #638600: need default plugin search path
- configure script adds -DBX_PLUGIN_PATH="${plugdir}" to CFLAGS/CXXFLAGS
  in the Makefile.
- in main.cc, if plugins enabled and the environment variable LTDL_LIBRARY_PATH
  is not set, then it gets set to the value supplied by BX_PLUGIN_PATH.

Modified Files:
  main.cc Makefile.in configure.in config.h.in configure
2002-11-18 02:32:53 +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
17e7f6c2eb - add configure test for -lmingwex, which is needed on newer cygwin systems
for opendir(), readdir() and closedir() used in ltdl.c.
2002-11-16 13:43:41 +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
53642bd5dd - change version numbers to prepare for 2.0 prerelease #1. 2002-11-14 18:17:29 +00:00
Stanislav Shwartsman
5803e20240 Changed policy of SSE/SSE2 checking 2002-11-13 21:00:05 +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
81eca54b51 - fix [ 625696 ] text config menu: default can be wrong.
New behaviour is:
  . No command line arg (user want to load or create a new conf file)
    -> no .bochsrc is loaded
    -> defaults to "2. Read options from..."
  . command line arg -q (user want to quick start from .bochsrc)
    -> .bochsrc is loaded
      -> if found Run the simulation
      -> if not found defaults to "2. Read options from..."
  . command line arg -f (user want to edit a conf file)
    -> conf file is loaded
      -> if found defaults to "3. Edit options"
      -> if not found defaults to "2. Read options from..."
  . command line arg -qf (user want to quick start from a conf file)
    -> conf file is loaded
      -> if found Run the simulation
      -> if not found defaults to "2. Read options from..."
  . After selection of "2. Read options from..."
    -> defaults to "5. Begin simulation"
- fix "enable-control-panel" behaviour in configure.in.
- check if a romimage was supplied in the conf file.
  If not, print a hint about a missing/corrupt conf file.

  I hope I did not break anything, notably the Carbon gui
2002-11-09 14:12:10 +00:00
Christophe Bothamy
6504dd74b1 - add check for existence of sockaddr_in.sin_len in configure
- set sockaddr_in.sin_len in gdbstub.cc only if above check is ok
- change direct bx_vga object reference to DEV_vga_ in gdbstub.cc
2002-11-08 21:29:16 +00:00
Bryce Denney
0c734d9a4d - commit patch [ 629157 ] MacOSX Carbon Plugin Cleanup
by Jeremy Parsons <brefin@mac.com>
- modified: configure.in configure Makefile.in main.cc
2002-11-01 17:53:52 +00:00
Bryce Denney
428b686df6 - commit patch [ 630863 ] Fix and integrate MacOSX cdrom
by Jeremy Parsons <brefin@mac.com>
  http://sourceforge.net/tracker/index.php?func=detail&aid=630863&group_id=12580&atid=312580
- modified: iodev/cdrom.cc configure.in configure
- removed: iodev/cdrom_osx.cc
2002-11-01 16:36:27 +00:00
Bryce Denney
883442544c - we've been compiling a few extraneous plugins: wxdialog and wxmain.
These files are part of the wx plugin, and they should not be linked
  into a separate plugin.  I have changed gui/Makefile.in and configure.in
  to correct this.
- This fixes bug [ 628667 ] don't build plugin for wxdialog, wxmain
- modified: gui/Makefile.in configure.in configure
2002-10-28 05:49:42 +00:00
Bryce Denney
1dfbe73deb - let's try "bx_cdrom" instead of "bx_cdom" 2002-10-27 13:28:30 +00:00
Bryce Denney
ddd7d1c173 - there are three different actions related to cdrom. One for --enable-cdrom,
one for --disable-cdrom, and one for the defalt if it's not specified.  The
  enabled action and default are supposed to be the same, but they were
  slightly different, and Bochs on BeOS was able to compile with --enable-cdrom
  but not with the default action.  Solution: now the autoconf actions only
  sets bx_cdrom=0 or bx_cdrom=1.  Then afterward, it tests $bx_cdrom and does
  the enable or disable action.  This will be easier to maintain because there
  is just one copy of each action, instead of two copies that are supposed to
  be kept identical to each other.
2002-10-26 21:51:19 +00:00
Bryce Denney
441eb253f7 - remove references to obsolete hga. Now --enable-vga and --disable-vga
no longer exist.  I think configure will silently ignore them.
- modified:
    iodev/Makefile.in iodev/devices.cc iodev/iodev.h main.cc
    configure.in config.h.in configure build/batch-build.perl
2002-10-26 13:14:11 +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
b33bd11321 - minor cleanup of output messages and help 2002-10-16 20:19:36 +00:00
Bryce Denney
9d44d4e473 - the check for wxWindows/debugger/readline is obsolete, so I removed it 2002-10-16 19:42:24 +00:00
Bryce Denney
f6c637aa8a - upgrade bx_param_num to use 64 bit values, so that I could make
bx_shadow_num_c able to handle pointers to 64 bit values.  This
  allows x86-64 and wxWindows to coexist.
- I had a number of duplicate constructors for bx_shadow_num_c,
  with an without the description arg.  I eliminated the ones
  that had no description, and also removed the min/max arg from
  all.  I still need a bunch of constructors though, for
  Bit64u*, Bit64s*, Bit32u*, Bit32s*, Bit16u*, Bit16s*, Bit8u*, Bit8s*.
  Having all these constructors allows us to write
    new bx_shadow_num (bxid, name, description, &value)
  for basically any integer variable.  They are all handled by the same class.
- these changes led to minor touchups in cpu/init.cc and iodev/keyboard.cc
- modified:
    configure main.cc cpu/init.cc iodev/keyboard.cc
    gui/siminterface.cc gui/siminterface.h
2002-10-16 19:39:27 +00:00
Stanislav Shwartsman
194952a53d Merged BOCHS-SSE branch 2002-10-16 17:37:35 +00:00
Bryce Denney
909b3104d9 - replace autoconf standard AC_SYS_LARGEFILE with wxWindows's AC_SYS_LARGEFILE
that actually works.
- modified: configure.in configure
- added:: aclocal.m4
2002-10-11 13:21:15 +00:00
Kevin Lawton
3183ab7102 Added some preliminary configure and config.h stuff for
SSE/SSE2 for Stanislav.  Also, some method prototypes and
  skeletal functions in access.cc for read/write double quadword
  features.

Also cleaned up one warning in protect_ctrl.cc for non-64 bit compiles.
  There was an unused variable, only used for 64-bit.
2002-10-11 01:11:11 +00:00
Kevin Lawton
261badee5a Added a couple macros which expand on GCC to __attribute__ directives
to give the compiler some hints:

    BX_CPP_AttrPrintf(formatArg, firstArg)
    BX_CPP_AttrNoReturn()

The first is to tell the compiler that a function receives printf-like
  arguments so it can do some smart argument checking w.r.t. the
  format string.  The 2nd tells the compiler that the function does
  not ever return; it's not used yet, but I'd like to use it on
  exception() after we fix the situation of it returning for debugging.

I fixed one parameter mismatch in cpu/ by deleting a deprecated
  debug print statement.  There are several other mismatches in
  other code modules.
2002-10-06 14:16:23 +00:00
Bryce Denney
4650017086 - remove AC_MSG_NOTICE([using $WX_CONFIG as ...]) because it looked like
an error message even though it was perfectly normal.
2002-10-05 12:07:51 +00:00
Bryce Denney
e44407be1d - give configure error if you try --enable-debugger and --enable-gdb-stub
at the same time.
2002-10-03 21:03:56 +00:00
Bryce Denney
f62c75ff5d - add GDB stub patch by Johan Rydberg 2002-10-03 05:23:20 +00:00
Bryce Denney
add4fbe892 - allow user to specify $WX_CONFIG variable before running configure, to
override default.  This is useful if you have more than one wx installation,
  for example debug and release libraries.
- modified: Makefile.in configure.in configure
2002-10-03 02:26:32 +00:00
Bryce Denney
698da0c303 - compile beos-specific cdrom file if $target says beos, rather than if
they used --with-beos.
2002-10-02 12:11:25 +00:00
Bryce Denney
2f502adc45 - add --subsystem,windows -mwindows to link line for win32 compile with
wxwindows
2002-10-02 00:53:20 +00:00
Bryce Denney
e377b6dd5d - when building on for win32, add a "windres" command to build the
resources into wxbochs_resources.o, and link them in.
- modified: Makefile.in configure.in configure
2002-10-02 00:09:49 +00:00
Bryce Denney
4c9776fb96 - add -lwinmm to the link lines anytime you use --enable-sb16=win. Now
instead of winmm being a part of GUI_LINK_OPTS_WIN32 only, it is
  placed in @DEVICE_LINE_OPTS@ so that it will be used for sdl, rfb, wx,
  etc.
- solve compile problems when building bximage, niclist, and any other
  console based program.  The compile flags returned by wx-config and
  sdl-config did strange things to these console programs, for example
  redefining main to SDL_main.  Because I wanted to use the
  configure-generated CFLAGS to compile the programs, but I wanted to
  avoid including GUI specific compile options, I split up the configure's
  @CFLAGS@ variable into @CFLAGS@ and @GUI_CFLAGS@, and split
  @CXXFLAGS@ into @CXXFLAGS@ and @GUI_CXXFLAGS@.  All programs in the
  Bochs binary will use both, but the console programs will just use
  @CFLAGS@ or @CXXFLAGS@.
- gui/Makefile.in, I no longer use the gui specific CFLAGS variables,
  SDL_CFLAGS and WX_CXXFLAGS.  These values are included in CFLAGS and
  CXXFLAGS now.
- modified: configure.in, configure, all Makefile.in's
2002-10-01 23:37:50 +00:00
Bryce Denney
e093bec99c - Stu's test for ADD_FLAGS was not working quite right, because the []'s
were being removed by autoconf.  I changed it to use
     if test CONDITION; then ... fi
  instead of
     if [ CONDITION ]; then ... fi
2002-09-30 20:31:14 +00:00
Bryce Denney
63a7680b4c - add AC_SYS_LARGEFILE test
- also add note about the special largefiles test that wxwindows does
2002-09-30 16:24:25 +00:00
Bryce Denney
e658f463ab - remove pthread check for wxwindows. This used to be needed to add the
"-pthread" flag to the link line, but as of wxWindows 2.3.3 their
  wx-config script adds it for us.  Given the keyboard mapping improvements
  in wx 2.3.3, I don't expect to support any previous version.
2002-09-30 14:35:34 +00:00
Kevin Lawton
00c14e4efe Added ./configure option --enable-all-optimizations which turns on
all available optimizations in one shot.

Finished one last case of an instruction which could but didn't use
  the Read-Modify-Write variants of access.cc functions.

Started going through the integer instructions, merging obvious cases
  where there are two "if (modrm==11b) {" clauses and very little
  action in between, and cleaning up the aweful indentation leftover
  from many years ago when those instructions were implemented using
  cut-and-paste.  We may get a little extra performance out of these
  mods, but they'll also be easier after I'm finished to enhance
  with asm() statements to knock out the lazy flags processing on x86.
2002-09-30 02:02:06 +00:00
Bryce Denney
2a0f6ccedb - add wxwindows CFLAGS and CXXFLAGS to the flags for all compiles, not
just the wxwindows ones.  This is required on cygwin, for example, because
  the CFLAGS and CXXFLAGS include gcc flags that change code generation:
  -fno-pcc-struct-return and -fvtable-thunks.  It is not safe to mix code
  compiled with these flags with code compiled without.  I learned this the
  hard way when I found that sometimes code that called a virtual member
  function was jumping to the WRONG member function.
2002-09-27 20:06:57 +00:00
Bryce Denney
ce8030585f - if cross configuring, don't insist on finding pthreads for the rfb and
wxWindows guis.
- if cross configuring, don't insist on finding curses library.
- on normal configures, when the target platform is win32 (windows, cygwin,
  mingw), don't insist on finding pthread either.

(I'm starting to wonder if when cross_configure=1 we shouldn't just skip over
ALL of the library and header checks.  When you're going to configure on one
platform and build on another, all that information is useless anyway.)
2002-09-26 18:23:34 +00:00
Bryce Denney
73681b3a53 - for term compile, search for a function called "color_set" and compile it
away if color_set doesn't exist on that platform.  On Solaris this was
  the only thing keeping term from compiling.  See this bug
  [ 613393 ] solaris: term compile missing color_set
  http://sourceforge.net/tracker/index.php?func=detail&aid=613393&group_id=12580&atid=112580
2002-09-26 02:36:04 +00:00
Bryce Denney
4be28bc5ed - RFB_LIBS was getting overwritten by pthread libs. arg! 2002-09-26 02:19:14 +00:00
Bryce Denney
ec096b9653 *** empty log message *** 2002-09-26 02:15:56 +00:00
Bryce Denney
45acd5b67a - rfb gui needs the socket function. on solaris, you need to link with
-lsocket to get it.
2002-09-26 01:53:29 +00:00
Bryce Denney
b99b6a157e - change the way x86-64 default options work to hopefully make them
smarter.  If you use --enable-x86-64, it has the following side
  effects on other options:
  - cpu level defaults to 6 instead of 5
  - ignore bad msr defaults to on (Peter T. requested this)
- if cpu level is 6 or greater, these options are enabled by default.
  - 4meg pages (PSE)
  - physical address extensions (PAE)
  - global pages (PGE)
  - apic support
2002-09-25 04:24:46 +00:00
Bryce Denney
4588c9b531 - when I added the realtime PIT option, I accidently enabled it by default.
It should be disabled by default.
2002-09-24 21:47:27 +00:00
Bryce Denney
d3802b9013 - add configure variable $cross_configure, which gets set if you are
configuring for a different machine.  This is used to short-circuit
  certain sanity checks, such as existence of certain required libraries.
- in --with-wx configuration, when $cross_configure=1, do not abort
  configure if library is not found.
- if wxWindows version not found, print "not_found" instead of nothing
2002-09-24 21:35:04 +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
Bryce Denney
472202226d - add configure option for Greg's realtime pit.
- chose a creative name.... how about --enable-realtime-pit
2002-09-24 18:00:23 +00:00
Bryce Denney
3b011766fa - add --enable-ignore-bad-msr, which causes Bochs to NOT do a panic
or gpf when an unrecognized MSR is accessed.
2002-09-24 08:15:27 +00:00
Bryce Denney
6a0e1e94be - add configure test for usable wxWindows version 2002-09-23 21:41:35 +00:00
Kevin Lawton
91fd4b3745 Added new configure option --enable-host-specific-asms, so the
user can turn on/off use of native host specific inline asm
  statements.  By default, this option is enabled, so you only
  need it to disable inline asms in your compile for now.

Currently only on x86+GCC environments, will inline asm()
  statements be used.  Eventually, other platforms could specify
  some asm()s; probably for endian issues such as byte-swapping
  and unaligned memory accesses.  On x86, there are some inline
  asm()s which do the arithmetic EFLAGS processing so that the
  lazy flags handling is somewhat bypassed.  Eventually, I'll
  add more, at least for the more common instructions.  This
  adds a little extra performance.
2002-09-23 17:59:18 +00:00
Bryce Denney
169efc4cc5 - change help msgs to make it clear that we can support 8 processors, not
just 1,2,4.  Thanks to Ph. Marek for pointing this out.
2002-09-23 14:09:55 +00:00
Bryce Denney
08ff8df002 - add special condition for compiling --with-term in cygwin 2002-09-23 05:15:06 +00:00
Bryce Denney
14512ccced - substitute version number in build/macosx/Info.plist 2002-09-23 03:46:47 +00:00
Bryce Denney
e41655a78c - add configure test for BX_HAVE_GETTIMEOFDAY
- hardcode BX_HAVE_GETTIMEOFDAY=0 if cross compiling for VC++
  (this part hasn't been tested)
- modified files: configure configure.in config.h.in iodev/pit_wrap.cc
2002-09-22 01:56:18 +00:00
Bryce Denney
dc18466f15 - fix "fatal error U1083: target macro '' expands to nothing" that
Psyon reported
- clean up remnants of cpu64 merge in configure script, Makefile.in,
  and cpu/Makefile.in
2002-09-20 23:16:23 +00:00
Kevin Lawton
9b02229b84 Removed defunct options from configure.in (for dynamic translation
and old style fetchdecode cache).  Removed generations of
dynamic/Makefile.  Upgraded my autoconf to 2.50 to get rid
of those pesky "EOF" errors.
2002-09-20 15:34:51 +00:00
Bryce Denney
226fd0e2c0 - enable MMX by default 2002-09-20 15:12:25 +00:00
Bryce Denney
b4b0e689e8 - remake configure with autoconf 2.53 2002-09-20 12:34:39 +00:00
Kevin Lawton
402d02974d Moved the EFLAGS.RF check and clearing of inhibit_mask code
in cpu.cc out of the main loop, and into the asynchronous
events handling.  I went through all the code paths, and
there doesn't seem to be any reason for that code to be
in the hot loop.

Added another accessor for getting instruction data, called
modC0().  A lot of instructions test whether the mod field
of mod-nnn-rm is 0xc0 or not, ie., it's a register operation
and not memory.  So I flag this in fetchdecode{,64}.cc.
This added on the order of 1% performance improvement for
a Win95 boot.

Macroized a few leftover calls to Write_RMV_virtual_xyz()
that didn't get modified in the x86-64 merge.  Really, they
just call the real function for now, but I want to have them
available to do direct writes with the guest2host TLB pointers.
2002-09-20 03:52:59 +00:00
Kevin Lawton
0cd7346b9c - Added an instruction cache. Size is fixed for the moment,
but if you hand edit cpu/cpu.h, and change BxICacheEntries,
  you can try different sizes.  I'll make this more flexible
  with configure.  For now, use "--enable-icache" with no parameters.

- Modified fetchdecode.cc/fetchdecode64.cc just enough so that
  instructions which encode a direct address now use a memory
  resolution function which just sticks the immediate address
  into rm_addr.  With cached instructions we need this.
2002-09-19 19:17:20 +00:00
Bryce Denney
620b264889 - remove obsolete loader option 2002-09-17 21:45:51 +00:00
Kevin Lawton
2eb34d13a6 Added a configure option, "--enable-pae". The x86-64 enhancements
already had Physical Address Extensions support - we can now
compile for PAE support for x86-32 mode as well.
2002-09-16 21:55:57 +00:00
Kevin Lawton
a851db3e36 Ooops, cpu/paging.cc was hosed on that last commit. Fixed that. 2002-09-16 21:01:55 +00:00
Kevin Lawton
366e5f78f0 Removed reference to cpu64/Makefile in the last generation stage
of configure.
2002-09-16 20:39:32 +00:00
Kevin Lawton
5eb4e247bc Merged the final filed ("paging.cc") from Peter Tattam's x86-64
enhancement to bochs.  You can now configure with
--enable-guest2host-tlb.

Force the support of big pages (PSE) when x86-64 is configured.

Reverted back to only one kind of TLB entry style, since everything
is ported.

Fixed one bug in io.cc with as_64 and the index registers.
There are others, as noticed by Peter.
2002-09-16 20:23:38 +00:00
Volker Ruppert
19c660a30c - implementation of the PCI-to-ISA bridge started. I/O ports and features are
not present yet.
2002-09-16 19:18:58 +00:00
Bryce Denney
c3e4ccecb3 - I screwed up the BX_USE_CONFIG_INTERFACE variable earlier today; fixed. 2002-09-16 18:36:01 +00:00
Bryce Denney
7619ecfe91 - this rev deals with a configure script bug that appears on cygwin. When
you have AC_DEFINE(var, value) executed more than once, autoconf is
  supposed to use the last AC_DEFINE value, but sometimes it doesn't.
  I haven't been able to figure out why, so I've just worked around it
  instead.
- for BX_SupportGlobalPages, which could call AC_DEFINE twice, I kept the
  value in a shell variable $support_global_pages until the end and then
  did one AC_DEFINE after it had reached its final value.  Same thing
  with BX_USE_CONFIG_INTERFACE.
- also I realized that we are using AC_SUBST() in many cases where it is
  not needed.  AC_SUBST(name) substitutes the string @name@ with a
  value from the configure script.  For preprocessor symbols like
  BX_SupportPAE, we only need the AC_DEFINE; the AC_SUBST has no effect.
2002-09-16 12:37:16 +00:00
Bryce Denney
4d630a139b - print a message when the use_x86_64 flag forces BX_SupportPAE and
BX_SupportGlobalPages so that it's very clear when they are being
  turned on.
2002-09-16 11:53:35 +00:00
Bryce Denney
fb5f2e83a4 - add -pthread flag to CXXFLAGS when compiling --with-rfb 2002-09-16 00:06:16 +00:00
Kevin Lawton
80dd7a07ec Removed references to building libextdb.a. It doesn't seem to
be used at all, and Peter didn't want it.  "extdb.o" is compiled
into libcpu.a, if configured for it.

Removed a few #warnings for x86-64 compile, based on Peter's
line-item comments regarding the warnings I inserted during
the port/merge.
2002-09-15 15:10:21 +00:00
Kevin Lawton
a367d3b742 Force global pages as well as physical address extensions when
x86-64 support is enabled.  Otherwise, CR4 accesses were
tripping a fault.
2002-09-15 13:52:22 +00:00
Kevin Lawton
278e27d5fe Merged proc_ctrl.cc. Also fixed a bug in CR4 reloading; we were
printing a message when a reserved bit was set, but not causing
a #GP(0).  As well, I force a new PAE support option to 1 when
Hammer support is enabled.
2002-09-14 23:17:55 +00:00
Kevin Lawton
aaeeab5850 Reverted back to using "ar" for making libraries. I had to
declare libs from cpu and cpu64 twice to make the linker
pick up all the symbols.
2002-09-14 05:46:57 +00:00
Kevin Lawton
d16fcfce91 (cpu64) Merged fetchdecode.cc. Also, I had some problems with
circular dependencies between 3 cpu related libs that I need
as part of this transition.  I changed the "ar rv" to "ld -i -o"
to do an incremental load instead of an archive.  Hope this
doesn't break any platforms.  We can reset this later.
2002-09-13 23:59:24 +00:00
Kevin Lawton
f05d453b6c Moved 64-bit only files from cpu64 to cpu and modified the Makefiles
accordingly.  These files cause no conflicts at all, since they
are not used in 32-bit compiles.
2002-09-13 15:53:22 +00:00
Kevin Lawton
c520824de5 Changed configure and the cpu + cpu64 dir Makefiles so it's easy
to incrementally merge files.  For a test, shift16.cc is always
compiled in the cpu/ directory regardless of 32/64-bit configure.
Ultimately, all files will migrate from cpu64 to cpu.
2002-09-13 02:56:14 +00:00
Bryce Denney
ccc6ac804c - integrate Peter Tattam's x86-64 emulation code into the main branch!
This adds a whole new directory cpu64 with the new emulation code.
  Very few changes were necessary outside cpu64.  To try it, configure
  with --enable-x86-64 and make.
- also this adds Peter Tattam's external debugger interface.
- modified files: Makefile.in bochs.h config.h.in configure.in
  load32bitOShack.cc logio.cc cpu/Makefile.in cpu/cpu.cc debug/dbg_main.cc
- added files: cpu/extdb.cc cpu/extdb.h and cpu64/*
2002-09-12 07:23:47 +00:00
Kevin Lawton
08576b24be I implemented Global pages. Though, I haven't tested them. :^)
You need to use '--enable-global-pages' to configure in support.
If you have something to boot that uses them, give them a
spin.  Really the were introduced for PPro and above, but
I haven't put in any limits.  CPUID and CR4 report the proper
bits when configured, regardless of --enable-cpu-level at the
moment.
2002-09-10 03:52:32 +00:00
Bryce Denney
9a045c7340 - since wxWindows+debugger+readline is a combination that currently doesn't
work (control-C kills process instead of returning to debugger prompt), give
  a configure-time error if they are enabled together.  If we can fix the
  signal problem in readline, this check can be removed.
2002-09-05 19:59:20 +00:00
Bryce Denney
2c9fcbb147 - somehow I lost one important line in my last checkin that defines WX_CONFIG 2002-09-05 15:49:48 +00:00
Bryce Denney
892eaab88c - in wxwindows compile, only include the wxwindows cflags on the few
files that need them.  This is more in line with the other gui libraries,
  and the compile line is easier to read.
- modified: Makefile.in configure.in configure gui/Makefile.in
2002-09-05 15:12:13 +00:00
Kevin Lawton
746f09b427 There's a bug in the repeated IO & mem copy speedups. I
added --enable-repeat-speedups with default to disabled.
Reconfigure/recompile and the speedup code will be #ifdef'd
out for now.  It manifested as junk written to the VGA screen
while booting/running Windows.

Also made some more mods to the main cpu loop.  Moved the
handling of EXT/errorno outside the main loop, much like
the extra EIP/ESP commits were moved, for a little better
performance.

I changed the fetch_ptr/bytesleft method of fetching to
a slightly different model, which calculates a window
for which EIP will be valid (land on the current page),
and a bias which when applied to EIP will be from
0..upper_page_limit.  Speed is about the same for either
method, but a pseudo-op/threaded-interpreter will plug
in better with this and be faster.
2002-09-02 18:44:35 +00:00
Kevin Lawton
3a5f338419 Integrated patches for:
- Paging code rehash.  You must now use --enable-4meg-pages to
    use 4Meg pages, with the default of disabled, since we don't well
    support 4Meg pages yet.  Paging table walks model a real CPU
    more closely now, and I fixed some bugs in the old logic.
  - Segment check redundancy elimination.  After a segment is loaded,
    reads and writes are marked when a segment type check succeeds, and
    they are skipped thereafter, when possible.
  - Repeated IO and memory string copy acceleration.  Only some variants
    of instructions are available on all platforms, word and dword
    variants only on x86 for the moment due to alignment and endian issues.
    This is compiled in currently with no option - I should add a configure
    option.
  - Added a guest linear address to host TLB.  Actually, I just stick
    the host address (mem.vector[addr] address) in the upper 29 bits
    of the field 'combined_access' since they are unused.  Convenient
    for now.  I'm only storing page frame addresses.  This was the
    simplest for of such a TLB.  We can likely enhance this.  Also,
    I only accelerated the normal read/write routines in access.cc.
    Could also modify the read-modify-write versions too.  You must
    use --enable-guest2host-tlb, to try this out.  Currently speeds
    up Win95 boot time by about 3.5% for me.  More ground to cover...
  - Minor mods to CPUI/MOV_CdRd for CMOV.
  - Integrated enhancements from Volker to getHostMemAddr() for PCI
    being enabled.
2002-09-01 20:12:09 +00:00
Bryce Denney
61ff7bbb06 - fix it so that cpu/mmx.o is compiled in when MMX is enabled. 2002-08-26 16:40:21 +00:00
Bryce Denney
bc78eaaa76 - add configure option --enable-mmx to prepare for Stanislav Shwartsman's
MMX patch
2002-08-26 16:17:10 +00:00
Bryce Denney
26385f2866 - I've added lots of comments in siminterface.h, and tried to clean up
the terminology a bit.  In particular, the term "gui" has started
  to mean different things in different contexts, so I've defined
  some more specific names for the parts of the user interface, and
  updated comments and some variable names to reflect it.  See
  siminterface.h for a more complete description of all of these.

    VGAW: VGA display window and toolbar buttons, the traditional Bochs
      display which is ported to X, win32, MacOS X, etc.  Implemented
      in gui/gui.* and platform dependent gui/*.cc files.
    CI: configuration interface that lets the user change settings such
      as floppy disk image, ne2k settings, log options.  The CI consists
      of two parts: configuration user interface (CUI) which does the
      actual rendering to the screen and handles key/mouse/menu events,
      and the siminterface object.
    CUI: configuration user interface.  This handles the user interactions
      that allow the user to configure Bochs.  To actually change any
      values it talks to the siminterface object.  One implementation of
      the CUI is the text-mode menus in gui/control.cc.  Another
      implementation is (will be) the wxWindows menus and dialogs in
      gui/wxmain.cc.
    siminterface: the glue between the CUI and the simulation code,
      accessible throughout the code by the global variable
        bx_simulator_interface_c *SIM;
      Among other things, siminterface methods allow the simulator to ask the
      CUI to display things or ask for user input, and allows the CUI
      to query and modify variables in the simulation code.


    GUI: Literally, "graphical user interface".  Until the configuration menus
      and wxWindows came along, everyone understood that "gui" referred to the
      VGA display window and the toolbar buttons because that's all there
      was.  Now that we have the wxWindows code, which implements both the VGAW
      and the CUI, while all other platforms implement only the VGAW, it's not
      so clear.  So, I'm trying to use VGAW, CI, and CUI consistently since
      they are more specific.
    control panel: This has been used as another name for the configuration
      interface.  "control panel" is also somewhat unspecific and it sounds
      like it would be graphical with buttons and sliders, but our text-mode
      thing is not graphical at all.  I've replaced "control panel" with
      "configuration interface" wherever I could find it.  In configure script,
      the --disable-control-panel option is still supported, but it politely
      suggests that you use --disable-config-interface instead.
- clean up comments in siminterface,wx* code
- add comments and examples for bx_param_* and BxEvents
- remove some obsolete stuff: notify_*_args,
  bx_simulator_interface_c::[sg]et_enabled() methods
- in siminterface.cc, move a few bx_real_sim_c methods to where they belong,
  with the rest of the methods.  No changes to the actual methods.
- remove some DOS ^M's which crept in and confused my editor.
2002-08-26 15:31:23 +00:00
Christophe Bothamy
65b715a6ed - fixed test for NE2K_OBJ 2002-08-22 22:21:19 +00:00
Christophe Bothamy
099dad0041 - updated with patch from brad@openbsd.org. See bug [ 593340 ]. 2002-08-11 11:42:09 +00:00
Christophe Bothamy
bc6d07a2c9 - generated from configure.in r1.83 2002-07-16 12:10:05 +00:00
Christophe Bothamy
0fc3304a35 - cdrom is enabled by default
- added a --enable-fetchdecode-cache option
2002-06-06 15:42:11 +00:00
Bryce Denney
2f69a74616 - commit TUN/TAP patch, though I can't really test it. I can verify that if
you don't have if_tun.h the configure script does not enable TUN/TAP.
2002-04-18 00:59:20 +00:00
Bryce Denney
30aaf4088e - commit patch.wxwindows.gz in the main branch. Now you can try out
the wxwindows interface by just "configure --with-wx; make"

  Modified Files:
    Makefile.in bochs.h config.h.in configure configure.in
    load32bitOShack.cc logio.cc main.cc cpu/cpu.cc cpu/cpu.h
    debug/dbg_main.cc gui/Makefile.in gui/control.cc gui/gui.cc
    gui/siminterface.cc gui/siminterface.h gui/x.cc iodev/cdrom.cc
    iodev/keyboard.cc memory/misc_mem.cc
  Added Files:
    README-wxWindows wxbochs.rc gui/wx.cc gui/wxmain.cc
    gui/wxmain.h gui/bitmaps/cdromd.xpm
    gui/bitmaps/configbutton.xpm gui/bitmaps/copy.xpm
    gui/bitmaps/floppya.xpm gui/bitmaps/floppyb.xpm
    gui/bitmaps/mouse.xpm gui/bitmaps/paste.xpm
    gui/bitmaps/power.xpm gui/bitmaps/reset.xpm
    gui/bitmaps/snapshot.xpm
  Removed Files:
    patches/patch.wxwindows.gz
2002-04-18 00:22:20 +00:00
Bryce Denney
45b49fe35f - this patch from William Lee Irwin III <wli@holomorphy.com> makes it easy to
configure and compile a BIOS for 8 CPUs.
2002-04-08 01:41:59 +00:00
Bryce Denney
8983937e5c - in main branch, change version name back to "1.4.cvs" so that it's not
confused with any release.
2002-03-28 09:43:07 +00:00
Bryce Denney
715becded5 - upgrade version number to 1.4 2002-03-28 01:20:31 +00:00
Bryce Denney
2a63f9d737 - in rev 1.73 enabled the I/O debugger by default when the debugger is on.
But I left out a critical line, that added iodebug.o to the compile list.
  This rev adds it in so that --enable-debugger will actually compile.
2002-03-26 12:47:50 +00:00
Bryce Denney
6347533913 - Fixes bug #534760: buggy detection of ethertap header. 2002-03-26 05:59:12 +00:00
Bryce Denney
5ab4415516 - enable I/O interface to debugger, when the debugger is enabled 2002-03-21 02:14:51 +00:00
Bryce Denney
e73971ba66 - update version number 2002-03-11 17:15:21 +00:00
Bryce Denney
417425b2e8 - when compiling with --with-sdl, add config-sdl --cflags to the
CFLAGS.  This is needed on systems in which the SDL headers are in
  a nonstandard location.
2002-03-10 21:31:52 +00:00
Bryce Denney
9a177ba518 - add configure test for ethertap. On systems which have a header file
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.
2002-03-09 01:04:49 +00:00
Bryce Denney
c2e0e409e7 - add --enable-vbe option in anticipation of Jereon Jannsen's VESA BIOS
extensions.
2002-03-08 22:37:06 +00:00
Bryce Denney
bef9401a16 - fix the check for socklen_t. It is never defined unless you include
sys/socket.h, duh.
2002-03-08 05:45:51 +00:00
Bryce Denney
9b03cd05e5 - update 2002-03-08 04:47:59 +00:00
Bryce Denney
41767f5a5f - add configure check for socklen_t, define as int if not already there. 2002-03-08 04:45:00 +00:00
Bryce Denney
556a8fa8f8 - commit patch.check-platform. For full details, pull up the patch itself
and look at the description at the top.  Here's an intro.

  This patch makes significant changes to the configure script.  It adds the
  lines AC_CANONICAL_HOST and AC_CANONICAL_TARGET which detect the OS and
  processor type.  The configure script, knowing the OS and processor type, can
  then make intelligent decisions about which CFLAGS are needed and what is the
  default GUI for that platform.  One of the goals of this patch is to make it
  so that on all supported platforms, "configure;make" will compile cleanly.
  Configure detects the target platform, but it can be overridden by using
  --target=___.  This is important when using one platform to generate
  Makefiles and header files for another platform.  See config.guess script for
  the exact details of platform naming.

  The defaults that are currently implemented in the modified configure script
  include:
    If platform is windows* or winnt*, use win32 gui.
    If platform is cygwin*, use win32 gui and compile with
       "-mno-cygwin -DWIN32".
    If platform is macosx* or darwin*, use carbon gui and compile
       with "-fpascal-strings -fno-common -arch ppc -Wno-four-char-constants
       -Wno-unknown-pragmas -Dmacintosh"
    If platform is macos, use macos gui.
    If platform is beos, use beos gui.
    If platform is amigaos, use amigaos gui.
    Otherwise, use X windows gui.
2002-03-07 16:00:39 +00:00
Bryce Denney
17e5bfc00b - change version number to 1.4.pre1 to make a snapshot 2002-03-05 15:58:59 +00:00
instinc
4be53d635a Added --with-sdl 2002-02-05 19:21:59 +00:00
Bryce Denney
d7ea373b90 - apparantly freebsd works with linux sound code. Now you can type
configure --enable-sb16=freebsd and it works according to
   Jeroen Ruigrok/asmodai <asmodai@wxs.nl>
2002-01-16 19:52:28 +00:00
Volker Ruppert
7a7bd0779f - version number updated 2002-01-08 18:58:47 +00:00
Bryce Denney
e8bcb173e5 - detect when MacOS X cdrom code can be used: when the header file
"IOKit/storage/IOCDMedia.h" is available.
2001-12-07 22:18:40 +00:00
Bryce Denney
706f0629f8 - Bernd's configure seems to want both cdrom.o and cdrom_beos.o, though I'm
not sure it's required.
2001-12-07 18:51:29 +00:00
Bryce Denney
5fcb69ca3a - to allow configure to be run from other directories, I added some
mkdirs for build and build/linux.  This was working, but then broke
  when I made configure substitute the version number in lots of new
  files.
2001-12-05 16:46:00 +00:00
Bryce Denney
2cd62e75c8 - Dave enabled the E9 hack in config.h.in, but it had no effect. The correct
way is to make the configure.in default to turning it on.  The value in
  config.h.in will be replaced by configure anyway.
2001-12-05 16:25:24 +00:00
Bryce Denney
0bbe088d56 - add beos cdrom .o file, when beos and cdrom are selected. I don't
have the actual cdrom_beos.cc file yet from Bernd.
2001-12-05 03:37:08 +00:00
Bryce Denney
50f84e5947 - add configure switch called --enable-idle-hack that turns on
Roland Mainz's idle patch.
2001-11-12 00:43:59 +00:00
Bryce Denney
7c92e20272 - add test for getenv 2001-11-11 05:43:12 +00:00
Bryce Denney
473e3f1c88 - I have tried to make the --prefix argument to configure control
everything about the installation path.  There should be no more
  hardcoded references to /usr/local/bochs.  Instead, there are
  references to @prefix@ which get replaced by the configure script
  with the real prefix.
2001-11-10 03:48:22 +00:00
Bryce Denney
70069a4ad8 - also compile niclist when NE2000 is enabled 2001-10-09 13:41:01 +00:00
Bryce Denney
cd88c86840 - add configure check for the abort function, which I will use as a
choice when a panic occurs.
2001-10-07 00:10:19 +00:00
Bryce Denney
dbb6d5f821 - remove my ill-conceived configure test for wsprintf. It really is
available in cygwin, and I don't know what I was thinking before.
2001-10-05 13:52:25 +00:00
Bryce Denney
80b669501a - when win32-vcpp is enabled, set HAVE_LIBREADLINE=0 and BX_HAVE_WSPRINTF=1. 2001-10-05 07:45:23 +00:00
Bryce Denney
51bef91d8e - force BX_HAVE_WSPRINTF=1 when configuring for a VC++ compile 2001-10-05 07:04:29 +00:00
Bryce Denney
02f53d023a - add configure check for wsprintf 2001-10-05 06:08:24 +00:00
Bryce Denney
5e2e1b5ae0 - add some substitution variables related to make install for win32 2001-10-05 06:06:21 +00:00
Bryce Denney
85b8c00de0 - clean up error message related to readline 2001-10-04 18:07:06 +00:00
Bryce Denney
5be1416c96 - remove the part that aborts if readline is not found 2001-10-04 18:05:29 +00:00
Bryce Denney
3b6d9ae017 - try to improve the readline test. Now I never use the readline test
generated by autoconf.  Instead I'm using AC_TRY_RUN to actually call
  a readline function before assuming that things are ok.
2001-10-04 18:00:48 +00:00
Bryce Denney
de45620a0d - partial fix for bug #467969, VPATH doesn't quite work. It was failing
when trying to create instrument/stubs/Makefile because the instrument
  directory didn't exist.
2001-10-04 17:54:51 +00:00
Bryce Denney
84f1ebb003 - readline checks still have a few problems, so don't do exit 1 2001-10-04 05:39:12 +00:00
Bryce Denney
57071445e6 - add eth_win32.o to the Makefile when ne2000 is enabled and we're compiling
for win32.
2001-10-03 13:42:24 +00:00
Bryce Denney
49aad8c1b1 - add test for whether -lcurses is required when using readline, to fix
bug #429448.  What is strange about this problem (on OpenBSD) is that the
  compile and link goes fine, but when you execute your first readline library
  function it does a dynamic link and crashes on the spot.  Many autoconf
  tests only compile and sometimes link the test program, but this test
  compiles, links, and runs it.
2001-10-03 12:33:53 +00:00
Bryce Denney
c9e377c4d9 - for MacOSX the primary target is the app, not the bochs. 2001-09-27 02:01:41 +00:00
Bryce Denney
3abf0831a5 - add configure option "--with-carbon" which is used for MacOS X compiles 2001-09-26 00:13:16 +00:00
Bryce Denney
c7a4ac2088 - add test for usleep and nanosleep 2001-09-24 05:28:42 +00:00
Bryce Denney
9454441958 - add --enable-slowdown option to configure, which turns on Greg's
slowdown timer device.
2001-09-24 05:23:55 +00:00
Bryce Denney
4f5bce582f - when configuring for win32, assume you don't have strotull or strtouq. 2001-09-24 03:26:24 +00:00
Bryce Denney
c89f3de147 - move Dave's changes to configure into configure.in so that they don't
get wiped out next time we run autoconf.
2001-09-18 05:25:29 +00:00
instinc
1732a0ea73 Added missing IODEBUG_OBJS 2001-09-14 15:07:49 +00:00
instinc
37fc526317 Added I/O Interface to the debugger check, --enable-iodebug --disable-iodebug 2001-09-14 14:52:27 +00:00
Gregory Alexander
d9fd468ff4 Made the new PIT the default. 2001-08-18 14:15:41 +00:00
Bryce Denney
42aa1fcf46 - I realized that cdrom_amigaos.o is a replacement for cdrom.o, not a
supplement.
2001-08-15 20:39:40 +00:00
Bryce Denney
bf286c20ac - configure and makefile changes for AmigaOS port. Now configure
--with-amigaos is allowed and sets up the makefiles correctly.  It
  defines a symbol called BX_WITH_AMIGAOS, which should be used in
  #if..#endif constructs that are specific to amigaos.
- if --enable-cdrom is used with --with-amigaos, the cdrom_amigaos.o
  object file will be added to CDROM_OBJS in the iodev makefile.
2001-08-15 20:33:47 +00:00
Bryce Denney
4d8a524e81 - add --enable-new-pit option to turn on Greg's PIT model 2001-08-15 17:51:10 +00:00
Bryce Denney
75c87e2113 - apply patch from splite@purdue.edu that add an ethernet packet mover
for Linux!!!  I tested this using host OS kernel 2.2.14, and was able
  to use telnet, ftp, irc, lynx, etc.  Because it is a packet filter
  solution, you aren't able to talk to the host machine, only to other
  machines on the network.  The patch itself is in
  patches/patch.ethlinux-splite.
2001-06-26 07:46:42 +00:00
Bryce Denney
a36d430306 - help message for --enable-control-panel was broken 2001-06-21 15:05:22 +00:00
Bryce Denney
6c7d910459 - bought configure up to date with 1.23 of configure.in 2001-06-20 22:28:43 +00:00
Bryce Denney
19bbda01ca - add test for struct timeval 2001-06-12 03:37:55 +00:00
Bryce Denney
8b7fbca53e - more work on text-mode control panel. Now the control panel starts before
the simulation begins, to give you a chance to choose between bochsrcs,
  choose the boot disk, etc.
2001-06-09 20:01:12 +00:00
Bryce Denney
c681b99d39 - remove --enable-external-device-models
- remove --enable-external-cpu-memory
- Neither of these options were compiling anymore, and Kevin suggested:
  > My advice would be to scrap both of these options.  I hadn't used
  > those in some time.  The way to implement 'external' devices
  > would be via a modular plugin architecture, which both bochs
  > and plex86 should implement.
2001-06-07 16:00:58 +00:00
Bryce Denney
ef907186ef - add messages about external device models and external cpu memory,
no change of any substance here!
2001-06-07 14:11:58 +00:00
Bryce Denney
e8d89eb7eb - allow readline to be disabled if you want, as in
configure --enable-debugger --disable-readline
2001-06-07 02:51:20 +00:00
Bryce Denney
3c9067facf - crash configure if X windows gui selected but no X windows libraries
are found
2001-06-02 03:11:51 +00:00
Bryce Denney
07b92bf6a5 - first test if -pthread arg to compiler causes pthread library to work.
If so, use it.  Otherwise, check if -lpthread works.  If so, us it.
  Otherwise, print an error and fail.
2001-06-02 03:07:28 +00:00
Bryce Denney
4ffec74a29 - only attempt to compile eth_fbsd.o if net/bpf.h is found. 2001-05-31 15:19:32 +00:00
Bryce Denney
5e2d6aba63 - leave optimization on for windows, but make it easy to switch to
debug version by uncommenting stuff.
2001-05-25 02:08:52 +00:00
Bryce Denney
97d681fb89 - integrated Don Becker's RFB gui, added it as a configure option,
and put it in the docs.
2001-05-24 01:07:09 +00:00
Bryce Denney
3503104390 - configure turns on APIC when cpu level > 5
- now the APIC feature bit is really controlled by cpu level and
  BX_APIC_SUPPORT, so it won't go on at the wrong time.
2001-05-23 15:54:05 +00:00