82 lines
2.3 KiB
Plaintext
82 lines
2.3 KiB
Plaintext
function GetNewScanData(CINo, CurrentMax, NCRNo)
|
|
/*
|
|
This function will return the defect data while excluding data for wafers that were NCR'ed out.
|
|
*/
|
|
*#pragma precomp SRP_PreCompiler
|
|
#pragma precomp SRP_PreCompiler
|
|
$INSERT REACT_RUN_EQUATES
|
|
|
|
|
|
Declare function DCount
|
|
|
|
*/
|
|
*Some wafers must get a reclean and thus they're read twice. We'll take the last number and assign it as the max.
|
|
CurrentMax = CurrentMax<1,1>
|
|
OldMax = CurrentMax
|
|
|
|
*Pulls in the values of all slots read
|
|
Reads = XLATE('CLEAN_INSP',CINo,86,'X')
|
|
|
|
slots = 25
|
|
|
|
*Pulls up the NCR Records and looks for what failed wafers exist in each NCR
|
|
|
|
FailedSlots = XLATE('NCR', NCRNo, 57, 'X')
|
|
|
|
|
|
failedCount = Count(FailedSlots, @VM)
|
|
|
|
|
|
swap @SVM with @VM in Reads
|
|
ReadsCount = DCOUNT(Reads,@VM)
|
|
NewMax = 0
|
|
DefSpecs = XLATE('CLEAN_INSP',CINo, 15, 'X')
|
|
DefSpec = DefSpecs<1,1>
|
|
|
|
|
|
NewReads = 0
|
|
if FailedCount GT 0 Then
|
|
For slot = 1 to slots
|
|
|
|
IF Reads<1,slot> NE '' then
|
|
If Reads<1,slot> LE DefSpec then
|
|
NewReads += Reads<1,slot>
|
|
|
|
If Reads<1,slot> GE NewMax then
|
|
NewMax = Reads<1,slot>
|
|
end
|
|
end
|
|
/**
|
|
failed = 0
|
|
Loop
|
|
For failedWafers = 0 to failedCount
|
|
if FailedSlots<1, failedWafers> EQ slot then
|
|
failed = 1
|
|
end else
|
|
failed = failed + 0
|
|
end
|
|
|
|
Next failedWafers
|
|
Until failed = 1 OR failedWafers GE failedCount
|
|
Repeat
|
|
|
|
if failed = 0 then
|
|
IF Reads<1,slot> GE NewMax AND Reads<1,slot> NE OldMax then
|
|
NewMax = Reads<1,slot>
|
|
end
|
|
NewReads += Reads<1,slot>
|
|
end
|
|
*/
|
|
|
|
end
|
|
|
|
Next slot
|
|
|
|
@Ans = NewMax
|
|
end else
|
|
@Ans = OldMax
|
|
|
|
END
|
|
Return @Ans
|
|
|