Post Reply 
Going forward to go backwards—65 program navigation
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 

Messages In This Thread
RE: Going forward to go backwards—65 program navigation - Dave Britten - 11-01-2021 01:35 AM

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