Post Reply 
TI 58/59 ROM modules and OP instructions
12-30-2017, 07:43 AM
Post: #1
TI 58/59 ROM modules and OP instructions
I have been looking at some programs in the TI58/59 ML-01 master library module, and there is a detail that makes makes me wonder: There are numerous places where the OP 2x and OP 3x instructions that increment / decrement a data register would have made sense, but instead a more elaborate command sequence has been used, like x<>t 1 INV SUM 01 x<>t instead of a simple OP 31. In a similar way the sign function OP 10 is avoided, instead this is accomplished by dividing x by its absolute value (which also requires special care for x=0).

So it looks like the OP commands are deliberately avoided in TI's ROM modules. But why? Is there a certain technical reason for this?

Dieter
Find all posts by this user
Quote this message in a reply
12-30-2017, 02:51 PM
Post: #2
RE: TI 58/59 ROM modules and OP instructions
(12-30-2017 07:43 AM)Dieter Wrote:  So it looks like the OP commands are deliberately avoided in TI's ROM modules. But why? Is there a certain technical reason for this?

This is a good question, thanks for posting the examples Dieter. I ran across this last year when I got a TI-58C with a couple ROM modules and looked at some of the library functions.

Not having used a 58/59 back in the day, I had no background on the OP commands, and guessed they are not used in programs as they are much slower than the equivalent commands used to replace them (recalling how obsessed with program speed everyone was).

Or possibly programs in ROM could not access the OP commands, due to some internal architectural limitation? Anyhow, I look forward to reading answers here.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
12-30-2017, 03:34 PM
Post: #3
RE: TI 58/59 ROM modules and OP instructions
I don't know, but if there is an answer, it should lie in the PDF copies of the TI PPC Notes through their 14 year history.

What? You don't have these PDF copies? They can be found here:

TI PPC Notes


As another guess, sometimes factory software has to be written very early in the development life of the calculator (which is one reason it is so often so bad!)... perhaps the development finalization of the OP code structures wasn't early enough to be reliably used in the library modules?

I don't know.
Find all posts by this user
Quote this message in a reply
12-30-2017, 03:42 PM
Post: #4
RE: TI 58/59 ROM modules and OP instructions
Hi Dieter,
I noticed the same when I investigated the linear algebra code.
My guess is that this code originates from an older model that lacked the OP codes.
Cheers, Werner
Find all posts by this user
Quote this message in a reply
12-30-2017, 04:17 PM
Post: #5
RE: TI 58/59 ROM modules and OP instructions
(12-30-2017 03:34 PM)Gene Wrote:  As another guess, sometimes factory software has to be written very early in the development life of the calculator (which is one reason it is so often so bad!)... perhaps the development finalization of the OP code structures wasn't early enough to be reliably used in the library modules?

I hadn't thought of this but it makes sense. To keep the mfg. cost of the ROM modules low, TI would have used true ROM (vs. OTP, EEPROM or EPROM) which had a lead time of many weeks to months, so it's possible that in order to have them available to ship simultaneously with the machines (some even in the box) they were created using core programming language commands, while the OP commands were being completed/tested in parallel. This was exactly the case with some of the Wizard products even 10 years later.

If anyone knows which ROM modules were released well after product launch, it may be revealing to see if these late ROMs used the OP commands in their code.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
12-30-2017, 04:22 PM
Post: #6
RE: TI 58/59 ROM modules and OP instructions
Pool water was late. So was Math Utilities.
Find all posts by this user
Quote this message in a reply
12-31-2017, 02:00 PM
Post: #7
RE: TI 58/59 ROM modules and OP instructions
I might be confusing this with a different calculator, or subconsciously fabricating details entirely, but I think I remember something about the internal ROM chips being a different speed than module ROMs. Does it have something to do with that in conjunction with the use of fast mode, or am I just muttering crazy things?
Visit this user's website Find all posts by this user
Quote this message in a reply
12-31-2017, 05:17 PM
Post: #8
RE: TI 58/59 ROM modules and OP instructions
(12-30-2017 03:34 PM)Gene Wrote:  I don't know, but if there is an answer, it should lie in the PDF copies of the TI PPC Notes through their 14 year history.

What? You don't have these PDF copies? They can be found here:

TI PPC Notes

Indeed I found something that may be related to the original question. The following is a quote from Volume 4 No. 1 (January 1979):

Quote:A CROM Op Ind
Dave Leising (890) has found an ML-19 point (SBR 172) to execute an effective Op*53, making it possible to have any of the 40 Op functions executed in the CROM.

Lines 172 and 173 of ML-19 hold the codes 84 and 53 which will be executed as OP IND 53. The quote seems to imply that OP instructions usually can not be used in "CROMs" (i.e. TI ROM modules). So this seems to be a known fact as of January 1979. Let's see if some more info can be found in earlier issues.

Dieter
Find all posts by this user
Quote this message in a reply
12-31-2017, 05:46 PM
Post: #9
RE: TI 58/59 ROM modules and OP instructions
(12-31-2017 02:00 PM)Dave Britten Wrote:  I might be confusing this with a different calculator, or subconsciously fabricating details entirely, but I think I remember something about the internal ROM chips being a different speed than module ROMs. Does it have something to do with that in conjunction with the use of fast mode, or am I just muttering crazy things?

If I remember correctly, TI-58/59 code in RAM always has to perform some checks and tests by the OS which are not required when the code is run from ROM. This may speed up program execution by a factor of 2, as the following quote from 52-notes Volume 3 No.12 (December 1978) suggests. Here with regard to program 06 of the Math Utilities ROM:

Quote:MU-06 is the fast sorter (V3N8p6) which orders one sequence of 99 random numbers in 9¼ minutes, but which takes 19½ minutes for the same code executed in RAM.

But I do not see in which way this may be related to the question why OP-commands obviously are not used in TI ROM modules.

Dieter
Find all posts by this user
Quote this message in a reply
12-31-2017, 06:10 PM
Post: #10
RE: TI 58/59 ROM modules and OP instructions
I don't suspect it is related to the OP instructions in CROMs.

User ram programs converted a regular number in the display to an internal numeric format (an NNN?) before executing each program instruction and then BACK to the regular numeric display. Very time consuming.

CROMs did not do this as they were not normally interruptible by R/S while running...as I recall.
Find all posts by this user
Quote this message in a reply
12-31-2017, 07:28 PM
Post: #11
RE: TI 58/59 ROM modules and OP instructions
Okay, that makes sense, then. I think there's some other calculator/computer that has different chip speeds between RAM/ROM/external ROM, and branching between them adds some complexity. Can't recall what other device I'm thinking of, though.
Visit this user's website Find all posts by this user
Quote this message in a reply
12-31-2017, 07:37 PM
Post: #12
RE: TI 58/59 ROM modules and OP instructions
(12-30-2017 02:51 PM)rprosperi Wrote:  Not having used a 58/59 back in the day, I had no background on the OP commands, and guessed they are not used in programs as they are much slower than the equivalent commands used to replace them (recalling how obsessed with program speed everyone was).

It's exactly the other way round: OP 20...39 are faster than 1 (INV) SUM nn, maybe even plus two leading/trailing x<>t commands to preserve the number in the display. I just found a reference in a 52-notes issue that recommends these OP commands because of their speed and other benefits.

However...

(12-30-2017 02:51 PM)rprosperi Wrote:  Or possibly programs in ROM could not access the OP commands, due to some internal architectural limitation?

That's exactly what I think. Either it is this, or maybe the other possible explanation that assumes the ROM programs have been written before the final calculator design including the OP commands was fixed.

Dieter
Find all posts by this user
Quote this message in a reply
01-01-2018, 02:01 PM
Post: #13
RE: TI 58/59 ROM modules and OP instructions
Or people who wrote the programs were not aware of OPs.

My site http://www.emmella.fr
Find all posts by this user
Quote this message in a reply
01-01-2018, 03:16 PM
Post: #14
RE: TI 58/59 ROM modules and OP instructions
(12-31-2017 07:37 PM)Dieter Wrote:  That's exactly what I think. Either it is this, or maybe the other possible explanation that assumes the ROM programs have been written before the final calculator design including the OP commands was fixed.

The Math Utility CROM (#10) was released in 1979, well after the introduction of the TI-59, according to SR-52 Notes V3N8p5,6 :
Quote: Many of the programs in this new CROM do indeed reflect
better programming quality than has gone into earlier ones
So it may be worth checking if it contains any OP instruction.
Find all posts by this user
Quote this message in a reply
01-01-2018, 05:25 PM
Post: #15
RE: TI 58/59 ROM modules and OP instructions
Hello!

(12-30-2017 07:43 AM)Dieter Wrote:  So it looks like the OP commands are deliberately avoided in TI's ROM modules.

I do not know if and why it was generally avoided to use OP commands in solid state software modules, but there are exceptions: The Aviation Module for example has routines (like "AV-04 Long Range Flight Plan") that will produce labelled printouts on an attached printer. This is only possible using OP instructions.

Regards
Max
Find all posts by this user
Quote this message in a reply
01-01-2018, 07:24 PM
Post: #16
RE: TI 58/59 ROM modules and OP instructions
(01-01-2018 05:25 PM)Maximilian Hohmann Wrote:  I do not know if and why it was generally avoided to use OP commands in solid state software modules, but there are exceptions: The Aviation Module for example has routines (like "AV-04 Long Range Flight Plan") that will produce labelled printouts on an attached printer. This is only possible using OP instructions.

Now that you mention it: the standard module's ML-01 program includes some printed text output as well. There is a test routine that, after it has been successfully completed, prints "MASTER" and "1.". And indeed subroutine WRT contains OP 00 (clear print buffer), OP 03 (set buffer #3) and OP 05 (print buffer).

Also the Math/Utilities ROM has a program (MU-20) that returns various status information, including the memory partition. This requires OP 16, so this might be another example.

So OP commands were possible in TI's ROM modules. This leads to the question why they were (mostly) not used despite their obvious benefits.

Dieter
Find all posts by this user
Quote this message in a reply
Post Reply 




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