Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
20 May, 2013, 02:24:22 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: 1 2 [3] 4 5   Go Down
  Print  
Author Topic: Documentation of the Speed and Size of (Almost) Every Axe Command -  (Read 5804 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
ZippyDee
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 12 May, 2013, 10:03:36
Date Registered: 21 March, 2011, 03:15:07
Location: Yes.
Posts: 704


Total Post Ratings: +73

View Profile
« Reply #30 on: 30 March, 2011, 22:52:10 »
0

But what causes it to not be usable at 15MHz?
Logged

There's something about Tuesday...


Pushpins 'n' stuff...

Munchor
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 07 May, 2013, 22:49:01
Date Registered: 16 October, 2010, 15:39:13
Location: Position
Posts: 6209


Total Post Ratings: +174

View Profile
« Reply #31 on: 30 March, 2011, 22:53:08 »
0

But what causes it to not be usable at 15MHz?

Its assembly code, somehow. Runer must have tried to optimize the code in a way that makes it impossible to 15MHz I guess.
Logged
ZippyDee
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 12 May, 2013, 10:03:36
Date Registered: 21 March, 2011, 03:15:07
Location: Yes.
Posts: 704


Total Post Ratings: +73

View Profile
« Reply #32 on: 30 March, 2011, 23:01:20 »
0

I know it's assembly. I understand that some optimization makes it impossible with 15MHz. But what's different at 15MHz than 6MHz?
Logged

There's something about Tuesday...


Pushpins 'n' stuff...

Freyaday
The One And Only Serial Time Killing Catboy-Loli-Ballerino
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Yesterday at 22:39:39
Date Registered: 24 February, 2011, 17:10:56
Location: ¿¿¿
Posts: 1887


Total Post Ratings: +108

View Profile WWW
« Reply #33 on: 30 March, 2011, 23:06:11 »
0

The screen needs a delay of about 10microseconds between inputs, otherwise it shows garbage (not the band, sadly). @6MHz the processor is slow enough that this isn't a problem, but @ the higher speed it's faster than that.
Logged

In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


Beware the Bitulator! ,.,./`My Artwork!
Deep Thought
So much to do, so much time, so little motivation
Administrator
LV13 Extreme Addict (Next: 9001)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:18:47
Date Registered: 19 May, 2009, 08:00:00
Location: The Universe
Posts: 7813


Total Post Ratings: +706

View Profile WWW
« Reply #34 on: 31 March, 2011, 05:16:32 »
0

The screen needs a delay of about 10microseconds between inputs, otherwise it shows garbage (not the band, sadly). @6MHz the processor is slow enough that this isn't a problem, but @ the higher speed it's faster than that.

Yeah. Basically there is a delay included in the routine, and it's long enough in 6 MHz mode, but the 15 MHz processor goes through the delay too quickly.
Logged




ZippyDee
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 12 May, 2013, 10:03:36
Date Registered: 21 March, 2011, 03:15:07
Location: Yes.
Posts: 704


Total Post Ratings: +73

View Profile
« Reply #35 on: 31 March, 2011, 06:17:33 »
0

Is there no way to tell which mode it's in and only have it delay if it's at 16MHz?
« Last Edit: 31 March, 2011, 06:18:23 by ZippyDee » Logged

There's something about Tuesday...


Pushpins 'n' stuff...

Runer112
Anti-Riot Squad
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:52:49
Date Registered: 02 July, 2009, 06:38:05
Posts: 1679


Topic starter
Total Post Ratings: +492

View Profile
« Reply #36 on: 31 March, 2011, 06:18:44 »
0

In the next version of Axe, Quigibo will releasing a fix that puts the calculator in 6MHz mode before running the DispGraph routine and then returns it to the CPU speed it was previously running at when it finishes.
« Last Edit: 31 March, 2011, 06:19:50 by Runer112 » Logged
ZippyDee
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 12 May, 2013, 10:03:36
Date Registered: 21 March, 2011, 03:15:07
Location: Yes.
Posts: 704


Total Post Ratings: +73

View Profile
« Reply #37 on: 31 March, 2011, 07:05:14 »
0

Awesome Cheesy That sounds like it'll make it much easier.
Logged

There's something about Tuesday...


Pushpins 'n' stuff...

Runer112
Anti-Riot Squad
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:52:49
Date Registered: 02 July, 2009, 06:38:05
Posts: 1679


Topic starter
Total Post Ratings: +492

View Profile
« Reply #38 on: 17 May, 2011, 02:43:25 »
0

Updated for Axe 0.5.2. As usual, the updated file is attached to the first post. I'm also going to start a more detailed changelog, in case people are interested in knowing what exactly changed between versions of Axe. [NEW] denotes new Axe commands, [CHG] denotes changed Axe commands, and [FIX] denotes commands that haven't changed but have corrected information.

Changes:
  • [FIX] Header size information
  • [FIX] Added notes specifying that most 2-byte backwards loading commands are broken
  • [CHG] Negative 8-bit constant equality checking (e.g. =⁻42) now works
  • [NEW] Trivial comparisons ≥0, >65535, ≤65535, and <0
  • [CHG] Constant unsigned comparisons ( > <) are smaller and faster  —  ~2 bytes smaller, ~8 cycles faster
  • [CHG] >VAR and <EXPR optimized for size  —  1 byte smaller, 5 cycles slower
  • [NEW] Optimizations for bitwise logic operations with constant operands
  • [NEW] Optimized For() loops if the upper bound is a constant  —  1 byte smaller, 17 cycles faster
  • [CHG] Nibble reading commands changed as a result of a bug fix and are now big-endian
  • [NEW] Routine for preserving CPU speed and interrupt status before display commands
  • [CHG] Adjusted all buffer display commands for the addition above
  • [FIX] Speed estimates for commands that access the LCD
  • [CHG] Full is smaller and faster  —  1 byte smaller, 3 cycles faster
  • [CHG] All GetCalc() routines properly handle pointers to real and complex float variables
  • [CHG] Archived variable locating routine optimized for size  —  5 bytes smaller
  • [CHG] Pt-Mask() bug fix to work properly for aligned sprites
« Last Edit: 17 May, 2011, 02:47:32 by Runer112 » Logged
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 01:38:14
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50202


Total Post Ratings: +2611

View Profile WWW
« Reply #39 on: 17 May, 2011, 02:46:48 »
0

Nice, thanks for this Cheesy
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
Quigibo
The Executioner
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 18 May, 2013, 00:55:01
Date Registered: 22 January, 2010, 05:02:37
Location: Los Angeles
Posts: 2022


Total Post Ratings: +1019

View Profile
« Reply #40 on: 17 May, 2011, 23:43:40 »
0

Just wanted to mention one other thing to add to the list; I turned the DispStrApp and TextStrApp inline routines into subroutines.
Logged

___Axe_Parser___
Today the calculator, tomorrow the world!
Runer112
Anti-Riot Squad
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:52:49
Date Registered: 02 July, 2009, 06:38:05
Posts: 1679


Topic starter
Total Post Ratings: +492

View Profile
« Reply #41 on: 18 May, 2011, 00:01:29 »
0

Ah, so you have. I checked for that because I know I had suggested that change, but after a quick glance and not seeing any returns on the end I figured they hadn't changed. I didn't think to look for the conditional returns in the middle of the routines.
Logged
Runer112
Anti-Riot Squad
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:52:49
Date Registered: 02 July, 2009, 06:38:05
Posts: 1679


Topic starter
Total Post Ratings: +492

View Profile
« Reply #42 on: 28 May, 2011, 19:06:16 »
+1

Updated for Axe 0.5.3. As usual, the updated command information document is attached to the first post.


Changelog:
[NEW] denotes new Axe commands, [CHG] denotes changed Axe commands, and [FIX] denotes Axe commands that haven't changed but have corrected information. Red denotes a bug. Green denotes a change that I deem to be awesome.

  • [CHG] All 2-byte big-endian loading and storing commands now work
  • [FIX/0.5.2 CHG] Added trivial math operations +0, -0, *0, *1, *65535, /0, /1, //0, //1, ^1, ^65535        (If you're reading this Quigibo, did I miss any?)
  • [FIX/0.5.2 CHG] Added notes specifying that //0 and ^65535 are mathematically incorrect
  • [CHG] Any of the trivial math operations listed above that result in no compiled code cause a crash during compiling
  • [NEW] Increment and decrement operators ++ and --
  • [CHG] Nibble storing routine adjusted to access nibbles in big-endian format, like the nibble reading routines
  • [FIX/0.5.2 CHG] The routines to draw strings in applications converted into subroutines
  • [FIX] Adjusted the cycle estimates for p_NewLine, p_ClearScreen, and p_SaveToBuffer
  • [CHG] Optimized p_FastCopy  —  1 byte smaller, 1548 cycles faster
  • [CHG] Optimized p_DrawAndClr  —  2 bytes smaller, 1548 cycles faster
  • [CHG] Optimized p_DispGS  —  ~5000 cycles faster
  • [CHG] Speed-optimized p_Disp4Lvl and improved grayscale quality  —  3 bytes larger, ~7500 cycles faster
  • [FIX] Adjusted the cycle estimate for p_DKeyExpr
  • [FIX] Adjusted the cycle estimate for p_Div
  • [FIX] Adjusted the cycle estimate and notes for p_SDiv
  • [NEW] 8.8 fixed point reciprocal command -1  —  29 bytes, ~1349 cycles
  • [CHG] Division and signed division have a bug that will cause them to always return 0 if the divisor is greater than 255
  • [CHG] Speed-optimized p_Sqrt  —  15 bytes larger, ~5500 cycles faster
  • [FIX] Added a note mentioning that p_FlipH can produce a garbage sprite
« Last Edit: 28 May, 2011, 19:12:19 by Runer112 » Logged
Munchor
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 07 May, 2013, 22:49:01
Date Registered: 16 October, 2010, 15:39:13
Location: Position
Posts: 6209


Total Post Ratings: +174

View Profile
« Reply #43 on: 28 May, 2011, 21:18:22 »
0

Nice Runer112, cool you keep us updated Cheesy

Also, is there a chance this can be released with Axe?
« Last Edit: 28 May, 2011, 21:18:37 by Scout » Logged
Runer112
Anti-Riot Squad
LV10 31337 u53r (Next: 2000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 19:52:49
Date Registered: 02 July, 2009, 06:38:05
Posts: 1679


Topic starter
Total Post Ratings: +492

View Profile
« Reply #44 on: 28 May, 2011, 21:36:27 »
0

If Quigibo wanted to release this with Axe, he'd either have to keep it up to date himself or give me new versions of Axe about a day in advance so I can update the file and give it back to him. Supposedly we're very close to Axe 1.0.0 though, for which he may or may not want a file like this being packaged into the sort of "final" version.
Logged
Pages: 1 2 [3] 4 5   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.293 seconds with 30 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.