<> <> <> <> DIRECTORY CD, EuGen, PW, PWDescr, PWPins, Rope USING [ROPE]; EUtils: CEDAR DEFINITIONS IMPORTS PW = BEGIN ROPE: TYPE = Rope.ROPE; Position: TYPE = {Top, Center, Bottom}; RegDescr: TYPE = REF RegDescrRec; RegDescrRec: TYPE = RECORD [ inListOb: LIST OF ROPE _ NIL, -- "r", "c", "k", "ap", "bs", "opL", "opR", or "top" out: ROPE _ NIL, -- "r", "c", "k", "ap", "bs", "opL", "opR", or "down" interruptBuses: LIST OF ROPE _ NIL, -- "rBus", "cBus", "kBus", "apBus", "bsBus", "opLBus", "opRBus", "downBus", "topBus" ctrlListOb: PW.ListOb _ NIL, cutTopBot: BOOL _ FALSE, fillerPos: Position _ Center]; QadCR, QuickandDirtyChannelRouter: PUBLIC PROC [design: CD.Design, left, right: PW.ObPtr, width: INT, useGnd: BOOL _ TRUE] RETURNS [channel: PW.ObPtr]; TreeRouter: PUBLIC PROC [design: CD.Design, template: PW.ObPtr, height: INT] RETURNS [channel: PW.ObPtr]; ContactFiller: PUBLIC PROC [design: CD.Design, ctrl, data: PW.ObPtr, selectNameProc: PW.SelectNamesProc _ PW.KeepAll] RETURNS [filler: PW.ObPtr]; CtrlFiller: PUBLIC PROC [design: CD.Design, ctrl, data: PW.ObPtr, selectNameProc: PW.SelectNamesProc _ PW.KeepAll] RETURNS [filler: PW.ObPtr]; Assemble: PUBLIC PROC [design: CD.Design, ctrl, data: PW.ObPtr, selectNameProc: PW.SelectNamesProc _ PW.KeepAll, fillerPos: Position _ Center] RETURNS [hSlice: PW.ObPtr]; MakeRegDP: PUBLIC PROC [design: CD.Design, regD: RegDescr] RETURNS [reg: PW.ObPtr]; MakeReg: PUBLIC PROC [design: CD.Design, regD: RegDescr] RETURNS [reg: PW.ObPtr]; MakeTstDriver: PUBLIC PROC [design: CD.Design, in: ROPE, out: ROPE, ctrlListOb: PW.ListOb _ NIL] RETURNS [tstDriver: PW.ObPtr]; MakeDBus: PUBLIC PROC [design: CD.Design, in: ROPE, dStAd: INT] RETURNS [dBus: PW.ObPtr]; MakeRegWithDBus: PUBLIC PROC [design: CD.Design, regD: RegDescr, dStAd: INT] RETURNS [both: PW.ObPtr]; InitMakeReg: PUBLIC PROC [design: CD.Design]; <<>> END.