DM41X ED$ Bug in SLOW-mode

Please report issues with the DM41X Beta Firmware in this sub-forum
JurgenRo
Posts: 3
Joined: Sat Oct 05, 2019 11:50 pm

DM41X ED$ Bug in SLOW-mode

Post by JurgenRo »

While working with ASCII-files with Ángels ED$, I observed the following 2 missbehaviors with the machine being in SLOW-mode.

1st: The Display "flickers". This phenomenon is not quite predictable in that the "flicker" occurs either sporadically (with a couple of seconds between 2 flickers) or continuously with the "frequence" of the blinking cursor almost with the "impression" of a continuos scrolling (making it entirely impossible to work with the file).
Mostly, the sporadic flicker occurs when creating the file, while the continous flicker occurs when opening an existing file.

2nd: While ED$ is active (and behaves like described above) the machine seems to be in a state of raised power consumption: The battery indicator drops (in case of a fresh battery) from 4 bars to 3 bars. The 4 bars are shown again after exiting ED$.

ED$ seems to work regularly when the machine is in FAST-mode, though.
rprosperi
Posts: 1032
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: DM41X ED$ Bug in SLOW-mode

Post by rprosperi »

Verified.

The battery drain is because SLOW mode actually draws more current (during MCODE program execution, which is true when using ED$) than FAST mode, due to the emulation looping, required to run 'slow'.

Bottom line here is this (video jumping) very likely will not be changed as this is a unique case of extended MCODE code execution with live video display and is near impossible to correct.

Workaround: Use FAST mode when running ED$. Or always. :)

A note will be added to the manual to clarify that SLOW mode does not extend battery life, and is only provided for when you need to match certain original 41 behavior, for example with some 3rd party modules which behave poorly when run in FAST mode.
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
hth313
Posts: 36
Joined: Thu Jun 15, 2017 8:00 pm

Re: DM41X ED$ Bug in SLOW-mode

Post by hth313 »

How do you write code that behaves "good" in fast mode? Is there a similar feature in DM41X as there is in the NEWT to annotate instruction sequences that need to run at normal speed?
rprosperi
Posts: 1032
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: DM41X ED$ Bug in SLOW-mode

Post by rprosperi »

hth313 wrote:
Sat Nov 07, 2020 5:51 pm
How do you write code that behaves "good" in fast mode? Is there a similar feature in DM41X as there is in the NEWT to annotate instruction sequences that need to run at normal speed?
No, there is no similar capability. In general, all code will run fine in FAST mode, though that's not a challenge for you! ;)

We've not found any s/w that does not run properly in FAST mode, but assume there likely is some out there, somewhere, so SLOW mode is included to handle that if/when found.
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
hth313
Posts: 36
Joined: Thu Jun 15, 2017 8:00 pm

Re: DM41X ED$ Bug in SLOW-mode

Post by hth313 »

How do you handle the timing loops that do exist when running in fast mode?

Examples include:
  • Pause timer
  • Various keyboard debounce
  • Alpha register scroll
  • Long program line scroll
  • Blink timer, i.e. pressing a key that is not allowed while entering a number
  • Catalog timers
  • NULL test
  • ED
  • GETKEY
  • Alarm blink
  • My own modules, RAMED, enhanced catalogs, alternative PAUSE, etc
rprosperi
Posts: 1032
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: DM41X ED$ Bug in SLOW-mode

Post by rprosperi »

Details on techniques used are not available, sorry; it's part of David's magic. 8-)
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
hth313
Posts: 36
Joined: Thu Jun 15, 2017 8:00 pm

Re: DM41X ED$ Bug in SLOW-mode

Post by hth313 »

So I will conclude that the modules I write that rely on timing loops in certain situations do not work well on the DM41X.

Just a couple of side notes.

The simulator I make handles animation of the display quite nicely. There is no magic or any secret how it is done for anyone that cares to ask me how. It even does a good job at getting the seemingly odd display updates of the real hardware shine through. I demoed the simulator to a couple of developers at a Meetup (young people). They asked me why the display flickered a little in that funny way. So I explained to them that the real hardware does that because it is a shift register that moves things left and right all the time and that this is late seventies technology.

Second, the Clonix modules are capable of going to sleep, then wake up fast and synchronize quickly with the HP-41 bus when it powers up. This is done to conserve batteries.
rprosperi
Posts: 1032
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: DM41X ED$ Bug in SLOW-mode

Post by rprosperi »

hth313 wrote:
Sat Nov 07, 2020 11:52 pm
So I will conclude that the modules I write that rely on timing loops in certain situations do not work well on the DM41X.
It's trivial to find out, just install them and give it a try, probably less than 2 minutes start to finish. :)
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
hth313
Posts: 36
Joined: Thu Jun 15, 2017 8:00 pm

Re: DM41X ED$ Bug in SLOW-mode

Post by hth313 »

rprosperi wrote:
Sun Nov 08, 2020 12:34 am
It's trivial to find out, just install them and give it a try, probably less than 2 minutes start to finish. :)
OK, then I wait for someone to spend 2 minutes after I release the update a couple of weeks from now. :)
rprosperi
Posts: 1032
Joined: Mon Apr 24, 2017 7:48 pm
Location: New York

Re: DM41X ED$ Bug in SLOW-mode

Post by rprosperi »

hth313 wrote:
Sun Nov 08, 2020 3:47 am
rprosperi wrote:
Sun Nov 08, 2020 12:34 am
It's trivial to find out, just install them and give it a try, probably less than 2 minutes start to finish. :)
OK, then I wait for someone to spend 2 minutes after I release the update a couple of weeks from now. :)
Oh! Sorry, I thought you had purchased a 41X, and that was the reason for your deep curiosity about it, and hence my suggestion to just try it.

If not, then once your new projects are released, I'm sure someone here will load them and check them out. It should be interesting to see the results.
--bob p

DM42: β00071 & 00282, DM41X: β00071 & 00656, DM10L: 071/100
Post Reply