HEPAX File System, file names
|
01-13-2021, 03:34 PM
Post: #1
|
|||
|
|||
HEPAX File System, file names
One of my current little projects is to expand my HP41 disassembler with support for the HEPAX RAM images. With the help of Ángel I now have the details of the files structure. What is lacking is how the file names are coded. According to the available documentation 7 characters are compressed in 6 10-bit words. After some attempts I am still pretty much in the dark as to how this is compressed. It appears that two-bit pairs are spread over the 6 available ROM words, but I fail to see any logic in the patterns.
Next task would be to understand how Register Files are compressed, one 7-byte HP41 register is compressed is 6 10-bit ROM words. Most logical would be if the same compression as the filenames are used, but who knows ... Does anyone here have any detailed info about this? Regards, Meindert |
|||
01-13-2021, 03:52 PM
Post: #2
|
|||
|
|||
RE: HEPAX File System, file names
(01-13-2021 03:34 PM)MeindertKuipers Wrote: It appears that two-bit pairs are spread over the 6 available ROM words, but I fail to see any logic in the patterns. Perhaps if you posted several examples of the 60 bit patterns someone could take a crack at decoding them. It would be especially helpful if you knew what strings the 60 bit patterns encoded for, though it might be possible to do it without knowing the plaintext. I'm not saying I'm likely to get the answers, but it strikes me that the mathematically inclined users of this forum might enjoy the challenge. Regards, Howard |
|||
01-13-2021, 04:16 PM
(This post was last modified: 01-13-2021 04:18 PM by Ángel Martin.)
Post: #3
|
|||
|
|||
RE: HEPAX File System, file names
Here's a couple of examples"
Code: 434 and: Code: 254 and: Code: 420 and: Code: 020 "To live or die by your own sword one must first learn to wield it aptly." |
|||
01-13-2021, 05:03 PM
Post: #4
|
|||
|
|||
RE: HEPAX File System, file names
I am making some progress, changing the filename in a structured way and monitoring the changes.
Regards, Meindert |
|||
01-13-2021, 05:07 PM
(This post was last modified: 01-13-2021 05:19 PM by Sylvain Cote.)
Post: #5
|
|||
|
|||
RE: HEPAX File System, file names
// HEPAX is padding the filename with spaces
Code: 0x20202020202020 -> [8092] 020 202 020 008 080 008 <- CLA 32 XTOA 20 HCRFLD [memory dump] HPURFL Code: 0x01202020202020 -> [8092] 020 202 120 008 080 000 <- CLA 1 XTOA 20 HCRFLD [memory dump] HPURFL Code: 0x0F202020202020 -> [8092] 020 202 320 008 080 003 <- CLA 15 XTOA 20 HCRFLD [memory dump] HPURFL Code: 0xFF012020202020 -> [8092] 020 202 301 008 080 03F <- CLA 255 XTOA 01 XTOA 20 HCRFLD [memory dump] HPURFL edit 1: [memory dump] = HEXEDIT 8092 SST SST SST SST SST SST ← ← edit 2: my tests assumed an empty HEPAX RAM at the start |
|||
01-13-2021, 07:13 PM
Post: #6
|
|||
|
|||
RE: HEPAX File System, file names
Thanks for your support, I figured it out. Just a lot of tedious typing and checking to find out. I still need to verify if this works in my disassembler, but here it is (only one file assumed in HEPAX RAM):
Code:
It is not entirely logical to me, so it would be nice if somehow the background of this choice of coding could ever be available. Now work to verify this en then check if this also applies to the packing of a register in 6 10-bit words. Strange enough, it is possible to rename a HEPAX file to a name with only one space, or to have a filename with spaces between character, so the delimiting space is not very strict. Regards, Meindert |
|||
01-14-2021, 02:07 AM
(This post was last modified: 01-14-2021 02:43 AM by Diego Diaz.)
Post: #7
|
|||
|
|||
RE: HEPAX File System, file names
Hi all,
Assumed single program file, seven chr. filename (eg. "ABCDEFG") Chr1="G", Chr7="A". Taken from the notes and test I did several years ago, I have not double checked this again. Indeed it's anything but "intuitive", and certainly not easy to figure out. Code:
Hope this helps. Best from Caribbean. Diego EDIT: I've now realized that there is some 'logic' in this encoding method. The filename is inserted (bitwise) following the sequence: 8091, 8094, 8092, 8095, 8093, 8096. LSB -> MSB. "Do not suppose, check it twice." |
|||
01-17-2021, 11:28 AM
Post: #8
|
|||
|
|||
RE: HEPAX File System, file names
This HEPAX compression format is now confirmed, and is also valid for the packed registers (DA, WA and KE file types). It is real fun to dive this deep in the HEPAX file structure, respect to the makers of HEPAX!
Next task is to clean up some things in the disassembly listings and add support for multi-block files. Below is a sneak preview of a disassembled HEPAX ASCII file. I intend to make the listing a bit more text focused for readability, and indicate <EOL> and <EOF> plus the record pointer. The ASCII files are not compressed. Code:
Regards, Meindert |
|||
01-18-2021, 08:54 PM
Post: #9
|
|||
|
|||
RE: HEPAX File System, file names
Thank you for the kind words. Interesting that you are making a disassembler for the HEPAX RAM - cool!
I do not remember how the file names were compressed, but as I had a tendency to reuse existing code, then the encoding and decoding must be something I called in a sub-routine. I for sure could never think of a coding like that. In one of the other threads there was a reference to a presentation I made in Corvallis in 1988 about the HEPAX File System - I have attached it here for your reference. Keep up the good work with the HEPAX RAM disassembler! Best regards, Steen |
|||
01-19-2021, 06:06 PM
Post: #10
|
|||
|
|||
RE: HEPAX File System, file names
Thank you Steen,
It is really good to have you here in the forum and getting the dust of your old stuff. I did have access to your presentation, and it was really helpful. I now need to understand how multi-block files are linked in detail. I never had a real HEPAX, but today have 4 different platforms for testing, although now my DM41X is slightly favourite. Regards, Meindert |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 2 Guest(s)