0 Members and 3 Guests are viewing this topic.
Axe automatically adds ending NULs to the end of strings.
The runprgm Axiom lets you convert an assembly/Axe program into an appvar, and execute it. The only difference between a program and an appvar is the type byte, so it was easy functionality to implement. Of course, the program is still copied to RAM and run from RAM. Executing an appvar in flash without coping it to RAM is just too much of a headache, due to both the need to change the execution permissions (requires unlocking flash), and the fact that the location would be variable and might cross page boundries. If you really want execution from flash, use an application.
Quote from: DrDnar on December 22, 2012, 02:43:28 pmThe runprgm Axiom lets you convert an assembly/Axe program into an appvar, and execute it. The only difference between a program and an appvar is the type byte, so it was easy functionality to implement. Of course, the program is still copied to RAM and run from RAM. Executing an appvar in flash without coping it to RAM is just too much of a headache, due to both the need to change the execution permissions (requires unlocking flash), and the fact that the location would be variable and might cross page boundries. If you really want execution from flash, use an application.The problem is that with that axiom I can't call functions that are not part of the appvar/the prog.
DGInit()...DG()...Lbl DGIf C-1→CDispGraphReturnEndDispGraph(L₃)Lbl DGInit3→CReturn
I see two things that I think are not right :MaxLength and the actual length of the array both take 1 byte. That's not enough in most situations. For example, in IkarugaX my bullet engine handles 192 bullets, and each bullet is an 11-bytes entry. 192 * 11 = 2112, which won't fit in 1 byte.
I can't see any function to retrieve individual elements from an array ...
Also, IMO in LScanD you should just stop the scan instead of deleting the current element if HL ≠ 0.
MAP(LIST, log(Pxl-On({r1}, {r1+2}, {r1+3}*8+Pic1))