HP Forums

Full Version: HP Development Library
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi all,

I'm pleased to present to you my first public release of HP Development Library (aka. HPDL), an system-RPL and machine language assembler for HP-48S/SX/G/GX.
It's a JAZZ/RPL48/MASD like compiler requiring very few memories and providing more or less the same compiler features.
You can build any object with it, even a library.

At the begining of this project was a personnal need for a mini JAZZ compiler to develop on my SX.
JAZZ is a very very powerfull tool but have three major drawbacks on my opinion:
- It require lot of memory, so you dedicate a RAM card for that (a big problem only for the SX)
- It is unable to include source code outside the current path
- It can't run on S/G models

So for developping on a SX a 'little' project (less than 18KB of source code and 8KB for the compiled object),
you can work on built-in RAM, and backup your project on a second RAM Card.
Unfortunately, if the project is bigger, then you need to merge a RAM card to be able to store the source code,
compile it, and save the resulting compiled object...
Rapidly, you do not have sufficient memory on the JAZZ ram card to backup your work Sad
Even after recompiling JAZZ with fewer features, it was still too big for a SX.
In addition the numerous source files becames unmanageable since they may be stored in the same directory.

So, after a quick search on hpcalc.org, I found some JAZZ's features I'm interested in as standalone small libraries:
MLDL Debug to debug and disassemble machine language
MiniWriter to edit source code
MKROM to build library

But a small RPL/ASM compiler and a system RPL debugger was still missing.
So I decided to try to write a compiler based on ASM48 by Jean-Michel Ferrard and HPDL was born Smile
Why ASM48?
Because it reach some of my design objectives:
- It is the smallest assembler I've found (7KB)
- It is written in system RPL and well documented with the appropriate book 'Les secrets de la HP48' by JMF.
- Its philosophy is closed to RPL philosophy and use as much as possible RPL powerfull capabilities
- It is easy to extend for a beginner Smile

Other design objectives are:
- Smallest size: Re-use built-in ROM codes and features everywhere it is possible
- Use few memory to compile (less than JAZZ, and 4 to 5 times less than ASM48)
- RPL philosophy: be conservative and flexible (and slow too lol)
- Use existing ROM entries table RPL.TAB
- Like JAZZ, merge RPLCOMP,SASM,MAKEROM tools in one command
- Allow to split and organize source files into some directories or backup objects
- Allow to compile a project from any memory area: UserOb or ports ( << :&:{Dir Object} RCL >> is a very cool RPL feature no?)
- Provide simplified JAZZ syntax
- Allow to use RPL User syntax inside source code to easily represent complex object (like array,symbolic,unit and other user objects)

While using HPDL for compiling other projects, I added more and more features that require to write a documentation.
So, now it looks like more a complete tool than a little personnal toy.
A few more effort with the documentation and it can be published.

It is not perfect and can't compete with the full JAZZ library in many respects (speed, HPDL provide only ASM/RPL compiler)
but it supplies powerful features for only 9.1KB, and if it can be usefull for anyone, I will be happy.

So any feedback are welcome Smile
Reference URL's