GO-29
SciRPN
Programmable Scientific Calculator

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

Topics

Prologue

1.  Capabilities At A Glance

Top

2.  Introduction

Use the OFF - ON switch and ensure the calculator is powered-on.

This document — also available as a PDF download GO-29 Help — is not an exhaustive reference manual; rather, it's a terse outline of the calculator's operation, and function and programming keys. The information is structured so that prerequisite material generally comes first, thus, you are encouraged to read the topics sequentially.

In this document normal calculator keys are shown in bold, such as +, or x, or 4, or g. 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 r or t, 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 are 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 described later there are two variants of RUN mode, for three actual calculator modes.)

Top

3.  Manual Problem Solving

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

To calculate the surface area of a sphere, the formula `A_(surface)=pid^2` can be 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:

PressDisplay
32003200.
!10240000.00
%3.14
?32169908.77

Top

4.  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.

Top

Part I - Manual Usage

5.  Controlling the LED Display

The GO-29 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-29C. 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.

A similar concept exists for Apple TV, based on focus navigation rather than touch, see the section Apple TV Particulars for details.

Top

6.  Stack Operations

Automatic storage of intermediate results is the reason that GO-29 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.

T

4.00

Z

3.00

Y

2.00

X

1.00

Automatic Memory Stack

7.  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 30 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 30 storage registers reside contiguously in Continuous Memory and maintain their contents even when the calculator is off.

The diagram below shows all storage registers. The addresses of the primary storage registers are indicated by the numbers 0 through 9 and by .0 through .5. The addresses of the indirect storage registers are indicated by the numbers (16) through (29). Storing and recalling numbers in the 14 indirect storage registers is explained in section Using the R₀ Register for Indirect Control.

Primary

Indirect

R₀

R₍₁₆₎

R₁

R₍₁₇₎

R₂

R₍₁₈₎

R₃

R₍₁₉₎

R₄

R₍₂₀₎

R₅

R₍₂₁₎

R₆

R₍₂₂₎

R₇

R₍₂₃₎

R₈

R₍₂₄₎

R₉

R₍₂₅₎

R.₀

R₍₂₆₎

R.₁

R₍₂₇₎

R.₂

R₍₂₈₎

R.₃

R₍₂₉₎

R.₄


R.₅


Storage Registers

Top

8.  Auxiliary Information Views

GO-29 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 of the calculator display toggles the visibility of the available auxiliary information. If you eschew gestures and prefer buttons, enable the Accessibility setting Auxiliary Views Assist.

Similar to long-pressing the calculator display, the information that's displayed in response to a double tap is dependent on the setting of the PRGM - RUN switch.

(Note: unlike for iPhone and iPod touch, which have tiny screens, on Mac and 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. For Apple TV the information views are always visible and cannot be hidden.)

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

Top

9.  Function Keys

Top

Part II - Programmatic Usage

10.  Three Modes Of Operation

There are three ways to use your GO-29 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 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 the following can be recorded for later execution while in PRGM mode:

    • q - single-step foreward through program memorey
    • w - backward-step through program memory
    • e . n n or the GO-29 extension e + n n n - position step pointer to designated step number
    • ¬ - deletes current step from program memory
    • _X - clears all 198 steps of program memory
    • _Z - cancels r, t, d, RCL or GTO

    These operations work in PRGM mode to help you write, record and edit your programs from the keyboard.

  3. Automatic RUN Mode

    The calculator 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 GTO, GSB or 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.

Top

11.  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-29C programming techniques work with GO-29, 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 198 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:

00


01

© 0

02

!

03

%

04

?

05

§

06

R/S

198

R/S

Each step of program memory can store a single operation, whether that operation consists of one, two, three, or four keystrokes. Thus, one step of program memory might contain a single-keystroke operation like x, while another step of program memory could contain a two-keystroke operation, like STO 6. Step 01 of program memory currently contains an operation that requires three keystrokes, t GTO 0, which we understand to be © 0.

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

Top

12.  Keycodes

You can tell from the display what keystrokes are loaded into each step of program memory by means of the keycodes for those keys. Let's look at some keycodes now. If you have cleared the surface area of a sphere program illustrated in the section Programmed Problem Solving, please reenter it now before continuing.

With the calculator in PRGM mode, press the 4 keys e . 0 0 (go to step number 00) to return the calculator to the beginning of program memory. The number that you see on the left side of the display indicates the step number of program memory to which the calculator is set. You should be set at step 00, indicated by a display of 00. Now we'll use the q (single-step) key to examine the next step of program memory. q lets you step through program memory, one program step at a time.

PressDisplay
SST01 15 13 00

The calculator is now set to step 01 of program memory, as indicated by the number 01 that you see on the left side of the display. The other numbers in the display are as many as three two-digit keycodes for the keystrokes that have been loaded into that step of program memory.

Each key on the calculator has a keycode. For each keycode, the first digit denotes the row of the key on the keyboard and the second digit identifies the column of the key in that row (there are 7 rows of keys, and 4-5 columns of keys per row). Always count from the top down, and from left to right. Each key, even the double-wide z key, counts as one keystroke.

For convenience, digit keys are identified by two digit keycodes of 00 through 09, except when prefixed by r or t. When preceeded by either of these prefix keys the digit keys are identified by the row-column keycode.

Now use the q key again to examine the keycodes in the next step of the program:

PressDisplay
SST02   15 63

This table should help explain the keycodes for steps 01 and 02. For step 01 the first two key presses are located by row-column intersection, and the simulator recognizes them as the © mnemonic. The third key press is a simple number 0 key so it is mapped to its two-character numeric keycode, there is no row-colum mapping, and all three keys are merged into one step. In contrast, both step 02 keycodes use row-column intersection to locate the key press, even the number 2 key because it is prefixed by t, and the 2 keys merge into the single step !.

Step

Key

Keycode

Row

Column

Result

01

t

15

1

5


GTO

13

1

3

©


0

00

-

-

© 0







02

t

15

1

5


2

63

6

3

!

GO-29 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.

Top

13.  Programming Keys

The programming keys described in this section help you write, edit and run programs. Specifics depend upon which of the three calculator modes you are using.

  1. PRGM Mode

    Reminder, these six keys are non-recordable in PRGM mode:

    • q - single-step foreward through program memorey for examining and/or changing program steps.
    • w - backward-step through program memory for examining and/or changing program steps.
    • e . n n or the GO-29 extension e + n n n - position step pointer to designated step number
    • ¬ - deletes current step from program memory. All subsequent instructions move up one step in program memory.
    • _X - clears all 198 steps of program memory to R/S instructions and resets the step pointer to step 00.
    • _Z - cancels r, t, d, RCL or GTO.

  2. Manual RUN Mode

    • e . n n or the GO-29 extension e + n n n

      Goto positions the internal step pointer to an explicit step number without executing instructions.

    • GTO followed by a label number 0 through 9, or indirect label ¤ (described in section Using the R₀ Register for Indirect Control)

      Goto searches downward through program memory to first designated label and sets step pointer without executing instructions.

    • GSB followed by a label number 0 through 9, or indirect label ¤ (described in section Using the R₀ Register for Indirect Control)
      Goto subroutine searches downward through program memory to first designated label and starts executing instructions.

    • §

      Return sets the step pointer to 00 without executing instructions.

    • q

      Single step 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.

    • w

      Back step 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.

    • ,

      Run/Stop. Begins execution of a stored program from the current step pointer. Stops execution if program is running.

    • ¬

      Clears t prefix key.

    • _X

      Clears r prefix key.

    • _Z

      Cancels r, t, d, RCL or GTO.

  3. Automatic RUN Mode

    • GTO followed by a label number 0 through 9, or indirect label ¤ (described in section Using the R₀ Register for Indirect Control)

      Goto searches downward through program memory to first designated label and continues executing instructions.

    • GSB followed by a label number 0 through 9, or indirect label ¤ (described in section Using the R₀ Register for Indirect Control)

      Goto subroutine searches downward through program memory to first designated label and executes that section of memory as a subroutine.

    • §
      Return. If executed as a result of pressing GSB and a label designator or execution of a GTO instruction, stops execution and returns control to keyboard. If executed as a result of a GSB instruction, returns control to next step after the GSB instruction.

    • U

      Pause. Stops program execution for 1 second and displays contents of the X register, then resumes program execution.

    • ,

      Run/Stop. Stops program execution.

    • ¯    ®   b   R
      [   °   N   #

      Conditionals. These instructions make tests and branch instruction flow accordingly, and are discussed in the section Branching.

Top

14.  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.

Top

15.  Program Editing

Editing a program in PRGM mode consists of four basic maneuvers: clearing stuff, positioning the step pointer to an instruction of interest, deleting instructions at the step pointer, and inserting new instructions after the step pointer. GO-29 adds "full screen" editing to the mix, which deletes and rearranges instructions.

  1. Clearing stuff
    • In PRGM mode, _X clears all 198 program memory steps to R/S instructions and resets the step pointer to step 00.
    • _Z cancels r, t, d, RCL or GTO.
  2. Positioning the Step Pointer
    • e . n n or the GO-29 extension e + n n n
    • q single step
    • q back step
    • RTN in RUN mode sets the step pointer to step 00
  3. Deleting Instructions
    The ¬ key erases the instruction at the current step of program memory, and all subsequent instructions in program memory move upward one step. An R/S instruction drops in to fill the vacated step 198.
  4. Inserting Instructions
    If you press a recordable operation, it will be loaded in the next step of program memory, and all subsequent instructions will be "bumped" down one step in program memory. Program step 198 is lost off the end of program memory. You should always view the contents of the last few steps of program memory before adding instructions to a program to ensure that no vital instructions disappear.
  5. Editing the Program Listing (unavailable on Apple TV)
    The program listing auxiliary window has a special Edit (Done) button on step 00 that enables removal and re-arrangement of program steps.

    Touching the red minus removes that program step and adds a R/S at step 198. Touching and dragging a gripper pad moves that program step, re-inserting it when you have reached the destination and released the gripper.

Top

16.  Branching

We have used e . n n or the GO-29 extension e + n n n to help edit our programs. This form of GTO cannot be recored as part of program, but there is a variant which can: GTO followed by a label designator 0 - 9, or the indirect label ¤ (described in section Using the R₀ Register for Indirect Control).

Top

17.  Program Interruptions

There may be occasions when you want a program to halt during execution so that you can key in data, or to pause so that you can quickly view results before the program automatically resumes running. Other interruptions may be an overt keyboard action on your part, or even a runtime error such as divsion by zero or arithmetic overflow.

Top

18.  Subroutines

Often, a program contains a certain series of instructions that are executed several times throughout the program. When the same set of instructions occurs more than once in a program, it can be executed as a subroutine. A subroutine is selected by the ¦ operation, followed by a label designator 0 - 9, or the indirect label ¤ (described in section Using the R₀ Register for Indirect Control).

Top

19.  Controlling the R₀ Register

The R₀ register is special. Using R₀ in conjunction with other instructions, you can specify the storage register addresses of d and RCL, and the label addresses of GTO and GSB. By storing a negative number in R₀, you can even transfer execution to any step number of program memory. The « and ª instructions permit you to increment (add 1 to) or decrement (subtract 1 from) the current value in R₀. These are features that you will find extremely useful in controlling loops.

The ª (decrement R₀, skip if zero) instruction subtracts 1 from the contents of the R₀, then tests to see if the register is 0. (A number between +1 and -1 tests as zero.) If R₀ is greater than zero, execution continues with the next step of program memory. If R₀ is zero, the calculator skips one step of program memory before resuming execution. « works similarly except, of course, it increments R₀. For an example, see Manhattan.

Top

20.  Using the R₀ Register for Indirect Control

You have seen how the value in R₀ can be altered using the d, « and ª operations. But the value contained in R₀ can also be used to control other operations. The indirect function ¤, combined with certain other functions allows you to control those functions using the current number in R₀. ¤ uses the number stored in R₀ as an address.

  • Summary of Indirect Operations

    The indirect operations that can be controlled by R₀ are:

    • d ¤, when the number in R₀ is 0 through 29, stores the value that is in the displayed X register into the primary or indirect storage register addressed by the integer portion of the absolute value of the current number in R₀.
    • f ¤, when the number in R₀ is 0 through 29, recalls the contents of the primary or indirect storage register addressed by the current number in R₀.
    • d + ¤, d - ¤, d ? ¤, and d / ¤, when the number in R₀ is 0 through 29, perform storage register arithmetic upon the contents of the primary or indirect storage register addressed by the current number in R₀.
    • e ¤, when the number in R₀ is 0 or a positive 1 through 9, transfers execution of a running program sequentially downward through program memory to the next label specified by the current number in R₀.
    • e ¤, when the number in R₀ is a negative number between -1 and -198, transfers execution of a running program back in program memory the number of steps specified by the current negative number in R₀.
    • ¦ ¤, when the number in R₀ is 0 through 9, transfers execution of a running program to the subroutine specified by the current number in R₀. Like a normal subroutine, when a § is then encountered, execution transfers and continues with the step following the ¦ ¤.
    • ¦ ¤, when the number in R₀ is a negative number between -1 and -198, transfers execution of a running program back in program memory the number of steps specified by the current negative number in R₀. Execution from that point is like a normal subroutine, so if a § instruction is then encountered, execution is transferred once again, this time to the next instruction after the ¦ ¤.
    Note that you can use the ¤ key with the above functions with or without using the t prefix key. That is, pressing d ¤ is the same as pressing d t ¤.

    If the number in R₀ is outside the specified limits when the calculator attempts to execute one of these operations, the display will show Error. When using ¤, the calculator uses for an address only the integer portion of the number currently stored in R₀. Thus, 25.99998785 stored in R₀ retains its full value there, but when used as address ¤, it is read as 25 by the calculator.

  • Store and Recall

    You can use the number in R₀ to address the 30 storage registers that are in your calculator. When you press d ¤, the value that is in the display is stored in the storage register addressed by the number in R₀. f ¤ addresses the storage registers in a like manner, as do the storage register arithmetic operations d + ¤, d - ¤, d ? ¤, and d / ¤.

    When using d ¤, f ¤, or any of the storage register arithmetic operations utilizing the ¤ function, R₀ can contain numbers positive or negative from 0 through 29. The numbers 0 through 15 address primary storage registers R₀ - R₉ and R.₀ - R.₅, while numbers from 16 through 29 will address indirect storage registers R₍₁₆₎ - R₍₂₉₎.

    The only way to access an indirect storage register is via the ¤ function. Notice that with the number 0 in R₀, ¤ addresses R₀ itself!

  • Branches and Subroutines

    Like addressing storage registers, you can address routines, subroutines, even entire programs, indirectly through R₀. To address a routine using R₀, use the instruction e ¤. Execution is transferred sequentially downward to the © 0 - 9 that is addressed by the number in R₀.

    Subroutines can also be addressed and utilized with R₀. When ¦ ¤ is executed in a running program (or pressed from the keyboard), execution transfers to the specified © and executes the subroutine. When a § is then encountered, execution transfers back to the next instruction after the ¦ ¤ and resumes.

    Remember that the numbers in R₀ must be positive or zero (negative numbers cause rapid reverse branching, which we discuss next), and that the calculator looks at only the integer portion of the number in R₀ when using it for an address.

  • Rapid Reverse Branching

    Using e ¤ and ¦ ¤, with a negative number stored in R₀, you can actually branch to any step number of program memory. The calculator does not search for a label, but instead transfers execution backward the number of steps specified by the negative number in R₀. This is advantageous because the branch is faster than searching for a label, and because you can thus transfer execution even though all labels in the calculator have been used for other purposes.

    Rapid reverse branching can be specified with numbers from -1 through -198. If you attempt to execute an indirect control transfer when the magnitude of the integer portion of the negative number in R₀ is greater than 198, the calculator displays Error.

    Suppose the step pointer is at 2, then a rapid reverse branch (RRB) of:

    • -1 sets the step pointer to 1.
    • -2 sets the step pointer to 198.
    • -3 sets the step pointer to 197.
    • -197 sets the step pointer to 3.
    • -198 sets the step pointer once again to 2.

    For an example see Fibonacci Rapid Reverse Branching.

Top

Part III - GO-29 Programs

21.  Special 8* Opcodes

GO-29 supports six special opcodes not available on a real HP-29C. 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-29 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.

Top

22.  Naming and Documenting Your Program

A GO-29 program can exist by itself, a simple stream of step numbers and instructions, just like an HP-29C 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-29 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-go29.txt is used.

While the program is being read into memory GO-29 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:

e.g. Einstein Tensor-go29.html

The extension simply reminds humans of the documentation type, and reminds computers that the program is an editable file.

Top

23.  Storing and Organizing Programs

Note: For Apple TV this section is not applicable.

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-29 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 programs between GO-29 and Files.

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

Top

24.  Persist Program Registers

If you enable the Settings option Persist Program Registers, when a program is shared (saved) all the device register values are saved with it. Subsequently, when you import (open) that program device registers are restored to their previously saved values. This behavior is implemented via a special comment in the program's documentation of the form:

<Registers>stack,lastX,memory</Registers>

Inside the Registers element is a list of comma-separated double precision numbers: 4 for the stack X, Y, Z and T registers, 1 for the LAST X register, and n numbers for the memory registers, where n = 10 for GO-25 and n = 30 for GO-29.

Of course, nothing prevents you from editing the registers list manually; for instance, this list for GO-25

<Registers>-1,-2,-3,-4,-5,0,1,2,3,4,5,6,7,8,9</Registers>

presets the device registers to this:

If there are registers you do not want to preset then leave their value in the list empty; for instance this list initializes all registers excluding the 4 stack registers:

<Registers>,,,,-5,0,1,2,3,4,5,6,7,8,9</Registers>

Notes:

Top

25.  Importing Programs

Note: For Apple TV this section is not applicable, see Apple TV Particulars.

On an actual HP-29C programs are entered using the calculator keys. That method works with GO-29 as well, but it's often easier to edit your programs in another App and import them into GO-29 (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-29, 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-29 programs folder.

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

Preferably, 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, Surface Area Of Sphere-go29.txt) to GO-29, that program's name appears in the Import PRGM window.

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

For macOS, in PRGM mode, you can also import a program using the File menu item Open.

Top

26.  Sharing Programs

Note: For Apple TV this section is not applicable.

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 File Sharing to sync programs between your computer and GO-29.

Preferably, GO-29 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-29 uses the program name to identify the program. For example, use this option to export a program to the Files App.

For macOS, in PRGM mode, you can also export a program using the File menu item Save.

Top

27.  HP-29C Owner's Handbook Programs

Programs you may copy to the pasteboard and then import into GO-29 while in PRGM mode. Also, do check out the more complex and extensive repertoire of Sample Programs available from the Import PRGM menu.

  • Accountant-go29.txt
    ; Accountant-go29.txt
    ;
    ; Compute tax based on income. 17.5% nominal,
    ; 20% if you earn more than $10,000.
    ;
    ; Usage:
    ;   X = taxable amount
    ;   GSB 1
    ;
    01 15 13 01 ; LBL 1
    02 14 11 02 ; FIX 2
    03       33 ; EEX
    04       04 ; 4
    05       21 ; Swap xy
    06    14 51 ; x>y
    07    13 02 ; GTO 2
    08       01 ; 1
    09       07 ; 7
    10       73 ; .
    11       05 ; 5
    12    13 03 ; GTO 3
    13 15 13 02 ; LBL 2
    14       02 ; 2
    15       00 ; 0
    16 15 13 03 ; LBL 3
    17    15 21 ; %
    18    15 12 ; RTN
    19       74 ; R/S
                        
  • Dice-go29.txt
    ; Dice-go29.txt
    ;
    ; This program simulates the throwing
    ; of a pair of dice, pausing to
    ; display first the value of one die
    ; (an integer from 1 to 6) ; and then
    ; pausing to display the value of the
    ; second die (another integer from 1
    ; to 6). Finally the values of the two
    ; dice are added together to give the
    ; total value of the throw.
    ;
    ; The heart of the program is a
    ; pseudo random number generator that
    ; is executed first as a subroutine
    ; and then as part of the main
    ; program. When you key in a first
    ; number, called a seed and press
    ; GSB 1, the digit for the
    ; first die is generated and displayed
    ; using the LBL 2 routine as a
    ; subroutine. Then the digit for the
    ; second die is generated using the
    ; same routine as part of the main
    ; program. The program then uses the
    ; generated number as a new seed for
    ; successive throws of the dice.
    ;
    01 15 13 01 ; LBL 1
    02 14 11 02 ; FIX 2
    03    23 00 ; STO 0
    04 15 13 00 ; LBL 0
    05       00 ; 0
    06    23 01 ; STO 1
    07    12 02 ; GSB 2
    08 15 13 02 ; LBL 2
    09    24 00 ; RCL 0
    10       09 ; 9
    11       09 ; 9
    12       07 ; 7
    13       61 ; X
    14    15 62 ; FRAC
    15    23 00 ; STO 0
    16       06 ; 6
    17       61 ; X
    18       01 ; 1
    19       51 ; +
    20    14 62 ; INT
    21 14 11 00 ; FIX 0
    22    14 74 ; PAUSE
    23 23 51 01 ; STO + 1
    24    24 01 ; RCL 1
    25    15 12 ; RTN
    26    13 00 ; GTO 0
    27    15 12 ; RTN
    28       74 ; R/S
                        
  • DiceRND-go29.txt
    ; DiceRND-go29.txt
    ;
    ; Just like Dice-go29.txt, this program
    ; uses a pseudo random number generator
    ; to simulate throwing a pair of dice.
    ; Please read the program documenttion
    ; for the real Dice to learn how this
    ; program flows.
    ;
    ; The salient difference is DiceRND uses
    ; GO-29's builtin RND function rather
    ; than rolling its own, hence reducing
    ; the memory footprint.
    ;
    ; RND step 09 replaces Dice steps 9-17.
    ;
    01 15 13 01 ; LBL 1
    02 14 11 00 ; FIX 0
    03 15 13 00 ; LBL 0
    04       00 ; 0
    05    23 01 ; STO 1
    06    12 02 ; GSB 2
    07 15 13 02 ; LBL 2
    08       06 ; 6
    09       83 ; RND replaces Dice steps 09-17
    10       01 ; 1
    11       51 ; +
    12    14 62 ; INT
    13    14 74 ; PAUSE
    14 23 51 01 ; STO + 1
    15    24 01 ; RCL 1
    16    15 12 ; RTN
    17    13 00 ; GTO 0
    18    15 12 ; RTN
    19       74 ; R/S
                        
  • Fibonacci-go29.txt
    ; Fibonacci-go29.txt
    ;
    01 15 13 02 ; LBL 2
    02 14 11 02 ; FIX 2
    03       34 ; CLX
    04    23 00 ; STO 0
    05       01 ; 1
    06    23 01 ; STO 1
    07    14 74 ; PAUSE
    08 15 13 00 ; LBL 0
    09    24 00 ; RCL 0
    10    24 01 ; RCL 1
    11       51 ; +
    12    14 74 ; PAUSE
    13    23 00 ; STO 0
    14    24 00 ; RCL 0
    15    24 01 ; RCL 1
    16       51 ; +
    17    14 74 ; PAUSE
    18    23 01 ; STO 1
    19    13 00 ; GTO 0
    20    15 12 ; RTN
    21       74 ; R/S
                        
  • Fibonacci Rapid Reverse Branching-go29.txt
    ; Fibonacci Rapid Reverse Branching-go29.txt
    ;
    ; Usage:
    ;   GSB 1
    ;
    01    23 01 ; STO 1
    02    24 01 ; RCL 1
    03    24 02 ; RCL 2
    04       51 ; +
    05    14 74 ; PAUSE
    06    23 02 ; STO 2
    07    13 22 ; GTO i
    08    15 12 ; RTN
    09       74 ; R/S
    10       74 ; R/S
    11       74 ; R/S
    12       74 ; R/S
    13       74 ; R/S
    14       74 ; R/S
    15       74 ; R/S
    16       74 ; R/S
    17       74 ; R/S
    18       74 ; R/S
    19       74 ; R/S
    20       74 ; R/S
    21       74 ; R/S
    22       74 ; R/S
    23       74 ; R/S
    24       74 ; R/S
    25       74 ; R/S
    26       74 ; R/S
    27       74 ; R/S
    28       74 ; R/S
    29       74 ; R/S
    30       74 ; R/S
    31       74 ; R/S
    32       74 ; R/S
    33       74 ; R/S
    34       74 ; R/S
    35       74 ; R/S
    36       74 ; R/S
    37       74 ; R/S
    38       74 ; R/S
    39       74 ; R/S
    40       74 ; R/S
    41       74 ; R/S
    42       74 ; R/S
    43       74 ; R/S
    44       74 ; R/S
    45       74 ; R/S
    46       74 ; R/S
    47       74 ; R/S
    48       74 ; R/S
    49       74 ; R/S
    50       74 ; R/S
    51       74 ; R/S
    52       74 ; R/S
    53       74 ; R/S
    54       74 ; R/S
    55       74 ; R/S
    56       74 ; R/S
    57       74 ; R/S
    58       74 ; R/S
    59       74 ; R/S
    60       74 ; R/S
    61       74 ; R/S
    62       74 ; R/S
    63       74 ; R/S
    64       74 ; R/S
    65       74 ; R/S
    66       74 ; R/S
    67       74 ; R/S
    68       74 ; R/S
    69       74 ; R/S
    70       74 ; R/S
    71       74 ; R/S
    72       74 ; R/S
    73       74 ; R/S
    74       74 ; R/S
    75       74 ; R/S
    76       74 ; R/S
    77       74 ; R/S
    78       74 ; R/S
    79       74 ; R/S
    80       74 ; R/S
    81       74 ; R/S
    82       74 ; R/S
    83       74 ; R/S
    84       74 ; R/S
    85       74 ; R/S
    86       74 ; R/S
    87       74 ; R/S
    88       74 ; R/S
    89       74 ; R/S
    90       74 ; R/S
    91       74 ; R/S
    92       74 ; R/S
    93       74 ; R/S
    94       74 ; R/S
    95       74 ; R/S
    96       74 ; R/S
    97       74 ; R/S
    98       74 ; R/S
    99       74 ; R/S
    100       74 ; R/S
    101       74 ; R/S
    102       74 ; R/S
    103       74 ; R/S
    104       74 ; R/S
    105       74 ; R/S
    106       74 ; R/S
    107       74 ; R/S
    108       74 ; R/S
    109       74 ; R/S
    110       74 ; R/S
    111       74 ; R/S
    112       74 ; R/S
    113       74 ; R/S
    114       74 ; R/S
    115       74 ; R/S
    116       74 ; R/S
    117       74 ; R/S
    118       74 ; R/S
    119       74 ; R/S
    120       74 ; R/S
    121       74 ; R/S
    122       74 ; R/S
    123       74 ; R/S
    124       74 ; R/S
    125       74 ; R/S
    126       74 ; R/S
    127       74 ; R/S
    128       74 ; R/S
    129       74 ; R/S
    130       74 ; R/S
    131       74 ; R/S
    132       74 ; R/S
    133       74 ; R/S
    134       74 ; R/S
    135       74 ; R/S
    136       74 ; R/S
    137       74 ; R/S
    138       74 ; R/S
    139       74 ; R/S
    140       74 ; R/S
    141       74 ; R/S
    142       74 ; R/S
    143       74 ; R/S
    144       74 ; R/S
    145       74 ; R/S
    146       74 ; R/S
    147       74 ; R/S
    148       74 ; R/S
    149       74 ; R/S
    150       74 ; R/S
    151       74 ; R/S
    152       74 ; R/S
    153       74 ; R/S
    154       74 ; R/S
    155       74 ; R/S
    156       74 ; R/S
    157       74 ; R/S
    158       74 ; R/S
    159       74 ; R/S
    160       74 ; R/S
    161       74 ; R/S
    162       74 ; R/S
    163       74 ; R/S
    164       74 ; R/S
    165       74 ; R/S
    166       74 ; R/S
    167       74 ; R/S
    168       74 ; R/S
    169       74 ; R/S
    170       74 ; R/S
    171       74 ; R/S
    172       74 ; R/S
    173       74 ; R/S
    174       74 ; R/S
    175       74 ; R/S
    176       74 ; R/S
    177       74 ; R/S
    178       74 ; R/S
    179       74 ; R/S
    180       74 ; R/S
    181       74 ; R/S
    182       74 ; R/S
    183       74 ; R/S
    184       74 ; R/S
    185 15 13 01 ; LBL 1
    186       01 ; 1
    187       00 ; 0
    188       32 ; CHS
    189    23 00 ; STO 0
    190       00 ; 0
    191    23 01 ; STO 1
    192       01 ; 1
    193    23 02 ; STO 2
    194    14 74 ; PAUSE
    195    24 01 ; RCL 1
    196    24 02 ; RCL 2
    197       51 ; +
    198    14 74 ; PAUSE
                        
  • Infinite Integer SQRT-go29.txt
    ; Infinite Integer SQRT-go29.txt
    ;
    ; Repeatively compute, display and pause,
    ; the square root of integers from 1 ...
    ;
    ; BEGIN : R/S or GSB 1
    ; STOP : R/S
    ;
    01 15 13 01 ; LBL 1
    02       00 ; 0
    03    23 01 ; STO 1
    04 15 13 04 ; LBL 4
    05       01 ; 1
    06 23 51 01 ; STO + 1
    07    24 01 ; RCL 1
    08    14 74 ; PAUSE
    09    14 63 ; √
    10    14 74 ; PAUSE
    11    13 04 ; GTO 04
    12    15 12 ; RTN
    13       74 ; R/S
                        
  • Manhattan-go29.txt
    ; Manhattan-go29.txt
    ;
    ; 1977 : 353 years
    ;            $724,492,365.57
    ;            4-5 minutes on the original HP-29C.
    ;            GO-29 does the job in zero seconds :)
    ; Usage:
    ;   353 GSB 0
    ;   GSB 1
    ;
    01 15 13 00 ; LBL 0
    02 14 11 02 ; FIX 2
    03    23 00 ; STO 0
    04       01 ; 1
    05       06 ; 6
    06       02 ; 2
    07       04 ; 4
    08    23 01 ; STO 1
    09       02 ; 2
    10       04 ; 4
    11    23 02 ; STO 2
    12    15 12 ; RTN
    13 15 13 01 ; LBL 1
    14       82 ; SEC
    15    23 09 ; STO 9
    16    24 02 ; RCL 2
    17       05 ; 5
    18    15 21 ; %
    19 23 51 02 ; STO + 2
    20       01 ; 1
    21 23 51 01 ; STO + 1
    22    15 23 ; DSZ
    23    13 01 ; GTO 1
    24       82 ; SEC
    25    23 08 ; STO 8
    26    24 01 ; RCL 1
    27 14 11 00 ; FIX 0
    28    14 74 ; PAUSE
    29    24 02 ; RCL 2
    30 14 11 02 ; FIX 2
    31    14 74 ; PAUSE
    32    24 08 ; RCL 8
    33    24 09 ; RCL 9
    34       41 ; -
    35    15 12 ; RTN
    36       74 ; R/S
                        
  • Pythagorean Theorem-go29.txt
    ; Pythagorean Theorem-go29.txt
    ;
    ; Computes the hypotenuse of any right
    ; triangle, given the other two sides.
    ; The formula used is:
    ;
    ; c = √( a² + b² )
    ;
    ; Usage:
    ;       Y = length of one side
    ;       X = length of other side
    ;       GSB 9
    ;
    01 15 13 09 ; LBL 9
    02    15 63 ; x^2
    03       21 ; Swap xy
    04    15 63 ; x^2
    05       51 ; +
    06    14 63 ; √
    07    15 12 ; RTN
    08       74 ; R/S
                        
  • Quadratic Roots-go29.txt
    ; Quadratic Roots-go29.txt
    ;
    ; Find the roots of a quadratic equation
    ; ax² + bx + c = 0
    ;
    ; Usage for 3x² + 2x - 1:
    ;   3 STO 1
    ;   2 STO 2
    ;   1 CHS STO 3
    ;   GSB 5 ; compute root 1  0.33
    ;   GSB 6 ; compute root 2 -1.00
    ;
    01 15 13 05 ; LBL 5
    02 14 11 02 ; FIX 2
    03    12 08 ; GSB 8
    04       51 ; +
    05    24 01 ; RCL 1
    06       02 ; 2
    07       61 ; X
    08       71 ; ÷
    09    15 12 ; RTN
    10 15 13 06 ; LBL 6
    11    12 08 ; GSB 8
    12       41 ; -
    13    24 01 ; RCL 1
    14       02 ; 2
    15       61 ; X
    16       71 ; ÷
    17    15 12 ; RTN
    18 15 13 08 ; LBL 8
    19    24 02 ; RCL 2
    20       32 ; CHS
    21    24 02 ; RCL 2
    22    15 63 ; x^2
    23    24 01 ; RCL 1
    24    24 03 ; RCL 3
    25       61 ; X
    26       04 ; 4
    27       61 ; X
    28       41 ; -
    29    14 63 ; √
    30    15 12 ; RTN
    31       74 ; R/S
                        
  • Recursive Test Of Subroutine Limits-go29.html Recursive Test Of Subroutine Limits-go29.html

    ¢ Sample Program
    Recursive Test Of Subroutine Limits

    Author

    GO-29, 2019.06.22
    support@BigCatOS.com

    Theory
    In GO-29's documentation, Part II - Programmatic Usage, the section Subroutines describes the nature and limits of the calculator's ¦ and § mechanism. In particular we learned that on an actual HP-29C, subroutine calls could be nested to a depth of three, although GO-29 extends that number. If the new, larger, subroutime call depth `n_29` had not been documented, how could you determine it?

    With the aid of this diagram we discovered that if you wrote and called enough nested subroutines the LIFO § queue would lose its earliest entries and that the program would terminate prematurely before returning to the Main Program: As it happens, we can couple this observation of early program termination along with a recursive subroutine to discover `n_29`, GO-29's subroutine call depth, or § queue size.

    Recursion is pretty opaque until you wrap your head around it, then it's amazingly awesome - search the web and read up on the topic! A recursive subroutine typically contains in its definition instructions that do stuff, then a call to itself to do similar stuff based upon what it just did. Makes perfect sense, right?

    Study this simple example of a recursive subroutine, named © 9, which counts-up and displays whatever is stored in R₈. It then calls itself and displays R₈ + 1, etcetera. This will be the basis of our limit-testing recursive subroutine:

    © 9
    1
    d + 8
    f 8
    U
    ¦ 9
    §

    The big problem here (ignoring the fact that R₈ hasn't been initialized) is that the count-up goes on forever, there is no test to exit the virtual loop! If you manually key GSB 9, the subroutine calls itself an infinite number of times. A recursive subroutine always needs a way out, a testable condition that can activate a clean exit from the subroutine. Here, two things should be obvious:

    1. The § from subroutine can never be executed.
    2. Had R₈ been initialized to zero prior to invoking © 9 for the first time, incrementing its value before every ¦ would indicate the current ¦ nesting level. Similarly, decrementing R₈ after every ¦ would account for the § instructions, and would keep the subroutine nesting level value in balance.

      Corollary: We assume that nesting level 0 represents the Main Program.

    Let's examine these two observations in greater detail. For this experiment we are probing the calculator to find `n_29` by repeatedly making nested subroutine calls until we exceed the size of the call depth queue. The essential idea is to count-up as we ¦ deeper and create LIFO queue entries, then reverse course and count-down as we § and consume LIFO queue entries. If the call queue becomes truncated then there is no longer a one-to-one correspondence between ¦s and §s (too many ¦s and not enough § information), thus the count-down will stop too soon, and the final subroutine nesting level in R₈ will not be zero.

    To do this we must add two small sections of code to subroutine © 9, the first to stop the recursion, and the second to count-down R₈. We stop the recursion by only allowing ¦s to a certain depth, the proposed call back depth, a number that we'll enter from the keyboard and store in R₉. Once the subroutine nesting level reaches this value we'll explicity return, which breaks recursion and initiates the §s that attempt to get back to the Main Program. And counting-down is easy enough, it's the opposite of counting-up!

    © 9
    1
    d + 8
    f 8
    U
    f 9
    R
    §
    ¦ 9
    §
    © 9
    1
    d + 8
    f 8
    U
    f 9
    R
    §
    ¦ 9
    1
    d - 8
    f 8
    U
    §
    The listing on the left shows the additional 3 steps required to stop recursion once the proposed ¦ call limit has been reached.

    The listing on the right shows the additional 4 steps required to count-down and display the current nesting level as §s are processed.

    The R₈ rule says always increment before ¦ 9, always decrement afterwards.

    And that is the completed recursive subroutine © 9, now it's time to visit the Main Program, consisting of two entry points, © 0 the initializer, and © 1 the recursive subroutine controller code. Note the use of the two 8* extended opcodes, |2 to signal an input error, and |1 to indicate succesful return to the Main Program. Theses opcodes are explained in GO-29's documentation, Part III - GO-29 Programs, in the section Special 8* Opcodes.

    © 0
    Q 0
    n
    d 9
    °
    e 1
    |2
    §
    © 1
    0
    d 8
    U
    ¦ 9
    1
    d - 8
    f 8
    U
    |1
    §
    © 0 stores the proposed subroutine nesting limit in R₉, ensures the value is sane, then jumps to © 1.

    © 1 controls the recursive subroutine © 9. Before initiating the recursion the nesting level is "incremented" to zero, and after the subroutine returns R₈ is decremented to account for the last §.

    The R₈ rule says always increment before ¦ 9, always decrement afterwards.

    Instructions
    1. Enter the proposed subroutine call depth to probe, `n_p` >= 1.
    2. Press GSB 0.
    3. The program ¦s and counts-up from 0 until the proposed call depth value is reached.
    4. The program §s and counts-down until either:
      • the program ends with a non-zero value `n_f` in the display, signifying it has terminated early without reaching the Main Program,

        `n_29=n_p-n_f`

      • × the display shows 0 and the Main Program is reached. The value of `n_29` cannot be determined, go to step 1 and probe again using a larger value of `n_p`.
    Program Listing
        01 15 13 00 ; LBL 0
        02 14 11 00 ; FIX 0
        03    14 62 ; INT
        04    23 09 ; STO 9
        05    15 51 ; x>0
        06    13 01 ; GTO 1
        07    15 81 ; BEL2
        08    15 12 ; RTN
        09 15 13 01 ; LBL 1
        10       00 ; 0
        11    23 08 ; STO 8
        12    14 74 ; PAUSE
        13    12 09 ; GSB 9
        14       01 ; 1
        15 23 41 08 ; STO - 8
        16    24 08 ; RCL 8
        17    14 74 ; PAUSE
        18    14 81 ; BEL1
        19    15 12 ; RTN
        20 15 13 09 ; LBL 9
        21       01 ; 1
        22 23 51 08 ; STO + 8
        23    24 08 ; RCL 8
        24    14 74 ; PAUSE
        25    24 09 ; RCL 9
        26    14 71 ; x=y
        27    15 12 ; RTN
        28    12 09 ; GSB 9
        29       01 ; 1
        30 23 41 08 ; STO - 8
        31    24 08 ; RCL 8
        32    14 74 ; PAUSE
        33    15 12 ; RTN
    

     

  • Surface Area Of Sphere-go29.txt
    ; Surface Area Of Sphere-go29.txt
    ;
    ; Compute the surface area of any
    ; sphere using the formula:
    ;
    ; A = π d²
    ;
    ; ENTRY:
    ;   X = diameter of sphere.
    ;   GSB 0
    ;
    ; EXIT:
    ;   X = surface area of sphere.
    ;
    01 15 13 00 ; LBL 0
    02    15 63 ; x²
    03    15 73 ; π
    04       61 ; X
    05    15 12 ; RTN
                        

    Top

  • Epilogue

    28.  Improper Mathematical Operations

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

    The following are improper operations:

    Top

    29.  Settings

    Settings are built into the calculator, except Apple TV where they are part of the tvOS Settings App. Available Settings options are device dependant - here are their default values:

    Top

    30.  Gesture Summary

    Reminder: There are no gestures on Apple TV thus this section is not applicable, see the section Apple TV Particulars for details. On macOS taps/touches are pointer clicks, pans/swipes/scrolls are pointer drags.

    Top

    31.  Macintosh Particulars

    All calculator capabilites are supported on macOS.

    Top

    32.  Apple TV Particulars

    Most calculator capabilites are supported on Apple TV, with these notable exceptions:

    Enjoy your trip in the WABAC Machine!

    Top

    33.  Keyboard Usage

    GO-21, GO-25 and GO-29 all provide support for hardware keyboards. You can enter digits and a decimal point into the X register by simply typing those characters, even from a numeric keypad. Use delete instead of a flick left in the display to delete the last character typed, and return instead of z to push the completed number onto the stack.

    To enter an exponent of 10 for a floating point number type e instead of c. To change the sign of a mantissa or exponent type c instead of x. To perform any of the four basic arithmetic operations - + ? / on these numbers type - + * /, respectively.

    So the keyboard works rather well for simple calculator operations, but it's non-trivial to do more because there are no familiar mappings between keyboard and calculator keys. However, all 30 keys and the 2 slide switches of these calculators have a keyboard equivalent, with 27 keys common to all devices and 6 keys specific to an individual model:



    27 Common

    6 Specific

    GO-21

    orange    t

        green

    GO-25

    orange    t

    r  violet (except ¦)

    GO-29

    orange    t

    r  violet (except w)

    Mappings by color (see below)


    Additionally,

    Key(s)

    Action

    esc

    Menu

    return

    Select

          

    Focus

      

    Pan/Scroll

    is the control key



    Top

    34GO-29 versus HP-29C Differences

    Top

    35.  Acknowledgements

    Top

    36.  What's New?

    OS Version Compatibilty
       iOS 16.0 -26.5.1
       iPadOS16.0 -26.5.1
       tvOS 16.0 -26.5.1
       macOS 13.0-26.5.1
       visionOS 1.0-26.5.1

    26.5.1 - 2026.06.11

    Top

    37.  Index
            
            
    O, 9
    I, 9
    %, 9
    m, 9
    D, 9
    g, 9
    H, 9
    o, 9
    $, 9
    T, 9
    G, 9
    @, 9
    Acknowledgements, 35
    Apple TV Particulars, 32
    ATV Focus Navigation, 32
    ATV LED Display Focus Actions, 32
    Automatic Display Switching, 5
    Auxiliary Information Views, 8
    Branches and Subroutines, 20
    Branching, 16
    w, 13
    Calculator Overflow and Underflow, 5
    Capabilities At A Glance, 1
    x, 9
    CLEAR Z, 9
    CLEAR X, 4
    CLEAR C, 7
    CLEAR ¥, 9
    v, 6
    Controlling the LED Display, 5
    Controlling the R₀ Register, 19
    Copy, 6
    k, 9
    L, 9
    P, 9
    ¬, 13
    Display Control Keys: FIX, SCI, ENG, 5
    ª, 19
    F, 9
    c, 6
    E, 5
    Engineering notation, 5
    z, 6
    Error Display, 5
    r, 2
    Q, 5
    Fixed Point notation, 5
    M, 9
    Function Keys, 9
    Functions and the Stack, 9
    t, 2
    Gesture Summary, 30
    GO-29 versus HP-29C Differences, 34
    }, 9
    ¦, 13
    e, 13
    HP-29C Owner's Handbook Programs, 27
    ¤, 20
    Import PRGM, 7
    Importing Programs, 25
    Improper Mathematical Operations, 28
    n, 9
    Introduction, 2
    «, 19
    Keyboard Usage, 33
    Keycodes, 12
    Keying In Exponents of Ten, 5
    Y, 9
    ©, 14
    LBLs and Step 00, 14
    LED Display PRGM Mode, 5
    LED Display RUN Mode, 5
    u, 9
    i, 9
    Logarithm and Exponential Functions, 9
    Low Power Display, 5
    Mac Menu Actions, 31
    Mac Window Mechanics, 31
    Macintosh Particulars, 31
    Manipulating Stack Contents, 9
    Manipulating Storage Registers, 7
    Manual Problem Solving, 3
    Naming and Documenting Your Program, 22
    OFF, 2
    ON, 2
    Paper Tape, 6
    Paste, 6
    U, 13
    Persist Program Registers, 24
    Pi, Using, 9
    Polar/Rectangular Coordinate Conversion, 9
    prefix key, r, 2
    prefix key, t, 2
    PRGM, 2
    Program Editing, 15
    Program Execution, 14
    Program Interruptions, 17
    Program Memory, 11
    Programmed Problem Solving, 4
    Programming Keys, 13
    R₀, 19, 20
    {, 9
    Rapid Reverse Branching, 20
    f, 7
    Reciprocals, 9
    Recursive Test Of Subroutine Limits-go29.html, 18
    ,, 13
    §, 13
    RUN, 2
    s, 6
    S, 9
    W, 5
    Scientific notation, 5
    Settings, 29
    Share PRGM, 7
    Sharing Programs, 26
    j, 9
    K, 9
    Special 8* Opcodes, 21
    Square Roots, 9
    q, 13
    Stack Operations, 6
    d, 7
    Storage Register Arithmetic, 7
    Storage Registers, 7
    Store and Recall, 20
    Storing and Organizing Programs, 23
    Subroutine Limits, 18
    Subroutine Overview, 18
    Subroutine Usage, 18
    Subroutines, 18
    Summary of Indirect Operations, 20
    l, 9
    B, 9
    Three Modes Of Operation, 10
    Using the R₀ Register for Indirect Control, 20
    What's New?, 36
    A, 9
    N, 13
    b, 13
    ¯, 13
    [, 13
    #, 13
    R, 13
    °, 13
    ®, 13
    !, 9
    a, 6
    p, 9

    Top



    Copyright (©) 2019 - 2026 BigCatOS. All rights reserved.   |    Contact