Pocket Calculator

GO-25 SciRPN closely simulates the venerable HP-25C Programmable Pocket Scientific Calculator. The HP-25C was released in 1976 and sold for a MSRP of $195. Virtually indistinguishable from the real item in operation, GO-25 is a powerful yet simple retro calculator.



Capabilities At A Glance
  • RPN (Reverse Polish Notation)
  • 10-digit LED calculator display, 10-99 to 10+99
  • Four stack registers with roll down
  • Ten storage registers with arithmetic memory operators
  • Math, trigonometric, polar⇔rectangular, sexagesimal⇔decimal, logarithmic, statistical, power and other miscellaneous functions
  • Programmable, with annotated program listing, and memory for 99 program steps
  • Library of Sample Programs
  • Fast, slow or single step program execution
  • Program import via pasteboard or from other Apps
  • Program export via printer, email, pasteboard or to others Apps
  • iTunes program File Sharing
  • Two additional windows with views of:
    • stack/storage registers
    • keystroke log
    • program source code
    • program documentation
  • Copy-from and Paste-to the calculator display



This document is not an exhaustive reference manual; rather, it's a terse outline of the calculator's function and programming keys.

In this document normal calculator keys are shown in bold, such as +, or CHS, or 4, or Σ+. Most keys can perform two other functions, however, one labeled in blue and and one labeled in gold. To execute one of these functions you first touch the corresponding colored prefix key, either g or f, followed by the desired function key.

So to compute the sine of a number you'd touch two keys, the f prefix key followed by the 4 key. However, this document will simply show the key as sin: the font color implies which prefix character is used. Similarly, touching the two keys g and 4 executes the inverse sine function sin-1. The only exception to this convention is when discussing programming and keycodes.

The PRGM-RUN switch controls the two basic calculator modes. In RUN mode, key presses are executed immediately and results shown in the calculator display area. In PRGM mode, key presses are stored in program memory for later execution. It's important to realize which mode the calculator is in, as it has ramifications that affect other operational characteristics of the device.

(As you'll learn later there are two variants of RUN mode, for three actual calculator modes.)


Manual Problem Solving

To get the feel of your new calculator, try a few simple calculations. First, perform these operations:

  • Set the ON-OFF switch to ON.
  • Set the PRGM-RUN switch to RUN.
  • Press Q 2 so the display will match the examples.

To calculate the surface area of a sphere, the formula `A_(surface)=pid^2` can use used, where d is the diameter of the sphere. Ganymede, one of Jupiter's 12 moons, has a diameter of 3,200 miles. You can use the calculator to manually compute the area of Ganymede in square miles. Merely press the following keys in order:


Programmed Problem Solving

After calculating the surface area of Ganymede, one of Jupiter's 12 moons, suppose you decided you wanted the surface area of each moon. You could repeat the procedure you used for Ganymede 12 times, using a different diameter d each time; however, an easier and faster method is to create a program that will calculate the surface area of any sphere from its diameter rather than pressing all the keys for each moon.

To calculate the area of a sphere using a program, you should first write the program, then you must load the program into the calculator, and finally you run the program to calculate each answer.

  1. Writing the Program. You have already written it! A program is nothing more than the series of keystrokes you would execute to solve the same problem manually .

  2. Loading the Program. To load the keystrokes of the program into the calculator:
    • Slide the PRGM-RUN switch to PRGM.
    • Press _X to clear the calculator.
    • Press these keys in order. (When you are loading a program, the display gives you information that you will find useful later, but which you can ignore for now.)


    The calculator will now remember this keystroke sequence.

  3. Running the Program. To run the program to find the area of any sphere from its diameter:
    • Slide the PRGM-RUN switch to RUN.
    • Press GTO 00 to reset the step pointer to the beginning of the program.
    • Key in the value of the diameter.
    • Press R/S to run the program.

    When you press R/S, the sequence of keystrokes you loaded is automatically executed by the calculator, giving you the same answer you would have obtained manually. So now, in short order, you can calulate the surface areas of Io (2310 miles), Europa (1950 miles) and Callisto (3220 miles):

    2310 R/S16763852.56
    1950 R/S11945906.07
    3220 R/S32573289.27

Part I - Manual Usage

GO-25 Calculator Display

The GO-25 LED window acts as a display area, as well as a touch sensitive input area that initiates further activities not available on an actual HP-25C. The calculator display is also modal, so what it displays and how it reacts to touches depends on the setting of the PRGM-RUN switch.

RUN Mode

In RUN mode the display shows the X stack register, usually the result of the latest calculation. Tapping the display in RUN mode brings up the Copy / Paste menu, allowing you to export the value of X, or import a new value of X.

In GO-25, numbers in the display normally appear rounded to only two decimal places. For example, the fixed constant π, which is actually in the calculator as 3.14159265358979, normally appears in the display as 3.14 (unless you tell the calculator to show you the number rounded to a greater or lesser number of decimal places).

Although a number is normally shown to only two decimal places, GO-25 always computes internally using each number as a 14-digit mantissa and a two-digit exponent of 10.

Three keys control how numbers are displayed. FIX allows numbers to be displayed in fixed decimal point format, SCI displays numbers in scientific notation format, and ENG displays numbers in engineering notation, with exponents of 10 shown in multiples of three (e.g., 103, 10-6, 109) . Display control alters only the manner in which a number is displayed, the actual number itself is not altered by any of the display control keys.

To select a display mode press one of the display mode keys followed by a number key to specify the number of decimal places (0-9) to which the display is to be rounded.

GO-25 switches the display from fixed point notation to full scientific notation (SCI 7) whenever the number is too large or too small to be seen with a fixed decimal point. This feature keeps you from missing unexpectedly large or small answers.

You can key in numbers multiplied by powers of 10 by pressing EEX (enter exponent of ten). You can save time when keying in exact powers of 10 by merely pressing EEX and then pressing the desired power of 10. To key in negative exponents of 10, key in the number, press EEX, press CHS to make the exponent negative, then key in the power of 10.

When a number is greater than 9.9999999 x 1099 an overflow has occurred and 9.9999999+99 is displayed instead. Other illegal operations, such as a divide by zero, display the word Error, then set the illegal number to zero.


In PRGM mode the calculator display shows the current program step. The left-most two digits are the actual program step number, and the remaining digits represent the step's instruction opcodes, fully described in the section Key Codes. It's this mode that allows you to manually enter a program into the calculator, just like an authentic HP-25C. Tapping the display in PRGM mode brings up the Import PRGM / Share PRGM menu, allowing you to transfer GO-25 programs to / from the App.


The Stack

Automatic storage of intermediate results is the reason that GO-25 slides so easily through the most complex equations. The displayed X register, which is the only visible register in the calculator display, is one of four registers inside the calculator that are positioned to form the automatic memory stack. We label these registers X, Y, Z, and T. They are "stacked" one on top of the other with the displayed X register on the bottom and T at the top.









Automatic Memory Stack
Manipulating Stack Contents

The R↓ (roll down) and X⇔Y (X exchange Y) keys allow you to review the stack contents or to shift data within the stack for computation at any time. Each time you press the R↓ key the stack contents shift downward one register, with the contents of X rotating up to the T register. Notice that the contents of the registers are shifted - the registers themselves maintain their positions. Always remember, though, that it takes four presses of the R↓ key to return the contents to their original registers.

The X⇔Y (X exchange Y) key exchanges the contents of the X and Y registers without affecting the Z and T registers.

To clear the displayed X register only, press CLX. To clear the entire automatic memory stack, including the displayed X register, press CLEAR STK (clear stack). This replaces all numbers in the stack with zeros.

The ENTER key lifts the stack, by copying the contents of Z into T, Y into Z, X into Y, hence losing the contents of T and duplicating the contents of X.

The opposite of lifting the stack is called dropping the stack. When the stack drops, Y is copied to X, Z is copied to Y, and T is copied to Z, hence losing the contents of X and duplicating the contents of T.

Functions and the Stack

One-number functions such as m execute upon the number in the X-register only, and the answer writes over that number. No other stack registers are affected by executing a one-number function.

Two-number functions such as p, or arithmetic operations such as /, execute upon two stack registers, X and Y. Obviously, for the power function first enter the base followed by z to lift it into Y, then enter the power into X and press p to perform the function.

For arithmetic operations imagine the stack as an old-fashioned sheet of paper, where in the case of division, the divedend (Y) is written on top of the divisor (X), then the / operation is executed. Addition, subtraction and muliplication work the same way, both numbers are positioned in the stack in the natural order, there are no exceptions to this rule.

You can use s and a as required to re-order the operands. In all cases after the function or operation is executed the stack drops and the answer is written over X (the old Y before the stack drop).


Storage Registers

In addition to the automatic storage of intermediate results that is provided by the four-register automatic memory stack, the calculator also has 10 addressable data storage registers that are unaffected by operations within the stack. These storage registers allow you to manually store and recall constants or to set aside numbers for use in later calculations. Like all functions, you can use these storage registers either from the keyboard or as part of a program. All 10 storage registers reside contiguously in Continuous Memory and maintain their contents even when the calculator is turned OFF.

The diagram below shows all storage registers. The addresses of the primary storage registers are indicated by the numbers 0 through 9.












Storage Registers
Manipulating Storage Registers
  • Store
    To store the X value appearing in the display into any of the storage registers R₀ through R₉, press STO followed by a number key 0 through 9 specifying the register address where the value is to be stored. When a number is stored, it is merely copied into the primary storage register, and remains in the displayed X register.
  • Recall
    Numbers are recalled from one of the 10 primary storage registers back into the displayed X register in much the same way as they are stored. Press the RCL key followed by the register number key 0 through 9.

    Recalling a number causes the stack to lift unless the preceding keystroke was z, v or g.

    When you recall a number, it is copied from the storage register into X, and it also remains in the storage register. You can recall a number from a storage register any number of times without altering it; the number will remain in the storage register until you overwrite it by storing another number there, or until you clear the storage registers.
  • Clear
    To clear the number from a single storage register, simply store the quantity zero in the register by pressing 0 STO followed by the register number 0 through 9. To clear data from all manual storage registers at once, without affecting data in other portions of the calculator, press _C. This places zero in all 10 of the storage registers.

    Remember that because of the Continuous Memory of the calculator the primary storage registers retain their contents even though the calculator is turned OFF.

Storage Register Arithmetic

Arithmetic is performed upon the contents of the storage register by pressing STO, followed by the arithmetic function key, followed in turn by the register address.

  • STO + 1 (Contents of storage register R1 plus X, and sum placed into R1.)
  • STO - 0 (Contents of storage register R0 minus X, and difference placed into R0.)
  • STO x 7 (Contents of storage register R7 multiplied X, and product placed into R7.)
  • STO ÷ 4 (Contents of storage register R4 divided by X, and quotient placed into R4.)

When storage register arithmetic operations are performed, the answer is written into the selected storage register, while the contents of the displayed X register and the rest of the stack remain unchanged.

If the magnitude of a number in any of the ten storage registers exceeds 9.999999999 x 1099, the display immediately shows OF (overflow) to indicate that a storage register has overflowed.

When you then press any key, the error condition is cleared and the last value in the X register before the error is again displayed. The storage registers all contain the values they held before the error-causing operation was attempted.


GO-25 Auxiliary Information Views

GO-25 provides two distinct, scrollable, views of the calculator's internal state unavailable on the real hardware. This makes using the calculator, and programming and debugging code much easier. Access to this additional information is controlled by a double-tap on the calculator display. If the information view is visible, a double-tap hides the view. If the view is not visible, the information view appears. So a double-tap toggles the visibility of the auxiliary information.

Similar to the calculator display, the information that's displayed is dependent on the setting of the PRGM-RUN switch.

(Note: unlike for iPhone and iPod touch, which have tiny screens, on iPad both information views are by default always visible, but you can hide them with two double-taps, if desired, one in PRGM mode and one in RUN mode.)

Both auxiliary information views include this touch point that toggles what the view shows, detailed in the following two sections.

RUN Mode

In RUN mode the 4 stack registers, the 10 storage registers, and the LAST X register are displayed in the stack and register window. Touching the switch-views control transitions to the paper tape window and shows up to 200 lines of key-press history to help you make sense of the values you see in the stack-register window.


In PRGM mode the program listing is shown. The listing displays the program name and description, and the step numbers, opcodes and pneumonics for all program steps. Both the program listing and program description are scrollable and editable.

The current step pointer (SP) is highlightedby a right pointing double arrow. In RUN mode this is the next instruction to be executed via SST or R/S. In PRGM mode you edit the step following the SP unless you've turned on GO-25 Step Editing from the Settings menu, in which case you edit the SP directly.

In PRGM mode you can also move the arrow pointer to any step by just touching the step. If you touch and hold a program listing step, a contextual menu appears so you can add any extended GO-25 opcodes described in the section Special 8* Opcodes.

Finally note there is a touchable switch-views control that controls how to display your program's description: either plain Text or full HTML. The default is Text with semi-colon as the comment character. But HTML allows for rich text and cool things like mathematical equations. This is explained in the section Naming and Documenting Your Program.


Function Keys
  • Recovering From Mistakes

    In addition to the four stack registers that automatically store intermediate results, GO-25 also contains a separate automatic register, the LAST X register. This register preserves the value in the displayed X register before a new function is performed.

  • Prefix Clear

    The CLEAR PREFIX key will clear a blue prefix key t, a gold prefix key r, STO, RCL, or GTO. To clear a prefix you have mistakenly pressed, merely press CLEAR PREFIX, then press the correct key.

  • Absolute Value

    Some calculations require the absolute value, or magnitude, of a number. To obtain the absolute value of the number in the display, press ABS.

  • Integer Portion

    To extract and display the integer portion of a number, press INT. The fractional portion of the number is lost. The entire number, of course, is preserved in the LAST X register.

  • Fractional Portion

    To place only the fractional portion of a number into the displayed X-register, press FRAC. The integer portion of the number is lost. The entire number, of course, is preserved in the LAST X register.

  • Reciprocals

    To calculate the reciprocal of a number in the displayed X register, press 1/X.

  • Square Roots

    To calculate the square root of a number in the displayed X register, press √X.

  • Squaring

    To square a number in the displayed X register, press .

  • Using Pi

    The value π accurate to 14 places (3.14159265358979) is provided as a fixed constant in GO-25. Merely press π whenever you need it in a calculation.

  • Percentages

    The % key is a two-number function that allows you to compute percentages. To find the percentage of a number:

    1. key in the base number
    2. press ENTER
    3. key in the number representing percent rate
    4. press %

    For example, to calculate the sales tax on a purchase, the purchase price is the base number and the sales tax is the percentage rate.

    When % is pressed, the calculated answer writes over the percentage rate in the X register, and the base number is preserved in the Y register. Since the purchase price is now in the Y register and the amount of tax is in the X register, the total amount can be obtained by simply adding.

  • Trigonometric Functions The calculator provides you with six trigonometric functions. It also calculates angles in decimal degrees, radians, or grads; and it converts between decimal degrees and degrees, minutes, seconds. Use DEG, RAD or GRD to specify the degree mode.

    Note: 360 degrees = 2π radians = 400 grads.

    The six trigonometric functions provided by the calculator are:

    • sin (sine)
    • sin-1 (inverse sine)
    • cos (cosine)
    • cos-1 (inverse cosine)
    • tan (tangent)
    • tan-1 (inverse tangent)

    Each trigonometric function assumes angles in decimal degrees, radians, or grads. Trigonometric functions are one-number functions, so to use them you key in the number, then press the function key.

  • Hours (or Degrees), Minutes, Seconds / Decimal Conversions

    The T (to hours (or degrees), minutes, seconds) key converts decimal hours to the format of hours, minutes and seconds, or converts angles specified in decimal degrees to degrees, minutes, seconds. These hour and degree values are based on the sexagesimal (base 60) number system. When a time (or angle) is displayed in hours (or degrees), minutes, seconds format, the digits specifying hours (or degrees) occur to the left of the decimal point, while the digits specifying minutes, seconds, and fractions of seconds occur to the right of the decimal point. To see all these digits you should specify Q 5 display format. For example, the decimal number 89.29047° displays as 89°, 17′, 25.7″ in H.MS format:

    Conversely, the $ (to decimal hours (or degrees)) key is used to change hours (or degrees), minutes, seconds into decimal hours (or degrees).

    The $ and T keys are important because the calculator's trigonometric functions operate on angles in decimal degrees, but not in degrees, minutes, seconds. In order to calculate any trigonometric function of an angle given in degrees, minutes, seconds, you must first convert the angle to decimal degrees.

  • Polar/Rectangular Coordinate Conversion

    Two functions H and o are provided for polar/rectangular coordinate conversions. Polar angle θ is assumed in decimal degrees, radians, or grads, depending upon the trigonometric mode selected by P, {, or }.

    To convert values in the X and Y registers representing rectangular (x, y) coordinates, respectively, to polar (r, θ) coordinates, magnitude and angle, respectively, press →P. Magnitude r then appears in the X register and angle θ is placed in the Y register.

    Conversely, to convert values in the X and Y registers representing polar (r, θ) coordinates, respectively, to rectangular coordinates (x, y), press →R. Coordinate x then appears in the X register and coordinate y is placed in the Y register.

  • Logarithms

    GO-25 computes both natural and common logarithms as well as their inverse functions (antilogarithms):

    • ln is loge (natural log). It takes the log of the value in X to base e (2.718...).
    • ex is antiloge (natural antilog). It raises e (2.718...) to the power of the value in X. (To display the value of e, press 1 ex.)
    • log is log10 (common log). It computes the log of the value in the X register to base 10.
    • 10x is antilog10 (common antilog). It raises 10 to the power of the value in the X register.

  • Raising Numbers to Powers

    The p key is used to raise numbers to powers. This function raises a positive real number to any real power; that is, the power may be positive or negative, and it may be an integer, a fraction, or a mixed number. p also permits you to raise any negative real number to the power of any integer within the calculating range of the calculator.

    In conjunction with O, p provides a simple way to extract roots. For example, the cube root of 5 is equivalent to 51/3 e.g.:

    5 z
    3 O

  • Statistical Functions
    • Summations

      Pressing the Σ+ key automatically gives you several different sums and products of the values in the X and Y registers at once. In order to make these values accessible for sophisticated statistics problems, they are automatically placed by the calculator into storage registers R3 through R8 (GO-25 extension). The only time that information is automatically accumulated in the storage registers is when the Σ+ key is used. Before you begin any calculations using the Σ+ key, you should first clear the storage registers of data by pressing CLEAR REG.

      When you press the Σ+ key each of the following operations is performed on the data in the X and Y registers:

      • The square of the number in Y is added to the contents of storage register R8 (GO-25 extension).
      • The number in X is added to the contents of storage register R7.
      • The square of the number in X is added to the contents of storage register R6.
      • The number in X is multiplied by the contents of the Y register, and the product added to storage register R5.
      • The number in Y is added to the contents of storage register R4.
      • The number 1 is added to storage register R3, and the total number in R3 is then written into the display (the stack does not lift).

      Thus, each press of the Σ+ key updates these summations and multiplications. The contents of the displayed X register and the applicable storage registers are as follows:

      • X is n, the number of entries.
      • R3 is n, the number of entries.
      • R4 is ΣY, summation of Y values.
      • R5 is ΣX*Y, summation of products of X and Y values.
      • R6 is ΣX2, summation of X2 values.
      • R7 is ΣX, summation of X values.
      • R8 is ΣY2, summation of Y2 values (GO-25 extension).

      In addition, the Y value present before the last press of the Σ+ key is retained in the Y register, while the X value present before Σ+ was pressed is retained in the LAST X register. To see any of the summations at any time, you have only to recall the contents of the desired storage register. (In the case of the Σ+ key, recalling storage register contents or keying in a number simply writes over the number of entries (n) that is displayed. The stack does not lift.)

    • Mean

      The mean (arithmetic average) of data entered and summed using the Σ+ key is available by using the (mean) key. When you press , the mean of the values of X is calculated using the data in storage registers R3 (n) and R7 (Σx).

    • Standard Deviation

      The standard deviation (a measure of dispersion around the mean) is calculated using data in the applicable storage registers and the s (standard deviation) key. Pressing s uses the data in registers R3 (n), R6 (Σx2) and R7 (Σx).

    • Correcting Summations

      If you key in an incorrect value and have not pressed Σ+ press CLX and key in the correct value. If one of the values is changed, or if you discover after you have pressed the Σ+ key that one of the values is in error, you can correct the summations by using the Σ- key as follows:

      1. Key the incorrect data pair into the X and Y registers.
      2. Press Σ- to delete the incorrect data.
      3. Key in the correct values for X and Y. (If one value of an X,Y data pair is incorrect, both values must be deleted and reentered .)
      4. Press Σ+.

  • Vector Arithmetic
    You can add or subtract vectors by combining the polar/ rectangular conversion functions (the H and o keys) with the summation functions (the g and D keys).

    For an example of this, examine the Sample Program Apeneck Sweeney as he flies the Swordfish into a crossing headwind.


Part II - Programmatic Usage

Three Modes Of Operation

There are three ways to use your GO-25 calculator:

  1. Manual RUN Mode

    The functions and operations you have learned about in previous sections are performed manually one at a time with the PRGM-RUN switch set to RUN. These functions combined with the automatic register stack enable you to calculate any problem with ease.

  2. PRGM Mode

    In PRGM (program) mode the functions and operations you have learned about are not executed, but instead are recorded in a part of the calculator called program memory for later execution. All operations on the keyboard except three can be recorded for later execution with the PRGM-RUN switch set to PRGM. The three operations that cannot be recorded are:

    • SST
    • BST

    These three operations work in PRGM mode to help you write and record your programs.

  3. Automatic RUN Mode

    GO-25 can also be used to automatically execute a list of operations with the PRGM-RUN switch set to RUN if they have previously been recorded in program memory. Instead of your having to press each key manually, the recorded operations are executed sequentially in automatic RUN mode when you press R/S (run /stop). You press only one key and the entire list of recorded operations is executed much more quickly than you could have executed them yourself.


GO-25 Program Memory

A program is nothing more than a series of calculator keystrokes that you would press to solve a problem manually. The calculator remembers these keystrokes when you key them in, then executes them, in order, whenever you wish. You've already seen this demonstrated in the section Programmed Problem Solving, which you may wish to review.

All HP-25C programming techniques work with GO-25, although this App has some useful extensions. The first is the amount of program memory available for storing the keystrokes that define your program, now increased to 99 steps. When you set the calculator to PRGM mode you can examine the contents of program memory; logically, here is how the surface area program `A_(surface)=pid^2` is stored:









GTO 00


GTO 00

Each step of program memory can store a single operation, whether that operation consists of one, two or three keystrokes. Thus, one step of program memory might contain a single-keystroke operation like CHS, while another step of program memory could contain a two-keystroke operation, like STO 6. There are also three-keystroke operations, such as STO + 6.

However, what is actually stored in program memory are not instruction pneumonics, but rather keycodes, discussed now.


GO-25 Key Codes

Let's write a program to compute the surface area of a sphere. For this discussion go into Settings and ensure that GO-25 Step Editing is turned on.

First, set the PRGM-RUN switch to PRGM so that the sequence of keystrokes will be recorded for later execution. Second, press CLEAR PRGM to clear the calculator of previous programs. The display will show:

This tells you that you are at step 00, the beginning of program memory. Step 00 contains an automatic stop instruction and cannot be used to record your program keystrokes. Program keystrokes are recorded in steps 01 through 99. The program memory for GO-25 is separate from the four stack registers, the LAST X register, and the ten storage registers.

With 00 displayed in PRGM mode, you are ready to key in your program. Surface area of a sphere is calculated using the formula A = π d². The short list of keys for the area of a sphere program is:

        g X2  ; square the diameter
        g π   ; load X with π
        x     ; multiply d² by π
Press the first key of the program and the display will change to:
            01       15
Since it's impossible to key anything into step 00 this first key is recorded in step 01. The two numbers on the right of the display designate the key stored in that step. Each key on the keyboard has a two-digit keycode. For convenience, the digit keys are coded 00 through 09. All other keys are coded by their position on the keyboard. The first digit denotes the row of the key and the second digit the number of the key in that row. So 15 tells you that the key is in the first row on the calculator and that it is the fifth key in that row, the g key. This handy matrix system allows you to easily determine the code for each instruction without using a reference table.

To conserve program memory when using prefixed functions, the keycodes for the prefix and the function are merged into one step. For an example of this press the second key of the program, X2, and the display will change to:

            02    13 00
Whoa, what just happened? The calculator is smart enough the realize that program step 01 is complete, and has stored that step into program memory and advanced its internal step pointer to step 02, ready for you to key in the next instruction. To see step 01 just look at the program listing view if it's visible. If it's not visible make it so with a swipe-up, or touch the BST key to back-step the step pointer so that step 01 is visible in the calculator display. You will see this:
            01    15 02

The two-number code 01 on the left side of the display designates the step number of program memory that is being displayed. The two pairs of numbers on the right side of the display indicate that the function X2 has been recorded in that step of program memory. Digits 1 and 5 denote the g key. Digits 0 and 2 denote the 2 key. The operation stored then, is g 2 which is the X2 function. In every case, a single operation uses only one step of program memory.

Before proceeding to enter the rest of the program, if you used the BST key to review step 01, now touch the SST key to single-step back to step 02. To edit a step it must be visible in the calculator display.

The keys for finding the area of a sphere and their corresponding codes are shown below. Press each remaining key in turn and verify the keycodes shown in the display.

            g X2   01    15 02
            g π    02    15 73
            x      03       61
In this case, a program consisting of five keystrokes takes only three steps of program memory.

GO-25 provides four extended keycodes, the 8* series, named because they assume the existence of an 8th row of calculator keys. Because there are no such keys, these opcodes are inserted using a contectual menu activated from the program listing auxiliary view. The new instructions, DMP, BEL, SEC and RND are explained in the section Special 8* Opcodes.


GO-25 Programming Keys
  • PRGM

    Switch the PRGM-RUN switch to PRGM to enter program steps into the calculator. Function keys are recorded in program memory. Display shows program memory step number and the keycode (keyboard row and location in row) of the function key.

    To clear program memory and reset the step pointer to the beginning of program memory press CLEAR PRGM. (Note that CLEAR PRGM cannot be recorded in program memory; otherwise, there would be no way to clear program memory!)

  • SST

    This key, single step, also cannot be recorded in program memory in PRGM mode, as it's used to advance the step pointer forward for examining and/or changing program steps. (Used in automatic RUN mode, the SST key displays the step number and keycode of the current program memory step when pressed; executes instruction, displays result, and moves to next step when released.)

  • BST

    This key, back step, also cannot be recorded in program memory in PRGM mode, as it's used to move the step pointer backwards for examining and/or changing program steps. (Used in automatic RUN mode, the BST key displays the step number and keycode of the previous program memory step when pressed; moves to previous step when released - the program is not run in reverse.)

  • GTO n n

    Go to. Executed as a recorded program instruction, followed by a two-digit step number, causes the calculator to execute the instruction at the specified step number next, and continue program execution sequentially from there. (Used via the keyboard, positions the internal step pointer.)

  • R/S

    Run/Stop. Executed as a recorded program instruction, stops program execution. (Use via the keyboard, begins execution of a stored program. Stops execution if program is running.)


    Pause. Executed as a recorded program instruction, stops program execution for 1 second and displays contents of the X register, then resumes program execution.

  • NOP

    No operation. Calculator executes no operation and continues program execution sequentially with the instruction in the next program memory step.

  • X<Y   X≥Y   X≠Y   X=Y
  • X<0   X≥0   X≠0   X=0

    Conditionals. Each tests the value in the X register against that in the Y register or 0 as indicated. If true, the calculator executes the instruction in the next program memory step. If false, the calculator skips the next step and continues execution after the skipped program step.


GO-25 Program Execution

The section Programmed Problem Solving provided a concise overview of how to write, load and run our surface area of a sphere program. Let's delve deeper into those topics.

Running A GO-25 Program

Here's the program we developed in the previous section:

            01 15 02
            02 15 73
            03 61

Programs are executed in automatic RUN mode. So first set the PRGM-RUN switch to RUN. Next press GTO 00. This operation resets the calculator so that program execution will begin from step 00 (pressing CLEAR PRGM in RUN mode accomplishes the same thing). Then, key in a value for a diameter and press R/S in RUN mode to run your program. The operations stored in program memory are executed sequentially downward from step 00. First step 01 is executed, then step 02, then step 03, and then step 04, which now contains a special instruction, GTO 00. For example, if you entered the diameter of Mercury = 4879.4 km then presssed R/S, the computed surface area is 74796748.05 square kilometers..

The GTO 00 instruction in step 04 is not an instruction you keyed in yourself. It was already there. If you press CLEAR PRGM in PRGM mode, program memory is filled with GTO 00 instructions. The three-step program you keyed in replaced three of these instructions.

A GTO 00 instruction in the program tells the calculator to go to step 00 and execute the automatic stop instruction there next. If R/S is pressed again in automatic RUN mode, the calculator will begin executing instructions from step 00 as it did the first time. Each time the calculator executes the program, it ends execution at step 00, ready to begin again.

If you had recorded a 99-step program, after executing step 99 the calculator would execute the automatic stop instruction stored in step 00. Then you would have to press R/S to execute the program again.


GO-25 Debugging

Debugging a program on an actual HP-25C can be very difficult because you cannot easily see the state of the calculator's storage registers without recalling them individually to the stack. On the other hand, GO-25's auxiliary information views, Settings, and 8* series of new instructions give an unparalleled view of the registers and stack, making debugging much easier.

  • Running One Step at a Time
    If all you need is to see the stack registers, then the SST single step command works beautifully. To use this method, do not start program execution with R/S, rather, position the step pointer to the first program step using GTO then press SST. This runs that step and only that step. Then you can manipulate the stack and check the contents of the four registers for sanity. Repeat as required.
  • Running in Slow Motion
    The Settings option Program Run Speed controls how fast a program runs by varying the time delay before running subsequent program steps.
  • Running Full Speed with DMP
    Inserting opcode 80 in your program dumps the calculator's internal state to the Paper Tape. Here we see the calculator's register values after computing the surface area of the unit sphere.


GO-25 Program Editing

Editing a program in PRGM mode consists of three basic maneuvers: clearing stuff, positioning the step pointer to an instruction of interest, and replacing the instruction after1 the step pointer with a NOP instruction or with a new instruction. GO-25 adds "full screen" editing to the mix, which inserts and deletes NOP instructions and rearranges instructions (including resequencing GTO instructions as necessary).

  1. Clearing stuff
    • In PRGM mode, _X clears all 99 program memory steps to GTO 00 instructions and resets the step pointer to step 00.
    • _Z cancels r, t, STO, RCL or GTO.
  2. Positioning the Step Pointer
    • e n n
    • SST single step
    • BST back step
    • In RUN mode, _X sets the step pointer to step 00
  3. Replacing Instructions1
    The instruction replace operation normally affects the step after the current step pointer, but there is a settings option GO-25 Step Editing to replace the step at the step pointer instead. Regardless of the replacement instruction target, if you press a NOP or any recordable operation, it will replace the target instruction in program memory.
  4. Editing the Program Listing
    The program listing auxiliary window has a special Edit (Done) button that enables insertion and removal of NOP instructions, as well as re-arrangement of program steps using gripper pads.

    Touching a green plus inserts a NOP before that step, and simultaneously drops program step 99. Touching the red minus removes that NOP. Touching and dragging a gripper pad moves that program step, re-inserting it when you have reached the destination and released the gripper.

    All GTO targets are automatically re-sequenced.


Part III - GO-25 Programs

Special 8* Opcodes

GO-25 supports six special opcodes not available on a real HP-25C. These are collectively known as the 8* series of instructions, named because they exist on a theoretical 8th row of calculator keys having an infinite number of columns. You cannot key these instructions in, but they can be typed as part of a program imported into the calculator. Or, in PRGM mode, if you touch and hold a program listing step, a contextual menu appears so you can add extended GO-25 opcodes. See the section on keycodes for background information.

  1. DMP (80) dumps the step pointer and the stack and memory registers to the paper tape for debugging.
  2. BEL (81) sounds a tram bell.
  3. BEL (14 81) sounds BEL1 (win).
  4. BEL (15 81) sounds BEL2 (lose).
  5. SEC (82) stores the second of the day 0 - 86,399 in X, handling the stack just like an RCL.
  6. RND (83) replaces X with a random integer 0 < abs(X) < 232, without otherwise changing the stack.


Naming and Documenting Your Program

A GO-25 program can exist by itself, a simple stream of step numbers and instructions, just like an HP-25C program, or it can be bundled with its documentation in a structure called a Program Package. These descriptive comments can be simple Text, or expressive HTML markup.

A Program Package is really easy to maintain, it's just a file (ASCII or UTF-8 Unicode), and consists of two parts: the documentation at the top / beginning, immediately followed by the program. That's it. Simple enough to manage in most any editor you choose.

Generally, it's useful to associate a name with a program, and GO-25 tries to extract the name from the documentation as the program is being read into memory. If you provide no documentation at all, or do not adhere to the following prescribed naming rule, then Untitled-go25.txt is used.

While the program is being read into memory GO-25 is also scanning the documentation to determine if it's plain Text or rich HTML, by searching for a case-insensitive <html> / </html> tag pair. This defines the start and end of the HTML documentation; if those two strings are not found then the documentation is assumed plain Text.

Finally, the prescribed program naming rule is:

  • you get to pick the actual name of the program, even including spaces
  • you must suffix the characters "-go25" to the chosen program name
  • and you must suffix an extension, either ".txt" or ".html"
e.g. Einstein Tensor-go25.html

Note: The extension does not specify whether the program documentation is Text or HTML, it simply reminds humans what the document contains, and reminds computers that the program is an editable file.

Text Documentation

Lacking <html> / </html> marker strings, program documentation is assumed plain Text, with the semi-colon as the comment character. All comments appearing before the first program step 01 are gathered together and appear in the top of the program listing window. This window is editable, and the descriptive text is saved with the program steps when the program is exported.

By definition the very first documentation line specifies the program name, excluding the semi-colon, of course.

e.g. ; Einstein Tensor-go25.txt

For an example, visit the Sample Program Empty Program Text Documentation.

HTML Documentation

If <html> / </html> marker strings are present, program documentation is assumed to be HTML. The HTML is rendered and displayed in the top of the program listing window. Program step 01 immediately follows the </html> tag. This HTML window is not editable - touch the switch-views control to toggle into Text mode to view and edit the raw HTML source. The descriptive text is saved with the program steps when the program is exported.

By definition a <title> / </title> tag pair surrounds the program name.

e.g. <title>Einstein Tensor-go25.html</title>

The title tag is contained in the document's <head> section, you will want to include these lines as well:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="viewport" content="initial-scale=1.0" />
For an example, visit the Sample Program Empty Program HTML Documentation.


Storing and Organizing Programs

Beginning with iOS 11 managing your programs is relatively easy using Apple's Files App. Files not only provides a storage location for your programs such as iCloud Drive or Dropbox, but also allows you to create subfolders and maneuver between them, which means you can setup a file hierachy that is meaningful to you. To take advantage of theses capabilities, incorporate Files in your import and export workflows.

If you have iCloud Drive configured then GO-25 creates a folder similar to this for Files to store and retrieve your programs. Tapping the display in PRGM mode brings up the Import PRGM / Share PRGM menu, allowing you to transfer GO-25 programs to / from the App.

  • To export a program to Files select Share PRGM from this menu:
    1. Open In Another App
    2. Save to Files, which runs Files
    3. Navigate to the destination folder
    4. Add
  • To import a program from Files:
    1. First run the Files App
    2. Naviagte to the desired folder
    3. Long touch the desired program to display the Action menu
    4. Share
    5. Copy to GO-25, which runs GO-25
    6. This displays the standard Import PRGM menu with your desired program as one of the items

Additional help is available in the following sections Importing Programs and Sharing Programs.


Importing Programs

On an actual HP-25C programs are entered using the calculator keys. That method works with GO-25 as well, but it's often easier to edit your programs in another App and import them into GO-25 (activate the Import menu by touching the calculator's display in PRGM mode). For instance, you can use Mail to write your program, then copy the program to the pasteboard, switch to GO-25, and import the pasteboard data. As a bonus, when you are finished editing the program simply email it to yourself for later filing in your GO-25 programs folder.

You also have a My Programs container that uses iTunes File Sharing to sync programs between your computer and GO-25.

Alternately, Apps like Files use the iOS Document Model and have a menu to open their documents in another App (labelled variously as Add to appName, Copy to appName, Open in appName, or Save to appName). If such an App sends a program (named, say, SurfaceAreaOfSphere-go25.txt) to GO-25, that program's name appears in the Import PRGM window.

Finally, a small selection of programs is included in GO-25's Sample Programs container.


Sharing Programs

You can export a program in various ways using the Share PRGM menu item (activate the Share menu by touching the calculator's display in PRGM mode). Besides the pasteboard, email and printing, you also have a My Programs container that uses iTunes File Sharing to sync programs between your computer and GO-25.

GO-25 also supports the iOS Document Model and allows other Apps to open its program files via the Open In Another App menu item. When sending a program to another App, GO-25 uses the program name to identify the program. For example, use this option to export a program to the Files App.


User Contributed Programs

Unsupported programs that you may copy to the pasteboard and then import into GO-25 while in PRGM mode.

Complex Operations-go25.txt
; Complex Operations-go25.txt
; Written by Eddie Shore
; May 8, 2011
; V 1
; This program calculates the following:
; 1.  (a + bi)^n. (principal power and root)
; 2.  exp(a + bi)
; 3.  ln(a + bi)
; Registers:
; R0 = temp
; R1 = real part
; R2 = imaginary part
; R3 = power
;  Results:
; y stack: imaginary part
; x stack: real part
; Example:
; Find (2.8 + 2i)^4, exp(2.8 + 2i), and ln(2.8 + 2i)
;  Store the complex number to be operated on:
;  2.8 STO 1
; 2 STO 2
; 4 STO 3
; for the power:
; 1 R/S. (-110.6944 + 86.0160i)
; for the exponential:
; 2 R/S (-6.8434 + 14.9531i)
; for the natural logarithm
; 3 R/S (1.2357 + .6202i)
01    23 00 ; STO 0
02       01 ; 1
03    14 71 ; x=y
04    13 15 ; GTO 15
05       22 ; R↓
06       02 ; 2
07    14 71 ; x=y
08    13 33 ; GTO 33
09       22 ; R↓
10       03 ; 3
11    14 71 ; x=y
12    13 45 ; GTO 45
13       22 ; R↓
14    13 00 ; GTO 00
15    24 02 ; RCL 2
16    24 01 ; RCL 1
17    15 09 ; →P
18    24 03 ; RCL 3
19    14 03 ; y^x
20    23 00 ; STO 0
21       21 ; Swap xy
22    24 03 ; RCL 3
23       61 ; X
24       31 ; ENTER
25    14 04 ; sin
26    24 00 ; RCL 0
27       61 ; X
28       21 ; Swap xy
29    14 05 ; cos
30    24 00 ; RCL 0
31       61 ; X
32    13 00 ; GTO 00
33    15 33 ; RAD
34    24 01 ; RCL 1
35    15 07 ; e^x
36    24 02 ; RCL 2
37    14 04 ; sin
38       21 ; Swap xy
39       61 ; X
40    14 73 ; LASTx
41    24 02 ; RCL 2
42    14 05 ; cos
43       61 ; X
44    13 00 ; GTO 00
45    15 33 ; RAD
46    24 02 ; RCL 2
47    24 01 ; RCL 1
48    15 09 ; →P
49    14 07 ; ln
50    13 00 ; GTO 00
; Derivative-go25.txt
; Derivative Program
; Calculate the numeric derivative
; Instructions:
; 1. When entering the program, the function for the required derivative starts on Step 27
; 2. Use R0 as the independent variable.  You can use R5, R6, and R7 for constants.
; 3.   Store a tolerance level in R1.  I recommend 0.01.
; 4. The last four lines of the program MUST be:
;  RCL 04
;  x=0
;  GTO 10
;  GTO 19
; The function can have at most 19 steps (for classic HP 25) or 69 steps (GO 25 App).
;  The example function (listed in line 27) is ln x + 3x - 10.8074
; Formula (HP 67):
; [f(x+Δx/2)-f(x-Δx/2)]/Δx = f'(x)
01       00 ; 0
02    23 04 ; STO 04
03    24 00 ; RCL 00
04    24 01 ; RCL 01
05       02 ; 2
06       71 ; ÷
07       51 ; +
08    23 00 ; STO 00
09    13 27 ; GTO 27
10       22 ; R↓
11    23 02 ; STO 02
12       01 ; 1
13    23 04 ; STO 04
14    24 00 ; RCL 00
15    24 01 ; RCL 01
16       41 ; -
17    23 00 ; STO 00
18    13 27 ; GTO 27
19       22 ; R↓
20    23 03 ; STO 03
21       32 ; CHS
22    24 02 ; RCL 02
23       51 ; +
24    24 01 ; RCL 01
25       71 ; ÷
26    13 00 ; GTO 00
27    24 00 ; RCL 00
28    14 07 ; ln
29    24 00 ; RCL 00
30       03 ; 3
31       61 ; x
32       51 ; +
33       01 ; 1
34       00 ; 0
35       73 ; .
36       08 ; 8
37       00 ; 0
38       07 ; 7
39       04 ; 4
40       41 ; -
41    24 04 ; RCL 04
42    15 71 ; X=0
43    13 10 ; GTO 10
44    13 19 ; GTO 19
45    13 00 ; GTO 00
Lower Incomplete Gamma-go25.txt
; Lower Incomplete Gamma-go25.txt
; Ported from HP 65 Math PAC 2
; Similar to the Gamma function but
; γ(a,x) = Integral(e^-t t^(a-1) dt from 0 to x)
; a and x must be positive
; Instructions: a ENTER x R/S
; You can approximate the Gamma function by setting x high enough.
; According to Viktor Toth from rskey.org, for any a<50, setting x=30
; gives the gamma approximation accurate from 8 to 12 digits
01    23 01 ; STO 01
02       21 ; Swap XY
03    23 02 ; STO 02
04    14 03 ; Y^X
05    24 02 ; RCL 02
06       71 ; ÷
07    23 03 ; STO 03
08    24 01 ; RCL 01
09    24 02 ; RCL 02
10       01 ; 1
11       51 ; +
12    23 02 ; STO 02
13       71 ; ÷
14    24 03 ; RCL 03
15       61 ; x
16    23 03 ; STO 03
17       51 ; +
18    14 61 ; X≠Y
19    13 08 ; GTO 08
20    24 01 ; RCL 01
21    15 07 ; e^X
22       71 ; ÷
23    13 00 ; GTO 00
Midpoint Rule-go25.txt
; Midpoint Rule-go25.txt
; Numerical Integration using the Midpoint Formula
; Property of Eddie Shore
; Instructions:
; 1. Store lower limit in R1
; 2. Store upper limit in R2
; 3. Store number of intervals in R3
; 4. In run mode, press f CLEAR PRGM and the R/S
; Input the function at Step 32.  End the function with the instruction GTO 20.  Registers R0 and R7 are free.  The function starts with x_i on the x-stack.
; Registers Used
; R1 = a
; R2 = b
; R3 = n
; R4 = h = (b - a)/n
; R5 = sum
; R6 = counter
; The example function included in this program is:
; 2 + cos(2 sqrt(x))
; {RAD SQRT 2 x COS 2 + GTO 20}
01       01 ; 1
02    23 06 ; STO 06
03       00 ; 0
04    23 05 ; STO 05
05    24 02 ; RCL 02
06    24 01 ; RCL 01
07       41 ; -
08    24 03 ; RCL 03
09       71 ; ÷
10    23 04 ; STO 04
11    24 06 ; RCL 06
12       73 ; .
13       05 ; 5
14       41 ; -
15    24 04 ; RCL 04
16       61 ; x
17    24 01 ; RCL 01
18       51 ; +
19    13 32 ; GTO 32
20 23 51 05 ; STO + 05
21       01 ; 1
22 23 51 06 ; STO + 06
23    24 06 ; RCL 06
24    24 03 ; RCL 03
25    14 41 ; X<Y
26    13 28 ; GTO 28
27    13 11 ; GTO 11
28    24 05 ; RCL 05
29    24 04 ; RCL 04
30       61 ; x
31    13 00 ; GTO 00
32    15 33 ; RAD
33    14 02 ; √
34       02 ; 2
35       61 ; x
36    14 05 ; cos
37       02 ; 2
38       51 ; +
39    13 20 ; GTO 20
40    13 00 ; GTO 00
; sum-go25.txt
; Sum Program (Updated Instructions)
; Eddie Shore, 4/10/2011
; The registers used in this program are:
; R1 = initially, the user will load the lower limit.  Register 1 will also act as the independent variable in the function (i)
; R2 = the upper limit, which the user loads
; R3 = the sum, calculated during the program
; The function starts at Step 16.
; Required ending commands:
; GTO 05
; Instructions:
; 1.  In RUN Mode, press GTO 16
; 2.  Switch to PRGM mode, enter the function.  Anything previously written will be overwritten (replaced).
; The program loads R_1 (i) in the display.  The Register for the independent variable is R_1. End the function with the command GTO 05.
; 3. Switch to RUN mode. Load the lower limit in R_0 and the upper limit in R_1.
; 4. Press f CLEAR PRGM, R/S.
; R1 = a, independent variable in f(R1)
; R2 = b
; R3 = sum
; Enter your function, f(R1) at line 16.  The function MUST end with GTO 05.
; The function can be anything.  As a example: the Zeta Function (slow converging) to calculate ζ(2).
; Preload R1 and R2 before running the program.
01       00 ; 0
02    23 03 ; STO 03
03    24 01 ; RCL 01
04    13 16 ; GTO 16
05 23 51 03 ; STO + 03
06       01 ; 1
07 23 51 01 ; STO + 01
08    24 01 ; RCL 01
09    24 02 ; RCL 02
10    14 41 ; X<Y
11    13 13 ; GTO 13
12    13 03 ; GTO 03
13    24 03 ; RCL 03
14       74 ; R/S
15    13 00 ; GTO 00
16    15 02 ; X^2
17    15 22 ; 1/X
18    13 05 ; GTO 05
19    15 74 ; NOP
20    15 74 ; NOP
21    15 74 ; NOP
22    15 74 ; NOP
23    15 74 ; NOP
24    15 74 ; NOP
25    15 74 ; NOP
26    15 74 ; NOP
27    15 74 ; NOP
28    13 00 ; GTO 00



Improper Mathematical Operations

If you attempt a calculation containing an improper operation - say, division by zero - the display will show Error. To clear, press CLX.

The following are improper operations:

  • ÷ where X = 0
  • Yx where Y < 0 with X not an integer, or where Y = 0 with X < 0
  • √X where X < 0
  • 1/X where X = 0
  • log where X <= 0
  • ln where X <= 0
  • sin-1 where absolute value of X > 1
  • cos-1 where absolute value of X > 1
  • STO ÷ where X = 0
  • where n <= 0
  • s where n <= 0


GO-25 Settings

These are the default Settings:

  • Slide Switch Gesture unavailable on macOS
  • Background Color or Picture unavailable on iPhones with a display smaller than 5.5 inches

GO-25 Gesture Summary

Reminder: on macOS taps/touches are pointer clicks, pans/swipes/scrolls are pointer drags.

  • Shake to clear X. Not available on macOS.
  • Single tap the calculator display for Copy / Paste in RUN mode.
  • Single tap the calculator display for Import PRGM / Share PRGM in PRGM mode.
  • Double tap the calculator display to show/hide the stack, memory and paper tape views in RUN mode.
  • Double tap the calculator display to show/hide the program description and listing views in PRGM mode .
  • Two-finger pan for iPad to reposition the stack, program and calculator views. For macOS drag using your pointing device (if the view scrolls rather than drags, use the switch-views control as a drag point).
  • Touch and hold SST or BST in RUN mode to display the next or previous step, respectively.
  • Touch a program listing line to make it the current SP.
  • Touch a program listing line to dismiss the keyboard while editing the program description.
  • Touch and hold a program listing step for 0.75 second (long touch) to add special opcodes.
  • Touch switch-views control to alternate between two views.
  • Swipe up and down to scroll program description, program listing and sample programs views.
  • Swipe left and right to manipulate slide switches, if activated in Settings. Not available on macOS.
  • Flick left on the calculator display to erase last mantissa character entered.
  • Triple tap the calculator display to show/hide the Info button  .


GO-25 versus HP-25C Differences
  • Maximum program steps has been doubled to 99.
  • For Σ+, the square of the number in Y is added to the contents of storage register R8.
  • X, Y, Z and T registers, and the memory registers are continuous and survive a power Off.


What's New?

3.2 - 2020.02.02

  • Properly position program listing view on iPhone.
  • Automatic Display Switching: ensure switch to SCI 7, and repair display formats FIX 8 and FIX 9.
  • Tweak Display Engine LED segments A and F.
  • Improved memory management.
  • Update for iOS 13.3.1 and macOS 10.15.3.

3.1 - 2020.01.07

  • Add a Setting, High Visibility Display, so it's easier to view the calculator display in a very bright environment. The X register is shown in black on a white background, and each tiny LED display segment is drawn 33% larger.
  • For iPhones with a 5.5 inch display or larger there is a new Background Color or Picture setting.
  • PRGM mode keystrokes are now logged to the paper tape.
  • New surveying Sample Program Inverse From Coordinates.
  • New number theory Sample Program Euler Phi Function.
  • Bug(s):
    1. CLEAR REG was overzealously also clearing the stack.
    2. All 8 program conditionals (#, R, and friends) complete any numeric entry and push the value onto the stack.

3.0 - 2019.12.25

  • Share common code with GO-21 SciRPN and GO-29 SciRPN. This great internal refactoring resulted in external changes including, but not limited to:
    1. Default display rounding method changed to Half Away From Zero, which may affect displayed results. Use Half To Even in Settings to revert to the previous behavior.
    2. New stack / memory Register and paper tape Keystroke views. Use the SwitchViews control to alternate between them.
    3. New program source code documentation / listing view. The documentation can now be either plain Text or rich HTML, use the SwitchViews control to alternate between them.
    4. (Re-)add iCloud Drive support to share / import programs. Using the Files App as an intermediary to traverse the iCloud Drive folder hierarchy is recommended, fully explained in this documentation.
    5. Valid character encodings for GO-25 programs are ASCII, UTF-8 or UTF-16.
    6. Use new Appearance dark / light module (WkWebView) to render HTML throughout.
  • New Key Tap Feedback option Haptic Feel that uses touch feedback rather than sound to indicate a key tap, assuming your device includes the feature and that it is enabled in Settings.
  • Update for iOS 13.3.
  • Update for iPadOS 13.3 and macOS Catalina 10.15.2: this means that GO-25 SciRPN now runs on your friendly Macintosh computer!
  • Minimum iOS version is 9.0; minimum macOS version is 10.15.
  • Bug(s):
    1. Fix CLEAR PREFIX in PRGM mode.

2.16 - 2019.07.14

  • Update for iOS 12.3.1.

2.15 - 2019.03.23

  • Update for iOS 12.1.4.
  • Documentation now supports BigCatOs Appearances.

2.14 - 2018.09.14

  • Update for iOS 12.0.
  • Do not raise the stack when using the EEX shortcut immediately after an ENTER.

2.13 - 2018.09.03

  • Update for iOS 11.4.1.
  • Documentation updates.

2.12 - 2018.04.12

  • Update for iOS 11.3.
  • Fix slowdown when My Programs contains a large number of files.

2.11 - 2017.12.20

  • Update for iOS 11.2.1.
  • Pedro Leiva discovered areas where the GO-25 simulation differs from actual HP-25 hardware, so, make these fixes:
    1. The Mean and Standard Deviation functions now push the stack before performing the operation.
    2. The Plus and Minus Summation functions now set Last X before performing the operation.
  • My Programs now supports folder creation for easier program organization, prior to iOS 11.
  • Settings now stick!
  • Update the documentation to describe a better way to maintain, organize and share your GO-25 programs in iOS 11, using Apple's new Files App.

2.10 - 2017.10.31

  • Update for iOS 11.1 and iPhone X.
  • First key click on startup now sounds if Play Sound On Touch Down is enabled.
  • For iPhone X prevent program listing from obscuring the display.

2.9 - 2017.10.25

  • Update for iOS 11.0.3.
  • Full support for iPhone X.
  • Restore support for 3.5" devices.
  • Add new Setting, Display Rounding. Choose from Half Toward Even (default) or Todd Knoblock's new Half Away From Zero.
  • Cosmetic changes to the status bar blend mode.
  • Improve background thread handling.

2.8 - 2017.09.19

  • Update for iOS 11.
  • Preliminary support for iPhone X; full support in a future update.
  • Triple tap the display to show/hide the Info button  .
  • Add new Setting Angle LED to show or hide the LEDs.

2.7 - 2017.07.11

  • Documentation updates.
  • Update for iOS 10.3.2.

2.6 - 2016.12.10

  • Update for iOS 10.1.1.
  • GO-25 now requires that your iDevice run an iOS version >= 8.

2.5 - 2016.06.06

  • Add a third Key Tap Sound: Brief Tick.
  • Add new Setting Slide Switch LED to show or hide the LEDs.
  • GO-25 extends the HP-25C Summation key Σ+ by tracking the sum of Y2 in R8.
  • Additional Sample Programs by James Childress (Counting Methods, Hyperbolic, Inverse Hyperbolic, Linear Regression, Monthly Loan Payment, Quadratic Roots, Two Line Intersection) and Eddie Shore (Lower Incomplete Gamma, Complex Operations).
  • Improve accuracy of paper tape.
  • Update for iOS 9.


  • Paper tape now includes the displayed X value.
  • New audio framework lets you adjust the calculator sound volume using the hardware volume control.


  • New look for iPhone 6 Plus.


  • Update for iOS 8.


  • Flick left on the display to erase last mantissa character entered.
  • Update for iOS 7.1, 64-bit clean.


  • Update for iOS 7.


  • An alternate way to display and hide the stack and program listing information views is to double tap the display in RUN and PRGM mode, respectively.
  • Two new sample programs: Empty Program and H.MS Adder.
  • Indicator light for DEG / RAD / GRD.


  • Support for new iPhone and iPod larger screen size.
  • Enlarge the numeric button touch halos for better responsiveness.


  • Editing mode for inserting and removing NOPs, and re-arranging program steps, all with automatic GTO re-sequencing.


  • High resolution Retina Display artwork for iPad.
  • Minor documentation fixes.


  • Close an HTML tag to restore order to the documentation.
  • Updated Countdown-go25.txt program.


  • Add new opcode 83 RND, which replaces X with a random integer 0 < abs(X) < 232, without otherwise changing the stack.
  • Make key tap sound selectable on touch up (default) or touch down.
  • More Sample Programs.


  • For iPad new Background from Photos option.
  • More Sample Programs.


  • Change Edit Steps Classically setting to GO-25 Step Editing, which edits the SP, rather than the HP-25C norm of editing the step following the SP.
  • Change Run Program Slowly setting to Program Run Speed, which can be adjusted with a slider.
  • Add Key Tap Sound setting Off.
  • Add Program Sounds setting to control sounds from programs.
  • Add support for memory registers R8 and R9.
  • Add opcode 82, SEC, that stores the second of the day 0 .. 86,399 in X.
  • To add special opcodes 80 .. 82 to a program, touch a program listing line for 0.75 second.
  • Improve key press responsiveness and fix App sluggishness.
  • In RUN mode SST and BST now display the instruction for a long as the key is pressed.
  • Program description and program listing views now scroll independantly.
  • When editing the program description, touch a program step to dismiss the keyboard.
  • Disallow non-sensical key combinations.
  • Additional sample and user contributed programs.



Copyright (©) 2010 - 2020 BigCatOs. All rights reserved.
Contact   |    Privacy