IC.1
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:4k
源码类别:
操作系统开发
开发平台:
C/C++
- .TH IC 1
- .SH NAME
- ic - integer calculator
- .SH SYNOPSIS
- fBicfR [fIexpressionfR]fR
- .br
- .de FL
- .TP
- \fB\$1\fR
- \$2
- ..
- .de EX
- .TP 20
- \fB\$1\fR
- # \$2
- ..
- .SH EXAMPLES
- .EX "ic " "Start the calculator"
- .EX "ic 250 300+" "Start calculator with 550 on the stack"
- .SH DESCRIPTION
- .PP
- fIIcfR is a simple RPN (Reverse Polish Notation)
- calculator, used for small calculations
- and base conversions. All calculations are done using 32 bit
- integers.
- The standard input is usually a keyboard and the standard output
- requires a device with a &'termcap&' entry.
- The program starts by interpreting any <args> as commands, where
- the separation between arguments is considered to be the same as
- the ENTER key. For example,
- .PP
- .B " ""ic 692 784+"
- .PP
- After reading the arguments input is from the keyboard.
- .SS "Stack Operations"
- .PP
- The operation of this program is similar to an RPN calculator.
- A six level stack is used. The ENTER key pushes the stack up one
- level. For example, &'12+5&' is entered as &'12 ENTER 5 +".
- .PP
- The top two entries on the stack are exchanged by the fIxfR
- command, and the stack is rolled down one (popped) by the
- fIpfR key.
- The top of the stack may be cleared by pressing the back-space
- key. The whole stack and the registers are initialized by a fIzfR.
- .SS "Numeric Entry"
- .PP
- The input and output bases are initially decimal, but they may
- be changed using the fIifR and fIofR commands. The fIifR command changes
- both bases, but the fIofR command changes just the output base.
- These commands take a one character argument of fIhfR, fIdfR, fIofR or
- fIbfR to change to Hexadecimal, Decimal, Octal or Binary. While the
- input base is hexadecimal the letters fIafR through fIffR are used
- to represent the decimal values 10 through 15.
- .PP
- When the input base is decimal: multiply, divide and remainder
- are signed, otherwise they are performed unsigned.
- .PP
- The output base may also be changed to ASCII (fIafR), this causes
- the least significant 7 bits of a value to be displayed as a
- character. To input an ASCII value the translate (fItfR) command
- may be used, it accepts one character as its argument.
- .SS "Calculations"
- .PP
- The arithmetic operations supported are: Negate (&'.&'),
- Add (&'+&'), Subtract (&'(mi&'), Multiply (&'*&'),
- Divide (&'/&'), and Remainder (&'%&').
- The logical (Boolean) operations available are: NOT (&'~&'),
- AND (&'&&'), OR (&'|&'),
- and EXCLUSIVE-OR (&'^&').
- .PP
- After one of these operations the last top of stack value is
- saved. It may be restored by pressing fIlfR (L).
- .SS "Saving Results"
- .PP
- Ten temporary registers are available. The Store (fIsfR) command
- followed by a digit (&'0&'..&'9&') will copy the top of the stack
- to the specified register. The Recall (fIrfR) command pushes the
- contents of a register onto the top of the stack.
- .PP
- If the Store command is followed by a &'+&' preceding the digit, then
- the top of the stack will be added to the specified &'accumulator&'
- register.
- .PP
- Values may also be written to a file. The fIwfR command writes the
- top of the stack, using the current output base, to a file called
- &'pad&' in the current directory. If the user does not have write
- access to the current directory then the file fI/tmp/pad_$USERfR is
- used as the scratch pad. The scratch pad file is erased on the
- first use of the fIwfR command within each new invocation of &'ic&'.
- .SS "Miscellaneous"
- .PP
- The Quit (fIqfR) key causes an immediate exit.
- The fImfR command temporarily leaves fIicfR
- by invoking the shell as a sub-process.
- For help while using fIicfR, hit the fIhfR key. If an erroneous key
- is pressed the bell will sound.
- .SS "Command Summary"
- .PP
- Note that many commands have an alternative key-code available
- on the extended AT keyboard. This aids entry by including most
- commands on the right side of the keyboard.
- .ta 0.25i 1.5i
- .nf
- .PP
- ENTER Enter (push up)
- BS (DEL) Clear top of stack
- h Help
- i Input base (h, d, o, b)
- l (PGDN) Last top of stack
- m s-2MINIXs0 shell
- o Output base (h, d, o, b, a)
- p (DOWN) Pop stack (roll down)
- q (END) Quit
- r (LEFT) Recall (0-9)
- s (RIGHT) Store [+] (0-9)
- t Translate (char)
- w (PGUP) Write top of stack to scratch pad
- x (UP) Exchange top of stack
- z (HOME) Zero all state
- . Change sign
- + (+) Add
- - (-) Subtract
- * Multiply
- / Divide
- % (sh/5) Remainder
- (tilde) Not
- & And
- | Or
- ^ Exclusive-or
- .fi
- .SS "Author"
- .PP
- fIIcfR was written by Terrence W. Holm.