-- File: TimingDefs.mesa
-- Edited by Sandman on September 3, 1980 3:32 PM
DIRECTORY
Mopcodes USING [zMISC];
TimingDefs: DEFINITIONS =
BEGIN
HiLo: TYPE = {hi, lo};
Pair: TYPE = RECORD [value, factor: CARDINAL];
Fudge: TYPE = ARRAY HiLo OF Pair;
Fudges: ARRAY Machine OF Fudge =
[[[value: 2, factor: 1], [value: 1, factor: 1]], -- altoI
[[value: 2, factor: 1], [value: 1, factor: 1]], -- altoII
[[value: 2, factor: 1], [value: 2, factor: 1]]]; -- d0
MsPerTick: LONG CARDINAL = 38;
MaxTick: LONG CARDINAL = 400000000B;
Machine: TYPE = {altoI, altoII, d0};
HighTime: TYPE = MACHINE DEPENDENT RECORD [
SELECT OVERLAID * FROM
split => [high: [0..1777B], low: [0..77B]],
whole => [whole: CARDINAL],
ENDCASE];
LowTime: TYPE = MACHINE DEPENDENT RECORD [
SELECT COMPUTED Machine FROM
altoI => [low: [0..1777B], fill: [0..77B]],
altoII => [fill1: [0..17B], low: [0..1777B], fill2: [0..3B]],
d0 => [low: [0..1777B], fill: [0..77B]], -- version 3.0
ENDCASE];
RealTime: TYPE = MACHINE DEPENDENT RECORD [low: LowTime, high: HighTime];
ReadTime: PROCEDURE RETURNS [RealTime] = MACHINE CODE
BEGIN Mopcodes.zMISC, 11B END;
END..