Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
About
Team
Rules
Stats
Status
Sitemap
Chat
Downloads
Forum
News
Our Projects
Major Community Projects
Recent Posts
Unread Posts
Replies
Tools
SourceCoder3
Other Things...
Omnimaga Radio
TI-83 Plus ASM File Unsquisher
Z80 Conversion Tools
IES TI File Editor
Free RAM areas
Comprehensive Getkeyr table
URL Shortener
Online Axe Tilemap Editor
Help
Contact Us
Change Request
Report Issue/Bug
Team
Articles
Members
View the memberlist
Search For Members
Buddies
Login
Register
Omnimaga
»
Forum
»
Calculator Community
»
Major Community Projects
»
The Axe Parser Project
(Moderator:
Runer112
) »
Latest Updates (***DO NOT POST HERE!***)
« previous
next »
Print
Pages:
1
2
3
[
4
]
Go Down
Author
Topic: Latest Updates (***DO NOT POST HERE!***) (Read 86689 times)
0 Members and 3 Guests are viewing this topic.
Runer112
Project Author
LV11
Super Veteran (Next: 3000)
Posts: 2289
Rating: +639/-31
Re: Latest Updates (***DO NOT POST HERE!***)
«
Reply #45 on:
November 22, 2012, 07:24:24 pm »
Axe Parser
Omega 1.2.0
It'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:
²
r
Labels 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
L
1
is now 768 bytes long by default.
When pointed into a variable in RAM, the
Y
1T
and
Y
2T
variables will be updated automatically if the variable is moved.
The
X
1T
and
X
2T
variables will act similarly when pointed into a VAT entry.
The
X
4T
-
Y
6T
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!
Logged
Runer112
Project Author
LV11
Super Veteran (Next: 3000)
Posts: 2289
Rating: +639/-31
Re: Latest Updates (***DO NOT POST HERE!***)
«
Reply #46 on:
December 16, 2012, 08:01:22 pm »
Axe Parser
Omega 1.2.1
As expected, I introduced some issues with 1.2.0. So here's a few bug fixes and improvements, with some new features to boot!
New Features:
BIG NEWS:
Every geometry drawing command (lines, circles, and rectangles) can be drawn as black, white, or inverted! For black, use them as normal; for white or inverted, put a
W
or an
I
right before the command.
New
HLine()
and
VLine()
commands (also in black, white and inverted). That's the letters
H
or
V
followed by the
Line( token
. They can be used to draw all the way across the screen, like
HLine(Y)
, or line segments, like
HLine(Y,X1,X2)
.
New 8*8 sprite routine:
Pt-And(X,Y,SPRITE)
(this is the
Plot3(
token).
Added
For(EXPR)
r
, which treats
EXPR
as an 8-bit value; good for really fast, compact loops with a variable number of iterations.
Added
LnReg
r
, which repairs what custom interrupts destroy (table data). Please use this instead of the normal LnReg when disabling custom Axe interrupts!
Constant expressions can now be included in blocks of inline assembly. For example:
Asm(11(°Data+8))
to include a 2-byte value, or
Asm(3E(°MapW)
r
)
to include a 1-byte value.
To help fix future bugs, you can now press STAT upon errors during compilation to dump a bunch of data. Copy it down and send it to me, and it should hopefully make isolating strange bugs easy!
Changed:
Adjusted the 4-level grayscale routine masking code to look *nearly* as good as pre-1.2.0 with the speed of 1.2.0.
Moved custom interrupt data out of
L
2
(statVars) so it can be used with a custom interrupt enabled.
Slightly optimized all the sprite, rectangle, and line drawing commands.
Your lowercase setting will be remembered and restored if you run Axe after a RAM clear.
Improved the progress bar when compiling in terms of both aesthetics (at least I think so) and speed.
Optimized to use less power when doing nothing!
Added even more delay to the direct key input routine. Hopefully there will be no more freak issues with it on any calculators.
Fixed a long-standing bug that has been resulting in some routines (like the modulus routine) being added twice.
Fixed a bug with rectangle clipping.
Fixed special tokens not being properly converted to characters (like 'appv').
Fixed compiling as an application possibly leaving random data at the end of the application name.
Fixed token replacements not working for archived Axioms.
Known Bugs:
3-argument
HLine()
and
VLine()
cause crashes.
Inverted circles are missing a few pixels.
«
Last Edit: December 19, 2012, 12:52:57 am by Runer112
»
Logged
Runer112
Project Author
LV11
Super Veteran (Next: 3000)
Posts: 2289
Rating: +639/-31
Re: Latest Updates (***DO NOT POST HERE!***)
«
Reply #47 on:
October 25, 2013, 06:12:09 pm »
Axe Parser
Omega 1.2.2
I've been quite busy with school (and generally lazy to boot), sorry it's been so long since the last update. The Axe application is bursting at the seams, so it's difficult for me to fit in new language features, but I fit in a few. The primary focus of this release is to improve stability, so a lot of the new things in this version are application usability improvements and bug fixes.
If there are any outstanding bugs, even if you've reported them before, or if you find any new bugs, please report them in the
Bug Reports
thread. I'd like to get Axe to be as stable as reasonably possible, and you can help.
New Features:
New command to call the OS keypad scanning function:
getKeys
(or
getKeyS
). A useful application is to put this in your custom interrupt so you can use
getKey
and
getKey
r
in your program like normal.
New command to set the LCD's z-address:
ZInterval #
.
New commands that suspend annoying things for the remainder of your program:
Full
r
and
Full
rr
. The former suspends any memory delays on non-83+ calculators and the latter suspends Horiz mode (forces a ClrHome upon execution and when your program returns). These commands will not properly restore the suspended settings if you use
Return
r
!
Added a new form of calling
inData()
for which you specify the length of the data to check:
inData(BYTE,PTR,SIZE)
. No issues when searching for zero!
Axe no longer disables Horiz or G-T modes.
APD can now activate, so accidentally leaving Axe running won't drain your battery so much.
Error if application being compiled will be too large after the first pass instead of the second pass.
Using lowercase letters in the output name header will throw an error when not compiling as an application.
Generally more robust source file header parsing and validation, including being able to jump to errors in headers.
Changed:
Renamed
sign{}
to
signed{}
and renamed
stdDev()
to
strGet()
for clarity.
Optimized direct key input slightly.
***If your calculator has had key port (delay) problems related to
getKey(#)
, please test that direct key input works.***
[Jacobly] Greatly optimized the speed of high-order and fixed-point multiplication.
[Jacobly] Optimized circle drawing slightly.
Changed the default varaible location again, this time into smallEditRam. The previous location conflicted with MathPrint.
Reorganized the command list slightly.
Fixed sometimes getting stuck in an infinite key wait loop after an error.
Improved the error dumper with more debugging information for me!
FIXED THE SEEMINGLY RANDOM COMPILING FROM ARCHIVE ERRORS THAT HAVE PLAGUED AXE SINCE 1.0.0! Big thanks to shmibs for helping me debug this!
Fixed some parsing issues with
For()
r
.
Fixed 3-argument
HLine()
and
VLine().
Fixed inverted circle drawing.
Fixed
?Hex
and archived value reads in programs compiled for Axe Fusion.
Fixed an error with the use of special OS variable names, like
Pic2
, in strings.
Fixed an obscure bug caused by putting
r
2
-
r
6
immediately before a function call.
Fixed error scrolling with zStart crashing for archived source programs that span multiple archive pages.
Fixed 8-character names immediately throwing an error when trying to compile applications.
Fixed multiple bugs with application writing, including not recognizing when there was no space for the application.
Fixed an error being thrown when compiling a program whose target already exists in archive after a fresh garbage collect. Thanks to thepenguin77 for helping me debug this!
Fixed other bugs I forgot about.
«
Last Edit: October 29, 2013, 04:06:41 pm by Runer112
»
Logged
Print
Pages:
1
2
3
[
4
]
Go Up
« previous
next »
Omnimaga
»
Forum
»
Calculator Community
»
Major Community Projects
»
The Axe Parser Project
(Moderator:
Runer112
) »
Latest Updates (***DO NOT POST HERE!***)