<> <> <> <> DIRECTORY Basics USING [BITAND, bitsPerWord], RasterControllerDorado; RasterControllerFace: CEDAR DEFINITIONS IMPORTS Basics ~ BEGIN OPEN RasterControllerDorado; bitsPerWord: NAT ~ Basics.bitsPerWord; hardwareScanlineWords: READONLY NAT; hardwareScanlinePages: READONLY NAT; ChannelProc: TYPE ~ PROC [channel: ExtendedChannel, whatChanged, statusNow: LTStatus]; RegisterChannelProc: PUBLIC PROC [channel: ExtendedChannel, proc: ChannelProc]; <> StartMicrocode: PUBLIC PROC [mrb: MRBPointer] RETURNS [ok: BOOL]; ResetMicrocode: PUBLIC PROC; ShutupMicrocode: PUBLIC PROC; SetUpForRealLineSync: PROC; SetUpForFakeLineSync: PROC; SetUpForRosClock: PROC; SetUpForFakeClock: PROC; SetUpForTestClock: PROC; LineSync: PROC; FakePixelClock: PROC; CheckConfig: PROC RETURNS [HardwareConfig]; InitializeMRB: PROC [ mrb: MRBPointer, stb: STBPointer _ NIL, aRCB, bRCB, cRCB: RCBPointer _ NIL, ccb: CCBPointer _ NIL, flags: CARDINAL _ 0]; InitializeRCB: PROC [ rcb, next: RCBPointer _ NIL, bitmap: LONG POINTER _ NIL, activeWordsPerLine: CARDINAL _ 0, wordsPerLine: CARDINAL _ 0, lines: INTEGER _ 0, --Total number of scans to read fMargin: CARDINAL _ 0, sRepeat, fRepeat: INTEGER _ 0, sReverse, fReverse: BOOL _ FALSE, mosaic: BOOL _ FALSE, bitsPerSample: [0..bitsPerWord] _ 1]; InitializeCCB: PROC [ ccb, next: CCBPointer _ NIL, bitmap: LONG POINTER _ NIL, words: CARDINAL _ 0, lines: INTEGER _ 0, --Total number of scans to read fMargin: CARDINAL _ 0, sRepeat, fRepeat: INTEGER _ 0, sReverse, fReverse: BOOL _ FALSE, bitsPerSample: [0..bitsPerWord] _ 1, cursorCtl: CursorCtl _ defaultCursorCtl, modeCtl: ModeCtl _ defaultModeCtl, halftoneCtl: HalftoneCtl _ defaultHalftoneCtl, selCtl: SelCtl _ defaultSelCtl]; RoundUpC: PROC [val, size: CARDINAL] RETURNS [CARDINAL] ~ INLINE { RETURN[Basics.BITAND[val+(size-1), CARDINAL.LAST-(size-1)]]; }; BitsPerSample: PROC [lgBitsPerPixel: [0..4]] RETURNS [[0..bitsPerWord]]; END.