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

62 lines
1.7 KiB
Plaintext

SUBROUTINE MET_PROP_CONV(ConvType, DataIo, ReturnCode, ReturnedValue)
$insert logical
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
Status() = Valid$
/*
EQU UNIT$THICK TO CHAR(230):'m' ;* Microns
EQU UNIT$THICKA TO CHAR(143) ;* Angstroms
EQU UNIT$RES TO CHAR(234):'-cm' ;* Ohms.Cm
EQU UNIT$SRES TO CHAR(234):'/':CHAR(220) ;* Ohms/Square
EQU UNIT$CRES TO CHAR(234):'-cm' ;* Ohms.Cm
EQU UNIT$CONC TO 'CM-3' ;* Carriers.Cubic Centimeter
EQU UNIT$STRESS TO 'dyne/cm-2' ;* Dyne/Square Centimeter
EQU UNIT$BOW TO CHAR(230):'m' ;* Microns
EQU UNIT$TRANS TO CHAR(230):'m' ;* Microns
*/
IF NOT(ASSIGNED(ReturnCode)) THEN ReturnCode = ''
BEGIN CASE
CASE ConvType = 'ICONV'
Vals = XLATE('SYSREPOSPOPUPS','LSL2**MET_PROPERTY',8,'X')
LOOP
Val = Vals[1,@VM]
Code = Vals<1,1,1> ;* 1st column
InConv = Vals<1,1,3> ;* 3rd column
UNTIL Code = ReturnCode OR Vals = ''
Vals = DELETE(Vals,1,1,0)
REPEAT
ReturnedValue = ICONV(DataIo,InConv)
CASE ConvType = 'OCONV'
Vals = XLATE('SYSREPOSPOPUPS','LSL2**MET_PROPERTY',8,'X')
LOOP
Val = Vals[1,@VM]
Code = Vals<1,1,1> ;* 1st column
OutConv = Vals<1,1,4> ;* 4th column
UNTIL Code = ReturnCode OR Vals = ''
Vals = DELETE(Vals,1,1,0)
REPEAT
ReturnedValue = OCONV(DataIo,OutConv)
CASE otherwise$
status() = invalid_msg$
END CASE
RETURN