Compiling PhysCalc: PhysCalc is contained in the following source files: physcalc.h Header: global stuctures, defines, includes & declarations physdecl.h Header: function declarations physmain.c Main program, functions to do commands physnode.c Functions for manipulating tree nodes physsolv.c Recursive descent parser & evaluator physconv.c Code to do unit conversion & manipulation physoper.c Code to perform operators & buit in functions physmlib.c Stuff from my library of C functions makefile Makefile for use with Borland's MAKE To create an executable file, compile each .C module and link them all together with the standard libraries. PhysCalc is used to be compatible with DeSmet C 3.0 and Turbo C 2.0. I don't know if it is any more, since I am now compiling it with Borland C 3.1, Microsoft Visual C++ 4.0 and GNU C 2.7.2. Compatability points: * This program sticks close to standard K&R C. * enumerated types & function prototyping are not used. For some compilers, prototyped forward declarations are declared. * Functions clrscr(), pause_for_user() [physmain.c], and initnodes() [physnode.c] will probably need alteration. Initnodes() is called to do any memory setup routines needed. This function should make sure there is enough stack, and do any setup that malloc() may require. * To evaluate larger expressions, a fair amount of stack space is needed. (No longer a worry on 32 bit machines.) * You will almost certainly get warning messages from modern C compilers. To compile properly under DeSmet C, the macro __DESMETC__ must be defined. I put the line: #define __DESMETC__ 0x303 in DeSmet's STDIO.H file.