Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bc(1)



  dc(1)                               CLIX                               dc(1)



  NAME

    dc - Runs a desk calculator

  SYNOPSIS

    dc [file]

  DESCRIPTION

    The dc utility 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.  (See bc, a
    preprocessor for dc that provides infix notation and a C-like syntax that
    implements functions.  The bc function also provides reasonable control
    structures for programs.) 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 stdin.  The following constructions are
    recognized:

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

    + - / * % ^
             Adds (+), subtracts (-), multiplies (*), divides (/), remainders
             (%), or exponentiates (^) the top two values on the stack.  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       Pops the top of the stack and stores it 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       Pushes the value in register x 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        Duplicates the top value on the stack.

    p        Displays the top value on the stack.  The top value remains
             unchanged.

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

    f        Displays all values on the stack.




  2/94 - Intergraph Corporation                                              1






  dc(1)                               CLIX                               dc(1)



    q        Exits the command.  If executing a string, the recursion level is
             popped by two.

    Q        Exits the command.  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
             Pops and compares the top two elements of the stack.  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 command.  All
             values on the stack are popped.

    c        Pops all values on the stack.

    i        Pops the top value on the stack and uses it as the number radix
             for further input.  I Pushes the input base on the top of the
             stack.

    o        Pops the top value on the stack and uses it as the number radix
             for further output.

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

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

    z        Pushes the stack level onto the stack.

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

    ?        Takes and executes a line of input from the input source (usually
             the terminal).

    ; :      Indicate array operations to bc.




  2                                              Intergraph Corporation - 2/94






  dc(1)                               CLIX                               dc(1)



  EXAMPLE

           To display the first ten values of n!:

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


  DIAGNOSTICS

    x is unimplemented
           Where 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.

  EXIT VALUES

    Exit values are invalid.

  RELATED INFORMATION

    Commands: bc(1)


















  2/94 - Intergraph Corporation                                              3




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