You need to have mic1 and animator executables and three files called control_store, memory_file and mac_def. The control_store contains a description of the control store of the Mic-1 machine and the mac_def contains a description of the Mac-1 assembly language. You should not have to change either of these.
The memory_file contains a copy of the Mac-1 memory in hexadecimal, one word per line starting with memory location 0. It can be produced from source code using the Mac-1 assembler which is provided.
You run the program with the runmic command. Optionally you can give 1 to 3 command line arguments giving the names of the default files to be used for the Mac-1 memory, the control store and the Mac-1 assembly language description.
The memory file contains a memory image of the Mac-1 machine, one word per line. You do not have to fill all 4096 words of Mac-1 memory. Each line of the file contains a string representing a 16-bit value in hexadecimal.
The simulator reads the control store from the file control_store and it reads information about the Mac-1 assembly language from the file mac_def. You should not have to change either of these files.
The simulator is always in one of three execution modes which are indicated by the command prompt. The mode indicates the default action, the action taken when just a RETURN is pushed. The modes are: subcycle, cycle, instruction.
The simulator is always in one of three display modes. The default mode is "slow" and shows data moving from one place to another. The other modes are "fast" which shows the result of each subcycle, and "off" which does not display anything. The display state is controlled by the commands "d", "df", and "-d".
The following is a partial list of the commands the simulator understands.
| q | Exit the simulator |
| s | Execute one subcycle and change the execution mode to subcycle |
| c | Execute one cycle and change the execution mode to cycle |
| i | Execute one instruction and change the execution mode to instruction If the display was off, update the display |
| i n | Execute n instructions and change the execution mode to instruction If the display was off, update the display |
| d | Change the display mode to slow and update the display |
| df | Change the display mode to fast and update the display |
| -d | Change the display mode to off |
| u | Update the display without changing the display mode |