• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bios/H03-May-2022-17,50313,938

build/H01-Aug-2021-6,3705,822

bx_debug/H03-May-2022-15,75013,031

cpu/H01-Aug-2021-159,190116,888

doc/H01-Aug-2021-17,04515,311

docs-html/H03-May-2022-64

gui/H03-May-2022-47,96439,358

host/linux/pcidev/H01-Aug-2021-655518

instrument/H03-May-2022-1,630885

iodev/H03-May-2022-113,80787,615

memory/H01-Aug-2021-1,9091,491

misc/H01-Aug-2021-3,1952,418

patches/H03-May-2022-868829

.bochsrcH A D03-May-202260.9 KiB1,3081,255

.conf.amigaosH A D20-Nov-2006122 71

.conf.everythingH A D06-Feb-20211 KiB4543

.conf.linuxH A D24-Mar-20172.1 KiB7753

.conf.macosH A D24-Mar-2017995 4229

.conf.macosxH A D24-Mar-20171.2 KiB4129

.conf.nothingH A D25-Oct-2012363 2112

.conf.sparcH A D02-May-2011539 3117

.conf.win32-cygwinH A D24-Mar-2017927 3626

.conf.win32-vcppH A D01-Feb-2020932 3629

.conf.win64-cross-mingw32H A D29-Mar-20211,020 3931

.conf.win64-vcppH A D15-Jan-2020928 3629

CHANGESH A D01-Aug-2021210.3 KiB4,3734,029

COPYINGH A D08-Feb-200925.8 KiB505418

LICENSEH A D30-Aug-2012301 85

Makefile.inH A D03-May-202230.1 KiB824622

READMEH A D01-Aug-20214.3 KiB9677

README-wxWidgetsH A D24-Dec-20135.3 KiB124100

TODOH A D21-Mar-20179.7 KiB227206

aclocal.m4H A D19-Feb-2012227.1 KiB6,6355,942

bochs.hH A D25-Jul-202111.1 KiB368258

bxdisasm.ccH A D30-Jan-20213.1 KiB10869

bxthread.ccH A D30-Jan-20212.9 KiB11179

bxthread.hH A D30-Jan-20213.3 KiB9258

bxversion.h.inH A D02-Jan-2020410 108

bxversion.rc.inH A D30-Nov-2019488 2120

config.ccH A D12-Jul-2021116.3 KiB3,5253,140

config.guessH A D31-Jan-202047.2 KiB1,6591,447

config.h.inH A D12-Jul-202127.5 KiB908753

config.subH A D31-Jan-202030.9 KiB1,7991,642

configureH A D03-May-2022829.3 KiB27,61921,823

configure.inH A D01-Aug-202193 KiB3,3193,089

cpudb.hH A D30-Jan-20212.1 KiB6036

crc.ccH A D03-Apr-20112.2 KiB6624

extplugin.hH A D27-Mar-20211.8 KiB7548

gdbstub.ccH A D14-Jun-202123 KiB929749

install-shH A D07-Mar-20025.5 KiB252153

logio.ccH A D30-Jan-202117.3 KiB698519

logio.hH A D30-Jan-20214.8 KiB171121

ltdl-bochs.hH A D17-Dec-201312.3 KiB399227

ltdl.cH A D03-Jan-201585.7 KiB4,0682,961

ltdlconf.h.inH A D24-Oct-20024.3 KiB161108

ltmain.shH A D08-Feb-2009176.8 KiB6,3234,963

main.ccH A D27-Mar-202148.1 KiB1,5381,226

msrs.defH A D03-Apr-20111.5 KiB4542

osdep.ccH A D14-Sep-201710.1 KiB373246

osdep.hH A D21-May-20189.9 KiB383249

param_names.hH A D04-Dec-202010.5 KiB186158

pc_system.ccH A D30-Jan-202117.7 KiB620431

pc_system.hH A D30-Jan-20217.5 KiB208120

plugin.ccH A D03-Apr-202135.4 KiB1,2161,005

plugin.hH A D27-Jun-202122.1 KiB499370

qemu-queue.hH A D08-Jan-201619.5 KiB415244

win32_enh_dbg.rcH A D13-Jan-20143.4 KiB8984

win32res.rcH A D22-Mar-20214.1 KiB10797

wxbochs.rcH A D28-Dec-2013220 1211

README

1Bochs - The cross platform IA-32 (x86) emulator
2Updated: Sun Aug  1 10:07:00 CEST 2021
3Version: 2.7
4
5WHAT IS BOCHS?
6
7Bochs is a highly portable open source IA-32 (x86) PC emulator
8written in C++, that runs on most popular platforms.  It includes
9emulation of the Intel x86 CPU, common I/O devices, and a custom
10BIOS. Bochs can be compiled to emulate many different x86 CPUs,
11from early 386 to the most recent x86-64 Intel and AMD processors
12which may even not reached the market yet. Bochs is capable of running
13most Operating Systems inside the emulation, for example DOS,
14Linux or Windows. Bochs was written by Kevin Lawton and is currently
15maintained by the Bochs project at "https://bochs.sourceforge.io".
16
17Bochs can be compiled and used in a variety of modes, some which are
18still in development.  The 'typical' use of bochs is to provide
19complete x86 PC emulation, including the x86 processor, hardware
20devices, and memory.  This allows you to run OS's and software within
21the emulator on your workstation, much like you have a machine
22inside of a machine.  Bochs will allow you to run Windows
23applications on a Solaris machine with X11, for example.
24
25Bochs is distributed under the GNU LGPL. See LICENSE and COPYING for details.
26
27GETTING CURRENT SOURCE CODE
28
29Source code for Bochs is available from the Bochs home page at
30https://bochs.sourceforge.io.  You can download the most recent
31release, use SVN to get the latest sources, or grab a SVN
32snapshot which is updated frequently. The releases contain the most
33stable code, but if you want the very newest features try the
34SVN version instead.
35
36WHERE ARE THE DOCS?
37
38The Bochs documentation is written in Docbook.  Docbook is a text
39format that can be rendered to many popular browser formats such
40as HTML, PDF, and Postscript.  Each binary release contains the
41HTML rendering of the documentation.  Also, you can view the
42latest documentation on the web at
43  https://bochs.sourceforge.io/doc/docbook/index.html
44
45WHERE CAN I GET MORE INFORMATION?  HOW DO I REPORT PROBLEMS?
46
47Both the documentation and the Bochs website have instructions on how
48to join the bochs-developers mailing list, which is the primary
49forum for discussion of Bochs.  The main page of the website also
50has links to bug reports and feature requests.  You can browse and
51add to the content in these areas even if you do not have a (free)
52SourceForge account.  We need your feedback so that we know what
53parts of Bochs to improve.
54
55There is a patches section on the web site too, if you have made
56some changes to Bochs that you want to share.
57
58HOW CAN I HELP?
59
60If you would like contribute to the Bochs project, a good first step
61is to join the bochs-developers mailing list, and read the archive
62of recent messages to see what's going on.
63
64If you are a technical person (can follow hardware specs, can write
65C/C++) take a look at the list of open bug reports and feature
66requests to see if you are interested in working on any of the
67problems that are mentioned in them.  If you check out the SVN
68sources, make some changes, and create a patch, one of the
69developers will be very happy to apply it for you.  Developers who
70frequently submit patches, or who embark on major changes in the
71source can get write access to SVN.  Be sure to communicate with the
72bochs-developers list to avoid several people working on the same
73thing without realizing it.
74
75If you are a Bochs user, not a hardware/C++ guru, there are still
76many ways you could help out.  For example:
77  - write instructions on how to install a particular operating system
78  - writing/cleaning up documentation
79  - testing out Bochs on every imaginable operating system and
80    reporting how it goes.
81
82CHANGES
83
84Brief summary of changes in 2.7:
85  - Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support
86    Windows Hyper-V as guest in Bochs)
87  - Improvements for the plugin handling to simplify Bochs extensions
88  - Added "multiple NICs" support to the NE2000 and E1000 devices
89  - Added experimental FTP service for networking modules 'vnet' and 'socket'
90  - Fixes and improvements for all supported Voodoo graphics adapters
91  - Added USB keyboard emulation with most of the keys supported
92  - GUI "cmdmode": create a headerbar event with key combo starting with F7
93  - LGPL'd VGABIOS updated to version 0.8a (new VGABIOS for Voodoo Banshee)
94
95See CHANGES file for more information!
96

README-wxWidgets

1Readme for wxWidgets Interface
2Updated Tue Dec 24 09:54:00 CET 2013
3
4Contributors to wxWidgets port:
5  Don Becker (Psyon)
6  Bryce Denney
7  Dave Poirier
8  Volker Ruppert
9
10wxWidgets Configuration Interface
11
12The wxWidgets (formerly called wxWindows) port began in June 2001 around the
13time of Bochs 1.2.1.  Dave Poirier and Bryce Denney started adding a wxWidgets
14configuration interface. We made some progress, but stopped after a while.
15Then in March/April 2002 Bryce and Psyon revived the wxWidgets branch and turned
16it into a usable interface.  Psyon did most of the work to get text and graphics
17working, and Bryce worked on event passing between threads, and keyboard
18mapping. Starting in August 2002, Bryce added lots of dialog boxes to allow you
19to set all the bochsrc parameters.  At the time of release 2.0, there
20are still some bugs but it is pretty stable and usable.
21
22Bochs should be build with wxWidgets 2.3.3 or later. The release wxWidgets 2.3.3
23includes a patch by Bryce Denney to allow us to get raw keycode data for several
24OSes.
25
26On any UNIX platform with wxWidgets installed, configure with
27--with-wx to enable the wxWidgets display library.
28
29To build in MS VC++:
30- edit .conf.win32-vcpp and add "--with-wx" to the configure line.
31  If you want different configure options from what you see, change them
32  too.
33- in cygwin, do "sh .conf.win32-vcpp" to run configure
34- unzip build/win32/wxworkspace.zip into the main directory.
35  For cygwin: unzip build/win32/wxworkspace.zip
36  or use winzip or whatever else.
37- open up bochs.dsw, the workspace file
38- edit project settings so that VC++ can find the wxWidgets include
39  files and libraries on your system.  Bryce installed them in
40  d:/wx/wx233/include and d:/wx/wx233/lib.  Specifically, edit
41  - Project>Settings>C/C++>Category=Preprocessor: include directories.
42  - Project>Settings>Link>Category=Input: additional library path.
43- build
44
45Note that the project is set up for wxWidgets 2.3.3.  To use on other
46wxWidgets versions, you will have to change some of the names of the libraries
47to include.  Use the samples that came with that version of wxWidgets for
48reference.
49
50------------------------------------------------------
51
52Random notes follow
53
54Added some sketches.  I'm thinking that the control
55panel will be able to basically show one of these screens at a time.  When
56you first start you would see ChooseConfigScreen which chooses between the
57configurations that you have loaded recently (which it would remember
58by the pathname of their bochsrc).  Whether you choose an existing
59configuration to be loaded or a new one, when you click Ok you go to
60the first configuration screen, ConfigDiskScreen.
61
62Each of the configuration screens takes up the whole control panel window.
63We could use tabs on the top and/or "<-Prev" and "Next->" buttons to make
64it quick to navigate the configuration screens.  Each screen should
65probably have a Prev, Next, Revert to Saved, and Accept button.
66The menu choices like Disk..., VGA..., etc. just switch directly to
67that tab.
68
69
70------------------------------------------------------
71Notes:
72
73events from gui to sim:
74- [async] key pressed or released
75- [async] mouse motion with button state
76- [sync] query parameter
77- [sync] change parameter
78- [async] start, pause, stop, reset simulation.  Can be implemented
79  as changing a parameter.
80- [async] request notification when some param changes
81
82events from sim to gui:
83- [async] log message to be displayed (or not)
84- [async] ask user how to proceed (like panic: action=ask)
85- [async] param value changed
86- make my thread sleep for X microseconds  (call wxThread::sleep then return)
87
88In a synchronous event, the event object will contain space for the entire
89response.  The sender allocates memory for the event and builds it.  The
90receiver fills in blanks in the event structure (or could overwrite parts)
91and returns the same event pointer as a response.  For async events, probably
92the sender will allocate and the receiver will have to delete it.
93
94implement the floppyA and floppyB change buttons using new event
95structure.  How should it work?
96
97vga gui detects a click on floppyA bitmap
98construct a BxEvent type BX_EVT_ASK_PARAM
99post the event to the wxWidgets gui thread (somehow) and block for response
100when it arrives in the gui thread, show a modal dialog box
101get the answer back to the simulator thread
102
103
104right now, this is working ok within the simulator thread using
105wxMutexGuiEnter/Leave.  Still I'm going to change it so that the
106siminterface.cc code builds an event structure and the gui code
107fills in the blank in the structure, instead of the stupid
108notify_get_int_arg stuff.
109
110
111Starting and Killing Threads
112
113When a detachable (default) thread finishes (returns from its Entry()
114function), wxWidgets frees the memory associated with that thread.
115Unless the thread is never going to end, it is potentially dangerous to have a
116pointer to it at all.  Even if you try to "check if it's alive" first, you may
117be dereferencing the pointer after it has already been deleted, leading to it
118claiming to be alive when it's not, or a segfault.  To solve this, the approach
119used in the wxWidgets threads example is to have code in the thread's OnExit()
120method remove the thread's pointer from the list of usable threads.  In
121addition, any references or changes to the list of threads is controlled by a
122critical section to ensure that it stays correct.  This post finally
123explained what I was seeing.
124