DIRECTORY RoseTypes; SwitchTypes: CEDAR DEFINITIONS = BEGIN OPEN RoseTypes; bitType: NodeType; Bundle: PROC [bits: CARDINAL] RETURNS [NodeType]; IsSwitchType: PROC [NodeType] RETURNS [BOOLEAN]; SwitchVal: TYPE = MACHINE DEPENDENT RECORD [ s: PACKED ARRAY StrengthIndex OF Strength _ ALL[none], val: Level _ X, pad: [0 .. 4) _ 0]; StrengthIndex: TYPE = {q, u, d}; Strength: TYPE = {none, chargeWeak, charge, chargeStrong, driveWeak, drive, driveStrong, input}; Level: TYPE = {L, H, X}; refInput, refDriveStrong, refDrive, refDriveWeak, refChargeStrong, refCharge, refChargeWeak, refNone: REF Strength; switchValsPerWord: INTEGER = 240/SIZE[PACKED ARRAY [0 .. 240) OF SwitchVal]; bitsPerSwitchVal: INTEGER = 16; bitsPerSwitchValFiller: INTEGER = 16 - bitsPerSwitchVal; SwitchValHolder: TYPE = MACHINE DEPENDENT RECORD [ held(0:16-bitsPerSwitchVal..15): SwitchVal]; SwitchValFiller: TYPE = [0..TwoToThe[bitsPerSwitchValFiller]); Block: PROC [a, b: Strength] RETURNS [c: Strength]; SetCapacitance: PROC [n: Node, cap: REAL]; GetCapacitance: PROC [n: Node] RETURNS [cap: REAL]; SetSizes: PROC [n: Node, currentSize, normalSize: Strength]; GetSizes: PROC [n: Node] RETURNS [currentSize, normalSize: Strength]; END. [Indigo]2.6>Rosemary.DF=>SwitchTypes.Mesa Last Edited by: Spreitzer, July 2, 1984 2:20:12 pm PDT X means completely unknown level (as opposed to meaning something between low and high). fill(0:0..bitsPerSwitchValFiller-1): SwitchValFiller, Κ– "cedar" style˜J™3J™6J˜IcodešΟk œ ˜K˜KšΠbx œœ œ˜ K˜Kšœœ ˜K˜K˜K˜KšΟnœœœœ ˜1K˜KšŸ œœ œœ˜0K˜š œ œœ œœ˜,Kš œœœœ œ˜6Kšœ œ˜Kšœ˜—K˜Kšœœ ˜ K˜Kšœ œR˜`K˜š œœœœœ˜K™X—K˜Kšœfœ ˜sK˜Kš œœœœœ œ ˜LK˜Kšœœ˜Kšœœ˜8K˜š œœœ œœ˜2Kšœ5™5Kšœ,˜,—K˜Kšœœ)˜>K˜KšŸœœœ˜3K˜KšŸœœœ˜*KšŸœœ œœ˜3K˜KšŸœœ.˜