home *** CD-ROM | disk | FTP | other *** search
- ---------------------------------------------------------------
- ----- COMPUTER MATH CALCULATOR -----
- ----- FOR THE HP-100/200LX -----
- ----- -----
- ----- Version 18 -----
- ---------------------------------------------------------------
- ----- 18 March 1995 -----
- ---------------------------------------------------------------
-
- Copyright (c) 1991, 1992, 1994, 1995 by Eugene Dorr
- All rights reserved.
-
-
- --- ---
- --- Introduction ---
- --- ---
-
- CMCalc for the HP-100/200LX is a system-manager compliant
- application which provides a rich set of computer-science-
- oriented integer manipulations. It features variable word size
- (from 1 to 32 bits), selectable complement modes (unsigned, 1's
- complement, and 2's complement), four number bases (binary,
- octal, decimal and hexadecimal), and visible carry and overflow
- indicators. Only RPN entry is supported.
-
- Because CMCalc is "system-manager compliant" it can be started
- and used along with all other system-manager compliant applica-
- tions, including the built-in applications. You can switch
- between these applications without quitting any of them, and
- when you return to an application, you are returned right where
- you were when you left. Of course, this also means that CMCalc
- will operate ONLY on HP 100LX computers.
-
- (Note: Previous versions of CMCalc were written for the HP-95LX
- palmtop computer -- the predecessor to the HP-100LX. However,
- all references in this document to "CMCalc" are to the version
- of CMCalc written for the HP-100LX.)
-
-
- --- ---
- --- Manifest ---
- --- ---
-
- CMCalc is distributed in an archive called CMCALC18.ZIP. When
- "unzipped" you should have three files:
-
- CMCALC.DOC -- this documentation file
- CMC100.EXM -- the executable file
- CMC100.ICN -- an icon file for CMCalc
-
-
- --- ---
- --- Installing CMCalc ---
- --- ---
-
- Copy the following files to to your HP-100 (They must both be
- copied to the same subdirectory):
-
- CMC100.EXM
- CMC100.ICN
-
- Start the 'MORE' application (also known as 'Application
- Manager') by pressing the [&...] key. Press [F2] (Add), and
- enter the following values:
-
- Name: CMCalc
- Path: (drive):\(subdirectory)\CMC100.EXM
- Comment:
-
- In the Path field, (drive) and (subdirectory) should be replaced
- with the drive letter (a or c) and the subdirectory to which you
- copied the CMCalc files.
-
- Now tab to the Icon field, and the CMCalc icon should appear.
- If it does not, press the down-arrow key until you see the
- CMCalc icon.
-
- Press F10 (OK).
-
- Now press the key-combination you want to use as the hot-key for
- CMCalc (I use Alt+Calc; if you want to use something else, the
- dialog which is displayed at this point describes what your
- options are).
-
- Now you can start CMCalc by pressing the key combination you
- selected.
-
-
- --- ---
- --- Using CMCalc ---
- --- ---
-
- To start CMCalc once it has been installed, hold down the ALT
- key and press the blue HP CALC key (or whatever key you made the
- hot-key during the installation process). To quit CMCalc, press
- MENU, Q(uit). CMCalc uses the HP 100 calculator paradigm, so if
- you are familiar with using the built-in HP 100 calculator,
- operation of CMCalc should be straight-forward.
-
- CMCalc uses the RPN mode of data entry. This documentation
- assumes that you are familiar with RPN.
-
- The CMCalc calculator operates on integers only. If you need to
- operate on floating-point numbers, you can use the HP 100
- built-in calculator and use CUT and PASTE to transfer numbers
- between CMCalc and the built-in calculator application.
-
-
- --- ---
- --- Controlling How CMCalc Works ---
- --- ---
-
- You can control how CMCalc operates in several ways. The
- following options are controlled in the Options/Number Format
- dialog:
-
- * you can specify how many bits will be used to store numbers
- (the word size -- from 1 to 32 bits);
-
- * you can specify what complement mode is to be used (the
- complement mode affects the results of arithmetic functions,
- and the display of numbers in decimal mode);
-
- * you can specify the number base you wish numbers to be
- displayed in (base 2 -- binary, base 8 -- octal, base 10 --
- decimal, or base 16 -- hexadecimal);
-
- The following options are controlled using the Options/
- Calculator Mode dialog:
-
- * you can specify what character set standard (i.e ASCII/ISO
- or EBCDIC) when using character entry mode;
-
- The following options are controlled from the Options/Display
- Options dialog:
-
- * you can specify which of the following windows will be
- displayed:
- - the RPN stack window
- - the flags window
- - the "views" window
-
- * within the "views" windows you can select which of the
- following views of the X register are displayed:
-
- - hexadecimal
- - decimal
- - octal
- - binary
- - ASCII/ISO
- - EBCDIC
-
- (The term "ASCII/ISO" as used in this document means ISO
- 646, or ANSI X3.4, which is a seven-bit character set.
- "EBCDIC" means IBM EBCDIC code page 37.)
-
- * you can specify whether you want leading zeros to be
- displayed;
-
- * you can specify whether to use "dotted decimal" notation.
- (Dotted decimal notation is the method used to represent IP
- addresses. Each byte is represented by a decimal number from
- 0 to 255, and separated from adjacent bytes by a period.)
-
- Note that there is not enough room on the display for all
- windows and all views at the same time. However, the Overflow
- and Carry flags will be shown on the status line if the flags
- window is not displayed.
-
- The settings you select are recorded in the file CMC100.ENV,
- which is stored in the _DAT subdirectory on the C: drive. Each
- time you start CMCalc, the settings which were in effect the
- last time CMCalc was used are restored from this file. (The
- contents of the stack, the storage registers, the overflow and
- carry flags, and the current F-key set are also restored.)
-
-
- The menu functions are summarized below.
-
-
- MENU/File
- /New -- not used
- /Open -- not used
- /Save -- not used
- /Exit -- exits CMCalc
-
- MENU/Edit
- /Insert -- not used
- /Delete -- not used
- /Cut -- not used
- /Copy -- copies the number in the X register, formatted
- in the prevailing base and display options, to
- the clipboard
- /Paste -- pastes a character-formatted number from the
- clipboard into the X register
-
- MENU/Clear
- /Flags -- zeros the Carry and Overflow flags
- /Stack -- zeros all registers in the RPN stack
- /Registers -- zeros all storage registers 0-9 and A-F
- /Calc Line -- zeros the X register
-
- MENU/Options
- /Number format... -- controls the prevailing base, the
- complement mode and the wordsize
- /Calulator Modes... -- controls the character code used
- in character entry mode
- /Display Options... -- controls what information is
- displayed, and in what format
-
- MENU/Quit -- ends CMCalc
-
- MENU/Help
- /Using CMCalc... -- provides reference information
- /Controlling CMCalc... -- provides reference information
- /About CMCalc... -- provides version and contact info
- /Registering CMCalc... -- provide registration info
-
-
- --- ---
- --- Functions ---
- --- ---
-
- In the following descriptions, upper case X, Y, Z and T refer
- to the stack registers, lower case x, y, z and t refer to the
- values contained in the corresponding stack registers. No stack
- movement occurs unless explicitly stated. The Carry and
- Overflow flags are unaffected unless stated otherwise.
-
- The Carry flag is usually used to indicate the value of a bit in
- the result which could not be accomodated in the current size of
- the register, for example, a carry during addition, a borrow
- during subtraction, or a bit shifted out of a register during a
- shift function. The Overflow flag is used to indicate that the
- result could not be expressed within the current register size
- and complement mode. For example, if the wordsize is 8 and the
- complement mode is 2's complement, then the largest positive
- number which can be expressed is 127, and the largest negative
- number which can be expressed is -128. If the CHS (change sign)
- function is applied to -128, then the Overflow flag will be set,
- since +128 cannot be expressed in 8 bits.
-
- Some functions (the ones which refer to bit positions) use the
- absolute (positive) value of x. This is indicated by the
- notation |x|.
-
- As with the HP 100 built-in calculator, many functions are
- assigned to F-keys, which are labelled on the bottom of the
- display. Four groups of functions are available, and the
- different groups are accessed by pressing F10 (labelled 'More').
- In the following descriptions, functions which are assigned to
- F-keys carry the notation '(Fkey)'.
-
- --------------------
- ARITHMETIC FUNCTIONS
- --------------------
-
- + Add -- (+)
- x is added to y, result returned in X. The stack
- drops. Carry and Overflow are set as appropriate for
- the complement mode.
-
- - Subtract -- (-)
- x is subtracted from y, result returned in X. The
- stack drops. Carry and Overflow are set as appropriate
- for the complement mode.
-
- * Multiply -- (*)
- x is multiplied by y, result returned to X, the stack
- drops. Overflow is set if the result cannot be
- represented in the current word size and complement
- mode.
-
- / Divide -- (/)
- The quotient of y divided by x, result returned in X.
- The stack drops. The Carry flag is set if there is a
- remainder, otherwise it is cleared. Overflow is set
- only in 2's complement mode when the largest possible
- negative number is divided by -1. In all other cases
- it is cleared. The function is inhibited and an error
- message is displayed if x is 0 or -0.
-
- ABS Absolute value -- (Fkey)
- If x is negative (this can only be true if the
- complement mode is not unsigned) then it is made
- positive, if possible, the result is returned to X, and
- Overflow is reset. If it is not possible to make x
- positive (i.e. the complement mode is 2's complement,
- and x is the largest possible negative number), then X
- remains unchanged and the Overflow flag is set.
-
- RMD Remainder -- (Fkey)
- y is divided by x, the quotient is discarded, and the
- remainder is returned in X. The stack drops. The
- function is inhibited and an error message is displayed
- if x is 0 or -0.
-
- CHS Change Sign -- (assigned to the 'L' key)
- Complements x, result returned in X. Carry and
- Overflow are set as appropriate for the complement
- mode. The function is inhibited and an error message
- is displayed in unsigned mode.
-
- -----------------------
- BOOLEAN LOGIC FUNCTIONS
- -----------------------
-
- AND Bitwise AND -- (Fkey)
- Bitwise logical AND of x and y, result returned in X.
- The stack drops.
-
- OR Bitwise OR -- (Fkey)
- Bitwise logical OR of x and y, result returned in X.
- The stack drops.
-
- XOR Bitwise Exclusive OR -- (Fkey)
- Bitwise logical exclusive OR of x and y, result
- returned in X. The stack drops.
-
- NOT Bitwise NOT -- (Fkey)
- Bitwise logical NOT of x, result returned in X.
-
- --------------------------
- BIT-MANIPULATION FUNCTIONS
- --------------------------
-
- MASKL Mask left -- (Fkey)
- A bit mask of the size specified by |x| is created and
- placed in the leftmost positions of X, replacing x.
-
- MASKR Mask right -- (Fkey)
- A bit mask of the size specified by |x| is created and
- placed in the rightmost positions of X, replacing x.
-
- SB Set bit -- (Fkey)
- The bit specified by |x| (x=0 specifies the rightmost
- bit) is set in y, the result is returned in X. The
- stack drops.
-
- CB Clear bit -- (Fkey)
- The bit specified by |x| (x=0 specifies the rightmost
- bit) is cleared in y, the result is returned in X. The
- stack drops.
-
- REV Reverse bit order -- (Fkey)
- The order of the bits in x is reversed, the result is
- returned in X.
-
- REVBYTE Reverse byte order -- (Fkey)
- The order of the bytes in x is reversed, the result is
- returned in X. REVB is only valid when the word size
- is an integral number of bytes (in other words, a
- multiple of 8).
-
- BITS Bit count -- (Fkey)
- The number of 1-bits in x is returned in X.
-
- --------------------------
- SHIFT AND ROTATE FUNCTIONS
- --------------------------
-
- SL Shift left -- (Fkey or Left-arrow key)
- x is shifted to the left by one position, a zero bit is
- introduced into the rightmost bit position, and the
- result is returned in X. The Carry flag is set to the
- value of the leftmost bit of x.
-
- +---+ +----------------+
- | | <-- | <----- | <-- 0
- +---+ +----------------+
- Carry
-
- SR Shift right -- (Fkey or Right-arrow key)
- x is shifted to the right by one position, a zero bit
- is introduced into the leftmost bit position, and the
- result is returned in X. The Carry flag is set to the
- value of the rightmost bit of x.
-
- +----------------+ +---+
- 0 --> | -----> | --> | |
- +----------------+ +---+
- Carry
-
- SLn Shift left multiple -- (Fkey)
- y is shifted to the left by the number of positions
- specified by |x|, zero bits are introduced into the
- vacated rightmost bit positions, the result is
- returned in X. The stack drops. The Carry flag is
- set to the value of the last bit to be shifted from the
- leftmost position of y.
-
- SRn Shift right multiple -- (Fkey)
- y is shifted to the right by the number of positions
- specified by |x|, zero bits are introduced into the
- vacated leftmost bit positions, the result is returned
- in X. The stack drops. The Carry flag is set to the
- value of the last bit to be shifted from the rightmost
- position of y.
-
- ASR Arithmetic shift right -- (Fkey)
- x is shifted to the right by one position, the leftmost
- bit (which, in 1's complement and 2's complement mode,
- represents the sign of the value of x) retains its
- original value (and therefore the sign), the result is
- returned in X. The Carry flag is set to the value of
- the leftmost bit of x.
-
- +------+
- | |
- | +----------------+ +---+
- +--> | -----> | --> | |
- +----------------+ +---+
- Carry
-
- LJ Left justify -- (Fkey)
- If x<0, then x is shifted left until the leftmost bit
- contains a one bit. The result is returned to Y. The
- number of shifts performed is returned in X. The stack
- is lifted. If x=0, the stack is lifted and X and Y are
- set to 0.
-
- RL Rotate left -- (Fkey)
- x is shifted left by one position, the value of the
- leftmost bit is returned in the rightmost bit position,
- and also in the Carry flag. The result is returned in
- X.
-
- +--------------------------+
- +---+ | +----------------+ |
- | | <---+--- | <----- | <--+
- +---+ +----------------+
- Carry
-
- RR Rotate right -- (Fkey)
- x is shifted right by one position, the value of the
- rightmost bit is returned in the leftmost bit position,
- and also in the Carry flag. The result is returned in
- X.
-
- +--------------------------+
- | +----------------+ | +---+
- +--> | -----> | ---+---> | |
- +----------------+ +---+
- Carry
-
- RLn Rotate left multiple -- (Fkey)
- y is shifted left by |x| positions, and as each bit is
- shifted out of the leftmost bit position, it is
- introduced into the rightmost bit position, and into
- the Carry flag. The result is returned in X. The stack
- drops.
-
- RRn Rotate right multiple -- (Fkey)
- y is shifted right by |x| positions, and as each bit is
- shifted out of the rightmost bit position, it is
- introduced into the leftmost bit position, and into the
- Carry flag. The result is returned in X. The stack
- drops.
-
- RLC Rotate left through carry -- (Fkey)
- x is shifted left one position, the value of the Carry
- flag is introduced into the vacated rightmost bit
- position, and the Carry flag is set to the value of the
- bit shifted out of the leftmost position.
-
- +------------------------------------+
- | +---+ +----------------+ |
- +--- | | <-- | <----- | <--+
- +---+ +----------------+
- Carry
-
- RRC Rotate right through carry -- (Fkey)
- x is shifted right one position, the value of the Carry
- flag is introduced into the vacated leftmost bit
- position, and the Carry flag is set to the value of the
- bit shifted out of the rightmost position.
-
- +------------------------------------+
- | +---+ +----------------+ |
- +--> | | --> | -----> | ---+
- +---+ +----------------+
- Carry
-
- RLCn Rotate Left through Carry multiple -- (Fkey)
- y is shifted left by |x| positions, and at each shift,
- the rightmost bit position receives the value of the
- Carry bit, and the Carry bit receives the value of the
- bit shifted out of the leftmost position. The result is
- placed in X. The stack drops.
-
- RRCn Rotate Right through Carry multiple -- (Fkey)
- y is shifted right by |x| positions, and at each shift,
- the leftmost bit position receives the value of the
- Carry bit, and the Carry bit receives the value of the
- bit shifted out of the rightmost position. The result
- is placed in X. The stack drops.
-
- ------------------------
- STACK CONTROL OPERATIONS
- ------------------------
-
- Rv Roll Down -- (assigned to the 'v' key)
- The contents of each stack register is shifted into the
- next lower register, and x is shifted into T.
-
- R^ Roll Up -- (assigned to the 'V' key)
- The contents of each stack register is shifted into the
- next higher register, and t is shifted into X.
-
- x<>y Exchange X and Y -- (assigned to the 'X' key)
- The contents of the X and Y registers are exchanged.
-
- ----------------------------
- NUMBER STORAGE AND RETRIEVAL
- ----------------------------
-
- STO Store -- (assigned to the 'N' key)
- The calculator waits for a register specifier - a
- digit key (0..9) or A..F; when a register has been
- specified, x is stored into that register. The value
- may later be recalled to X by pressing RCL and the same
- register specifier. x remains in X. The STO operation
- may be cancelled before specifying a register, by
- pressing ESC.
-
- RCL Recall -- (assigned to the 'M' key)
- As with STO, RCL must be followed by a register
- specifier. The stack is lifted and the value last
- stored into the specified register is placed into X.
- The value remains in the specified register. The RCL
- operation may be cancelled before specifying a register
- by pressing ESC.
-
- RCL L Last X -- (Press the 'M' (RCL) key, followed by 'L')
- Returns to X the value which was in X prior to the last
- function.
-
- ------------
- NUMBER ENTRY
- ------------
-
- 0..9 Digits -- Used to enter numbers. The letters A through
- A..F F are used for digit entry in hexadecimal mode.
-
- . When the prevailing base is decimal, and dotted decimal
- mode is enabled, the period can be used in digit entry
- to indicate byte boundaries.
-
- " or , Activates character entry mode. In character entry
- mode, the character value (interpreted as either
- ASCII/ISO or EBCDIC, depending on the current character
- code setting) of each keypress is appended to x. Note
- that in character entry mode, bits are allowed to shift
- out of the left side of X: in numeric entry mode, this
- loss of bits is disallowed. To terminate character
- entry mode, press ENTER or ESC. Functions which are
- normally invoked with a character key (such as +, *,
- STO, RCL, etc.) are not accessible until character
- entry mode is terminated. Selection of ASCII/ISO or
- EBCDIC character codes is done in the Options/
- Calculator Mode dialog.
-
- ENTER Enter -- (ENTER)
- Copies x into Y, and disables stack lift. If numeric
- or character entry mode is active, it is terminated.
- The space bar and the equal key ('=') may also be used
- for this function (except when in character entry
- mode).
-
- <-- Backspace -- (assigned to the backarrow key)
- When numeric (or character) entry mode is active (the
- cursor is displayed on the entry line) the last digit
- (or character) entered is deleted. If no digits
- remain, entry mode is terminated. When entry mode is
- not active, the X register is set to zero, and stack
- lift is disabled.
-
- DEL Clear X -- (DEL)
- The value of X is set to zero. Stack lift is disabled.
-
-
- --- ---
- --- Error Messages ---
- --- ---
-
- Can't divide by 0
- A divide (/) or RMD function was attempted when the value in
- X was 0 or (in 1's complement mode) -0. Division by 0 is
- undefined.
-
- Can't divide 0 by 0
- A divide (/) or RMD function was attempted when both X and Y
- were 0 or (in 1's complement mode) -0. Division by 0 is
- undefined.
-
- Exceeds current word size
- A mask (MASKL or MASKR), bit-addressing (SB or CB), shift
- multiple (SLn or SRn), or rotate multiple (RLn or RRn)
- function was attempted and |x| was greater than the
- currently selected word size; or a rotate through carry
- multiple (RLCn or RRCn) function was attempted and |x| was
- greater than the currently selected word size + 1.
-
- Current mode is unsigned
- You attempted to change the sign (using CHS) of a number,
- but the currently selected complement mode is unsigned. A
- negative number cannot be expressed in unsigned mode. You
- can display the currently selected complement mode by
- pressing MENU O, N. You can change the complement mode by
- pressing MENU O, N, and then pressing the first character of
- the desired complement mode.
-
- Word size not byte integral
- REVB (reverse bytes) was attempted when the word size was
- set to a size which is not a multiple of 8 (the size of a
- byte). REVB can only be performed when the word size is set
- to 8 (in which case REVB has no effect), 16, 24 or 32. You
- can display the currently selected word size by pressing
- MENU O, N. You can change the word size when the Number
- Format dialog is active by pressing W, and then pressing the
- up- or down-arrow keys until the desired wordsize is
- displayed, and then pressing F10 (OK).
-
-
- --- ---
- --- The HP 100 Calculator Paradigm ---
- --- ---
-
- I have tried to make CMCalc adhere to the HP 100 calculator
- paradigm, but there are some exceptions:
-
- * Algebraic entry mode is not supported
- * CMCalc uses the "large" font instead of the "extra-large"
- font on the calc line
- * Help information is presented in dialog-style windows
- instead of via the built-in help system
- * STO @ and RCL @ are not supported
- * STO arithmetic is not supported
- * Shift-V performs roll-up
- * Square root and inverse are omitted
-
- Since the "B" and "C" keys are used for entering hexadecimal
- numbers, they are unavailable for the standard LASTx and x<>y
- functions. Therefore...
-
- * LASTx is obtained by RCL L
- * x<>y is assigned to the X key
-
-
- --- ---
- --- CMCalc Compared to the HP-16C ---
- --- ---
-
- For those familiar with the HP-16C, CMCalc does not provide
- programmability, and omits functions directy related to
- programmability (there is no indirect register, no x?y or x?0
- comparisons, no flag manipulaton functions, and no bit test
- (B?) function). CMCalc also omits floating-point mode, and the
- square root function, since these are available in the built-in
- HP 100 calculator. The three DBL functions have been omitted.
- Word size is limited to a maximum of 32 bits (versus the 64 bit
- maximum on the HP-16C). Whereas the HP-16C had a variable number
- of storage registers, CMCalc has a fixed set of 16 registers:
- 0..9 and A..F. The HP-16C allows you to perform CHS when the
- complement mode is set to unsigned: CMCalc does not.
-
-
- --- ---
- --- Version History ---
- --- ---
-
- The first released version of CMCALC was version 16.
-
- Version 17 introduced the following changes:
- * The number base can be changed by pressing the UP and DOWN
- arrow keys.
- * The INV (invert bit order) function was renamed REV
- (reverse bit order.)
- * The REVB (reverse byte order) function was added.
- * The stack display can, as an option, be replaced with the
- SHOW display.
- * Character code was added to the SHOW display.
- * In support of the character code display, the option of
- selecting the ASCII or EBCDIC character code was added.
- * The selected number base is always displayed. In version
- 16, if the currently selected number base was decimal, no
- indication was displayed on the status line.
- * The status display (MENU Status) no longer displays the
- selected base, since it now always appears on the status
- line. The selected character code was added to the status
- display.
- * The active F-key set is remembered in the CMCALC.ENV file.
- * The space bar can be used to perform the same function as
- the ENTER key.
- * A display bug (leftover junk when an alarm window was
- displayed on top of the CMCALC display) was fixed.
- * The overflow flag is now set correctly during
- multiplication.
- * The most-significant-bit is now set correctly during
- multiplication.
- * Due to a bug in the HP 95 ROMs, task-switching between
- applications which have "fixups" can sometimes cause
- problems of a completely unpredictable nature. CMCALC is
- now free of fixups (thanks to Craig Finseth for the
- technique).
-
- Version 18 was a complete re-engineering of CMCALC to conform
- to the HP 100 calculator paradigm. Numerous changes were made,
- including:
-
- * A complete re-design of the display, so that both the X
- register in all number bases, and the stack can be shown at
- all times.
- * Allowed user configuration of the display.
- * Added "dotted decimal" display option.
- * Added CUT and PASTE operations.
- * Added character entry mode.
-
-
- --- ---
- --- Problems, Bugs, Comments? ---
- --- ---
-
- If you have problems with CMCalc, or have found a bug, or if you
- want to make suggestions for change or improvement you can
- contact me on CompuServe (75156.3132) or via the Internet
- (dorre@well.com).
-
- CMCalc may be freely copied and distributed ONLY in unmodified
- form, and you may not charge any fee for it. I neither make nor
- express any warranty that CMCalc operates correctly (though I
- believe it to do so), or that it is suitable for your purposes
- (though I hope it is).
-
-
- --- ---
- --- Registration ---
- --- ---
-
- If you continue to use version 18 of CMCalc, please send a
- picture postcard of your hometown (or else the place you *wish*
- was your hometown)! Send your postcard to:
-
- Eugene Dorr
- 8778 Casa Grande Drive
- Pittsburgh PA 15237
- USA
-
- Please include the following information:
-
- - Where you obtained CMCalc from
- (If via anonymous ftp, from what site. If from a
- BBS, which one. If from a friend, the friend's name.)
-
- - Your e-mail address, if you have one (please print
- clearly!).
-
- Benefits of registration:
-
- You can continue to use version 18 with a clear conscience.
- Oh yes, if you send me your e-mail address, I will notify you
- of any future upgrades to CMCalc.
-
-
- --- ---
- --- Known Bugs ---
- --- ---
-
- Despite trying every STYLE and STATUS setting available, I
- cannot cause the "OK" buttons in the "Option" dialog boxes to be
- highlighted, thus indicating they are the default pushbuttons in
- the dialog. A suggestion was made that sending a SET_FOCUS
- message to the pushbutton might work, but I couldn't get it to.
-
- I also couldn't get STATUS_DEF_PUSHB to do anything useful, but
- at least was able to create the *effect* of having a default
- pushbutton by putting appropriate code in the window handler for
- the parent dialog.
-
- When pasting a value from the clipboard, I ignore the thousands
- separators that might be present in a number. That is, as long
- as you live in a country where a comma is used as the thousands
- separator. I cannot find any way to detect the setting of the
- current thousands separator. I tried m_get_settings_addr() but,
- true to the documentation, that function call is obsolete.
-
- If anyone out there can help me with any of these problems, I
- sure would appreciate it!
-
-
-
- Eugene Dorr
- Internet: dorre@well.com
- CompuServe: 75156.3132
-
-