rpCalc ReadMe

# ReadMe file for rpCalc

## a reverse polish notation calculator

Written by Doug Bell
Version 0.8.2
April 8, 2018

## Contents

- Background
- Features
- Legal Issues
- System Requirements
  - Linux
  - Windows
- Installation
  - Linux
  - Windows
- Using rpCalc
  - Basics
  - Information Windows
  - Alternate Bases
  - Options
- Revision History
- Questions, Comments, Criticisms?

## Background

rpCalc started out as a small program written to try out various Python GUI toolkits. But I ended up using it all the time (it's much quicker to pull it up than to pull an actual HP calculator out of the desk), and I made several improvements. So I decided to make it available to others who also like RPN calculators.

Since I'm not in the software business, I'm making this program free for anyone to use, distribute and modify, as long as it is not incorporated into any proprietary programs. If you like the software, feel free to let others know about it. And let me know what you think - my e-mail address is doug101 AT bellz DOT org

## Features

- Uses reverse polish notation, similar to most Hewlett-Packard calculators.
- The number, operator or command text on any key can be typed, or the mouse can be used to hit the key.
- If desired, the four RPN registers can be shown in the main display.
- A separate window can display the four RPN registers, a history of recent calculations, or the contents of the ten memory registers.
- A separate window converts to and from other number bases (hexadecimal, octal and binary).
- Any values from the extra windows can be copied to the calculator display or to the clipboard.
- Options can be set to control the display of numbers and the initial window configuration.

## Legal Issues

rpCalc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either Version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the `LICENSE` file provided with this program for more information.

## System Requirements

### Linux

rpCalc requires the following libraries:

- Python (Version 3.4 or higher)
- Qt (Version 5.4 or higher - see Qt Project for more information)
- PyQt (Version 5.4 or higher - see Riverbank for more information)

If these libraries are not be available for your distribution, an earlier version of rpCalc (0.6.0) that depends on older libraries is still available.

### Windows

Using the files provided in the binary distribution, rpCalc should run on any computer running Windows XP, Vista, 7, 8 or 10.

## Installation

### Linux

Extract the source files from the rpcalc tar file, and then change to the `rpCalc` directory in a terminal. For a basic installation, simply execute the following command as root: `python install.py`

If your distribution defaults to Python 2.x, you may need to substitute `python3` for `python` in these commands.

To see all install options, use: `python install.py -h`. To install rpCalc with a different prefix (the default is `/usr/local`), use: `python install.py -p /prefix/path`

### Windows

To install for all users, execute the `rpCalc-x.x.x-install-all.exe` file. Administrator permissions are required.

To install for a single user (administrator rights are not required), execute the `rpCalc-x.x.x-install-user.exe` file.

For a portable install, execute the `rpCalc-x.x.x-install-user.exe` file, uncheck the shortcuts and uninstaller tasks, and check the portable config task.

## Using rpCalc

### Basics

If you know how to use an RPN calculator (like some Hewlett-Packard models), you know how to use rpCalc. It stores previous results in four registers (usually labeled X, Y, Z and T), and the numbers are entered before the operators.

The quickest way to enter numbers and the four basic operators is to use the number pad on the keyboard. For the other keys, the name on the key can be typed (not case-sensitive). What has been typed shows in the box below the keys. The tab key may be used to automatically complete a partially typed command. Of course, the mouse may also be used to hit any key.

A few keys have unusual labels to allow them to be typed: "RCIP" is 1/X, "tn^X" is 10^X, "R<" rolls the stack back (or down), "R>" rolls the stack forward (or up), "x<>y" is exchange, "CLR" clears the registers, and "<-" is backspace.

A few commands ("STO", "RCL" and "PLCS") prompt for a number from zero through nine. This number will be the memory register number or the number of decimal places for the display.

### Information Windows

A menu can be displayed by hitting the Esc key or by clicking on the main number (LCD) display with the right mouse button. This menu includes commands to display a list of registers, a calculation history list, and a memory contents list. These commands will show a new window with the requested information. The extra window is tabbed to toggle between the three lists. Buttons on the window can be used to copy the numbers to the calculator (X-register) or to the clipboard (with buttons to copy either all decimal places or the formatted fixed decimal place number).

The register list shows the current contents of each register (X, Y, Z and T). The numbers are shown to full precision, with all available decimal places shown.

The history list shows algebraic equations for every calculation that was done in the current rpCalc session. The numbers are shown to the same precision as the main display.

The memory list shows the current contents of the ten memory registers (0-9). The numbers are shown to the same precision as the main display.

### Alternate Bases

An alternate base window can be shown from the display context menu (right-click the LCD or hit the Esc key). This window shows the hexadecimal, octal and binary equivalents of the number in the X-register, rounded to the nearest integer.

The Hex, Octal, Binary and Decimal buttons are used to change the input mode to that base. There are also keyboard shortcuts (Alt-x, Alt-o, Alt-b and Alt-d) that do the same thing. Any typed number is then interpreted using the current base. The current mode is kept until the user changes it.

Prefixes consisting of a zero followed by the base code (x, o, b or d) can be used to temporarily change the input mode. For example, "0x56c" enters the hex number 56c (1388 in decimal). The input mode goes back to decimal after hitting enter or using a function. Note that the alternate base window must be displayed for these prefixes to function.

When using non-decimal input modes, the decimal equivalent of the entry is still displayed on the main LCD. Also, when in hex input mode, commands beginning with letters A-F can only be typed if a colon (":") is used as a command prefix.

There is also a Copy Value button that copies the value of the current input mode base to the clipboard for use in other applications.

The option dialog has a setting for a limit on the number of bits. Numbers larger than the limit will display "overflow" in the alternate base window. There is also a setting to show negative numbers as a two's complement number.

### Options

The OPT key will show an options dialog box. This includes settings for startup conditions, display parameters, angle units, alternate bases and extra views.

The startup options include whether to save the register entries between sessions and whether to open the extra data or alternate base windows when starting rpCalc.

The display options include several number formatting settings. The number of decimal places, use of space as a thousands separator and various exponent and engineering notation (exponents divisible by three) options can be set. There are also settings for viewing all four RPN registers on the main display and for hiding the LCD highlight (clearer for some resolution and window size settings).

The extra views section includes buttons for showing the extra data window, the alternate base window, and this readme file. The number of saved equations in the history list can also be set.

## Revision History

### April 8, 2018 - Release 0.8.2

Updates:
- Added a desktop file to the Linux version to provide menu entries.
- Built the Windows version with an updated version of the GUI library.

### February 4, 2017 - Release 0.8.1 (Linux only)

Bug Fixes:
- Replaced outdated dependency checks in the Linux installer - it now runs checks for Qt5 libraries.
- Fixed a timing issue in the Linux installer so that byte-compiled files do not have old timestamps.

### January 15, 2017 - Release 0.8.0

New Features:
- rpCalc has been ported from the Qt4 to the Qt5 library.

### December 6, 2015 - Release 0.7.1

Updates:
- Clarified some dependency checker error messages in the Linux installer.
- Added some MSVC runtime DLL files to the Windows installers to avoid problems on PCs that do not already have them.

Bug Fixes:
- Fixed problems responding to some keyboard presses when the shift key is used on Windows.

### January 26, 2014 - Release 0.7.0

Updates:
- rpCalc has been ported from Python 2 to Python 3. This porting includes some code cleanup.
- The Windows binaries are built using more recent Python, Qt and PyQt libraries.
- There is an additional Windows installer for users without administrator rights and for portable installations.
- Added an installer option to add a config file to the program's directory for portable installations. If that file is present, no config files will be written to users' directories.

### October 14, 2008 - Release 0.6.0

New Features:
- A new base conversion dialog was added. It shows values in hexadecimal, octal and binary bases. Push buttons or keyboard prefixes can be used to allow entry of a value in one of these bases.
- A colon (":") can optionally be used as a prefix when typing commands. This is useful in hexadecimal entry mode for commands starting with letters "A" through "F".
- New options have been added for alternate base conversions. The number of bits and whether to use two's complement for negative numbers can be set.
- A display option was added to separate thousands with spaces in the main "LCD".
- An engineering notation display option was added that only shows exponents that are divisible by three.

Updates:
- Keyboard number and function entry continue to work when the Extra Data window has focus.
- The ReadMe file has been updated.

### October 3, 2006 - Release 0.5.0

New Features:
- rpCalc was ported to the Qt4 library. This involved a significant rewrite of the code. The previous versions used Qt3.x on Linux and Qt2.3 on Windows. Benefits include updated widgets and removal of the non-commercial license exception in Windows.

Updates:
- On Windows, the rpCalc.ini file has been moved from the installation directory to a location under the "Documents and Settings" folder. This avoids problems on multi-user systems and for users with limited access rights.

### March 12, 2004 - Release 0.4.3

New Features:
- The size and position of the main and extra windows are now saved at exit.
- An install program has been added for windows.

Bug Fixes:
- Fixed Linux install script problems with certain versions of Python.

### November 17, 2003 - Release 0.4.2

New Features:
- Allow the use of commas in addition to periods as decimal points to accommodate European keyboards.

Updates:
- An install script was added for Linux and Unix systems.
- The windows build now uses Python version 2.3 and PyQt version 3.8.

### July 14, 2003 - Release 0.4.1

New Features:
- Added option to remove the LCD display highlight. This is useful for smaller displays

Bug Fixes:
- Fixed a problem with the option to display the extra data view on startup.

### April 30, 2003 - Release 0.4.0

New Features:
- The main display can optionally be expanded to show lines for the Y, Z, & T registers.
- The three separate views for extra data (registers, history & memory) have been replaced with a single tabbed view.

Updates:
- Icon files are now provided with the distributed files.

Bug Fixes:
- Crashes caused by some calculation overflows have been fixed.

### February 27, 2003 - Release 0.3.0

New Features:
- The typing of multiple-letter command names has been made easier. The return key is no longer needed to finish a command, and hitting the tab key auto-completes a partial command.
- Since it is no longer needed for entering commands, the return key is now equivalent to the enter key.
- New keys have been added for setting display and angle options. "PLCS" prompts for the number of decimal places, "SCI" toggles between fixed and scientific display, and "DEG" toggles between degree and radian settings. There is also a new status indicator in the lower right corner for these options.
- A new "SHOW" key temporarily toggles to a scientific display showing 12 significant figures. The display goes back to normal after the next command or if the "SHOW" command is repeated.

### May 28, 2002 - Release 0.2.2a

Bug Fixes:
- A fix of the Windows binary only. Fixes major problems by upgrading the library version to PyQt 3.2.4.

### May 16, 2002 - Release 0.2.2

Updates:
- rpCalc has been ported to Qt 3.x. It now works with both Qt 2.x and 3.x using the same source code.
- The help/readme file has been rewritten and now includes section links.
- The binaries for windows have been updated to Python 2.2 and PyQt 3.2 (but are still using Qt 2.3 Non-commercial).

### September 8, 2001 - Release 0.2.1

Bug Fixes:
- Fixed a problem with extra views not always updating properly.
- Fixed copying to the clipboard from the history view.

### August 30, 2001 - Release 0.2.0

New features:
- Extra views listing registers, calculation history and memory values were added.
- A popup menu was added to the display.

Updates:
- Improved error handling.

### August 20, 2001 - Release 0.1.2

Updates:
- The name was changed to rpCalc to avoid conflicts.
- For MS Windows users, the binary files were upgraded to PyQt Version 2.5.

Bug Fixes:
- Problems with saving changed options were fixed.

### August 10, 2001 - Release 0.1.1

New features:
- Added a button to the OPT dialog to view the ReadMe file.

Updates:
- The rpcalc.ini file on windows was moved to the program directory.

### July 2, 2001 - Release 0.1.0

Initial release.

## Questions, Comments, Criticisms?

I can be contacted by email at: doug101 AT bellz DOT org
I welcome any feedback, including reports of any bugs you find. Also, you can periodically check back to www.bellz.org for any updates.