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
horizontal values needed by microcode
hRamMaxAddr: CARDINAL;
hBLeadLength: [0..377B];
hSTrailAddr: [0..377B];
hBTrailLength: CARDINAL;
vertical values needed by microcode
vbToVS: [0..377B];
vsToVS: [0..377B];
vsToVB: CARDINAL;
visibleLines: CARDINAL;
parameters for mul/div calculation
refFreq, nextFreq, bestFreq, fDiff, bestDiff: REAL;
trueMul, nextMul, bestMul: [0..377B];
trueZero, bestZero, trueDiv, nextDiv, bestDiv: [0..17B];
}.