IMSTester.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Barth, October 18, 1985 5:05:46 pm PDT
DIRECTORY
IMSTester: CEDAR DEFINITIONS = BEGIN
Theory
This interface provides a procedural abstraction for the Integrated Measurement Systems Model 1000 test system. The interface presumes familiarity with the commands in the Command Language Reference Guide supplied by IMS.
The STB command is issued after each command is sent to the IMS and if the error byte is not zero then an ERR command is issued and the rope returned is used in invoking Error.
Types
ROPE: TYPE = Rope.ROPE;
NSec: TYPE = INT;
Groups: TYPE = LIST OF Group;
Group: TYPE = REF GroupRec;
GroupRec: TYPE = RECORD [
name: ROPE,
type: GroupType,
channelCount: [0..32],
channels: Channels,
format: FormatType,
delay: NSec,
width: NSec,
hiDrive: REAL,
loDrive: REAL,
posPolarity: BOOL,
sample: NSec,
threshold: REAL,
values: Values];
GroupType: TYPE = {Force, Timing, Compare, Acquire, Power};
Channels: TYPE = ARRAY [0..32) OF Channel;
Channel: TYPE = RECORD [
slot: Slot,
podChannel: PodChannel];
Slot: TYPE = [1..48]; -- Each card slot in the IMS mainframes is numbered starting with the master and continuing with the slaves.
PodChannel: TYPE = [0..19); -- 0..7 = A0-A7, 8..15 = B0-B7, 16 = AT, 17 = BT, 18 = V0
FormatType: TYPE = {NRZ, DNRZ, RZ, R1, RC, RI};
Values: TYPE = REF ValuesRec;
ValuesRec: TYPE;
Sequence: TYPE = [0..196607];
Operations
Error: SIGNAL [msg: ROPE];
Diagnose: PROC [extended: BOOLTRUE];
If extended is true then the state of the IMS memory is lost.
Initialize: PROC;
Returns the IMS to its power up state.
DefineGroups: PROC [groups: Groups];
Executes Resource, Format, HiDrive, LoDrive, Polarity, Radix, Sample, and Threshold commands. The radix is always set to hexadecimal. Timing, Power, and Compare groups are not yet supported.
SetCyclePeriod: PROC [period: NSec];
PV, PutValue: PROC [group: Group, sequence: Sequence, value: LONG CARDINAL ← 0, mask: LONG CARDINAL ← 0];
A 0 in mask tristates the corresponding byte in a Force group and indicates don't care for the bit in an Acquire group.
LoadPattern: PROC [groups: Groups];
Start: PROC;
Stop: PROC;
Wait: PROC; -- waits for HALT instruction to be executed
END.