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:
ladybug-0B.zip (Size: 769.9 KB / Downloads: 29)
(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.

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?

(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.

(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...

(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...

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 .

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?

(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.

(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...

(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?

(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.