Dear User This little package has served me well. It does almost all of the arithmetic, I/O and formatting for several packages that I've written. It is thoroughly de-bugged. The source is in 8080 code and will assemble under ASM. To use the Package, load it in with: DDT RUNPAC.HEX or use a program that moves the code to the area between 0B000H and 0B79EH. SETUP.COM is such a program. SYS.COM can only run if RUNPAC is present at 0B000H. RUNPAC.DOC decribes each of the Functions. After some practice, I now find this method of programming easier and clearer than any 'higher level language' I've used. It is efficient and runs very fast. Although the arithmetic is Integer, you can assume that a decimal point is used and normalize before adding or subtracting. Trig, Exponential and Log functions may be calculated by implementing the appropriate Series. If the decimal point has to really 'float', one should use a Floating Point Package, however. Dennis Baker P.S. The Divide Routine normally clears the high 4 bytes of the Accumulator (HIACC) before starting. If a Multiplication Product exceeds 4 bytes and you want to normalize by dividing, load the OPERAND with the Divisor then CALL the following Routine (shown in 8080 code). LONGDV: SUB A PUSH PSW ;push status JMP INTDIV+3 The result in ACC will be that of Dividing the 4 byte OPERAND into an 8 byte Accumulator. The Remainder will be in HIACC.