Free42 Changelog

What's new in Free42 2.0.4

Jun 8, 2017
  • Implemented special-case code for pure real and pure imaginary numbers in all the complex logarithmic, trigonometric, and hyperbolic functions.

New in Free42 2.0.3 (Jun 8, 2017)

  • Fixed a few edge cases in complex functions.
  • The last digit in full-precision representation (SHOW, Copy) could be off by one in certain circumstances. Fixed.
  • On cold start, now clearing flags 21 (printer enable) and 55 (printer existence), to match the behavior of the real HP-42S.
  • Removed "raw text" print option; it has been obsolete since the introduction of UTF-8 printing in 1.5.11, since Unicode can represent the HP-42S character set directly.
  • iPhone version: LOCAT didn't work when its initial invocation happened from a program. Fixed.
  • In the About box, replaced the link to the Free42 discussion group with a link to the Alternative HP-42S/Free42 Manual.

New in Free42 1.5.7 (Mar 11, 2016)

  • INSR should disable stack lift, but didn't. Fixed.

New in Free42 1.5.5 (Nov 13, 2014)

  • Decimal version: entering a number with an empty exponent (e.g. 1E or 1E-) would yield . Fixed.
  • iPhone version: HTTP server: Fixed downloading individual programs from, and uploading zip files of programs to, the /memory directory. This got broken in release 1.4.77, while implementing local file download.
  • Android version: when the screen orientation was set to "automatic", it would not honor any system-wide orientation lock. Fixed.

New in Free42 1.5.4a (Sep 8, 2014)

  • Fixed keyboard handling in the Preferences and Select File dialogs.
  • Fixed scrolling behavior (in 1.5.4, windows were sized 20 pixels beyond the bottom of the screen, making the bottommost bit of scroll views drop off the screen).
  • Added 4" skin for iPhone 5, and added code to select the best-fitting built- in skin on first launch.

New in Free42 1.5.4 (Jul 28, 2014)

  • Decimal version: Fixed ACOS. It would return 0 for acos(-1). This bug was introduced in release 1.5.

New in Free42 1.5.3 (May 26, 2014)

  • Fixed crash in SIMQ if any of MATA, MATB, or MATX already existed and was a scalar or string.

New in Free42 1.5.2 (Mar 17, 2014)

  • Decimal version: fixed Y^X for complex Y and negative integral X.
  • Decimal version: made Y^X and 10^X for real Y and integral X more accurate.
  • All versions: sin(45°) now equals cos(45°), and sin(50grad) = cos(50grad).

New in Free42 1.5.1 (Mar 17, 2014)

  • All versions: fixed ASIN, ACOS, and ATAN so they return exact results in DEG and GRAD modes for trivial parameters (asin(1), asin(-1), acos(0), atan(1), atan(-1), atan(infinity).
  • Now displaying signed zero as zero, so you won't see -0 any more.

New in Free42 1.5 (Mar 17, 2014)

  • Decimal version: switched from BCD20 to Intel's Decimal Floating-Point Library v2.1.
  • Binary version: replaced the old binary-to-decimal and decimal-to-binary conversions with code that uses the standard C library's equivalent functionality. This fixes final-digit errors in the Binary version, and also final-digit errors when switching from the Decimal to the Binary version.
  • All versions: added angle reduction code to make SIN, COS, and ->REC more accurate in DEG and GRAD modes.
  • Windows version: now uses %APPDATA%\Free42 as the default Free42 directory (for storing state.bin, print.bin, and keymap.txt). This avoids permissions problems when people install the executable in a directory to which they don't have write access (like the popular choice C:\Program Files).

New in Free42 1.4.78 (Dec 10, 2013)

  • All versions except Android: while parsing macros in skin layout files, tab characters were not recognized as whitespace and caused parsing to fail. Fixed.
  • GTK version did not repaint the skin when it was switched from one skin to another with the same width and height. Fixed.
  • Windows version: downgraded my build environment from Visual C++ 2012 to 6.0. This means the Free42 build for Windows will run on older versions of Windows again.

New in Free42 1.4.77 (Jan 7, 2013)

  • The links in the About box now actually work.

New in Free42 1.4.76 (Jan 7, 2013)

  • Implemented print-out window.

New in Free42 1.4.74 (May 11, 2012)

  • Decimal version: the overflow fix in 1.4.73 was incorrect. This one works.

New in Free42 1.4.73 (May 11, 2012)

  • OFF now refuses to shut down Free42 if there have been no keystrokes since the application was started. It will stop program execution and display the message "Suspicious OFF" instead.
  • This prevents code like LBL "OOPS" SF 11 OFF GTO "OOPS" from locking the user out.
  • Decimal version: overflows would return zero in some cases, i.e. 9E9999 ENTER +. Fixed.

New in Free42 1.4.71 (Apr 17, 2012)

  • HMS+ and HMS- would return results with the wrong sign under certain circumstances: result < 0 and |result| < 59 seconds, or result < 0 and |result| > maximum integer. Fixed.

New in Free42 1.4.70 (Dec 7, 2011)

  • Fixed several bugs in complex ASIN, ASINH, ACOS, and ACOSH.
  • Android version: better printer icon in the main menu, by Günter Schink.
  • Mac version: OFF didn't work when invoked from a program. Fixed.
  • Added two new skins to the Android skins package, designed for the Samsung Galaxy S 9000, which has an 800x480 screen. Contributed by Günter Schink.
  • Added Free42AndroidSkins.zip package, for skins designed for Android-based devices; added HTC4800 skin for HTC Desire HD or other Android devices with 480x800 screens. Skin contributed by Michael Vogel, based on an iPhone skin by Jerrod Hofferth.

New in Free42 1.4.66 (Apr 9, 2010)

  • Removed the "Not Yet Implemented" Time functions; I decided not to implement
  • them. They're also gone from the FCN catalog.
  • The ADATE, ATIME, ATIME24, CLK12, CLK24, DATE, DATE+, DDAYS, DMY, DOW, MDY,
  • and TIME functions remain; those are the time/date-related functions from the
  • HP-41 Time Module that are actually useful in Free42.
  • The functions that I decided not to implement after all are the following:
  • Live clock display: CLKT CLKTD CLOCK
  • Stopwatch: RCLSW RUNSW SETSW STOPSW SW SWPT
  • Alarms: ALMCAT ALMNOW XYZALM CLALMA CLALMX CLRALMS RCLALM
  • Clock control: CORRECT RCLAF SETAF SETDATE SETIME T+X
  • In DMY mode, DATE would display dates as DD:MM:YYYY, but that should be
  • DD.MM.YYYY. Fixed.

New in Free42 1.4.65 (Apr 6, 2010)

  • Implemented some more Time Module functions: ADATE, ATIME, ATIME24, CORRECT,
  • RCLAF, SETAF, SETDATE, SETIME, T+X.

New in Free42 1.4.64 (Mar 30, 2010)

  • Implemented some more Time Module functions: DATE+, DDAYS, and DOW.

New in Free42 1.4.63 (Mar 29, 2010)

  • iPhone version: implemented ACCEL, LOCAT, and HEADING functions, for querying
  • the device's accelerometer, location services (GPS on the 3G and 3GS; WiFi-
  • based on all other models), and compass (3GS only).
  • All versions except Mac Dashboard: for skins, increased the maximum macro
  • length from 31 to 63. The old limit was too small to allow macros that step
  • forward all the way to the end of the FCN catalog, and supporting such macros
  • is necessary now that the length of the FCN catalog is no longer fixed at 42
  • rows.
  • Also, changed several macros in the HP-41 and HP42CY skins where the FCN
  • catalog was being traversed backwards, replacing N repetitions of "up" with
  • 42-N repetitions of "down", so they will work correctly in the presence of an
  • extended FCN catalog. (None of the other skins currently in the Free42
  • repository traverse the FCN catalog backwards, so they don't need updating.)
  • PalmOS version: turning off printing did not flush the GIF file, so you'd end
  • up with a truncated image. Fixed.
  • When COMPLEX is executed with a complex number or complex matrix in X, and
  • POLAR mode is active, it is possible for range errors to occur. Free42 would
  • simply substitute POS_HUGE_VAL in such cases, but that was incorrect; it
  • should report Out of Range or substitute POS_HUGE_VAL depending on the
  • setting of flag 24. Fixed.
  • R/S can now be pressed using the PC keyboard even when ALPHA mode is active.

New in Free42 1.4.62 (Mar 8, 2010)

  • When EDITN was active, you could overwrite the edited matrix with a scalar
  • using STO, or delete it using CLV -- and then you would be stuck in the Matrix Editor, and even CLALL couldn't get you out. Fixed; you will now get the Restricted Operation message when you try to change or delete the active matrix behind EDITN's back.

New in Free42 1.4.61 (Nov 30, 2009)

  • Decimal version: ->OCT (decimal-to-octal conversion) was broken; it actually
  • converted octal to decimal. Fixed.

New in Free42 1.4.60 (Nov 16, 2009)

  • Decimal version: SQRT could be off by 1 in the final digit. It now computes
  • one additional digit and rounds it into the mantissa, which should make it
  • accurate in all cases.
  • Decimal version: The BCDFloat add and subtract functions could return
  • denormalized results when one of the arguments was zero. Free42 would not
  • display these denormalized numbers correctly, leading to strange results like
  • 1.0001 LOG returning something that looked like zero but wasn't. Fixed.