Post Reply 
[50G] Question
05-03-2015, 08:31 PM
Post: #81
RE: [50G] Question
(05-03-2015 10:55 AM)HrastProgrammer Wrote:  
(05-03-2015 09:51 AM)Gerald H Wrote:  Library 258, extable (possibly known as extable2).

Ah, me blind ...

So "me blind" means "yes, I am the author"?
Find all posts by this user
Quote this message in a reply
05-03-2015, 08:47 PM
Post: #82
RE: [50G] Question
(05-03-2015 06:38 PM)HrastProgrammer Wrote:  No problem, here it is:

(removed for brevity)

Very nice, indeed. It's not often that I've run into examples of coding SysRPL in Saturn assembly form. This is a technique that I've seen before, perhaps even in one of your comp.sys.hp48 posts. I've never thought to embed SysRPL structures within a Saturn code object, but I can certainly appreciate its usefulness.

Perhaps the most interesting thing is that it's obvious from your code that the "old way" of setting contrast still works! I'm not sure why the historical postings I found indicated otherwise, and I feel a bit silly now for reinforcing that myth. The problems they pointed out were fairly specific, too. Makes me wonder if they only existed for older firmware revisions or in certain situations that weren't specified.

Thanks for sharing your code!
Find all posts by this user
Quote this message in a reply
05-04-2015, 04:35 AM
Post: #83
RE: [50G] Question
(05-03-2015 08:31 PM)Gerald H Wrote:  So "me blind" means "yes, I am the author"?

No, it means that I haven't noticed that you were talking about EXTABLE Wink

Unfortunately, I am not the author. Most likely it was Jean-Yves Avenard but I am not sure because I wasn't involved in the development of any of HP calculators (not that I didn't want to be involved, BTW).

https://www.hrastprogrammer.com/hrastwood/
https://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
05-04-2015, 04:52 AM (This post was last modified: 05-04-2015 07:19 AM by HrastProgrammer.)
Post: #84
RE: [50G] Question
(05-03-2015 08:47 PM)DavidM Wrote:  Very nice, indeed. It's not often that I've run into examples of coding SysRPL in Saturn assembly form. This is a technique that I've seen before, perhaps even in one of your comp.sys.hp48 posts. I've never thought to embed SysRPL structures within a Saturn code object, but I can certainly appreciate its usefulness.

The main purpose of such dual DOCOL/DOCODE structure is to hide individual SysRPL words so the calculator will show only "Code" on the stack, otherwise the display would be overflowed with those annoying Externals.

I don't know if I was the first to do it this way, but I am certainly using this since 199x and something.

Quote:Perhaps the most interesting thing is that it's obvious from your code that the "old way" of setting contrast still works! I'm not sure why the historical postings I found indicated otherwise, and I feel a bit silly now for reinforcing that myth. The problems they pointed out were fairly specific, too. Makes me wonder if they only existed for older firmware revisions or in certain situations that weren't specified.

Early firmwares had a lot of problems and bugs so maybe this didn't work back then. Even the emulation of some machine language instructions was buggy. I made some explorations after HP-49G+ came out:

http://www.hrastprogrammer.com/hp49gp.htm

Some of those quirks/bugs were fixed in later ROMs I believe ...

https://www.hrastprogrammer.com/hrastwood/
https://hrastprogrammer.bandcamp.com/
Visit this user's website Find all posts by this user
Quote this message in a reply
05-04-2015, 05:40 PM
Post: #85
RE: [50G] Question
(05-03-2015 10:25 AM)HrastProgrammer Wrote:  Strictly speaking, this should be put into library but I don't have time to do this at the moment as I am trying to finish the manual for my HRAST BASIC I am about to release.

I've created a library containing a couple of commands (RCLCNT and STOCNT) for recalling and storing the contrast setting if anyone is interested.

RCLCNT simply recalls the current contrast setting to the stack as a real.

STOCNT validates the argument type and then stores the integer part of the number in stack level one as the current contrast if it's within the range 0<=x<32. Numbers outside of that range will generate a standard "Bad Argument Value" error.

If anyone's interested, I'll post it to the General Software Library.
Find all posts by this user
Quote this message in a reply
05-04-2015, 06:52 PM
Post: #86
RE: [50G] Question
(05-04-2015 04:52 AM)HrastProgrammer Wrote:  The main purpose of such dual DOCOL/DOCODE structure is to hide individual SysRPL words so the calculator will show only "Code" on the stack, otherwise the display would be overflowed with those annoying Externals.

It seems to me that this technique could be very useful when you have a Saturn code block that could make good use of some pre-existing SysRPL routine, thus keeping you from having to split up the Saturn code into separate blocks (or reinventing the SysRPL command unnecessarily).

(05-04-2015 04:52 AM)HrastProgrammer Wrote:  Early firmwares had a lot of problems and bugs so maybe this didn't work back then. Even the emulation of some machine language instructions was buggy. ...

I recall there being quite a few differences in how the display-related functions and memory locations were affected by the Saturn emulation layer (not to mention the changes in screen size). It wouldn't surprise me at all if functional changes occurred over the various firmware updates.
Find all posts by this user
Quote this message in a reply
Post Reply 




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