Touch 16i: the programmer calculator for iPhone and Android
Touch 16i is a programmer's calculator for Android, iPhone and iPod Touch. It implements most
features of the beloved HP-16C model, including programming functions.
Available at App Store.
Figure 1: Touch 16i screenshot - iOS
Figure 2: Touch 16i screenshot - Android
Figure 3: Some user reviews
Touch 16i uses the same engine of the
HP-16C Web emulator. It aims to mimic all features (and limitations)
of the real device.
The calculator mimics the 16C as closely as practically possible,
the same limitations of the real 16C: only 203 programming steps, 32
memory positions, etc.
The only major deviation is the "extra" information that is shown left and right
of the display, to aid working with large integer numbers. If you don't like it,
keep pressing ON to toggle modes, until it is removed from screen.
Note that it starts up in integer mode and wordsize of 16 bits. The
first thing you will probably want to do is to change the wordsize to
64 bits (the maximum supported). Press 0, f, STO/WSIZE.
The 16C operation is counterintuitive in many aspects. The manual can be found
online in PDF format. I plan to write an on-line and user-friendly manual;
meanwhile, you can ask anything in the Comments section of this page.
Touch the upper right corner of the screen to open a quick guide for some operations of the
Figure 4: Touch16i quick guide
Touch the upper left corner to copy the displayed value (the X register) to the
clipboard. The value is copied in a "spreadsheet-friendly" or
"data entry-friendly" format, that is: no thousand separators and point as decimal
Figure 5: Touch16i screenshot
This app adds a panel to device Settings. There, you can toggle
decimal point as comma and keypress sound.
These items may also be configured within the application screen, using
the following 'apocryphal' key sequences:
- ON: open Settings
- STO ON: toggle keypress sound
- RCL ON: get engine version (different from app version)
The app implements a menu that is accessible via the Android-standard menu soft button,
by touching the left upper part of the screen, or by keying RCL BIN.
- Number format: A 3-state menu option to select the number separator style
between American (1,111,111.99), European (1.111.111,99), and Indian (11,11,111.99).
- Key feedback: a 4-state menu option that allows to choose the feedback on
keypress. The available options are: audio click, strong haptic, mild haptic, and none.
- Visual feedback: turn on/off the visual feedback on keypress.
- Display > Stretch on/off: a 2-state menu option that toggles the stretch mode.
"Stretching" fills the entire screen with the calculator, in some screens it may look distorted.
Non-stretched mode uses less of the screen but the looks are preserved.
- Display > Fullscreen on/off: a 2-state menu option that toggles the fullscreen mode,
in which the status bar is hidden.
- Display > Never sleep/Allow sleep: prevents the display from sleeping when the calculator is at foreground
- Display > Lock landscape/Lock portrait/Allow rotation: options that lock the orientation
- Memory: load/save memory operations.
- Load memory: loads calculator memory from a file.
- Save memory: saves calculator memory to a file. The user has the option of overwriting
an existing memory file or create a new one.
- Delete memory: remove a memory file from the phone.
- Speed: turn on/off fast speed on program execution. Slow speed (the default) mimicks a real device's
speed. Fast speed runs the program as fast as it can.
Saving copies of the memory
The app allows to store and retrieve copies of the memory.
This is especially useful to have many different programs available and ready to use
— perhaps the programs would not fit in the memory all at once, or it is simply inconvenient
to have them all in the same memory image. In any case, the whole memory, including
all registers and configurations, is saved along with the program.
Saving copies of the memory (iPhone)
Use the following key combinations to access this feature:
- STO CHS: save memory. Type a label for the memory and touch OK.
- RCL CHS: load a previously saved memory. Select the memory from the list and touch OK.
- RCL g CHS: delete a previously saved memory.
The memories are stored locally as well as in iCloud. If you have configured iCloud
in your devices, you can transfer memories between
devices, provided that they are configured with the same iCloud account. Also, a new
device will have access to the previously saved memories, so you don't lose anything
when you replace your iPhone.
Figure 6: Touch16i screenshot
The software offers an alternative vertical layout. It may be more practical
if you prefer to work with the phone in vertical (portrait) position.
By default the layout follows automatically the phone's orientation. If you
prefer to use a single layout all the time, you can
lock it to vertical or horizontal at Settings.
Differences from real calculator
First of all, it is important to mention that the calculator engine does
use a ROM dump. It is a clean-room implementation, based mainly
on calculator's manual plus experimentation. So the results simply
can not guaranteed to be exactly equal.
The main interface deviation is the ON key that opens Settings
instead of turning off the calculator.
Other known deviations:
- Calculations use 15-digit precision,
so there can be minor rounding differences in comparison to a real unit.
- Minus sign in LCD emulation looks different.
- Speed is different; generally this calculator is much faster.
- You can use all programming steps and all STO positions at the same time
(in a real unit, there is a trade-off).
- Footer elements like BEGIN, RUN, PRGM etc. occupy different positions.
- Also, there is a slight augmentation in footer elements. For example,
RUN shows the program step, STO-operation shows operation symbol and so on.
- Execution of programs may have a different speed and actual calculations
are shown instead of "Running...".
The calculator is offered "as is". There are no guarantees of precision,
exactness, or aplicability to any given purpose. The developer has no
responsability for any damages incurring from usage of this software.
The app does not send any user data to any remote party, and it does not share
data with other apps.
In Android, when the user saves copies of the memory, they are written as
files in the "storage area". Files in this area can be manipulated by
any other app installed on the same phone. If this is a problem, remove
these files from the SD Card once they fulfill their intended usage.
Please use the comment section at this page, or contact me by e-mail
if you have any issues or feedback.
The source code of this software can be found at
similar to Briefs'
. The engine is released as free software (MPL 2.0 license).
Also, Rhino is extensively used in development, for building and unit testing.