Baum = new Array(
new P("#C01","The Anatomy of a VxD",new Array(
new P("#C01S01","The VxD Structure"),
new P("#C01S02","Virtual Device Initialization"),
new P("#C01S03","The VSIMPLED Sources"),
new P("#C01S04","Debugging the VSIMPLED VxD"))),
new P("#C02","The Virtual Machine Manager",new Array(
new P("#C02S01","Event Processing"),
new P("#C02S02","Scheduling"),
new P("#C02S03","Services and Dynalinking"),
new P("#C02S04","Critical Sections"),
new P("#C02S05","Suspending VMs, Resuming VMs, and Semaphores"),
new P("#C02S06","Asynchronous Services"))),
new P("#C03","Memory Management",new Array(
new P("#C03S01","VMM Memory Management Services"),
new P("#C03S02","Translation Services"),
new P("#C03S03","Page Allocation"),
new P("#C03S04","Hooked Pages and Page Faults"),
new P("#C03S05","Examining Page Table Entries"),
new P("#C03S06","Allocating Selectors"),
new P("#C03S07","Instance Pages"),
new P("#C03S08","Mapping Memory into Multiple VMs"),
new P("#C03S09","Page Protection"),
new P("#C03S10","V86MMGR"))),
new P("#C04","V86/PM VxD API",new Array(
new P("#C04S01","The Faulting Mechanism and API Dispatch"),
new P("#C04S02","The Client Register Structure"),
new P("#C04S03","Examining and Modifying Information of the Active VM"),
new P("#C04S04","Creating a Dual-Mode API"),
new P("#C04S05","Callbacks and Hooking Existing DOS Devices"))),
new P("#C05","Nested Execution",new Array(
new P("#C05S01","Simulating Software Interrupts"),
new P("#C05S02","Calling Windows Functions from a VxD"),
new P("#C05S03","Calling Code in a TSR at Ring 0"))),
new P("#C06","I/O Trapping",new Array(
new P("#C06S01","Trapping and Dispatching I/O"),
new P("#C06S02","Device Contention Management"),
new P("#C06S03","Simulating Hardware"))),
new P("#C07","IRQ Virtualization",new Array(
new P("#C07S01","Default VPICD Handling"),
new P("#C07S02","IRQ Virtualization and Sharing"),
new P("#C07S03","Dispatching IRQs to a VM"),
new P("#C07S04","Servicing Interrupts in a VxD"),
new P("#C07S05","Bimodal Interrupt Handlers"))),
new P("#C08","Virtualized DMA",new Array(
new P("#C08S01","Physical State vs. Virtual State"),
new P("#C08S02","DMA Virtualization"),
new P("#C08S03","DMA Region Mapping"),
new P("#C08S04","Avoiding VDMAD Interference"))),
new P("#C09","VKD and Keyboard Processing",new Array(
new P("#C09S01","Hot Keys"),
new P("#C09S02","Simulating Keystrokes to VMs"))),
new P("#C10","Writing VxDs in C",new Array(
new P("#C10S01","Segment Attributes"),
new P("#C10S02","A 'C'-callable Wrapper for VMM"),
new P("#C10S03","VSIMPLED Sources in 'C'"))),
new P("#C11","Using the Debugging Services",new Array(
new P("#C11S01","Debug Strings"),
new P("#C11S02","Assertions"),
new P("#C11S03","Extended Debug Commands"))),
new P("#C12","VCOMMD Design Notes",new Array(
new P("#C12S01","Design"),
new P("#C12S02","The Code"),
new P("#C12S03","ComSysCritInit"),
new P("#C12S04","Port Trapping"),
new P("#C12S05","IRQ Trapping"),
new P("#C12S06","Com_Api_Proc"),
new P("#C12S07","VM Creation and Destruction"),
new P("#C12S08","The Total VxD"))),
new P("#C13","Win-Link Design and Implementation Notes",new Array(
new P("#C13S01","The System"),
new P("#C13S02","The Approach"),
new P("#C13S03","Implementation"),
new P("#C13S04","Registering DOS Apps"),
new P("#C13S05","Internal Message Passing"),
new P("#C13S06","Message Passing Between VMs"),
new P("#C13S07","Shared Memory and Copying Data Between VMs"),
new P("#C13S08","Launching a DOS box"),
new P("#C13S09","Launching Windows Applications from DOS"),
new P("#C13S10","The DOS Box Title, Print Intercepting, and Everything"))));