ICTest.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Created by: Gasbarro September 18, 1985 2:47:39 pm PDT
Last Edited by: Gasbarro October 8, 1985 3:14:42 pm PDT
Barth, September 27, 1985 5:23:19 pm PDT
DIRECTORY
Buttons, Containers, IO, Rope, ViewerClasses;
ICTest: CEDAR DEFINITIONS =
BEGIN
Viewer: TYPE = ViewerClasses.Viewer;
Handle: TYPE = REF ICTestRec;
Stop: TYPE = {dont, abortDie, abortWafer, interrupt};
DiePosition: TYPE = RECORD [x,y: CARDINAL];
AbortDieSignal: ERROR;
AbortWaferSignal: ERROR;
InterruptSignal: ERROR;
ICTestRec: TYPE = RECORD [
outer: Containers.Container ← NIL, -- handle for the IC Test viewer
tHeight: CARDINAL ← 0, -- height to put next Test button
cHeight: CARDINAL ← 0, -- height to put next Control button
inStream: IO.STREAMNIL, -- file containing run and wafer number lists
viewerout: IO.STREAMNIL, -- typescript to log messages in
currentDie: DiePosition, -- die to return to upon "Continue" button
currentTestProc: TestProc, -- test procedure to run upon "Start Test" or "Continue"
enableStepper: BOOLFALSE, -- internal, enables sending commands to ElectroGlas
enableTester: BOOLFALSE, -- enables sending commands to Tester
waferFile: Viewer ← NIL, -- handle for waferFile text viewer
run: Viewer ← NIL, -- handle for run text viewer
wafer: Viewer ← NIL, -- handle for wafer text viewer
die: Viewer ← NIL, -- handle for die text viewer
clock: Viewer ← NIL, -- handle for clock text viewer
clientData: REF ANYNIL, -- handle for client's data
stop: Stop ← dont, -- internal, state of control buttons
backupToken: IO.STREAM, -- internal, file stream parsing
testInProgress: BOOLFALSE, -- internal, button monitor
testButtonList: LIST OF Buttons.Button -- internal, list of registered test buttons
]; 
TestProc: TYPE = PROC[h: Handle];
ControlProc: TYPE = PROC[h: Handle, control: BOOL];
MakeICTestTool: PROC [name: Rope.ROPE, maxButtons: CARDINAL] RETURNS [h: Handle];
Makes basic IC Test viewer, "name" appears in the top banner. "maxButtons" is the greater of the number of Test Buttons and the number of Control Buttons that you intend to put up.
PutUpTestButton: PROC [buttonName: Rope.ROPE, proc: TestProc, h: Handle];
Test Buttons are used to select the desired test operation to be performed on the device under test. A Test Button turns gray when buttoned (selected) and all others turn white. When the "Start Test" or "Continue" button is pressed the TestProc associated with the currently selected Test Button is called. The first Test Button registered will be the default selection. Test Buttons appear in the third column of the IC Test Viewer.
PutUpControlButton: PROC [buttonName: Rope.ROPE, proc: ControlProc, h: Handle, initialState: BOOLFALSE];
A Control Button is a bistable switch usually used to modify the behavior of a test procedure. Each time a Control Button is pressed its state is complimented and the associated ControlProc is called. A gray Control Button indicates that the control bit is TRUE. Control Buttons appear in the fourth column of the IC Test Viewer.
CheckStop: PROC [h: Handle];
Similar to Process.CheckForAbort. This procedure must be called in the inner loop (or at reasonable intervals in extended inline code) in order to enable the operation of the Abort Die, Abort Wafer, etc. buttons.
END.