Make your own free website on Tripod.com

Daigo S02-560 Machine Simulator User's Guide

 

Index

 

Requirements

    The Daigo s02-560 program is a machine simulator.  The requirements for this program are as follows.

Index...

 

Functional Directions

     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).

 Index...

 

Input and Output Conventions

     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?

Index...

 

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.

Index...