
IMP80TESTS is a file of test programs with an obeyfile "TESTCOMP"
to execute them. Subfiles "CT??" are compile time tests whereas
subfile "RT??" should compile and execute with checks and opt.
Subfiles "VS??" are very simple compiler development tests.

Exact functions of each test are:-
CT0   : Tests simple conditional compilation
CT1   :Tests more complex conditional compilation
CT2   :Tests faulting of undeclared string
CT3   :Tests faulting of excessive constant bounds in array
CT4   :Tests further faults in string declarations and FNs
CT5   :Tests faulting of misplaced %ON statement
CT6   :Tests faulting of invalid %OWNRECORD initialising
CT7   :Tests error messages after invalid use of map RECORD
CT8   :Has four unusual type inconsistencies
CT9   :Has 4 errors in external&entrinsic declarations
CT10  : Checks that danging %elses are faulted.
CT11: CHECKS ON RECORDFORMATSPECS.
CT12: Checks that foreign assemblers are ignored when conditionally compiled
CT13: Check a great variety of pathological continuations. Should compile.
CT14: Checks that a valid exit at a lower textual level is faulted
:RT0   :Checks %OWN initialising with const NL. Should print 10 twice.
RT1   :Checks access and passing of arrays in records.Prints integers 1 to 5
RT2   :Simple test of UNTIL cycles. Prints integers 0 to 3
RT3   :Checks resolution using TOSTRING. Outputs string"ABCDE"
RT4   :Tests a loop of unknown direction. No output
RT5   :Tests switching on longintegers. Outputs "GOT HERE OK"
RT6   :Tests initialised string arrays. Outputs"THREE ONE TWO THREE"
RT7   :Tests simple access to record arrays via whole record assignment
         Outputs :WORKED OK"
RT8   :A complex test of passing strings in records by name and value.
         Outputs nothing unless a failure found.
RT9   :Old faithful of interchange with record parameters.Outputs on failure
RT10  :Checks addr with record names. Outputs a message
RT11  :Complex conditions. May loop on failure. Outputs a message.
RT12  :Tests space allocation in recordarrays. Output on failure.
RT13  :Simple test of stringarray passing by name. Outputs "ABCD"
RT14  :Checks line number after array fault on line 13.
RT15   :Tests some very complex conditions. Output on failure.
RT16   :Tests space assignment if records with alternative formats. Outputs
         three numbers which should be the same + 1 more
RT17  :Tests lower case in hex consts. No output.
RT18  :Test of resolution. No output if successful
RT19  :Old faithfull string quicksort. Reads data and outputs
         nine names in alphabetic order.
RT20  :Tests records passed by value. Outputs on failure.
RT21  :Tests very large string constants one of which is output
RT22: Tests initialising 2D own arrays +odds&ends.Output on failure
RT23: Test == assignments and comparisons. Outputs on failure.
RT24: The classic test for correct environment of formal procedures.
         Outputs 10 or a failure message.
RT25: The classic HOUSEHOLDER program
RT26: A test of repeated event trapping (ex H.dewar.)
RT27: A simple test of string jam transfers. Outputs "TEST OK"
RT28: A test of formal procedures with predeclared names.
RT29: A check of shifting aginst integer exponentiation. Outputs on failure
RT30: A pathological string map program.Outputs the constructed string.
RT31: A simple test of string lexiographic conditions. O-P on failure
RT32: A test of array eqivalence including arrayname in records. no o-p
RT33: A simple test of byte pointers. Outputs on failure only
RT34: A simple test of string pointers. Outputs on failure only
RT35:A version of rt30 using %record %maps
RT36:A test of recursive fns as parameters. No output.
RT37: A test of LINT & LINTPT on large long integers
RT38: A test of multi dimension arrays for overlapping problems.
RT39: A test of all simple parameters by name&value.O-p=Test Ok.
RT40: Imp compiler error routine. O/P a pseudo error message.
RT41: A simple test of string maps. Prints "test ok".
RT42: A test of externals and extrinsics. Outputs TEST OK or diagnostics.
RT43: A test of string maps length and charno. Prints "test ok"
RT44: A severe test of built in fns INT & INTPT. Prints "TEST OK".
RT45: A test of bytes in record arrays. Checks byteswopping.
RT46: A test of concatenation includeing a fn and map. ops test ok.
RT47: A test of record functions with global assignments. O-P test ok
RT48: A test of variant record formats with byte offsets. Problems on
      word address machines. ok on byte address m-cs. O-P is TEST OK
RT49: A test that space is recovered from begin end blocks.No o-p unless error.
RT50: Adifficult to optimise use of byteinteger
RT51: A string fn test with a very nasty actual parameter indeed
RT52: A test of optimisation of overlapped records, Outputs TESt ok.
RT53: A test of names within recordnames in same op. prints TEST OK
RT54: A test of copies into global records. Prints TEST OK
RT55: A test of TRUNC ie fix a la Fortran.Prints TEST OK.
RT56: A quick check that bytes are not implemented as signed
RT57: A further check on correct parameter spacing. Prints Test OK.
RT58: A check that overflow can be trapped by %on %event
RT59: Checks function results survive undeclaring dynamic arrays
RT60: Checks 2-D initialised arrays are set up correctly. prints "test OK".

RT61: Atest of a string fn in a concatenation. Wrong for years!
RT62: The Fortran powerrr routine which mainuplates the exp field
       of real numbers and can defeat the register tracking.
RT63: A test of one word record as used by Fortran compiler. This
    trivial program defeated the register tracking.
RT64: Atest of array boundchecking on bytes. wrong on 386
 
VS0:  A test of printing an own string and its length
VS1:  A test of double sided conditions.
VS2:  A simple test of concatenation.
VS3:  A minimum string resolution
VS4:   Printing of one hex number via a cycle.
VS5:   A simple record by value test.
VS6:   A minimal test of switches.
