Well, I thought I'd take a moment to update everyone on the status of PASM. Last time I blogged about this, I had compiled my very first trivial PHP script.. Well, since then I have decided that now is the time to start cleaning things up a bit and put things into a more reasonable framework.
As a result, I have completely re-organized PASM into a more modular approach. The new version is divided into an engine (which processes the op codes) and a code-generation module (which generates the actual assembler code).
By making the code-generation portion of PASM module the concept is that PASM could be extended at some future point to create assembly code for other platforms or assemblers. Of course at this point that's thinking much too far into the future -- but i must say the code is much, much cleaner. I'm one step closer to getting the project into a redistrobutable form -- but I'd like it to do a little more before I do that..
Just to give a quick update, here is a brief list of the opcodes i have implemented thus far (and a desc. of them if they aren't obvious):
That's pretty much it :) Although there around 25 opcodes implemented and seem to behave exactly as they should. It's been a lot of work just to be able to compile some trivial math!! My next step is to start implementing string-related opcodes. I hope to have most of the basic functionality implemented by the end of April (as long as I have the time)..
While I was re-coding the PASM engine to make things more reasonable I decided to also re-write the PASM memory manager. As I've already posted the memory manager (called PMM) is available to download on my projects page. To read about the first release of PMM, it is archived here.
Thanks to those who sent me e-mails showing interest in this project so far. Your encouragement is always appreciated!