Post Reply 
Going forward to go backwards—65 program navigation
10-31-2021, 06:12 PM
Post: #1
Going forward to go backwards—65 program navigation
Hi all.

It’s a puzzling thing not to have a backstep function on the 65.

So, how was it managed to step in reverse through program memory?

I could see GTO label, switch to W/PRGM mode. But how was it possible to backstep from that point (or anywhere for that matter)?
Find all posts by this user
Quote this message in a reply
10-31-2021, 06:57 PM
Post: #2
RE: Going forward to go backwards—65 program navigation
It was not.

First handheld programmable. Couple of "Oops, wish we had thought of that" moments.

Program step numbers displayed.
Backstep

etc.
Find all posts by this user
Quote this message in a reply
10-31-2021, 11:24 PM
Post: #3
RE: Going forward to go backwards—65 program navigation
There was probably a budget allowance for the model and I imagine the code that was written for the 65 was as compact as possible so that it would fit in some allowed amount of expensive ROM space.

Every program word was used in the 12 pages of ROM in the 65, which in itself is amazing. (A page being 256 words). Who would strive to do that these days?

Adding these features would have had to increase the ROM page count to 16, assuming that 4 pages of ROM per IC package were available. Great if you want to add more functions, but there has to be a limit and large amounts of vacant ROM space would be a no no.

Space for an extra ROM chip on the CPU board would also be a problem.

cheers

Tony
Find all posts by this user
Quote this message in a reply
10-31-2021, 11:32 PM
Post: #4
RE: Going forward to go backwards—65 program navigation
Another example of the quote from William C Wickes, “Life is short and ROM is full”.
Find all posts by this user
Quote this message in a reply
11-01-2021, 01:00 AM
Post: #5
RE: Going forward to go backwards—65 program navigation
Okay. Yes. I got that.

Back to my original question though. Was there an easy way to get to the step you wanted? Since BST wasn’t implemented, what would make it easy to get to the program step you wanted?
Find all posts by this user
Quote this message in a reply
11-01-2021, 01:31 AM
Post: #6
RE: Going forward to go backwards—65 program navigation
The 65's editing functions are explained starting on page 64 of the owners manual.

These are pretty basic in that you really only have the option of using SST to get to a particular step.

You can use GTO to jump to any valid label in memory, or from RUN mode, RTN to get to top of memory.

Of course, you can use a combination of GTO (Label) followed by SST's provided that you know the layout of the program.

cheers

Tony
Find all posts by this user
Quote this message in a reply
11-01-2021, 01:35 AM
Post: #7
RE: Going forward to go backwards—65 program navigation
(11-01-2021 01:00 AM)Matt Agajanian Wrote:  Okay. Yes. I got that.

Back to my original question though. Was there an easy way to get to the step you wanted? Since BST wasn’t implemented, what would make it easy to get to the program step you wanted?

You have to GTO someplace in memory (or RTN to the beginning) and SST to where you want to be. I almost always write 65 programs on paper or in a spreadsheet before entering them into the calculator because of this.

The important thing to understand about the 65 is that it doesn't use RAM for program storage. Oh sure, it has memory, but it's definitely not random access. Rather, the program steps are stored in a large shift register - I think a little over 600 bits. Think of it like the baggage carousel at the airport. As the data continually circulates in the shift register, the calculator can only read or manipulate a little bit at a time as it passes by briefly before making another trip around the shift register. A y^x instruction looks the same as any other y^x instruction as they go around and around, and the calculator has no idea if its looking at one at the beginning of a program or near the end.. Thus it's not a matter of step numbers not being displayed, there simply are no step numbers in the 65's architecture.

How does the calculator keep its place in a program then? By moving a couple of dummy steps called program pointers. There's one pointer for the main routine, and a secondary pointer for tracking a single level of subroutine call. With certain clever manipulation, you can actually see the program pointer sitting in memory as you SST through the program in write mode. There's also a special "instruction" that signifies the beginning of the program. This is that "00 00" instruction that you see indicating "top of memory". That's an actual step that gets put into the shift register at power on so the 65 can have something to designate as the starting step (i.e. where RTN goes).

So in light of this design, you can see why it's not a trivial matter to back up a step, or jump to a specific step number (remember, the calculator has no concept of step numbers). The shift register only circulates one way! There would certainly be a lot more involved than just decrementing a program pointer and moving backward one step in RAM, and evidently nobody thought it was worth taking up that much ROM space to do it. Smile

Despite its minor faults though the 65 is a damn good machine for being anybody's first attempt at a pocket programmable calculator. This particular quirk of its design didn't prevent it from being extremely powerful and useful, and having tons of excellent programs written for it.
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)