Sage.mesa
Last Edited by: Barth, January 31, 1985 8:22:30 pm PST
Last Edited by: Gasbarro, June 14, 1985 3:37:49 pm PDT
Sage: DEFINITIONS =
BEGIN
Error: ERROR [why: ErrorReason];
ErrorReason: TYPE = {nilChannelVector};
PulseLine: TYPE = [0..16);
PulsePair: TYPE = [0..LAST[PulseLine]/2];
WidthPulseLine: PulseLine = 7;
CyclePulseLine: PulseLine = 15;
Tap: TYPE = [0..64);
Channel: TYPE = [0..64);
OutputStage: TYPE = [0..32);
DriveState: TYPE = {L, T, H};
InputStage: TYPE = [0..16);
TesterCycle: TYPE = [0..16];
ChannelVector: TYPE = REF ChannelVectorRec;
ChannelVectorRec: TYPE = RECORD[
testerCycles: TesterCycle ← LAST[TesterCycle],
stageData: PACKED ARRAY Channel OF StageData];
StageData: TYPE = RECORD[
force: ForceData,
sense: SenseData];
ForceData: TYPE = PACKED ARRAY OutputStage OF DriveState ← ALL[T];
SenseData: TYPE = PACKED ARRAY InputStage OF BOOLALL[FALSE];
PulseLineTaps: TYPE = REF PulseLineTapRec;
PulseLineTapRec: TYPE = RECORD[
taps: ARRAY PulseLine OF Tap];
ChannelControlData: TYPE = REF ChannelControlDataRec;
ChannelControlDataRec: TYPE = RECORD[
channels: ARRAY Channel OF SingleChannelData];
SingleChannelData: TYPE = RECORD[
localHold: BOOLFALSE,
inputPulseLine: PulseLine ← 0,
outputPulsePair: PulsePair ← 0];
Tester: TYPE = REF TesterRec;
HANDLETester: TYPE = Tester;
TesterRec: TYPE;
InitializeTester: PROC [pulseTaps: PulseLineTaps, channelControl: ChannelControlData, initialData: ChannelVector, feedBack15: BOOLFALSE] RETURNS [HANDLETester];
FinalizeTester: PROC [t: HANDLETester];
Run: PROC [t: HANDLETester, v: ChannelVector];
END.