Daigo S02-560 Machine Simulator User's Guide
The Daigo s02-560 program is a machine simulator. The requirements for this program are as follows.
This program was designed and tested for a Win32 operating system and as such needs to be compiled and run on a Win32 compatible operating system.
The s02-560 machine simulator application looks as follows when first opened.

The top left box lists the files currently set to be loaded and executed by the s02-560 machine. The Open button takes you to a browse window where you can select a single file with the mouse, or by holding on the Ctrl key and clicking on multiple files you can load multiple files. Once you have selected the file(s) to be run, you hit the Run button to execute the program(s). The bottom most box displays the information that is outputted from the program(s). The box above that displays the trace of the program(s).
The input must be a properly formatted set of hex instructions. A properly formatted set of hex instructions is a header record on its own line followed by text records with one on each line.
A Header Record
Record position 1: H
Record positions 2-3: a 2 Hex character address at which execution is to begin
Record positions 4-9: a 6 character segment name
Record positions 10-11: a 2 Hex character value denoting the initial program load address
Record positions 12-13: a 2 Hex character value denoting the length of the segment
Text Records
Record position 1: T
Record positions 2-3: a 2 Hex character address at which the information is to be stored
Record positions 4-8: Initial value of that address, as a 5 Hex character string
Example:
H00TESTLB0005
T0001030
T0102004
T0242000
T03D1001
T0468694
The output for the s02-560 machine comes in two formats, the actual machine output and the trace output. The actual machine output is simply what the program(s) have actually outputted to the console via the IO operations.
The trace output contains a great deal more information. For each line of the trace output, you will receive either an error message or the Mnemonic operation followed by the operands followed by the current values for the PC and the registers. Should the trace encounter a memory dump command, each of the values contained in the 256 ‘blocks’ of memory will be displayed.
Example:
Mnemonic Operands Description
Input file: test script sample.txt
Output file: test script sample.rpt
LOAD R1 Mem[48] PC:0 R0:0 R1:0 R2:0 R3:0
A test file must include the text instructions for the IO operation. A second file needs to be in the same folder as the test file. This second file needs to be of the same name but has an extension .cin. The .cin file will contain as many strings as to be inputted/outputted using the test file. Every 8 characters will be handled so if the 6 letter word "bottle" was the first string and you wanted the 8 letter word 'waterbed' to be the next then you would have to separate "bottle" and "waterbed" with 2 white spaces.
Example: (.cin file)
Hello how are you today?
Error Messages and Their Meanings
**** INVALID ADDRESS RANGE **** - This error message means that you have tried to access a place in memory less then 0 or greater then 255.
**** ADDRESSING OVERFLOW **** - This error message means that the address you have tried to access is less then – 2^19 or greater then 2^19 – 1.
**** ARITHMETIC OVERFLOW **** - This error message means that when you attempted an arithmetic operation the result was either less then – 2^19 or greater then 2^19-1.
**** DIVISION BY ZERO **** - This error message means that when you attempted a divide operation, you were attempting to divide a number by 0.
**** INVALID SHIFT **** - This error message means that you attempted to shift a number more then 19 spaces.
**** INVALID OPERATION **** - This error message means that an unidentified record was attempting to be used.
**** U2 DOES NOT EQUAL ZERO **** - This error message means that the U2 field in the instruction was not equal to zero.
**** U1 DOES NOT EQUAL ZERO **** - This error message means that the U1 field in the instruction was not equal to zero.