GuideML AmigaGuide converter for Haiku

Posted by pulkomandy on Tue May 28 18:22:36 2013  •  Comments (2)  • 

I'm currently porting some Amiga software (namely, the ACE CPC Emulator). As usual with Amiga software, the user documentations are written in AmigaGuide. I wanted to convert it to a more usual format for Haiku users. I found some tools, but they all run only on Amiga systems. Fortunately, one of them is written in C and open source.

You can get GuideML for Haiku sourcecode at my GitHub account.

The interesting part (development-wise) of this is that I used a set of wrapper header that convert the Amiga API calls into Haiku ones. The Amiga API is based on BCPL, which predates C and has differences such as using FPutC instead of fputc, it also has extra stuff such as support for lists, and a different way to allocate and free memory (where you have to tell FreeVec() the size of the block you're freeing).

This set of header allowed me to make very few changes to the core code of GuideML. I'm also using these headers for the port of ACE, where I could getthe emulator core running quite easily in a short time.

I'm still refining these headers to remove warnings, make them C++ safe (as my user interface for ACE is written in C++) and make them behave as close as possible to the original system. I even reused parts of AROS, an open source rewrite of the Amiga OS, which aims for source-level compatibility. Their ReadArgs implementation was not too hard to port to Haiku, and now my software can use just the same smart argument parsing as on Amiga. I still have to get something similar to icon tooltypes working, however, but that shouldn't be too hard as ReadArgs can parse strings from a file, instead of the command line.

gravatar Comment

Posted by lelldorin on Thu Oct 10 19:05:04 2013

How can i download the source? is where a directly download of the comoiled Haiku version? Is this emualtor running other the terminal?

gravatar Comment

Posted by PulkoMandy on Tue Oct 22 10:44:48 2013

The source for GuideML is on my github, as mentionned.

The ACE Emulator is not open source (yet). This is the decision of the author to avoid ports to any other system. The emulator is a complete graphical application and I'm rewriting all the UI code to use native APIs, but the code is well designed so the emulation core is easily shared.

Don't worry, I'll release a binary package when I'm done. This should be part of the upcoming 1.6 version, if all goes well.

Leave a comment

Name: Mail: