Bochs/bochs
Bryce Denney 93f5f8e06b - now the memory options menu, interface menu, and disk menu in the
control panel are all implemented as bx_list_c, and look much like
  they did before.
- removed many hardcoded UI functions from control.cc, since the
  much more general "text_ask" methods have replaced them.
- add range checking on integer parameter values.  This exposed several
  cases where my initial value for an integer parameter was not in range.
- cleaned up behavior of get/set methods.  The get/set methods allow the
  handler to override the value that is returned/set, or perform side
  effects.
- the title parameter of a bx_list_c now defaults to the name.
- now bx_param_c fields that used to be private are protected instead
- removed references to bx_any
- moved definition of set_handler from siminterface.h to siminterface.cc.
  I was considering with doing a "set" of the old value when the
  handler is first installed, but that remains commented out.
- BX_BOOT_DISKA and BX_BOOT_DISKC are now 0,1 so that they can correspond
  with the values of a bx_param_enum_c.  For a while they were 0x00 and 0x80
  corresponding to the numbering convention of the bios, but it didn't
  really matter.
2001-06-21 14:37:55 +00:00
..
bios - in int13_diskette_function, return the right error code (AH=3) if a 2001-06-13 07:23:26 +00:00
build - Rob added the install_dlx target to match the other packages 2001-06-13 12:47:30 +00:00
cpu setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
debug - fixed naming problems in debugger introduced by my recent checkins 2001-06-21 01:44:32 +00:00
disasm setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
doc Update to put on website automatically. 2001-06-16 00:23:33 +00:00
docs-html *** empty log message *** 2001-06-13 05:05:27 +00:00
dynamic - update copyright dates to 2001 for all mandrake headers 2001-04-10 02:20:02 +00:00
font - update copyright dates to 2001 for all mandrake headers 2001-04-10 02:20:02 +00:00
fpu strip '\n' from BX_{INFO,DEBUG,ERROR,PANIC} 2001-05-30 18:56:02 +00:00
gui - now the memory options menu, interface menu, and disk menu in the 2001-06-21 14:37:55 +00:00
instrument - update copyright dates to 2001 for all mandrake headers 2001-04-10 02:20:02 +00:00
iodev Changed the format for eth_arpback to be more versatile for use with 2001-06-21 01:45:17 +00:00
memory setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
misc - I guess strcasecmp is specific to glib or something, it didn't work in 2001-06-01 05:45:55 +00:00
patches - applied this patch, so removed it from patches 2001-06-19 02:42:04 +00:00
.bochsrc - there were cases where BX_APIC_SUPPORT were used and others where 2001-06-12 13:07:43 +00:00
.conf.AIX.4.3.1 Added a config file for AIX 4.3.1. 2001-04-11 09:07:55 +00:00
.conf.beos-x86-preR4 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.beos-x86-R4 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.linux - renamed to .conf.linux, since it can be used for other linux platforms 2001-06-06 13:40:48 +00:00
.conf.macos - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.sparc - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.win32 - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.win32-cygwin - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
.conf.win32-vcpp - remove all curly brackets from makefiles! Before, I had done this by 2001-06-12 17:26:17 +00:00
.conf.x86 - with egcs-2.91.66, bochs did not compile if CXX=egcs. It works fine 2001-05-12 05:14:13 +00:00
bochs.h - now the memory options menu, interface menu, and disk menu in the 2001-06-21 14:37:55 +00:00
Bochs.proj.hqx - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
bochs.rsrc.hqx - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
bxversion.h - leave version number unspecified until we are really building a particular 2001-05-23 08:22:23 +00:00
CHANGES - copy CHANGES and README from the 1.2.1 final version 2001-06-12 21:56:59 +00:00
config.h.in - convert nearly all bx_options to parameter form. All options that have 2001-06-20 14:01:39 +00:00
configure - bought configure up to date with 1.23 of configure.in 2001-06-20 22:28:43 +00:00
configure.in - there were cases where BX_APIC_SUPPORT were used and others where 2001-06-12 13:07:43 +00:00
COPYING - entered original Bochs snapshot bochs-2000_0325a.tar.gz from 2001-04-10 01:04:59 +00:00
install-x11-fonts tweaks here and there, show ne2k mac, shorten BX_ messages by removing redundant strings, etc 2001-06-13 16:53:58 +00:00
load32bitOShack.cc - convert nearly all bx_options to parameter form. All options that have 2001-06-20 14:01:39 +00:00
logio.cc setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
macintosh.txt - added strdup replacement function to osdep 2001-04-10 02:02:05 +00:00
main.cc - now the memory options menu, interface menu, and disk menu in the 2001-06-21 14:37:55 +00:00
Makefile.in fwoop, forgot 2001-06-19 16:31:28 +00:00
osdep.cc - define STRTOUQ the same as STRTOULL. 2001-05-17 07:00:42 +00:00
osdep.h - define STRTOUQ the same as STRTOULL. 2001-05-17 07:00:42 +00:00
pc_system.cc setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
pc_system.h - merged BRANCH-smp-bochs into main branch. For details see comments 2001-05-23 08:16:07 +00:00
README - copy CHANGES and README from the 1.2.1 final version 2001-06-12 21:56:59 +00:00
state_file.cc setprefix now uses a variable length name as a string for an argument 2001-06-19 21:36:09 +00:00
state_file.h merge in BRANCH-io-cleanup. 2001-05-15 14:49:57 +00:00
TESTFORM.txt - add keyboard 2001-06-04 23:06:33 +00:00
win32.txt - updated instructions for compiling under win32 2001-05-30 18:24:48 +00:00

Bochs x86 Pentium Emulator
Upated: Tue Jun 12 13:54:43 EDT 2001
Version: 1.2.1

WHAT IS BOCHS?

Bochs is a highly portable open source IA-32 (x86) PC emulator
written in C++, that runs on most popular platforms.  It includes
emulation of the Intel x86 CPU, common I/O devices, and a custom
BIOS.  Currently, bochs can be compiled to emulate a 386, 486 or
Pentium CPU.  Bochs is capable of running most Operating Systems
inside the emulation including Linux, Windows 95, DOS, and 
Windows NT 4.  Bochs was written by Kevin Lawton and is currently 
maintained by the Bochs project at "http://bochs.sourceforge.net".

Bochs can be compiled and used in a variety of modes, some which are
still in development.  The 'typical' use of bochs is to provide
complete x86 PC emulation, including the x86 processor, hardware
devices, and memory.  This allows you to run OS's and software within
the emulator on your workstation, much like you have a machine
inside of a machine.  Bochs will allow you to run Win '95
applications on a Solaris machine with X11, for example.

Bochs is distributed under the GNU LGPL.  See COPYING for details.

GETTING CURRENT SOURCE CODE 

Source code for Bochs is available from the Bochs home page at
http://bochs.sourceforge.net.  You can download the most recent
release, use CVS to get the latest sources, or grab a CVS
snapshot which is updated nightly.  The releases contain the most
stable code, but if you want the very newest features try the
CVS version instead. 

COMPILING BOCHS FROM SOURCES

All releases are gzip'd tar files.  That means the whole Bochs source
code directory has been consolidated into one file using the Unix
command 'tar', then compressed to save space with GNU 'gzip'.  To
extract the source code, you'll need both 'tar' and 'gzip/gunzip'.
All files are contained within one subdirectory named 'bochs-[VERSION]'. 

cd /path/parent-directory
gzip -dc bochs-[VERSION].tar.gz | tar -xvf -
cd bochs-[VERSION]

Before compiling, you'll need to run the configure script, which
will configure source code to run on your system, and with your
chosen options.  There are many options to 'configure', and you
probably don't need any of them.  If you run BeOS, specify
'--with-beos' to configure.  To see a complete list: 

unix-> ./configure --help

For more complete documentation of options available to configure,
look at docs-html/configure.html in your browser.

If configure cannot guess your compiler and compiler arguments,
you will also need to set environment variables to tell configure
what compiler and options to use.  The relevant environment variables 
are CC and CXX (C and C++ compiler), CFLAGS and CXXFLAGS (options
for the C and C++ compiler).

Now run configure, be it manually or by way of a script file. 

unix-> ./configure
-or-
unix-> ./.conf.x86

If the configure script bombs, check 'config.log'. Specifically,
look for errors returned by the compiler.  You may have options
incompatible with your compiler.  See the link on setting the
environment variables above. 

Assuming at this point all went well with the configure command,
edit the file 'config.h', which was generated by ./configure.  Look
for the USER CONFIGURABLE OPTIONS section.  Each parameter available
for editing is documented.  Generally the defaults are fine for
typical users.  Please read about each parameter and edit carefully.
NOTE: This file is generated, and will be deleted if you run 'make
dist-clean'. 

You may now compile the source. 

unix-> make

WHERE ARE THE DOCS?

You have a local copy of the Bochs documentation in docs-html that
came out of the TAR file.  (Point your browser to
docs-html/index.html.)  These same docs are also on the web at
http://bochs.sourceforge.net/docs-html.  If you followed the compile
directions above, the next step is "Setting up the environment
before running" under Compile/Install.

WHERE CAN I GET MORE INFORMATION?  HOW DO I REPORT PROBLEMS?

Both the docs-html and the Bochs website have instructions on how 
to join the bochs-developers mailing list, which is the primary
forum for discussion of Bochs.  The main page of the website also
has links to bug reports and feature requests.  You can browse and
add to the content in these areas even if you do not have a (free)
SourceForge account.  We need your feedback so that we know what
parts of Bochs to improve.  

There is a patches section on the web site too, if you have made
some changes to Bochs that you want to share.

HOW CAN I HELP?

If you would like contribute to the Bochs project, a good first step
is to join the bochs-developers mailing list, and read the archive
of recent messages to see what's going on.  

If you are a technical person (can follow hardware specs, can write
C/C++) take a look at the list of open bug reports and feature
requests to see if you are interested in working on any of the
problems that are mentioned in them.  If you check out the CVS
sources, make some changes, and create a patch, one of the
developers will be very happy to apply it for you.  Developers who
frequently submit patches, or who embark on major changes in the
source can get write access to CVS.  Be sure to communicate with the
bochs-developers list to avoid several people working on the same
thing without realizing it.

If you are a Bochs user, not a hardware/C++ guru, there are still
many ways you could help out.  We have a group of people working on
making win32 binary releases, and building up a set of useful tools
to include in those releases.  Others are writing documentation or
cleaning up the existing documentation.  Others are testing out
Bochs on every imaginable operating system and writing about how
they did it.