open-insight/LSL2/STPROC/RDS_QXJ_WARN_VALID.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

88 lines
3.7 KiB
Plaintext

compile subroutine rds_qxj_warn_valid(ConvType, DataIo, Branch, ReturnedValue)
begin condition
pre:
post:
end condition
declare function msg, get_property, set_property
$insert logical
$insert msg_equates
$insert rds_equ
equ MinPreEpiQXJ$ to 24.500
equ MaxPreEpiQXJ$ to 26.000
*equ MinPostEpiQXJ$ to 29.500
*equ MaxPostEpiQXJ$ to 33.500
*equ HardCodePhilBCBRecipe$ to 149 ;* if another recipe is used for bcb then
;* would have to create an array of recipes
equ DeltaMin$ to 3.250
equ DeltaMax$ to 5.050
*
equ SSIDeltaMin$ to .085
equ SSIDeltaMax$ to .105
*
equ valid$ to 0 ;* successful
equ invalid_msg$ to 1 ;* bad data - print error message window
equ invalid_conv$ to 2 ;* bad conversion - " "
equ invalid_nomsg$ to 3 ;* bad but do not print the error message window
equ CrLf$ to char(13):char(10)
ReturnedValue = DataIo
status() = Valid$
QXJPre = get_property( @window:'.QXJ_PRE', 'TEXT' )
RDSId = get_property( @window:'.RDS_NO', 'TEXT' )
RecipeNo = xlate( 'RDS', RDSId, rds_recipe_no$, 'X' )
begin case
case ConvType = 'ICONV'
CustID = field( get_property( @window:'.CUST_INFO', 'TEXT' ), ' ', 1 )
if CustID = '621' then ;* IF IT IS SILICON SYSTEMS AND IT IS A POST READING THEN
* CHECK THE DELTA SPEC
if Branch = 'POST' then
Delta = ( QXJPre - DataIo ) ;* CAUSE POST WILL BE LESS FOR THICK ETCH RATE
if ( Delta >= SSIDeltaMin$ ) and ( Delta <= SSIDeltaMax$ ) else
MsgInfo = ''
MsgInfo<mtext$> = DataIo: ' calculates a Delta of ':Delta:' Please verify the entry and speak with your supervisor or engineering. The Delta specification is from ':SSIDeltaMin$:' to ':SSIDeltaMax$:'.'
MsgInfo<micon$> = '!'
Void = msg( '', MsgInfo )
end
end else
* DO NOTHING
end
end else
if Branch = 'PRE' then
if ( DataIo >= MinPreEpiQXJ$ ) and ( DataIo <= MaxPreEpiQXJ$ ) else
Range = 'Minimun = ':MinPreEpiQXJ$:' and Maximum = ':MaxPreEpiQXJ$
MsgInfo = ''
MsgInfo<mtext$> = DataIo: ' is out of specification...Please verify the entry and speak with your supervisor or engineering. The specification for PRE-EPI QXJ is ':Range
MsgInfo<micon$> = '!'
Void = msg( '', MsgInfo )
end
end else
*if RecipeNo = HardCodePhilBCBRecipe$ then
Delta = DataIo - QXJPre
if ( Delta >= DeltaMin$ ) and ( Delta <= DeltaMax$ ) else
MsgInfo = ''
MsgInfo<mtext$> = DataIo: ' calculates a Delta of ':Delta:' Please verify the entry and speak with your supervisor or engineering. The Delta specification is from ':DeltaMin$:' to ':DeltaMax$:' for the BCB process'
MsgInfo<micon$> = '!'
Void = msg( '', MsgInfo )
end
*end else
* if ( DataIo >= MinPostEpiQXJ$ ) and ( DataIo <= MaxPostEpiQXJ$ ) else
* Range = 'Minimun = ':MinPostEpiQXJ$:' and Maximum = ':MaxPostEpiQXJ$
* MsgInfo = ''
* MsgInfo<mtext$> = DataIo: ' is out of specification...Please verify the entry and speak with your supervisor or engineering. The specification for POST-EPI QXJ is ':Range
* MsgInfo<micon$> = '!'
* Void = msg( '', MsgInfo )
* end
*end
end
end
case ConvType = 'OCONV'
* no output
ReturnedValue = DataIo
case otherwise$
ReturnedValue = ''
status() = invalid_conv$
end case
return