Probably no customizable header in Plus42 after all

181 views
Skip to first unread message

Thomas Okken

unread,
Oct 5, 2023, 7:17:10 AM10/5/23
to Free42 & Plus42
I've been looking into the customizable header. This is a feature I had planned for Plus42 1.1, where you would be able to specify a program, that would be executed whenever the header is drawn, i.e. the line where the current directory and the BASE and TVM modes are shown. This program would be able to add information, or even replace the information provided by the system by default.

I don't think I'll be implementing this after all. There are a couple of problems that would require very ugly solutions. One is that the header-customization code would have to run without any side effects, since it could run at absolutely any time, and another is that it isn't clear when exactly to run that code, since running it on every screen update would be hopelessly inefficient.

(The side effect issue would require the system to save almost all state before calling the customization program, since the FUNC mechanism only protects the stack, not flags or other state.)

I might still change my mind about this if I have a moment of Zen and figure out how to implement header customization well, but it doesn't seem likely at this point.

There have been a few requests for additions to the header line, and I replied to all of those requests with the promise of header customization, which meant that users would be able to use the header to display whatever they wanted. Now that it doesn't look like that will happen, I will have to reconsider the specific header customization requests, so if you have any, please feel free to request them again. I'm not going to promise to implement those requests, but I will consider them.

Note that I have already implemented a related feature, which is to show the LASTX register in the stack display area. This will be in Plus42 1.1.

spiff72

unread,
Oct 5, 2023, 8:45:01 AM10/5/23
to Free42 & Plus42
Just curious - is this header area you mention the same as what is shown when you use the VIEWA command in a program?  Or is this different?

I keep wanting to use C47, but the implementation of the alpha register is different there, and I don't like it as much as the persistent visibility (at least until a key is pressed) in Free/Plus42 - and this keeps me coming back! :-)

I like to append units or other info to displayed items with the VIEWA command, and this just feels clunky in C47 (temporary and slow).  The speed of DM42 stock also is MUCH better than C47 but maybe they will fix that eventually.

Thomas Okken

unread,
Oct 5, 2023, 10:16:54 AM10/5/23
to Free42 & Plus42
Screenshot 2023-10-05 at 16.15.06.png

spiff72

unread,
Oct 5, 2023, 10:39:44 AM10/5/23
to Free42 & Plus42
Ahh - got it.  Not the same thing then!  Thanks

MickM

unread,
Oct 5, 2023, 11:29:50 AM10/5/23
to Free42 & Plus42
So I guess I've entered into this conversation late and not knowing this was even underway, so I won't be missing anything :-). I do however like that LASTx can be be shown along with the rest of the stack! In looking at your screenshot I see there is a blank line between L and T. I have an iPhone mini so my preference would be for NO blank line between them, given that it vertically compresses other stuff to accommodate that. Can the blank line be removed, or some other mechanism be put in place to remove it?

MickM

unread,
Oct 5, 2023, 11:55:55 AM10/5/23
to Free42 & Plus42
Another related comment on the header line - a few people I know who upgraded from Free42 by purchasing Plus42 (mostly for no other reason than being able to view the full stack at all times) wondered about the HOME line at the top the display. It was foreign to them (and somewhat annoying) but they never bothered to turn it off despite not using any of the features stuff it pertains to. I also consider myself in this camp (although I figured out how to turn the header off right away). I'm not necessarily pushing for things one way or the other, but it did come up in conversation that it would have been better if the default for the header line showing or not was that it didn't show. Anyway, just forwarding some feedback - it's obviously nothing too important....

Thomas Okken

unread,
Oct 5, 2023, 12:18:00 PM10/5/23
to Free42 & Plus42
LASTX is always shown at the top of the stack area, so if the stack doesn't fill up the remaining space, there will be blank lines between the two. If the stack takes up more space, it will fill the area. No space is wasted.

MickM

unread,
Oct 5, 2023, 12:45:07 PM10/5/23
to Free42 & Plus42
Oh, that's perfect! No complaints with that ;-). I have a beta version of Plus42 for testing out the skin I've been working on. How do I enable the display of LASTx (assuming that version contains that capability)?

Thomas Okken

unread,
Oct 5, 2023, 1:57:27 PM10/5/23
to Free42 & Plus42
I just uploaded new builds. The function to toggle LASTX display is called LTOP and it is in the DISP menu.

Thomas Okken

unread,
Oct 6, 2023, 12:08:17 PM10/6/23
to Free42 & Plus42
I uploaded another Plus42 build, with another new function, ATOP. No prizes for guessing what it does. :-)

Vincent Weber

unread,
Oct 13, 2023, 5:39:37 PM10/13/23
to Free42 & Plus42
Hi Thomas, 
Would you consider adding (with options to toggle on/off) 
-The alpha register 
-The first 10 flags? 

I see that you provide beta intermediate builts...any Android apk? 

Many thanks and best regards

Vincent 

Thomas Okken

unread,
Oct 13, 2023, 6:23:13 PM10/13/23
to Free42 & Plus42
Hi Thomas, 
Would you consider adding (with options to toggle on/off) 
-The alpha register 

That's what ATOP is for; it shows the alpha register in the stack area.
 
-The first 10 flags? 

Yes, definitely. 
 
I see that you provide beta intermediate builts...any Android apk?

I'm knee deep in preparations for the improved matrix/list editor and the FUNC rewrite at the moment. When that and the flags thing are done, I'll share test builds with anyone who's interested. 

Vincent Weber

unread,
Oct 13, 2023, 6:38:28 PM10/13/23
to Free42 & Plus42
Great, thanks Thomas!
Cheers 

MickM

unread,
Oct 14, 2023, 9:58:53 AM10/14/23
to Free42 & Plus42
I've often also wished the state of rect/polar was more obvious. I've never understood why it wasn't in the annunciators like RAD/GRAD. I realize that if you have complex numbers shown in the stack that the setting is obvious because the complex numbers are displayed in the right mode, however it's not uncommon to leave the complex world for a while and later come back to it not knowing or remembering the mode you're in, making the ⇧COMPLEX operation a wild guess. There is probably enough room in the annunciators area to accommodate the RECT/POLAR status AND the first 10 flags, although skins will need to be rewritten. If a skin is rewritten you wouldn't have to consume a row in the display area (or you would choose to not display it in a row because the annunciators have been tweaked to accommodate it). Somehow the annunciator area seems like a very inefficient use of space and a bit of a lost opportunity..

Vincent Weber

unread,
Oct 14, 2023, 11:58:04 AM10/14/23
to Free42 & Plus42
I second that about rect/pol. 

Yes the annunciator area was underused on the 42S. Possibly because the Pionners has a BEGIN annunciator that was only relevant on the 17B/17BII, which only  wasted space on other models. 
No PGM annunciator (but ok, the program mode is obvious with the 2-line display), no alpha mode annunciator (but ok, the alpha menu makes up for it), no flag annunciators (too bad, even though this is less useful than on the 32SII as the 42S has better options to configure program, like checkbox menus), and of course no rect/pol annunciator, which indeed would have been very useful. 

MickM

unread,
Oct 14, 2023, 1:41:05 PM10/14/23
to Free42 & Plus42
This is just a conceptual drawing - but the polar indicator and the first 10 flags would indeed fit in the annunciator area. Here's a picture of what it might look like on the skin I'm developing:
Screen Shot 2023-10-14 at 13.35.png

Vincent Weber

unread,
Oct 14, 2023, 1:45:02 PM10/14/23
to Free42 & Plus42
Looks good! 

Thomas Okken

unread,
Oct 15, 2023, 3:47:28 AM10/15/23
to Free42 & Plus42
The big problem with adding annunciators is that there already are 104 skins that they would have to be added to as well. I'm going to say no to that idea.

Adding an option to have an indicator for polar mode in the header is fine, though. I'll add it in 1.1.

MickM

unread,
Oct 15, 2023, 10:16:30 AM10/15/23
to Free42 & Plus42
I do understand about all the skins needing to be updated to take advantage of any additional annunciators (especially by yourself for your skins!). It's certainly an issue and the work isn't trivial. Regarding the header, as an iPhone 13 mini owner (I detest big phones that don't fit into my shirt pocket) I'm unlikely to display the header line because the vertical compression of everything else to accommodate it wouldn't be received well by my aging eyesight :-). That being said, I'm somewhat unaware (for now) of the features I'd be missing so I may back-pedal that comment. 

I have low expectations here, but you could do both (header and annunciator capability) and for those who select updated skins you could continue to enjoy the available "magnification" you currently have on your phone, and skins that haven't been updated would simply continue to work as before i.e. no harm done. This would be work for you and it sounds like you already have plenty on your plate - hence the low expectations and I guess I agree with your decision (although sadly it is a missed opportunity).

As an aside, I've often wondered how updates to skins are dealt with. Given that they can contain bugs (e.g. in key sensitivity rectangle coordinates or desktop version keyboard assignments), how can you tell if a skin has been updated on your website? I wonder if adding a version number in the box with each updated skin would suffice? Any box without a version number can simply be assumed to be version 1.0. The skin I'm working on is complex enough that I could see a bug slipping in, or needing to clarify the documentation, or wanting to add a new feature at some point in the future.

Thomas Okken

unread,
Oct 15, 2023, 12:49:29 PM10/15/23
to Free42 & Plus42
Behold:

Screenshot 2023-10-15 at 18.35.15.png

I do understand about all the skins needing to be updated to take advantage of any additional annunciators (especially by yourself for your skins!). It's certainly an issue and the work isn't trivial. Regarding the header, as an iPhone 13 mini owner (I detest big phones that don't fit into my shirt pocket) I'm unlikely to display the header line because the vertical compression of everything else to accommodate it wouldn't be received well by my aging eyesight :-). That being said, I'm somewhat unaware (for now) of the features I'd be missing so I may back-pedal that comment. 

I'm not sure what you mean there. Nothing is being compressed; the flags and polar indicator simply show up in the unused header space.
If you have everything turned on and you are in the TVM menu, things are going to get cramped, and the leading part of the directory path will get cut off. But readability shouldn't be an issue.

I'm happy with it on my iPhone 13 mini, anyway, but my eyesight is still good, so that may not mean that much. ;-)

As an aside, I've often wondered how updates to skins are dealt with. Given that they can contain bugs (e.g. in key sensitivity rectangle coordinates or desktop version keyboard assignments), how can you tell if a skin has been updated on your website? I wonder if adding a version number in the box with each updated skin would suffice? Any box without a version number can simply be assumed to be version 1.0. The skin I'm working on is complex enough that I could see a bug slipping in, or needing to clarify the documentation, or wanting to add a new feature at some point in the future.

Skin updates are pretty rare, but I agree that it would be nice if you could see the last modified date for each skin on the website. I'll have to think about how to handle that, though. I'll probably have to add something to the code that generates the index.html files. But even then, you still wouldn't get any notification when updates are happening.

You can, however, look at the commit history of the git repository where I keep all the skins:  https://github.com/thomasokken/skins

MickM

unread,
Oct 15, 2023, 1:52:10 PM10/15/23
to Free42 & Plus42
All I meant by things getting compressed was that if I wanted to see the polar and flags in the header line I'd need to have chosen to view the header line in the first place. In my case, I have turned it off i.e. I have one less row in the display and that allows everything else to expand to fill the extra vertical space that row took up. That information being available in the annunciator area would keep things the same. Regarding your eyesight, I predict that will change as you get older ;-).

While skin update notifications would be nice, I'd be more than happy to just periodically visit the skin page to see if the skin I was using had been updated, in addition to checking out any new skins that have shown up since my last visit.

MickM

unread,
Oct 15, 2023, 1:57:42 PM10/15/23
to Free42 & Plus42
Additionally, I imagine the directory text could grow in length (width) and require earlier truncation because of the space taken up by the polar and 0-9 flag states in the header line. I only mention that as an FYI - I realize we're flogging a dead horse here :-).

Thomas Okken

unread,
Oct 15, 2023, 2:13:43 PM10/15/23
to Free42 & Plus42
All I meant by things getting compressed was that if I wanted to see the polar and flags in the header line I'd need to have chosen to view the header line in the first place. In my case, I have turned it off i.e. I have one less row in the display and that allows everything else to expand to fill the extra vertical space that row took up.

Ah, OK.
Are you using the standard skin? You can gain a bit of readability by using the "short" skin and turning off the "maintain skin aspect ratio" option. But of course when you're creating your own skin, it's up to you.

Additionally, I imagine the directory text could grow in length (width) and require earlier truncation because of the space taken up by the polar and 0-9 flag states in the header line. I only mention that as an FYI - I realize we're flogging a dead horse here :-).

Yes. Since the directory path can grow arbitrarily long (there's no limit to how deeply directories can be nested), logic to handle running out of space in the header line has been needed since the beginning. What happens is that whatever is shown in the right of the header, i.e. the BASE or TVM settings when those menus are active, plus the flags and polar indicator when those are turned on, are always shown in full, and the directory is shown in whatever space is left, truncating from the left if necessary.
 

MickM

unread,
Oct 15, 2023, 3:26:28 PM10/15/23
to Free42 & Plus42
Hmm - I guess reading between the lines you haven't looked at my skin yet (contained in emails dated October 7 & 8). It's not the standard skin:
Mueck_Skin.jpg

Thomas Okken

unread,
Oct 15, 2023, 3:58:42 PM10/15/23
to Free42 & Plus42
The same idea applies, though. Get rid of the banner above the display, and put the keyboard rows a couple of pixels closer together, and you have room for another display row.
Reply all
Reply to author
Forward
0 new messages