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.STREAM _ NIL, -- file containing run and wafer number lists viewerout: IO.STREAM _ NIL, -- 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: BOOL _ FALSE, -- internal, enables sending commands to ElectroGlas enableTester: BOOL _ FALSE, -- 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 ANY _ NIL, -- handle for client's data stop: Stop _ dont, -- internal, state of control buttons backupToken: IO.STREAM, -- internal, file stream parsing testInProgress: BOOL _ FALSE, -- 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]; PutUpTestButton: PROC [buttonName: Rope.ROPE, proc: TestProc, h: Handle]; PutUpControlButton: PROC [buttonName: Rope.ROPE, proc: ControlProc, h: Handle, initialState: BOOL _ FALSE]; CheckStop: PROC [h: Handle]; END. xICTest.mesa Copyright c 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 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. 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. 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. 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. Κ΅˜codešœ ™ Kšœ Οmœ1™