Annotation of researchv10dc/dist/man/v4/man1/dc.1, revision 1.1.1.1

1.1       root        1: .th DC I 1/15/73
                      2: .sh NAME
                      3: dc \*- desk calculator
                      4: .sh SYNOPSIS
                      5: .bd dc
                      6: [ file ]
                      7: .sh DESCRIPTION
                      8: .it Dc
                      9: is an arbitrary precision integer arithmetic package.
                     10: The overall structure of
                     11: .it dc
                     12: is
                     13: a stacking (reverse Polish) calculator.
                     14: The following constructions are recognized
                     15: by the calculator:
                     16: .s3
                     17: .lp +10 10
                     18: number The value of the number is pushed on the stack.
                     19: A number is an unbroken string of the digits 0-9.
                     20: It may be preceded by an underscore \*_ to input a
                     21: negative number.
                     22: .s3
                     23: .lp +10 10
                     24: +|\*-|*|/|%|^  The top two values on the stack are added
                     25: (+),
                     26: subtracted
                     27: (\*-),
                     28: multiplied (*),
                     29: divided (/),
                     30: remaindered (%),
                     31: or exponentiated (^).
                     32: The two entries are popped off the stack;
                     33: the result is pushed on the stack in their place.
                     34: .s3
                     35: .lp +10 10
                     36: \fBs\fIx\fR    The
                     37: top of the stack is popped and stored into
                     38: a register named
                     39: .it x,
                     40: where
                     41: .it x
                     42: may be any character.
                     43: .s3
                     44: .lp +10 10
                     45: \fBl\fIx\fR    The
                     46: value in register
                     47: .it x
                     48: is pushed on the stack.
                     49: The register
                     50: .it x
                     51: is not altered.
                     52: All registers start with zero value.
                     53: .s3
                     54: .lp +10 10
                     55: \fBd\fR        The top value on the stack is pushed on the stack.
                     56: Thus the top value is duplicated.
                     57: .s3
                     58: .lp +10 10
                     59: \fBp\fR        The top value on the stack is printed.
                     60: The top value remains unchanged.
                     61: .s3
                     62: .lp +10 10
                     63: \fBf\fR        All values on the stack and in registers are printed.
                     64: .s3
                     65: .lp +10 10
                     66: \fBq\fR        exits the program. If executing a string, the nesting level is
                     67: popped by two.
                     68: .s3
                     69: .lp +10 10
                     70: \fBx\fR        treats the top element of the stack as a character string
                     71: and executes it as a string of dc commands.
                     72: .s3
                     73: .lp +10 10
                     74: \fB[|...|]\fR  puts the bracketed ascii string onto the top of the stack.
                     75: .s3
                     76: .lp +10 10
                     77: \fI<x||=x||>x\fR       The
                     78: top two elements of the stack are popped and compared.
                     79: Register
                     80: .it x
                     81: is executed if they obey the stated
                     82: relation.
                     83: .s3
                     84: .lp +10 10
                     85: \fBv\fR        replaces the top element on the stack by its square root.
                     86: .s3
                     87: .lp +10 10
                     88: \fB!\fR        interprets the rest of the line as a UNIX command.
                     89: .s3
                     90: .lp +10 10
                     91: \fBc\fR        All values on the stack are popped.
                     92: .s3
                     93: .lp +10 10
                     94: \fBi\fR        The top value on the stack is popped and used as the
                     95: number radix for further input.
                     96: .s3
                     97: .lp +10 10
                     98: \fBo\fR        The top value on the stack is popped and used as the
                     99: number radix for further output.
                    100: .s3
                    101: .lp +10 10
                    102: \fBz\fR        The stack level is pushed onto the stack.
                    103: .s3
                    104: .lp +10 10
                    105: \fB?\fR        A line of input is taken from the input source (usually the console)
                    106: and executed.
                    107: .s3
                    108: .lp +10 10
                    109: new-line       ignored
                    110: except as the name of a register or to end the
                    111: response to a
                    112: .bd ?.
                    113: .s3
                    114: .lp +10 10
                    115: space  ignored
                    116: except as the name of a register or to terminate a number.
                    117: .s3
                    118: .i0
                    119: If a file name is given, input is taken from that file until
                    120: end-of-file, then input is taken from the console.
                    121: An example which prints the first ten values of n! is
                    122: .nf
                    123: .s3
                    124: .in +3
                    125: .bd "[la1+dsa*pla10>x]sx"
                    126: .bd "0sa1"
                    127: .bd lxx
                    128: .s3
                    129: .fi
                    130: .in -3
                    131: .sh FILES
                    132: /etc/msh       to implement `!'
                    133: .sh DIAGNOSTICS
                    134: (x) ? for unrecognized character x.
                    135: .br
                    136: (x) ? for not enough elements on the stack to do what was asked
                    137: by command x.
                    138: .br
                    139: `Out of space' when the free list is exhausted (too many digits).
                    140: .br
                    141: `Out of headers' for too many numbers being kept around.
                    142: .br
                    143: `Out of pushdown' for too many items on the stack.
                    144: .br
                    145: `Nesting Depth' for too many levels of nested execution.
                    146: .sh BUGS

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.