added LSL2 stored procedures
This commit is contained in:
159
LSL2/STPROC/SVC_DOPANT.txt
Normal file
159
LSL2/STPROC/SVC_DOPANT.txt
Normal 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
|
||||
|
Reference in New Issue
Block a user