Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Quigibo

Pages: 1 ... 19 20 [21] 22 23 ... 135
301
The Axe Parser Project / Re: Bug Reports
« on: July 14, 2011, 10:12:46 pm »
Both of those bugs should have been fixed with the 1.0.1 update.  The issue was that the swap sector was being cleared but I forgot to reset the bit to re-indicate it was the swap sector one compiling finished.  A bad flash error means that either the calculator could not find a swap sector or that flash failed to unlock.
I was using 1.0.1. The swap sector was cleared, which mean flash was unlocked.

I think a better idea, though, is to set the 0xFE byte directly after you erase the page, then use the rest of the sector as you please. After you're done, you won't have to erase it again because the identifier byte is there. (Trust me, I do this with TI-Boy)
Ah, I always thought the identifier might imply that the sector was expected to be cleared for other programs, that's why I had to erase it twice.  Its strange it didn't write the byte there the second time, I guess that would explain the bad flash error.

302
The Axe Parser Project / Re: Features Wishlist
« on: July 14, 2011, 10:02:24 pm »
By the way, I should mention that lambda currently produce 3 extra bytes of code compared to using regular label names.  Label names are also neater and allow more flexibility with code.  Lambdas are meant to be used as expressions, that is, they take in arguments and return a value.  This could maybe optimize better in the future.  Also, using variables as single byte values is less optimized than if you had just used the 2 byte form, at least until I can optimize in some 8-bit math.

303
The Axe Parser Project / Re: Bug Reports
« on: July 14, 2011, 09:53:54 pm »
Both of those bugs should have been fixed with the 1.0.1 update.  The issue was that the swap sector was being cleared but I forgot to reset the bit to re-indicate it was the swap sector once compiling finished.  A bad flash error means that either the calculator could not find a swap sector or that flash failed to unlock.

304
The Axe Parser Project / Re: Latest Updates (***DO NOT POST HERE!***)
« on: July 14, 2011, 09:43:23 am »
Axe Parser
Omega 1.0.1



Had to pull an all-nighter for this next day update.

New Features:
  • Use variables as single byte values!
  • ClrDraw now works on any buffer.
  • DrawInv now works on any buffer.

Changed:
  • Fixed bug with freezing after backing up.
  • Fixed bug with include files not being recognized.
  • Fixed the Shade() command.
  • Fixed error not showing up when using blocks inside expressions.

Caution: Use this version at your own risk.  It may require ROM clears and loss of data.

305
News / Re: Axe Parser 1.0.0 is out!
« on: July 13, 2011, 08:49:33 pm »
Due to discovered bugs, I would wait until 1.0.1 anyway which should be out late tonight.  I always expect the unexpected so I had a feeling something like this would happen.

Thanks again for all the support.  It really wouldn't have reached this level without everyone's tremendous feedback.

306
The Axe Parser Project / Re: Bug Reports
« on: July 13, 2011, 02:28:03 pm »
I'll get on that include error right away.  That should be easy to fix, I'll release a new version tonight so there is still time for the contest.

Quote
  • Inline if statements (and I mean actual inline If:.true:End statements) seem to cause problems if they are inside of the argument list for Axe commands.
  • Shade() does not load a 0 into the h register. I'm guessing you left this out because in most uses, it wouldn't matter. But it could still matter in some, like testing if the value is greater than, less than, or equal to a certain value.

Thanks!  That first one is a bug in that it doesn't error when it should when you use an if inside of parenthesis.  The colon would then cause it to end the if statement but keep the parenthesis open.

The second one was intentional.  But I can see why you'd want that for comparisons... I guess as long as I can still peephole opt the differences out I could still add the extra bytes to the command while keeping it the same size in the final program when it can be.

307
The Axe Parser Project / Re: Axe Parser
« on: July 13, 2011, 02:12:27 pm »
HELP!
My calc crashed! (because of Axe 1.0.0!)
I'd tried to do little changes:

0->{L1}^r
Fill(L1,58)

It took (my wohle game (compiled) ) 1914 bytes

Then I tried to use the new Fill( comand and compiled the game:

Fill(L1,58,0)

By the way, those are not the same code.  You would have to do Fill(L1,59,0) to be the same as before because now it zeros all 59 bytes of data since before you were manually setting one byte and then copying it to the other 58.

The bug you were talking about where it froze on backing up I had before as well on my real calculator once too.  I think I know what the problem might be, I'll try to fix it.

308
The Axe Parser Project / Re: Axe Parser
« on: July 13, 2011, 07:45:09 am »
Well its finally here!  Believe it or not, there were still a whole lot of features I wanted to add before releasing it, but the contest deadline is coming up and I've already been delaying too much so I'm going to release it now for better or worse.  Some of the changes are really dramatic, so it will definitely take some time to get used to the paradigm shifts that come with it.

So I was going to write a really long post saying how far the project has come and how much the community has helped me code, test, and popularize Axe Parser.  But then I realized that it would sound like a culmination, and I don't want it to seem at all like I'm done coding or that the parser is finalized.  Also, its 4:30 AM for me right now and I've been staying up this late this whole week trying to get this thing out the door, so I'd rather get some sleep instead.  You guys already know how awesome you are, you don't need me to tell you that  :hyper:

Hopefully there won't be any major bugs since I've been testing it with a few other people and have fixed all the bugs uncovered so far.  So have fun and hopefully everyone in the contest can adapt their code for 1.0.0, there weren't too many incompatibilities for this size of a release and all of them are extremely easy to fix.

309
The Axe Parser Project / Re: Latest Updates (***DO NOT POST HERE!***)
« on: July 13, 2011, 07:44:53 am »
Axe Parser
Omega 1.0.0


Words cannot even describe...

New Features:
  • Pixel drawing to any buffer.
  • Rectangle drawing to any buffer.
  • Line drawing to any buffer.
  • DispGraphClrDraw now has grayscale equivalents.
  • All DispGraph variants can use arbitrary buffers.
  • New hyper-optimized loop structure for repeating code.
  • Checksum command.
  • New Pt-Mask() variant that uses a single buffer and also allows inverting.
  • New ClrDraw shorthand to clear both buffers at once.
  • Optimized all loop structures and back-jumping.
  • All data is stored at the end of the program, allowing larger programs in RAM.
  • All data can be forward-declared.
  • Variable names are now up to 5 letters long and can use lowercase.
  • Symbol limit raised from 150 to over 2000.
  • New custom-named variables.
  • Warning is shown if program contains code past the executable limit.
  • New command to read OS's current contrast setting.
  • Longer, more descriptive error messages.
  • Fixed point decimal numbers can be typed in like floats in BASIC.
  • New notation for subroutine calls: MySub(Arg1,Arg2,...).
  • Peephole optimizations reduce the size of programs drastically.
  • Ternary operator for inline if expressions.
  • Emergency return command.
  • Use lambdas for functional programming.
  • Goto and subroutines can use addresses defined by expressions.
  • Referencing commands optimize better in math operations.
  • Updated documentation slightly.
  • Axioms can call other subroutines with forward offsets.
  • Fixed-point multiplication auto-optimizes constants.

Changed:
  • Colons are now inline and can be used inside expressions.
  • Sprite buffer drawing syntax has changed.
  • DispGraph user-defined buffer syntax has changed.
  • Fixed bug with EndIf not working on for loops.
  • Binary prefix is now pi instead of "b".
  • Fixed a bug that caused crashing when no programs were in the compile list.
  • Fixed a bug when nesting commands that used files.
  • Fixed the Next() command in MemKit.
  • The CompileOP1 entrypoint will not overwrite the appvar settings.
  • Flash is locked after quitting Axe for security reasons.
  • All characters should convert correctly in text.
  • Fixed a bug that allowed commas in referencing commands.

I know this is A LOT to take in, so I included a file "Changes.pdf" inside the download to better explain the changes.  I highly recommend reading it before you start playing around with it so you can use the new features to their full potential.

Caution: Use this version at your own risk.  It may require ROM clears and loss of data.

310
Yeah I tested everything.  One of them had a problem that I fixed with the buffer ordering being switched though.

311
News / Re: Donations
« on: July 12, 2011, 05:30:28 am »
I'll see if I can pledge something.

At another forum I used to frequent, they had an interesting system: If you donate, you get a cool looking "Patron" banner next to your username (a different one depending on the amount donated).  Also, at the next level, you get a domain email address.  In this case, something like "[email protected]".  At the levels after that, you get a sub-domain with some space and bandwidth also dependent on the amount.  So "www.yourname.omnimaga.org".  I think there were 4 levels ranging from 5 to 60 dollars and then you would renew it each year.

I wonder if a similar system could encourage more people to donate.  I know a lot of people here are younger and live with their parents and might not have a lot but if they tell their parents they are buying a sub domain to host their own website, it would be much more likely that they get money for that.  It wouldn't cost omni that much either, certainly far less than the pledge rate, because sites like that generally have very low bandwidth.

Just a suggestion  ;D

312
Awesome wow!  Yeah, forward djnz is about as rare as cpir.  Although I think calc84maniac's original 4 level routine used them as well but for a different purpose.

Also on the same subject, although you'll be the only one who knows what I'm talking about, all 12 DispGraph forms work perfectly now.

313
Axe / Re: Getkey Routine
« on: July 11, 2011, 02:03:17 pm »
I think I can add this since I do have simple look-ahead routines now.  I just forgot about it.

314
The Axe Parser Project / Re: Axe Parser
« on: July 08, 2011, 02:43:17 pm »
Fine!  I'll give an example since people seem to be confused... :)

Map(λ(r12),L1,100)

If you made a function map (which functional programmers should recognize) this would square the first 100 numbers of L1.  You could pass any function there, this example is a function of 1 argument.  But in general, lambda expressions are functions of r1-r6 depending on how many arguments the function is expecting.  Its as if you had made a label in your code "Lbl A:Return r12" and then passed LA (the address of the function) as the argument.  But here you don't need to assign it a label name... sort of like inline data.

315
News / Re: Farewell
« on: July 08, 2011, 08:43:57 am »
I'm 99% confident that he'll be back.  The community loves DJ, and DJ loves the community.  Sometimes it just takes time to see that and you can't see that perspective until its gone.  Me and everyone else wishes you good luck and hope you return as soon as you feel you're ready.  Maybe even return to programming...? :D

Pages: 1 ... 19 20 [21] 22 23 ... 135