added LSL2 stored procedures

This commit is contained in:
Infineon\StieberD
2024-03-25 14:46:21 -07:00
parent 09f1a66046
commit c667dd56eb
1655 changed files with 527967 additions and 0 deletions

159
LSL2/STPROC/SVC_DOPANT.txt Normal file
View File

@ -0,0 +1,159 @@
Function SVC_Dopant(Service, Param1, Param2, Param3, Param4, Param5, Param6, Param7)
/********************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to
be copied without written permission.
Name : SVC Dopant
Description :
Tags : [SRP]
Parameters :
History (Date, Initials, Notes)
01/18/10 fjt Initial development
********************************************************************************************************/
$insert SRP_APP_INSERTS
$insert SERVICE_INSERT
Declare function SRP_Rotate_Array, SRP_Clean_Array
GoSub Init
Begin Case
Case Service _eqc "Color"
Case Service _eqc "Check" ; GoSub Check
Case Service _eqc "Qualify" ; GoSub Qualify
Case Service _eqc "Reactor" ; GoSub Reactor
End Case
Return Ans
!----- SERVICES -----------------------------------------------------------------------------------------
Init:
Equ Sched_Win$ to "WO_MASTER_SCHEDULER"
Equ Ctrl$ to Sched_Win$:".OLE_SCHEDULE"
Equ Table$ to "WO_MAST_SCHED"
Equ Info$ to Sched_Win$:".EDT_INFO"
return
Check:
Dopant = Param1
Source = Param2
React = Param3
Rec.R = Xlate("REACTOR", React, "", "X")
List = Xlate("GAS_SRC", Rec.R<5>, 1, "X")
Swap @VM with @FM in List
GoSub Gas_Types
Locate Source in List using @FM setting Pos then Check.1 = "G" else Check.1 = "R"
Locate Dopant in List using @FM setting Pos then Check.2 = "G" else Check.2 = "R"
GoSub Colors
Ans<1> = Check.1
Ans<2> = Check.2
Ans<3> = Check.1 EQ "G" and Check.2 EQ "G"
Param1 = Dopant
Param2 = Source
return
Qualify:
React = Param3
PSN = Param4
Rec.P = Xlate("PROD_SPEC", PSN, "", "X")
Param1 = Rec.P<013> ;// Qualified
Param2 = Rec.P<121> ;// Blocked
If Param1 EQ "" then
Check.1 = "G"
end else
Locate React in Param1 using @VM setting Pos then Check.1 = "G" else Check.1 = "R"
end
If Param2 EQ "" then
Check.2 = "G"
end else
Locate React in Param2 using @VM setting Pos then Check.2 = "R" else Check.2 = "G"
end
GoSub Colors
Ans<1> = Check.1
Ans<2> = Check.2
Convert @VM to ", " in Param1
Convert @VM to ", " in Param2
return
Reactor:
For i = 20 to 69
Rec = Xlate("REACTOR", i, "", "X")
rv = Xlate("GAS_SRC", Rec<5>, 1, "X")
Swap @VM with @FM in rv
Ans := rv :@FM
Next i
If Ans[-1,1] EQ @FM then Ans[-1,1] = ""
Ans = SRP_Clean_Array(Ans, @FM, "UNIQUE")
return
!----- INTERNAL ROUTINES --------------------------------------------------------------------------------
Colors:
Red = "Vertical(Gradient(Red L=90, Red L=80, 30%), Gradient(Red L=75, Red L=80), Border(Red, None, Red, None))"
Green = "Vertical(Gradient(Green L=90, Green L=80, 30%), Gradient(Green L=75, Green L=80), Border(Green, None, Green, None))"
// Source
Begin Case
Case Check.1 EQ "R" ; Check.1 = Red
Case Check.1 EQ "G" ; Check.1 = Green
End Case
// Dopant
Begin Case
Case Check.2 EQ "R" ; Check.2 = Red
Case Check.2 EQ "G" ; Check.2 = Green
End Case
return
Gas_Types:
// Confirmed Types
Gas = "AsH3_1000,B2H6_1%,PH3_50,GeH4_10%,N2,SiH2Cl2,SiH4,SiHCl3,SiH4_2%"
For i = 1 to 2
If i EQ 1 then Val = Source else Val = Dopant
// Dopant
Swap "1000 ppm Arsenic" with "AsH3_1000" in Val
Swap "Heavy Dope Arsine 1000ppm (0.1%)" with "AsH3_1000" in Val
Swap "1% Boron" with "B2H6_1%" in Val
Swap "Heavy Dope Diborane 1%" with "B2H6_1%" in Val
Swap "Phosphorus" with "PH3_50" in Val
Swap "Phosphine 50 ppm" with "PH3_50" in Val
Swap "Boron/Germanium" with "GeH4_10%" in Val
Swap "Heavy Dope Germane 10%" with "GeH4_10%" in Val
// Source
Swap "Dichlorosilane" with "SiH2Cl2" in Val
Swap "Silane" with "SiH4" in Val
Swap "Trichlorosilane" with "SiHCl3" in Val
Swap "Silane 2%" with "SiH4_2%" in Val
// Other
Swap "Nitrogen" with "N2" in Val
If i EQ 1 then Source = Val else Dopant = Val
Next i
return