Bochs Developers Guide

Kevin Lawton

Bryce Denney

Christophe Bothamy

Edited by

Michael Calabrese


Table of Contents
1. Resources for developers
1.1. Setting up SVN write access
1.2. Using SVN write access
1.2.1. Checking in files
1.2.2. Creating a backup of the SVN repository
1.2.3. Setting SVN commit notifications
1.3. Ideas for other sections
2. About the code
2.1. Overview
2.2. Directory Structure
2.3. Emulator Objects
2.3.1. Weird macros and other mysteries
2.3.2. Static methods hack
2.3.3. CPU und memory objects in UP/SMP configurations
2.3.4. The configuration parameter tree
2.3.5. The save/restore feature
2.4. Configure Scripting
2.5. Log Functions
2.5.1. Methods
2.6. Internal timers
2.6.1. Overview
2.6.2. Timer definitions, members and methods
2.7. Bochs's CMOS map
2.8. Sound Blaster 16 Emulation
2.8.1. How well does it work?
2.8.2. Output to a sound card
2.8.3. Configuring Bochs
2.8.4. Runtime configuration
2.9. The sound lowlevel interface
2.9.1. Files
2.9.2. Classes
2.9.3. The base class bx_sound_output_c
2.9.4. Methods
2.9.5. Methods and members for wave input (recording) support
2.10. Harddisk Images based on redologs
2.10.1. Description
2.10.2. How redologs works ?
2.10.3. Parameters
2.10.4. Redolog class description
2.10.5. Disk image classes description
2.11. How to add keymapping in a GUI client
3. Advanced debugger usage
3.1. I/O Interface to Bochs Debugger
3.1.1. Commands supported by port 0x8A00
3.1.2. Access to port 0x8A01 (write-only)
3.1.3. Sample
3.2. The instrumentation feature
3.3. Bochs debugger internals
4. Coding
4.1. Coding guidelines
4.2. Building a Bochs release
4.2.1. Preparing source files and SVN
4.2.2. Building the release on win32
4.2.3. Building the release on Linux
4.2.4. Creating a file release and uploading files on SF
5. Webmastering
5.1. Bochs project webspace
5.2. Updating the Bochs website content
5.3. Updating the SVN snapshot
5.4. Updating the online documentation
5.5. other content
5.6. available tools
List of Tables
2-1. Directory structure
2-2. Parameter types
2-3. Save/restore parameter types
2-4. format bits
2-5. codecs
2-6. wave output types
2-7. Generic header description
2-8. Redolog specific header description
2-9. How number of entries in the catalog and number of blocks by extents are computed
5-1. Directory structure