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

1.1       root        1: .pa 1
                      2: .he 'DC (I)'1/15/73'DC (I)'
                      3: .ti 0
                      4: NAME           dc -- desk calculator
                      5: .sp
                      6: .ti 0
                      7: SYNOPSIS       dc__ [file]
                      8: .sp
                      9: .ti 0
                     10: DESCRIPTION    dc__
                     11: is an arbitrary precision integer arithmetic package.
                     12: The overall structure of dc is
                     13: a stacking (reverse Polish) calculator.
                     14: The following constructions are recognized
                     15: by the calculator:
                     16: .sp
                     17: .in +3
                     18: .ti -3
                     19: number
                     20: .br
                     21: The value of the number is pushed on the stack.
                     22: A number is an unbroken string of the digits 0-9.
                     23: It may be preceded by an underscore (_) to input a
                     24: negative number.
                     25: .sp
                     26: .ti -3
                     27: +_ -_ *_ /_ %_ ^_
                     28: .br
                     29: The top two values on the stack are added (+_),
                     30: subtracted (-_), multiplied (*_), divided (/_),
                     31: remaindered (%_) or exponentiated (^).
                     32: The two entries are popped off the stack;
                     33: the result is pushed on the stack in their place.
                     34: .sp
                     35: .ti -3
                     36: s_x
                     37: .br
                     38: The top of the stack is popped and stored into
                     39: a register named x, where x may be any character.
                     40: .sp
                     41: .ti -3
                     42: l_x
                     43: .br
                     44: The value in register x is pushed on the stack.
                     45: The register x is not altered.
                     46: All registers start with zero value.
                     47: .sp
                     48: .ti -3
                     49: d_
                     50: .br
                     51: The top value on the stack is pushed on the stack.
                     52: Thus the top value is duplicated.
                     53: .sp
                     54: .ti -3
                     55: p_
                     56: .br
                     57: The top value on the stack is printed.
                     58: The top value remains unchanged.
                     59: .sp
                     60: .ti -3
                     61: f_
                     62: .br
                     63: All values on the stack and in registers are printed.
                     64: .sp
                     65: .ti -3
                     66: .ul 1
                     67: q
                     68: .br
                     69: exits the program. If executing a string, the nesting level is
                     70: popped by two.
                     71: .sp
                     72: .ti -3
                     73: .ul
                     74: x
                     75: .br
                     76: treats the top element of the stack as a character string
                     77: and executes it as a string of dc commands.
                     78: .sp
                     79: .ti -3
                     80: [...]_____
                     81: .br
                     82: puts the bracketed ascii string onto the top of the stack.
                     83: .sp
                     84: .ti -3
                     85: <_x =_x >_x
                     86: .br
                     87: The top two elements of the stack are popped and compared.
                     88: Register x is executed if they obey the stated
                     89: relation.
                     90: .sp
                     91: .ti -3
                     92: .ul
                     93: v
                     94: .br
                     95: replaces the top element on the stack by its square root.
                     96: .sp
                     97: .ti -3
                     98: !_
                     99: .br
                    100: interprets the rest of the line as a UNIX command.
                    101: .sp
                    102: .ti -3
                    103: c_
                    104: .br
                    105: All values on the stack are popped.
                    106: .sp
                    107: .ti -3
                    108: i_
                    109: .br
                    110: The top value on the stack is popped and used as the
                    111: number radix for further input.
                    112: .sp
                    113: .ti -3
                    114: o_
                    115: .br
                    116: the top value on the stack is popped and used as the
                    117: number radix for further output.
                    118: .sp
                    119: .ti -3
                    120: z_
                    121: .br
                    122: the stack level is pushed onto the stack.
                    123: .sp
                    124: .ti -3
                    125: ?_
                    126: .br
                    127: a line of input is taken from the input source (usually the console)
                    128: and executed.
                    129: .sp
                    130: .ti -3
                    131: new-line
                    132: .br
                    133: ignored except as the name of a register or to end the
                    134: response to a ?_.
                    135: .sp
                    136: .ti -3
                    137: space
                    138: .br
                    139: ignored except as the name of a register or to terminate a number.
                    140: .br
                    141: .sp
                    142: .in -3
                    143: If a file name is given, input is taken from that file until
                    144: end-of-file, then input is taken from the console.
                    145: .sp
                    146: An example to 
                    147: calculate the monthly, weekly and
                    148: hourly rates for a $10,000/year salary.
                    149: .sp
                    150: .nf
                    151: .in +3
                    152: 10000
                    153: 100*   (now in cents)
                    154: dsa    (non-destructive store)
                    155: 12/    (pennies per month)
                    156: la52/  (pennies per week)
                    157: d10*   (deci-pennies per week)
                    158: 375/   (pennies per hour)
                    159: f      (print all results)
                    160:      512
                    161:      19230
                    162:      83333
                    163: "a"  1000000
                    164: .sp
                    165: .in -3
                    166: An example which prints the first ten values of n! is
                    167: .in +3
                    168: [la1+dsa*pla10>x]sx
                    169: 0sa1
                    170: lxx
                    171: .sp
                    172: .fi
                    173: .in -3
                    174: .ti 0
                    175: FILES          --
                    176: .sp
                    177: .ti 0
                    178: SEE ALSO       msh(VII), salloc(III)
                    179: .sp
                    180: .ti 0
                    181: DIAGNOSTICS    (x) ? for unrecognized character x.
                    182: .br
                    183: (x) ? for not enough elements on the stack to do what was asked
                    184: by command x.
                    185: .br
                    186: "Out of space" when the free list is exhausted (too many digits).
                    187: .br
                    188: "Out of headers" for too many numbers being kept around.
                    189: .br
                    190: "Out of pushdown" for too many items on the stack.
                    191: .br
                    192: "Nesting Depth" for too many levels of nested execution.
                    193: .sp
                    194: .ti 0
                    195: .ti 0
                    196: BUGS           --

unix.superglobalmegacorp.com

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