News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Porting the HLA stdlib

Started by Randall Hyde, July 31, 2006, 11:57:45 PM

Previous topic - Next topic

Randall Hyde

I have no idea if the GeneSys project is interested in this, but I'm current reorganizing the HLA Standard Library and cleaning it up a bunch. In the process of doing this, I'll be re-creating a new set of header files to allow MASM users to call the stdlib routines (I did a "proof of concept" version before, http://webster.cs.ucr.edu/AsmTools/MASM/HLA4MASM.html, but it really needs to be redone at this point).

If there is any interest, I'll post updates here.
Of course, if there are any volunteers (which mainly involves writing lots of macros), any help would also be appreciated.

The final plan, btw, is to support MASM, FASM, NASM, and GoAsm with a set of header files to call the stdlib routines.
Cheers,
Randy Hyde


PBrennick

#2
Hi Randy,
Anything that improves the Project is of great interest to me. Please feel free to post any updates here.  In the beginning we probably will not be of much help but I hope that will change as we come up to speed.

Thank you for including us.
Paul
The GeneSys Project is available from:
The Repository or My crappy website

Vortex

Hi Randall,

The HLA Standard Library is a great resource for assembly programmers, thanks for your offer, it's very nice :U

Randall Hyde

Well, here's the current status of the porting project.

I'm currently in the middle of reorganizing the directories and files that make up the HLA Standard Library. Originally, what I had planned to do was move all the OS dependent files to one directory (to make porting to new OSes easier). However, as I started playing around with the files, I figured it would be a great idea to merge certain source files that were tiny into appropriate file combinations. For example, the stdout.puti8 routine is just a few lines of code and it calls stdout.puti32 (after sign extensions). Likewise, stdout.puti16 is just a few lines of code, which also calls stdout.puti32 (after a sign extension). Because the linker will add up to 15 bytes of padding between separate modules it links together, you wind up wasting a lot of space in the executable if you're linking together a bunch of tiny object modules.

Once I get the current phase done, my next step will be to get the automatic make system I've designed (which automatically generates all the make files to build the stdlib) operational under Linux (yeah, I know that doesn't apply to MASM, but before I can post the new version of the HLA stdlib code, I've got to have the Linux port operational).

Once the above is complete, the *real* fun can begin. And this is where I can use some help. As I mentioned, there's a lot of work creating MASM, NASM, FASM, and GoAsm header files. I'm assuming I'll be able to get a little bit of help (at least on the MASM header files) around here. The other big task is going to be writing unit tests for all the stdlib modules. What I'll probably do is write a test in HLA and then ask for help writing comparable modules for other assemblers (and for those who don't know HLA syntax, you can always use the output from HLA in MASM/FASM/Gas syntax as a guide).

Cheers,
Randy Hyde
P.S. Evenbit, go ahead and cross-post this to the mailing list.

PBrennick

Randy,
I am sure that we can help once you show us what needs to be done.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

Randall Hyde

Quote from: PBrennick on August 02, 2006, 09:50:22 AM
Randy,
I am sure that we can help once you show us what needs to be done.

Paul


Thanks, more soon.
I've almost got the fileio module reorganized and that will be the first one I put out (it's nice to be able to print stuff when testing library routines, and fileio is the lowest-level printing code, e.g., stdout uses fileio).
Cheers,
Randy Hyde

PBrennick

Randy,
I am looking forward to the fileio module as it will go a long way towards showing how the two systems will integrate.

Keep us posted whenever your time permits.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

Randall Hyde

Quote from: PBrennick on August 11, 2006, 12:51:36 AM
Randy,
I am looking forward to the fileio module as it will go a long way towards showing how the two systems will integrate.

Keep us posted whenever your time permits.

Paul

I have been really busy doing non-computer things lately (I have a pro-audio/lighting hobby business that has needed some attention lately), but I hope to get back to work on this stuff real soon.
Cheers,
Randy Hyde

PBrennick

The GeneSys Project is available from:
The Repository or My crappy website