3
Contents
Chapter 1. Introduction. 9
1. Motivation and purpose of the study.
9
2. What do we call an emulator?
10
3. Small history of emulation.
11
4. Related topics.
12Chapter 2. Introduction to the process of emulation. 14
1. Basic structure/algortihm of an emulator. 142. The CPU emulation core. 17
2.1. CPU emulator: Interpreter 182.2. CPU emulator: Binary Translation. 18
3. The memory emulation subsistem. 204. CPU and emulated devices communication. Interrupts and timing. 215. Graphic hardware emulation. 226. Sound hardware emulation. 237. Other devices. 248. Testing the emulator. 249. Searching for information and other aspects of emulation. 25
Chapter 3. CPU emulation: Interpreters. 26
1. Basic interpreter CPU emulator. 26
The CPU status. 26The fetch-decode loop. 30Instruction emulation. 36Flags. 38Memory. 39Interrupts. 41Core interface. 42
Appendix A: Space Invaders/i8080 Tutorial. 44
2. Assembly Emulators. 44
Portabilty vs performace. 45Similiraties between CPUs. 46Register usage. 46Optimizations. 47Code emitters vs assembly macros. 50
3. Threaded Code. 51