DIRECTORY CD USING [DesignNumber, ObPtr, Level, combined, lambda]; CMosTransistors: CEDAR DEFINITIONS = BEGIN wXExtension: CD.DesignNumber = 2*CD.lambda; lXExtension: CD.DesignNumber = 2*CD.lambda; TransistorPtr: TYPE = REF TransistorRec; TransistorRec: TYPE = RECORD [ width: CD.DesignNumber, length: CD.DesignNumber, wExt: CD.DesignNumber _ wXExtension, lExt: CD.DesignNumber _ lXExtension, angle: BOOL _ FALSE ]; undef: PRIVATE CD.Level=CD.combined; -- will force ordinary diffusion CreateTransistor: PROC [w, l: CD.DesignNumber, wExt: CD.DesignNumber_wXExtension, lExt: CD.DesignNumber_lXExtension, difLev: CD.Level_undef] RETURNS [CD.ObPtr]; CreateAngleTransistor: PROC [w, l: CD.DesignNumber, wExt: CD.DesignNumber_wXExtension, lExt: CD.DesignNumber_lXExtension, aExt: CD.DesignNumber_0, difLev: CD.Level_undef] RETURNS [CD.ObPtr]; END. ÚCMosTransistors.mesa (part of Chip'N Dale) by Christian Jacobi May 3, 1983 11:22 am last edited by Christian Jacobi September 26, 1983 11:15 am --All create procedures create in an orientation --w in direction of increasing x --l in direction of increasing y --All create procedures may (or may not) create references to --the same object. Therefore consider the transistor objects as --readonly. If a transistor needs to be modified create a new one! ÊϘJšœ1™1J˜Jšœ+™+Jšœ=™=J˜šÏk ˜ Jšœœ0˜8J˜—JšÏbœœ œ˜$Jš˜J˜Jšœ œœ˜+Jšœ œœ˜+J˜Jšœœœ˜(šœœœ˜Jšœœ˜Jšœœ˜Jšœœ˜$Jšœœ˜$Jšœœ˜J˜J˜—Jšœœœœ Ïc ˜EJ˜šÏnœœœ˜0Jšœœ˜#Jšœœ˜#Jšœœ˜Jšœœ˜J˜—š œœœ˜5Jšœœ˜#Jšœœ˜#Jšœœ˜Jšœœ˜Jšœœ˜J˜—Jšœ1™1Jšœ ™ Jšœ ™ J˜Jšœ=™=JšœA™AJšœC™CJ˜Jšœ˜J˜—…—d