ALE Assembly Language Engine 1.0 is available for download

Hi Everyone,

Well ALE Version 1.0 is now available for download and testing, so I’m shaking in my socks, never done this before. Version 1.0 is really only a proof of concept version so more functionality is going to be added in the future. This version is designed for XOJO 2021 R2.1. Please let me know of any issues you find and maybe send me the ALE code with the error. Please post any comments or feedback.

Limitations:

  1. The only one I can think of at this point is that Version 1.0 has no true variable support in the assembly language though you can easily allocate memory on the stack as a work around for the moment. Variables will be added in a later version.

Points to Note:

  1. As will real assembly coding there is no bounds checking on reading and writing to the stack, so make sure you’re addressing memory locations within the stack or you will crash the program. I hope to add some form of bounds checking later if I can work out a method which does not impact performance, though that is counter to on the edge assembly coding.

  2. The stack in ALE is actually composed of floating point values, so if you’re using a stack location as a pointer be sure that the value within is an integer or you might get some unexpected results. It won’t crash the program but the value will be Floored to remove any floating points.

First things to try:

  1. Load the ALE Code Development Program, then import the ALE module and save. Run the program then click “Simple Loop” then click “ECX” in the stack viewer and write a large value into it, then click “Loop with User ECX” I’d be interested in the execute times you get both in the IDE and built. Post the loop count and execution times back here so others can check.

Download Link:

Regards

Trig

4 Likes

Congratulations Trig, this looks interesting.

I’m curious why you chose to make the module encrypted?

Hi Kem,

I want to be able when providing support to know that the engine hasn’t been modified in anyway, that way I can test a person’s problem code within my own version of that engine. If I allowed the engine to be modified then it would be extremely hard to supply support without knowing what changes were made to the engine.

It seemed the best way to be able to do that.

Regards

Trig

Would you provide unencrypted versions privately? Some (like me) won’t fully explore an otherwise valuable contribution if we can’t peek behind the curtain of a free offering.

1 Like

I usually delete encrypted code right away. The author loses interest, something fucks the code up and so the encrypted code becomes useless. I don’t necessary want to poke around.

3 Likes

Really interesting work @Trig_Charters - well done.

If this is a free project then I echo Ken’s call to open source the code. I’m much more interested in how the the project works than worrying about getting support if I tweak it.

1 Like

Hi Everyone,

Sorry but for the moment while I continue development I would like to maintain control of the code, should I lose interest or discontinue the project I’ll certainly make the code available. Also just to clarify this is not a freeware product but donation ware as specified in the License information.

Kind Regards

Trig

I understand what you mean, Beatrix, but 99 % of the software that I use is closed source. Certainly not without reason.

1 Like