BEGIN
CKViewer: TYPE = REF CKViewerData;
CKViewerData:
TYPE =
RECORD [
height: NAT,
container: ViewerClasses.Viewer,
state: CKViewerState,
buttons: CKViewerButtons,
panel: CKViewerPanel
];
CKViewerState:
TYPE =
RECORD [
quit, aToggle, bToggle, slow: BOOLEAN,
freeze, scramble, roll: BOOLEAN,
random, symmetric, diag: BOOLEAN,
testPattern, cbars, converge: BOOLEAN,
bigRed, bigGreen, bigBlue: BOOLEAN,
smallRed, smallGreen, smallBlue: BOOLEAN,
testingPanel: BOOLEAN,
bpp: [0..24]
];
CKViewerButtons:
TYPE =
RECORD [
quitButton, twentyfourButton, eightButton, fourButton, twoButton, oneButton: Buttons.Button,
aChanButtton, bChanButton, slowButton: Buttons.Button,
freezeButton, scrambleButton, rollButton: Buttons.Button,
randomButton, symmetricButton, diagButton: Buttons.Button,
testButton, cBarsButton, convergeButton: Buttons.Button,
bigRedButton, bigGreenButton, bigBlueButton: Buttons.Button,
smallRedButton, smallGreenButton, smallBlueButton: Buttons.Button
];
CKViewerPanel:
TYPE =
RECORD [
passLabel: Labels.Label, -- readonly passcount
passCount: NumberLabels.NumberLabel, -- readonly passcount
stopGo: ChoiceButtons.EnumTypeRef, --large STOP/GO button
tableOp: ChoiceButtons.EnumTypeRef, --ReadOnly,WriteOnly,RW,RWCheck
table: ChoiceButtons.EnumTypeRef, --A only, B only, C only, All Tables
action: ChoiceButtons.EnumTypeRef, --fixed, random, cycle
pattern: ChoiceButtons.PromptDataRef, --24 bit pattern in OCTAL
firstAddr: ChoiceButtons.PromptDataRef, --starting address for test
lastAddr: ChoiceButtons.PromptDataRef, --ending address for test
incAddr: ChoiceButtons.PromptDataRef, --address increment
report: ChoiceButtons.EnumTypeRef, --verbose, terse, none
script: ViewerClasses.Viewer, --error reporting typescript
stream: IO.STREAM --output stream for script
];
Quit: Buttons.ButtonProc;
Bpp24: Buttons.ButtonProc;
Bpp8: Buttons.ButtonProc;
Bpp4: Buttons.ButtonProc;
Bpp2: Buttons.ButtonProc;
Bpp1: Buttons.ButtonProc;
AChan: Buttons.ButtonProc;
BChan: Buttons.ButtonProc;
Slow: Buttons.ButtonProc;
Freeze: Buttons.ButtonProc;
Scramble: Buttons.ButtonProc;
Roll: Buttons.ButtonProc;
CKRandom: Buttons.ButtonProc;
Symmetric: Buttons.ButtonProc;
Diag: Buttons.ButtonProc;
TestPattern: Buttons.ButtonProc;
CBars: Buttons.ButtonProc;
Converge: Buttons.ButtonProc;
BigRed: Buttons.ButtonProc;
BigGreen: Buttons.ButtonProc;
BigBlue: Buttons.ButtonProc;
SmallRed: Buttons.ButtonProc;
SmallGreen: Buttons.ButtonProc;
SmallBlue: Buttons.ButtonProc;
Go: PROC [ckViewer: CKViewer];
CreateCKViewer: PROC RETURNS [CKViewer];
SetStaticButtons: PUBLIC PROC [ckv: CKViewer, button: Buttons.Button];
RestartCKViewer: PROC [ckViewer: CKViewer];