5.0 ERROR MESSAGES
Most of the errors which can be detected by the simulation program are identified by a single character typeout, followed by ringing the bell once. Six different types of errors are identified this way:
CODE SIGNIFICANCE
?This is not a valid directive. Any printed graphic normally generated by the ASR33, which is not a valid directive, evokes this response. A question
#Break condition recognized. This occurs normally, either when the location counter reaches the value in the break register in execution simulation, or when the BREAK key is depressed in simulation or ROM or RAM dumping.
>Location counter out of range. This error occurs in simulation or ROM punching, if an attempt is made to access an address out of the range specified in the most recent Q directive.
Invalid op code. This error occurs and is recognized during execution simulation, after the instruction byte is typed out, but before the location counter is incremented, so that if it occurs under the control of the N directive, the T directive may be entered to examine the error by trying to execute it again.
%Location counter stack overflow or underflow. This error is unique in that the interruption occurs after the instruc- tion has been executed in simulation. A T or an N directive will resume execution with the next instruction (jumped or retu rned to).
Cancel. This is the program response to a Cancel (Control "X" or ESCAPE) typein, during data input. Except for I, M, T, and N directives, it cancels the entire directive. If used in the I or M directives, only the current datum is canceled, and the directive is terllJinated at that point. Previous values, if any, have already been stored in memory. If used while the simulation program is requesting input data from a simulated ROM port or the simulated CPU Test line, it is equivalent to a break at the beginning of the instruction. In each case the simulation program returns to accept another directive.
6.0OPERATING INSTRUCTIONS
6.1Assemble Program
First assemble the test program on the Hardware Assembler (A0740 to A0743). Important: the Hardware Simulation Program will not accept ROM program tapes created by the FORTRAN assembler, ASM4, as these tapes have bit patterns and addresses together, with no identifier for the addresses. It is not necessary to assemble the program in one contiguous block of ROM locations, since the I directive in the simulation program is able to recognize the address fields (by the Control "A", SOH preceding them), and place the instruction patterns into the proper simulated ROM locations.
6.2Prepare
Remove ROM chips A0740 through A0743 and plug in the Hardware Simulation Program chips,
Determine how much simulated ROM is needed to test the program, and which RAMs are least likely to be accessed by the test program, using if necessary the = and" directives. Then type in the Q directive for this program. From now until the testing of this program has been completed and the amended program tape has been punched out, DO NOT touch the
RESET button. If the RESET button is pressed, the simulation parameters and any program in the simulated ROM will be destroyed.
6.3Load Program
Place the object tape in the teletype reader, and type in I. The simulation program will read both the addresses and the instructions from the tape and store them in the proper locations. Reading will be terminated by any error or by the terminal F punched by the assembler. Note that any illstructions or data which fall outside the limits defined in the Q directive will be ignored. Note also that if the Q directive defines the ROM limits to be more than 512 bytes, wraparound overlap is possible. Thus, location 100 would be overwritten by instructions going into location 612. When the program is loaded, a simulated RESET may be effected by the Z directive. If starting at other than location zero, or with registers pre- loaded with data, the appropriate directives may be used to set these up. A breakpoint may be set if desired, and RAM may be loaded up with data if desired. If a subroutine or a part of a subroutine is being tested, the stack may be loaded with a
4