I thought of cross-compiler (MS Windows program, later maybe Linux port), which would resemble Action! syntax and to be as compatible as possible with it. Here is quick and very "primitive" start, called EFFECTUS, which shows a way of doing this. The project is in ALPHA stage, it means it does not feature anything useful yet, it is just for academic purposes and to show others to make suggestions and improvements which would be implemented besides my own development. I played with the syntax and came with the current list of "features", which does not include even anything basic yet, like conditional branching, variables, etc. If I will continue with the project, there will be also some time for documentation, which would probably grow with the program.
Before brief explanation of the commands, I just want to remind you that my program relies on MADS assembler for creating assembler source code and executable file. With the help of configuration file inlcuded with the program (CONFIG.INI), you can set MADS folder, starting address of binary executable program created with MADS, Effectus source code listing, source code output and binary executable program path and filename created with MADS. Just unzip included file and extract the files in same folder. When you run the program (EFFECTUS.EXE), you can see current settings and by clicking the Process button you begin translating EFFECTUS program. The syntax is similar to Action! and currently you can play with the commands:
Graphics, PrintE, Poke, DPoke, Include, special command ASM and my custom library procedure KeyPressed. Some of the procedures are featured in RUNTIME.ASM, which is supposed to be runtime library for created binary programs. This can be changed by you as you desire, the same goes for all included libraries which you make.
From the demo program listed in the folder, called TEST.EFF, you can see actual syntax, so I will not deal with it here right now. There is no checking of the listing by any means, just test of something which does not really exist yet. Procedure ASM is just simple way of directly putting actual ASM code to MADS source code listing. I used it (for now) to include example of custom library function / procedure in the program. Check demo programo and LIB.EFF library. From the source code you can see that parsing of LIB.EFF creates the LIB.ASM, accordingly. The result of MADS can be found in OUTPUT.TXT, so you can see if assembling was successful.
To see an example, you can run TEST.XEX in Atari emulator or real thing.
Try EFFECTUS and make suggestions and criticism for the program. I will explain inner workings and logic of the source code made by Effectus in next installments if you want.
Edited by Gury, Thu Sep 20, 2007 12:06 PM.