Display test ... not 100% correct?

Discussion around the SwissMicros DM41X calculator
ecsfang
Posts: 51
Joined: Sun Jan 26, 2020 5:21 pm
Location: Lund/Sweden

Display test ... not 100% correct?

Post by ecsfang »

Hi!

Whenever I get my hands on a new 41 calculator (let it be a real thing, an emulator or something else), I always try to download the PPC ROM and run the display test program ("DT").

On a real calculator, and on some PC emulators (like V41) this works fine, eg all segments are lit:
41_DT_OK.png
41_DT_OK.png (6.77 KiB) Viewed 6285 times

But on others, like the DM41X or the Android emulator go41cx, it only shows some of the segments:
20201002-15331111.bmp
20201002-15331111.bmp (12.31 KiB) Viewed 6285 times
(I would have expected that the alpha register would be the same as the original, the x-register is as expected.)

Is there someone who can explain this difference?

Best regards,
Thomas
[35/45/55/65/67/97/21/25/29C/31E/33E/38E/41C|CV|CX/71B/10C/11C/15C/16C/32SII/42S/28S/48GX/49G/35S/DM41X(#00456)]
(7397)[134]
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: Display test ... not 100% correct?

Post by rprosperi »

Yes, this is not a bug or a problem, this is a result of the changes needed to implement the multi-line editor in PRGM mode.

You will likely recall that at the end of DT, the 41C is left in PRGM mode, requiring the user to press [PRGM] [R/S] to complete the test. Until the multi-line editor was refined for several 'cosmetic' changes, DT ran properly in the sense that the visual result was the same, with all LCD segments on. The emulation changes to create the appearance of multiple lines in PRGM interfere with what DT simplistically assumes.

Note the same is true is with the Alpha register display - most people never noticed the Alpha display was left filled with characters after DT was run, but this is revealed on the 41X's SI_XA view.

Good catch, thanks for checking this out, and sorry (actually I'm not) to swat the first bug report so quickly.

Enjoy your 41X! :)
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
EM41
Posts: 192
Joined: Mon Mar 30, 2020 12:10 am
Location: Overijssel Netherlands

Re: Display test ... not 100% correct?

Post by EM41 »

It was already reported by Geoff during the beta test viewtopic.php?f=26&t=2448
I think it was the only non resolved "bug".
HP41C (2x), HP41CV, HP41CX, DM41X β, DM41X, DM42, HP11C, HP48G, HP97
User avatar
akaTB
Posts: 794
Joined: Tue May 02, 2017 1:56 pm
Location: Milan, Italy

Re: Display test ... not 100% correct?

Post by akaTB »

EM41 wrote:
Fri Oct 02, 2020 5:19 pm
It was already reported by Geoff during the beta test viewtopic.php?f=26&t=2448
I think it was the only non resolved "bug".
Thank you!
I remembered this was already addressed but couldn't find the thread.

The answer is the same: use DTST! ;)
Greetings,
    Massimo
ajcaton
-+×÷ left is right and right is wrong :twisted: Casted in gold
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: Display test ... not 100% correct?

Post by rprosperi »

akaTB wrote:
Fri Oct 02, 2020 5:23 pm
EM41 wrote:
Fri Oct 02, 2020 5:19 pm
It was already reported by Geoff during the beta test viewtopic.php?f=26&t=2448
I think it was the only non resolved "bug".
Thank you!
I remembered this was already addressed but couldn't find the thread.

The answer is the same: use DTST! ;)
AND... thank you!! I could not recall the name/module for DTST, though I suppose it should be obvious enough... ;)
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
toml_12953
Posts: 795
Joined: Wed May 03, 2017 7:46 pm
Location: Malone, NY USA

Re: Display test ... not 100% correct?

Post by toml_12953 »

EM41 wrote:
Fri Oct 02, 2020 5:19 pm
It was already reported by Geoff during the beta test viewtopic.php?f=26&t=2448
I think it was the only non resolved "bug".
Is this a hardware or a software issue?
Tom L

Some people call me inept but I'm as ept as anybody!
DM10L SN: 059/100
DM41X SN: 00023 (Beta)
DM41X SN: 00506 (Shipping)
DM42 SN: 00025 (Beta)
DM42 SN: 00221 (Shipping)
WP43 SN: 00025 (Prototype)
rprosperi
Posts: 1703
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: Display test ... not 100% correct?

Post by rprosperi »

toml_12953 wrote:
Fri Oct 02, 2020 10:57 pm
EM41 wrote:
Fri Oct 02, 2020 5:19 pm
It was already reported by Geoff during the beta test viewtopic.php?f=26&t=2448
I think it was the only non resolved "bug".
Is this a hardware or a software issue?
It's not an issue at all. Run DTST in Angel's OSX module and you will see the expected result of ALL (emulation) LCD segments turned ON.

The DT program in the PPC ROM does the same thing on a real 41C, however it uses PRGM mode to accomplish that and on the 41X the multi-line editor prevents that approach from working the same way.

No issue here.... move along... move along... :)
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
ecsfang
Posts: 51
Joined: Sun Jan 26, 2020 5:21 pm
Location: Lund/Sweden

Re: Display test ... not 100% correct?

Post by ecsfang »

Hi again!

Sorry, I just can't just move on, leaving a stone unturned ... ;)
I don't buy that this is due to the multiline edit in PRGM mode ...

Now, try this on your 41-device (needs eg. X-function):

[ALPHA] off
CLA
128 XTOA
58 XTOA
[ALPHA] on

Now, on my real 41CX I see 1 character with all segments turned on followed by a single colon - just as I expected.

On V41 by Furlow it shows the same, again as expected.

On the Android app go41cx by Olivier de Smet (very nice app IMHO!) it works partly:
go41cx.png
go41cx.png (13.15 KiB) Viewed 5844 times
As you see, the alpha register at the top shows the content as expected, but not when the alpha reg is shown in the display.

On the DM41X it is always shown as an append character followed by two colons.

Also, if you delete the characters, they are treated as separate characters in the display:

[ALPHA] off
CLA
128 XTOA
58 XTOA
129 XTOA
58 XTOA
[ALPHA] on

The dispaly now shows: "+: :a : :" (6 characters) where I would have expected only 4 characters: "#:#:"
('+' is the append character and '#' is a full segment).
(Also note that there is an extra space shown here after 'a' since the post sometimes treats ':' as an escape character when entering text).

Now try this (with alpha still on):

[shift][ASN] - append string --> "+: :a : :_"
[<--] - delete one character --> "+: :a :_"
[<--] - delete one character --> "+: :a_"
[<--] - delete one character --> "+: :_"
[<--] - delete one character --> "+:_"

So, I have deleted 4 characters, but "+:" is still shown in the display - even if alpha is empty (turn alpha on/off will clear what is shown).

My guess is that this is a bug in displaying characters with code larger than 127, and the bug is present in eg. go41cx (which doesn't have multiline edit) and is probably inherited somehow into DM41X since it is not present in the real device nor in eg. V41.

This is not a serious bug, it doesn't affect any data as far as I can see, only what is shown in the display but may show erronous results when dealing with characters codes above 127.

Best regards,
Thomas
[35/45/55/65/67/97/21/25/29C/31E/33E/38E/41C|CV|CX/71B/10C/11C/15C/16C/32SII/42S/28S/48GX/49G/35S/DM41X(#00456)]
(7397)[134]
ecsfang
Posts: 51
Joined: Sun Jan 26, 2020 5:21 pm
Location: Lund/Sweden

Re: Display test ... not 100% correct?

Post by ecsfang »

Still no-one who can explain why DM41X can't handle characters with code > 127 correctly in the display?

[ALPHA] off
CLA
128 XTOA
[ALPHA] on

This shows two characters (append sign and a colon) - but is should show (and is internally) only one character.
We can even delete one of these "two" characters:

(with alpha still on)
[shift] [ASN]
[<-]

The colon is deleted, and the append sign is still visible - but the alpha reg is actually empty (as it should be).

(with alpha still on in append mode)
[6] <-- Display now shows append sign followed by an 'X'
[shift] [VIEW]
X <-- We are left with only a 'X'

I still think this is the reason why the PPC ROM "DT" routine doesn't work - and that it is not related to multi line in PRGM mode - sorry ... :mrgreen:

Would have been more fun if codes [128..255] had new characters assigned to them - an easy way to extend the possibilities (not backwards compatible - but at least we could do some "poor mans graphic") since I guess that the display driver is outside the actual ROM and is handled by the emulator within the DM41X ... ;)

By no means complete .. just some examples:
new_chars.bmp
new_chars.bmp (19.75 KiB) Viewed 5743 times

Cheers,
Thomas
[35/45/55/65/67/97/21/25/29C/31E/33E/38E/41C|CV|CX/71B/10C/11C/15C/16C/32SII/42S/28S/48GX/49G/35S/DM41X(#00456)]
(7397)[134]
ecsfang
Posts: 51
Joined: Sun Jan 26, 2020 5:21 pm
Location: Lund/Sweden

Re: Display test ... not 100% correct?

Post by ecsfang »

Another consequence this "bug" also have, is when viewing synthetic text-strings in programs.
Depending on the mode, a string is shown differently.

I created a program, just containing a string with the characters 128-142 (15 characters).
On a normal HP41 this line is (always) shown as a string with 15 full-segment characters.

01 LBL "TST"
02 "###############"

But on the DM41X it depends on the viewing-mode:

1. With one-line display (SI+AR) the string (in PRGM mode) is shown as:
02 "+ : a : b : c : d : e : ....." (append, colon and then a string with characters, all separated by colon)

2. In multiline mode a completly different string appears as follows:
prgm.bmp
prgm.bmp (12.31 KiB) Viewed 5659 times
Note that these characters corresponds to character code 0-14

3. If the prgram-line is highlighted and [SHIFT] is pressed, then the display changes:
20201026-09351299.bmp
20201026-09351299.bmp (12.31 KiB) Viewed 5659 times
4. If you singlestep this line, so the string is added to the alpha register, then the "colon"'-string is shown as well.

This "soft-bug" has no serious implications, but when comparing a program listing between a HP41 and the DM41X, then synthetic string will most likely differs, both in program mode and what is shown in alpha register. Eg. when singlestepping the program, what is shown on the program line doesn't correspond to what will end up in the alpha register.

I have noticed that there are some new characters in the code range 128-255, eg. a delta (145), small sigma (149) as well as the all lower case letters (a-x), but they can only be used in the "colon" form:
[CLA]
168 XTOA
165 XTOA
172 XTOA XTOA
175 XTOA
AVIEW ---> "h:e:l:l:o :"


Now try entering that string in a program (needs a bytegrabber or other tool).
Then in multiline prgm-mode, highlight the line with this string and then press [SHIFT] ...
Notice how the display will toggle between "(%((/" and "h:e:l:l:o :" depending on if [SHIFT] is pressed or not ... ;)
hello.bmp
hello.bmp (6.26 KiB) Viewed 5659 times
[35/45/55/65/67/97/21/25/29C/31E/33E/38E/41C|CV|CX/71B/10C/11C/15C/16C/32SII/42S/28S/48GX/49G/35S/DM41X(#00456)]
(7397)[134]
Post Reply