Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post here to share useful tips and tricks, to ask questions about using your DM42 or to report software-related problems
User avatar
lispm
Posts: 27
Joined: Tue Jun 29, 2021 2:23 pm
Location: Germany

Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by lispm »

I ran into this problem during develpment of stack routines, and simplified it to this small example.
Just call XEQ "KILL"

My DM42 Crashes as well as my Free42 Decimal 3.03 on ubuntu.
Can anybody reproduce this error?


00 { 46-Byte Prgm }
01▸LBL "KILL"
02 NSTK
03 CLST
04 45
05 XEQ "ABEND"
06 STOP
07▸LBL "ABEND"
08 FUNC 11
09 L4STK
10 1
11 1
12 1
13 +
14 +
15 +
16 RTN
17 END
Last edited by lispm on Wed Jun 30, 2021 9:02 pm, edited 1 time in total.

TI 55, HP16C, HP41C, DM42, APPLE ][, TRS-80, ATARI 800XL, ATARI 520ST, XEROX 1186 DANDELION, SYMBOLICS 3640, TI EXPLORER II
BLOG: https://yazuu.org/en/showblog_public.php?user=1&blog=
Thomas Okken
Posts: 1100
Joined: Tue May 02, 2017 5:48 pm
Location: Netherlands
Contact:

Re: Free42 3.03 and DM42 crashes when L4STK routine is calledin NSTK mode

Post by Thomas Okken »

I can reproduce it, this is malfunctioning in 3.0.4 as well. It looks like L4STK doesn't pad out the stack to four levels if it's called in NSTK mode, in a FUNC context, with DEPTH < 4.

I'm a bit busy at the moment but I'll try to fix it before the end of the week.
User avatar
lispm
Posts: 27
Joined: Tue Jun 29, 2021 2:23 pm
Location: Germany

Re: Free42 3.03 and DM42 crashes when L4STK routine is calledin NSTK mode

Post by lispm »

Thank you Thomas.
I really need these great FUNC Feature to make my old HP41 Programs work as function keys without destroying the stack.
And the L4STK is great for adapting old HP41 programs without having to completely rewriting them to be compatible with NSTK.

With FREE42 you*ve created the best RPN calculator HP never built.

Hope SwissMicros DM42 will soon receive an update as well

TI 55, HP16C, HP41C, DM42, APPLE ][, TRS-80, ATARI 800XL, ATARI 520ST, XEROX 1186 DANDELION, SYMBOLICS 3640, TI EXPLORER II
BLOG: https://yazuu.org/en/showblog_public.php?user=1&blog=
Thomas Okken
Posts: 1100
Joined: Tue May 02, 2017 5:48 pm
Location: Netherlands
Contact:

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by Thomas Okken »

I just created a new release that fixes the L4STK crash. The cause was an incorrect fix for an earlier crash in LNSTK. Both functions should be OK now.

3.0.5 is on my web site now, and is under review for the iOS and Android app stores.
User avatar
lispm
Posts: 27
Joined: Tue Jun 29, 2021 2:23 pm
Location: Germany

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by lispm »

Thomas Okken wrote:
Thu Jul 01, 2021 5:05 pm
I just created a new release that fixes the L4STK crash. The cause was an incorrect fix for an earlier crash in LNSTK. Both functions should be OK now.

3.0.5 is on my web site now, and is under review for the iOS and Android app stores.
Hi Thomas,
Thank you.
I just compiled free42 3.05 for Raspberry Pi and checked my program above and changed my stack routines as well.
Both work now.
I checked the Ubuntu version as well as the Anfroid version. Can't wait to get the update for DM42.

Hope that this Abnormal Program End with Data loss is considered an unscheduled-update-worthy bug

Again thank you for your quick response

TI 55, HP16C, HP41C, DM42, APPLE ][, TRS-80, ATARI 800XL, ATARI 520ST, XEROX 1186 DANDELION, SYMBOLICS 3640, TI EXPLORER II
BLOG: https://yazuu.org/en/showblog_public.php?user=1&blog=
ljubo
Posts: 70
Joined: Sat Jun 20, 2020 1:46 pm
Location: Austria

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by ljubo »

To bridge the time to the official DM42 firmware release I have merged L4STK and one additional easy bugfix from the thomasokken repository and have pre-released DM42pcm - see https://github.com/ljubo106/DM42pcm for the firmware mod description (if you don't like persistent custom menu extension you can deactivate it with shift-F3).

DM42pcm pre-release firmware can be found here: https://github.com/ljubo106/DM42pcm/releases
HP-15C, DM15L, HP-35S, DM42
User avatar
lispm
Posts: 27
Joined: Tue Jun 29, 2021 2:23 pm
Location: Germany

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by lispm »

ljubo wrote:
Sat Jul 03, 2021 3:07 pm
To bridge the time to the official DM42 firmware release I have merged L4STK and one additional easy bugfix from the thomasokken repository and have pre-released DM42pcm - see https://github.com/ljubo106/DM42pcm for the firmware mod description (if you don't like persistent custom menu extension you can deactivate it with shift-F3).

DM42pcm pre-release firmware can be found here: https://github.com/ljubo106/DM42pcm/releases
Something went wrong. I just applied DM42pcm-3.20.7a and it still hangs the DM42.

TI 55, HP16C, HP41C, DM42, APPLE ][, TRS-80, ATARI 800XL, ATARI 520ST, XEROX 1186 DANDELION, SYMBOLICS 3640, TI EXPLORER II
BLOG: https://yazuu.org/en/showblog_public.php?user=1&blog=
ljubo
Posts: 70
Joined: Sat Jun 20, 2020 1:46 pm
Location: Austria

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by ljubo »

lispm wrote:
Sat Jul 03, 2021 7:13 pm
Something went wrong. I just applied DM42pcm-3.20.7a and it still hangs the DM42.
Ach, silly typo - I fixed it - please try the new version DM42pcm-3.20.7b - I tested it with your "KILL" program and it seems ok - let me know if it is fixing your problem now.
HP-15C, DM15L, HP-35S, DM42
Thomas Okken
Posts: 1100
Joined: Tue May 02, 2017 5:48 pm
Location: Netherlands
Contact:

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by Thomas Okken »

Could you try this test case as well?

Code: Select all

00 { 30-Byte Prgm }
01▸LBL "FAC"
02 FUNC 11
03 LNSTK
04 X>0?
05 GTO 00
06 1
07 RTN
08▸LBL 00
09 DUP
10 1
11 -
12 XEQ "FAC"
13 ×
14 END
Run it by entering 10 XEQ "FAC" in 4STK mode.

This was the test case that triggered the incorrect bug fix that ended up breaking L4STK. Free42 3.0.5 finally handles *both* test cases correctly.

viewtopic.php?f=17&t=2913
User avatar
lispm
Posts: 27
Joined: Tue Jun 29, 2021 2:23 pm
Location: Germany

Re: Free42 3.03 and DM42 crashes when L4STK routine is called in NSTK mode

Post by lispm »

ljubo wrote:
Sat Jul 03, 2021 9:02 pm
Ach, silly typo - I fixed it - please try the new version DM42pcm-3.20.7b - I tested it with your "KILL" program and it seems ok - let me know if it is fixing your problem now.
I can confirm that the version DM42pcm-3.20.7b now runs the KILL program without any error. Thank you

More tests to come...
but I'm tired now... have to go to bed..

TI 55, HP16C, HP41C, DM42, APPLE ][, TRS-80, ATARI 800XL, ATARI 520ST, XEROX 1186 DANDELION, SYMBOLICS 3640, TI EXPLORER II
BLOG: https://yazuu.org/en/showblog_public.php?user=1&blog=
Post Reply