Post Reply 
New HP-41 module available: Ladybug
01-10-2017, 03:12 AM (This post was last modified: 05-20-2017 05:16 AM by hth.)
Post: #1
New HP-41 module available: Ladybug
Update May 19, 2017

Version 0B released. This is a minor update, corrections below (or see release notes in the zip file).
  • The buffer created by Ladybug is no longer removed by "PACK" or "GTO ..". The buffer would previously be removed if such operation was invoked before turning the calculator off (at least once).
  • Ladybug now works properly with very early HP-41C calculators.
  • No longer crashes if another module misbehaves and leave a secondary bank enabled when returning to the operating system, and that module is located in such a way that the bank switch mechanism is shared with Ladybug.
  • Minor change to the module file metadata to avoid any possible confusion to the module reader on how to group and locate the pages.

Version 0B can be downloaded here:
.zip  ladybug-0B.zip (Size: 769.9 KB / Downloads: 57)
(This time it also includes the .pdf version of the documentation.)

Original post:

I am happy to finally have an HP-41 module to announce!

It is called Ladybug and offers an integer mode, similar to what is provided by the HP-16C. This release is for early adopters and is labelled version 0A.

Module image and documentation can be downloaded here:
.zip  ladybug.zip (Size: 420.28 KB / Downloads: 112)

Håkan
Find all posts by this user
Quote this message in a reply
01-10-2017, 12:51 PM
Post: #2
RE: New HP-41 module available: Ladybug
Hi Håkan , great to see this project come to fruition! I'm sure it's been well worth the wait. Impressive documentation, will wade in as soon as possible and as deep as I can.

I noticed you're using a code sequence located in page-4 for the control. This unfortunately interferes with the Library#4 - which is widely used across several modules... will it be possible to add your code to the Library#4 so that its operation is compatible with the existing setup?

Cheers,
ÁM

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-10-2017, 01:39 PM
Post: #3
RE: New HP-41 module available: Ladybug
(01-10-2017 12:51 PM)Ángel Martin Wrote:  I noticed you're using a code sequence located in page-4 for the control. This unfortunately interferes with the Library#4 - which is widely used across several modules... will it be possible to add your code to the Library#4 so that its operation is compatible with the existing setup?

Great idea, to move the code into Library 4. I'd hate to have to remove Library 4 to use this, as L4 has become a 'standard' part of all my 41 systems.

Thanks for sharing this Håkan, docs appear quite thorough. And thanks Angel for offering to add this code to L4.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
01-10-2017, 03:24 PM
Post: #4
RE: New HP-41 module available: Ladybug
The documentation is nicely usable and easily navigated. Looks like Sphinx is a nice tool for generating documents, and I note that the Linux Kernel documentation recently moved to using Sphinx also.
Find all posts by this user
Quote this message in a reply
01-10-2017, 04:02 PM
Post: #5
RE: New HP-41 module available: Ladybug
(01-10-2017 03:24 PM)cruff Wrote:  The documentation is nicely usable and easily navigated. Looks like Sphinx is a nice tool for generating documents, and I note that the Linux Kernel documentation recently moved to using Sphinx also.

can it be put on a single pdf file?
Would be great for train commutes...

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-10-2017, 10:10 PM
Post: #6
RE: New HP-41 module available: Ladybug
(01-10-2017 04:02 PM)Ángel Martin Wrote:  
(01-10-2017 03:24 PM)cruff Wrote:  The documentation is nicely usable and easily navigated. Looks like Sphinx is a nice tool for generating documents, and I note that the Linux Kernel documentation recently moved to using Sphinx also.

can it be put on a single pdf file?
Would be great for train commutes...

Here is the documentation as a pdf:
.pdf  ladybug.pdf (Size: 350.21 KB / Downloads: 162)

Håkan
Find all posts by this user
Quote this message in a reply
01-10-2017, 11:21 PM
Post: #7
RE: New HP-41 module available: Ladybug
Send the artwork for the keyboard overlay to Michael Fehlhammer, and inquire if he is still making custom overlays. The overlays he made about 2-2.5 years ago for some of Angel's ROMs and some classic programmer ROMs (CCD, HEPAX, etc.) are beautiful, durable and inexpensive.

Ladybug looks like it will be useful enough to dedicate a 41, and the keyboard is sufficiently redefined that there are too many assignments to just remember; an overlay will be needed to use it effectively, IMHO.

It appears the PDF file is quite easy to generate from the (HTML?) source, but there are some minor layout issues with this version having many mostly and completely blank pages. Fortunately, they are only wasted bits and not wasted paper Smile.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
01-11-2017, 07:35 AM
Post: #8
RE: New HP-41 module available: Ladybug
(01-10-2017 10:10 PM)hth Wrote:  Here is the documentation as a pdf:
Håkan

Great, thanks!

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-11-2017, 01:57 PM
Post: #9
RE: New HP-41 module available: Ladybug
I did a 5 min test with Genesis-41 emulator on macOS and with HP-41C (ROM: GFF, QUAD, Clonix-D).
Working: INTEGER/FLOAT, HEXS/DECS/OCTS/BINS, X<>YI, RDNI, WSIZE, WSIZE?
Broken: ADD, SUB, DIV, MUL
Sylvain
Find all posts by this user
Quote this message in a reply
01-11-2017, 02:01 PM
Post: #10
RE: New HP-41 module available: Ladybug
This would be a fantastic module!

I have tested it on “go41cx” (Android):

XEQ “INTEGER” works

but “ADD”, “SUB”, “MUL”, “DIV..” does not work (no function…)

Best regards
Tobie
Find all posts by this user
Quote this message in a reply
01-11-2017, 04:24 PM (This post was last modified: 01-11-2017 04:32 PM by Ángel Martin.)
Post: #11
RE: New HP-41 module available: Ladybug
the arithmetic functions work just fine on V41 - at least up to 56 wsize (haven't tried higher values).
Are those emulators you're using up to speed on the page-4 support? That can be the issue, and not related to the module per-se.

I'm impressed by the postfix handling and the semi-merged functions - being able to see those instructions in the literal form in programs is wondrous. I need to sink my teeth in that code ;-)

The issue I see is that after a GTO.. (PACKING) the INTEGER mode is gone and I need to activate it again. I think this is a bug?

Cheers,
ÁM

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-11-2017, 05:14 PM
Post: #12
RE: New HP-41 module available: Ladybug
(01-11-2017 04:24 PM)Ángel Martin Wrote:  the arithmetic functions work just fine on V41 - at least up to 56 wsize (haven't tried higher values).
Are those emulators you're using up to speed on the page-4 support? That can be the issue, and not related to the module per-se.

I'm impressed by the postfix handling and the semi-merged functions - being able to see those instructions in the literal form in programs is wondrous. I need to sink my teeth in that code ;-)

The issue I see is that after a GTO.. (PACKING) the INTEGER mode is gone and I need to activate it again. I think this is a bug?

Cheers,
ÁM

I have seen that once when it was loaded on an MLDL 2000, but not at other times running it a lot on hardware and an emulator. I could not reproduce it since, and it has been working for months, so I wrote that one off. It was just too weird. But as you encounter it, I trust there is a problem somewhere. I will look into that one again.

Was this on hardware?

Was the program memory empty?

Håkan
Find all posts by this user
Quote this message in a reply
01-11-2017, 05:26 PM
Post: #13
RE: New HP-41 module available: Ladybug
(01-11-2017 01:57 PM)Sylvain Cote Wrote:  I did a 5 min test with Genesis-41 emulator on macOS and with HP-41C (ROM: GFF, QUAD, Clonix-D).
Working: INTEGER/FLOAT, HEXS/DECS/OCTS/BINS, X<>YI, RDNI, WSIZE, WSIZE?
Broken: ADD, SUB, DIV, MUL
Sylvain

Could you give a step-by-step instruction on how to reproduce the problem you see with ADD?

Of the listed functions that works, they all reside in bank 1, apart from WSIZE that does switch to bank 2.

The arithmetics instructions listed all switch to bank 2.

If it were not for the WSIZE, I would suspect something in the bank handling. It does bank switching on the fly, just by having the code aligned properly between the two banks.

Håkan
Find all posts by this user
Quote this message in a reply
01-11-2017, 07:21 PM
Post: #14
RE: New HP-41 module available: Ladybug
(01-11-2017 05:26 PM)hth Wrote:  If it were not for the WSIZE, I would suspect something in the bank handling. It does bank switching on the fly, just by having the code aligned properly between the two banks.
Håkan

That may also be an issue on those emulators. The Advantage always used a "JNC +00" instruction at the bank-switched destination, maybe that's help.

But it should be easy to troubleshoot using any other bank-switched module, like the Advantage itself just to choose one that nobody would suspect...

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-11-2017, 07:22 PM
Post: #15
RE: New HP-41 module available: Ladybug
(01-11-2017 05:14 PM)hth Wrote:  Was this on hardware?
Was the program memory empty?

it was on V41, and not empty - i.e. other programs were there already/

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
01-11-2017, 08:16 PM
Post: #16
RE: New HP-41 module available: Ladybug
(01-11-2017 07:21 PM)Ángel Martin Wrote:  
(01-11-2017 05:26 PM)hth Wrote:  If it were not for the WSIZE, I would suspect something in the bank handling. It does bank switching on the fly, just by having the code aligned properly between the two banks.
Håkan

That may also be an issue on those emulators. The Advantage always used a "JNC +00" instruction at the bank-switched destination, maybe that's help.

But it should be easy to troubleshoot using any other bank-switched module, like the Advantage itself just to choose one that nobody would suspect...

I assume you mean "JNC +00" goes to next line? I saw that in the CX ROM, often before an ENROM instruction. I do not really understand why, but suspect that they are there to avoid having a GOSUB go to that location and get trapped by the NOP means RTN feature, as ENROM really is a NOP variant.

But in the advantage it is done at the destination. Does it switch on the fly as well? Do you do the same in your banked modules?

Håkan
Find all posts by this user
Quote this message in a reply
01-11-2017, 08:22 PM
Post: #17
RE: New HP-41 module available: Ladybug
(01-11-2017 02:01 PM)charger73 Wrote:  This would be a fantastic module!

I have tested it on “go41cx” (Android):

XEQ “INTEGER” works

but “ADD”, “SUB”, “MUL”, “DIV..” does not work (no function…)

Best regards
Tobie

Noted. Sounds like a similar problem to what was mentioned above. It is unfortunately payware.

Is there any free emulator that has this problem that I could try?

Håkan
Find all posts by this user
Quote this message in a reply
01-11-2017, 08:39 PM
Post: #18
RE: New HP-41 module available: Ladybug
(01-11-2017 07:22 PM)Ángel Martin Wrote:  
(01-11-2017 05:14 PM)hth Wrote:  Was this on hardware?
Was the program memory empty?

it was on V41, and not empty - i.e. other programs were there already/

I found the issue. A work around is to turn your HP-41 off, then on again before trying GTO.. or PACK. Then it should stay around, only needed after initial creation.

Håkan
Find all posts by this user
Quote this message in a reply
01-11-2017, 08:45 PM
Post: #19
RE: New HP-41 module available: Ladybug
(01-11-2017 05:26 PM)hth Wrote:  Could you give a step-by-step instruction on how to reproduce the problem you see with ADD?

Of the listed functions that works, they all reside in bank 1, apart from WSIZE that does switch to bank 2.

The arithmetics instructions listed all switch to bank 2.

If it were not for the WSIZE, I would suspect something in the bank handling. It does bank switching on the fly, just by having the code aligned properly between the two banks.

Håkan

Hello Håkan,

The Clonix-D module and the Genesis-41 emulator does not support the MOD format, so I have extracted the ROM files from the MOD file.
With your reply I understood that you were using bank switching which is something that I did not checked and/or expected.

My initial setup was :
[OS4.ROM > Page 4 - Bank 1] , [LADYBUG1.ROM > Page 8 - Bank 1] & [LADYBUG2.ROM > Page 9 - Bank 1]

My new setup is :
[OS4.ROM > Page 4 - Bank 1] , [LADYBUG1.ROM > Page 8 - Bank 1] & [LADYBUG2.ROM > Page 8 - Bank 2]

With this new configuration, everything is working as expected with Genesis-41 (I will test the Clonix-D tonight)

Sorry about that.

Sylvain
Find all posts by this user
Quote this message in a reply
01-12-2017, 06:38 AM
Post: #20
RE: New HP-41 module available: Ladybug
(01-11-2017 08:16 PM)hth Wrote:  I assume you mean "JNC +00" goes to next line? I saw that in the CX ROM, often before an ENROM instruction. I do not really understand why, but suspect that they are there to avoid having a GOSUB go to that location and get trapped by the NOP means RTN feature, as ENROM really is a NOP variant.

But in the advantage it is done at the destination. Does it switch on the fly as well? Do you do the same in your banked modules?

First I meant "JNC +01"", not "00" - sorry for the typo. Both the CX and the advantage are similar in that the bank changes are not happening in the same page that issues the ENBANK instruction, so being "on the fly" is not an issue I suppose. Having said that the banking is managed by the module itself, so its behavior will be suited to the hardware it's running on - or so I thought. This is why the Zeproms manage to have FOCAL code in bank-switched pages, but this is not related to this case.

Second typo - those JNC +01 are not in the destination but right before the ENBANK instructions. Again, I thought this to be a whimsical note due to the hardware used. The HEPAX does *not* include those superfluous jumps ... so all this may off the point.
In my modules I use the HEPAX model, which ultimately also relies on a working "on the fly"model but all bank switches are made in the same routines, which are duplicated on each bank.

As I said it works just fine on V41. Will burn to a CL flash this week-end, but I don't expect any issues there either.

The PACKING issue is somehow bothersome - I guess this was one case not accounted for in the IO_POLL code? Hope you can patch it as well.

"To live or die by your own sword one must first learn to wield it aptly."
Find all posts by this user
Quote this message in a reply
Post Reply 




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