3/15/72                                                    DC (I)





NAME            dc -- desk calculator



SYNOPSIS        dc [file]



DESCRIPTION     dc is an arbitrary precision integer arithmetic

                package.  The overall structure of dc is a stack-

                ing (reverse Polish) calculator.  The following

                constructions are recognized by the calculator:



                number

                   The value of the number is pushed on the

                   stack.  If the number starts with a zero, it

                   is taken to be octal, otherwise it is decimal.



                + - * / %

                   The top two values on the stack are added (+),

                   subtracted (-), multiplied (*), divided (/),

                   or remaindered (%).  The two entries are

                   popped off of the stack; the result is pushed

                   on the stack in their place.



                sx

                   The top of the stack is popped and stored into

                   a register named x, where x may be any charac-

                   ter.



                lx

                   The value in register x is pushed on the

                   stack.  The register x is not altered.



                d

                   The top value on the stack is pushed on the

                   stack.  Thus the top value is duplicated.



                p

                   The top value on the stack is printed in deci-

                   mal.  The top value remains unchanged.



                f

                   All values on the stack are popped off and

                   printed in decimal.



                q

                   exits the program.



                x

                   treats the top element of the stack as a char-

                   acter string and executes it as a string of dc

                   commands.



                !

                   interprets the rest of the line as a UNIX com-

                   mand.



                r

                   All values on the stack are popped.



                nk


                                       n
                   A scale factor of 10  is set for all subse-

                   quent multiplication and division.



                new-line

                space

                   ignored.



                An example to calculate the monthly, weekly and

                hourly rates for a $10,000/year salary.



                   10000

                   100*    (now in cents)

                   dsa     (non-destructive store)

                   12/     (pennies per month)

                   la52/   (pennies per week)

                   d10*    (deci-pennies per week)

                   375/    (pennies per hour)

                   f       (print all results)

                   (3) 512

                   (2) 19230

                   (1) 83333



FILES           --



SEE ALSO        --



DIAGNOSTICS     (x) ? for unrecognized character x.

                (x) ? for not enough elements on the stack to do

                what was asked.

                "Out of space" when the free list is exhausted.



BUGS            f is not implemented

                % is not implemented



OWNER           rhm