160 lines
4.2 KiB
Plaintext
160 lines
4.2 KiB
Plaintext
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
|
||
|