-- CDConvertCMosAToCMosB.cm
--  Copyright (C) 1985, 1986 by Xerox Corporation. All rights reserved.
--  Created by: Christian Jacobi, November 1, 1985 5:22:14 pm PST
-- Last Edited by: Christian Jacobi January 29, 1987 5:58:22 pm PST
--
-- conversion from CMosA to CMosB
--
Install CDCMosA
Install CDCMosB
Install CDConvertTechnologies
--
-- set up
← CDConvertTechnologies.fromTechnologyKey ← NIL
← CDConvertTechnologies.toTechnologyKey ← NIL
← CDConvertTechnologies.layerConversion ← NIL
← CDConvertTechnologies.classConversion ← NIL
← CDConvertTechnologies.classPosOffsets ← NIL
← CDConvertTechnologies.classSizeOffsets ← NIL
← &layerTab ← RefTab.Create[]
← &classTab ← RefTab.Create[]
← &posTab ← RefTab.Create[]
← &sizeTab ← RefTab.Create[]
← &oldL ← 2
--
-- layers
← RefTab.Store[&layerTab, $ndif, $ndif]
← RefTab.Store[&layerTab, $pdif, $pdif]
← RefTab.Store[&layerTab, $wndif, $wndif]
← RefTab.Store[&layerTab, $wpdif, $wpdif]
← RefTab.Store[&layerTab, $pwel, $pwel]
← RefTab.Store[&layerTab, $nwel, $nwel]
← RefTab.Store[&layerTab, $pwelCont, $pwelCont]
← RefTab.Store[&layerTab, $nwelCont, $nwelCont]
← RefTab.Store[&layerTab, $pol, $pol]
← RefTab.Store[&layerTab, $met, $met]
← RefTab.Store[&layerTab, $met2, $met2]
← RefTab.Store[&layerTab, $imp, $imp]
← RefTab.Store[&layerTab, $bur, $bur]
← RefTab.Store[&layerTab, $ovg, $ovg]
← RefTab.Store[&layerTab, $cut, $cut]
← RefTab.Store[&layerTab, $cut2, $cut2]
--
-- classes
-- assigning NIL replace the objects by a cell representing the old object
← RefTab.Store[&classTab, $CSimpleCon, $C2SimpleCon]
← RefTab.Store[&classTab, $CWellSimpleCon, $C2SimpleCon]
← RefTab.Store[&classTab, $CDifShortCon, $C2DifShortCon]
← RefTab.Store[&classTab, $CWellDifShortCon, $C2DifShortCon]
← RefTab.Store[&classTab, $CTrans, $C2Trans]
← RefTab.Store[&classTab, $CWellTrans, $C2Trans]
--← RefTab.Store[&classTab, $CLTrans, NIL]
--← RefTab.Store[&classTab, $CLWellTrans, NIL]
← RefTab.Store[&classTab, $CLTrans, $C2LTrans]
← RefTab.Store[&classTab, $CLWellTrans, $C2LTrans]
← RefTab.Store[&classTab, $CVia, NIL]
--← RefTab.Store[&classTab, $CVia, $C2Via]
--
-- sizings
← RefTab.Store[&posTab, $CTrans, NEW[CD.Position←[0, -&oldL]]]
← RefTab.Store[&posTab, $CWellTrans, NEW[CD.Position←[0, -&oldL]]]
← RefTab.Store[&posTab, $CLTrans, NEW[CD.Position←[0, -&oldL]]]
← RefTab.Store[&posTab, $CLWellTrans, NEW[CD.Position←[0, -&oldL]]]
← RefTab.Store[&sizeTab, $CTrans, NEW[CD.Position←[0, 2*&oldL]]]
← RefTab.Store[&sizeTab, $CWellTrans, NEW[CD.Position←[0, 2*&oldL]]]
← RefTab.Store[&sizeTab, $CLTrans, NEW[CD.Position←[&oldL, 2*&oldL]]]
← RefTab.Store[&sizeTab, $CLWellTrans, NEW[CD.Position←[&oldL, 2*&oldL]]]
--
-- technologies
← CDConvertTechnologies.fromTechnologyKey ← $cmos
← CDConvertTechnologies.toTechnologyKey ← $cmosB
← CDConvertTechnologies.layerConversion ← &layerTab
← CDConvertTechnologies.classConversion ← &classTab
← CDConvertTechnologies.classPosOffsets ← &posTab
← CDConvertTechnologies.classSizeOffsets ← &sizeTab
--
-- conversion from CMosA to CMosB
-- ready if there were no error messages