Welcome to my web site (Zilmar's site), which will hopefully help people to understand emulation a bit better.
Everything in this site is my work, if you feel it is not accurate or misleading in any way I am happy to hear from you

Link to this page, not copy it.
this document is not to be copied at all except to be printed for personal reading.

No copy may be reproduced in whole or in part within a for-profit commercial publication or Internet site without the express consent of the author.

Any trademark to be found within this document is the exclusive property of its respective owner, and is reproduced here merely for the sake of reference.

Table of Contents



General information about emulation
What is an Emulator?
Why create an emulator?
How has emulation been used so far?

Where to Start

Emulating the CPU
How the CPU works
The control Unit
The arithmetic/logic unit
Processing an OpCode
Decoding an OpCode
Methods of CPU emulation
CPU Core
Initialise registers
While CPU is running
Load OpCode Data
Translate OpCode
Execute OpCode

Main Memory
Memory Map
Translation Lookaside Buffer (TLB)

System Tasks
Cyclic Tasks
Interrupts and exceptions

High/low level emulation

Further Reading