Bochs Developers Guide

Kevin Lawton

Bryce Denney

Christophe Bothamy

Edited by

Michael Calabrese


Table of Contents
Resources for developers
Ideas for new sections about GIT / GitHub
About the code
Overview
Directory Structure
Emulator Objects
Weird macros and other mysteries
Static methods hack
CPU objects in UP/SMP configurations
The simulator interface
The configuration parameter tree
The save/restore feature
Configure Scripting
Log Functions
Methods
Internal timers
Overview
Timer definitions, members and methods
Detailed functional description
The Bochs devices base class bx_devmodel_c
Bochs's CMOS map
Sound Blaster 16 Emulation
How well does it work?
Output to a sound card
Configuring Bochs
Runtime configuration
The sound lowlevel interface
Files
Defines and strutures
Classes
The base class bx_sound_lowlevel_c
The waveout base class bx_soundlow_waveout_c
The wavein base class bx_soundlow_wavein_c
The midiout base class bx_soundlow_midiout_c
Harddisk Images based on redologs
Description
How redologs works ?
Parameters
Redolog class description
Disk image classes description
How to add keymapping in a GUI client
The Bochs BIOS
The biossums utility
The Bochs plugin interface
Introduction
Plugin file names
Plugin types
The plugin entry function
Compatibility with "monolithic" Bochs compilation
Advanced debugger usage
I/O Interface to Bochs Debugger
Commands supported by port 0x8A00
Access to port 0x8A01 (write-only)
Sample
The instrumentation feature
Bochs debugger internals
Coding
Coding guidelines
Building a Bochs release
Preparing source files and GIT / GitHub
Platform-independent source files from GitHub release
Building the release on Linux
Building the release on win32
Creating a file release and uploading files on SF
Webmastering
Bochs project webspace
Updating the Bochs website content
Updating the online documentation
other content
available tools