Post Reply 
Carsten's Entries Database tool
03-03-2015, 10:11 AM
Post: #1
Carsten's Entries Database tool
Hi All,

I think many developers like me, needed to maintain it's own entries database for the following reasons:
- Add in an organized documentation, a new discovered entry that are unsupported and undocumented at all, but are very useful.
- Add more accurate comments about some entries.
- Correct any mistake found in available documentations.
- Merge informations providing from various sources.
- Add entries from non electronic books (I've some French books with many many entries well documented)

A great tool and work was produced by Dominik Carsten with it's EDB, and are a very good starting point for that.
But, I think it require 2 additional features to be more generalist:

- Distinguish lower-level entries from higher-level entries, that is if an entry refer to a Primitive Code Object or a secondary.
- Manage different ROM revisions to allow the addition of many more entries (and other machines like the HP48SX)

So I'm trying to update and improve the Carsten's Entries Database and tool, and I've successfully implemented the first feature
by adding a [PCO] flag:
- When an entry has the [PCO] flag, a comment "Primitive Code Object." are added for that entry in the outputted product.

Unfortunately, to manage different ROM revisions it’s more complicated.
Searching the easiest way, my first idea was to duplicate entries that have moved between ROMs versions, and re-use differently the ‘ROM version’ flag :
So I expanded this flag to allow HP48’s revision numbering (A to R) plus multiple revision numbers like [A-J] or [ABC],
and output that after the comment field.
But this do not work as I expected, duplicate entries are not distinguished because they are referenced by their name in the edb perl script.
This feature will require more work and that's the first time I'm playing with the Perl language.

So anyone have skills about the edb tool or Perl and can help me ?
I've tried to contact Pr. Carsten, but he didn't respond.

You can find attached to this post the following files:
- edb: The modified (and draft) version of edb, you can find my modifications by searching the pattern ‘Bwy’.
- entries.db: The database with minor corrections and additions.
- entries.txt: Example of the outputted result (See the BINT,% and %% objects chapters)

Thank you
Bruno


Attached File(s)
.zip  edb2.12.zip (Size: 458.71 KB / Downloads: 10)
Find all posts by this user
Quote this message in a reply
03-03-2015, 02:42 PM
Post: #2
RE: Carsten's Entries Database tool
There are many more entries than just PCO vs secondary. There are entries that simply point to another address (still primitive code objects in spirit, though) and entries that simply point to #11111h which is a special handler that looks up a pointer table for the actual code.

Before the HP49, most RPL objects had the following scheme:

Code:
=ENTRYNAME
        CON(5)  =code_address

For PCOs, the address was simply 5 nibbles that followed immediately. For SysRPL objects, the address was something like DOLIST, or DOCODE, etc. All of this had to do with the fact that the RPL loop was called as follows:

Code:
        A=DAT0
        D0=D0+  5
        PC=(A)

This implementation of the RPL loop was necessary in order to have both direct and indirect execution. In the HP49G and latter, when they had less room to make ROM additions and could not move the supported entries, they couldn't necessarily insert a new PCO in place. So instead of just a 5 nibble offset to SASM code, it was simply an address that pointed to SASM code. You then only needed 5 nibbles to create a new entry, and could place the code for that entry elsewhere in ROM, where there was more room. I don't know if the team that developed the RPL system planned it out this way, but it is rather neat that their design made future updates quite manageable.

Graph 3D | QPI | SolveSys
Find all posts by this user
Quote this message in a reply
03-04-2015, 08:33 AM
Post: #3
RE: Carsten's Entries Database tool
Very interesting Han, do you think it will be relevant to specify this difference in the DB?
It will be a piece of cake to do it, but how to name this non PCO cases ?

Or may be, choosing a more generalist term than PCO to simply distinguish SysRPL routines written in Machine Language or SysRPL ?
Find all posts by this user
Quote this message in a reply
03-04-2015, 09:17 AM
Post: #4
RE: Carsten's Entries Database tool
(03-04-2015 08:33 AM)Bruno Wrote:  Very interesting Han, do you think it will be relevant to specify this difference in the DB?
It will be a piece of cake to do it, but how to name this non PCO cases ?

Or may be, choosing a more generalist term than PCO to simply distinguish SysRPL routines written in Machine Language or SysRPL ?

Well, in Jazz 50G, I simply called them SRPL entries due to lack of creativity :-)

Graph 3D | QPI | SolveSys
Find all posts by this user
Quote this message in a reply
03-04-2015, 10:07 PM
Post: #5
RE: Carsten's Entries Database tool
Hello Bruno,

If you (or anyone else) is interested, last year I started writing a SysRPL mode for Emacs. I wrote some elisp code to parse Carsten's entries.db file into lisp data structures, and an emacs major-mode for editing SysRPL code.

The code is available here: http://bitbucket.org/pdo/rpl-tools/overview

Sorry, I don't really know any Perl and haven't used any of the associated EDB tools, so can't really help you with that, but if I can port your enhancements then hopefully that will give me the impetus to put some more work into it.

Regards,
Paul
Visit this user's website Find all posts by this user
Quote this message in a reply
03-05-2015, 11:18 AM
Post: #6
RE: Carsten's Entries Database tool
(03-04-2015 10:07 PM)pdo Wrote:  Hello Bruno,

If you (or anyone else) is interested, last year I started writing a SysRPL mode for Emacs. I wrote some elisp code to parse Carsten's entries.db file into lisp data structures, and an emacs major-mode for editing SysRPL code.

The code is available here: http://bitbucket.org/pdo/rpl-tools/overview

Sorry, I don't really know any Perl and haven't used any of the associated EDB tools, so can't really help you with that, but if I can port your enhancements then hopefully that will give me the impetus to put some more work into it.

Regards,
Paul

Hello Paul,

Thank you ! That's another tool I'm interested in Smile
I will update this thread as soon as I finished the work.
Find all posts by this user
Quote this message in a reply
Post Reply 




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