<> <> DIRECTORY ColorDisplayDorado USING [ClockControl, HorizontalControl, VerticalControl], WindowManager USING [ScreenPos]; MonitorToolDefs: DEFINITIONS = { StartMonitor: PROCEDURE [screenWidth, screenHeight, refreshRate, bitsPerPixel: CARDINAL, hBlankTime, vBlankTime: REAL, pos: WindowManager.ScreenPos _ left, NTSCBoard: BOOLEAN _ FALSE, interlace: BOOLEAN _ TRUE]; Start640Monitor: PROCEDURE [bitsPerPixel: CARDINAL _ 8, pos: WindowManager.ScreenPos _ left]; Start1024Monitor: PROCEDURE [bitsPerPixel: CARDINAL _ 8, pos: WindowManager.ScreenPos _ left]; SetMonitorParams: PROCEDURE [bpp: CARDINAL _ 8, pos: WindowManager.ScreenPos _ left, mp: MonitorParam]; DoMonitorParams: PROCEDURE [screenWidth, screenHeight, refreshRate: CARDINAL, hBlankTime, vBlankTime: REAL, NTSCBoard: BOOLEAN _ FALSE, interlace: BOOLEAN _ TRUE] RETURNS [MonitorParam]; MonitorParam: TYPE = REF MonitorParamRec; MonitorParamRec: TYPE = RECORD [hRes: CARDINAL, vRes: CARDINAL, vc: ColorDisplayDorado.VerticalControl, hc: ColorDisplayDorado.HorizontalControl, cc: ColorDisplayDorado.ClockControl, lmarg: CARDINAL, truePixelFreq, truePixelTime: REAL]; pixelTime, pixelFreq: REAL; --desired pixel time in nanoseconds, rate in MHz truePixeltime, truePixelfreq: REAL; --actual pixel time in nanoseconds, rate in MHz lineTime, lineFreq: REAL; --desired line time in microseconds, rate in KHz trueLinetime, trueLinefreq: REAL; --actual line time in microseconds, rate in KHz fieldTime, fieldFreq: REAL; --desired time in microseconds for one field; rate in Hz <<>> <> hRamMaxAddr: CARDINAL; hBLeadLength: [0..377B]; hSTrailAddr: [0..377B]; hBTrailLength: CARDINAL; <<>> <> vbToVS: [0..377B]; vsToVS: [0..377B]; vsToVB: CARDINAL; visibleLines: CARDINAL; <<>> <> refFreq, nextFreq, bestFreq, fDiff, bestDiff: REAL; trueMul, nextMul, bestMul: [0..377B]; trueZero, bestZero, trueDiv, nextDiv, bestDiv: [0..17B]; }.