Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dc(1) — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bc(1)



DC(1)               RISC/os Reference Manual                DC(1)



NAME
     dc - desk calculator

SYNOPSIS
     dc [ file ]

DESCRIPTION
     dc is an arbitrary precision arithmetic package.  Ordinarily
     it operates on decimal integers, but one may specify an
     input base, output base, and a number of fractional digits
     to be maintained.  [bc is a preprocessor for dc that pro-
     vides infix notation and a C-like syntax that implements
     functions.  bc also provides reasonable control structures
     for programs.  See bc(1).]  The overall structure of dc is a
     stacking (reverse Polish) calculator.  If an argument is
     given, input is taken from that file until its end, then
     from the standard input.  The following constructions are
     recognized:

     number
           The value of the number is pushed on the stack.  A
           number is an unbroken string of the digits 0-9.  It
           may be preceded by an underscore () to input a nega-
           tive number.  Numbers may contain decimal points.

     + - / * % ^
           The top two values on the stack are added (+), sub-
           tracted (-), multiplied (*), divided (/), remaindered
           (%), or exponentiated (^).  The two entries are popped
           off the stack; the result is pushed on the stack in
           their place.  Any fractional part of an exponent is
           ignored.

     sx    The top of the stack is popped and stored into a
           register named x, where x may be any character.  If
           the s is capitalized, x is treated as a stack and the
           value is pushed on it.

     lx    The value in register x is pushed on the stack.  The
           register x is not altered.  All registers start with
           zero value.  If the l is capitalized, register x is
           treated as a stack and its top value is popped onto
           the main stack.

      d    The top value on the stack is duplicated.

      p    The top value on the stack is printed.  The top value
           remains unchanged.

     P     Interprets the top of the stack as an ASCII string,
           removes it, and prints it.




                        Printed 11/19/92                   Page 1





DC(1)               RISC/os Reference Manual                DC(1)



      f    All values on the stack are printed.

      q    Exits the program.  If executing a string, the recur-
           sion level is popped by two.

     Q     Exits the program.  The top value on the stack is
           popped and the string execution level is popped by
           that value.

      x    Treats the top element of the stack as a character
           string and executes it as a string of dc commands.

      X    Replaces the number on the top of the stack with its
           scale factor.

      [ ... ]
           Puts the bracketed ASCII string onto the top of the
           stack.

     <x   >x   =x
           The top two elements of the stack are popped and com-
           pared.  Register x is evaluated if they obey the
           stated relation.

      v    Replaces the top element on the stack by its square
           root.  Any existing fractional part of the argument is
           taken into account, but otherwise the scale factor is
           ignored.

      !    Interprets the rest of the line as a UNIX system com-
           mand.

      c    All values on the stack are popped.

      i    The top value on the stack is popped and used as the
           number radix for further input.  I Pushes the input
           base on the top of the stack.

      o    The top value on the stack is popped and used as the
           number radix for further output.

     O     Pushes the output base on the top of the stack.

      k    The top of the stack is popped, and that value is used
           as a non-negative scale factor:  the appropriate
           number of places are printed on output, and maintained
           during multiplication, division, and exponentiation.
           The interaction of scale factor, input base, and out-
           put base will be reasonable if all are changed
           together.

      z    The stack level is pushed onto the stack.



 Page 2                 Printed 11/19/92





DC(1)               RISC/os Reference Manual                DC(1)



      Z    Replaces the number on the top of the stack with its
           length.

      ?    A line of input is taken from the input source (usu-
           ally the terminal) and executed.

     ; :   are used by bc(1) for array operations.

EXAMPLE
     This example prints the first ten values of n!:

          [la1+dsa*pla10>y]sy
          0sa1
          lyx

SEE ALSO
     bc(1).

DIAGNOSTICS
     x is unimplemented:  x is an octal number.

     stack empty:  not enough elements on the stack to do what
     was asked.

     Out of space:  the free list is exhausted (too many digits).

     Out of headers:  too many numbers being kept around.

     Out of pushdown:  too many items on the stack.

     Nesting Depth:  too many levels of nested execution.
























                        Printed 11/19/92                   Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026