HP-41 and Hepax Filesystem
|
02-06-2020, 12:14 AM
Post: #1
|
|||
|
|||
HP-41 and Hepax Filesystem
Hi folks
Does anyone here either know, or know where to find something documenting or detailing the ins and outs of the Hepax filesystem? The standard Hepax manuals offer a few tantalising hints before stopping short with a statement that “the filesystem works by magic and voodoo and you should pay no attention to the man behind the curtain and let us take care of everything for you.” Or something like that. I really could do with details of the file headers; the directory is pretty simple. Any insight *greatly* appreciated. Pablo |
|||
02-06-2020, 04:07 AM
(This post was last modified: 02-06-2020 04:09 AM by Sylvain Cote.)
Post: #2
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
I never found that information but I did spent some time reverse engineering it.
HEPAX file header uses 10 bytes HEPAX data record use 6 bytes 4K page structure (warning: it may contains errors) [P means page address -> P001 could be 8001, 9001, etc] Code: P000 00B < XROM Number (ROM assign an unused ID) Code: P090 000 / Code: PFE6 000 < ? spacer ? Code: PFED 090 / Start of usable page address Code: PFF4 000 IVT Pause Loop Code: PFFB 000 / |
|||
02-06-2020, 06:13 AM
(This post was last modified: 02-06-2020 06:26 AM by Ángel Martin.)
Post: #3
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-06-2020 12:14 AM)pablo2000 Wrote: Hi folks Check the description of HEPINI in page #34 in the PowerCL_Extreme Manual posted at: http://systemyde.com/hp41/documents.html Code: Address Byte value Comment "Two of the byte values shown in the table above located at addresses 0xpFE9 and 0xpFEF have a different treatment: they will be branded only if the previous content is zero. They denote the initial address in the page where the next file or program will be written using HSAVEP, HCRFLAS and HCRFLD. Their values will vary as more programs or content is written to the HRAM page, thus should not be overwritten by HEPINI – or else the HEPAX FileSys catalog will become corrupt." HTH, ÁM "To live or die by your own sword one must first learn to wield it aptly." |
|||
02-07-2020, 11:35 AM
(This post was last modified: 02-07-2020 12:22 PM by pablo2000.)
Post: #4
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Many thanks to both of you - some useful stuff in there, although I was already aware of much, but by no means all, of it.
The key information I'm after is this bit -> (02-06-2020 04:07 AM)Sylvain Cote Wrote: HEPAX file header uses 10 bytes I can reverse engineer it if I have to, but it strikes me as odd that a module as revered, almost a cult following, as Hepax has so little publicly available information. And believe me, I've trawled all the old publications, forums and corners of the internet! It may help if I share a little of the purpose for it. Apologies if this is a little long. I have been a user, and advocate, of the HP-41 since I bought one when the 'C' first came out. As a student it was expensive - but I knew I'd never outgrow it, and I was right. Thirty some-odd years on and it's still my goto machine if I'm away from a PC, even though I have others including a Prime. I really like the Prime and I really wanted to 'love' it. But sadly it's made for the current calculator market, which is school students not professional engineers, and it's lacking in many areas - but I love the connectivity for storing and loading programs, and the ability to upload text files and compile them on the machine. A couple of months ago I bought one of Monte's brilliant CL boards, which is great - and I told him so. But despite the serial port, loading and saving programs is still a clunky affair - bespoke utilities and special cables etc. Motivated by this, I thought it would be good to bring the whole '41 world up to the 21st century connectivity. So I conceived a device, which I dubbed the 'IOnix'. I promise this is not a sales pitch or product 'plug' - just sharing what I'm doing with this project which is now nearly complete. So, the IOnix has the following attributes/capabilities: * Has Hepax embedded to provide the filing system. It had to be usable on _any_ machine, and Ext memory may or may not already be present, but Hepax can always be removed if already present. * I've implemenmted the complete Hepax instruction set, including ROMBLK, so it correctly performs the page re-location, remapping of RAM and filesystem housekeeping - no need to edit magic numbers. It works *exactly* as per the manual. * It has 32k Hepax ram, implemented using MRAM devices, which are non-volatile without battery or capacitor backup and have a guaranteed minimum retention of ~20 years. The RAM is dual-ported so is accesible from the '41 and the IOnix mcu simmultanteously. * Although not it's primary purpose, it is a 'multi' or 'super' ROM - can load single and multi bank, 4k/8k/12k ROMs from .rom or .mod files. * If RAM is swapped out fror a ROM, when the ROM is 'unplugged' the RAM is restored with its contents. HEPAX forsaw this and a calculator OFF/ON rebuilds the filesystem. * When saving a file on the HP-41 to hepax, simultaneously the file is available on the uSD card which mirrors the hepax file system - literally HSAVEP a program, remove the uSD card and stick it in a desktop of any kind (PC/Mac/Linux) and in the HepFS folder you will find the file. But also, in other directories you will find a .raw, a decompiled focal file and a gif barcode .bar file. * Data files a exported raw and as .txt files. * To upload a file to the '41, just copy it into the aprroriate directory (focal, .raw or native HepFS), put the card in the IOnix HEPDIR and it's there. No fuss. And any focal text files are compiled and loaded if necessary. * It has a very simple 3 button user interface, so roms can be changed or options set/unset from the device. * It has a serial port for I/O at RS232 and TTL levels simultaneously, accessed using PEEK/POKE to a set of address. The serial parameters (baud, stop bits etc) are independent of the '41 so, for example, 115200 baud operates correctly even if the '41 cant keep up (which it can't!). * It has a USB port wich can be used for serial I/O and also powers both the IOnix and the calculator, for extended use. * It employs some quite sophisticated power management techniques to maximise battery life when powered by the calculator batteries. * The case is made from a very tough industrial polymer and produced on a high resolution litho-printer, and then has a 3 coat protective paint and UV sealer - so it won't go brittle over the years like the HP card reader etc have tended to do. * It is a 'half-height' module allowing the continued of of 2 wired peripherals (HP-IL, printer, barcode reader etc) * It is entirely built 'from new' and doesn't require salvaged connectors or anything else. Here are a few pics, but I *must* stress, this is bench prototype, so the paint finish is not to spec and has also suffered some abuse! |
|||
02-07-2020, 12:00 PM
(This post was last modified: 02-07-2020 12:26 PM by pablo2000.)
Post: #5
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
|
|||
02-07-2020, 12:04 PM
Post: #6
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Just about everything is working now, but for the HepFS->uSD transfers, I've had to hard code 'magic numbers' for the files in HepaxRam. Just need to be able to parse the file headers!
So, unless anyone has any enlightenment, I'll guess I'll have to stare at lots of data and see what changes! Any feedback or comments very welcome of course. Pablo |
|||
02-07-2020, 12:21 PM
(This post was last modified: 02-07-2020 01:58 PM by Ángel Martin.)
Post: #7
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Sounds fantastic but the links were not functional...
now they work, and sure it looks great! "To live or die by your own sword one must first learn to wield it aptly." |
|||
02-07-2020, 12:49 PM
Post: #8
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Looks and sounds great, thank you for sharing these news!
Please keep us posted, I will be a customer for sure. Greetings, Massimo -+×÷ ↔ left is right and right is wrong |
|||
02-07-2020, 02:05 PM
Post: #9
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Amazing project!!
Thanks for sharing all these details; like Massimo, I am looking forward to getting one of these. Please keep the Forum updated as you make progress. --Bob Prosperi |
|||
02-07-2020, 04:04 PM
Post: #10
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Wow! What a great project.
Like the others, let us know when you are ready to sell this little gem, I will also be a happy customer. |
|||
02-07-2020, 04:25 PM
Post: #11
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Quite intriguing! But how did you manage the connection to the 41 bus? Even the MLDL2000 and similar projects required a recycled connector. Wish I had an answer to your header question!
Remember kids, "In a democracy, you get the government you deserve." |
|||
02-07-2020, 05:55 PM
(This post was last modified: 02-07-2020 06:41 PM by pablo2000.)
Post: #12
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-07-2020 04:25 PM)mfleming Wrote: Quite intriguing! But how did you manage the connection to the 41 bus? Even the MLDL2000 and similar projects required a recycled connector. Wish I had an answer to your header question! Well I had to engineer a new connector. The main PCB runs almost 2/3 of the length of the 'nose'. Then there's phosphour-bronze fingers that I had stamped in China which are tipped with gold contacts - all soldered together during the reflow process. The physical support - the black plastic block of the old connectors - is built into the lower case half and 'nose' cover. The case is in three pieces: bottom, main top and connector top. There aren't enough old modules kicking around to cannibalize, just to extract an already 30-40 year old part from. |
|||
02-07-2020, 07:48 PM
Post: #13
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Would really love to know what's inside, and a source for the connector would be great. Respect for this piece of work
Regards, Meindert |
|||
02-07-2020, 07:52 PM
Post: #14
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-07-2020 05:55 PM)pablo2000 Wrote:(02-07-2020 04:25 PM)mfleming Wrote: Quite intriguing! But how did you manage the connection to the 41 bus? Even the MLDL2000 and similar projects required a recycled connector. Wish I had an answer to your header question! Excellent project! Like Mark, I am interested in the new connector, because I am resorting to cannibalism to get connectors for my Flexible Hardware Module. But I am also interested in the housing, because of the GPS module that I am working on. If you can contact me via email I would like to discuss this more. There are also some things that you might be able to do to make this more CL-friendly. For example, I'm not sure that the HEPAX automatic relocation plays well with the CL memory management. If you are using a peripheral page address for the serial port it would be nice to coordinate the address with the things I am working on. And depending on how the serial port is done and connected with the USB it might be possible to adapt the CL update process to use that communication path. Please don't take this in any way as criticism or stepping on toes. I really like the project and am just offering my help. Monte |
|||
02-07-2020, 07:52 PM
Post: #15
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-07-2020 05:55 PM)pablo2000 Wrote:(02-07-2020 04:25 PM)mfleming Wrote: Quite intriguing! But how did you manage the connection to the 41 bus? Even the MLDL2000 and similar projects required a recycled connector. Wish I had an answer to your header question! This should be subject to a great presentation at the next HHC! Günter |
|||
02-07-2020, 10:25 PM
(This post was last modified: 02-07-2020 10:31 PM by pablo2000.)
Post: #16
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-07-2020 07:52 PM)Monte Dalrymple Wrote: Excellent project! Like Mark, I am interested in the new connector, because I am resorting to cannibalism to get connectors for my Flexible Hardware Module. But I am also interested in the housing, because of the GPS module that I am working on. If you can contact me via email I would like to discuss this more.Sure thing. I'll email you over the weekend. (02-07-2020 07:52 PM)Monte Dalrymple Wrote: There are also some things that you might be able to do to make this more CL-friendly. For example, I'm not sure that the HEPAX automatic relocation plays well with the CL memory management. If you are using a peripheral page address for the serial port it would be nice to coordinate the address with the things I am working on. And depending on how the serial port is done and connected with the USB it might be possible to adapt the CL update process to use that communication path.We will no doubt chat this further, but just for the sake of a public response for everyone else to see: They play quite nicely together - remember for my own use, I wanted this to use with my CL. Obviously there are some considerations - an IOnix slot has to be empty if it's configured in the CL MMU and vice versa; it's a spectacularly bad idea to have Hepax loaded in both at the same time (unless you like staring at your calculator with the batteries out for an hour!) - but apart from that they're best buddies. I'm sure we could scheme some use cases that would cause problems, but nothing obvious. Normally Hepax will relocate to page 0x7, but if I for example load YFNZ there, Hepax quite happily shifts down to 0x6 or stays at 0x8 (default) if my printer is connected. I've used it with CL configured modules in all slots except 1 (0x8 and 0x9) and the IOnix relocates itself to 0x7 and enables 8k Hepram in those pages. Works no problem. There are (literally) one or two wierdies that have cropped up - I haven't yet decided if they're a 'me' thing (because a fully internal CL-Hepax setup doesn't do it), a 'you' thing (because only the CL has it, not C, CV or CX) or just 'a' thing. Still looking at that. In any event, the IOnix knows if it's in a CL or not and sets a flag - haven't found a significant use for it yet, but included it 'because I could'. I'm sure we can dream up some use for it, perhaps the update path you mentioned? Or using the IOnix display to show CL configured ROMs along with IOnix ones. As I said, the ROMs were not the principal purpose of the thing, but then not everyone has a CL and there seems to be no real offering at the moment for a multi-rom which works with _any_ '41. |
|||
02-08-2020, 10:31 AM
Post: #17
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
Awesome project! Sign me up as a customer and guinea pig!
Cheers PeterP Cheers, PeterP |
|||
02-08-2020, 09:21 PM
Post: #18
|
|||
|
|||
RE: HP-41 and Hepax Filesystem
(02-07-2020 07:52 PM)Guenter Schink Wrote:(02-07-2020 05:55 PM)pablo2000 Wrote: Well I had to engineer a new connector. The main PCB runs almost 2/3 of the length of the 'nose'. Then there's phosphour-bronze fingers that I had stamped in China which are tipped with gold contacts - all soldered together during the reflow process. The physical support - the black plastic block of the old connectors - is built into the lower case half and 'nose' cover. The case is in three pieces: bottom, main top and connector top. Or better in Allschwil, Switzerland - is much clother and I would like to see / get one too |
|||
02-08-2020, 10:34 PM
Post: #19
|
|||
|
|||
RE: HP-41 and Hepax Filesystem | |||
02-08-2020, 10:39 PM
Post: #20
|
|||
|
|||
RE: HP-41 and Hepax Filesystem | |||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 2 Guest(s)