HP Forums
TI 58/59 ROM modules and OP instructions - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not remotely HP Calculators (/forum-9.html)
+--- Thread: TI 58/59 ROM modules and OP instructions (/thread-9813.html)



TI 58/59 ROM modules and OP instructions - Dieter - 12-30-2017 07:43 AM

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


RE: TI 58/59 ROM modules and OP instructions - rprosperi - 12-30-2017 02:51 PM

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


RE: TI 58/59 ROM modules and OP instructions - Gene - 12-30-2017 03:34 PM

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.


RE: TI 58/59 ROM modules and OP instructions - Werner - 12-30-2017 03:42 PM

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


RE: TI 58/59 ROM modules and OP instructions - rprosperi - 12-30-2017 04:17 PM

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


RE: TI 58/59 ROM modules and OP instructions - Gene - 12-30-2017 04:22 PM

Pool water was late. So was Math Utilities.


RE: TI 58/59 ROM modules and OP instructions - Dave Britten - 12-31-2017 02:00 PM

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?


RE: TI 58/59 ROM modules and OP instructions - Dieter - 12-31-2017 05:17 PM

(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


RE: TI 58/59 ROM modules and OP instructions - Dieter - 12-31-2017 05:46 PM

(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


RE: TI 58/59 ROM modules and OP instructions - Gene - 12-31-2017 06:10 PM

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.


RE: TI 58/59 ROM modules and OP instructions - Dave Britten - 12-31-2017 07:28 PM

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.


RE: TI 58/59 ROM modules and OP instructions - Dieter - 12-31-2017 07:37 PM

(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


RE: TI 58/59 ROM modules and OP instructions - badaze - 01-01-2018 02:01 PM

Or people who wrote the programs were not aware of OPs.


RE: TI 58/59 ROM modules and OP instructions - Didier Lachieze - 01-01-2018 03:16 PM

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


RE: TI 58/59 ROM modules and OP instructions - Maximilian Hohmann - 01-01-2018 05:25 PM

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


RE: TI 58/59 ROM modules and OP instructions - Dieter - 01-01-2018 07:24 PM

(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