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.