Plus42 History
Home > Plus42 > History
2025-09-28: release 1.3.10e (Android only)
* Another Android 16 kB build tweak, to maintain compatibility with Android 4.4.
2025-09-28: release 1.3.10d (Android only)
* Updated build configuration to support 16 kB page size.
2025-07-19: release 1.3.10c (Android only)
* Fixed "No Status" and "Full Screen" modes. These got broken in 1.3.10.
2025-07-05: release 1.3.10b (Windows only)
* The size of the main window would not be saved if the app was exited while
minimized. Fixed.
2025-07-04: release 1.3.10a (Android only)
* Fixed layout for Android 15 and later.
2025-07-03: release 1.3.10
* Fixed a couple of rare crashes.
2025-06-29: release 1.3.9
* Applying units in PRGM mode didn't work when the RPN stack was empty. Fixed.
* Android version: Fixed crash with skins with missing annunciators.
* Linux version: Fixed state saving when the app is exited because of a logout,
reboot, or shutdown.
2025-06-10: release 1.3.8a (Android only)
* Fix for hang during audio playback.
2025-06-05: release 1.3.8
* Fixed potential crash on app restart.
* Android version: fixed memory leak on app restart.
2025-06-04: release 1.3.7e (Android only)
* Fixed potential crash on app restart.
2025-06-04: release 1.3.7d (Windows only)
* When the main window was un-minimized, its width could be restored
incorrectly. Fixed.
2025-06-03: release 1.3.7c (Android and iOS)
* Fix for unreliable state file saving.
2025-06-01: release 1.3.7b (Android only)
* Fixed hang on Shift EXIT.
2025-05-30: release 1.3.7a (Android and iOS)
* Fix for certain rare crashes.
2025-05-29: release 1.3.7
* Now hiding shadowed labels from MVAR catalogs.
* Android version: Fixed a couple of crashes.
2025-05-21: release 1.3.6
* Better handling of ACC=0 in INTEG.
* More accurate C.E^X-1.
2025-05-12: release 1.3.5
* Fixed a couple of equation editor bugs.
2025-05-06: release 1.3.4
* Fixed handling of shared matrices in PUTMI.
* Fixed handling of subnormal complex numbers in 1/X.
* Added SLN, SRN, and ASRN to CATALOG->BASE.
* Added current base to the BASE mode status indicators, and made the
indicators more compact.
* Fixed skin key highlighting for hardware keyboard keystrokes, when using
certain skins with complicated key mappings.
* Fixed potential crash when loading state.
2025-04-29: release 1.3.3
* BASE menu: Implemented SLN, SRN, and ASRN. These functions are can be typed
as Shift-SL, Shift-SR, and Shift-ASR, respectively, and RJ can now be typed
as Shift-LJ.
* More accurate DET, INVRT, and matrix division for 2x2 matrices.
* When spelling out built-in function names, '-' is now accepted as an
alternative for '→', to make conversion functions easier to type.
* Menu keys that execute different functions when pressed with Shift now show
their alternate function while Shift is active. (This behavior can be
disabled and enabled using the new STATIC and DYNAMIC settings in the new
MENUS submenu of the MODES menu.)
* Decimal version: BS→N and BD→N were rounding their results to 16 digits.
Fixed.
2025-04-25: release 1.3.2
* RLN, RRN, RLCN, and RRCN did not drop the stack. Fixed.
* Fixed a couple of bugs in the equation editor.
2025-04-24: release 1.3.1
* BASE: Fixed DECINT behavior for -2^(WSIZE-1).
2025-04-23: release 1.3
* BASE enhancements: shift and rotate functions, bit manipulation functions,
floating-point conversions, and optional digit grouping. See the Free42 web
site for all the details.
2025-04-19: release 1.2.8a (Android and iOS)
* Fixed pop-up keyboard behavior with dialogs in the equation editor.
2025-04-18: release 1.2.8
* NEWEQN and EDITEQN functions (EQN.FCN menu). These create or edit equations
and strings in place, in the stack and in programs, without needing to go
through EQN mode.
* Moved equation settings from MODES to EQN.FCN, and moved BASE settings from
MODES to BASE, to make them easier to find and to declutter the MODES menu.
2025-04-10: release 1.2.7
* Fixed crash in RCOMPLX/PCOMPLX when the stack is empty (NSTK mode).
* More accurate integer powers of complex numbers. Specifically: special cases
for pure real, pure imaginary, and numbers of the form a+ai and a-ai.
* Fixed VIEW for long values.
* Added XSTR option for EQN->STO->X and EQN->STO->PRGM.
* Windows, MacOS, and Linux versions: Added "Edit Keyboard Map" option to the
Help menu. Also, added a section about keyboard map customization in the
README.txt file.
* Windows and Linux versions: Fixed handling of skins with non-zero offsets of
the main image (the top left corner of the Skin: line).
* iOS version: The file selector wasn't sorting the directory listing. Fixed.
2025-02-19: release 1.2.6
* Fixed crash when saving an equation without having modified it. This bug was
introduced in the previous release.
* Improvements in error handling when evaluating equations.
2025-02-16: release 1.2.5
* SOLVER and ∫f(x) now allow selecting programs outside the current directory.
* Equation lines were being truncated to a maximum of 100 characters when they
were displayed or printed. Fixed.
* iOS version: Implemented Swipe to Delete in the file selector dialog.
2025-02-14: release 1.2.4
* Equations can now be embedded in programs, using X2LINE or EQN->STO->PRGM.
Equation lines can be plain, which means they push the equation object onto
the stack, or they can be EVAL lines, which evaluate the equation in place.
Equation lines can be toggled between plain and EVAL lines using the EVAL
function in PRGM mode.
* The CUSTOM menu didn't stick reliably, due to a bug introduced in 1.2. Fixed.
2025-02-07: release 1.2.3
* Fixed crash when trying to load invalid skins.
* Added IDENT function. This returns the app's version number as a negative
integer, in -aabbccdd format, with 1.2.3f formatted as -1020306, for example.
The number is negative in order to distinguish Plus42 from Free42, which
returns positive numbers from IDENT.
* XROMs are now decoded immediately when pasting.
* Switched ^ and ↑ in the character set. The change is transparent to the user,
but it restores code compatibility with the encoding of ↑ in Free42.
2025-01-26: release 1.2.2
* User-defined units with SI prefixes didn't work in the CUSTOM menu. Fixed.
2025-01-26: release 1.2.1
* Units with SI prefixes didn't work in the CUSTOM menu. Fixed.
2025-01-25: release 1.2b (Android and iOS)
* More keyboard fixes.
2025-01-24: release 1.2a (Android only)
* Pop-up keyboard typing fixes.
2025-01-23: release 1.2
* Program locking, to prevent accidental editing of programs. This is done
using the LOCK and UNLOCK functions. See the Free42 web site for details.
* Improved display contrast in the built-in skins.
* Android and iOS versions: Pop-up ALPHA keyboard, for easier text entry.
* Linux version: Dark Mode support.
2025-01-01: release 1.1.17b (Android only)
* Rolling back the beeper fix from the previous release. It was not performing
as intended. Back to the drawing board.
2024-12-28: release 1.1.17a (Android only)
* Made TONE and BEEP play audio asynchronously. This should fix the occasional
crashes caused by those functions hogging the UI too long.
2024-12-22: release 1.1.17
* Fixed pasting of GETMI, PUTMI, GETLI, and PUTLI.
* Added ALPHA mapping from Y^X to '↑'.
* Fixed crash with circular unit definitions.
2024-12-18: release 1.1.16
* The CUSTOM menu now supports unit assignments.
2024-12-13: release 1.1.15
* Added option to show the active keyboard map superimposed on the skin. The
desktop versions have this in the Help menu, and the mobile versions have it
in the About dialog.
* Added functions for direct access to matrix and list elements: GETMI, PUTMI,
GETLI, and PUTLI. See the Free42 web site for details.
* iOS and MacOS versions: Improved Dark Mode support.
* In compatibility mode, VIEW(G(A)) would recall the global A to the stack, but
view the local A. Fixed.
2024-11-14: release 1.1.14
* I%YR fixes for values close to zero.
* Now pre-populating state name for States -> More -> Rename.
2024-10-27: release 1.1.13
* Implemented GETKEYA. This works like GETKEY, except that it will not wait for
a keystroke if no keystrokes are in the keyboard queue, returning 0 instead
in that case.
* Android version: Fixed crash with relative file imports.
2024-05-28: release 1.1.12
* Fixed handling of °C and °F return values in numeric solver.
* Android version: Fixed crash for certain unrecognized key codes from
Bluetooth keyboards.
2024-05-21: release 1.1.11
* Implemented LL(NAME:VALUE:EXPR). This creates a local variable and executes
one or more expressions while the local variable is in scope.
* Fixed parameter visibility issues in Σ() and ∫().
2024-05-15: release 1.1.10a (Android, iOS, and MacOS)
* PSE could halt program execution if it was used right after TONE or BEEP.
Fixed.
2024-04-24: release 1.1.10
* Fixed ALPHA pasting during command entry.
* Fixed MODES and DISP menus in EQN list view.
* Equation editor: fixed handling of direct-mapped "%" and "PI".
2024-03-30: release 1.1.9
* Now recognizing comment delimiters '@' and ';' for program pasting.
* More accurate complex ASIN/ASINH.
2024-03-26: release 1.1.8
* Accuracy improvements for C.LN1+X, and complex LN, ATAN, and ATANH.
2024-03-25: release 1.1.7
* EDIT and EDITN, when editing lists, would not display the current element
index correctly in 1LINE mode. Fixed.
2024-03-22: release 1.1.6b (iOS, Windows, and MacOS)
* Windows version: Fixed display flicker using buffered painting.
* iOS and MacOS versions: Changed skin loader to use WKWebView.
2024-03-21: release 1.1.6a (Windows only)
* Reduced display blurriness when the main window is resized.
2024-03-18: release 1.1.6
* Fixed keyboard mapping bug in the equation editor. This bug was caused by the
alternate direct command mapping changes in 1.1.5.
2024-03-07: release 1.1.5
* Direct command mapping now supports alternate mappings for ALPHA mode.
* Fixed source highlighting glitch when tracing N+U in equations.
* Windows version: Fixed a couple of display glitches.
2024-03-04: release 1.1.4e (Windows, MacOS, and Linux)
* Windows, MacOS, and Linux versions: Constraining print-out window height to
multiples of 18 pixels, that is, to a whole number of lines.
* Windows version: Fixed skin rendering problem in Windows Vista.
* Linux version: Resizable main window.
* Linux version: Ctrl-D shortcut for Clear Print-Out.
2024-02-28: release 1.1.4d (iOS and MacOS)
* iOS version: Fixed crash when sharing on iPad.
* MacOS version: Fixed crash when making the main window too small.
2024-02-27: release 1.1.4c (Windows only)
* Resizable main window.
* Ctrl-D shortcut for Clear Print-Out.
2024-02-21: release 1.1.4b (MacOS only)
* Resizable main window.
* Command-D shortcut for Clear Print-Out.
2024-02-14: release 1.1.4a (iOS only)
* iPad support.
2024-02-09: release 1.1.4
* Keyboard mapping fixes.
* Android version: Support for external keyboards.
* Linux version: Changed ALSA device from "plughw:0,0" to "default".
2024-01-24: release 1.1.3a (Android only)
* Fixed crash in File Management Menu.
* Fixed crash when importing or exporting to cloud storage.
2024-01-17: release 1.1.3
* Added C.LN1+X and C.E^X-1 functions. These are complex-capable versions of
LN1+X and E^X-1.
* Binary version: When converting binary to decimal, only use 17 digits when
actually needed. This prevents 0.1 from turning into 1.0000000000000001e-1,
for example.
* iOS version: Support for external keyboards.
2023-12-21: release 1.1.2c (Android only)
* Export State used f42 file extension instead of p42. Fixed.
2023-12-18: release 1.1.2b (Android only)
* Fixed file access for Android >= 11.
2023-12-12: release 1.1.2a (iOS and MacOS)
* Fixed startup crash, caused by a bug in Apple's latest compiler.
2023-12-06: release 1.1.2
* Fixed a bug that could cause a crash on startup.
2023-12-01: release 1.1.1
* CSLD? did not handle intervening XEQ/RTN. Fixed.
* FUNC did not detect previous FUNC/LNSTK/L4STK. Fixed.
2023-11-29: release 1.1
* Full-screen matrix and list editing (EDIT & EDITN)
* Added option to show LASTX at the top of the stack display area: DISP->LTOP
* Added option to show ALPHA at the top of the stack display area: DISP->ATOP
* Added option to show the state of flags 0-10 in the header: DISP->HFLAGS
* Added option to show an indicator for POLAR mode in the header: DISP->HPOLAR
* EDIT, EDITN, and INDEX now support editing lists, nested lists, empty lists,
and matrices within lists. See the Free42 web site for details.
* FUNC now hides the caller's RPN stack, so user-defined functions can use
functions like CLST and R↓ without causing side effects.
* User-defined functions can now be made to support 'stack lift disable'
properly. For functions using FUNC, this happens automatically, and other
functions can use the new CSLD? function (Caller's Stack Lift Disabled?).
* FNRM and UVEC, when called with very large parameters, could get incorrect
results due to overflows in intermediaries. Fixed.
* Fixed parameter bounds check in PIXEL.
* Windows, MacOS, and Linux versions: Keyboard maps now support separate
mappings for unshifted and shifted numeric keypad keys, and unshifted and
shifted Space.
2023-08-17: release 1.0.21
* Added string and list functions to the equation language. The new functions
have been added to the FLAGS menu and CATALOG->FCN in the equation editor.
List literals have the format {A:B:C}. List elements may be any type,
including lists or matrices.
* Equations: Fixed stack access within matrix literals.
* Fixed LASTX option in the equation editor's stack menu (R↓ key).
* Fixed Y^X with units where X is a negative reciprocal.
* →LIST and LIST→ didn't print in TRACE mode. Fixed.
2023-08-11: release 1.0.20
* Added 1LINE and NLINE functions, to select 1-line or n-line mode. 1-line mode
forces matrices and lists to be displayed in compact format, even if the
display has more than 2 lines; n-line mode is the multi-line matrix and list
display that was introduced in 1.0.17. The latter remains the default.
* INPUT would crash if R/S was pressed while the stack was empty, in NSTK mode.
Fixed.
* ANUM would consider a decimal point or comma by itself as zero, instead of
ignoring it. Fixed.
* Added UNIT? to the UNIT.FCN menu.
* If an error occurs while evaluating an equation, which does not exist in the
EQN list, going to EQN mode and pressing R/S will now add the equation to the
EQN list, and then start editing with the cursor on the site of the error.
This used to work only for equations that were in the EQN list beforehand.
* Added LASTX for equations, to work alongside REGX/REGY/REGZ/REGT, for
read-only access to the RPN stack.
* EDIT, EDITN, and INDEX didn't clear flags 76 and 77 (matrix edge wrap and end
wrap), while they should. Fixed.
* Decimal version: In HMS+ and HMS-, fixed handling of cases where either or
both of the arguments has a number of minutes or seconds >= 60. (The binary
version did not have this bug.)
* Binary version: max digits for SHOW increased to 17. This was necessary
because 16 digits was actually never enough to begin with. For example, 5 1/X
and 5 SQRT X^2 1/X both returned a result that looked like 0.2 in SHOW, even
though they are different, as can be easily verified with X=Y? or by
subtracting them. It takes 17 decimal digits to ensure that different binary
numbers will always be rendered as different decimal numbers.
2023-05-05: release 1.0.19
* Fixed the definition of the 'ton' unit (U.S. short ton). It was 10^10 times
too large, due to a missing sign in the units definition table.
* Equations like [1:2:3]=A, when entered without a name, weren't parsed
correctly, because the part before the first colon would be incorrectly
interpreted as a name. Fixed.
* When an error occurs while evaluating an equation, and that equation exists
in the EQN list, pressing R/S in the EQN list view will now start editing
that equation, with the cursor on the part of the equation where the error
occurred.
2023-04-17: release 1.0.18
* Fixed crash when loading state, when the current program is an equation that
is only referenced by SOLVE/INTEG internal variables.
* Changed Σ+/Σ- so that, in NSTK mode, they will accept a single real argument,
assuming Y=0 in that case.
* Added STOP() function for equation debugging.
* In the equation editor, the named-equation catalog could select items from
the wrong row.
* Fixed handling of LCLV of indexed matrix. It used to leave any pushed indexed
matrix in limbo until RTN. With this change, the pushed indexed matrix is
popped immediately.
* Tuned TONE frequencies to A440 scale.
2023-04-10: release 1.0.17a (iOS and MacOS)
* Copy in PRGM mode was dropping line 01, because of an optimizer bug in the
latest compiler. Reduced optimization level from -Os to -O1 to work around
this problem.
2023-04-05: release 1.0.17
* Matrices and lists in the X register are now shown in full, or as much of
them as will fit anyway, when the display size is set to more than 2 rows.
* SOLVE in PLOT now provides more informative feedback for Extremum, Sign
Reversal, and results from the direct solver.
* Fixed crash in RTNERR when switching back to NSTK mode after FUNC/L4STK.
* Fixed ASSIGN "" in programs.
* Added PRREG to the PRINT menu.
* NN→S now ignores the display mode and always acts like ALL mode is active.
The idea being that if you care about the display mode, you'll probably be
using N→S, and you only need NN→S if you specifically want to see full
internal precision.
2023-03-17: release 1.0.16
* EDIT, EDITN, and INDEX now support lists, acting like they are 1-column
matrices. (Empty lists are not supported, they must have at least one
element. This limitation will be removed in a future release. Note that you
can create a new 1-element list by simply doing NEWLIST 0 +.)
This includes STOIJ, RCLIJ, STOEL, RCLEL, I+, I-, J+, J-, ←, ↑, ↓, →, INSR,
DELR, and DIM.
* Equation editor: now inserts spaces around logical AND, OR, XOR, and NOT.
* Added PRREG. Because PRV "REGS" is not a good substitute.
* Added NN→S. This works like N→S (convert number to string on the stack), but
without the 12-digit mantissa length limit, so you get full precision in ALL
mode.
* Fixed stack lift handling in DELR and STOFLAG.
* Fixed pasting 1/X, 10^X, and 4STK, when pasted without line number and with
trailing space.
* PRP and LIST in TRACE mode now print line numbers for all lines that are
targets of GTOL or XEQL, like it already did for LBL lines.
* Fixed pasting of GTOL and XEQL.
2022-12-14: release 1.0.15
* Fixed a couple of bugs in Paste of scalars in BINM, OCTM, and HEXM modes.
* Fixed pasting of U+22A2 and U+22A6 ('append' characters used by i41CX and
Emu42) and U+00B7 ('bullet' character used by Emu42).
2022-11-19: release 1.0.14
* Added support for new SI prefixes: R (ronna, 10^27), Q (quetta, 10^30), r
(ronto, 10^-27), and q (quecto, 10^-30).
2022-11-12: release 1.0.13
* Fixed crash with one-arg RADIUS, ANGLE, XCOORD, and YCOORD.
2022-10-27: release 1.0.12
* SOLVE does a better job of reporting Sign Reversal when a function changes
sign around a vertical asymptote, instead of reporting it as a root.
* When returning to the equation editor after a parse error, the text could be
positioned incorrectly on the screen, and the editor could even crash, in
some cases. Fixed.
* Added Boolean operators to the equation editor's PGM.FCN menu.
* Made I%YR solver a bit more robust.
* BASE: complex numbers and numbers with units were being copied or shown in
non-decimal bases in some cases.
* Better HEXM and OCTM handling in SHOW.
* Fixed number entry in PRGM mode when BINM/OCTM/HEXM active.
* No longer setting flag 22 if number entry ends with DROP in NSTK mode.
* Added LINE PLOT.M SPFV SPPV TVM USFV USPV to CATALOG->MISC.
* →PAR now produces more helpful output in TRACE mode.
* Windows, Mac, and Linux versions: added Alt-1 through Alt-6 as mappings for
the second row of the keyboard.
2022-10-01: release 1.0.11
* Fixed crash in SHOW for certain complex numbers.
* Added A...F function. This allows programs to turn on HEXM mode with the
A...F menu activated.
* Added UBASE and UVAL to the equation parser.
* PLOT: Fixed coordinate rounding at the top of the display.
* Raised precedence of _ operator, so expressions like 40000_"km"/1_"d" can now
be written without parentheses.
* The direct solver now converts the solution to match the units of the
previous value of the variable being solved for, if it existed already and
had compatible units. In all other cases, the variable is overwritten, as
before.
* iOS version: Added Calculator / Print-Out swipe direction configuration
option to Preferences.
* Android, iOS, and MacOS ARM versions: Fixed incorrect Out of Range error
returned by BASE functions in certain cases, e.g. BRESET 64 WSIZE 1 ENTER
BASE÷.
2022-08-13: release 1.0.10
* Fixed crash in PARSE when parsing ITEM().
* Fixed (re,im) complex pasting. This was broken by localized copy & paste.
* Special cases for pure real and pure imaginary in SQRT.
2022-06-19: release 1.0.9
* SGN() didn't evaluate its parameter, and instead consumed the value from
level 1. Fixed.
Note that this was a code generator bug; any expressions containing SGN()
will have to be re-parsed in order to eliminate the effects of this bug.
* SOLVE in PLOT, when used with a function with X:<STK>, would create an
extraneous variable named "". Fixed.
2022-06-18: release 1.0.8
* I%YR iteration robustness improvements.
* Localized Copy & Paste.
* Fixed handling of invalid number keys in BASE.
* Setting AMORT->TABLE parameters to 1 initially.
* Fixed #P parameter check so it doesn't allow 0.
* iOS and MacOS versions: Fixed skin rendering for iOS 16 and MacOS 13.
2022-06-11: release 1.0.7
* Fixed crash in variable catalog.
* I%YR robustness improvements.
2022-06-08: release 1.0.6
* Fixed I%YR when PMT=0 (broken in 1.0.5)
2022-06-08: release 1.0.5
* TVM: PMT returned incorrect results in BEGIN mode. Fixed.
* TVM: In some cases, I%YR could return inaccurate results because of poor
starting guesses for the iteration. Fixed.
* More accurate complex ACOS and ACOSH.
* Android version: Now removes itself from the task list if exited using OFF.
2022-05-17: release 1.0.4
* TVM: Fixed error checks in N.
2022-05-13: release 1.0.3
* SOLVE now handles functions that are always positive or always negative a bit
better, reporting Extremum when the iteration appears to be bouncing around
without improving, instead of continuing indefinitely.
* PLOT now detects <Not a Number> in XMIN/XMAX/YMIN/YMAX and reports Invalid
Data, instead of freezing.
2022-05-09: release 1.0.2
* Added code to prevent freeze in PLOT under certain circumstances.
2022-05-09: release 1.0.1a (Android only)
* Fix for crash on startup with Android versions before 4.3.
2022-05-05: release 1.0.1
* DIM "X", when X existed but was not a matrix, would cause a crash. Fixed.
* Equations: NOT was broken, not recognized as Boolean operator. Fixed.
* Equations: Added TYPE? and UNIT? functions.
2022-05-05: release 1.0a (Windows and Linux)
* More efficient display updating, so long-running programs that update the
display a lot don't waste a lot of CPU time repainting the display faster
than the human eye can see, and spend more time actually running the program
instead. Note that this update is for Windows and Linux only, because the
Android, iOS, and MacOS versions already worked this way.
2022-04-27: release 1.0
* Based on Free42 3.0.11, with the addition of: a larger and resizable display,
algebraic equations, attached units, directories, time value of money and
amortization schedules, and function plotting.
Go to Plus42 home page