HP-41 Infinity - a Tulip4041 teaser ...
|
09-26-2024, 07:51 AM
(This post was last modified: 09-26-2024 08:45 AM by ThomasF.)
Post: #1
|
|||
|
|||
HP-41 Infinity - a Tulip4041 teaser ...
Hi all,
As you know, I have been playing a bit with the Pico and the HP41, and I know some of you are looking forward to the Tulip4041 board that Meindert is developing. (For the moment I'm using my own Tiny41 board with a Pico2 which is compatible with the coming TULIP4041 board.) As a small teaser, I'd like to share a small program I made that shows some of the potential with the Pico board that opens up for a totally new programming experience for the HP41! First of all, I made use of the flash available in the Pico, in the standard Pico2 there is 4MB of flash (with 16MB versions available). I used about 1.6MB to flash some 41 modules I had available - all in all 136 for the moment (16MB flash would allow for more than 1000 different modules!). I can flash either ROM-files or MOD-files - MOD files includes names, description and more. I also added a very simple file system with a FAT, so that each module is easy accessible. From the command line interface (on the PC) of my Tiny41 board I can now:
Code: Loaded modules
Code: Installed modules
To take this one step further, I made a small MCode routine that takes a module name in alpha and a page number in X-register and directly plugs the module in the specified page/port! Say that you always have the PPC ROM in port 1 and some other modules at hands, but need a program that uses a special module for something, then this little program is just an example of what you could do: Code: 01 LBL "TEST" So now I have "unlimited" access to any module within the same HP41 program! Note that care still has to be taken about XROM mismatching - that troubles might arise if two modules with same XROM ID is plugged in at the same time! Below is the complete MCode program (part of my own TF-ROM module) that sends the module name and wanted page number to the Tiny41. The routine will fail if module not found or the page is not allowed. Any other module in the same page will be unplugged. Also note that if the MOD file header specifies a hardcoded page (like for the printer ROM), then that page will be used - and any extra pages or banks will also be loaded. Not included here is the code needed on the Tiny41, but when Tulip4041 is released this will be available for anyone to use. Hope this shows some of the potential of the Pico boards together with the HP41! EDIT: Corrected a typo (port 2 is page 10+11) Cheers, Thomas Code: .NAME "PLUGM" [35/45/55/65/67/97/80 21/25/29C 31E/32E/33E|C/34C/38E 41C|CV|CX 71B 10C/11C/12C/15C|CE/16C 32S|SII/42S 28C|S 48GX/49G/50G 35S 41X] |
|||
09-26-2024, 09:00 AM
Post: #2
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
Wow! Great things just keep coming for the 41.
http://WilsonMinesCo.com (Lots of HP-41 links at the bottom of the links page, at http://wilsonminesco.com/links.html#hp41 ) |
|||
09-26-2024, 12:12 PM
Post: #3
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
Indeed WOW, this is truly amazing, the ability to load (and presumably unload) modules at will during runtime, from a FOCAL program. It boggles the mind of any 41 programmer.
Your comments imply this can be used on TULIP41 once that is available, but how would such a program be installed/loaded and the flash loaded with the images? Would this require a re-flashing of the TULIP41? Sylvain just presented TULIP41 at HHC 2024 and the 41 fans were chattering about the new possibilities. Never mind 40, even 2-3 years ago, who could imagine such things would be possible on a 41?? Thanks for this eye-opening post Thomas, keep it coming.... --Bob Prosperi |
|||
09-26-2024, 01:11 PM
Post: #4
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
(09-26-2024 12:12 PM)rprosperi Wrote: Your comments imply this can be used on TULIP41 once that is available, but how would such a program be installed/loaded and the flash loaded with the images? Would this require a re-flashing of the TULIP41? Hi Bob! I'm constantly in contact with Meindert and we follow each others development of the Pico code. As of now we have no fixed plan how the file system will look like, but plans are to merge my module handling with his Tulip code. For now I have created a simple tool that flashes every module I have listed in a configuration file. It simply creates the FAT and flashes it together with the module images without touching the main firmware of the board. So if I want to add some modules, I just add them to the configuration file, run the tool and flash the board again (again, no need to update the main Pico application). And since I use the name of the module for lookup, the order of the modules have no impact (I can remove or add modules as much as I want to). The configuration just lists all modules and looks like this: Code: # List of all modules to install in the flash Now, this could be done by any user of the board (only the flash-tool, a PC and USB cable needed), but once flashed, all modules are available (without the need to recompile, change or flash the Tulip code). Also remember that this is still under development, so I hope this will be integrated in the final version - the first version of the Tulip board is a development board, and should be used as such. It is not a final product but comes with the basic firmware to start developing. Later on we might have a real file system on the board, so adding a new module might be done by just dropping the file on the Tulip board Again, this works fine - as described in the post - on my board, and my main purpose was - as you just said - to be an eye-opener of what could be done with this board. And I hope that we see many other ideas pop into life when more people starts to play with the possibilities it can offer! Cheers, Thomas [35/45/55/65/67/97/80 21/25/29C 31E/32E/33E|C/34C/38E 41C|CV|CX 71B 10C/11C/12C/15C|CE/16C 32S|SII/42S 28C|S 48GX/49G/50G 35S 41X] |
|||
09-26-2024, 04:00 PM
Post: #5
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
What Thomas now did with the module handling is absolutely amazing, and Thomas and I are looking to integrate our code. We both have a slightly different approach and Thomas has the leading edge of implementing features while I am focusing on getting hardware out to other users with a solid software base that can then be expanded.
Features like Thomas has described will certainly come to the TULIP4041, not only to the final module version, but also to the development version that is now being shipped. Regards, Meindert |
|||
09-26-2024, 05:27 PM
(This post was last modified: 09-26-2024 05:30 PM by Sylvain Cote.)
Post: #6
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
(09-26-2024 12:12 PM)rprosperi Wrote: Indeed WOW, this is truly amazing, the ability to load (and presumably unload) modules at will during runtime, from a FOCAL program. It boggles the mind of any 41 programmer.Not to diminished the great work being done here, but for the record, 41CL Extreme ROM (YFNX) had this functionality for years (PPLUG). Mapping ZENROM to Page 10 Code: LBL "MZPA" Unmapping a ROM from Page 10 Code: LBL "UPA" Sylvain Côté |
|||
09-26-2024, 05:51 PM
Post: #7
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
(09-26-2024 05:27 PM)Sylvain Cote Wrote:(09-26-2024 12:12 PM)rprosperi Wrote: Indeed WOW, this is truly amazing, the ability to load (and presumably unload) modules at will during runtime, from a FOCAL program. It boggles the mind of any 41 programmer.Not to diminished the great work being done here, but for the record, 41CL Extreme ROM (YFNX) had this functionality for years (PPLUG). Indeed, but regardless how much we love the CL, this will bring that capability to any unconverted C/CV/CX Juan |
|||
09-27-2024, 09:13 AM
Post: #8
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
Nice.
What could be a "customer journey"? a) I buy an HP41C on eBay (nothing except this part); the cheapest hardware available b) I connect a tulip to my HP41 (a fully system I could buy anywhere) c) I make the setup on the HP41 (4x memory modules, X-Function modules, ROM whatever in a port). > the setup is kept accross any taking out of the HP41 and any reconnect into CV or CX would gives errors because X-function was there in the CX etc. d) in case of a tulip malfunction on another HP41 (a CV, a CX), a re-setup can be made on a PC or in the new CV/CX machine This "journey" is a possibility of an user type (persona "lazy dude"). Or everything is still in the study phase and the target use behaviour has still to be defined? HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
09-27-2024, 10:35 AM
Post: #9
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
(09-27-2024 09:13 AM)floppy Wrote: Nice. Yes, the Tulip board and software is still in early developing phase and how the final "system" will look like or behave is not yet defined.
Cheers, Thomas [35/45/55/65/67/97/80 21/25/29C 31E/32E/33E|C/34C/38E 41C|CV|CX 71B 10C/11C/12C/15C|CE/16C 32S|SII/42S 28C|S 48GX/49G/50G 35S 41X] |
|||
09-28-2024, 09:07 AM
Post: #10
|
|||
|
|||
RE: HP-41 Infinity - a Tulip4041 teaser ...
About the question for copying RAM in the HP41, there is a potential solution already on my list of things to have, and that is to implement Expanded Memory as currently supported in the HP41CL and in the upcoming MAXX module.
This allows to easily create a full copy of the HP41's main memory (including Extended Memory) and swap it with another machine. The mechanism to access this memory is well described in the HP41CL documentation and requires the use of a new instruction (a NOP to the NUT processor), and this is simple to implement in the TULIP firmware. Requires a special ROM of course, but the collection of ROM images for the 41CL contains some examples. Problem is that there are many ideas and almost everything is possible with the TULIP platform, and as Thomas said, anything that goes out to users should be robust and easy to use. I must add that as far a I am concerned we are already beyond the study phase. Both Thomas, Andrew and I have proven that we can control every aspect that any HP41 plug-in module can provide, including sending IR frames to a printer. Even implementing a real HP-IL loop is not entirely out of question anymore, based on the experiences of the HP-IL module emulation. In some cases additional hardware may be required. Sources are available and anyone can build their own TULIP variation. Obviously we would want anyone to share what they are doing so this can be built in the main TULIP firmware. Keep in mind that a firmware upgrade is extremely easy and quick to do and adding functionality with new versions is done in a few minutes. Regards, Meindert |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)