# $Id$ This directory contains the sources of the EM interpreter. A parallel directory contains the manual page and the documentation. Two types of interpreters can be generated. - Normal Version A call to make will result in the generation of an interpreter, int. This interpreter will do full checking and can do logging on request. It is the normal interpreter to be used for software checking and grooming. - Fast Version If the interpreter is used for the purpose of running programs rather than for testing them, a considerably faster version can be generated by undefining the macro LOGGING in the include file logging.h . This interpreter will still give some warnings: about bad trap numbers, unimplemented system calls and the occurrence of traps. There are a small number of compile-time flags, each in a separate file: loggin.h - distinguishes between normal and fast version debug.h - ignore segcheck.h - ignore sysidf.h - define the approrpiate system name v7ioctl.h - define if ioctl requests should conform to UNIX V7 nofloat.h - define if the C compiler used has no floating point There are two subdirectories: switch - generates opcode-analysing switches test - contains testprograms Installation note: The file do_fpar.c (do floating point arithmetic) contains a macro MAXDOUBLE which defines the largest possible double on the present machine. It is set to 99.e999, which may not be acceptable to your compiler. Adjust as necessary. Note: This interpreter assumes that the char in the C compiler used to translate the interpreter, is a signed char. It is not impossible to adapt the interpreter to unsigned chars, but it is not trivial.