bochs inside

This commit is contained in:
sunyiming
2021-11-13 23:32:12 +08:00
parent f8d85973d9
commit 073c914317
313 changed files with 71701 additions and 16797 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,504 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -0,0 +1,7 @@
The following points clarify the Bochs license:
1) Bochs as a whole is released under the GNU Lesser General Public License
2) Parts of Bochs have specific licenses which are compatible with the
GNU Lesser General Public License. Hence each source file contains its
own licensing information.

View File

@@ -0,0 +1,84 @@
Bochs x86 Pentium+ Emulator
Updated: Mon Dec 24 10:52:00 CET 2007
Version: 2.3.6
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,
Pentium/PentiumII/PentiumIII/Pentium4 or x86-64 CPU, including optional
MMX, SSEx and 3DNow! instructions. Bochs is capable of running
most Operating Systems inside the emulation, for example Linux, DOS,
Windows 95/98/NT/2000/XP or Windows Vista.
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 Windows
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.
WHERE ARE THE DOCS?
The Bochs documentation is written in Docbook. Docbook is a text
format that can be rendered to many popular browser formats such
as HTML, PDF, and Postscript. Each binary release contains the
HTML rendering of the documentation. Also, you can view the
latest documentation on the web at
http://bochs.sf.net/doc/docbook/index.html
Some information has not yet been transferred from the older
HTML docs. These can be found at http://bochs.sf.net/docs-html
WHERE CAN I GET MORE INFORMATION? HOW DO I REPORT PROBLEMS?
Both the documentation 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. For example:
- write instructions on how to install a particular operating system
- writing/cleaning up documentation
- testing out Bochs on every imaginable operating system and
reporting how it goes.

View File

@@ -0,0 +1,16 @@
SeaBIOS is an open source implementation of a 16bit X86 BIOS. SeaBIOS
can run in an emulator or it can run natively on X86 hardware with the
use of coreboot (http://www.coreboot.org/).
SeaBIOS is the default BIOS for qemu (http://www.qemu.org/) and
kvm (http://www.linux-kvm.org/).
The coreboot SeaBIOS (http://www.coreboot.org/SeaBIOS) page has
information on using SeaBIOS in coreboot. Please see the
releases page for information on recent releases. See the
download page to obtain SeaBIOS.
SeaVGABIOS is a sub-project of SeaBIOS.
Please join the mailing list to contribute to SeaBIOS. Information on
the internals of SeaBIOS is available on the Developer Documentation page.

View File

@@ -0,0 +1,35 @@
SeaVGABIOS is a sub-project of the SeaBIOS project - it is an open
source implementation of a 16bit X86 VGA BIOS
(http://en.wikipedia.org/wiki/Video_BIOS). SeaVGABIOS is the
default VGA BIOS on QEMU (http://www.qemu.org/). SeaVGABIOS can also
run natively on some X86 VGA hardware with coreboot (http://www.coreboot.org/).
Building SeaVGABIOS
===================
To build SeaVGABIOS, obtain the code, run `make
menuconfig` and select the type of VGA BIOS to build in the "VGA ROM"
menu. Once selected, run `make` and the final VGA BIOS binary will be
located in "out/vgabios.bin".
The choice of available VGA BIOSes within "make menuconfig" is
dependent on whether CONFIG_QEMU, CONFIG_COREBOOT, or CONFIG_CSM is
selected. Also, the debug options under the "Debugging" menu apply to
SeaVGABIOS. All other options found in "make menuconfig" apply only to
SeaBIOS and will not impact the SeaVGABIOS build.
If SeaVGABIOS is needed for multiple different devices (eg, QEMU's
cirrus emulation and QEMU's "dispi" emulation), then one must compile
SeaVGABIOS multiple times with the appropriate config for each build.
SeaVGABIOS code
===============
The source code for SeaVGABIOS is located in the SeaBIOS
git repository. The main VGA BIOS code is located in the "vgasrc/"
directory. The VGA BIOS code is always compiled in 16bit mode.
The SeaVGABIOS builds to a separate binary from the main SeaBIOS
binary, and much of the VGA BIOS code is separate from the main BIOS
code. However, much of the SeaBIOS developer documentation applies to
SeaVGABIOS. To contribute, please join the SeaBIOS mailing list.

View File

@@ -0,0 +1,124 @@
-------------------------------------------------------------
BOCHS TESTING FORM Version 0.3
-------------------------------------------------------------
Because of the variety of platforms and configurations that Bochs
supports, it is difficult for any one person to test it thoroughly.
This form is intended to help the Bochs developers keep track of test
results from different sources. To avoid confusion, this form should
be submitted once for each combination of host OS and guest OS you
try. For example: your host OS is Debian Linux and you get both Win95
and FreeDOS to start up. You would send one form for
Win95-under-Debian and a second form for FreeDOS-under-Debian. In
this case it would save time to fill in the host OS part, copy it a
few times and fill out the guest OS part for each copy.
To fill in a blank such as [__], replace the underlines and leave
the brackets. Example: [Sun Ultrasparc 10]. To fill in a
multiple-choice, just put an X in the brackets. Example: [X]
Mail completed forms to bochs-testing@tlw.com.
What is the date?
[__]
What is your name?
[__]
What is your email address?
[__]
Do you mind if your name and email address are placed on a testing results
web page so that people with a similar setup can write to you?
[ ] Ok, put it on a web page
[ ] No, keep my address private.
What type of hardware are you using, e.g. 500MHz Intel Celeron.
[__]
What operating system are you using? Please be specific, e.g.
Redhat Linux 6.2 with 2.2.16 kernel.
[__]
What version of bochs are you using?
[ ] compiled from version 2.1.1
[ ] compiled from version [_____]
[ ] I compiled it from the CVS sources from date: [__]
[ ] other source distribution from URL: [__]
[ ] binary distribution from URL: [__]
Please fill in the next few questions only if you compiled Bochs
yourself, as opposed to downloading a binary.
Did the configure script run ok, and detect your hardware and
operating system?
[ ] Yes
[ ] No, configure crashed.
[ ] No, configure ran ok but produced a bad configuration.
[ ] No, I cannot run configure on my platform (win32 and mac).
If you used configure, what arguments did you give it? If you used a
.conf.* script, give the name of the .conf script instead.
[__]
What compiler did you use? (Please include version.)
[__]
Did Bochs compile clean without any hacking?
[ ] Yes
[ ] No
If you had to make changes to compile, please summarize the problems you
had or include diffs.
[__]
End of compile-specific questions!
What guest operating system are you using inside bochs?
[__]
Are you booting from a floppy or hard disk?
[ ] floppy image
[ ] raw floppy drive
[ ] hard drive image
[ ] raw hard drive (is this even possible?)
[ ] other [__]
Did the guest operating system boot successfully?
[ ] Yes
[ ] No
If no, what error messages do you see on the console or in the log file?
[__]
What applications worked under this guest operating system?
[__]
What applications failed under this guest operating system? Did the
application function incorrectly, crash Bochs, or what? If you got a
panic, paste in the panic message that you received with some
description of what was happening at the time.
[__]
The remaining questions are about Bochs features that you may not have
used. If you tried out the feature, move the X to the "works" or
"fails" column.
Not Works
tested ok Fails Comments?
keyboard [ ] [ ] [ ] [__]
floppy disk [X] [ ] [ ] [__]
raw floppy disk [X] [ ] [ ] [__]
hard disk [X] [ ] [ ] [__]
floating point [X] [ ] [ ] [__]
mouse [X] [ ] [ ] [__]
cdrom [X] [ ] [ ] [__]
sb16 [X] [ ] [ ] [__]
ne2000 [X] [ ] [ ] [__]
i440FX pci [X] [ ] [ ] [__]
debugger [X] [ ] [ ] [__]
external loader [X] [ ] [ ] [__]
VGA [X] [ ] [ ] [__]
Thank you for your contribution in the Bochs testing effort! Please
mail completed forms to bochs-testing@tlw.com.

View File

@@ -0,0 +1,270 @@
This is the "roadmap" posted in the mailing list, augmented by
comments from the mailing list and the irc chat.
Anybody is welcome to work on any of these issues. Some of
these items are rather simple and can be implemented by single
individuals. Other items are quite complex and development needs
to be coordonated. So, if you want to contribute, please drop
us a note in the mailing list, so you can get help or exchange
ideas.
Christophe Bothamy.
0. Donations
Source Forge recently set up a donation system for hosted projects.
Should we accept donations ? What could we do with the money ?
- give to EFF, FSF or other
- fund Kevin to continue the work on plex86 so we can use it
- bounties for somebody write optimized win9x/NT/XFree/linux/*BSD
drivers for our vga/net/ide cards
- other ?
Status in Bochs 2.3:
No decisions about this yet.
1. Speed
Speed (well lack of) is one of the biggest criticism made by users
who'd like to see Bochs run as fast as Virtual PC.
Paths we can explore to get more speed :
4.1 virtualization : plex86
4.2 dynamic translation : qemu, patch from h.johansson
Status:
Some work has been done for Bochs 2.3.6 but still long way is ahead.
2. Plugin architecture
2.1 The plugin architecture can be reworked if we want to support
multiple similar devices like seral net or vga cards.
We currently have two "types" of plugins: "core" and "optional".
Maybe we could add "classes" of plugins. The current version of
Bochs supports the classes "display_library" and "io_device".
New classes can be "config_interface", "net_lowlevel" and
"sound_lowlevel"
2.2 Stanislav wrote :
Plugin architecture should be rewritten like real plugin architecture s.t.
Bochs VGA plugin for example will be real plugin. I mean that replacement
of plugin dll in already compiled Bochs will replace Bochs VGA card and
the new card will be detected automatically.
This will allow for example developing of plugins separately from Bochs.
2.3 Michael Brown wrote :
If the configuration interface is to be reworked, could we also make it so
that plugins are self-contained, rather than needing to pollute config.cc
with code for defining and parsing plugin-specific options
Status:
A little bit of the basic work is done now: The config parameter handling has
been rewritten to a parameter tree and user-defined bochsrc options are now
supported. The main plugin architecture rewrite is not done yet.
3. PCI host<->guest proxy
Being able to use a real pci device from inside Bochs would be a
great feature of Bochs. It would ease reverse engineering of non
documented cards, or one could even use a real spare vga card.
Frank Cornellis has done a great job on this subject, and we began
integrating his changes.
Status:
The pcidev device is present in CVS and it has been updated for the new PCI
infrastructure, but the new code is untested yet.
4. Subdirectories in iodev
The iodev directory contains the various implemented iodevice.
With the new pci devices, new harddrives and new net access methods,
it could be interesting to add new subdirectories like :
iodev/video/... --> for standard vga and new card emulation
iodev/disks/... --> for the ata/atapi classes, hd/cd classes and host accesses
iodev/net/... --> for ne2k and host net access
isa and pci devices would be mixed in the directories, but this should
be manageable.
Status:
Not done yet.
5 multithreading. Conn Clark wrote :
Threading might be nice too, for those of us who have SMP/SMT machines.
I have a patch from Mathis (who hangs out on the IRC channel all the
time) that puts the video card interface in its own thread. It has
troubles though that I have not resolved. It may also be easier to debug
a threaded peripheral.
I also think that it might be possible to thread a chunk of the CPU
emulation to improve performance on a SMP/SMT machine. Specificaly
write_virtual_dword, write_virtual_word, write_virtual_byte, etc...
might just be able to be threaded. I think the threading overhead might
be less than the protection and address translation code. We would have
to try it to find out. I'm also sure there can be some nasty hurdles to
overcome.
Status:
Third party proup started a para-Bochs project exacly to reach above goals,
some beta version is already released.
The home page of the project: http://grid.hust.edu.cn/cluster/VirtualMachine/index.html
6. CPU
6.1 This was asked in the ml, and I believe it's a good idea to provide
a configure switch to set the cpu model, for example :
--with-cpu-386
--with-cpu-486dx
--with-cpu-pentium
--with-cpu-pentium-mmx
--with-cpu-k6-iii
--with-cpu-amd64
and so on. The main difficulty here is to set up the list of features
by cpu model. I started such a list, available at
http://cbothamy.free.fr/projects/bochs/CPU_Features.sxc
The configure script will then set up constants on features to compile in,
ISA, FPU, MMX, 3DNOW, SSE, etc... Most of the feature flags already
exists in config.h, so this should be easy. It would also be a good
idea to clean up the cpuid function beased on those flags.
We also have to keep in mind that some features are also enablable
by the guest os.
Please note the all features are still not supported/complete in Bochs.
6.2 Stanislav thinks that configure --with-cpu-pentium-mmx --enable-cpu-level-4
would create lots of conflicts in the generated config.h. He suggests
that we should write an external GUI configure script that would propose
standard or custom cpus and would detect conflicts.
Status:
Not done yet.
7. VGA
For SVGA emulation we have Bochs VBE and the Cirrus adapter. We should have
a look at the voodoo3 (specs http://v3tv.sourceforge.net/docs.php).
Status:
Not done yet.
8. Random thoughts on disk emulation improvements :
8.1 lba48 support
8.2 autodetection of disk size / geometry
8.3 uml cow disk image support
8.4 compressed disk image support
8.5 extend redolog-disk specification to add coherency check of the flat
image file, by storing its fstat-mtime field in the redolog.
Status:
Autodetection now works for all image types created with bximage and vmware3
images. LBA48 and vmware4 disk images support was added in Bochs 2.3.5 release.
The other items are not done yet.
9. net
9.1 bootable ethernet rom ?
see etherboot, Micheal Brown wrote :
This already works; you can build an Etherboot rom image with the pnic
driver, specify it as an option ROM in bochsrc and it will boot. I'm
using this extensively at the moment in Etherboot development.
In the Etherboot project's CVS, in the contrib/bochs directory, you can
find a working bochsrc file and an up-to-date README with step-by-step
instructions on getting this working.
Status:
The pnic device is present in CVS, but the status is unknown.
10. Bios
10.1 our bios is quite heavy on stack space (notably during int13 functions).
Some parts can be rewritten in assembler, to save stack space and
make code smaller.
Status:
New BIOS supporting ACPI was introduced in Bochs 2.3.5 release.
10.2 add "jump table placeholder" and log missing function calls in the bios.
Check completness with Ralf Brown interrupt list.
Status:
Not done yet.
11. LGPL VGABios
11.1 Video parameters table
There is a very nice parameter table in 3dfx banshee document
http://www2.lm-sensors.nu/~lm78/pdfs/Banshee_2d_spec.PDF
see also http://www.xyzzy.claranet.de/dos/vgacrt.c
Status:
The new version 0.6a of the LGPL'd VGABIOS has minimal support for the video
parameter table.
12. Optimized Guest drivers still needed : VGA, IDE, NET
We have a specific VGA driver for winNT/2K, but still
lack drivers for other OSes.
Status:
Not done yet.
13. USB support
Ben Lunt has been working on USB support. The USB mouse and keypad code
is present in Bochs and almost stable. USB flash disk support has been
started and the runtime device change support should be completed.
Status:
Under construction.
14. Config file and dynamic menu
14.1 Benjamen R. Meyer wrote :
I think we should rework the .bochsrc file to be more standard across all
devices. I like how the USB configuration is done in it, and think we should
put something similar together for everything else. In otherwords, create
something that can be easily used for everything, and make it easier to
configure in the process.
From what I can tell right now, most of the configuration lines are randomly
thrown together as each gets implemented or added, instead of having
something that is based on a standard approach to the configuration.
The result should be something that would be able to easily auto-configured
by another program (a configuration editor?) with minimal changes necessary
when new devices/features are added.
14.2 Franck Cornelis wrote : the config system needs some work...
e.g. the main menu is static while it could be generated at run-time...
the main menu text lives somewhere in a file... while it should be generated
at run-time by iterating the main menu objects
Status:
The config options handling has been rewritten to a parameter tree.
15. Save/Restore
Save/restore of config and log options and the hardware state is supported
in all Bochs configurations. Harddisk images are not handled yet.
16. add to the roadmap that we should find some ideas to check
correctness of instructions emulation, especially system instructions.
arithmetic instructions could be validated with simply random testing
Status:
Not done yet.
17. lowlevel serial support for Windows.
Volker is currently working on this.
Status:
Not yet complete (transmit works, receive is losing data).
18. Parallel port
Conn Clark wrote :
I would like to see better parallel port support so I can use a dongle.
This is something I would find very useful as it would mean I wouldn't
have to boot back into windows ever again. I also recognize that this
may require a kernel module be written, which is beyond my current
skills. I know others will find this useful as I have had to tell a
few people that their parallel port driven peripherals that require a
bidirectional parallel port won't work.
Status:
Not done yet.
19. Patches / Bug reports
There are dozens of patches floating around. Some are outdated,
don't apply cleanly, are obsolete/unneeded. We could try to do
some clean-up, and keep only relevent ones.
We should also clean up the SF bug tracker. Some bugreports are
very old and we asked for more information with no response.
Status:
There is some progress, but still a lot of work to do.
20. Positions
If you want to help without coding, here are available positions :
20.1 Webmaster : update website (Jan Bruun Andersen offered to help)
22.2 patch coordonator : look at incoming patches (sourceforge and
mailing list) and upload / update in the cvs patches directory.
20.3 platform maintainers for macos / win32
20.4 disk image maintainer : create and maintain our collection
of disk images. Usually, only the configuration file needs to be
updated, and old bios files have to be removed. Some packages
still contain very old bios files, they should definitely have
to be removed.
Status:
More active developers are needed to do the things described above.
21. Bochs demo cd/dvd
With version 2.1, it is now technically possible to use disk images
on a read-only media, with a journal files on a read/write media.
It would be great to create a demo cd/dvd with executables for
supported platforms, configuration files and read-only disk
images, the journal files would be written in a temporary
directory on the harddisk.
Status:
Not done yet.
22. Other CPU architectures : arm, ppc
This has been asked in the mailing list. I'm not really
interested, but other people might be. Should we propose to
host the new CPUs code in our source tree, or should we let
people fork ?
Status:
Not done yet.

View File

@@ -0,0 +1,9 @@
The VGA BIOS from Elpin Systems, Inc. (http://www.elpin.com/)
is now permanently licensed for use with bochs, courtesy
of MandrakeSoft, creators of the leading "Linux-Mandrake"
distribution (http://www.linux-mandrake.com/). You may
freely use/distribute it with bochs, as long as it is used
in bochs for the intended use as a VGA BIOS.
Please check out Elpin Systems. They make cool software games,
educational software, and VGA development products.

View File

@@ -0,0 +1,214 @@
Plex86/Bochs VGABios
--------------------
The goal of this project is to have a LGPL'd Video Bios in plex86,
Bochs and qemu.
This VGA Bios is very specific to the emulated VGA card.
It is NOT meant to drive a physical vga card.
Cirrus SVGA extension
---------------------
The Cirrus SVGA extension is designed for the Cirrus emulation in Bochs and
qemu. The initial patch for the Cirrus extension has been written by Makoto
Suzuki (suzu).
Install
-------
To compile the VGA Bios you will need :
- gcc
- bcc
- as86
- ld86
Untar the archive, and type make. You should get a "VGABIOS-lgpl-latest.bin"
file. Alternatively, you can use the binary file "VGABIOS-lgpl-latest.bin",
i have compiled for you.
Edit your plex86/bochs conf file, and modify the load-rom command in the
VGA BIOS section, to point to the new vgabios image file.
Debugging
---------
You can get a very basic debugging system: messages printed by the vgabios.
You have to register the "unmapped" device driver in plex86 or bochs, and make
sure it grabs port 0xfff0.
Comment the #undef DEBUG at the beginning of vgabios.c.
You can then use the "printf" function in the bios.
Testing
-------
Look at the "testvga.c" file in the archive. This is a minimal Turbo C 2.0
source file that calls a few int10 functions. Feel free to modify it to suit
your needs.
Copyright and License
---------------------
This program has been written by Christophe Bothamy
It is protected by the GNU Lesser Public License, which you should
have received a copy of along with this package.
Reverse Engineering
-------------------
The VGA Bios has been written without reverse-engineering any existing Bios.
Acknowledgment
--------------
The source code contains code ripped from rombios.c of plex86, written
by Kevin Lawton <kevin2001@yahoo.com>
The source code contains fonts from fntcol16.zip (c) by Joseph Gil avalable at :
ftp://ftp.simtel.net/pub/simtelnet/msdos/screen/fntcol16.zip
These fonts are public domain
The source code is based on information taken from :
- Kevin Lawton's vga card emulation for bochs/plex86
- Ralf Brown's interrupts list avalaible at
http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
- Finn Thogersons' VGADOC4b available at http://home.worldonline.dk/~finth/
- Michael Abrash's Graphics Programming Black Book
- Francois Gervais' book "programmation des cartes graphiques cga-ega-vga"
edited by sybex
- DOSEMU 1.0.1 source code for several tables values and formulas
Feedback
--------
Please report any bugs, comments, patches for this VGA Bios to info@vruppert.de
You can find the latest release at : http://www.nongnu.org/vgabios/
For any information on bochs, visit the website http://bochs.sourceforge.net/
For any information on qemu, visit the website http://fabrice.bellard.free.fr/qemu/
History
-------
vgabios-0.6a : Aug 19 2006
- Volker
. added minimal support for the video parameter table (VPT)
. Cirrus SVGA now supports the "no clear" bit in Cirrus and VESA mode
. Bochs VBE protected mode interface improved
. save/restore video state support for Bochs VBE and standard VGA added
. generate vbetables.h dynamicly
. VBE video memory increased to 8 MB (VBE dispi ID changed to B0C4)
. lots of 4bpp VBE fixes (all 4bpp VBE modes now enabled)
. VGA compatible setup for VBE modes added
vgabios-0.5d : Dec 29 2005
- Volker
. Bochs VBE protected mode interface added (based on a patch by malc@pulsesoft.com)
. biossums utility now supports VGABIOS sizes up to 64 kBytes
. VGA mode 0x11: all color planes must be enabled in this 2-color VGA mode
vgabios-0.5c : Jul 07 2005
- Volker
. BIOS configuration word usually reports initial mode 80x25 color text
. vgabios function 0x0e (write teletype): linefeed (0x0a) only increments the
cursor row value
vgabios-0.5b : May 24 2005
- Volker
. fixed return value for the default case in the VBE section (non-debug mode)
. removed unused stuff
vgabios-0.5a : Mar 07 2005
- Volker
. Cirrus SVGA extension (initial patches from Makoto Suzuki, improvements
from Fabrice Bellard)
. vgabios image size is now exactly 32k with a checksum
. a lot of vgabios and vbe functions rewritten in assembler
. dynamicly generated VBE mode info list
. write character function for CGA and LINEAR8 modes
. read/write graphics pixel for some graphics modes
. text scroll feature for some graphics modes
. VBE 8-bit DAC support
vgabios-0.4c : Nov 06 2003
- Christophe
. fix font problem on initial screen of NT4 Loader
vgabios-0.4b : Nov 04 2003
- Volker
. fix offset of character tables
. optimizations of CRT controller accesses
. VBE i/o registers changed to 0x01CE/CF
(suggestion from Daniel Gimpelevich)
. "noclear" flag stored in BIOS area
. fix character height returned by get_font_info function
vgabios-0.4a : Aug 17 2003
- Volker
. VBE mode search rewritten (VBE modes with LFB bit removed)
. many bugfixes and optimizations
. write character function implemented for graphics modes
. support for 15bpp, 16bpp, 24bpp and 32bpp VBE modes added
. SVGA mode 0x6A added
. VBE modes 0x102, 0x117, 0x118 and 0x142 (Bochs specific)
vgabios-0.3b : Nov 23 2002
- Christophe
. added lfb-mode numbers (patch from mathis)
. updated the Makefile
. removed display of copyrights.
. changed the Copyright string to "LGPL VGABios developers"
- Volker
. set the cursor shape depending on the current font height
. clear BL before calling int 0x10 function 0x1103 in vgabios_init_func
. added some text font functions
- Jeroen
. Forced to new DISPI (0xb0c1) interface (requires latest bochs vbe code)
. Added multibuffering support
. Added new DISPI interface for: virt width, height, x offset, y offset
. Added LFB modes (to be used with the vbe-lfb patch in bochs)
see VBE_HAVE_LFB in vbe.c (currently default enabled)
. updated TODO & docs for changes after bochs 1.4
vgabios-0.3a : Mar 10 2002
- Christophe
. Fixed bug in function ah=13
- Jeroen
. updated vbebios implementation to new api
. added vbe_display_api documentation
. added 640x400x8, 640x480x8, 800x600x8, 1024x768
(>640x480 needs a special bochs patch atm)
. added 320x200x8 vbe support (uses the standard 320x200x8 vga mode to
display, this allows for testing & having something on screen as well,
at least until bochs host side display is up & running)
. adding lfbprof (vbe) testprogram (+some small fixes to it)
. merging with vbebios 0.2
vgabios-0.2b : Nov 19 2001
- Christophe
. Fixed bug in function ah=13
vgabios-0.2a : Nov 09 2001
- Christophe
. Included bugfix from techt@pikeonline.net about grayscale summing
. Added the "IBM" string at org 0x1e as Bart Oldeman suggested
. Fixed DS and ES that where inverted in the int10 parameters list!
. The following have been implemented :
- function ax=1a00, ax=1a01, ah=1b
- function ax=1130
. Added debug messages for unimplemented/unknown functions
Must be compiled with DEBUG defined. The output is trapped
by the unknown-ioport driver of plex/bochs (port 0xfff0 is used)
vgabios-0.1a : May 8 2001
- Christophe
. First release. The work has been focused only on text mode.
. The following have been implemented :
- inits
- int 10 handler
- functions ah=00, ah=01, ah=02, ah=03, ah=05, ah=06, ah=07, ah=08
ah=09, ah=0a, ah=0e, ah=0f, ax=1000, ax=1001, ax=1002, ax=1003
ax=1007, ax=1008, ax=1009, ax=1010, ax=1012, ax=1013, ax=1015
ax=1017, ax=1018, ax=1019, ax=101a, ax=101b, ah=12 bl=10,
ah=12 bl=30, ah=12 bl=31, ah=12 bl=32, ah=12 bl=33, ah=12 bl=34
ah=13

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@@ -0,0 +1,763 @@
# You may now use double quotes around pathnames, in case
# your pathname includes spaces.
#=======================================================================
# CONFIG_INTERFACE
#
# The configuration interface is a series of menus or dialog boxes that
# allows you to change all the settings that control Bochs's behavior.
# There are two choices of configuration interface: a text mode version
# called "textconfig" and a graphical version called "wx". The text
# mode version uses stdin/stdout and is always compiled in. The graphical
# version is only available when you use "--with-wx" on the configure
# command. If you do not write a config_interface line, Bochs will
# choose a default for you.
#
# NOTE: if you use the "wx" configuration interface, you must also use
# the "wx" display library.
#=======================================================================
#config_interface: textconfig
#config_interface: wx
#=======================================================================
# DISPLAY_LIBRARY
#
# The display library is the code that displays the Bochs VGA screen. Bochs
# has a selection of about 10 different display library implementations for
# different platforms. If you run configure with multiple --with-* options,
# the display_library command lets you choose which one you want to run with.
# If you do not write a display_library line, Bochs will choose a default for
# you.
#
# The choices are:
# x use X windows interface, cross platform
# win32 use native win32 libraries
# carbon use Carbon library (for MacOS X)
# beos use native BeOS libraries
# macintosh use MacOS pre-10
# amigaos use native AmigaOS libraries
# sdl use SDL library, cross platform
# svga use SVGALIB library for Linux, allows graphics without X11
# term text only, uses curses/ncurses library, cross platform
# rfb provides an interface to AT&T's VNC viewer, cross platform
# wx use wxWidgets library, cross platform
# nogui no display at all
#
# NOTE: if you use the "wx" configuration interface, you must also use
# the "wx" display library.
#
# Specific options:
# Some display libraries now support specific option to control their
# behaviour. See the examples below for currently supported options.
#=======================================================================
#display_library: amigaos
#display_library: beos
#display_library: carbon
#display_library: macintosh
#display_library: nogui
#display_library: rfb, options="timeout=60" # time to wait for client
#display_library: sdl, options="fullscreen" # startup in fullscreen mode
#display_library: term
#display_library: win32, options="legacyF12" # use F12 to toggle mouse
#display_library: win32, options="windebug" # use experimental debugger gui
#display_library: wx
#display_library: x
#=======================================================================
# ROMIMAGE:
# The ROM BIOS controls what the PC does when it first powers on.
# Normally, you can use a precompiled BIOS in the source or binary
# distribution called BIOS-bochs-latest. The ROM BIOS is usually loaded
# starting at address 0xf0000, and it is exactly 64k long. Another option
# is 128k BIOS which is loaded at address 0xe0000.
# You can also use the environment variable $BXSHARE to specify the
# location of the BIOS.
# The usage of external large BIOS images (up to 512k) at memory top is
# now supported, but we still recommend to use the BIOS distributed with
# Bochs. Now the start address can be calculated from image size.
#=======================================================================
romimage: file=$BXSHARE/BIOS-bochs-latest
#romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
#=======================================================================
# CPU:
# This defines cpu-related parameters inside Bochs:
#
# COUNT:
# Set the number of processors:cores per processor:threads per core
# when Bochs is compiled for SMP emulation.
# Bochs currently supports up to 8 threads running simultaniosly.
# If Bochs is compiled without SMP support, it won't accept values
# different from 1.
#
# QUANTUM:
# Maximum amount of instructions allowed to execute by processor before
# returning control to another cpu. This option exists only in Bochs
# binary compiled with SMP support.
#
# RESET_ON_TRIPLE_FAULT:
# Reset the CPU when triple fault occur (highly recommended) rather than
# PANIC. Remember that if you trying to continue after triple fault the
# simulation will be completely bogus !
#
# IPS:
# Emulated Instructions Per Second. This is the number of IPS that bochs
# is capable of running on your machine. You can recompile Bochs with
# --enable-show-ips option enabled, to find your workstation's capability.
# Measured IPS value will then be logged into your log file or status bar
# (if supported by the gui).
#
# IPS is used to calibrate many time-dependent events within the bochs
# simulation. For example, changing IPS affects the frequency of VGA
# updates, the duration of time before a key starts to autorepeat, and
# the measurement of BogoMips and other benchmarks.
#
# Examples:
#
# Bochs Machine/Compiler Mips
# ____________________________________________________________________
# 2.2.6 2.6Ghz Intel Core 2 Duo with WinXP/g++ 3.4 21 to 25 Mips
# 2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4 12 to 15 Mips
# 2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3 5 to 7 Mips
# 1.4 650Mhz Athlon K-7 with Linux 2.4.4/egcs-2.91.66 2 to 2.5 Mips
# 1.4 400Mhz Pentium II with Linux 2.0.36/egcs-1.0.3 1 to 1.8 Mips
#=======================================================================
cpu: count=1, ips=10000000, reset_on_triple_fault=1
#=======================================================================
# MEGS
# Set the number of Megabytes of physical memory you want to emulate.
# The default is 32MB, most OS's won't need more than that.
# The maximum amount of memory supported is 2048Mb.
#=======================================================================
#megs: 256
#megs: 128
#megs: 64
megs: 32
#megs: 16
#megs: 8
#=======================================================================
# OPTROMIMAGE[1-4]:
# You may now load up to 4 optional ROM images. Be sure to use a
# read-only area, typically between C8000 and EFFFF. These optional
# ROM images should not overwrite the rombios (located at
# F0000-FFFFF) and the videobios (located at C0000-C7FFF).
# Those ROM images will be initialized by the bios if they contain
# the right signature (0x55AA) and a valid checksum.
# It can also be a convenient way to upload some arbitrary code/data
# in the simulation, that can be retrieved by the boot loader
#=======================================================================
#optromimage1: file=optionalrom.bin, address=0xd0000
#optromimage2: file=optionalrom.bin, address=0xd1000
#optromimage3: file=optionalrom.bin, address=0xd2000
#optromimage4: file=optionalrom.bin, address=0xd3000
#optramimage1: file=/path/file1.img, address=0x0010000
#optramimage2: file=/path/file2.img, address=0x0020000
#optramimage3: file=/path/file3.img, address=0x0030000
#optramimage4: file=/path/file4.img, address=0x0040000
#=======================================================================
# VGAROMIMAGE
# You now need to load a VGA ROM BIOS into C0000.
#=======================================================================
#vgaromimage: file=bios/VGABIOS-elpin-2.40
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
#=======================================================================
# VGA:
# Here you can specify the display extension to be used. With the value
# 'none' you can use standard VGA with no extension. Other supported
# values are 'vbe' for Bochs VBE and 'cirrus' for Cirrus SVGA support.
#=======================================================================
#vga: extension=cirrus
vga: extension=vbe
#=======================================================================
# FLOPPYA:
# Point this to pathname of floppy image file or device
# This should be of a bootable floppy(image/device) if you're
# booting from 'a' (or 'floppy').
#
# You can set the initial status of the media to 'ejected' or 'inserted'.
# floppya: 2_88=path, status=ejected (2.88M 3.5" floppy)
# floppya: 1_44=path, status=inserted (1.44M 3.5" floppy)
# floppya: 1_2=path, status=ejected (1.2M 5.25" floppy)
# floppya: 720k=path, status=inserted (720K 3.5" floppy)
# floppya: 360k=path, status=inserted (360K 5.25" floppy)
# floppya: 320k=path, status=inserted (320K 5.25" floppy)
# floppya: 180k=path, status=inserted (180K 5.25" floppy)
# floppya: 160k=path, status=inserted (160K 5.25" floppy)
# floppya: image=path, status=inserted (guess type from image size)
#
# The path should be the name of a disk image file. On Unix, you can use a raw
# device name such as /dev/fd0 on Linux. On win32 platforms, use drive letters
# such as a: or b: as the path. The parameter 'image' works with image files
# only. In that case the size must match one of the supported types.
#=======================================================================
floppya: 1_44=/dev/fd0, status=inserted
#floppya: image=../1.44, status=inserted
#floppya: 1_44=/dev/fd0H1440, status=inserted
#floppya: 1_2=../1_2, status=inserted
#floppya: 1_44=a:, status=inserted
#floppya: 1_44=a.img, status=inserted
#floppya: 1_44=/dev/rfd0a, status=inserted
#=======================================================================
# FLOPPYB:
# See FLOPPYA above for syntax
#=======================================================================
#floppyb: 1_44=b:, status=inserted
#floppyb: 1_44=b.img, status=inserted
#=======================================================================
# ATA0, ATA1, ATA2, ATA3
# ATA controller for hard disks and cdroms
#
# ata[0-3]: enabled=[0|1], ioaddr1=addr, ioaddr2=addr, irq=number
#
# These options enables up to 4 ata channels. For each channel
# the two base io addresses and the irq must be specified.
#
# ata0 and ata1 are enabled by default with the values shown below
#
# Examples:
# ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
# ata2: enabled=1, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
# ata3: enabled=1, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
#=======================================================================
# ATA[0-3]-MASTER, ATA[0-3]-SLAVE
#
# This defines the type and characteristics of all attached ata devices:
# type= type of attached device [disk|cdrom]
# mode= only valid for disks [flat|concat|external|dll|sparse|vmware3]
# mode= only valid for disks [undoable|growing|volatile]
# path= path of the image
# cylinders= only valid for disks
# heads= only valid for disks
# spt= only valid for disks
# status= only valid for cdroms [inserted|ejected]
# biosdetect= type of biosdetection [none|auto], only for disks on ata0 [cmos]
# translation=type of translation of the bios, only for disks [none|lba|large|rechs|auto]
# model= string returned by identify device command
# journal= optional filename of the redolog for undoable and volatile disks
#
# Point this at a hard disk image file, cdrom iso file, or physical cdrom
# device. To create a hard disk image, try running bximage. It will help you
# choose the size and then suggest a line that works with it.
#
# In UNIX it may be possible to use a raw device as a Bochs hard disk,
# but WE DON'T RECOMMEND IT. In Windows there is no easy way.
#
# In windows, the drive letter + colon notation should be used for cdroms.
# Depending on versions of windows and drivers, you may only be able to
# access the "first" cdrom in the system. On MacOSX, use path="drive"
# to access the physical drive.
#
# The path is always mandatory. Disk geometry autodetection works with images
# created by bximage if CHS is set to 0/0/0 (cylinders are calculated using
# heads=16 and spt=63). For other hard disk images and modes the cylinders,
# heads, and spt are mandatory.
#
# Default values are:
# mode=flat, biosdetect=auto, translation=auto, model="Generic 1234"
#
# The biosdetect option has currently no effect on the bios
#
# Examples:
# ata0-master: type=disk, mode=flat, path=10M.sample, cylinders=306, heads=4, spt=17
# ata0-slave: type=disk, mode=flat, path=20M.sample, cylinders=615, heads=4, spt=17
# ata1-master: type=disk, mode=flat, path=30M.sample, cylinders=615, heads=6, spt=17
# ata1-slave: type=disk, mode=flat, path=46M.sample, cylinders=940, heads=6, spt=17
# ata2-master: type=disk, mode=flat, path=62M.sample, cylinders=940, heads=8, spt=17
# ata2-slave: type=disk, mode=flat, path=112M.sample, cylinders=900, heads=15, spt=17
# ata3-master: type=disk, mode=flat, path=483M.sample, cylinders=1024, heads=15, spt=63
# ata3-slave: type=cdrom, path=iso.sample, status=inserted
#=======================================================================
ata0-master: type=disk, mode=flat, path="30M.sample"
#ata0-master: type=disk, mode=flat, path="30M.sample", cylinders=615, heads=6, spt=17
#ata0-master: type=disk, mode=flat, path="c.img", cylinders=0 # autodetect
#ata0-slave: type=cdrom, path=D:, status=inserted
#ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
#ata0-slave: type=cdrom, path="drive", status=inserted
#ata0-slave: type=cdrom, path=/dev/rcd0d, status=inserted
#=======================================================================
# BOOT:
# This defines the boot sequence. Now you can specify up to 3 boot drives,
# which can be 'floppy', 'disk', 'cdrom' or 'network' (boot ROM).
# Legacy 'a' and 'c' are also supported.
# Examples:
# boot: floppy
# boot: cdrom, disk
# boot: network, disk
# boot: cdrom, floppy, disk
#=======================================================================
#boot: floppy
boot: disk
#=======================================================================
# CLOCK:
# This defines the parameters of the clock inside Bochs:
#
# SYNC:
# TO BE COMPLETED (see Greg explanation in feature request #536329)
#
# TIME0:
# Specifies the start (boot) time of the virtual machine. Use a time
# value as returned by the time(2) system call. If no time0 value is
# set or if time0 equal to 1 (special case) or if time0 equal 'local',
# the simulation will be started at the current local host time.
# If time0 equal to 2 (special case) or if time0 equal 'utc',
# the simulation will be started at the current utc time.
#
# Syntax:
# clock: sync=[none|slowdown|realtime|both], time0=[timeValue|local|utc]
#
# Example:
# clock: sync=none, time0=local # Now (localtime)
# clock: sync=slowdown, time0=315529200 # Tue Jan 1 00:00:00 1980
# clock: sync=none, time0=631148400 # Mon Jan 1 00:00:00 1990
# clock: sync=realtime, time0=938581955 # Wed Sep 29 07:12:35 1999
# clock: sync=realtime, time0=946681200 # Sat Jan 1 00:00:00 2000
# clock: sync=none, time0=1 # Now (localtime)
# clock: sync=none, time0=utc # Now (utc/gmt)
#
# Default value are sync=none, time0=local
#=======================================================================
#clock: sync=none, time0=local
#=======================================================================
# FLOPPY_BOOTSIG_CHECK: disabled=[0|1]
# Enables or disables the 0xaa55 signature check on boot floppies
# Defaults to disabled=0
# Examples:
# floppy_bootsig_check: disabled=0
# floppy_bootsig_check: disabled=1
#=======================================================================
floppy_bootsig_check: disabled=0
#=======================================================================
# LOG:
# Give the path of the log file you'd like Bochs debug and misc. verbiage
# to be written to. If you don't use this option or set the filename to
# '-' the output is written to the console. If you really don't want it,
# make it "/dev/null" (Unix) or "nul" (win32). :^(
#
# Examples:
# log: ./bochs.out
# log: /dev/tty
#=======================================================================
#log: /dev/null
log: bochsout.txt
#=======================================================================
# LOGPREFIX:
# This handles the format of the string prepended to each log line.
# You may use those special tokens :
# %t : 11 decimal digits timer tick
# %i : 8 hexadecimal digits of cpu current eip (ignored in SMP configuration)
# %e : 1 character event type ('i'nfo, 'd'ebug, 'p'anic, 'e'rror)
# %d : 5 characters string of the device, between brackets
#
# Default : %t%e%d
# Examples:
# logprefix: %t-%e-@%i-%d
# logprefix: %i%e%d
#=======================================================================
#logprefix: %t%e%d
#=======================================================================
# LOG CONTROLS
#
# Bochs now has four severity levels for event logging.
# panic: cannot proceed. If you choose to continue after a panic,
# don't be surprised if you get strange behavior or crashes.
# error: something went wrong, but it is probably safe to continue the
# simulation.
# info: interesting or useful messages.
# debug: messages useful only when debugging the code. This may
# spit out thousands per second.
#
# For events of each level, you can choose to crash, report, or ignore.
# TODO: allow choice based on the facility: e.g. crash on panics from
# everything except the cdrom, and only report those.
#
# If you are experiencing many panics, it can be helpful to change
# the panic action to report instead of fatal. However, be aware
# that anything executed after a panic is uncharted territory and can
# cause bochs to become unstable. The panic is a "graceful exit," so
# if you disable it you may get a spectacular disaster instead.
#=======================================================================
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
#pass: action=fatal
#=======================================================================
# DEBUGGER_LOG:
# Give the path of the log file you'd like Bochs to log debugger output.
# If you really don't want it, make it /dev/null or '-'. :^(
#
# Examples:
# debugger_log: ./debugger.out
#=======================================================================
#debugger_log: /dev/null
#debugger_log: debugger.out
debugger_log: -
#=======================================================================
# COM1, COM2, COM3, COM4:
# This defines a serial port (UART type 16550A). In the 'term' you can specify
# a device to use as com1. This can be a real serial line, or a pty. To use
# a pty (under X/Unix), create two windows (xterms, usually). One of them will
# run bochs, and the other will act as com1. Find out the tty the com1
# window using the `tty' command, and use that as the `dev' parameter.
# Then do `sleep 1000000' in the com1 window to keep the shell from
# messing with things, and run bochs in the other window. Serial I/O to
# com1 (port 0x3f8) will all go to the other window.
# Other serial modes are 'null' (no input/output), 'file' (output to a file
# specified as the 'dev' parameter), 'raw' (use the real serial port - under
# construction for win32), 'mouse' (standard serial mouse - requires
# mouse option setting 'type=serial', 'type=serial_wheel' or 'type=serial_msys')
# and 'socket' (connect a networking socket).
#
# Examples:
# com1: enabled=1, mode=null
# com1: enabled=1, mode=mouse
# com2: enabled=1, mode=file, dev=serial.out
# com3: enabled=1, mode=raw, dev=com1
# com3: enabled=1, mode=socket, dev=localhost:8888
#=======================================================================
#com1: enabled=1, mode=term, dev=/dev/ttyp9
#=======================================================================
# PARPORT1, PARPORT2:
# This defines a parallel (printer) port. When turned on and an output file is
# defined the emulated printer port sends characters printed by the guest OS
# into the output file. On some platforms a device filename can be used to
# send the data to the real parallel port (e.g. "/dev/lp0" on Linux, "lpt1" on
# win32 platforms).
#
# Examples:
# parport1: enabled=1, file="parport.out"
# parport2: enabled=1, file="/dev/lp0"
# parport1: enabled=0
#=======================================================================
parport1: enabled=1, file="parport.out"
#=======================================================================
# SB16:
# This defines the SB16 sound emulation. It can have several of the
# following properties.
# All properties are in the format sb16: property=value
# midi: The filename is where the midi data is sent. This can be a
# device or just a file if you want to record the midi data.
# midimode:
# 0=no data
# 1=output to device (system dependent. midi denotes the device driver)
# 2=SMF file output, including headers
# 3=output the midi data stream to the file (no midi headers and no
# delta times, just command and data bytes)
# wave: This is the device/file where wave output is stored
# wavemode:
# 0=no data
# 1=output to device (system dependent. wave denotes the device driver)
# 2=VOC file output, incl. headers
# 3=output the raw wave stream to the file
# log: The file to write the sb16 emulator messages to.
# loglevel:
# 0=no log
# 1=resource changes, midi program and bank changes
# 2=severe errors
# 3=all errors
# 4=all errors plus all port accesses
# 5=all errors and port accesses plus a lot of extra info
# dmatimer:
# microseconds per second for a DMA cycle. Make it smaller to fix
# non-continuous sound. 750000 is usually a good value. This needs a
# reasonably correct setting for the IPS parameter of the CPU option.
#
# For an example look at the next line:
#=======================================================================
#sb16: midimode=1, midi=/dev/midi00, wavemode=1, wave=/dev/dsp, loglevel=2, log=sb16.log, dmatimer=600000
#=======================================================================
# VGA_UPDATE_INTERVAL:
# Video memory is scanned for updates and screen updated every so many
# virtual seconds. The default is 40000, about 25Hz. Keep in mind that
# you must tweak the 'cpu: ips=N' directive to be as close to the number
# of emulated instructions-per-second your workstation can do, for this
# to be accurate.
#
# Examples:
# vga_update_interval: 250000
#=======================================================================
vga_update_interval: 300000
# using for Winstone '98 tests
#vga_update_interval: 100000
#=======================================================================
# KEYBOARD_SERIAL_DELAY:
# Approximate time in microseconds that it takes one character to
# be transfered from the keyboard to controller over the serial path.
# Examples:
# keyboard_serial_delay: 200
#=======================================================================
keyboard_serial_delay: 250
#=======================================================================
# KEYBOARD_PASTE_DELAY:
# Approximate time in microseconds between attempts to paste
# characters to the keyboard controller. This leaves time for the
# guest os to deal with the flow of characters. The ideal setting
# depends on how your operating system processes characters. The
# default of 100000 usec (.1 seconds) was chosen because it works
# consistently in Windows.
#
# If your OS is losing characters during a paste, increase the paste
# delay until it stops losing characters.
#
# Examples:
# keyboard_paste_delay: 100000
#=======================================================================
keyboard_paste_delay: 100000
#=======================================================================
# MOUSE:
# This option prevents Bochs from creating mouse "events" unless a mouse
# is enabled. The hardware emulation itself is not disabled by this.
# You can turn the mouse on by setting enabled to 1, or turn it off by
# setting enabled to 0. Unless you have a particular reason for enabling
# the mouse by default, it is recommended that you leave it off.
# You can also toggle the mouse usage at runtime (control key + middle
# mouse button on X11, SDL, wxWidgets and Win32).
# With the mouse type option you can select the type of mouse to emulate.
# The default value is 'ps2'. The other choices are 'imps2' (wheel mouse
# on PS/2), 'serial', 'serial_wheel' and 'serial_msys' (one com port requires
# setting 'mode=mouse'). To connect a mouse to an USB port, see the 'usb1'
# option (requires PCI and USB support).
#
# Examples:
# mouse: enabled=1
# mouse: enabled=1, type=imps2
# mouse: enabled=1, type=serial
# mouse: enabled=0
#=======================================================================
mouse: enabled=0
#=======================================================================
# private_colormap: Request that the GUI create and use it's own
# non-shared colormap. This colormap will be used
# when in the bochs window. If not enabled, a
# shared colormap scheme may be used. Not implemented
# on all GUI's.
#
# Examples:
# private_colormap: enabled=1
# private_colormap: enabled=0
#=======================================================================
private_colormap: enabled=0
#=======================================================================
# fullscreen: ONLY IMPLEMENTED ON AMIGA
# Request that Bochs occupy the entire screen instead of a
# window.
#
# Examples:
# fullscreen: enabled=0
# fullscreen: enabled=1
#=======================================================================
#fullscreen: enabled=0
#screenmode: name="sample"
#=======================================================================
# ne2k: NE2000 compatible ethernet adapter
#
# Examples:
# ne2k: ioaddr=IOADDR, irq=IRQ, mac=MACADDR, ethmod=MODULE, ethdev=DEVICE, script=SCRIPT
#
# ioaddr, irq: You probably won't need to change ioaddr and irq, unless there
# are IRQ conflicts.
#
# mac: The MAC address MUST NOT match the address of any machine on the net.
# Also, the first byte must be an even number (bit 0 set means a multicast
# address), and you cannot use ff:ff:ff:ff:ff:ff because that's the broadcast
# address. For the ethertap module, you must use fe:fd:00:00:00:01. There may
# be other restrictions too. To be safe, just use the b0:c4... address.
#
# ethdev: The ethdev value is the name of the network interface on your host
# platform. On UNIX machines, you can get the name by running ifconfig. On
# Windows machines, you must run niclist to get the name of the ethdev.
# Niclist source code is in misc/niclist.c and it is included in Windows
# binary releases.
#
# script: The script value is optional, and is the name of a script that
# is executed after bochs initialize the network interface. You can use
# this script to configure this network interface, or enable masquerading.
# This is mainly useful for the tun/tap devices that only exist during
# Bochs execution. The network interface name is supplied to the script
# as first parameter
#
# If you don't want to make connections to any physical networks,
# you can use the following 'ethmod's to simulate a virtual network.
# null: All packets are discarded, but logged to a few files.
# arpback: ARP is simulated. Disabled by default.
# vde: Virtual Distributed Ethernet
# vnet: ARP, ICMP-echo(ping), DHCP and read/write TFTP are simulated.
# The virtual host uses 192.168.10.1.
# DHCP assigns 192.168.10.2 to the guest.
# TFTP uses the ethdev value for the root directory and doesn't
# overwrite files.
#
#=======================================================================
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=fbsd, ethdev=en0 #macosx
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
# ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01, ethmod=tuntap, ethdev=/dev/net/tun0, script=./tunconfig
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=null, ethdev=eth0
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vde, ethdev="/tmp/vde.ctl"
# ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:01, ethmod=vnet, ethdev="c:/temp"
#=======================================================================
# KEYBOARD_MAPPING:
# This enables a remap of a physical localized keyboard to a
# virtualized us keyboard, as the PC architecture expects.
# If enabled, the keymap file must be specified.
#
# Examples:
# keyboard_mapping: enabled=1, map=gui/keymaps/x11-pc-de.map
#=======================================================================
keyboard_mapping: enabled=0, map=
#=======================================================================
# KEYBOARD_TYPE:
# Type of keyboard return by a "identify keyboard" command to the
# keyboard controler. It must be one of "xt", "at" or "mf".
# Defaults to "mf". It should be ok for almost everybody. A known
# exception is french macs, that do have a "at"-like keyboard.
#
# Examples:
# keyboard_type: mf
#=======================================================================
#keyboard_type: mf
#=======================================================================
# USER_SHORTCUT:
# This defines the keyboard shortcut to be sent when you press the "user"
# button in the headerbar. The shortcut string is a combination of maximum
# 3 key names (listed below) separated with a '-' character. The old-style
# syntax (without the '-') still works for the key combinations supported
# in Bochs 2.2.1.
# Valid key names:
# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
# "plus", "right", "shift", "space", "tab", "up", "win" and "print".
#
# Example:
# user_shortcut: keys=ctrl-alt-del
#=======================================================================
#user_shortcut: keys=ctrl-alt-del
#=======================================================================
# I440FXSUPPORT:
# This option controls the presence of the i440FX PCI chipset. You can
# also specify the devices connected to PCI slots. Up to 5 slots are
# available now. These devices are currently supported: ne2k, pcivga,
# pcidev and pcipnic. If Bochs is compiled with Cirrus SVGA support
# you'll have the additional choice 'cirrus'.
#
# Example:
# i440fxsupport: enabled=1, slot1=pcivga, slot2=ne2k
#=======================================================================
i440fxsupport: enabled=1
#=======================================================================
# USB1:
# This option controls the presence of the USB root hub which is a part
# of the i440FX PCI chipset. With the portX option you can connect devices
# to the hub (currently supported: 'mouse', 'tablet', 'keypad' and 'disk').
# If you connect the mouse or tablet to one of the ports, Bochs forwards the
# mouse movement data to the USB device instead of the selected mouse type.
# When connecting the keypad to one of the ports, Bochs forwards the input of
# the numeric keypad to the USB device instead of the PS/2 keyboard.
# To connect a flat image as an USB hardisk you can use the 'disk' device with
# the path to the image separated with a colon (see below).
#=======================================================================
#usb1: enabled=1
#usb1: enabled=1, port1=mouse, port2=disk:usbdisk.img
#=======================================================================
# CMOSIMAGE:
# This defines image file that can be loaded into the CMOS RAM at startup.
# The rtc_init parameter controls whether initialize the RTC with values stored
# in the image. By default the time0 argument given to the clock option is used.
# With 'rtc_init=image' the image is the source for the initial time.
#
# Example:
# cmosimage: file=cmos.img, rtc_init=image
#=======================================================================
#cmosimage: file=cmos.img, rtc_init=time0
#=======================================================================
# MAGIC_BREAK:
# This enables the "magic breakpoint" feature when using the debugger.
# The useless cpu instruction XCHG BX, BX causes Bochs to enter the
# debugger mode. This might be useful for software development.
#
# Example:
# magic_break: enabled=1
#=======================================================================
#magic_break: enabled=1
#=======================================================================
# other stuff
#=======================================================================
#load32bitOSImage: os=nullkernel, path=../kernel.img, iolog=../vga_io.log
#load32bitOSImage: os=linux, path=../linux.img, iolog=../vga_io.log, initrd=../initrd.img
#text_snapshot_check: enabled=1
#print_timestamps: enabled=1
#-------------------------
# PCI host device mapping
#-------------------------
#pcidev: vendor=0x1234, device=0x5678
#=======================================================================
# GDBSTUB:
# Enable GDB stub. See user documentation for details.
# Default value is enabled=0.
#=======================================================================
#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
#=======================================================================
# IPS:
# The IPS directive is DEPRECATED. Use the parameter IPS of the CPU
# directive instead.
#=======================================================================
#ips: 10000000
#=======================================================================
# for Macintosh, use the style of pathnames in the following
# examples.
#
# vgaromimage: :bios:VGABIOS-elpin-2.40
# romimage: file=:bios:BIOS-bochs-latest, address=0xf0000
# floppya: 1_44=[fd:], status=inserted
#=======================================================================

View File

@@ -0,0 +1,46 @@
###############################################################
# bochsrc.txt file for DLX Linux disk image.
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=../BIOS-bochs-latest
vgaromimage: file=../VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17
# choose the boot disk.
boot: c
# default config interface is textconfig.
#config_interface: textconfig
#config_interface: wx
#display_library: x
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since DLX is text only
mouse: enabled=0
# enable key mapping, using US layout as default.
#
# NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows.
# However, the key mapping tables are used in the paste function, so
# in the DLX Linux example I'm enabling keyboard_mapping so that paste
# will work. Cut&Paste is currently implemented on win32 and X windows only.
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-es.map

View File

@@ -0,0 +1,24 @@
DLX Linux hard disk image
-------------------------
DLX is a version of Linux which was small enough to distribute along with
the Bochs Windows binary release. Because of its small size, a limited
number of linux commands are available.
To boot with the DLX Linux disk image, cd to the dlxlinux directory
and run bochs.
Linux will boot and reach a login: prompt. Type root followed by RETURN
to log in, and you get a linux command prompt (#). Have fun! When you
are done, type reboot at the "#" prompt. Bochs should exit after stopping
all the tasks on the system.
A collection of larger (and therefore more useful) disk images is at
http://bochs.sourceforge.net/diskimages.html
CREDITS:
The official DLX site is at http://www.wu-wien.ac.at/usr/h93/h9301726/dlx.html
DLX was created by Erich and Hannes Boehm.
Bryce Denney converted the floppy into a small hard disk image for bochs.

View File

@@ -0,0 +1,2 @@
cd "C:\software\Bochs-2.3.6\dlxlinux"
..\bochs -q -f bochsrc.bxrc

View File

@@ -0,0 +1,124 @@
-------------------------------------------------------------
BOCHS TESTING FORM Version 0.3
-------------------------------------------------------------
Because of the variety of platforms and configurations that Bochs
supports, it is difficult for any one person to test it thoroughly.
This form is intended to help the Bochs developers keep track of test
results from different sources. To avoid confusion, this form should
be submitted once for each combination of host OS and guest OS you
try. For example: your host OS is Debian Linux and you get both Win95
and FreeDOS to start up. You would send one form for
Win95-under-Debian and a second form for FreeDOS-under-Debian. In
this case it would save time to fill in the host OS part, copy it a
few times and fill out the guest OS part for each copy.
To fill in a blank such as [__], replace the underlines and leave
the brackets. Example: [Sun Ultrasparc 10]. To fill in a
multiple-choice, just put an X in the brackets. Example: [X]
Mail completed forms to bochs-testing@tlw.com.
What is the date?
[__]
What is your name?
[__]
What is your email address?
[__]
Do you mind if your name and email address are placed on a testing results
web page so that people with a similar setup can write to you?
[ ] Ok, put it on a web page
[ ] No, keep my address private.
What type of hardware are you using, e.g. 500MHz Intel Celeron.
[__]
What operating system are you using? Please be specific, e.g.
Redhat Linux 6.2 with 2.2.16 kernel.
[__]
What version of bochs are you using?
[ ] compiled from version 2.1.1
[ ] compiled from version [_____]
[ ] I compiled it from the CVS sources from date: [__]
[ ] other source distribution from URL: [__]
[ ] binary distribution from URL: [__]
Please fill in the next few questions only if you compiled Bochs
yourself, as opposed to downloading a binary.
Did the configure script run ok, and detect your hardware and
operating system?
[ ] Yes
[ ] No, configure crashed.
[ ] No, configure ran ok but produced a bad configuration.
[ ] No, I cannot run configure on my platform (win32 and mac).
If you used configure, what arguments did you give it? If you used a
.conf.* script, give the name of the .conf script instead.
[__]
What compiler did you use? (Please include version.)
[__]
Did Bochs compile clean without any hacking?
[ ] Yes
[ ] No
If you had to make changes to compile, please summarize the problems you
had or include diffs.
[__]
End of compile-specific questions!
What guest operating system are you using inside bochs?
[__]
Are you booting from a floppy or hard disk?
[ ] floppy image
[ ] raw floppy drive
[ ] hard drive image
[ ] raw hard drive (is this even possible?)
[ ] other [__]
Did the guest operating system boot successfully?
[ ] Yes
[ ] No
If no, what error messages do you see on the console or in the log file?
[__]
What applications worked under this guest operating system?
[__]
What applications failed under this guest operating system? Did the
application function incorrectly, crash Bochs, or what? If you got a
panic, paste in the panic message that you received with some
description of what was happening at the time.
[__]
The remaining questions are about Bochs features that you may not have
used. If you tried out the feature, move the X to the "works" or
"fails" column.
Not Works
tested ok Fails Comments?
keyboard [ ] [ ] [ ] [__]
floppy disk [X] [ ] [ ] [__]
raw floppy disk [X] [ ] [ ] [__]
hard disk [X] [ ] [ ] [__]
floating point [X] [ ] [ ] [__]
mouse [X] [ ] [ ] [__]
cdrom [X] [ ] [ ] [__]
sb16 [X] [ ] [ ] [__]
ne2000 [X] [ ] [ ] [__]
i440FX pci [X] [ ] [ ] [__]
debugger [X] [ ] [ ] [__]
external loader [X] [ ] [ ] [__]
VGA [X] [ ] [ ] [__]
Thank you for your contribution in the Bochs testing effort! Please
mail completed forms to bochs-testing@tlw.com.

View File

@@ -0,0 +1,182 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>About the code</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Ideas for other sections"
HREF="other.html"><LINK
REL="NEXT"
TITLE="Directory Structure"
HREF="directory-structure.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="other.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="directory-structure.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="ABOUT-THE-CODE"
></A
>Chapter 2. About the code</H1
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CODE-OVERVIEW"
>2.1. Overview</A
></H1
><P
>The initial versions of some sections in this chapter are based on a document
written by Peter "Firefly" Lund. It was added and updated in January 2006.</P
><P
>The Bochs virtual PC consists of many pieces of hardware. At a bare minimum
there are always a CPU, a PIT (Programmable Interval Timer), a PIC
(Programmable Interrupt Controller), a DMA controller, some memory (this
includes both RAM and BIOS ROMs), a video card (usually VGA), a keyboard port
(also handles the mouse), an RTC with battery backed NVRAM, and some extra
motherboard circuitry.</P
><P
>There might also be a NE2K ethernet card, a PCI controller, a Sound Blaster 16,
an IDE controller (+ harddisks/CDROM), a SCSI controller (+ harddisks), a
floppy controller, an APIC ..</P
><P
>There may also be more than one CPU.</P
><P
>Most of these pieces of hardware have their own C++ class - and if Bochs is
configured to have more than one piece of a type of hardware, each will have
its own object.</P
><P
>The pieces of hardware communicates over a couple of buses with each other -
some of the things that the buses carry are reads and writes in memory space,
reads and writes in I/O space, interrupt requests, interrupt acknowledges, DMA
requests, DMA acknowledges, and NMI request/acknowledge. How that is simulated
is explained later.<IMG
SRC="../images/undercon.png"></P
><P
>Other important pieces of the puzzle are: the options object (reads/writes
configuration files, can be written to and queried while Bochs is running) and
the GUI object. There are many different but compatible implementations of the
GUI object, depending on whether you compile for X (Unix/Linux), Win32,
Macintosh (two versions: one for Mac OS X and one for older OS's), BeOS, Amiga,
etc.</P
><P
>And then there is the supporting cast: debugger, config menu, panic handler,
disassembler, tracer, instrumentation.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="other.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="directory-structure.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Ideas for other sections</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Directory Structure</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,176 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>How to add keymapping in a GUI client</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="Harddisk Images based on redologs"
HREF="harddisk-redologs.html"><LINK
REL="NEXT"
TITLE="Debugger"
HREF="debugger.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="harddisk-redologs.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="debugger.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="ADD-KEYMAPPING"
>2.10. How to add keymapping in a GUI client</A
></H1
><P
>Christophe Bothamy, wrote the keymapping code for Bochs, provided these
instructions to help developers to add keymapping to a GUI.</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Bochs creates a bx_keymap_c object named bx_keymap.
This object allows you to :
- load the configuration specified keymap file
- get the translated BX_KEY_* from your GUI key
You have to provide a translation function from string to your Bit32u key
constant. Casting will be necessary if your key constants are not Bit32u typed.
The function must be "static Bit32u (*)(const char *)" typed, and must return
BX_KEYMAP_UNKNOWN if it can not translate the parameter string.
What you have to do is :
- call once "void loadKeymap(Bit32u (*)(const char*))",
providing your translation function, to load the keymap
- call "Bit32u getBXKey(Bit32u)" that returns the BX_KEY_*
constant, for each key you want to map.
The file gui/x.cc implements this architecture, so you can refer to it
as an example.</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="harddisk-redologs.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Harddisk Images based on redologs</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Debugger</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,137 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>available tools</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="other content"
HREF="other-content.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="other-content.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AVAILABLE-TOOLS"
>5.6. available tools</A
></H1
><P
> <IMG
SRC="../images/undercon.png"> sources, tmp
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="other-content.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>other content</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,275 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs's CMOS map</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="timers"
HREF="timers.html"><LINK
REL="NEXT"
TITLE="Sound Blaster 16 Emulation"
HREF="sb16-emulation-basics.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="timers.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="sb16-emulation-basics.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CMOS-MAP"
>2.7. Bochs's CMOS map</A
></H1
><P
>In addition to the default CMOS RAM layout, the Bochs BIOS uses some additional
registers for harddisk parameters and the boot sequence. The following table
shows all CMOS registers and their meaning.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Legend:
S - set by the emulator (Bochs)
B - set by the bios
U - unused by the bios
LOC NOTES MEANING
0x00 S rtc seconds
0x01 B second alarm
0x02 S rtc minutes
0x03 B minute alarm
0x04 S rtc hours
0x05 B hour alarm
0x06 S,U day of week
0x07 S,B date of month
0x08 S,B month
0x09 S,B year
0x0a S,B status register A
0x0b S,B status register B
0x0c S status register C
0x0d S status register D
0x0f S shutdown status
values:
0x00: normal startup
0x09: normal
0x0d+: normal
0x05: eoi ?
else: unimpl
0x10 S fd drive type (2 nibbles: high=fd0, low=fd1)
values:
1: 360K 5.25"
2: 1.2MB 5.25"
3: 720K 3.5"
4: 1.44MB 3.5"
5: 2.88MB 3.5"
!0x11 configuration bits!!
0x12 S how many disks first (hd type)
!0x13 advanced configuration bits!!
0x14 S,U equipment byte (?)
bits where what
7-6 floppy.cc
5-4 vga.cc 0 = vga
2 keyboard.cc 1 = enabled
0 floppy.cc
0x15 S,U base memory - low
0x16 S,U base memory - high
0x17 S,U extended memory in k - low
0x18 S,U extended memory in k - high
0x19 S hd0: extended type
0x1a S hd1: extended type
0x1b S,U hd0:cylinders - low
0x1c S,U hd0:cylinders - high
0x1d S,U hd0:heads
0x1e S,U hd0:write pre-comp - low
0x1f S,U hd0:write pre-comp - high
0x20 S,U hd0:retries/bad_map/heads&#62;8
0x21 S,U hd0:landing zone - low
0x22 S,U hd0:landing zone - high
0x23 S,U hd0:sectors per track
0x24 S,U hd1:cylinders - low
0x25 S,U hd1:cylinders - high
0x26 S,U hd1:heads
0x27 S,U hd1:write pre-comp - low
0x28 S,U hd1:write pre-comp - high
0x29 S,U hd1:retries/bad_map/heads&#62;8
0x2a S,U hd1:landing zone - low
0x2b S,U hd1:landing zone - high
0x2c S,U hd1:sectors per track
0x2d S boot from (bit5: 0:fd, 1:hd)
0x2e S,U standard cmos checksum (0x10-&#62;0x2d) - high
0x2f S,U standard cmos checksum (0x10-&#62;0x2d) - low
0x30 S extended memory in k - low
0x31 S extended memory in k - high
0x32 S rtc century
0x34 S extended memory in 64k - low
0x35 S extended memory in 64k - high
0x37 S ps/2 rtc century (copy of 0x32, needed for winxp)
0x38 S eltorito boot sequence + boot signature check
bits
0 floppy boot signature check (1: disabled, 0: enabled)
7-4 boot drive #3 (0: unused, 1: fd, 2: hd, 3:cd, else: fd)
0x39 S ata translation policy - ata0 + ata1
bits
1-0 ata0-master (0: none, 1: LBA, 2: LARGE, 3: R-ECHS)
3-2 ata0-slave
5-4 ata1-master
7-6 ata1-slave
0x3a S ata translation policy - ata2 + ata3 (see above)
0x3d S eltorito boot sequence (see above)
bits
3-0 boot drive #1
7-4 boot drive #2</PRE
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="timers.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="sb16-emulation-basics.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>timers</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Sound Blaster 16 Emulation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,229 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Coding</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="I/O Interface to Bochs Debugger"
HREF="iodebug.html"><LINK
REL="NEXT"
TITLE="patches:"
HREF="patches.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="iodebug.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="patches.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="CODING"
></A
>Chapter 4. Coding</H1
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AEN1097"
>4.1. Coding guidelines</A
></H1
><P
><P
></P
><UL
><LI
><P
><B
CLASS="COMMAND"
>Don't make use of any external C++ classes.</B
></P
><P
>They are not offered on all platforms and this would make Bochs non-portable.
There is use of such classes in the optional debugger. I plan on removing this use.</P
></LI
><LI
><P
><B
CLASS="COMMAND"
>Don't use fancy C++ features.</B
></P
><P
>Bochs is incredibly performance sensitive, and will be increasingly so as
more speed enhancements are added. There's a time and place for most everything
and this is not it. Some advanced features create overhead in the generated code
that you don't see. They also convolute the code, and sometimes occlude that is
really going on.
<P
></P
><UL
><LI
><P
>Don't use templates</P
></LI
><LI
><P
>Don't use virtual functions if not strictly required</P
></LI
><LI
><P
>Don't use C++ exceptions</P
></LI
><LI
><P
>Don't use overloading of any kind</P
></LI
></UL
></P
></LI
><LI
><P
><B
CLASS="COMMAND"
>Use soft tabs.</B
></P
><P
>At least when you submit code, convert all hard tabs to spaces.
There is no uniform way to handle tabs properly.</P
></LI
><LI
><P
><B
CLASS="COMMAND"
>Please do compile with all warnings turned on.</B
></P
><P
>It's really difficult to spot interesting warnings when a compile is littered
with non-interesting ones.</P
></LI
><LI
><P
><B
CLASS="COMMAND"
>Don't use signed ints where unsigned will do.</B
></P
></LI
><LI
><P
><B
CLASS="COMMAND"
>Make sure that contributed code / patches are LGPL compatible.</B
></P
></LI
></UL
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="iodebug.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="patches.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>I/O Interface to Bochs Debugger</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>patches:</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Configure Scripting</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="Emulator Objects"
HREF="emulator-objects.html"><LINK
REL="NEXT"
TITLE="Log Functions"
HREF="logfunctions.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="emulator-objects.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="logfunctions.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CONFIGURE-SCRIPTING"
>2.4. Configure Scripting</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
configure script, makefiles, header files
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="emulator-objects.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="logfunctions.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Emulator Objects</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Log Functions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,506 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Building a Bochs release</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Coding"
HREF="coding.html"><LINK
REL="PREVIOUS"
TITLE="patches:"
HREF="patches.html"><LINK
REL="NEXT"
TITLE="Webmastering"
HREF="webmastering.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="patches.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Coding</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="webmastering.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CVS-RELEASE"
>4.3. Building a Bochs release</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1138"
>4.3.1. Preparing source files and CVS</A
></H2
><P
>Update version number and strings in configure.in.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>VERSION="2.2.pre2"
VER_STRING="2.2.pre2"
REL_STRING="Build from CVS snapshot on March 25, 2005"</PRE
></TD
></TR
></TABLE
>
In the README file you have to update version number and date. Add some
information about new features if necessary.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Bochs x86 Pentium+ Emulator
Updated: Fri Mar 25 10:33:15 CET 2005
Version: 2.2.pre2</PRE
></TD
></TR
></TABLE
>
Check date, update/sumup info in CHANGES. Run autoconf to regenerate configure and check them in.
Create a CVS tag to mark which revision of each file was used in the release.
For prereleases I make a normal CVS tag like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> cvs tag REL_2_2_pre2_FINAL</PRE
></TD
></TR
></TABLE
>
But for a real release, I make a CVS branch tag AND a normal tag.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> cvs tag REL_2_2_BASE
cvs tag -b REL_2_2</PRE
></TD
></TR
></TABLE
>
The base tag marks where the branch split off of the main trunk.
This is very useful in maintaining the branch since you can do diffs
against it.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> cvs diff -r REL_2_2_BASE -r HEAD
cvs diff -r REL_2_2_BASE -r REL_2_0
cvs upd -j REL_2_2_BASE -j HEAD file
etc.</PRE
></TD
></TR
></TABLE
>
The release and all bugfix releases after it are on the REL_2_2 branch.
When the release is actually finalized, you can do this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> cvs tag REL_2_2_FINAL</PRE
></TD
></TR
></TABLE
>
Now you can start building packages based on the created release tag.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1147"
>4.3.2. Building the release on win32</A
></H2
><P
>These instructions require cygwin and MSVC++.</P
><P
>In Cygwin:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> sh .conf.win32-vcpp # runs configure
make win32_snap # unzip workspace, make a win32 source ZIP</PRE
></TD
></TR
></TABLE
>
Copy the source ZIP to a windows machine, if necessary.</P
><P
>Open up Visual C++ and load the workspace file Bochs.dsw. Check
the Build:Set Active Project Configuration is set the way you want it.
For releases I use "Win32 Release".</P
><P
>To create "bochsdbg.exe" with Bochs debugger support, manually change two
lines in config.h to turn on the debugger.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>#define BX_DEBUGGER 1
#define BX_DISASM 1</PRE
></TD
></TR
></TABLE
>
VC++ will rebuild Bochs with debugger and overwrite bochs.exe. To avoid
trashing the non-debug version, move it out of the way while the debugger
version is being built. Then rename the debugger version to bochsdbg.exe.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>cd obj-release
mv bochs.exe bochs-normal.exe
(build again with BX_DEBUGGER=1 this time)
mv bochs.exe bochsdbg.exe
mv bochs-normal.exe bochs.exe</PRE
></TD
></TR
></TABLE
></P
><P
>To get the docbook installed, you need to do something like this:
<P
></P
><UL
><LI
><P
> make dl_docbook </P
></LI
><LI
><P
> copy up to date doc files </P
></LI
></UL
>
Then you can do
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>cd doc/docbook; touch */*.html</PRE
></TD
></TR
></TABLE
>
Do make install_win32 into /tmp or someplace:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>make install_win32 prefix=/tmp/bochs-2.2.pre2</PRE
></TD
></TR
></TABLE
>
This copies all the files into /tmp/bochs-2.2.pre2 and then creates a
binary ZIP at /tmp/bochs-2.2.pre2.zip. Rename that bochs-2.2.pre2.win32-bin.zip.</P
><P
>Now make the NSIS installer package (the current script is known to work with NSIS 2.03)
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>cd build/win32/nsis</PRE
></TD
></TR
></TABLE
>
Unzip the binary ZIP file into bochs-$VERSION (must match Makefile) and
then run make.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>unzip ~/bochs-2.2.pre2.zip
make</PRE
></TD
></TR
></TABLE
>
That gives an installer called <TT
CLASS="FILENAME"
>Bochs-2.2.pre2.exe</TT
>. Test and upload it.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1168"
>4.3.3. Building the release on Linux</A
></H2
><P
>Do a clean checkout using anonymous cvs, so that the source tarball
will be all set up for anonymous cvs. First I'll create a clean
directory called "clean-anon".
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>cvs -d:pserver:anonymous@bochs.cvs.sourceforge.net:/cvsroot/bochs login
cvs -z3 -d:pserver:anonymous@bochs.cvs.sourceforge.net:/cvsroot/bochs \
checkout -d clean-anon bochs</PRE
></TD
></TR
></TABLE
>
Start with clean-anon which tracks the CVS head. Change its sticky tag
so that it sticks to the release tag.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>cp -a clean-anon bochs-2.2.pre2
cd bochs-2.2.pre2
cvs upd -P -r REL_2_2_pre2_FINAL
cd ..
tar czvf bochs-2.2.pre2.tar.gz --exclude CVS --exclude .cvsignore bochs-2.2.pre2</PRE
></TD
></TR
></TABLE
>
The source TAR file bochs-2.2.pre2.tar.gz is ready to upload.</P
><P
>The RPM will be building using the configuration in .conf.linux with
a few parameters from build/redhat/make-rpm. Make any last minute changes
to .conf.linux. Any changes will go into the source RPM.
WARNING : do not build in /tmp/bochs-XXX...
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>./build/redhat/make-rpm | tee ../build.txt</PRE
></TD
></TR
></TABLE
>
This produces two rpm files in the current directory. Test and upload.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1175"
>4.3.4. Uploading files and creating a file release on SF</A
></H2
><P
>When you are ready with creating release packages you have to upload them to SF
using anonymous FTP using this location:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>upload.sourceforge.net/incoming</PRE
></TD
></TR
></TABLE
>
Note that you cannot modify or delete files after uploading them. If you don't do
anything with the uploaded files, they will be deleted by SF after 24 hours.</P
><P
>To create or edit a file release you have to log in to the <B
CLASS="COMMAND"
>Admin</B
>
section on the SF project page of Bochs. Then you have to go to the
<B
CLASS="COMMAND"
>File Releases</B
> page and follow the instructions there.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="patches.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>patches:</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Webmastering</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,349 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Advanced debugger usage</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="How to add keymapping in a GUI client"
HREF="add-keymapping.html"><LINK
REL="NEXT"
TITLE="The instrumentation feature"
HREF="instrumentation.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="add-keymapping.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="instrumentation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEBUGGER-ADVANCED"
></A
>Chapter 3. Advanced debugger usage</H1
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="IODEBUG"
>3.1. I/O Interface to Bochs Debugger</A
></H1
><P
>This device was added by Dave Poirier (eks@void-core.2y.net).</P
><P
>Compiling Bochs with iodebug support
<PRE
CLASS="SCREEN"
>./configure --enable-iodebug
make</PRE
>
Other optional fields may be added to the ./configure line, see Bochs
documentation for all the information. To enable the iodebug plugin at runtime,
it must be loaded with the 'plugin_ctrl' bochsrc option.</P
><P
><PRE
CLASS="SCREEN"
>Using the I/O Interface to the debugger
port range: 0x8A00 - 0x8A01
Port 0x8A00 servers as command register. You can use it to enable the i/o interface,
change which data register is active, etc.
Port 0x8A01 is used as data register for the memory monitoring.</PRE
></P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1458"
>3.1.1. Commands supported by port 0x8A00</A
></H2
><P
><PRE
CLASS="SCREEN"
>&#13;0x8A00
Used to enable the device. Any I/O to the debug module before this command is sent
is sent will simply be ignored.
0x8A01
Selects register 0: Memory monitoring range start address (inclusive)
0x8A02
Selects register 1: Memory monitoring range end address (exclusive)
0x8A80
Enable address range memory monitoring as indicated by register 0 and 1 and
clears both registers
0x8AE0 - Return to Debugger Prompt
If the debugger is enabled (via --enable-debugger), sending 0x8AE0 to port 0x8A00
after the device has been enabled will return the Bochs to the debugger prompt.
Basically the same as doing CTRL+C.
0x8AE2 - Instruction Trace Disable
If the debugger is enabled (via --enable-debugger), sending 0x8AE2 to port 0x8A00
after the device has been enabled will disable instruction tracing
0x8AE3 - Instruction Trace Enable
If the debugger is enabled (via --enable-debugger), sending 0x8AE3 to port 0x8A00
after the device has been enabled will enable instruction tracing
0x8AE4 - Register Trace Disable
If the debugger is enabled (via --enable-debugger), sending 0x8AE4 to port 0x8A00
after the device has been enabled will disable register tracing.
0x8AE5 - Register Trace Enable
If the debugger is enabled (via --enable-debugger), sending 0x8AE5 to port 0x8A00
after the device has been enabled will enable register tracing. This currently
output the value of all the registers for each instruction traced.
Note: instruction tracing must be enabled to view the register tracing
0x8AFF
Disable the I/O interface to the debugger and the memory monitoring functions.</PRE
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>all accesses must be done using word</P
></BLOCKQUOTE
></DIV
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>reading this register will return 0x8A00 if currently activated, otherwise 0</P
></BLOCKQUOTE
></DIV
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1466"
>3.1.2. Access to port 0x8A01 (write-only)</A
></H2
><P
>All accesses to this port must be done using words. Writing to this port will shift
to the left by 16 the current value of the register and add the provided value to it.
<PRE
CLASS="SCREEN"
>Sample:
reg0 = 0x01234567
out port: 0x8A01 data: 0xABCD
reg0 = 0x4567ABCD</PRE
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1470"
>3.1.3. Sample</A
></H2
><P
>Enable memory monitoring on first page of text screen (0xb8000-0xb8fa0):
add in bochrc file: <B
CLASS="COMMAND"
>optromimage1: file=&quot;asmio.rom&quot;, address=0xd0000</B
>
<PRE
CLASS="SCREEN"
>/*
* Make asmio ROM file:
* gcc -c asmio.S
* objcopy -O binary asmio.o asmio.rom
*/
.text
.global start
.code16
/* ROM Header */
.byte 0x55
.byte 0xAA
.byte 1 /* 512 bytes long */
start:
/* Monitor memory access on first page of text screen */
mov $0x8A00,%dx /* Enable iodebug (0x8A00-&#62;0x8A00) */
mov %dx,%ax
out %ax,%dx
mov $0x8A01,%ax /* Select register 0 start addr (0x8A01-&#62;0x8A00) */
out %ax,%dx
mov $0x8A01,%dx /* Write start addr 0xB8000 (high word first) */
mov $0xB,%ax
out %ax,%dx
mov $0x8000,%ax /* Write start addr (low word) */
out %ax,%dx
mov $0x8A02,%ax /* Select register 1 end addr (0x8A02-&#62;0x8A00) */
mov $0x8A00,%dx
out %ax,%dx
mov $0x8A01,%dx /* Write end addr 0xB8FA0 (high word first) */
mov $0xB,%ax
out %ax,%dx
mov $0x8FA0,%ax /* Write end addr (low word) */
out %ax,%dx
mov $0x8A00,%dx /* Enable addr range memory monitoring (0x8A80-&#62;0x8A00) */
mov $0x8A80,%ax
out %ax,%dx
mov $0x8A00,%dx /* Return to Bochs Debugger Prompt (0x8AE0-&#62;0x8A00) */
mov $0x8AE0,%ax
out %ax,%dx
lret
.byte 0x6b /* Checksum (code dependent!, update it as needed) */
.align 512 /* NOP follow */</PRE
></P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="add-keymapping.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="instrumentation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>How to add keymapping in a GUI client</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The instrumentation feature</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>command reference</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Debugger"
HREF="debugger.html"><LINK
REL="PREVIOUS"
TITLE="get started in debugger"
HREF="debugger-get-started.html"><LINK
REL="NEXT"
TITLE="techniques"
HREF="debugger-techniques.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="debugger-get-started.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Debugger</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="debugger-techniques.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DEBUGGER-COMMANDS"
>3.3. command reference</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="debugger-get-started.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="debugger-techniques.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>get started in debugger</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>techniques</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>get started in debugger</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Debugger"
HREF="debugger.html"><LINK
REL="PREVIOUS"
TITLE="Debugger"
HREF="debugger.html"><LINK
REL="NEXT"
TITLE="command reference"
HREF="debugger-commands.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="debugger.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Debugger</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="debugger-commands.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DEBUGGER-GET-STARTED"
>3.2. get started in debugger</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="debugger-commands.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Debugger</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>command reference</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,147 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs debugger internals</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Advanced debugger usage"
HREF="debugger-advanced.html"><LINK
REL="PREVIOUS"
TITLE="The instrumentation feature"
HREF="instrumentation.html"><LINK
REL="NEXT"
TITLE="Coding"
HREF="coding.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="instrumentation.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Advanced debugger usage</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="coding.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DEBUGGER-INTERNALS"
>3.3. Bochs debugger internals</A
></H1
><P
><IMG
SRC="../images/undercon.png"> Not written yet (take stuff from bxdebugger.html).</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="instrumentation.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The instrumentation feature</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger-advanced.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Coding</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>techniques</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Debugger"
HREF="debugger.html"><LINK
REL="PREVIOUS"
TITLE="command reference"
HREF="debugger-commands.html"><LINK
REL="NEXT"
TITLE="I/O Interface to Bochs Debugger"
HREF="iodebug.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="debugger-commands.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Debugger</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="iodebug.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DEBUGGER-TECHNIQUES"
>3.4. techniques</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="debugger-commands.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="iodebug.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>command reference</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>I/O Interface to Bochs Debugger</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Debugger</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="How to add keymapping in a GUI client"
HREF="add-keymapping.html"><LINK
REL="NEXT"
TITLE="get started in debugger"
HREF="debugger-get-started.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="add-keymapping.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="debugger-get-started.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="DEBUGGER"
></A
>Chapter 3. Debugger</H1
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AEN1055"
>3.1. compile with debugger support</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="add-keymapping.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="debugger-get-started.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>How to add keymapping in a GUI client</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>get started in debugger</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,302 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Directory Structure</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="NEXT"
TITLE="Emulator Objects"
HREF="emulator-objects.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="about-the-code.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="emulator-objects.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DIRECTORY-STRUCTURE"
>2.2. Directory Structure</A
></H1
><P
><DIV
CLASS="TABLE"
><A
NAME="AEN99"
></A
><P
><B
>Table 2-1. Directory structure</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Location</TH
><TH
>Meaning</TH
></TR
></THEAD
><TBODY
><TR
><TD
>bios</TD
><TD
>System and VGA BIOS images, system BIOS sources and makefile</TD
></TR
><TR
><TD
>build</TD
><TD
>additional stuff required for building Bochs on different platforms</TD
></TR
><TR
><TD
>bx_debug</TD
><TD
>the builtin Bochs debugger</TD
></TR
><TR
><TD
>cpu</TD
><TD
>the cpu emulation sources</TD
></TR
><TR
><TD
>disasm</TD
><TD
>the disassembler for the Bochs debugger</TD
></TR
><TR
><TD
>doc/docbook</TD
><TD
>the Bochs documentation in DocBook format</TD
></TR
><TR
><TD
>doc/man</TD
><TD
>Bochs manual pages</TD
></TR
><TR
><TD
>docs-html</TD
><TD
>old Bochs documentation in HTML (will be replaced by DocBook)</TD
></TR
><TR
><TD
>dynamic</TD
><TD
>empty directory (reserved for dynamic translation code)</TD
></TR
><TR
><TD
>font</TD
><TD
>the default VGA font used by most of the display libraries</TD
></TR
><TR
><TD
>fpu</TD
><TD
>the fpu emulation sources</TD
></TR
><TR
><TD
>gui</TD
><TD
>display libraries (guis), the simulator interface and text mode config interface</TD
></TR
><TR
><TD
>gui/bitmaps</TD
><TD
>bitmaps for the headerbar</TD
></TR
><TR
><TD
>gui/keymaps</TD
><TD
>keymaps for the keyboard mapping feature</TD
></TR
><TR
><TD
>host</TD
><TD
>host specific drivers (currently only used by the pcidev kernel module for Linux)</TD
></TR
><TR
><TD
>instrument</TD
><TD
>directory tree for the instrumentation feature</TD
></TR
><TR
><TD
>iodev</TD
><TD
>standard PC devices, PCI devices, lowlevel networking and sound drivers</TD
></TR
><TR
><TD
>memory</TD
><TD
>memory management and ROM loader</TD
></TR
><TR
><TD
>misc</TD
><TD
>useful utilities (e.g. bximage, bxcommit, niclist)</TD
></TR
><TR
><TD
>misc/sb16</TD
><TD
>tool to control the SB16 emulation from the guest side</TD
></TR
><TR
><TD
>patches</TD
><TD
>pending patches</TD
></TR
><TR
><TD
>plex86</TD
><TD
>plex86 directory structure (possibly outdated)</TD
></TR
></TBODY
></TABLE
></DIV
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="emulator-objects.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>About the code</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Emulator Objects</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,498 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Emulator Objects</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="Directory Structure"
HREF="directory-structure.html"><LINK
REL="NEXT"
TITLE="Configure Scripting"
HREF="configure-scripting.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="directory-structure.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="configure-scripting.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="EMULATOR-OBJECTS"
>2.3. Emulator Objects</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN175"
>2.3.1. Weird macros and other mysteries</A
></H2
><P
>Bochs has many macros with inscrutable names. One might even go as far as to
say that Bochs is macro infested.
Some of them are gross speed hacks, to cover up the slow speed that C++ causes.
Others paper over differences between the simulated PC configurations.
Many of the macros exhibit the same problem as C++ does: too much stuff happens
behind the programmer's back. More explicitness would be a big win.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="STATIC-METHODS-HACK"
>2.3.2. Static methods hack</A
></H2
><P
>C++ methods have an invisible parameter called the this pointer - otherwise the
method wouldn't know which object to operate on. In many cases in Bochs, there
will only ever be one object - so this flexibility is unnecessary. There is a
hack that can be enabled by #defining BX_USE_CPU_SMF to 1 in <TT
CLASS="FILENAME"
>config.h</TT
> that makes most methods static, which means they have a "special
relationship" with the class they are declared in but apart from that are
normal C functions with no hidden parameters. Of course they still need access
to the internals of an object, so the single object of their class has a globally
visible name that these functions use. It is all hidden with macros.</P
><P
>Declaration of a class, from iodev/pic.h:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>...
#if BX_USE_PIC_SMF
# define BX_PIC_SMF static
# define BX_PIC_THIS thePic-&#62;
#else
# define BX_PIC_SMF
# define BX_PIC_THIS this-&#62;
#endif
...
class bx_pic_c : public bx_pic_stub_c {
public:
bx_pic_c(void);
~bx_pic_c(void);
...
BX_PIC_SMF void service_master_pic(void);
BX_PIC_SMF void service_slave_pic(void);
BX_PIC_SMF void clear_highest_interrupt(bx_pic_t *pic);
};</PRE
></TD
></TR
></TABLE
><P
>And iodev/pic.cc:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>...
#define LOG_THIS thePic-&#62;
...
bx_pic_c *thePic = NULL;
...
void
bx_pic_c::service_master_pic(void)
{
Bit8u unmasked_requests;
int irq;
Bit8u isr, max_irq;
Bit8u highest_priority = BX_PIC_THIS s.master_pic.lowest_priority + 1;
if(highest_priority &#62; 7)
highest_priority = 0;
if (BX_PIC_THIS s.master_pic.INT) { /* last interrupt still not acknowleged */
return;
}
if (BX_PIC_THIS s.master_pic.special_mask) {
/* all priorities may be enabled. check all IRR bits except ones
* which have corresponding ISR bits set
*/
max_irq = highest_priority;
}
else { /* normal mode */
/* Find the highest priority IRQ that is enabled due to current ISR */
isr = BX_PIC_THIS s.master_pic.isr;
...
}
...</PRE
></TD
></TR
></TABLE
><P
>Ugly, isn't it? If we use static methods, methods prefixed with BX_PIC_SMF are
declared static and references to fields inside the object, which are prefixed
with BX_PIC_THIS, will use the globally visible object, thePic-&#62;. If we don't
use static methods, BX_PIC_SMF evaluates to nothing and BX_PIC_THIS becomes this-&#62;.
Making it evaluate to nothing would be a lot cleaner, but then the scoping rules
would change slightly between the two Bochs configurations, which would be a load
of bugs just waiting to happen. Some classes use BX_SMF, others have their own
version of the macro, like BX_PIC_SMF above.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="CPU-MEM-OBJECTS"
>2.3.3. CPU und memory objects in UP/SMP configurations</A
></H2
><P
>The CPU class is a special case of the above: if Bochs is simulating a uni-
processor machine then there is obviously only one bx_cpu_c object and the
static methods trick can be used. If, on the other hand, Bochs is simulating an
smp machine then we can't use the trick. The same seems to be true for memory:
for some reason, we have a memory object for each CPU object. This might become
relevant for NUMA machines, but they are not all that common -- and even the
existing IA-32 NUMA machines bend over backwards to hide that fact: it should
only be visible in slightly worse timing for non-local memory and non-local
peripherals. Other than that, the memory map and device map presented to each
CPU will be identical.</P
><P
>In a UP configuration, the CPU object is declared as bx_cpu. In an SMP
configuration it will be an array of pointers to CPU objects (bx_cpu_array[]).
For memory that would be bx_mem and bx_mem_array[], respectively.
Each CPU object contains a pointer to its associated memory object.
Access of a CPU object often goes through the BX_CPU(x) macro, which either
ignores the parameter and evaluates to &amp;bx_cpu, or evaluates to bx_cpu_array
[n], so the result will always be a pointer. The same goes for BX_MEM(x).
If static methods are used then BX_CPU_THIS_PTR evaluates to BX_CPU(0)-&#62;. Ugly,
isn't it?</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="CONFIG-PARAMETER-TREE"
>2.3.4. The configuration parameter tree</A
></H2
><P
>Starting with version 1.3, the Bochs configuration parameters are stored in parameter
objects. These objects have get/set methods with min/max checks and it is possible
to define parameter handlers to perform side effects and to override settings.
Each parameter type has it's own object type with specific features (numeric,
boolean, enum, string and file name). A special object type containing a list of
parameters is designed for building and managing configuration menus or dialogs
automatically. In the original implementation the parameters could be accessed
only with their unique id from a static list or a special structure containing
pointers to all parameters.</P
><P
>Starting with version 2.3, the Bochs parameter object handling has been rewritten
to a parameter tree. There is now a root list containing child lists, and these
lists can contain lists or parameters and so on. The parameters are now accessed
by a name build from all the list names in the path and finally the parameter
name separated by periods.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Bit32u megs = SIM-&#62;get_param_num("memory.standard.ram.size")-&#62;get();</PRE
></TD
></TR
></TABLE
></P
><P
>The example above shows how to get the memory size in megabytes from the simulator
interface. In the root list (".") there is child list named "memory" containing
a child list "standard". It's child list "ram" contains the numeric parameter type
"size". The SIM-&#62;get_param_num() methods returns the object pointer and the get()
method returns the parameter value.</P
><P
>The table below shows all parameter types used by the Bochs configuration interface.
<DIV
CLASS="TABLE"
><A
NAME="AEN198"
></A
><P
><B
>Table 2-2. Parameter types</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Type</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>bx_object_c</TD
><TD
>Base class for all the other parameter types. It contains the unique parameter id and the object type value.</TD
></TR
><TR
><TD
>bx_param_c</TD
><TD
>Generic parameter class. It contains the name, label, description and the input/output formats.</TD
></TR
><TR
><TD
>bx_param_num_c</TD
><TD
>Numerical (decimal/hex) config settings are stored in this parameter type.</TD
></TR
><TR
><TD
>bx_param_bool_c</TD
><TD
>This parameter type is based on bx_param_num_c, but it is designed for boolean values. A dependency
list can be defined to enable/disable other parameters depending on the value change.</TD
></TR
><TR
><TD
>bx_param_enum_c</TD
><TD
>Based on bx_param_num_c this parameter type contains a list of valid values.</TD
></TR
><TR
><TD
>bx_param_string_c</TD
><TD
>Configuration strings are stored in this type of parameter.</TD
></TR
><TR
><TD
>bx_param_filename_c</TD
><TD
>Based on bx_param_string_c this parameter type is used for file names.</TD
></TR
><TR
><TD
>bx_list_c</TD
><TD
>Contains a list of pointers to parameters (bx_param_*_c and bx_list_c).
In the config interface it is used for menus/dialogs.</TD
></TR
></TBODY
></TABLE
></DIV
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="SAVE-RESTORE"
>2.3.5. The save/restore feature</A
></H2
><P
>The save/restore feature is based on an extension to the parameter tree concept.
A subtree (list) called "bochs" appears in the root of the parameter tree
and some new "shadow" parameter types store pointers to values instead of the values
itself. All the hardware objects have register_state() methods to register pointers
to the device registers and switches that need to be saved. The simulator interface
saves the registered data in text format to the specified folder (usually one file
per item in the save/restore list). Large binary arrays are registered with a
special parameter type, so they are saved as separate files.</P
><P
>The table below shows the additional parameter types for save/restore.
<DIV
CLASS="TABLE"
><A
NAME="AEN234"
></A
><P
><B
>Table 2-3. Save/restore parameter types</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Type</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>bx_shadow_num_c</TD
><TD
>Based on bx_param_num_c this type stores a pointer to a numerical variable.</TD
></TR
><TR
><TD
>bx_shadow_bool_c</TD
><TD
>This parameter type stores a pointer to a boolean variable.</TD
></TR
><TR
><TD
>bx_shadow_data_c</TD
><TD
>This special parameter type stores pointer size of a binary array.</TD
></TR
></TBODY
></TABLE
></DIV
>
It is also possible to use the bx_param_num_c object with parameter save/restore
handlers. With this special way several device settings can be save to and restored
from one single parameter.</P
><P
>All devices can uses these two save/restore specific methods:
<P
></P
><UL
><LI
><P
>register_state() is called after the device init() to register the device members for save/restore</P
></LI
><LI
><P
>after_restore_state() is an optional method to do things directly after restore</P
></LI
></UL
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="directory-structure.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="configure-scripting.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Directory Structure</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Configure Scripting</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,612 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs Developers Guide</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="NEXT"
TITLE="Resources for developers"
HREF="resources.html"></HEAD
><BODY
CLASS="BOOK"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="BOOK"
><A
NAME="AEN1"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>Bochs Developers Guide</A
></H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
></A
>Kevin Lawton</H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN8"
></A
>Bryce Denney</H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN11"
></A
>Christophe Bothamy</H3
><H4
CLASS="EDITEDBY"
>Edited by</H4
><H3
CLASS="EDITOR"
>Michael Calabrese</H3
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="resources.html"
>Resources for developers</A
></DT
><DD
><DL
><DT
>1.1. <A
HREF="resources.html#AEN20"
>Setting up CVS write access</A
></DT
><DD
><DL
><DT
>1.1.1. <A
HREF="resources.html#AEN23"
>Install ssh and cvs</A
></DT
><DT
>1.1.2. <A
HREF="resources.html#AEN36"
>ssh to cvs.sf.net</A
></DT
><DT
>1.1.3. <A
HREF="resources.html#AEN44"
>Set CVS_RSH environment variable to ssh</A
></DT
><DT
>1.1.4. <A
HREF="resources.html#AEN48"
>cvs checkout</A
></DT
></DL
></DD
><DT
>1.2. <A
HREF="using-cvs-write-access.html"
>Using CVS write access</A
></DT
><DD
><DL
><DT
>1.2.1. <A
HREF="using-cvs-write-access.html#AEN59"
>Checking in files</A
></DT
></DL
></DD
><DT
>1.3. <A
HREF="trackers.html"
>SourceForge bug, feature, and patch trackers</A
></DT
><DT
>1.4. <A
HREF="other.html"
>Ideas for other sections</A
></DT
></DL
></DD
><DT
>2. <A
HREF="about-the-code.html"
>About the code</A
></DT
><DD
><DL
><DT
>2.1. <A
HREF="about-the-code.html#CODE-OVERVIEW"
>Overview</A
></DT
><DT
>2.2. <A
HREF="directory-structure.html"
>Directory Structure</A
></DT
><DT
>2.3. <A
HREF="emulator-objects.html"
>Emulator Objects</A
></DT
><DD
><DL
><DT
>2.3.1. <A
HREF="emulator-objects.html#AEN175"
>Weird macros and other mysteries</A
></DT
><DT
>2.3.2. <A
HREF="emulator-objects.html#STATIC-METHODS-HACK"
>Static methods hack</A
></DT
><DT
>2.3.3. <A
HREF="emulator-objects.html#CPU-MEM-OBJECTS"
>CPU und memory objects in UP/SMP configurations</A
></DT
><DT
>2.3.4. <A
HREF="emulator-objects.html#CONFIG-PARAMETER-TREE"
>The configuration parameter tree</A
></DT
><DT
>2.3.5. <A
HREF="emulator-objects.html#SAVE-RESTORE"
>The save/restore feature</A
></DT
></DL
></DD
><DT
>2.4. <A
HREF="configure-scripting.html"
>Configure Scripting</A
></DT
><DT
>2.5. <A
HREF="logfunctions.html"
>Log Functions</A
></DT
><DT
>2.6. <A
HREF="timers.html"
>timers</A
></DT
><DT
>2.7. <A
HREF="cmos-map.html"
>Bochs's CMOS map</A
></DT
><DT
>2.8. <A
HREF="sb16-emulation-basics.html"
>Sound Blaster 16 Emulation</A
></DT
><DD
><DL
><DT
>2.8.1. <A
HREF="sb16-emulation-basics.html#AEN283"
>How well does it work?</A
></DT
><DT
>2.8.2. <A
HREF="sb16-emulation-basics.html#AEN288"
>Output to a sound card</A
></DT
><DT
>2.8.3. <A
HREF="sb16-emulation-basics.html#AEN291"
>Installation on Linux</A
></DT
><DT
>2.8.4. <A
HREF="sb16-emulation-basics.html#AEN296"
>Configuring Bochs</A
></DT
><DT
>2.8.5. <A
HREF="sb16-emulation-basics.html#AEN304"
>Runtime configuration</A
></DT
><DT
>2.8.6. <A
HREF="sb16-emulation-basics.html#AEN309"
>Features planned for the future</A
></DT
><DT
>2.8.7. <A
HREF="sb16-emulation-basics.html#AEN316"
>Description of the sound output classes</A
></DT
><DT
>2.8.8. <A
HREF="sb16-emulation-basics.html#AEN322"
>Files</A
></DT
><DT
>2.8.9. <A
HREF="sb16-emulation-basics.html#AEN332"
>Classes</A
></DT
><DT
>2.8.10. <A
HREF="sb16-emulation-basics.html#AEN349"
>Methods</A
></DT
><DT
>2.8.11. <A
HREF="sb16-emulation-basics.html#AEN356"
>bx_sound_OS_c(bx_sb16_c*sb16)</A
></DT
><DT
>2.8.12. <A
HREF="sb16-emulation-basics.html#AEN370"
>~bx_sound_OS_c()</A
></DT
><DT
>2.8.13. <A
HREF="sb16-emulation-basics.html#AEN373"
>int openmidioutput(char *device)</A
></DT
><DT
>2.8.14. <A
HREF="sb16-emulation-basics.html#AEN385"
>Description of the parameters:</A
></DT
><DT
>2.8.15. <A
HREF="sb16-emulation-basics.html#AEN395"
>int midiready()</A
></DT
><DT
>2.8.16. <A
HREF="sb16-emulation-basics.html#AEN411"
>int sendmidicommand(int delta, int command, int length, Bit8u data[])</A
></DT
><DT
>2.8.17. <A
HREF="sb16-emulation-basics.html#AEN433"
>int closemidioutput()</A
></DT
><DT
>2.8.18. <A
HREF="sb16-emulation-basics.html#AEN445"
>int openwaveoutput(char *device)</A
></DT
><DT
>2.8.19. <A
HREF="sb16-emulation-basics.html#AEN479"
>int startwaveplayback(int frequency, int bits, int stereo, int format)</A
></DT
><DT
>2.8.20. <A
HREF="sb16-emulation-basics.html#AEN552"
>int waveready()</A
></DT
><DT
>2.8.21. <A
HREF="sb16-emulation-basics.html#AEN562"
>int sendwavepacket(int length, Bit8u data[])</A
></DT
><DT
>2.8.22. <A
HREF="sb16-emulation-basics.html#AEN606"
>int stopwaveplayback()</A
></DT
><DT
>2.8.23. <A
HREF="sb16-emulation-basics.html#AEN613"
>int closewaveoutput()</A
></DT
></DL
></DD
><DT
>2.9. <A
HREF="harddisk-redologs.html"
>Harddisk Images based on redologs</A
></DT
><DD
><DL
><DT
>2.9.1. <A
HREF="harddisk-redologs.html#AEN635"
>Description</A
></DT
><DT
>2.9.2. <A
HREF="harddisk-redologs.html#AEN644"
>How redologs works ?</A
></DT
><DT
>2.9.3. <A
HREF="harddisk-redologs.html#AEN737"
>Parameters</A
></DT
><DT
>2.9.4. <A
HREF="harddisk-redologs.html#AEN901"
>Redolog class description</A
></DT
><DT
>2.9.5. <A
HREF="harddisk-redologs.html#AEN953"
>Disk image classes description</A
></DT
></DL
></DD
><DT
>2.10. <A
HREF="add-keymapping.html"
>How to add keymapping in a GUI client</A
></DT
></DL
></DD
><DT
>3. <A
HREF="debugger.html"
>Debugger</A
></DT
><DD
><DL
><DT
>3.1. <A
HREF="debugger.html#AEN1055"
>compile with debugger support</A
></DT
><DT
>3.2. <A
HREF="debugger-get-started.html"
>get started in debugger</A
></DT
><DT
>3.3. <A
HREF="debugger-commands.html"
>command reference</A
></DT
><DT
>3.4. <A
HREF="debugger-techniques.html"
>techniques</A
></DT
><DT
>3.5. <A
HREF="iodebug.html"
>I/O Interface to Bochs Debugger</A
></DT
><DD
><DL
><DT
>3.5.1. <A
HREF="iodebug.html#AEN1078"
>Commands supported by port 0x8A00</A
></DT
><DT
>3.5.2. <A
HREF="iodebug.html#AEN1086"
>Access to port 0x8A01 (write-only)</A
></DT
><DT
>3.5.3. <A
HREF="iodebug.html#AEN1090"
>Sample</A
></DT
></DL
></DD
></DL
></DD
><DT
>4. <A
HREF="coding.html"
>Coding</A
></DT
><DD
><DL
><DT
>4.1. <A
HREF="coding.html#AEN1097"
>Coding guidelines</A
></DT
><DT
>4.2. <A
HREF="patches.html"
>patches:</A
></DT
><DT
>4.3. <A
HREF="cvs-release.html"
>Building a Bochs release</A
></DT
><DD
><DL
><DT
>4.3.1. <A
HREF="cvs-release.html#AEN1138"
>Preparing source files and CVS</A
></DT
><DT
>4.3.2. <A
HREF="cvs-release.html#AEN1147"
>Building the release on win32</A
></DT
><DT
>4.3.3. <A
HREF="cvs-release.html#AEN1168"
>Building the release on Linux</A
></DT
><DT
>4.3.4. <A
HREF="cvs-release.html#AEN1175"
>Uploading files and creating a file release on SF</A
></DT
></DL
></DD
></DL
></DD
><DT
>5. <A
HREF="webmastering.html"
>Webmastering</A
></DT
><DD
><DL
><DT
>5.1. <A
HREF="webmastering.html#WEBSITES"
>websites</A
></DT
><DT
>5.2. <A
HREF="shell-access.html"
>shell access to the website</A
></DT
><DT
>5.3. <A
HREF="repository.html"
>website html repository</A
></DT
><DT
>5.4. <A
HREF="site-update.html"
>automatic site update</A
></DT
><DT
>5.5. <A
HREF="other-content.html"
>other content</A
></DT
><DT
>5.6. <A
HREF="available-tools.html"
>available tools</A
></DT
></DL
></DD
></DL
></DIV
><DIV
CLASS="LOT"
><DL
CLASS="LOT"
><DT
><B
>List of Tables</B
></DT
><DT
>2-1. <A
HREF="directory-structure.html#AEN99"
>Directory structure</A
></DT
><DT
>2-2. <A
HREF="emulator-objects.html#AEN198"
>Parameter types</A
></DT
><DT
>2-3. <A
HREF="emulator-objects.html#AEN234"
>Save/restore parameter types</A
></DT
><DT
>2-4. <A
HREF="sb16-emulation-basics.html#AEN503"
>format bits</A
></DT
><DT
>2-5. <A
HREF="sb16-emulation-basics.html#AEN527"
>codecs</A
></DT
><DT
>2-6. <A
HREF="sb16-emulation-basics.html#AEN585"
>wave output types</A
></DT
><DT
>2-7. <A
HREF="harddisk-redologs.html#AEN658"
>Generic header description</A
></DT
><DT
>2-8. <A
HREF="harddisk-redologs.html#AEN699"
>Redolog specific header description</A
></DT
><DT
>2-9. <A
HREF="harddisk-redologs.html#AEN740"
>How number of entries in the catalog and number of blocks by extents are computed</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Resources for developers</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,147 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>The instrumentation feature</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Advanced debugger usage"
HREF="debugger-advanced.html"><LINK
REL="PREVIOUS"
TITLE="Advanced debugger usage"
HREF="debugger-advanced.html"><LINK
REL="NEXT"
TITLE="Bochs debugger internals"
HREF="debugger-internals.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="debugger-advanced.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Advanced debugger usage</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="debugger-internals.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="INSTRUMENTATION"
>3.2. The instrumentation feature</A
></H1
><P
><IMG
SRC="../images/undercon.png"> Not written yet.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="debugger-advanced.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="debugger-internals.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Advanced debugger usage</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger-advanced.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bochs debugger internals</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,391 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>I/O Interface to Bochs Debugger</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Debugger"
HREF="debugger.html"><LINK
REL="PREVIOUS"
TITLE="techniques"
HREF="debugger-techniques.html"><LINK
REL="NEXT"
TITLE="Coding"
HREF="coding.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="debugger-techniques.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Debugger</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="coding.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="IODEBUG"
>3.5. I/O Interface to Bochs Debugger</A
></H1
><P
>This device was added by Dave Poirier (eks@void-core.2y.net). </P
><P
>Compiling Bochs with iodebug support
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>./configure --enable-iodebug
make</PRE
></TD
></TR
></TABLE
>
Other optional fields may be added to the ./configure line, see Bochs documentation for all the information.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Using the I/O Interface to the debugger
port range: 0x8A00 - 0x8A01
Port 0x8A00 servers as command register. You can use it to enable the i/o interface,
change which data register is active, etc.
Port 0x8A01 is used as data register for the memory monitoring.</PRE
></TD
></TR
></TABLE
></P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1078"
>3.5.1. Commands supported by port 0x8A00</A
></H2
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>&#13;0x8A00
Used to enable the device. Any I/O to the debug module before this command is sent
is sent will simply be ignored.
0x8A01
Selects register 0: Memory monitoring range start address (inclusive)
0x8A02
Selects register 1: Memory monitoring range end address (exclusive)
0x8A80
Enable address range memory monitoring as indicated by register 0 and 1 and
clears both registers
0x8AE0 - Return to Debugger Prompt
If the debugger is enabled (via --enable-debugger), sending 0x8AE0 to port 0x8A00
after the device has been enabled will return the Bochs to the debugger prompt.
Basically the same as doing CTRL+C.
0x8AE2 - Instruction Trace Disable
If the debugger is enabled (via --enable-debugger), sending 0x8AE2 to port 0x8A00
after the device has been enabled will disable instruction tracing
0x8AE3 - Instruction Trace Enable
If the debugger is enabled (via --enable-debugger), sending 0x8AE3 to port 0x8A00
after the device has been enabled will enable instruction tracing
0x8AE4 - Register Trace Disable
If the debugger is enabled (via --enable-debugger), sending 0x8AE4 to port 0x8A00
after the device has been enabled will disable register tracing.
0x8AE5 - Register Trace Enable
If the debugger is enabled (via --enable-debugger), sending 0x8AE5 to port 0x8A00
after the device has been enabled will enable register tracing. This currently
output the value of all the registers for each instruction traced.
Note: instruction tracing must be enabled to view the register tracing
0x8AFF
Disable the I/O interface to the debugger and the memory monitoring functions.</PRE
></TD
></TR
></TABLE
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>all accesses must be done using word</P
></BLOCKQUOTE
></DIV
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>reading this register will return 0x8A00 if currently activated, otherwise 0</P
></BLOCKQUOTE
></DIV
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1086"
>3.5.2. Access to port 0x8A01 (write-only)</A
></H2
><P
>All accesses to this port must be done using words. Writing to this port will shift
to the left by 16 the current value of the register and add the provided value to it.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Sample:
reg0 = 0x01234567
out port: 0x8A01 data: 0xABCD
reg0 = 0x4567ABCD</PRE
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1090"
>3.5.3. Sample</A
></H2
><P
>Enable memory monitoring on first page of text screen (0xb8000-0xb8fa0):
add in bochrc file: <B
CLASS="COMMAND"
>optromimage1: file=&quot;asmio.rom&quot;, address=0xd0000</B
>
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>/*
* Make asmio ROM file:
* gcc -c asmio.S
* objcopy -O binary asmio.o asmio.rom
*/
.text
.global start
.code16
/* ROM Header */
.byte 0x55
.byte 0xAA
.byte 1 /* 512 bytes long */
start:
/* Monitor memory access on first page of text screen */
mov $0x8A00,%dx /* Enable iodebug (0x8A00-&#62;0x8A00) */
mov %dx,%ax
out %ax,%dx
mov $0x8A01,%ax /* Select register 0 start addr (0x8A01-&#62;0x8A00) */
out %ax,%dx
mov $0x8A01,%dx /* Write start addr 0xB8000 (high word first) */
mov $0xB,%ax
out %ax,%dx
mov $0x8000,%ax /* Write start addr (low word) */
out %ax,%dx
mov $0x8A02,%ax /* Select register 1 end addr (0x8A02-&#62;0x8A00) */
mov $0x8A00,%dx
out %ax,%dx
mov $0x8A01,%dx /* Write end addr 0xB8FA0 (high word first) */
mov $0xB,%ax
out %ax,%dx
mov $0x8FA0,%ax /* Write end addr (low word) */
out %ax,%dx
mov $0x8A00,%dx /* Enable addr range memory monitoring (0x8A80-&#62;0x8A00) */
mov $0x8A80,%ax
out %ax,%dx
mov $0x8A00,%dx /* Return to Bochs Debugger Prompt (0x8AE0-&#62;0x8A00) */
mov $0x8AE0,%ax
out %ax,%dx
lret
.byte 0x6b /* Checksum (code dependent!, update it as needed) */
.align 512 /* NOP follow */</PRE
></TD
></TR
></TABLE
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="debugger-techniques.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>techniques</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="debugger.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Coding</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Log Functions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="Configure Scripting"
HREF="configure-scripting.html"><LINK
REL="NEXT"
TITLE="timers"
HREF="timers.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="configure-scripting.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="timers.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="LOGFUNCTIONS"
>2.5. Log Functions</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
log functions: what is a panic, what is an error, etc.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="configure-scripting.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="timers.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Configure Scripting</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>timers</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>other content</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="automatic site update"
HREF="site-update.html"><LINK
REL="NEXT"
TITLE="available tools"
HREF="available-tools.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="site-update.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="available-tools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="OTHER-CONTENT"
>5.5. other content</A
></H1
><P
> <IMG
SRC="../images/undercon.png"> sources, tmp
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="site-update.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="available-tools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>automatic site update</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>available tools</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,161 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Ideas for other sections</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="PREVIOUS"
TITLE="SourceForge bug, feature, and patch trackers"
HREF="trackers.html"><LINK
REL="NEXT"
TITLE="About the code"
HREF="about-the-code.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="trackers.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Resources for developers</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="about-the-code.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="OTHER"
>1.4. Ideas for other sections</A
></H1
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>Ideas:
- how to browse code with cvsweb
- how to find an identifier, variable, or specific text in the code
- how to make patches with CVS</PRE
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="trackers.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>SourceForge bug, feature, and patch trackers</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>About the code</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>patches:</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Coding"
HREF="coding.html"><LINK
REL="PREVIOUS"
TITLE="Coding"
HREF="coding.html"><LINK
REL="NEXT"
TITLE="Building a Bochs release"
HREF="cvs-release.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Coding</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cvs-release.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="PATCHES"
>4.2. patches:</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
how to make, where to submit, what happens then?
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cvs-release.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Coding</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Building a Bochs release</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>website html repository</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="shell access to the website"
HREF="shell-access.html"><LINK
REL="NEXT"
TITLE="automatic site update"
HREF="site-update.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="shell-access.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="site-update.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="REPOSITORY"
>5.3. website html repository</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="shell-access.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="site-update.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>shell access to the website</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>automatic site update</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,344 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Resources for developers</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="NEXT"
TITLE="Using CVS write access"
HREF="using-cvs-write-access.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="using-cvs-write-access.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="RESOURCES"
></A
>Chapter 1. Resources for developers</H1
><P
>The development guide describes resources that are intended for developers
in particular. Many Bochs resources are also covered in the User Guide,
including compile instructions, bochsrc options, how to find the mailing
lists, etc.</P
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AEN20"
>1.1. Setting up CVS write access</A
></H1
><P
>If you are an official SourceForge developer, then you can use CVS with write
access. The CVS contains the most recent copy of the source code, and with
write access you can upload any changes you make to the CVS server for others
to use. A few extra steps are required the first time you use CVS write
access.</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN23"
>1.1.1. Install ssh and cvs</A
></H2
><P
>First you need to install both cvs (Concurrent Version System) and ssh (Secure
Shell). These are already installed on many UNIX systems and also Cygwin
(win32 platform). If not, you can install binaries or compile cvs and ssh
yourself. The links below should help you get going.</P
><P
></P
><UL
><LI
><P
> CVS software and instructions are available at <A
HREF="http://www.cvshome.org"
TARGET="_top"
>www.cvshome.org</A
>. </P
></LI
><LI
><P
> A free version of secure shell called OpenSSH is at <A
HREF="http://www.openssh.org"
TARGET="_top"
>www.openssh.org</A
>. </P
></LI
><LI
><P
> OpenSSH requires a library called OpenSSL from <A
HREF="http://www.openssl.org"
TARGET="_top"
>www.openssl.org</A
>. Be sure to install OpenSSL before trying to compile OpenSSH. </P
></LI
></UL
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN36"
>1.1.2. ssh to cvs.sf.net</A
></H2
><P
>Next, you need to use secure shell to connect to cvs.sf.net. This step is a
little strange, because you can't actually log in and get a shell prompt. All
that will happen, when you get the username and password right, is that it
will create a home directory on that machine for you. That's it! If you try
it again, it will say "This is a restricted Shell Account. You cannot execute
anything here." At this point, you've succeeded and you never have to do
this step again, ever.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> ssh <TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sf.net</PRE
></TD
></TR
></TABLE
></P
><P
>Replace <TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
> with your Source Forge username,
of course. The first time, you will probably get a message like
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>The authenticity of host 'cvs.sf.net' can't be established.
Are you sure you want to continue?</PRE
></TD
></TR
></TABLE
>
Just type yes. When it asks for a password, be sure to type your source
forge password. If you have trouble logging in, be sure to use your SOURCE
FORGE username and password in the ssh line, which isn't necessarily the same
as your local username and password. Add the "-v" option to ssh to see more
information about what is failing. If you have ssh version 2, it is possible
that you might need to add "-1" to the ssh command to force it to use the
version 1 protocol. </P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN44"
>1.1.3. Set CVS_RSH environment variable to ssh</A
></H2
><P
>Every time you connect to the Source Forge CVS server (including cvs update,
stat, commit, etc.), you must set the CVS_RSH environment variable to ssh. So
just take the time now to add one of these lines to your .bashrc/.cshrc, so
that the CVS_RSH setting will be there every time you log in.</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> export CVS_RSH=ssh (bash syntax)
setenv CVS_RSH ssh (csh syntax)</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN48"
>1.1.4. cvs checkout</A
></H2
><P
>Finally, you should be able to do the checkout! If you already have a Bochs
subdirectory directory, move it out of the way because the checkout will
overwrite it.</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> export CVSROOT=":ext:<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sourceforge.net:/cvsroot/bochs"
cvs -z3 checkout bochs
<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sourceforge.net's password: <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
></PRE
></TD
></TR
></TABLE
><P
>In the CVSROOT variable, replace <TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
> with your SF username. There's
no need to add CVSROOT to your rc files because CVS will remember it
after the checkout. The -z3 (optional) just adds some compression to make
the checkout go faster. Once all the files have been downloaded, you will
have a Bochs directory which is checked out with write access!</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="using-cvs-write-access.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bochs Developers Guide</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using CVS write access</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>shell access to the website</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="NEXT"
TITLE="website html repository"
HREF="repository.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="webmastering.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="repository.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SHELL-ACCESS"
>5.2. shell access to the website</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="repository.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Webmastering</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>website html repository</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>automatic site update</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="website html repository"
HREF="repository.html"><LINK
REL="NEXT"
TITLE="other content"
HREF="other-content.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="repository.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="other-content.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SITE-UPDATE"
>5.4. automatic site update</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="repository.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="other-content.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>website html repository</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>other content</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,365 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Building a Bochs release</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Coding"
HREF="coding.html"><LINK
REL="PREVIOUS"
TITLE="Coding"
HREF="coding.html"><LINK
REL="NEXT"
TITLE="Webmastering"
HREF="webmastering.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Coding</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="webmastering.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="SVN-RELEASE"
>4.2. Building a Bochs release</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1520"
>4.2.1. Preparing source files and SVN</A
></H2
><P
>Update version number and strings in configure.in.
<PRE
CLASS="SCREEN"
>VERSION="2.6.9"
VER_MAJOR=2
VER_MINOR=6
VER_REVISION=9
VER_SVN=0
REL_STRING="Build from SVN snapshot on April 9, 2017"</PRE
>
In the README file you have to update version number and date. Add some
information about new features if necessary.
<PRE
CLASS="SCREEN"
>Bochs x86 Pentium+ Emulator
Updated: Sun Apr 9 08:45:00 CEST 2017
Version: 2.6.9</PRE
>
In the file <TT
CLASS="FILENAME"
>bochs.manifest</TT
> you have to update the version
number for the Windows build.
<PRE
CLASS="SCREEN"
> version="2.6.9.0"</PRE
>
Check date, update/sumup info in CHANGES. Run autoconf to regenerate configure and check them in.
Create an SVN tag that contains all files of the revision that was used in the release.
For prereleases I create a normal SVN tag like this:
<PRE
CLASS="SCREEN"
> svn mkdir tags/REL_2_5_pre1_FINAL
svn copy trunk/bochs tags/REL_2_5_pre1_FINAL/bochs
svn commit</PRE
>
But for a real release, I make an SVN branch tag AND a normal tag.
<PRE
CLASS="SCREEN"
> svn mkdir tags/REL_2_5_FINAL
svn copy trunk/bochs tags/REL_2_5_FINAL/bochs
svn mkdir branches/REL_2_5
svn copy trunk/bochs branches/REL_2_5/bochs
svn commit</PRE
>
The tag marks where the branch split off of the main trunk.
This is very useful in maintaining the branch since you can do diffs
against it.
<PRE
CLASS="SCREEN"
> svn diff tags/REL_2_5_FINAL/bochs trunk/bochs
svn diff tags/REL_2_5_FINAL/bochs branches/REL_2_5
etc.</PRE
>
All bugfix-only releases after the final release should be created from the REL_2_5 branch.
Now you can start building packages with the sources from the created release tag.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1530"
>4.2.2. Anonymous SVN checkout and platform-independent sources</A
></H2
><P
>An anonymous SVN checkout from the release tag is the base for all official
release packages. Do this checkout from the release tag and specify a not yet
existing directory name with the version number as the destination. Then create
the source package from this new directory. These steps can be done both on
Linux and Windows (Cygwin).
<PRE
CLASS="SCREEN"
> svn co http://svn.code.sf.net/p/bochs/code/tags/REL_2_5_FINAL/bochs bochs-2.5
tar czvf bochs-2.5.tar.gz --exclude=.svn bochs-2.5</PRE
>
The source TAR file bochs-2.5.tar.gz is ready for upload.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1534"
>4.2.3. Building the release on Linux</A
></H2
><P
>The RPM will be building using the configuration in .conf.linux with
a few parameters from <B
CLASS="COMMAND"
>build/redhat/make-rpm</B
>. Make any last
minute changes to .conf.linux. Any changes will go into the source RPM. The
DLX Linux demo package will be downloaded from the Bochs website to the Bochs
root directory if it is not already present there.
<PRE
CLASS="SCREEN"
> ./build/redhat/make-rpm | tee ../build.txt</PRE
>
This produces two rpm files in the current directory. Test and upload.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1539"
>4.2.4. Building the release on win32</A
></H2
><P
>These instructions require cygwin and MSVC++. Use the Bochs sources from
the SVN checkout or unpack the TAR file.</P
><P
>In Cygwin:
<PRE
CLASS="SCREEN"
> sh .conf.win32-vcpp # runs configure
make win32_snap # unzip workspace, make a win32 source ZIP</PRE
>
The source ZIP is present in the parent directory of the Bochs root and now
ready for upload. To build the binary package, copy it to a Windows machine,
if necessary.</P
><P
>Open up Visual C++ and load the workspace file Bochs.sln. Check
the Build:Set Active Project Configuration is set the way you want it.
For releases I use "Win32 Release".</P
><P
>To create "bochsdbg.exe" with Bochs debugger support, manually change these
lines in config.h to turn on the debugger and the enhanced debugger gui.
<PRE
CLASS="SCREEN"
>#define BX_DEBUGGER 1
#define BX_DISASM 1
#define BX_DEBUGGER_GUI 1</PRE
>
One of the optimization features must be turned off, since it is currently
not compatible with the debugger.
<PRE
CLASS="SCREEN"
>#define BX_SUPPORT_HANDLERS_CHAINING_SPEEDUPS 0</PRE
>
VC++ will rebuild Bochs with debugger and overwrite bochs.exe. To avoid
trashing the non-debug version, move it out of the way while the debugger
version is being built. Then rename the debugger version to bochsdbg.exe.
<PRE
CLASS="SCREEN"
> cd obj-release
mv bochs.exe bochs-normal.exe
(build again with BX_DEBUGGER=1 this time)
mv bochs.exe bochsdbg.exe
mv bochs-normal.exe bochs.exe</PRE
></P
><P
>Do make <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>install_win32</I
></SPAN
> into the NSIS folder in the Bochs
source tree:
<PRE
CLASS="SCREEN"
> make install_win32 INSTDIR=./build/win32/nsis/bochs-2.5</PRE
>
This downloads and unpacks both the DLX Linux demo and the HTML docs from the
Bochs website, copies all the files into <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>./build/win32/nsis/bochs-2.5</I
></SPAN
>
and then creates a binary ZIP file in the NSIS folder.</P
><P
>Now make the NSIS installer package (the current script is known to work with NSIS 3.04)
<PRE
CLASS="SCREEN"
> cd build/win32/nsis
make</PRE
>
That gives an installer called <TT
CLASS="FILENAME"
>Bochs-2.5.exe</TT
>. Test and upload it.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1556"
>4.2.5. Creating a file release and uploading files on SF</A
></H2
><P
>When you are ready with creating release packages you have to upload them using
the SF file manager feature. Create a subdirectory with the version number in
the <TT
CLASS="FILENAME"
>bochs</TT
> directory. Point the download destination to the
new directory and start uploading packages. The top of the <TT
CLASS="FILENAME"
>CHANGES</TT
>
file should be used as the release notes. After setting up the file properties the
new release is ready for download.</P
><P
>After having all files set up in the download area, don't forget to post an announcement
containing a brief summary of changes to the bochs-announce mailing list and the "Project
News" section on SF.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Coding</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="coding.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Webmastering</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>timers</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="About the code"
HREF="about-the-code.html"><LINK
REL="PREVIOUS"
TITLE="Log Functions"
HREF="logfunctions.html"><LINK
REL="NEXT"
TITLE="Bochs's CMOS map"
HREF="cmos-map.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="logfunctions.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. About the code</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="cmos-map.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="TIMERS"
>2.6. timers</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="logfunctions.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="cmos-map.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Log Functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="about-the-code.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Bochs's CMOS map</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>SourceForge bug, feature, and patch trackers</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="PREVIOUS"
TITLE="Using CVS write access"
HREF="using-cvs-write-access.html"><LINK
REL="NEXT"
TITLE="Ideas for other sections"
HREF="other.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="using-cvs-write-access.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Resources for developers</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="other.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="TRACKERS"
>1.3. SourceForge bug, feature, and patch trackers</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="using-cvs-write-access.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="other.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using CVS write access</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Ideas for other sections</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,175 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Updating the online documentation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="Updating the SVN snapshot"
HREF="update-svn-snapshot.html"><LINK
REL="NEXT"
TITLE="other content"
HREF="other-content.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="update-svn-snapshot.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="other-content.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="UPDATE-ONLINE-DOCS"
>5.4. Updating the online documentation</A
></H1
><P
>To update the online documentation, a file called <TT
CLASS="FILENAME"
>bochsdoc.tar.gz</TT
>
must be generated with the <B
CLASS="COMMAND"
>make</B
>. This file must be uploaded
to the location of the online documentation on SF using <B
CLASS="COMMAND"
>scp</B
>.
<PRE
CLASS="SCREEN"
>cd doc/docbook
make bochsdoc.tar.gz
scp bochsdoc.tar.gz vruppert,bochs@web.sf.net:htdocs/doc/docbook</PRE
>
After a successful upload, the HTML files must be unpacked from the SF shell.
See section <A
HREF="update-website.html"
>Updating the Bochs website content</A
>
how to create a shell.
<PRE
CLASS="SCREEN"
>cd /home/project-web/bochs/htdocs/doc/docbook
tar xvzf bochsdoc.tar.gz</PRE
>
The updated files can be accessed from the sidebar of the Bochs website.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="update-svn-snapshot.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="other-content.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Updating the SVN snapshot</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>other content</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,199 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Updating the SVN snapshot</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="Updating the Bochs website content"
HREF="update-website.html"><LINK
REL="NEXT"
TITLE="Updating the online documentation"
HREF="update-online-docs.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="update-website.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="update-online-docs.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="UPDATE-SVN-SNAPSHOT"
>5.3. Updating the SVN snapshot</A
></H1
><P
>The SVN snapshot
<A
NAME="AEN1634"
HREF="#FTN.AEN1634"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
>
can be updated with SF shell access using SSH. There is a script
called <B
CLASS="COMMAND"
>update-svn-snapshot.sh</B
> that can do all the required steps
(checking out SVN, packing the source tree into one archive, updating the website
link). See previous section how to create a shell.
<PRE
CLASS="SCREEN"
>cd /home/project-web/bochs/sitebin/
./update-svn-snapshot.sh</PRE
></P
></DIV
><H3
CLASS="FOOTNOTES"
>Notes</H3
><TABLE
BORDER="0"
CLASS="FOOTNOTES"
WIDTH="100%"
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN1634"
HREF="update-svn-snapshot.html#AEN1634"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>The SVN snapshot link can be found on the bottom of the page
<TT
CLASS="FILENAME"
>getcurrent.html</TT
>.</P
></TD
></TR
></TABLE
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="update-website.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="update-online-docs.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Updating the Bochs website content</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Updating the online documentation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,194 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Updating the Bochs website content</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="PREVIOUS"
TITLE="Webmastering"
HREF="webmastering.html"><LINK
REL="NEXT"
TITLE="Updating the SVN snapshot"
HREF="update-svn-snapshot.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="webmastering.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Webmastering</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="update-svn-snapshot.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="UPDATE-WEBSITE"
>5.2. Updating the Bochs website content</A
></H1
><P
>The main HTML content of the Bochs website (except online documentation) is stored
in the <TT
CLASS="FILENAME"
>sfsite</TT
> directory of the Bochs SVN repository. Unlike
other SF projects you don't need to upload these files to the Bochs project webspace.
Running a simple SVN update on the SF shell is enough after the files have been
updated in the repository. Please see <A
HREF="resources.html#SVN-WRITE-ACCESS-SETUP"
>Setting
up SVN write access</A
> for general instructions. The only difference is the
directory name <TT
CLASS="FILENAME"
>sfsite</TT
> instead of <TT
CLASS="FILENAME"
>bochs</TT
>.
The example below shows how to start the SF shell with SSH and to update the
HTML files.
<PRE
CLASS="SCREEN"
>ssh -t vruppert,bochs@shell.sourceforge.net create
vruppert,bochs@shell.sourceforge.net's password:
Requesting a new shell for "vruppert" and waiting for it to start.
queued... starting...
This is an interactive shell created for user vruppert,bochs.
Use the "timeleft" command to see how much time remains before shutdown.
Use the "shutdown" command to destroy the shell before the time limit.
For path information and login help, type "sf-help".
[vruppert@shell-24002 ~]$ cd /home/project-web/bochs/htdocs/
[vruppert@shell-24002 htdocs]$ svn update
U index.html
Updated to revision 10752
[vruppert@shell-24002 htdocs]$ shutdown
Requesting that your shell be shut down.
This request will be processed soon.
[vruppert@shell-24002 htdocs]$
Broadcast message from root (Mon Oct 31 09:45:04 2011):
The system is going down for system halt NOW!
Connection to shell-24002 closed by remote host.
Connection to shell-24002 closed.
Connection to shell.sourceforge.net closed.</PRE
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="update-svn-snapshot.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Webmastering</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="webmastering.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Updating the SVN snapshot</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,271 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Using CVS write access</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="PREVIOUS"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="NEXT"
TITLE="SourceForge bug, feature, and patch trackers"
HREF="trackers.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="resources.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Resources for developers</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trackers.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="USING-CVS-WRITE-ACCESS"
>1.2. Using CVS write access</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN59"
>1.2.1. Checking in files</A
></H2
><P
>Once you have a Bochs directory with cvs write access, you can compile the
files, edit them, test them, etc. See the documentation section, "Tracking
the source code with CVS" for more info on CVS, in the User Manual.
(FIXME: add cross reference) But what's new and different is that you can now
do cvs commits. When a file is all fixed and ready to share with the rest of
the world, you run a commit command to upload your version to the server.
First, it's good to do a cvs update to make sure nobody else has changed it
since you downloaded it last.</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> $ cvs update file.cc
<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sf.net's password: <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
>
$ cvs commit file.cc
<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sf.net's password: <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
>
[editor opens. type log message, save, and exit.]</PRE
></TD
></TR
></TABLE
><P
>When CVS starts an editor, The default is usually vi. If you want a different
editor, set the EDITOR environment variable to the name of your preferred
editor. When you're done, just save the file and quit the editor. Unless
there's some problem, you will see a message that says what the new revision
number for the file is, and then "done". If while you're editing the log
message, you decide that you don't want to commit after all, don't save the
file. Quit the editor, and when it asks where the log message went, tell it
to abort.</P
><P
>Here is an example of a successful checkin:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> $ cvs commit misc.txt
<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sf.net's password: <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
>
[edit log msg]
Checking in misc.txt;
/cvsroot/bochs/bochs/doc/docbook/misc.txt,v &#60;-- misc.txt
new revision: 1.6; previous revision: 1.5
done</PRE
></TD
></TR
></TABLE
>
And here is an aborted one:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> $ cvs commit misc.txt
<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>@bochs.cvs.sf.net's password: <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
>
[quit editor without saving]
Log message unchanged or not specified
a)bort, c)ontinue, e)dit, !)reuse this message unchanged for remaining dirs
Action: a
cvs [commit aborted]: aborted by user</PRE
></TD
></TR
></TABLE
>&#13;</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trackers.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Resources for developers</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>SourceForge bug, feature, and patch trackers</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,290 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Using SVN write access</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="PREVIOUS"
TITLE="Resources for developers"
HREF="resources.html"><LINK
REL="NEXT"
TITLE="Ideas for other sections"
HREF="other.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="resources.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Resources for developers</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="other.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="USING-SVN-WRITE-ACCESS"
>1.2. Using SVN write access</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN28"
>1.2.1. Checking in files</A
></H2
><P
>Once you have a Bochs directory, you can compile the files, edit them, test them, etc.
See the documentation section, <A
HREF="../user/get-src-svn.html"
TARGET="_top"
>Tracking the source code with SVN</A
>
for more info on SVN, in the User Manual. But what's new and different is that
you can now do SVN commits. When a file is all fixed and ready to share with the rest of
the world, you run a commit command to upload your version to the server.
First, it's good to do a SVN update to make sure nobody else has changed it
since you downloaded it last. At the first commit you'll always have to specify your
SF username and type your password.</P
><PRE
CLASS="SCREEN"
> $ svn update file.cc
$ svn commit --username <TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
> file.cc
[editor opens. type log message, save, and exit.]
Login area: &lt;https://svn.code.sf.net:443&gt; SourceForge Subversion area
Username: <TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>
Password for '<TT
CLASS="REPLACEABLE"
><I
>sfusername</I
></TT
>': <TT
CLASS="REPLACEABLE"
><I
>&#60;--type your password</I
></TT
>
Sending file.cc
Transmitting file data .
Committed revision 10.</PRE
><P
>When SVN starts an editor, The default is usually vi. If you want a different
editor, set the EDITOR environment variable to the name of your preferred
editor. When you're done, just save the file and quit the editor. Unless
there's some problem, you will see a message that says what the new SVN revision
number is, and then "done". If while you're editing the log message, you decide
that you don't want to commit after all, don't save the file. Quit the editor,
and when it asks where the log message went, tell it to abort.</P
><P
>Here is an example of a successful checkin:
<PRE
CLASS="SCREEN"
> $ svn commit misc.txt
[edit log msg]
Sending misc.txt
Transmitting file data .
Committed revision 6.</PRE
>
And here is an aborted one:
<PRE
CLASS="SCREEN"
> $ svn commit misc.txt
[quit editor without saving]
Log message unchanged or not specified
a)bort, c)ontinue, e)dit:
a</PRE
>&#13;</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN41"
>1.2.2. Creating a backup of the SVN repository</A
></H2
><P
>Backups of the SVN repository can be made with the <B
CLASS="COMMAND"
>rsync</B
> utility.
In case of data corruption or other problems on the server, the repository with all
revisions, branches and tags can be restored easily. It is recommended to update this
backup frequently. The following example creates a folder called
<TT
CLASS="FILENAME"
>bochs-svn-rsync</TT
> that contains the repository.
<PRE
CLASS="SCREEN"
> rsync -av svn.code.sf.net::p/bochs/code bochs-svn-rsync</PRE
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN47"
>1.2.3. Setting SVN commit notifications</A
></H2
><P
>The Bochs SVN repository is set up to send a notification email to the "bochs-cvs"
mailing list after each successful commit. This email contains the log message, a list
of the modified files and a diff against the previous revision. The diff of large
commits will be truncated at 96 kByte.</P
><P
>After each commit the SVN server runs the script <B
CLASS="COMMAND"
>post-commit</B
> located
in the <TT
CLASS="FILENAME"
>hooks</TT
> folder. On SourceForge, this script forces a refresh
of the Allura code browser and it can call a script <B
CLASS="COMMAND"
>post-commit-user</B
>
for addition operations if it exists. For Bochs we have set up this script and call
<B
CLASS="COMMAND"
>svnnotify</B
> from it to create the notification email.
<PRE
CLASS="SCREEN"
>#!/bin/sh
svnnotify --repos-path $1 --revision $2 -O -C -d -e 98304 -t bochs-cvs@lists.sourceforge.net</PRE
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="other.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Resources for developers</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="resources.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Ideas for other sections</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Webmastering</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Developers Guide"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Building a Bochs release"
HREF="cvs-release.html"><LINK
REL="NEXT"
TITLE="shell access to the website"
HREF="shell-access.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Developers Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="cvs-release.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="shell-access.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="WEBMASTERING"
></A
>Chapter 5. Webmastering</H1
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="WEBSITES"
>5.1. websites</A
></H1
><P
> <IMG
SRC="../images/undercon.png">
</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="cvs-release.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="shell-access.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Building a Bochs release</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>shell access to the website</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,384 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Docbook Basics</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Layout of Bochs Documentation"
HREF="layout.html"><LINK
REL="NEXT"
TITLE="References and Other Tutorials"
HREF="references.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="layout.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="references.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="BASICS"
></A
>Chapter 2. Docbook Basics</H1
><P
>Some of the most commonly used docbook patterns are described here
for quick reference. For all the details (sometimes more than you
wanted), try <A
HREF="http://www.docbook.org/tdg/en/html/docbook.html"
TARGET="_top"
>DocBook: The Definitive Guide</A
> by Norman Walsh and Leonard Muellner, which O'Reilly
&amp; Associates has generously placed on their web site. In this section,
many of the SGML tags are linked to the page of Walsh's book that describes
that tag in detail.</P
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AEN26"
>2.1. Small Tutorial</A
></H1
><P
>Docbook files are text files containing SGML. If you have ever looked
at HTML, then a docbook file will look familiar. Not the same, but familiar.
The easiest way of getting familiar with the docbook format is by looking at
examples such as the Bochs documentation itself. When you compare the source
code to the rendered documentation on the web site, it will be pretty obvious
what all the codes are doing. HTML is very forgiving about breaking the syntax
rules, such as not putting &lt;/h1&gt; at then end of an &lt;h1&gt; section.
SGML is picky; if you forget that kind of thing in SGML, it will insist that
you fix it. </P
><P
>Every paragraph must begin with the &lt;para&gt; tag and end with the
corresponding end tag, &lt;/para&gt;.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;<A
HREF="http://www.docbook.org/tdg/en/html/para.html"
TARGET="_top"
>para</A
>&gt;
This is a paragraph.
&lt;/para&gt;</PRE
></TD
></TR
></TABLE
></P
><P
>A chapter looks like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;<A
HREF="http://www.docbook.org/tdg/en/html/chapter.html"
TARGET="_top"
>chapter</A
>&gt;
&lt;title&gt;<TT
CLASS="REPLACEABLE"
><I
>title of the chapter</I
></TT
>&lt;/title&gt;
<TT
CLASS="REPLACEABLE"
><I
>text of the chapter</I
></TT
>
&lt;/chapter&gt;</PRE
></TD
></TR
></TABLE
>
The text of the chapter must contain at least one complete &lt;para&gt; tag,
and it can include &lt;section&gt;s.</P
><P
>A section looks like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;<A
HREF="http://www.docbook.org/tdg/en/html/section.html"
TARGET="_top"
>section</A
>&gt;
&lt;title&gt;<TT
CLASS="REPLACEABLE"
><I
>title of the section</I
></TT
>&lt;/title&gt;
<TT
CLASS="REPLACEABLE"
><I
>text of the section</I
></TT
>
&lt;/section&gt;</PRE
></TD
></TR
></TABLE
>
The text of the section must contain at least one complete &lt;para&gt; tag,
and it can include other &lt;section&gt;s.</P
><P
>To make a link to any URL, use the syntax:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;<A
HREF="http://www.docbook.org/tdg/en/html/ulink.html"
TARGET="_top"
>ulink</A
> url="<TT
CLASS="REPLACEABLE"
><I
>URL</I
></TT
>"&gt;<TT
CLASS="REPLACEABLE"
><I
>text of the hyperlink</I
></TT
>&lt;/ulink&gt;</PRE
></TD
></TR
></TABLE
>
However, if you like to link to another target inside the same document,
for example to a section, use something like that:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;section id="<TT
CLASS="REPLACEABLE"
><I
>unique identifier</I
></TT
>"&gt;
<TT
CLASS="REPLACEABLE"
><I
>All stuff that is needed here...</I
></TT
>
&lt;/section&gt;
<TT
CLASS="REPLACEABLE"
><I
>...</I
></TT
>
&lt;<A
HREF="http://www.docbook.org/tdg/en/html/link.html"
TARGET="_top"
>link</A
> linkend="<TT
CLASS="REPLACEABLE"
><I
>unique identifier to link to</I
></TT
>"&gt;<TT
CLASS="REPLACEABLE"
><I
>text of hyperlink</I
></TT
>&lt;/link&gt;</PRE
></TD
></TR
></TABLE
></P
><P
>To include a picture in the text, use the &lt;graphic&gt; tag. In SGML, this
graphic tag has no closing tag.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>&lt;<A
HREF="http://www.docbook.org/tdg/en/html/graphic.html"
TARGET="_top"
>graphic</A
> format="<TT
CLASS="REPLACEABLE"
><I
>fmt</I
></TT
>" fileref="<TT
CLASS="REPLACEABLE"
><I
>filename</I
></TT
>"&gt;</PRE
></TD
></TR
></TABLE
>
The <TT
CLASS="REPLACEABLE"
><I
>fmt</I
></TT
> can be one of many formats including GIF,
JPG, PNG, PS, and EPS. The filename should be on the local disk. If there is
a pathname, it should be relative to the source file or it won't be found on
anyone's system other than yours.</P
><P
>There are over 300 tags defined in the latest version of docbook, so
we won't try to list them all here. Once you get the idea, you can
either find examples in the rest of the documentation that do what you
need, or look at Walsh and Muellner's
<A
HREF="http://www.docbook.org/tdg/en/html/docbook.html"
TARGET="_top"
>DocBook: The Definitive Guide</A
>
for more details.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="layout.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="references.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Layout of Bochs Documentation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>References and Other Tutorials</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,219 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Conventions</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="References and Other Tutorials"
HREF="references.html"><LINK
REL="NEXT"
TITLE="Reading and Writing"
HREF="reading-writing.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="references.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="reading-writing.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="CONVENTIONS"
></A
>Chapter 3. Conventions</H1
><P
>Put a &amp;FIXME; near things that need to be fixed up. A &amp;FIXME; causes
the under construction symbol to appear, like this <IMG
SRC="../images/undercon.png">.</P
><P
>A &amp;NEEDHELP; indicates, that you need someone's help in order to document
something, you don't know for sure. This is mostly the case if you need inside
information from a developer. The symbol looks like this: <IMG
SRC="../images/undercon.png">.</P
><P
>Don't get confused because &amp;FIXME; looks the same as &amp;NEEDHELP; -
this is just for the moment. When you like to use one of them, think of what
it should mean, instead of how it looks like: Take &amp;FIXME; if you have
great ideas of what to document, but have no time or no knowledge about it, or
just noticed something wrong or outdated. &amp;NEEDHELP; instead should be used
to request help on something (see above).</P
><P
>This is just a first try to clearify the difference between
&amp;NEEDHELP; and &amp;FIXME;.</P
><P
>To maintain a consistent spelling, some "problem words" are mentioned here,
along with a hint on how to spell them.
<DIV
CLASS="TABLE"
><A
NAME="AEN83"
></A
><P
><B
>Table 3-1. list of problem words</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><TBODY
><TR
><TD
>Bochs</TD
><TD
>Bochs is written with a leading capital letter.</TD
></TR
><TR
><TD
><TT
CLASS="FILENAME"
>bochsrc</TT
></TD
><TD
> This is what the Bochs configuration file should be refered as. It is a good
compromise between what is common on Unix and what is possible on Windows
(file names starting with a dot aren't easy to create). Remember to use
&lt;<A
HREF="http://www.docbook.org/tdg/en/html/filename.html"
TARGET="_top"
>filename</A
>&gt;bochsrc&lt;/filename&gt;.
</TD
></TR
><TR
><TD
>CD-ROM</TD
><TD
>This abbreviation is written in all capital letters, with a hyphen in between.</TD
></TR
><TR
><TD
>Unix</TD
><TD
> Unix is written using a leading capital letter, followed by all lower-case letters.
See the <A
HREF="http://en.wikipedia.org/wiki/Unix#Branding"
TARGET="_top"
>Unix entry in Wikipedia</A
>.
</TD
></TR
></TBODY
></TABLE
></DIV
></P
><P
><IMG
SRC="../images/undercon.png"> SGML docbook...lower case elements...indentation...remarks...master document/include files</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="references.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="reading-writing.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>References and Other Tutorials</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Reading and Writing</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,529 @@
<!--
================================================================
doc/docbook/documentation/documentation.dbk
$Id: documentation.dbk 10918 2012-01-01 17:32:36Z vruppert $
This is the top level file for the Bochs Documentation Manual.
================================================================
-->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- include definitions that are common to all bochs documentation -->
<!ENTITY % bochsdefs SYSTEM "../include/defs.sgm">
%bochsdefs;
]>
<book>
<bookinfo>
<title>Bochs Documentation Manual</title>
<authorgroup>
<author><firstname>Bryce</firstname><surname>Denney</surname></author>
<author><firstname>Michael</firstname><surname>Calabrese</surname></author>
</authorgroup>
</bookinfo>
<chapter id="layout"><title>Layout of Bochs Documentation</title>
<para>
The Bochs documentation is divided into three major divisions:
<itemizedlist>
<listitem>
<para>
The User's Guide introduces the Bochs Emulator, and covers installation and use.
</para>
</listitem>
<listitem>
<para>
Developer's Guide: Describes the internals of the Bochs Emulator for developers.
</para>
</listitem>
<listitem>
<para>
Documentation Guide: Describes how the documentation is organized, and how to render it, and how to add to it. This section is in the documentation guide.
</para>
</listitem>
</itemizedlist>
</para>
<para>
In docbook terminology, each of the three divisions is a book. Inside each
book are a series of chapters. A chapter may be divided into sections, and
each section is divided into more sections. Eventually we will add fancy
things like a table of contents, index, and glossary, when we learn how.
</para>
</chapter>
<chapter id="basics"><title>Docbook Basics</title>
<para>
Some of the most commonly used docbook patterns are described here
for quick reference. For all the details (sometimes more than you
wanted), try &docbookTDG; by Norman Walsh and Leonard Muellner, which O'Reilly
&amp; Associates has generously placed on their web site. In this section,
many of the SGML tags are linked to the page of Walsh's book that describes
that tag in detail.
</para>
<section><title>Small Tutorial</title>
<para>
Docbook files are text files containing SGML. If you have ever looked
at HTML, then a docbook file will look familiar. Not the same, but familiar.
The easiest way of getting familiar with the docbook format is by looking at
examples such as the Bochs documentation itself. When you compare the source
code to the rendered documentation on the web site, it will be pretty obvious
what all the codes are doing. HTML is very forgiving about breaking the syntax
rules, such as not putting &lt;/h1&gt; at then end of an &lt;h1&gt; section.
SGML is picky; if you forget that kind of thing in SGML, it will insist that
you fix it.
</para>
<para>
Every paragraph must begin with the &lt;para&gt; tag and end with the
corresponding end tag, &lt;/para&gt;.
<programlisting>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/para.html">para</ulink>&gt;
This is a paragraph.
&lt;/para&gt;
</programlisting>
</para>
<para>
A chapter looks like this:
<programlisting>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/chapter.html">chapter</ulink>&gt;
&lt;title&gt;<replaceable>title of the chapter</replaceable>&lt;/title&gt;
<replaceable>text of the chapter</replaceable>
&lt;/chapter&gt;
</programlisting>
The text of the chapter must contain at least one complete &lt;para&gt; tag,
and it can include &lt;section&gt;s.
</para>
<para>
A section looks like this:
<programlisting>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/section.html">section</ulink>&gt;
&lt;title&gt;<replaceable>title of the section</replaceable>&lt;/title&gt;
<replaceable>text of the section</replaceable>
&lt;/section&gt;
</programlisting>
The text of the section must contain at least one complete &lt;para&gt; tag,
and it can include other &lt;section&gt;s.
</para>
<para>
To make a link to any URL, use the syntax:
<programlisting>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/ulink.html">ulink</ulink> url="<replaceable>URL</replaceable>"&gt;<replaceable>text of the hyperlink</replaceable>&lt;/ulink&gt;
</programlisting>
However, if you like to link to another target inside the same document,
for example to a section, use something like that:
<programlisting>
&lt;section id="<replaceable>unique identifier</replaceable>"&gt;
<replaceable>All stuff that is needed here...</replaceable>
&lt;/section&gt;
<replaceable>...</replaceable>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/link.html">link</ulink> linkend="<replaceable>unique identifier to link to</replaceable>"&gt;<replaceable>text of hyperlink</replaceable>&lt;/link&gt;
</programlisting>
</para>
<para>
To include a picture in the text, use the &lt;graphic&gt; tag. In SGML, this
graphic tag has no closing tag.
<programlisting>
&lt;<ulink url="http://www.docbook.org/tdg/en/html/graphic.html">graphic</ulink> format="<replaceable>fmt</replaceable>" fileref="<replaceable>filename</replaceable>"&gt;
</programlisting>
The <replaceable>fmt</replaceable> can be one of many formats including GIF,
JPG, PNG, PS, and EPS. The filename should be on the local disk. If there is
a pathname, it should be relative to the source file or it won't be found on
anyone's system other than yours.
</para>
<para>
There are over 300 tags defined in the latest version of docbook, so
we won't try to list them all here. Once you get the idea, you can
either find examples in the rest of the documentation that do what you
need, or look at Walsh and Muellner's
<ulink url="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive Guide</ulink>
for more details.
</para>
</section> <!-- end of Docbook Basics:Small Tutorial section -->
<section id="references"><title>References and Other Tutorials</title>
<para>
Docbook was created more than 10 years ago, but since 1999, Docbook has been
under the guidance of the DocBook Technical Committee at OASIS. The
<ulink url="http://www.oasis-open.org/committees/docbook">OASIS website</ulink>
distributes the official DocBook DTDs, and has pages on Docbook history,
samples, tools, and runs a few docbook mailing lists.
</para>
<para>
Since the Linux Documentation Project uses docbook, they have written some
good tutorial material. In particular the <ulink url="http://www.linuxdoc.org/LDP/LDP-Author-Guide/index.html">LDP Author Guide</ulink>, by Jorge Godoy
is very good.
</para>
<para>
O'Reilly &amp; Associates publishes a book called <ulink
url="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive
Guide</ulink> by Norman Walsh and Leonard Muellner. You can buy it or read it
online. Norman Walsh knows what he's talking about, since he is the chair of
the DocBook Technical Committee. This is good for reference, since it has a
complete list of tags and their grammar.
</para>
<para>
<ulink url="http://www.ibiblio.org/godoy/sgml/docbook/howto/index.html">DocBook
HOWTO, also by Jorge Godoy</ulink>
</para>
<para>
An article on lwn.net called <ulink
url="http://lwn.net/2000/features/DocBook">Exploring SGML Docbook</ulink>
focuses mostly on installation of tools from scratch: openjade, Norman Walsh's
DSSSL stylesheets, and jade2tex. If you can get the tools from RPMs or
whatever package your OS uses, use that instead.
</para>
</section> <!-- end of Docbook Basics:References and Other Tutorials -->
</chapter>
<chapter id="conventions"><title>Conventions</title>
<para>
Put a &amp;FIXME; near things that need to be fixed up. A &amp;FIXME; causes
the under construction symbol to appear, like this &FIXME;.
</para>
<para>
A &amp;NEEDHELP; indicates, that you need someone's help in order to document
something, you don't know for sure. This is mostly the case if you need inside
information from a developer. The symbol looks like this: &NEEDHELP;.
</para>
<para>
Don't get confused because &amp;FIXME; looks the same as &amp;NEEDHELP; -
this is just for the moment. When you like to use one of them, think of what
it should mean, instead of how it looks like: Take &amp;FIXME; if you have
great ideas of what to document, but have no time or no knowledge about it, or
just noticed something wrong or outdated. &amp;NEEDHELP; instead should be used
to request help on something (see above).
</para>
<para>
This is just a first try to clearify the difference between
&amp;NEEDHELP; and &amp;FIXME;.
</para>
<para>
To maintain a consistent spelling, some "problem words" are mentioned here,
along with a hint on how to spell them.
<table>
<title>list of problem words</title>
<tgroup cols="2">
<tbody>
<row>
<entry>Bochs</entry>
<entry>Bochs is written with a leading capital letter.</entry>
</row>
<row>
<entry><filename>bochsrc</filename></entry>
<entry>
This is what the Bochs configuration file should be refered as. It is a good
compromise between what is common on Unix and what is possible on Windows
(file names starting with a dot aren't easy to create). Remember to use
&lt;<ulink url="http://www.docbook.org/tdg/en/html/filename.html">filename</ulink>&gt;bochsrc&lt;/filename&gt;.
</entry>
</row>
<row>
<entry>CD-ROM</entry>
<entry>This abbreviation is written in all capital letters, with a hyphen in between.</entry>
</row>
<row>
<entry>Unix</entry>
<entry>
Unix is written using a leading capital letter, followed by all lower-case letters.
See the <ulink url="http://en.wikipedia.org/wiki/Unix#Branding">Unix entry in Wikipedia</ulink>.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
&FIXME; SGML docbook...lower case elements...indentation...remarks...master document/include files
</para>
</chapter>
<chapter id="reading-writing"><title>Reading and Writing</title>
<para>
The DocBook source code -- user.dbk, for example -- is a plain text file that
can be directly edited and saved with any text editor such as emacs or vi.
</para>
<tip>
<para>
If you just want to read the documentation, you should not
need to read and understand this section, and render the docs yourself. The
&bochswebsite; has all this information in readable form already.
</para>
</tip>
<para>
To render DocBook source code into the nice readable form the end-user will
require, several tools are needed. These tools allow the .dbk file to be
rendered into such formats as HTML, PDF, and PostScript. This section
describes the tools you need and the steps you take to render the Bochs
documentation.
</para>
<tip>
<para>
The rendering process is one-way. That is, the DocBook source files will be
downloaded from SVN, edited, and uploaded to SVN as .dbk files. Along the
way, it will probably be necessary to render them into HTML, but only to
check one's work or to post them as part of a web page. (I hope I'm not the
only person to spend nine minutes trying to figure out how to 'compile' HTML
into DocBook format.)
</para>
</tip>
<sect1>
<title>Jade and DSSSL</title>
<para>
Here is what the Linux Documentation Project says about jade:
<blockquote>
<attribution>
LDP author's guide
</attribution>
<para>
Jade is the front-end processor for SGML and XML. It uses the DSSSL and
DocBook DTD to perform the verification and rendering from SGML and XML into
the target format.
</para>
</blockquote>
</para>
<para>
What does all this mean?
For purposes of Bochs documentation, jade reads the docbook source file and
writes out a HTML/PDF/PS file. Bochs documentation is in SGML format, though
apparantly jade can handle XML Docbooks as well. DSSSL stands for
<quote>Document Style Semantics and Specification Language</quote>, and it
tells jade how to translate the docbook tags into the target format. DSSSL
files are written in the Scheme programming language, which is a variant of
LISP. Learn more about DSSSL at <ulink
url="http://www.jclark.com/dsssl">Jim Clark's DSSSL page</ulink>.
The DocBook DTD is the formal description of what elements and attributes can
be used in a docbook.
</para>
<sect2>
<title>Installation</title>
<para>
The easiest way to get jade working in Linux is to install packages. The
recent RedHat, Suse, and Mandrake Linux distributions all include
openjade and SGML tools. If you can get the right packages installed,
you may save yourself a few hours of compiling and configuring from scratch.
For plex86, which also uses docbook, Kevin Lawton listed the packages that
he installed on Mandrake to get jade working:
<programlisting>
jadetex-3.5-2mdk
openjade-1.3-10mdk
docbook-dtd31-sgml-1.0-3mdk
docbook-utils-0.6-1mdk
docbook-style-dsssl-1.62-4mdk
docbook-dtd412-xml-1.0-3mdk
sgml-common-0.2-4mdk
xml-common-0.1-3mdk
</programlisting>
Under Debian, the following packages seem to be a bare minimum to install
DocBook and get it to render Bochs documentation into reader-friendly formats:
<programlisting>
jade
docbook
docbook-dsssl
</programlisting>
It's worth mentioning that, at the time of this writing, at least some of
the above-mentioned packages were in the testing or unstable branches of
Debian.
</para>
<para>
Under FreeBSD, just install the following ports:
<programlisting>
textproc/jade
textproc/dsssl-docbook-modular
textproc/docbook-410
</programlisting>
</para>
<para>
Hopefully, the required packages on other Linux distributions have
similar names. If you have jade working, please tell a documentation
writer the package names that you used so that we can include it in the docs.
&NEEDHELP;
</para>
<para>
If you cannot get jade to work using packages, you need to find and install
three things: the DocBook DTD version 4.1 from &OASIS;, the program
<ulink url="http://www.jclark.com/jade/">jade</ulink>
(or <ulink url="http://openjade.sourceforge.net/">openjade</ulink>), and the
<ulink url="http://sourceforge.net/projects/docbook/">Docbook DSSSL
stylesheets</ulink> for the formats that you want to render to. The whole
process is described in &docbookTDG; in Appendix III section A. If you want
to render to PostScript or Adobe PDF, you also need to install TeX and
and some associated tools. It is a nontrivial process.
</para>
<tip>
<para>
Just use the packages.
</para>
</tip>
<para>
For now, building the Bochs documentation also depends on some scripts called
docbook2html, docbook2pdf, and docbook2ps. These come from the docbook-tools
project at <ulink url="http://sources.redhat.com/docbook-tools">http://sources.redhat.com/docbook-tools</ulink>.
</para>
</sect2>
<sect2>
<title>Using jade with docbook2x scripts</title>
<para>
Check to see if you have the docbook2ps, docbook2pdf, and docbook2html
scripts. If so, you can probably use the Bochs Makefile. Just do
<programlisting>
cd $BOCHS/doc/docbook
make
</programlisting>
It should render three docbook books, one in user, one in development, and one
in and documentation. If there are no errors, look for the user guide
in <filename>$BOCHS/doc/docbook/user/user.pdf</filename>,
<filename>$BOCHS/doc/docbook/users/user.ps</filename>, and
<filename>$BOCHS/doc/docbook/users/book1.html</filename>. The HTML is broken
into lots of little chunks that link to each other, but book1.html is the first
one.
</para>
</sect2>
<sect2>
<title>Using jade directly</title>
<para>
If you don't have docbook2<replaceable>format</replaceable> scripts, you
can also run jade manually. The command is long, so you may want to make
your own script or edit your copy of the makefile. These commands assume that
you installed Norman Walsh's DSSSL stylesheets in <varname>$DSSSL</varname>.
To render the user's guide into HTML, type:
<programlisting>
cd $BOCHS/doc/docbook/user
jade -t sgml -d <varname>$DSSSL</varname>/html/docbook.dsl user.dbk
</programlisting>
Or, if you want to render the developer's guide into TeX format,
<programlisting>
cd $BOCHS/doc/docbook/developer
jade -t tex -d <varname>$DSSSL</varname>/print/docbook.dsl developer.dbk
</programlisting>
Or, if you want to render the documentation guide into Rich Text Format,
<programlisting>
cd $BOCHS/doc/docbook/documentation
jade -t rtf -d <varname>$DSSSL</varname>/print/docbook.dsl documentation.dbk
</programlisting>
I believe that the HTML stylesheet must have "-t sgml" but the print
stylesheet in the second example can have "-t rtf" for Rich Text Format,
"-t tex" for TeX, or "-t mif" for MIF.
</para>
<para>
Bochs has the convention of calling the docbook files
<replaceable>name</replaceable>.dbk, but any file name would work. Some
other people call them <replaceable>NAME</replaceable>.sgm for SGML.
</para>
</sect2>
<sect2>
<title>Configuration</title>
<para>
If the generated HTML files do not have the same names as the Bochs documentation
on the web, some kind of configuration is required. You need to edit the DSL file
to make sure the following settings are used.
<screen>
(define %root-filename% "index") ;; name for the root html file
(define %html-ext% ".html") ;; default extension for html output files
(define %html-prefix% "") ;; prefix for all filenames generated (except root)
(define %use-id-as-filename% #t) ;; if #t uses ID value, if present, as filename
;; otherwise a code is used to indicate level
;; of chunk, and general element number
;; (nth element in the document)
(define use-output-dir #f) ;; output in separate directory?
</screen>
</para>
<para>
If you like to have the screen sections shaded, this setting should help.
<screen>
(define %shade-verbatim% #t)
</screen>
</para>
</sect2>
</sect1>
<sect1 id="nsgmls"> <title>Nsgmls</title>
<para>
The Bochs documentation is written in SGML docbook style, so any tool which can
check SGML syntax can be used to check the docbook. The DTD (data type
description) for docbook tells exactly which elements can be used and where.
It says which attributes are required and which are optional, and how elements
should be nested. The term "validate" has a specific meaning in SGML. When
you validate a SGML document, it means that you read the DTD and then check
that the document conforms to all the rules of the DTD.
</para>
<para>
A program called nsgmls, written by James Clark <email>jjc@jclark.com</email>,
can validate an SGML document such as our docbook. Although nsgmls can do many
other things, this command will validate the docbook against the DTD which
defines the syntax:
<cmdsynopsis>
<command>nsgmls</command>
<arg choice="plain">-s</arg>
<arg choice="plain"><replaceable>filename</replaceable></arg>
</cmdsynopsis>
</para>
<para>
Nsgmls is part of SP, a "free object-oriented toolkit for SGML parsing and
entity management" by James Clark <email>jjc@jclark.com</email>. SP can be
found at
<ulink url="http://www.jclark.com/sp">http://www.jclark.com/sp</ulink>.
There is a complete man page for nsgmls
<ulink url="http://www.jclark.com/sp/nsgmls.htm">here</ulink>.
</para>
</sect1>
</chapter> <!-- end Rendering chapter -->
</book>

View File

@@ -0,0 +1,189 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs Documentation Manual</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="NEXT"
TITLE="Layout of Bochs Documentation"
HREF="layout.html"></HEAD
><BODY
CLASS="BOOK"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="BOOK"
><A
NAME="AEN1"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>Bochs Documentation Manual</A
></H1
><H3
CLASS="AUTHOR"
><A
NAME="AEN5"
></A
>Bryce Denney</H3
><H3
CLASS="AUTHOR"
><A
NAME="AEN8"
></A
>Michael Calabrese</H3
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="layout.html"
>Layout of Bochs Documentation</A
></DT
><DT
>2. <A
HREF="basics.html"
>Docbook Basics</A
></DT
><DD
><DL
><DT
>2.1. <A
HREF="basics.html#AEN26"
>Small Tutorial</A
></DT
><DT
>2.2. <A
HREF="references.html"
>References and Other Tutorials</A
></DT
></DL
></DD
><DT
>3. <A
HREF="conventions.html"
>Conventions</A
></DT
><DT
>4. <A
HREF="reading-writing.html"
>Reading and Writing</A
></DT
><DD
><DL
><DT
>4.1. <A
HREF="reading-writing.html#AEN113"
>Jade and DSSSL</A
></DT
><DD
><DL
><DT
>4.1.1. <A
HREF="reading-writing.html#AEN122"
>Installation</A
></DT
><DT
>4.1.2. <A
HREF="reading-writing.html#AEN142"
>Using jade with docbook2x scripts</A
></DT
><DT
>4.1.3. <A
HREF="reading-writing.html#AEN149"
>Using jade directly</A
></DT
></DL
></DD
><DT
>4.2. <A
HREF="nsgmls.html"
>Nsgmls</A
></DT
></DL
></DD
></DL
></DIV
><DIV
CLASS="LOT"
><DL
CLASS="LOT"
><DT
><B
>List of Tables</B
></DT
><DT
>3-1. <A
HREF="conventions.html#AEN83"
>list of problem words</A
></DT
></DL
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="layout.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Layout of Bochs Documentation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,164 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Layout of Bochs Documentation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="NEXT"
TITLE="Docbook Basics"
HREF="basics.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="basics.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="LAYOUT"
></A
>Chapter 1. Layout of Bochs Documentation</H1
><P
>The Bochs documentation is divided into three major divisions:
<P
></P
><UL
><LI
><P
> The User's Guide introduces the Bochs Emulator, and covers installation and use.
</P
></LI
><LI
><P
> Developer's Guide: Describes the internals of the Bochs Emulator for developers.
</P
></LI
><LI
><P
> Documentation Guide: Describes how the documentation is organized, and how to render it, and how to add to it. This section is in the documentation guide.
</P
></LI
></UL
>
</P
><P
>In docbook terminology, each of the three divisions is a book. Inside each
book are a series of chapters. A chapter may be divided into sections, and
each section is divided into more sections. Eventually we will add fancy
things like a table of contents, index, and glossary, when we learn how.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="basics.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bochs Documentation Manual</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Docbook Basics</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,184 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Nsgmls</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Reading and Writing"
HREF="reading-writing.html"><LINK
REL="PREVIOUS"
TITLE="Reading and Writing"
HREF="reading-writing.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="reading-writing.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Reading and Writing</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
>&nbsp;</TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="NSGMLS"
>4.2. Nsgmls</A
></H1
><P
>The Bochs documentation is written in SGML docbook style, so any tool which can
check SGML syntax can be used to check the docbook. The DTD (data type
description) for docbook tells exactly which elements can be used and where.
It says which attributes are required and which are optional, and how elements
should be nested. The term "validate" has a specific meaning in SGML. When
you validate a SGML document, it means that you read the DTD and then check
that the document conforms to all the rules of the DTD.</P
><P
>A program called nsgmls, written by James Clark <CODE
CLASS="EMAIL"
>&#60;<A
HREF="mailto:jjc@jclark.com"
>jjc@jclark.com</A
>&#62;</CODE
>,
can validate an SGML document such as our docbook. Although nsgmls can do many
other things, this command will validate the docbook against the DTD which
defines the syntax:
<P
><B
CLASS="COMMAND"
>nsgmls</B
> -s <TT
CLASS="REPLACEABLE"
><I
>filename</I
></TT
> </P
></P
><P
>Nsgmls is part of SP, a "free object-oriented toolkit for SGML parsing and
entity management" by James Clark <CODE
CLASS="EMAIL"
>&#60;<A
HREF="mailto:jjc@jclark.com"
>jjc@jclark.com</A
>&#62;</CODE
>. SP can be
found at
<A
HREF="http://www.jclark.com/sp"
TARGET="_top"
>http://www.jclark.com/sp</A
>.
There is a complete man page for nsgmls
<A
HREF="http://www.jclark.com/sp/nsgmls.htm"
TARGET="_top"
>here</A
>.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="reading-writing.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Reading and Writing</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="reading-writing.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,521 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Reading and Writing</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Conventions"
HREF="conventions.html"><LINK
REL="NEXT"
TITLE="Nsgmls"
HREF="nsgmls.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="conventions.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="nsgmls.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="READING-WRITING"
></A
>Chapter 4. Reading and Writing</H1
><P
>The DocBook source code -- user.dbk, for example -- is a plain text file that
can be directly edited and saved with any text editor such as emacs or vi. </P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>If you just want to read the documentation, you should not
need to read and understand this section, and render the docs yourself. The
<A
HREF="http://bochs.sourceforge.net"
TARGET="_top"
>Bochs web site</A
> has all this information in readable form already.</P
></BLOCKQUOTE
></DIV
><P
>To render DocBook source code into the nice readable form the end-user will
require, several tools are needed. These tools allow the .dbk file to be
rendered into such formats as HTML, PDF, and PostScript. This section
describes the tools you need and the steps you take to render the Bochs
documentation.</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>The rendering process is one-way. That is, the DocBook source files will be
downloaded from CVS, edited, and uploaded to CVS as .dbk files. Along the
way, it will probably be necessary to render them into HTML, but only to
check one's work or to post them as part of a web page. (I hope I'm not the
only person to spend nine minutes trying to figure out how to 'compile' HTML
into DocBook format.)</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN113"
>4.1. Jade and DSSSL</A
></H1
><P
>Here is what the Linux Documentation Project says about jade:
<A
NAME="AEN116"
></A
><TABLE
BORDER="0"
WIDTH="100%"
CELLSPACING="0"
CELLPADDING="0"
CLASS="BLOCKQUOTE"
><TR
><TD
WIDTH="10%"
VALIGN="TOP"
>&nbsp;</TD
><TD
VALIGN="TOP"
><P
> Jade is the front-end processor for SGML and XML. It uses the DSSSL and
DocBook DTD to perform the verification and rendering from SGML and XML into
the target format.
</P
></TD
><TD
WIDTH="10%"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
COLSPAN="2"
ALIGN="RIGHT"
VALIGN="TOP"
>--<SPAN
CLASS="ATTRIBUTION"
> LDP author's guide
</SPAN
></TD
><TD
WIDTH="10%"
>&nbsp;</TD
></TR
></TABLE
></P
><P
>What does all this mean?
For purposes of Bochs documentation, jade reads the docbook source file and
writes out a HTML/PDF/PS file. Bochs documentation is in SGML format, though
apparantly jade can handle XML Docbooks as well. DSSSL stands for
<SPAN
CLASS="QUOTE"
>"Document Style Semantics and Specification Language"</SPAN
>, and it
tells jade how to translate the docbook tags into the target format. DSSSL
files are written in the Scheme programming language, which is a variant of
LISP. Learn more about DSSSL at <A
HREF="http://www.jclark.com/dsssl"
TARGET="_top"
>Jim Clark's DSSSL page</A
>.
The DocBook DTD is the formal description of what elements and attributes can
be used in a docbook.</P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN122"
>4.1.1. Installation</A
></H2
><P
>The easiest way to get jade working in Linux is to install packages. The
recent RedHat, Suse, and Mandrake Linux distributions all include
openjade and SGML tools. If you can get the right packages installed,
you may save yourself a few hours of compiling and configuring from scratch.
For plex86, which also uses docbook, Kevin Lawton listed the packages that
he installed on Mandrake to get jade working:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> jadetex-3.5-2mdk
openjade-1.3-10mdk
docbook-dtd31-sgml-1.0-3mdk
docbook-utils-0.6-1mdk
docbook-style-dsssl-1.62-4mdk
docbook-dtd412-xml-1.0-3mdk
sgml-common-0.2-4mdk
xml-common-0.1-3mdk</PRE
></TD
></TR
></TABLE
>
Under Debian, the following packages seem to be a bare minimum to install
DocBook and get it to render Bochs documentation into reader-friendly formats:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> jade
docbook
docbook-dsssl</PRE
></TD
></TR
></TABLE
>
It's worth mentioning that, at the time of this writing, at least some of
the above-mentioned packages were in the testing or unstable branches of
Debian.</P
><P
>Under FreeBSD, just install the following ports:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> textproc/jade
textproc/dsssl-docbook-modular
textproc/docbook-410</PRE
></TD
></TR
></TABLE
>
<IMG
SRC="../images/undercon.png"> The generated HTML output doesn't look exactly the same as the Bochs
documentation on the web, so it seems as if some kind of configuration is still
needed.</P
><P
>Hopefully, the required packages on other Linux distributions have
similar names. If you have jade working, please tell a documentation
writer the package names that you used so that we can include it in the docs.
<IMG
SRC="../images/undercon.png"></P
><P
>If you cannot get jade to work using packages, you need to find and install
three things: the DocBook DTD version 4.1 from <A
HREF="http://www.oasis-open.org/"
TARGET="_top"
>OASIS</A
>, the program
<A
HREF="http://www.jclark.com/jade/"
TARGET="_top"
>jade</A
>
(or <A
HREF="http://openjade.sourceforge.net/"
TARGET="_top"
>openjade</A
>), and the
<A
HREF="http://sourceforge.net/projects/docbook/"
TARGET="_top"
>Docbook DSSSL
stylesheets</A
> for the formats that you want to render to. The whole
process is described in <A
HREF="http://www.docbook.org/tdg/en/html/docbook.html"
TARGET="_top"
>DocBook: The Definitive Guide</A
> in Appendix III section A. If you want
to render to PostScript or Adobe PDF, you also need to install TeX and
and some associated tools. It is a nontrivial process.</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>Just use the packages.</P
></BLOCKQUOTE
></DIV
><P
>For now, building the Bochs documentation also depends on some scripts called
docbook2html, docbook2pdf, and docbook2ps. These come from the docbook-tools
project at <A
HREF="http://sources.redhat.com/docbook-tools"
TARGET="_top"
>http://sources.redhat.com/docbook-tools</A
>.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN142"
>4.1.2. Using jade with docbook2x scripts</A
></H2
><P
>Check to see if you have the docbook2ps, docbook2pdf, and docbook2html
scripts. If so, you can probably use the Bochs Makefile. Just do
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> cd $BOCHS/doc/docbook
make</PRE
></TD
></TR
></TABLE
>
It should render three docbook books, one in user, one in development, and one
in and documentation. If there are no errors, look for the user guide
in <TT
CLASS="FILENAME"
>$BOCHS/doc/docbook/user/user.pdf</TT
>,
<TT
CLASS="FILENAME"
>$BOCHS/doc/docbook/users/user.ps</TT
>, and
<TT
CLASS="FILENAME"
>$BOCHS/doc/docbook/users/book1.html</TT
>. The HTML is broken
into lots of little chunks that link to each other, but book1.html is the first
one.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="AEN149"
>4.1.3. Using jade directly</A
></H2
><P
>If you don't have docbook2<TT
CLASS="REPLACEABLE"
><I
>format</I
></TT
> scripts, you
can also run jade manually. The command is long, so you may want to make
your own script or edit your copy of the makefile. These commands assume that
you installed Norman Walsh's DSSSL stylesheets in <CODE
CLASS="VARNAME"
>$DSSSL</CODE
>.
To render the user's guide into HTML, type:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> cd $BOCHS/doc/docbook/user
jade -t sgml -d <CODE
CLASS="VARNAME"
>$DSSSL</CODE
>/html/docbook.dsl user.dbk</PRE
></TD
></TR
></TABLE
>
Or, if you want to render the developer's guide into TeX format,
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> cd $BOCHS/doc/docbook/developer
jade -t tex -d <CODE
CLASS="VARNAME"
>$DSSSL</CODE
>/print/docbook.dsl developer.dbk</PRE
></TD
></TR
></TABLE
>
Or, if you want to render the documentation guide into Rich Text Format,
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
> cd $BOCHS/doc/docbook/documentation
jade -t rtf -d <CODE
CLASS="VARNAME"
>$DSSSL</CODE
>/print/docbook.dsl documentation.dbk</PRE
></TD
></TR
></TABLE
>
I believe that the HTML stylesheet must have "-t sgml" but the print
stylesheet in the second example can have "-t rtf" for Rich Text Format,
"-t tex" for TeX, or "-t mif" for MIF.</P
><P
>Bochs has the convention of calling the docbook files
<TT
CLASS="REPLACEABLE"
><I
>name</I
></TT
>.dbk, but any file name would work. Some
other people call them <TT
CLASS="REPLACEABLE"
><I
>NAME</I
></TT
>.sgm for SGML.</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="conventions.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="nsgmls.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Conventions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Nsgmls</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,188 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>References and Other Tutorials</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs Documentation Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Docbook Basics"
HREF="basics.html"><LINK
REL="PREVIOUS"
TITLE="Docbook Basics"
HREF="basics.html"><LINK
REL="NEXT"
TITLE="Conventions"
HREF="conventions.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs Documentation Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="basics.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. Docbook Basics</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="conventions.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="REFERENCES"
>2.2. References and Other Tutorials</A
></H1
><P
>Docbook was created more than 10 years ago, but since 1999, Docbook has been
under the guidance of the DocBook Technical Committee at OASIS. The
<A
HREF="http://www.oasis-open.org/committees/docbook"
TARGET="_top"
>OASIS website</A
>
distributes the official DocBook DTDs, and has pages on Docbook history,
samples, tools, and runs a few docbook mailing lists.</P
><P
>Since the Linux Documentation Project uses docbook, they have written some
good tutorial material. In particular the <A
HREF="http://www.linuxdoc.org/LDP/LDP-Author-Guide/index.html"
TARGET="_top"
>LDP Author Guide</A
>, by Jorge Godoy
is very good.</P
><P
>O'Reilly &amp; Associates publishes a book called <A
HREF="http://www.docbook.org/tdg/en/html/docbook.html"
TARGET="_top"
>DocBook: The Definitive
Guide</A
> by Norman Walsh and Leonard Muellner. You can buy it or read it
online. Norman Walsh knows what he's talking about, since he is the chair of
the DocBook Technical Committee. This is good for reference, since it has a
complete list of tags and their grammar.</P
><P
><A
HREF="http://www.ibiblio.org/godoy/sgml/docbook/howto/index.html"
TARGET="_top"
>DocBook
HOWTO, also by Jorge Godoy</A
></P
><P
>An article on lwn.net called <A
HREF="http://lwn.net/2000/features/DocBook"
TARGET="_top"
>Exploring SGML Docbook</A
>
focuses mostly on installation of tools from scratch: openjade, Norman Walsh's
DSSSL stylesheets, and jade2tex. If you can get the tools from RPMs or
whatever package your OS uses, use that instead.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="basics.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="conventions.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Docbook Basics</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="basics.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Conventions</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

View File

@@ -0,0 +1,42 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Bochs Documentation</TITLE>
<style TYPE="text/CSS">
<!--
A:link {color: blue; text-decoration: none}
A:visited {color: blue; text-decoration: none}
A:active {color: blue; text-decoration: none}
A:hover {color: blue; text-decoration: underline}
INPUT {border:thin solid black; font-size: 7pt; font-family:Verdana, Arial Helvetica}
.sidebar {font-family:Verdana, Arial, Helvetica; color: #000000}
A.sidebar:link {color: #000000; font-style: normal; text-decoration: none}
A.sidebar:visited {color: #000000; font-style: normal; text-decoration: none}
A.sidebar:active {color: #000000; font-style: normal; text-decoration: none}
A.sidebar:hover {color: blue; text-decoration: underline}
-->
</style>
</HEAD>
<BODY BGCOLOR="#FFFFFF" VLINK="#000000" ALINK="#000000" LINK="#000000">
<h1>Bochs Documentation</h1>
<P>
The documentation is divided into three parts:
<ul>
<li><a href="user/index.html">User Guide</a></li>
<li><a href="development/index.html">Development Guide</a></li>
<li><a href="documentation/index.html">Documentation Guide</a></li>
</ul>
<!--
Docbook files can be easily translated into PDF and PostScript.
However Bryce doesn't have his docbook software installed right, so
he can't produce PDF or PS at present. When he can make PDF and PS
files, we may want to revert to version 1.3 which had a link to each
book in each format.
-->

View File

@@ -0,0 +1,610 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>BIOS Tips</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Using the serial port"
HREF="serial-port.html"><LINK
REL="NEXT"
TITLE="How to enter special key combination"
HREF="enter-special-keys.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="serial-port.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="enter-special-keys.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BIOS-TIPS"
>8.14. BIOS Tips</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3150"
>8.14.1. Booting from CD-ROMs</A
></H2
><P
>A bootable CD-ROM has a special layout that is detected by the
BIOS boot loader code, and executed if it conforms the specifications.
This layout is called "El Torito Bootable CD-ROM Format Specification"
and has been published by Phoenix and IBM. A copy of this spec is on
<A
HREF="http://bochs.sourceforge.net/techdata.html"
TARGET="_top"
>Bochs tech specs page</A
>.
</P
><P
>El Torito specifies 3 ways to have a bootable CD:
<P
></P
><UL
><LI
><P
>floppy emulation boot: A standard floppy image is burnt on the CD.
In this case the BIOS has to redirect all first floppy accesses to this
image and the real floppy drive becomes the second one.</P
></LI
><LI
><P
>a "no emulation" boot: In this case the BIOS is instructed to load an
arbitrary number of sectors straight into memory, and execute it.</P
></LI
><LI
><P
>hard disk emulation: A hard disk image is burnt on the CD. The
BIOS has to redirect all hard disk accesses to that image. The real hard disks
are still available, with BIOS numbers 81h and up.</P
></LI
></UL
>
In Bochs 2.0, hard disk emulation is not implemented in the BIOS.
There are also subtilities about multiple boot-images CD-ROMs, that are
not handled by Bochs.
</P
><P
>However, our BIOS may be more strict than real PC BIOSes, I don't know.
But I would definitely be interested to know of any CD that can boot
on real hardware, but does not in Bochs.
</P
><P
>When failing to boot from CD-ROM, the BIOS outputs
the reason of the failure as
an error code, in the log file, and on the screen.
</P
><P
>Here is a summary of what can happen when booting from the CD.
</P
><DIV
CLASS="TABLE"
><A
NAME="AEN3165"
></A
><P
><B
>Table 8-1. CD Boot error codes</B
></P
><TABLE
BORDER="1"
RULES="all"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Error code</TH
><TH
>Reason</TH
></TR
></THEAD
><TBODY
><TR
><TD
> 0x01 </TD
><TD
> no atapi device found </TD
></TR
><TR
><TD
> 0x02 </TD
><TD
> no atapi cdrom found </TD
></TR
><TR
><TD
> 0x03 </TD
><TD
> can not read cd - BRVD </TD
></TR
><TR
><TD
> 0x04 </TD
><TD
> cd is not eltorito (BRVD) </TD
></TR
><TR
><TD
> 0x05 </TD
><TD
> cd is not eltorito (ISO TAG) </TD
></TR
><TR
><TD
> 0x06 </TD
><TD
> cd is not eltorito (ELTORITO TAG) </TD
></TR
><TR
><TD
> 0x07 </TD
><TD
> can not read cd - boot catalog </TD
></TR
><TR
><TD
> 0x08 </TD
><TD
> boot catalog : bad header </TD
></TR
><TR
><TD
> 0x09 </TD
><TD
> boot catalog : bad platform </TD
></TR
><TR
><TD
> 0x0A </TD
><TD
> boot catalog : bad signature </TD
></TR
><TR
><TD
> 0x0B </TD
><TD
> boot catalog : bootable flag not set </TD
></TR
><TR
><TD
> 0x0C </TD
><TD
> can not read cd - boot image </TD
></TR
></TBODY
></TABLE
></DIV
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>0x01 no atapi device found
0x02 no atapi cdrom found</PRE
></TD
></TR
></TABLE
>
For the first two errors, an ata-*: type=cdrom is probably missing
from the configuration file. This is what you get if no cdrom has
been defined in Bochs conf file.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>0x03 can not read cd - BRVD</PRE
></TD
></TR
></TABLE
>
For this error, the cdrom support has not been compiled in Bochs,
or Bochs could not open the file or device. This is what you get if
Bochs is not able to read the cd.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>0x04 cd is not eltorito (BRVD)
0x05 cd is not eltorito (ISO TAG)
0x06 cd is not eltorito (ELTORITO TAG)</PRE
></TD
></TR
></TABLE
>
For these errors, the data has been read from the cd, but
the cd does not conform to the El Torito specification. This
is what you get if the cd is not bootable.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>0x08 boot catalog : bad header
0x09 boot catalog : bad platform
0x0A boot catalog : bad signature
0x0B boot catalog : bootable flag not set</PRE
></TD
></TR
></TABLE
>
now the cd is eltorito, but the boot catalog is currupt, or
the cd was made to boot on a ppc system. This should not happen
for a x86 bootable cd.</P
><P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>0x07 can not read cd - boot catalog
0x0C can not read cd - boot image</PRE
></TD
></TR
></TABLE
>
here, specific part of the cd could not be read. This should
definitely not happen.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="BIOS-DISK-TRANSLATION"
>8.14.2. Disk translation</A
></H2
><P
>Since the beginning of the PC era, disks have grown in size by a factor of 10000. Due to
differences between the ATA specification and BIOSes implementations, when disks reached
critical sizes, it
became necessary to translate the CHS geometry (cylinders, heads, sectors per track)
between the BIOS (int 13h) and the ATA interface. Please refer to the
<A
HREF="http://burks.brighton.ac.uk/burks/pcinfo/hardware/atafaq/atafq.htm"
TARGET="_top"
>ATA-FAQ</A
>
and
<A
HREF="http://www.ata-atapi.com/hiwchs.htm"
TARGET="_top"
>Hale Landis' document</A
>
for a complete discussion of the problem.
</P
><P
>Unfortunately, there has never been any standard on the translation algorithms.
</P
><P
>Bochs implements 4 well-known algorithms, selectable in the configuration file
in the "<B
CLASS="COMMAND"
>ataX-xxxx: ..., translation='algorithm'</B
>" section.
</P
><DIV
CLASS="TABLE"
><A
NAME="AEN3227"
></A
><P
><B
>Table 8-2. Disk translation algorithms</B
></P
><TABLE
BORDER="1"
RULES="all"
CLASS="CALSTABLE"
><COL><COL><COL><COL><THEAD
><TR
><TH
>Algorithm</TH
><TH
>Maximum disk size</TH
><TH
>Maximum logical and physical geometry (CHS)</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>none</TD
><TD
>528MB (1032192 sectors)</TD
><TD
> LCHS:1024/16/63
PCHS:1024/16/63
</TD
><TD
> no translation is done. The CHS received at the int13h interface
is sent as is to the ATA interface.
</TD
></TR
><TR
><TD
>large</TD
><TD
>4.2GB (8257536 sectors)</TD
><TD
> LCHS:1024/128/63
PCHS:8192/16/63
</TD
><TD
> a standard bitshift algorithm (named Extended-CHS)
is used to translate the CHS between
the int13h interface
and the ATA interface. The translation is acheived by
multiplying/dividing the cylinder/head count by a power of 2
(2, 4 or 8).
(a factor of 16 could not be used because the
head count would become 256, and MS-DOS thought this was 0)
Note that the number of sectors per track is not changed, so
a lower spt value will lead to a lower maximum disk size.
</TD
></TR
><TR
><TD
>echs</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>synonym for large</TD
></TR
><TR
><TD
>rechs</TD
><TD
>7.9GB (15482880 sectors)</TD
><TD
> LCHS:1024/240/63
PCHS:15360/16/63
</TD
><TD
> a revised bitshift algorithm (called Revised Extended-CHS)
is used to translate the CHS between
the int13h interface
and the ATA interface. First the number of physical heads is forced to
15, and the number of cylinders is adjusted accordingly.
Then, as in the simple extended CHS algorithm, the translation
is acheived by
multiplying/dividing the cylinder/head count by a power of 2
(2, 4, 8 or 16).
The head count being forced to 15, it can safely be multiplied by 16
without crashing dos.
Note that the number of sectors per track is not changed, so
a lower spt value will lead to a lower maximum disk size.
</TD
></TR
><TR
><TD
>lba</TD
><TD
>8.4GB (16450560 sectors)</TD
><TD
> LCHS:1024/255/63
PCHS:16320/16/63
</TD
><TD
> a LBA-assisted algorithm
is used to translate the CHS between
the int13h interface
and the ATA interface. The translation is acheived by
first computing the physical size of the disk (LBA=C*H*S).
Then the sectors per track is forced to 63, and the head count
to 255. Then the cylinder count is computed (C=LBA/(63*255))
Note that the number of sectors per track is forced to 63
in the logical geometry, regardless of the actual geometry
reported by the disk.
Also note that the LBA-assisted algorithm has nothing to do with
LBA access at the ATA interface.
</TD
></TR
><TR
><TD
>auto</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>the best suited algorithm between none, large and lba is used</TD
></TR
></TBODY
></TABLE
></DIV
><P
>Setting a specific CHS translation should be done if you use a disk dump
of an actual disk, or use a real disk as a block device. You need to
know which geometry was used to format the disk, and which translation
was used. You must not set the translation to 'auto'.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>rechs translation should only be useful for compaq users who wants to
use a disk as a block device. Please report if you know any other
system that use such translation.
</P
></BLOCKQUOTE
></DIV
><P
>If you plan to create a new disk image (for example with bximage),
format it and install an OS on it, select the "auto" translation
for an automatic selection
of the best algorithm based on the disk image size. Be warned that an image created
with the "auto" translation might not be readable with previous versions of Bochs.
Upward compatibility will be maintained.
</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>This translation applies only to int13h BIOS disk accesses. Older OSes (e.g. MS-DOS)
tend to use them a lot. On modern OSes, disk accesses through BIOS int13h are
limited to boot loaders.
The usual rules and tricks of the installed OS still apply (ie 1024 cylinders boot limit).</P
></BLOCKQUOTE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="serial-port.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="enter-special-keys.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using the serial port</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>How to enter special key combination</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,187 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>bochs-announce mailing list</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Mailing Lists"
HREF="mailinglist.html"><LINK
REL="PREVIOUS"
TITLE="Mailing Lists"
HREF="mailinglist.html"><LINK
REL="NEXT"
TITLE="bochs-cvs mailing list"
HREF="bochs-cvs.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="mailinglist.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. Mailing Lists</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="bochs-cvs.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BOCHS-ANNOUNCE"
>7.2. bochs-announce mailing list</A
></H1
><P
>Bochs-announce is a moderated, low-traffic list which carries only periodic
announcements of Bochs releases and important events. If you have a very
important and truly relevant Bochs announcement, you can try posting it to
bochs-announce, but the moderator will have to approve it before it will
go out. On average, bochs-announce subscribers get one or two messages
per month. There are about 75 subscribers. Anyone may join the list.</P
><P
>To subscribe, go to the <A
HREF="http://lists.sourceforge.net/lists/listinfo/bochs-announce"
TARGET="_top"
>Bochs-Announce Info Page</A
> and type your email
address and a password into the web form and click <B
CLASS="COMMAND"
>Subscribe</B
>.
In a few minutes you will get a confirmation email. Follow the directions in
the email to complete the subscription process. To unsubscribe, go to the
<A
HREF="http://lists.sourceforge.net/lists/listinfo/bochs-announce"
TARGET="_top"
>same
page</A
> and type your email address in the blank at the bottom and click
on <B
CLASS="COMMAND"
>Edit Options</B
>. Then type your password and click
<B
CLASS="COMMAND"
>Unsubscribe</B
>.</P
><P
>There is no need to subscribe to both lists, because all bochs-announce
messages are forwarded to the developers list. If you subscribe to both, you
will get 2 copies of every announcement.</P
><P
><A
HREF="http://bochs.sourceforge.net/cgi-bin/topper.pl?name=Bochs+Announce+Archive&#38;url=http://sourceforge.net/mailarchive/forum.phpqmrkforum_ideq1855"
TARGET="_top"
>Archive of bochs-announce messages</A
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="mailinglist.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="bochs-cvs.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Mailing Lists</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="mailinglist.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>bochs-cvs mailing list</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,153 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>bochs-cvs mailing list</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Mailing Lists"
HREF="mailinglist.html"><LINK
REL="PREVIOUS"
TITLE="bochs-announce mailing list"
HREF="bochs-announce.html"><LINK
REL="NEXT"
TITLE="Mailing List Etiquette"
HREF="mailinglist-etiquette.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="bochs-announce.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 7. Mailing Lists</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="mailinglist-etiquette.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BOCHS-CVS"
>7.3. bochs-cvs mailing list</A
></H1
><P
>This is the cvs commit mailinglist (a unified diff email will be sent
whenever someone does a checkin in the bochs cvs repository).</P
><P
><A
HREF="http://bochs.sourceforge.net/cgi-bin/topper.pl?name=Bochs+CVS+Mailing+List+Archive&#38;url=http://sourceforge.net/mailarchive/forum.phpqmrkforum_ideq8301"
TARGET="_top"
>Archive of bochs-cvs messages</A
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="bochs-announce.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="mailinglist-etiquette.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>bochs-announce mailing list</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="mailinglist.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Mailing List Etiquette</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Bochs GNU/Linux DiskTools</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Use mtools to manipulate disk images"
HREF="mtools.html"><LINK
REL="NEXT"
TITLE="Win32 only: Tools to manipulate disk images"
HREF="winimage.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="mtools.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="winimage.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="BOCHS-LINUX-DISKTOOLS"
>8.3. Bochs GNU/Linux DiskTools</A
></H1
><P
><IMG
SRC="../images/undercon.png">
Bochs tools are external tools developped by ..., and useful to copy
to / from guest partition from a GNU/Linux host.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="mtools.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="winimage.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Use mtools to manipulate disk images</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Win32 only: Tools to manipulate disk images</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,209 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Notes about Cirrus SVGA usage</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Notes about VESA usage"
HREF="vesa-notes.html"><LINK
REL="NEXT"
TITLE="Disk Image Modes"
HREF="harddisk-modes.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="vesa-notes.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="harddisk-modes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CIRRUS-NOTES"
>8.17. Notes about Cirrus SVGA usage</A
></H1
><P
> Since Bochs 2.2 it is possible to use Cirrus SVGA graphics. The Cirrus device
supports both ISA and PCI depending on the <TT
CLASS="FILENAME"
>bochsrc</TT
> settings.
If PCI is disabled or the Cirrus card is not assigned to a PCI slot, it appears
as a CL-GD5430 ISA with 2MB VRAM. If you assign the Cirrus card to a PCI slot,
it appears as a CL-GD5446 PCI with 4MB VRAM.
</P
><P
> In order to use Cirrus SVGA, you need to compile Bochs using the <CODE
CLASS="OPTION"
>--enable-clgd54xx</CODE
>
option and enable it in your <TT
CLASS="FILENAME"
>bochsrc</TT
> by setting the
<A
HREF="bochsrc.html#BOCHSOPT-VGA"
>vga option</A
> to <CODE
CLASS="PARAMETER"
>cirrus</CODE
>.
Finally, you need to use the Cirrus version of the
<A
HREF="http://savannah.nongnu.org/projects/vgabios/"
TARGET="_top"
>LGPL'd VGABIOS</A
>
as <A
HREF="bochsrc.html#BOCHSOPT-VGAROMIMAGE"
>vgaromimage option</A
> for
applications to correctly detect Cirrus support.
</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> # Enable CL-GD5446 PCI
vga: extension=cirrus
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest-cirrus
i440fxsupport: enabled=1, slot1=cirrus
</PRE
></TD
></TR
></TABLE
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The VGABIOS is already included in the Bochs release, so no separate download is necessary.
</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="vesa-notes.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="harddisk-modes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Notes about VESA usage</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Disk Image Modes</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,286 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Common problems and what to do about them (Troubleshooting)</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Save and restore simulation"
HREF="using-save-restore.html"><LINK
REL="NEXT"
TITLE="Mouse behavior, enabling and disabling"
HREF="mouse-toggle.html"></HEAD
><BODY
CLASS="CHAPTER"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="using-save-restore.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="mouse-toggle.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="CHAPTER"
><H1
><A
NAME="COMMON-PROBLEMS"
></A
>Chapter 6. Common problems and what to do about them (Troubleshooting)</H1
><P
> <IMG
SRC="../images/undercon.png">
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> How to report a panic to the bug tracker?
Keyboard mapping problems
[...]
</PRE
></TD
></TR
></TABLE
>
</P
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="AEN2555"
>6.1. Bochs panics! What can I do?</A
></H1
><P
> Bochs does a very good job in emulating an x86 compatible computer, however,
it does not (yet) include a full (100%) emulation of every possible instruction,
(BIOS) function call or (hardware) device. Thus, in case something unusual
happens, either a not-so-common call to some (BIOS) function or device by
some software running inside of it, Bochs has two possibilities to react:
If the command doesn't look important (mainly happens only to non-implemented
functions in the BIOS), a notice is logged to the <A
HREF="bochsrc.html#BOCHSOPT-LOG"
>log file</A
>
and the emulation continues. If, however, the command looks important, Bochs
panics, because the software being emulated might depend on the successful
execution of the given instruction or behaviour of the device.
</P
><P
> A panic does not always mean that the software won't run inside of Bochs,
as the software might just be probing the computer for the presence of some
instruction/device, and in case it is not found, it simply won't be used at
all, by the software.
</P
><P
> You can tell Bochs what to do in case of a panic, by re-configuring the
<A
HREF="bochsrc.html#BOCHSOPT-DEBUG-INFO-ERROR-PANIC"
>panic option</A
>. If
you change the action to "ask", Bochs reports what has happened and asks
you what to do. The appearance of the "ask" feature depends on the display
library used and the platform. Some display libraries don't support it at all.
</P
><P
> Some of the device names reported in the panic message are abbreviations,
since the length of the names is limited to 5 characters. This small list
may help you finding out the name of the device that caused the panic.
</P
><DIV
CLASS="TABLE"
><A
NAME="AEN2563"
></A
><P
><B
>Table 6-1. Device prefixes</B
></P
><TABLE
BORDER="1"
RULES="all"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>Prefix</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>CLVGA</TD
><TD
>Cirrus SVGA</TD
></TR
><TR
><TD
>EFIRQ</TD
><TD
>External FPU IRQ</TD
></TR
><TR
><TD
>IOAP</TD
><TD
>I/O APIC</TD
></TR
><TR
><TD
>KMAP</TD
><TD
>Keyboard mapping</TD
></TR
><TR
><TD
>P2I</TD
><TD
>PCI-to-ISA bridge</TD
></TR
><TR
><TD
>PIDE</TD
><TD
>PCI IDE controller</TD
></TR
><TR
><TD
>PLGIN</TD
><TD
>Plugin interface</TD
></TR
><TR
><TD
>STIME</TD
><TD
>Slowdown timer</TD
></TR
><TR
><TD
>UNMP</TD
><TD
>Unmapped I/O handler</TD
></TR
><TR
><TD
>VTIME</TD
><TD
>Virtual timer</TD
></TR
></TBODY
></TABLE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="using-save-restore.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="mouse-toggle.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Save and restore simulation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Mouse behavior, enabling and disabling</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,629 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Configuring and using a tuntap network interface</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Setting Up Networking in DLX Linux"
HREF="dlxlinux-networking.html"><LINK
REL="NEXT"
TITLE="Using Bochs internal debugger"
HREF="internal-debugger.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dlxlinux-networking.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="internal-debugger.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CONFIG-TUNTAP"
>8.10. Configuring and using a tuntap network interface</A
></H1
><P
>If you use linux (optionally FreeBSD and Solaris, not tested),
you may want to access the network through a tuntap interface. The main
advantage of this interface, is that the guest has access to the host. The guest can even
have access to the whole network if the host routes or masquerades the guest requests.
No extra IP address is needed, all can be done using private IP addresses.</P
><P
>You'll find here instructions to set up Linux/Bochs to provide network access to the guest OS
through a tuntap interface and private IP network. We're going to see howto :
<P
></P
><UL
><LI
><P
>enable the tuntap interface in the Linux Kernel </P
></LI
><LI
><P
>configure Bochs to use the tuntap interface </P
></LI
><LI
><P
>set up the private network between the host and the guest </P
></LI
><LI
><P
>set up the host to masquerade the guest network accesses </P
></LI
></UL
></P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN2925"
>8.10.1. Tuntap description</A
></H2
><P
>From the <A
HREF="http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/tuntap.txt"
TARGET="_top"
>tuntap.txt</A
> file in the Linux kernel tree :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> TUN/TAP provides packet reception and transmission for user space programs.
It can be viewed as a simple Point-to-Point or Ethernet device, which
instead of receiving packets from a physical media, receives them from
user space program and instead of sending packets via physical media
writes them to the user space program.
When a program opens /dev/net/tun, driver creates and registers corresponding
net device tunX or tapX. After a program closed above devices, driver will
automatically delete tunXX or tapXX device and all routes corresponding to it.</PRE
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN2930"
>8.10.2. Set up the linux Kernel
<A
NAME="AEN2932"
HREF="#FTN.AEN2932"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></A
></H2
><P
>First make sure the tuntap module is included in the kernel :
<P
></P
><UL
><LI
><P
>if you use a recent distribution, chances are that the needed modules are already build</P
><P
>Make sure that "Kernel module loader" - module auto-loading support is enabled in your kernel.</P
><P
>Add following line to the /etc/modules.conf: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><PRE
CLASS="SCREEN"
> alias char-major-10-200 tun </PRE
></TD
></TR
></TABLE
> </P
><P
>Run: <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><PRE
CLASS="SCREEN"
> depmod -a</PRE
></TD
></TR
></TABLE
> The driver will be automatically loaded when application access /dev/net/tun.</P
></LI
><LI
><P
>Otherwise, recompile the kernel, including the configuration option
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="90%"
><TR
><TD
><PRE
CLASS="SCREEN"
> CONFIG_TUN (Network device support -&#62; Universal TUN/TAP device driver support) </PRE
></TD
></TR
></TABLE
>
</P
></LI
></UL
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Make sure there is a /dev/net/tun device.
(Can be created with '<B
CLASS="COMMAND"
>mkdir /dev/net ; mknod /dev/net/tun c 10 200'</B
>).</P
></BLOCKQUOTE
></DIV
></P
><P
>In the same way, to use masquerading, you need a kernel with the following options :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> CONFIG_IP_NF_CONNTRACK (Connection tracking)
CONFIG_IP_NF_IPTABLES (IP tables support)
CONFIG_IP_NF_NAT (Full NAT)</PRE
></TD
></TR
></TABLE
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Some of the other options in this group is probably also needed,
(but the default setting should be OK).</P
></BLOCKQUOTE
></DIV
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN2954"
>8.10.3. Configure Bochs to use the tuntap interface</A
></H2
><P
>Make sure Bochs has ne2000 support. If you have to recompile Bochs,
<B
CLASS="COMMAND"
>--enable-ne2000</B
> when running <B
CLASS="COMMAND"
>./configure</B
>
(see <A
HREF="compiling.html"
>Section 3.4</A
>)
</P
><P
>edit your <TT
CLASS="REPLACEABLE"
><I
>.bochsrc</I
></TT
> configuration file and add something like :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> ne2k: ioaddr=0x300, irq=9, mac=fe:fd:00:00:00:01,
ethmod=tuntap, ethdev=/dev/net/tun0, script=<TT
CLASS="REPLACEABLE"
><I
>/path/to/tunconfig</I
></TT
>
</PRE
></TD
></TR
></TABLE
>
</P
><P
> Since the tuntap interface cannot be configured until a process opens it,
Bochs may run a script file for you. In this case
<TT
CLASS="REPLACEABLE"
><I
>/path/to/tunconfig</I
></TT
> should be changed to match
the actual place where you'll create this script.
</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN2966"
>8.10.4. Set up the private network between the host and the guest</A
></H2
><P
> We'll set up a private network between the host and the guest with the following parameters:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> Host IP : 192.168.1.1
Guest IP : 192.168.1.2
</PRE
></TD
></TR
></TABLE
>
If your parameters are different, adapt the rest of the section to suit your needs.
</P
><P
> Create the <TT
CLASS="REPLACEABLE"
><I
>/path/to/tunconfig</I
></TT
> script :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> #!/bin/bash
/sbin/ifconfig ${1##/*/} 192.168.1.1
</PRE
></TD
></TR
></TABLE
>
The script get the interface name as the first parameter. Linux
will forward incoming packets between interfaces.
</P
><P
> Make it executable :<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
>chmod 755 <TT
CLASS="REPLACEABLE"
><I
>/path/to/tunconfig</I
></TT
></PRE
></TD
></TR
></TABLE
>
</P
><P
> Run Bochs, install the guest OS, and set the following network parameters in the guest OS:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> IP: 192.168.1.2
netmask: 255.255.255.0
gateway: 192.168.1.1
nameserver: whatever is used in linux
</PRE
></TD
></TR
></TABLE
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> Bochs must be started by root (at least for now - the
script won't have root privileges otherwise).
</P
></BLOCKQUOTE
></DIV
>
You may also have to edit /etc/hosts.allow in the host OS and add :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> ALL: 192.168.1.2
</PRE
></TD
></TR
></TABLE
>
Don't forget to set up the route on the guest.
</P
><P
> At this point, you should be able to ping/telnet/ftp/ssh the guest from the host
and vice-versa.
</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN2982"
>8.10.5. Set up the host to masquerade the guest network accesses</A
></H2
><P
> We are going to set up standard masquerading configuration. Edit
the <TT
CLASS="REPLACEABLE"
><I
>/path/to/tunconfig</I
></TT
> script ans add :
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> /sbin/iptables -D POSTROUTING -t nat -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j MASQUERADE &#62;&#38; /dev/null
/sbin/iptables -t nat -s 192.168.1.0/24 -d ! 192.168.1.0/24 -A POSTROUTING -j MASQUERADE
echo 1 &#62; /proc/sys/net/ipv4/ip_forward
</PRE
></TD
></TR
></TABLE
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The configuration assumes the default policy is
ACCEPT (can be examined by doing '<B
CLASS="COMMAND"
>/sbin/iptables -L</B
>')
</P
></BLOCKQUOTE
></DIV
>
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> The iptables package must be installed. </P
></BLOCKQUOTE
></DIV
>
And voila... The host should forward the packets of the guest to the rest of your network.
You could even have acces to the internet...
<IMG
SRC="../images/undercon.png"> add nice screenshot
<DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> You may need to load other modules if you want to use other fancy protocols (ftp,etc...)
</P
></BLOCKQUOTE
></DIV
>
</P
></DIV
></DIV
><H3
CLASS="FOOTNOTES"
>Notes</H3
><TABLE
BORDER="0"
CLASS="FOOTNOTES"
WIDTH="100%"
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN2932"
HREF="config-tuntap.html#AEN2932"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>much of the information of the following section is taken from
<A
HREF="http://maconlinux.org/lists/mol-general/August01/0056.html"
TARGET="_top"
> this email from Samuel Rydh of the Mac-On-Linux list</A
></P
></TD
></TR
></TABLE
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dlxlinux-networking.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="internal-debugger.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Setting Up Networking in DLX Linux</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using Bochs internal debugger</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,373 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Pre-defined CPU models</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Using Bochs"
HREF="using-bochs.html"><LINK
REL="PREVIOUS"
TITLE="The configuration interface 'textconfig'"
HREF="textconfig.html"><LINK
REL="NEXT"
TITLE="Save and restore simulation"
HREF="using-save-restore.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="textconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 5. Using Bochs</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="using-save-restore.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="CPU-MODELS"
>5.4. Pre-defined CPU models</A
></H1
><P
>If Bochs is compiled with cpu level 5 or higher the CPUID opcode is supported
and it can return some information about the cpu model and it's features. When
using a pre-defined CPU model in Bochs the features reported by CPUID are set up
according to the model's specification. The following table shows all available
CPU models with a short description. The amount of choices depends on the CPU
features enabled at compile time (3rd column).</P
><DIV
CLASS="TABLE"
><A
NAME="AEN3021"
></A
><P
><B
>Table 5-2. Bochs CPU models</B
></P
><TABLE
BORDER="1"
RULES="all"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Value</TH
><TH
>Description</TH
><TH
>Required Features</TH
></TR
></THEAD
><TBODY
><TR
><TD
>bx_generic</TD
><TD
>Default Bochs CPU configured with <A
HREF="bochsrc.html#BOCHSOPT-CPUID"
>CPUID</A
> option</TD
><TD
>cpu level 5</TD
></TR
><TR
><TD
>pentium</TD
><TD
>Intel Pentium (P54C)</TD
><TD
>cpu level 5</TD
></TR
><TR
><TD
>pentium_mmx</TD
><TD
>Intel Pentium MMX</TD
><TD
>cpu level 5</TD
></TR
><TR
><TD
>amd_k6_2_chomper</TD
><TD
>AMD-K6(tm) 3D processor (Chomper)</TD
><TD
>cpu level 5</TD
></TR
><TR
><TD
>p2_klamath</TD
><TD
>Intel Pentium II (Klamath)</TD
><TD
>cpu level 6</TD
></TR
><TR
><TD
>p3_katmai</TD
><TD
>Intel Pentium III (Katmai)</TD
><TD
>cpu level 6</TD
></TR
><TR
><TD
>p4_willamette</TD
><TD
>Intel(R) Pentium(R) 4 (Willamette)</TD
><TD
>cpu level 6</TD
></TR
><TR
><TD
>core_duo_t2400_yonah</TD
><TD
>Intel(R) Core(TM) Duo CPU T2400 (Yonah)</TD
><TD
>cpu level 6</TD
></TR
><TR
><TD
>atom_n270</TD
><TD
>Intel(R) Atom(TM) CPU N270</TD
><TD
>cpu level 6</TD
></TR
><TR
><TD
>p4_prescott_celeron_336</TD
><TD
>Intel(R) Celeron(R) 336 (Prescott)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>athlon64_clawhammer</TD
><TD
>AMD Athlon(tm) 64 Processor 2800+ (Clawhammer)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>athlon64_venice</TD
><TD
>AMD Athlon(tm) 64 Processor 3000+ (Venice)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>turion64_tyler</TD
><TD
>AMD Turion(tm) 64 X2 Mobile TL-60 (Tyler)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>phenom_8650_toliman</TD
><TD
>AMD Phenom X3 8650 (Toliman)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>core2_penryn_t9600</TD
><TD
>Intel Mobile Core 2 Duo T9600 (Penryn)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>corei5_lynnfield_750</TD
><TD
>Intel(R) Core(TM) i5 750 (Lynnfield)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>corei5_arrandale_m520</TD
><TD
>Intel(R) Core(TM) i5 M 520 (Arrandale)</TD
><TD
>cpu level 6, x86-64</TD
></TR
><TR
><TD
>corei7_sandy_bridge_2600k</TD
><TD
>Intel(R) Core(TM) i7-2600K (Sandy Bridge)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>zambezi</TD
><TD
>AMD FX(tm)-4100 Quad-Core Processor (Zambezi)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>trinity_apu</TD
><TD
>AMD A8-5600K APU (Trinity)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>ryzen</TD
><TD
>AMD Ryzen 7 1700</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>corei7_ivy_bridge_3770k</TD
><TD
>Intel(R) Core(TM) i7-3770K CPU (Ivy Bridge)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>corei7_haswell_4770</TD
><TD
>Intel(R) Core(TM) i7-4770 CPU (Haswell)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
><TR
><TD
>broadwell_ult</TD
><TD
>Intel(R) Processor 5Y70 CPU (Broadwell)</TD
><TD
>cpu level 6, x86-64, avx</TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="textconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="using-save-restore.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The configuration interface 'textconfig'</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="using-bochs.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Save and restore simulation</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,249 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Using Bochs and the remote GDB stub</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Using Bochs internal debugger"
HREF="internal-debugger.html"><LINK
REL="NEXT"
TITLE="Using the serial port"
HREF="serial-port.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="internal-debugger.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="serial-port.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DEBUGGING-WITH-GDB"
>8.12. Using Bochs and the remote GDB stub</A
></H1
><P
>This section covers how you can use Bochs with a remote GDB stub to debug your kernel.</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3101"
>8.12.1. Configuring Bochs</A
></H2
><P
>The GDB stub is not active in standard Bochs binary package. So you must recompile Bochs.
Download the Bochs source package, unpack it and run the configure script
with the <B
CLASS="COMMAND"
>--enable-gdb-stub</B
> argument.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> $ ./configure --enable-gdb-stub</PRE
></TD
></TR
></TABLE
>
After that, just run make and you should have a Bochs binary that contain a GDB stub in your directory.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3106"
>8.12.2. Running Bochs</A
></H2
><P
>Enable the <A
HREF="bochsrc.html#BOCHSOPT-GDBSTUB"
>gdbstub option</A
> in <TT
CLASS="FILENAME"
>bochsrc</TT
>, then just start Bochs as normal. Bochs will stop and wait for GDB to connect to the stub.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3111"
>8.12.3. Running GDB</A
></H2
><P
>Bochs GDB stub waits for a connection on TCP port 1234. Just start GDB like this:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> $ gdb YOUR-KERNEL
.
.
.
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0x0000fff0 in ?? ()
(gdb)</PRE
></TD
></TR
></TABLE
>
You are now connected to the remote GDB stub in Bochs. You are now able to set breakpoints.
Use the continue (c) command to continue the simulation.
Hitting ^C works. Example:
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> Program received signal 0, Signal 0.
syscall_testsuite_result (aux=0x1f11fe4) at ../rtmk/syscalls.c:33
33 {
(gdb)</PRE
></TD
></TR
></TABLE
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="internal-debugger.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="serial-port.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Using Bochs internal debugger</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Using the serial port</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,487 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>How to make a simple disk image</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="NEXT"
TITLE="Use mtools to manipulate disk images"
HREF="mtools.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="howto.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="mtools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DISKIMAGEHOWTO"
>8.2. How to make a simple disk image</A
></H1
><P
>This was contributed by Greg Alexander in October 2001 and updated by
Volker Ruppert in October 2013.</P
><P
>What you need:
<P
></P
><UL
><LI
><P
>An executable version of Bochs. See <A
HREF="installation.html#DOWNLOADING"
>Downloading Bochs</A
> and <A
HREF="compiling.html"
>Compiling Bochs</A
>.</P
></LI
><LI
><P
>The bximage program, included with Bochs.</P
></LI
><LI
><P
>A FreeDOS boot disk, or a boot disk from another OS capable of
producing DOS partitions (e.g. a Linux install disk).</P
></LI
><LI
><P
>(Optional) mtools, a program for manipulating DOS disks/images.</P
></LI
></UL
>&#13;</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3729"
>8.2.1. Create a flat image</A
></H2
><P
>Option 1: Using the Unix <B
CLASS="COMMAND"
>dd</B
> utility:</P
><P
>You will need to know the geometry of the disk you want to
create. You have to compute the disk sector count:
<PRE
CLASS="SCREEN"
>Sectors = Cylinders * Heads * SectorsPerTrack</PRE
></P
><P
>Use the dd command to create your file:
<PRE
CLASS="SCREEN"
>dd if=/dev/zero of=teaching.img bs=512 count=<TT
CLASS="REPLACEABLE"
><I
>sectors</I
></TT
></PRE
>
(replace "sectors" with the number you computed at the
previous step).</P
><P
>When you'll update your configuration file, please
fill in the same cylinders, heads and sector per
track values.</P
><P
>Option 2: Run <B
CLASS="COMMAND"
>bximage</B
> to create a disk image file.
You will be greeted with the following prompt:
<PRE
CLASS="SCREEN"
>========================================================================
bximage
Disk Image Creation / Conversion / Resize and Commit Tool for Bochs
$ID: bximage.cc 11906 2013-10-23 08:35:21Z vruppert $
========================================================================
1. Create new floppy or hard disk image
2. Convert hard disk image to other format (mode)
3. Resize hard disk image
4. Commit 'undoable' redolog to base image
0. Quit
Please choose one [0]</PRE
></P
><P
>Since we want to create a new image, we have to type '1'
and then <B
CLASS="KEYCAP"
>Enter</B
>.
<PRE
CLASS="SCREEN"
>Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd]</PRE
></P
><P
>Since we are creating a hard disk image, accept the default of hd by
pressing <B
CLASS="KEYCAP"
>Enter</B
> or typing 'hd' and pressing
<B
CLASS="KEYCAP"
>Enter</B
>. Next, bximage will ask for the type of
hd to create:
<PRE
CLASS="SCREEN"
>What kind of image should I create?
Please type flat, sparse, growing or vpc. [flat]</PRE
></P
><P
>We want to create a simple flat image, so accept the default
by pressing <B
CLASS="KEYCAP"
>Enter</B
>. Then, bximage will ask
for the size of the disk image you want to create, in Megabytes:
<PRE
CLASS="SCREEN"
>Enter the hard disk size in megabytes, between 1 and 8257535
[10]</PRE
></P
><P
>Enter the size of the hard disk you want to create, and press
<B
CLASS="KEYCAP"
>Enter</B
>. Then bximage will ask you for a filename to use
for the file it is creating.
<PRE
CLASS="SCREEN"
>What should be the name of the image?
[c.img]</PRE
></P
><P
>At this point, type in the filename you want to use for the image. The
default of "c.img" is appropriate if this will be your only hard disk
image. After you have typed in the name of the filename you want to
use, press <B
CLASS="KEYCAP"
>Enter</B
>. Bximage will tell you it is writing the disk
and then it will show you a line that should be added to your
<TT
CLASS="FILENAME"
>bochsrc</TT
> when you want to use this disk image. I named my
10 Megabyte image "teaching.img" and the output of bximage looked like
this:
<PRE
CLASS="SCREEN"
>[c.img] teaching.img
Creating hard disk image 'c.img' with CHS=20/16/63</PRE
></P
><P
>The following line should appear in your <TT
CLASS="FILENAME"
>bochsrc</TT
>:
<PRE
CLASS="SCREEN"
> <A
HREF="bochsrc.html#BOCHSOPT-ATA-MASTER-SLAVE"
>ata0-master</A
>: type=disk, path="teaching.img", mode=flat, cylinders=20, heads=16, spt=63</PRE
></P
><P
>At this point, a file called "teaching.img" was created in my current
directory and is ready to be used as an image file for a Bochs session.</P
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>You may want to name your image <TT
CLASS="FILENAME"
>teaching_20-16-63.img</TT
>
so that you always know the values to use for CHS.</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN3767"
>8.2.2. Partition and format your image file</A
></H2
><P
>Option 1: Using FreeDOS (Advantage: Creates a MBR on the partition.)</P
><P
>First, you need to edit the <TT
CLASS="FILENAME"
>bochsrc</TT
> file that Bochs uses for
configuration information (see <A
HREF="search-order.html"
>Section 5.2</A
>). Open <TT
CLASS="FILENAME"
>bochsrc</TT
>
with a text editor. Remove all lines in the file which start with "ata0-master:". Add the "ata0-master:"
line that was displayed when you ran bximage to <TT
CLASS="FILENAME"
>bochsrc</TT
> at the
same place where you removed the old "ata0-master:" lines from.</P
><P
>Also, you need to download or create a FreeDOS (or DOS, or Windows, or
Linux) disk image. Modify the "floppya:" line in your <TT
CLASS="FILENAME"
>bochsrc</TT
> to point
at the downloaded FreeDOS floppy image and change its status to "status=inserted".</P
><P
>Save and close your <TT
CLASS="FILENAME"
>bochsrc</TT
>. Now run Bochs (see <A
HREF="using-bochs.html"
>Chapter 5</A
>).</P
><P
>Use the standard FreeDOS commands <B
CLASS="COMMAND"
>fdisk</B
> and
<B
CLASS="COMMAND"
>format</B
> to format your hard
drive image. You must make the image bootable to be able to boot
without a floppy disk. However, creating a bootable disk image is best
done with a boot disk from the OS you intend to install on the image.</P
><P
>Option 2: Using mtools (Disadvantage: Cannot create bootable images
without a MBR image.)</P
><P
>Use a text editor to add the following line to the file <TT
CLASS="FILENAME"
>~/.mtoolsrc</TT
>:</P
><PRE
CLASS="SCREEN"
>drive c: file="<TT
CLASS="REPLACEABLE"
><I
>path</I
></TT
>/filename.img" partition=1</PRE
><P
>Save and close <TT
CLASS="FILENAME"
>.mtoolsrc</TT
>. Next, execute the following commands to
create a partition table for the drive image:</P
><PRE
CLASS="SCREEN"
>mpartition -I -s <TT
CLASS="REPLACEABLE"
><I
>spt</I
></TT
> -t <TT
CLASS="REPLACEABLE"
><I
>cyl</I
></TT
> -h <TT
CLASS="REPLACEABLE"
><I
>heads</I
></TT
> c:
mpartition -cpv -s <TT
CLASS="REPLACEABLE"
><I
>spt</I
></TT
> -t <TT
CLASS="REPLACEABLE"
><I
>cyl</I
></TT
> -h <TT
CLASS="REPLACEABLE"
><I
>heads</I
></TT
> c:</PRE
><P
>For example, for my 10 meg drive, I used:
<PRE
CLASS="SCREEN"
>mpartition -I -s 63 -t 20 -h 16 c:
mpartition -cpv -s 63 -t 20 -h 16 c:</PRE
></P
><P
>Next, format the partition you just created using the mformat command:
<PRE
CLASS="SCREEN"
>mformat c:</PRE
></P
><P
>And you now have a formatted disk image containing a single DOS
partition.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>The mpartition command doesn't handle images larger than 1024 cylinders properly.
The partition size reported by fdisk is okay, but mformat reports only 504 MB
(tested with mtools 3.9.9).</P
></BLOCKQUOTE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="mtools.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Tips and Techniques</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Use mtools to manipulate disk images</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,331 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Setting Up Networking in DLX Linux</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="Simulating a Symmetric Multiprocessor (SMP) Machine"
HREF="smp.html"><LINK
REL="NEXT"
TITLE="Configuring and using a tuntap network interface"
HREF="config-tuntap.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="smp.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="config-tuntap.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DLXLINUX-NETWORKING"
>8.9. Setting Up Networking in DLX Linux</A
></H1
><P
>All Bochs binaries come with a working version of DLX Linux. This section
describes how to configure networking in Bochs and enable it within
DLX Linux. First you must add a <CODE
CLASS="VARNAME"
>ne2k</CODE
> line in your bochsrc
file. Then, when you boot the DLX Linux image, you need to type some Linux
commands to set up an IP address, a network route, and a name server.</P
><P
>When you have an <CODE
CLASS="VARNAME"
>ne2k</CODE
> line in your bochsrc file, Bochs
will emulate a network card called an NE2000. Below are some examples of valid
<CODE
CLASS="VARNAME"
>ne2k</CODE
> lines for various operating systems. Choose the
one that's closest to what you need, add it to your bochsrc file, and
edit the values if necessary.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> # sample for Mac OS X
ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=en0
# sample for FreeBSD
ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
# sample for Linux
ne2k: ioaddr=0x300, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
# sample for Windows
ne2k: ioaddr=0x300, irq=9, mac=00:c4:3B:00:C3:00, ethmod=win32, ethdev=NE2000</PRE
></TD
></TR
></TABLE
>
You see the pattern. Usually you won't need to change the I/O address, IRQ
number, or MAC address. The <CODE
CLASS="VARNAME"
>ethmod</CODE
> value depends on your
host operating system, and it must be either <CODE
CLASS="CONSTANT"
>null</CODE
>,
<CODE
CLASS="CONSTANT"
>fbsd</CODE
> (for FreeBSD or OpenBSD), <CODE
CLASS="CONSTANT"
>linux</CODE
>,
or <CODE
CLASS="CONSTANT"
>win32</CODE
>. The <CODE
CLASS="VARNAME"
>ethdev</CODE
> setting is the
name of the network interface on your system, and is also OS-dependent. On
UNIX systems you can get the name of the network interface by running
<B
CLASS="COMMAND"
>ifconfig</B
>. (Don't choose the loopback interface.) On
Windows systems, the correct ethdev setting is not always obvious, so we
provide a utility called <B
CLASS="COMMAND"
>niclist</B
> to list the names of
network interfaces to use. When you run <B
CLASS="COMMAND"
>niclist</B
>, it will
suggest an <CODE
CLASS="VARNAME"
>ne2k</CODE
> line which is a very good first try.</P
><P
>Next, if you are on a UNIX machine you will need to become the root user.
Since bochs is sending and receiving raw network packets, you need to be root
to use the network device. To allow normal users to do this would be a
security problem.</P
><P
>Now run Bochs to boot DLX Linux. Press enter a few times to accept the default
configuration choices. This tells Bochs read the configuration file and then
begin. DLX Linux should boot in the Bochs window, and you should see
that Linux detects the NE2000 card. Eventually it gets to a login prompt.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
NE*000 ethercard probe at 0x300: b0 c4 20 00 00 00
eth0: NE2000 found at 0x300, using IRQ 9.</PRE
></TD
></TR
></TABLE
></P
><P
>At the login prompt, type "root" to log in as root. Then type the ifconfig and
route commands to set up networking. The exact IP numbers in the example won't
work for you; you must choose an IP configuration that is legal on your
network.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> dlx login: root
Linux 1.3.89.
dlx:~# ifconfig eth0 192.168.0.99 # set bochs IP address
dlx:~# route add -net 192.168.0.0 # first 3 numbers match IP
dlx:~# route add default gw 192.168.0.1 # your gateway to the net
dlx:~# _</PRE
></TD
></TR
></TABLE
></P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>The bochs IP address must be an unused IP address on your
network. If you duplicate someone else's IP address, your network will
become very confused.</P
></BLOCKQUOTE
></DIV
><P
>Finally, the network is ready and you can test it out with ping, telnet, or ftp
to various machines by their numerical IP address. Keep in mind that for all
UNIX host platforms, Bochs networking cannot talk to the host machine. That
means the host machine can't be the gateway either. You need another physical
machine on the network that bochs can talk to. On Win32 this restriction does
not apply.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>When you have a working network configuration, you can make DLX Linux recreate
the same settings the next time you boot. Just add the ifconfig and route
commands to the end of /etc/rc.d/rc.inet1. I won't try to describe how
to use the <B
CLASS="COMMAND"
>vi</B
> editor in this limited amount of space...</P
></BLOCKQUOTE
></DIV
><P
>To configure a name
server, set up <TT
CLASS="FILENAME"
>/etc/resolv.conf</TT
> with the IP address of
your name server as shown.
<TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="SCREEN"
> dlx:~# echo 'nameserver 192.168.0.1' &#62; /etc/resolv.conf</PRE
></TD
></TR
></TABLE
></P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="smp.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="config-tuntap.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Simulating a Symmetric Multiprocessor (SMP) Machine</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Configuring and using a tuntap network interface</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,186 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>How to enter special key combination</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Tips and Techniques"
HREF="howto.html"><LINK
REL="PREVIOUS"
TITLE="BIOS Tips"
HREF="bios-tips.html"><LINK
REL="NEXT"
TITLE="Notes about VESA usage"
HREF="vesa-notes.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="bios-tips.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 8. Tips and Techniques</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="vesa-notes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="ENTER-SPECIAL-KEYS"
>8.15. How to enter special key combination</A
></H1
><P
>Your window manager may trap the key combination you want to enter
in Bochs guest OS, for example <B
CLASS="KEYCAP"
>control</B
>+<B
CLASS="KEYCAP"
>alt</B
>+<B
CLASS="KEYCAP"
>delete</B
>. Here is a work-around:</P
><P
>Press and hold <B
CLASS="KEYCAP"
>control</B
>+<B
CLASS="KEYCAP"
>alt</B
>,
move your mouse cursor outside of the Bochs window. Release them, move
the cursor back in the Bochs window and press <B
CLASS="KEYCAP"
>delete</B
>.</P
><P
>This should work for any key combination.</P
><P
>If you need one key combination frequently, set it up as <A
HREF="bochsrc.html#BOCHSOPT-USER-SHORTCUT"
>user key combination</A
>
in your configuration file. This key combination is sent to the guest OS
when you press the user button in the <A
HREF="textconfig.html#HEADERBAR"
>headerbar</A
>.
Depending on the used <A
HREF="bochsrc.html#BOCHSOPT-DISPLAYLIBRARY"
>display_library option</A
>,
it may even be possible to edit the shortcut before sending it.</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="bios-tips.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="vesa-notes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>BIOS Tips</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="howto.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Notes about VESA usage</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,632 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>FAQ</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Introduction to Bochs"
HREF="introduction.html"><LINK
REL="PREVIOUS"
TITLE="Supported Platforms"
HREF="supported-platforms.html"><LINK
REL="NEXT"
TITLE="Release Notes"
HREF="release-notes.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="supported-platforms.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Introduction to Bochs</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="release-notes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="FAQ"
>1.9. FAQ</A
></H1
><DIV
CLASS="QANDASET"
><DL
><DT
>1.9.1. <A
HREF="faq.html#AEN284"
>Is Bochs Open Source?</A
></DT
><DT
>1.9.2. <A
HREF="faq.html#AEN291"
>How do you pronounce "Bochs"?</A
></DT
><DT
>1.9.3. <A
HREF="faq.html#AEN296"
>Who is the author of Bochs?</A
></DT
><DT
>1.9.4. <A
HREF="faq.html#AEN302"
> Who maintains Bochs now?
</A
></DT
><DT
>1.9.5. <A
HREF="faq.html#AEN308"
> Tell me about performance when running Bochs.
</A
></DT
><DT
>1.9.6. <A
HREF="faq.html#AEN314"
> Does Bochs use a disk partition to install the OS?
</A
></DT
><DT
>1.9.7. <A
HREF="faq.html#AEN319"
> Why can't I use Bochs with my current Win95 installation?
</A
></DT
><DT
>1.9.8. <A
HREF="faq.html#AEN324"
> Is there a developer's email list for Bochs?
</A
></DT
><DT
>1.9.9. <A
HREF="faq.html#AEN330"
> Is there an IRC channel for Bochs?
</A
></DT
><DT
>1.9.10. <A
HREF="faq.html#AEN335"
> Do you know of any snapshots of Bochs running Win95?
</A
></DT
><DT
>1.9.11. <A
HREF="faq.html#AEN341"
> Does Bochs support a CD-ROM?
</A
></DT
><DT
>1.9.12. <A
HREF="faq.html#AEN346"
> Does Bochs support a sound device?
</A
></DT
><DT
>1.9.13. <A
HREF="faq.html#AEN352"
> Does Bochs support a network card?
</A
></DT
><DT
>1.9.14. <A
HREF="faq.html#AEN358"
> What applications are known to run inside of Bochs?
</A
></DT
><DT
>1.9.15. <A
HREF="faq.html#AEN364"
> I am new to Bochs, how do I start?
</A
></DT
></DL
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN284"
></A
><B
>1.9.1. </B
>Is Bochs Open Source?</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes! Bochs is released under the <A
HREF="http://www.gnu.org/copyleft/lesser.html"
TARGET="_top"
>GNU LGPL</A
>,
much thanks to <A
HREF="http://www.linux-mandrake.com"
TARGET="_top"
>MandrakeSoft</A
>, makers
of the Linux-Mandrake distribution.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN291"
></A
><B
>1.9.2. </B
>How do you pronounce "Bochs"?</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Phonetically the same as the English word "box". It's just a play on the word "box", since techies like to call their machines a "Linux box", "Windows box", ... Bochs emulates a box inside a box.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN296"
></A
><B
>1.9.3. </B
>Who is the author of Bochs?</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Kevin Lawton is the primary author of Bochs. There have been bug fixes,
enhancements, and code contributions from some few hundred people, so
it is not possible to list them all. Recently, Kevin has been working
on a PC virtualization project called <A
HREF="http://savannah.nongnu.org/projects/plex86"
TARGET="_top"
>plex86</A
>. In Fall 2002, he
made contributed some major CPU speedups and helped with integration
and debugging of the x86-64 emulation code.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN302"
></A
><B
>1.9.4. </B
> Who maintains Bochs now?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> With Kevin's help, in April 2001, the members of the bochs-developers
mailing list set up a new official Bochs site hosted by <A
HREF="http://sourcefourge.net"
TARGET="_top"
>Source Forge</A
>. The admins on this
project are Greg Alexander, Don Becker, Christophe Bothamy, and Bryce
Denney.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN308"
></A
><B
>1.9.5. </B
> Tell me about performance when running Bochs.
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Because Bochs emulates every x86 instruction and all the devices in a PC
system, it does not reach high emulation speeds. Kevin reported
approximately 1.5MIPS using Bochs on a 400MHz PII Linux machine. Users
who have an x86 processor and want the highest emulation speeds may want
to consider PC virtualization software such as plex86 (free software)
or VMware (proprietary and commercial). Another related project is
<A
HREF="http://fabrice.bellard.free.fr/qemu/"
TARGET="_top"
>QEMU</A
>.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN314"
></A
><B
>1.9.6. </B
> Does Bochs use a disk partition to install the OS?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> No. It uses a disk image file, which is simply a large file, like any other file, on your platform's disk.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN319"
></A
><B
>1.9.7. </B
> Why can't I use Bochs with my current Win95 installation?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Think about this. If you had two different PC's, they would require different hardware drivers. So you may not be able to safely move a disk drive with Win95 on it, from one to the other. Bochs is no different. It emulates a certain set of hardware devices, and requires each OS be configured for those devices.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN324"
></A
><B
>1.9.8. </B
> Is there a developer's email list for Bochs?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. For instructions on joining, refer to
<A
HREF="mailinglist.html"
>Chapter 7</A
>.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN330"
></A
><B
>1.9.9. </B
> Is there an IRC channel for Bochs?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. You will usually find Bochs developers and users on IRC at irc.freenode.net:6667, channel #bochs.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN335"
></A
><B
>1.9.10. </B
> Do you know of any snapshots of Bochs running Win95?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes! Look for "screen shots" on <A
HREF="http://bochs.sourceforge.net"
TARGET="_top"
>bochs.sourceforge.net</A
> or on other Bochs sites.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN341"
></A
><B
>1.9.11. </B
> Does Bochs support a CD-ROM?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes, a CD-ROM is supported in Linux, Windows, BeOS, and most BSDs. The
CD-ROM drivers for Bochs allow the guest operating system to access the
host operating system's CD-ROM data directly.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN346"
></A
><B
>1.9.12. </B
> Does Bochs support a sound device?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes, there is Sound Blaster emulation support for most common operation systems,
see <A
HREF="sb16-emulation.html"
>Section 4.3</A
> for details.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN352"
></A
><B
>1.9.13. </B
> Does Bochs support a network card?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Yes. Bochs contains a model of an NE2000 compatible network card.
Networking is not supported on all platforms. See
<A
HREF="features.html"
>Section 1.7</A
> for details.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN358"
></A
><B
>1.9.14. </B
> What applications are known to run inside of Bochs?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> Well, lot's of different OS's run inside of Bochs, so
thousands. I'm assuming you are asking about Windows programs.
To give you a few, the following ones from the Winstone'98 tests
worked: Access 97, CorelDRAW! 7, Excel 97, Lotus 1-2-3 97, Word 97,
PowerPoint 97, Quattro Pro 7, WordPerfect 7.</P
><P
>Also, I've compiled an entire OS kernel inside Bochs before. Not
to mention, running DOOM, though at then-pathetic speeds.
</P
></DIV
></DIV
><DIV
CLASS="QANDAENTRY"
><DIV
CLASS="QUESTION"
><P
><A
NAME="AEN364"
></A
><B
>1.9.15. </B
> I am new to Bochs, how do I start?
</P
></DIV
><DIV
CLASS="ANSWER"
><P
><B
> </B
> You should read <A
HREF="setup.html"
>Chapter 4</A
> first. Next, you can check <A
HREF="guests.html"
>Chapter 9</A
>
if there are already instructions on how to install your (guest) OS inside of Bochs.
</P
></DIV
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="supported-platforms.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="release-notes.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Supported Platforms</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="introduction.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Release Notes</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

View File

@@ -0,0 +1,536 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Features</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Introduction to Bochs"
HREF="introduction.html"><LINK
REL="PREVIOUS"
TITLE="Third Party Software Licensing and Temporary Files"
HREF="thirdparty.html"><LINK
REL="NEXT"
TITLE="Supported Platforms"
HREF="supported-platforms.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="thirdparty.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 1. Introduction to Bochs</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="supported-platforms.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="FEATURES"
>1.7. Features</A
></H1
><P
>The following table shows the features of Bochs and which platforms they
currently work with.</P
><DIV
CLASS="TABLE"
><A
NAME="AEN83"
></A
><P
><B
>Table 1-1. Bochs Features</B
></P
><TABLE
BORDER="1"
RULES="all"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Feature</TH
><TH
>Supported?</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>configure script</TD
><TD
>Yes</TD
><TD
>Bochs uses GNU autoconf to configure Makefiles and headers.
Autoconf helps Bochs to compile on a wide variety of platforms.
</TD
></TR
><TR
><TD
>386,486,Pentium Emulation</TD
><TD
>Yes</TD
><TD
>Bochs can be configured to emulate one of several families of Intel hardware. Some Pentium features are unsupported, such as MTRR or SMM (System Management Mode).</TD
></TR
><TR
><TD
>P6 and later CPU Emulation</TD
><TD
>Yes</TD
><TD
>Bochs can be configured to emulate any P6 family processor including optional MMX and SSE instructions.
</TD
></TR
><TR
><TD
>Pentium 4 Emulation</TD
><TD
>Incomplete</TD
><TD
>A few Pentium 4 features are incomplete, such as an on-chip APIC extensions (XAPIC) for SMP simulation.
</TD
></TR
><TR
><TD
>x86-64 Extensions Emulation</TD
><TD
>Yes</TD
><TD
>Bochs can be configured to emulate x86-64 with all Intel (CMPXCHG16B instruction) or AMD (RDTSCP instruction) extensions.</TD
></TR
><TR
><TD
>Command Line Debugger</TD
><TD
>Yes</TD
><TD
>Powerful command line debugger (optional) that lets you stop
execution and examine registers and memory, set breakpoints, etc. Unfortunatelly
the debugger still lacks x86-64 support and almost unusable for debugging
x86-64 workloads.
</TD
></TR
><TR
><TD
>Floating Point</TD
><TD
>Yes</TD
><TD
>Uses software floating point engine based on <A
HREF="http://www.jhauser.us/arithmetic/SoftFloat.html"
TARGET="_top"
>SoftFloat floating point emulation library</A
>.
</TD
></TR
><TR
><TD
>Enhanced BIOS</TD
><TD
>Yes</TD
><TD
>Implements ElTorito, EDD v3.0, basic APM feature, PCIBIOS features
and the PCI interrupt routing table. The latest version of the Bochs BIOS
has a 32-bit init for ACPI, SMM and SMP.
</TD
></TR
><TR
><TD
>VGA</TD
><TD
>Yes</TD
><TD
>VGA color graphics emulation in a window.
</TD
></TR
><TR
><TD
>VBE (VESA) Support</TD
><TD
>Yes</TD
><TD
>Currently resolutions up to 1024x768x32bpp are supported.
You must compile Bochs with VBE enabled and use the LGPL'd VGABIOS.
For more information see <A
HREF="vesa-notes.html"
>Section 8.16</A
>.
</TD
></TR
><TR
><TD
>Cirrus Logic video card</TD
><TD
>Yes</TD
><TD
>Cirrus Logic CL-GD5430 ISA or CL-GD5446 PCI video card support.
For more information see <A
HREF="cirrus-notes.html"
>Section 8.17</A
>.</TD
></TR
><TR
><TD
>Floppy disk</TD
><TD
>Yes</TD
><TD
>Supports floppy disk images on all platforms: 2.88M 3.5", 1.44M 3.5", 1.2M 5.25",
720K 3.5" and 360K 5.25". On Unix and Windows 9x/NT/2000/XP, Bochs can access the
physical floppy drive.
</TD
></TR
><TR
><TD
>Multiple ATA channels</TD
><TD
>Yes</TD
><TD
>Emulates up to 4 ATA channels. Up to 8 ATA/ATAPI emulated devices can be attached,
two per ATA channel.
So you can have eight hard disks or seven hard disks and a CD-ROM or four hard
disks and four CD-ROMs, or one hard disk and seven CD-ROMs, etc...
</TD
></TR
><TR
><TD
>Hard disk</TD
><TD
>Yes</TD
><TD
>Emulates ATA-6/IDE hard drives via image files. Physical
hard disk access is supported on some architecture, but NOT recommended, primarily for safety reasons.
Hard disk up to 127GB are supported, on any platform that support large files access.
</TD
></TR
><TR
><TD
>CD-ROM</TD
><TD
>Yes</TD
><TD
>Emulates ATAPI-4/IDE CD-ROM. The CD-ROMs can read from an ISO disk image
on any platform. On Windows (9x/ME/NT/2000/XP), Linux, SunOS, FreeBSD,
NetBSD, OpenBSD, Amiga/MorphOS, MacOSX and BeOS, Bochs can read from the
physical CD-ROM drive. Starting with version 1.4, Bochs is even able to boot from
a bootable CD or bootable ISO image.
</TD
></TR
><TR
><TD
>Keyboard</TD
><TD
>Yes</TD
><TD
>Emulates a PS/2 keyboard with North American key mappings. Optional keyboard layout
remapping files are provided to support localized keyboard in X11 (German, French, Italian, Spanish,
Danish, Swedish, Russian).
</TD
></TR
><TR
><TD
>Mouse</TD
><TD
>Yes</TD
><TD
>Emulates a serial, PS/2 or USB mouse with 3 buttons + optional mouse
wheel support.
</TD
></TR
><TR
><TD
>Sound Blaster</TD
><TD
>Yes</TD
><TD
>Emulates a Sound Blaster 16 card (ISA, no plug&amp;play). On Windows, Linux, FreeBSD, MacOS 9 and
MacOSX, the output can be sent to the host computer's sound system, see
<A
HREF="sb16-emulation.html"
>Section 4.3</A
> for details.
</TD
></TR
><TR
><TD
>Network card</TD
><TD
>Yes</TD
><TD
>Emulates an NE2000 compatible network card. On Windows NT/2000,
Linux, FreeBSD, and NetBSD, Bochs will forward packets to and from the
operating system so that the guest OS can talk on the physical network.
Unfortunately, on some platforms the guest OS can talk to any machine on
the network BUT NOT the host machine. On Windows and on systems that
allow the TAP or TUN/TAP interface, there is no such limitation. Often
the host machine may be configured so the guest OS has access to the
internet. On MacOSX, you may download the TUN driver from:
<A
HREF="http://chrisp.de/en/projects/tunnel.html"
TARGET="_top"
>http://chrisp.de/en/projects/tunnel.html</A
>
</TD
></TR
><TR
><TD
>Parallel Port</TD
><TD
>Yes</TD
><TD
>Parallel port emulation was added by Volker Ruppert for Bochs 1.3.
Data that is sent to the parallel port by the guest OS can be saved into a
file or sent directly into the parallel port device (Unix only).
</TD
></TR
><TR
><TD
>Serial Port</TD
><TD
>Yes</TD
><TD
>The serial port (single 16550A UART emulation) is usable, on GNU/Linux,
NetBSD, OpenBSD, FreeBSD and MacOSX as host and guest. On other OSes the
emulation is present, but the connection to hard- or software of the host is
not implemented yet. Up to 4 ports are available.
</TD
></TR
><TR
><TD
>Gameport</TD
><TD
>Yes</TD
><TD
>Emulates a standard PC gameport. The connection to a real joystick is
currently supported on Linux and win32 only.
</TD
></TR
><TR
><TD
>PCI</TD
><TD
>Yes</TD
><TD
>Emulates most of the i440FX PCI chipset. The Host-to-PCI bridge
(PMC/DBX), the PCI-to-ISA bridge and the PCI IDE controller (PIIX3) are
available. For PCI cards there are 5 PCI slots supported.
</TD
></TR
><TR
><TD
>USB</TD
><TD
>incomplete</TD
><TD
>The USB root hub and the devices 'mouse', 'tablet', 'keypad' and
'disk' are available. Plugging in and removing devices at runtime is
possible, but still experimental. Access to real hardware is not
implemented yet.
</TD
></TR
><TR
><TD
>Plugins</TD
><TD
>Yes</TD
><TD
>Plugins are supported on Linux, MacOS X, Solaris, and Cygwin.</TD
></TR
><TR
><TD
>16/32 bit addressing</TD
><TD
>Yes</TD
><TD
>16 or 32 bit operand sizes, stack size, and addressing</TD
></TR
><TR
><TD
>v8086/paging</TD
><TD
>Yes</TD
><TD
>Virtual-8086 mode including optional v8086 mode extensions (VME) and paging</TD
></TR
><TR
><TD
>PIC</TD
><TD
>Yes</TD
><TD
>Master and slave programmable interrupt controller.
</TD
></TR
><TR
><TD
>CMOS functions</TD
><TD
>Yes</TD
><TD
>CMOS functions</TD
></TR
><TR
><TD
>Dynamic Translation/Virtualization</TD
><TD
>No</TD
><TD
>Because Bochs is designed to be portable, it does not attempt
to do any dynamic code translation or virtualization. See
<A
HREF="introduction.html#WHATISBOCHS"
>Section 1.1</A
> for details.
</TD
></TR
><TR
><TD
>Simulate a Multiprocessor</TD
><TD
>Yes</TD
><TD
>Bochs can be configured to simulate up to 8 processors. This
feature is still experimental, but it can boot Linux 2.2 kernels with SMP
support. Please note that this does NOT mean that Bochs can run
faster on a physical SMP machine.
</TD
></TR
><TR
><TD
>Take advantage of your SMP box</TD
><TD
>No</TD
><TD
>At present, Bochs does not use threads or parallel processing, so it
will not run any faster on multiprocessor hardware.
</TD
></TR
><TR
><TD
>Copy and Paste</TD
><TD
>Yes</TD
><TD
>Depending on the host platform, the text-mode screen text can be
exported to the clipboard. Text in the clipboard can also be pasted, through
Bochs, to the guest OS, as simulated keystrokes.
</TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="thirdparty.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="supported-platforms.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Third Party Software Licensing and Temporary Files</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="introduction.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Supported Platforms</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>

Some files were not shown because too many files have changed in this diff Show More