The design goal for the SimNow simulator was to create an accurate model of a computer system from the program/programmers view. Device models contain all the program visible state while the actual functionality is abstracted. In many cases only the functionality needed to fool the software was implemented. Another requirement placed on the simulator was that all software was to run on the simulator unmodified. This includes BIOS, drivers, O/S, and applications.
While the simulator has a concept of time it is not a cycle accurate simulator. The basic timing mechanism is an instruction, all instructions execute in the same amount of time and are one tick in length. This tick time is scaled and use by the rest of the system. Long latency events, like a disk or floppy access have some minimum latency built into the access as we found legacy software that relied on the physical latency of these peripherals.
The simulator contains all the classic pieces of a PC system (CPU, memory, Northbridge, Southbridge, display, IDE drives, floppy, keyboard, and mouse support). A Port80 card like device is included for diagnostic purposes and provides an indication of simulation time. A log device allows for logging of events within the simulator. The simulator requires several other files, in the images directory are binary files containing the BIOS and disk images. In the simulator home directory there should be a *.bsd file. The *.bsd file contains two things, the configuration of the system (how models are connected together and their settings) and the logical state of all the devices in the simulator.