All software for the FR80 is supplied in binary object program format only. Making changes requires decompilation of the binary program followed by break-out patches. The III software runs as stand-alone programs because the FR80 has no operating system or run time support package. Run time errors usually crash the machine. The primitive architecture of the III-15 CPU means that it cannot trap bad instructions or write-protect parts of store. There is neither software or hardware protection for the vulnerable analogue side of the FR80, particularly the CRT which is very expensive to replace.
All III software has been designed to run in an 8K machine and no disc. To squeeze it into such a small store, the software is coded entirely in Assembler. The software is poorly designed, badly coded and unreliable.
The number of lines of patched code exceeded the size of the code that it was patching. ACL put about 3 manyears of effort into patching III software before the decision was made to rewrite it completely.
III software is unreliable, difficult to maintain and impossible to develop. A replacement system, DRIVER, is being constructed by R W Witty. The advantages of DRIVER are:
To make DRIVLR reliable, maintainable and modifiable it is constructed in a structured high level language, DRIL, which is cross-compiled from the 1906A by a TREE-META compiler-compiler produced translator. The advantages of such a high level language over Assembler are many. Cross-compilation means software development causes minimal interference to the FR80's production schedule as most of the work is done on the 1906A. DRIVER is designed and constructed according to the best principles of structured programming. Reliability is greatly increased by proving that DRIVER terminates for any input. Automatic documentation tools are currently being constructed. The DRIVER prototype first ran on 29 March 1976 and the first production version, Mk 1, is scheduled to go into service on 1 December 1976.
Mk 1 DRIVER will offer the following new facilities:
DRIVER is designed to be a good base for future developments. These could include:
Development of DRIVER has highlighted some of the problems in dealing with III. For example:
DRIVER timescales are: