-- [IVY]<TonyWest>AUX>AuxTest.mesa
-- Auxiliary Hardware Functions
-- MESA Test Program

-- Anthony West, May 19, 1982 5:14 PM

-- This program tests out the Dorado AUX board without using any microcode or wakeups!
-- It tests the following functions:
--
a) DES encryption and decryption hardware.
--
b) Random Number hardware.
--
c) Electronic Stable Storage hardware.

DIRECTORY
IODefsUSING[ WriteString, WriteLine ],
ProcessDefsUSING[ Pause, SecondsToTicks ];

AuxTest: PROGRAM
IMPORTS
IODefs,
ProcessDefs=
{
NIY: PROC [ s: STRING ] =
{
IODefs.WriteString[s];
IODefs.WriteLine[": not implemented yet!"];

ProcessDefs.Pause[ProcessDefs.SecondsToTicks[3]];
};

Print: PROC [ s: STRING ] =
{
IODefs.WriteString[s];
IODefs.WriteLine["..."];
};

BoardReset: PROC =
{
Print["Resetting Aux Board..."];
NIY["Resetting Aux Board..."];
};

BasicControlStatusTest: PROC =
{
Print["Test 1: Test of Control Register and Status Register"];
NIY["Test 1: Test of Control Register and Status Register"];
};

DESTest: PROC =
{
Print["Test 2: Test of DES Logic"];
Out[ControlRegister, RESET];

-- first do an encryption

Encrypt[ fill in stuff here later ];
Decrypt[ more stuff ];
Compare[ mumble ];

};

RandomTest: PROC =
{
Print["Test 3: Test of Thermal Noise Diode Random Bit Generator"];
NIY["RandomTest"];
};

StableStorageTest: PROC =
{
Print["Test 4: Destructive test of External Electronic Stable Storage Modules"];
NIY["StableStorageTest"];
};

-- Main Code

BoardReset[];
BasicControlStatusTest[];
DESTest[];
RandomTest[];
StableStorageTest[];
}.