0 Members and 1 Guest are viewing this topic.
Axe ParserOmega 1.2.0It's Thanksgiving, and this year, we can all give thanks for Axe living on! Just temporarily under new management. New Features:Have the need for speed? Using #ExprOn will request that all following code and called Axe routines be optimized for speed instead of size! Using #ExprOff does the reverse. Currently this only affects a few Axe routines (*, Pt-On(), Pt-Change(), DrawInv, Horizontal+/-, >Hex), but more will come! Axe Fusion always uses the fastest Axe routines available.Continuing with the speed theme, DispGraphRecallPic has been added! It's the same as DispGraph and then RecallPic, but it's almost as fast as DispGraph alone.Fixed point division! Syntax is: /*Fixed point square! Syntax is: ²rLabels and constant names can be up to 13 characters long!No longer corrputs the OS when unlocking flash!Even shinier commands list! BIG thanks to jacobly! I'm also trying to add size and speed data for everything; it's a work in progress, so please excuse errors/missing values for now.Full support for big endian variables.Signed min() and max(): just throw on an r.Changed:Better string parsing, including spelling out multi-character tokens, more reliable "var", and "grp" (w) is now "tmp"; these arbitrary-size variables will be automatically deleted on exiting.Optimized most DispGraph variants: all but 4-level DispGraphClrDraw are smaller, which is larger because...4-level DispGraphClrDraw is about 15% faster. Also, 4-level DispGraph is about 5% faster.Optimized >Hex, stdDev(), Horizontal-(EXPR), getKey(EXPR), -1, interrupts, and all archived variable routines slightly.Optimized more stuff that I forgot.nib{}r now always reads from the half of memory your code exists in.inData(0,DATA) now returns 0, so no more adding 1 to all your key checks!ln(0) now returns -1, it seems slightly more proper than 255.Disp >Tok accepts the same argument type as Text >Tok.Added "signed" equal and not equal operators.Added optimizations for ^10, //0, and //-1, not that the latter two will ever be needed.The A-theta variables have been moved, so L1 is now 768 bytes long by default.When pointed into a variable in RAM, the Y1T and Y2T variables will be updated automatically if the variable is moved.The X1T and X2T variables will act similarly when pointed into a VAT entry.The X4T-Y6T variables have been added.Slightly larger but faster multiplications by some large powers of 2.Fixed a bug when a string displayed in an app went offscreen.Fixed drawing sprites to arbitrary buffers.Fixed rectangle clipping.Fixed the size of the stdDev() subroutine.Fixed some Axe fusion-related bugs.Fixed some bugs with the token hook.Fixed some bugs with comments.Fixed some peephole optimization bugs.Fixed a silly typo in an error message.Fixed many errors in the command list.Fixed many other bugs that I forgot about.And probably introduced some bugs!
Yay Only problem... I can't send stuff to calc anymore. Did the syntax change a lot?
I seem to be having strange problems with an Invalid-Token error that pops up randomly
oh, i did notice one thing that i've never seen before, though. trying to compile an app that already exists on the calculator usually just overwrites the old one successfully. however, this last time i tried it crashed immediately after "defragmenting".