I own a *real* IMSAI 8080, and have all the manuals 'cause I built it from a kit. :-)
The entire manual set is a pile of paper about 3" thick, _but_ the basic ideas can be
summarized in a page or two. I'm not sure how much "memory" these simulators
have, but basically they're both 8080 microprocessors with a few K of RAM and a front
panel. On the IMSAI front panel, here's what you're seeing:
Programmable Output Port Display (8)
Status Byte Display (8) Data Bus Display (8)
Address Display (16) CPU Flag Display (8)
Address Toggles/Programmed Input (16/8) Control Switches (5)
The values in () are the number of bits, least significant on the right. The address and data switches are double-throw toggles, while the control switches are center-off momentary double-throw toggles. The "Programmed Output" and "Programmed Input" are an 8 bit I/O port located at address 255 (FFh), and are there just so you have a way to get data in and out without a terminal. To display a particular address, toggle in the desired address in binary on the 16 address switches (up=1, down=0). Then, press the "Examine" switch up and release. The Address Display LEDs will show the address you entered, and the Data Bus Display LEDs will show the value in memory at that address. To step through memory sequentially displaying values, press the "Examine" switch down, to "Examine Next". This will increment the address bus and display the value at the new location, without having to toggle in the new address. Hitting "Examine" again will take you back to the address selected by the switches. The "Deposit"/"Deposit Next" switch does basically the same thing, except that Deposit stores the value set on the 8 right-most switches of the Address Toggles/Programmed Input at whatever address is currently displayed on the address LEDs. Deposit Next increments the address and _then_ stores the value set by the Programmed Input switches. "Reset" basically stops the CPU and sets the address back to 0000. "Ext.Clr" does an external bus reset; I never really used it. Run/Stop are pretty self-explanatory, and Step/Step is just a single-step function; both up and down just execute one instruction and stop.
To toggle in a simple (and useless ;-) program, do this, where "AD" indicates the hexadecimal value which should be set on the 16 address toggles, and "DATA" refers to the 8 switches labelled "Programmed Input":
C3 is a "Jump Immediate", and the following two bytes (00,00) are the address it jumps to, so basically this will just sit there and loop. A copy of the Intel 8080A CPU instruction card is available from the Microprocessor Instruction Set Card Library maintained by Jonathan Bowen. If you want to get fancy and do I/O, "IN FF" will read the "Programmed Input" toggles into the A register, and "OUT FF" will write the value in the A register to the LEDs in the "Programmed Output" bank. The outputs are inverted, though, to save circuitry on the front panel, so a 1 is a dark LED and a 0 is a lighted LED (this has caused me no end of confusion over the years, because I always forget).
Enter the following sequence of instructions starting at address 0000, as above, then "Examine" address 0000 and run. Flip the "Programmed Input" switches while the program is running; their positions should be reflected (inverted!) by the "Programmed Output" LEDs.
DB (read the value from the following port # and store it in the A register)
FF (port FF)
D3 (write the value from the A register to the following port #)
FF (port FF)
C3 (jump to the following 16-bit address)
00 (most significant byte of address)
00 (least significant byte of address)
I've got a serial terminal and a floppy controller and drives on my IMSAI, running an old version of CP/M. The drives make a big "WHANG!" sound when the heads load and unload every time you access them, and the terminal only runs at 9600 baud, but's it's pretty cool. The front panel lights are a blast to watch while it's running CP/M, reading the disk, and talking to the terminal. "War Games" indeed! One thing the Elf has that the IMSAI simulator sorely needs - LOAD/SAVE to disk!!! (Are you listening, Claus? ;-) It's probably more accurate to not have it, but it gets old having to toggle in a 40 or 50 byte (or more) program every time you want to show it to somebody, not to mention which it doesn't have keyboard shortcut keys, so you're stuck clicking with the mouse. But it's still a very cool bit of software, and I credit it with inspiring me to write the Elf simulator...