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 ... 30 31 [32] 33 34 ... 135
466
LOL!  I don't think anyone is going to make any axiom where all you have to do is type a single command to run a complete game for a simple reason: It would require them to actually make that entire game in pure assembly first!  If someone did make am entire game that complicated within the contest deadline, I would be very shocked!  If you are still trying to avoid that though, its very easy to check the source for things like that since Axioms would be part of their submitted "source" so I think this could be enforced with the rule that at least say... 70% of the size of their code must be native axe.  For example:  If the Axiom is 5kb and their executable is 6kb, then you know something is definitely suspicious about that.  But if the axiom is 1kb and their executable is 7kb, this seems like a fair usage of an Axiom.

467
The Axe Parser Project / Re: Bug Reports
« on: May 08, 2011, 01:56:37 am »
If that happened at runtime, it sounds like an error in your app, not in Axe.  And I don't see why the block error would be any different than any other because all errors are handled the exact same way other than the string they print.  I really think I need a source sample to see what you're talking about...  You can always email me privately if its a project you're trying to keep secret or something.

468
The Axe Parser Project / Re: Features Wishlist
« on: May 07, 2011, 10:29:13 pm »
Wow, this is a really dead-close poll!  Not sure what I'm going to do yet, I usually only make a change this large if there is overwhelming support for it.  And no, it doesn't affect compile time because axe has to figure out where to close the parenthesis (pop the stack) on its own already without them so it would take just as long.  This would only be a programmer convenience and wouldn't change anything at all about the compiling process or generated programs.  If you are extremely for it or against it, please state your lengthy opinions why this is either a terrible idea or an absolute necessity.

Another new feature I am adding is a new style of pointer referencing.  For any variable or static pointer you can now write {__+A} as A(__).  and {__*2+A}r as A(__)r.  Here, the variable A can also be a ram location like L1, a static pointer like Str1, and possibly a file object like Y1 if I can get that to work.  That means things like L1(7) means the same thing as in basic as it does in Axe; the 7th item in L1's memory.  I think this form will make pointers easier for beginners to understand and reduce pointer related errors.

randInt(min,max) for a range of numbers is definitely useful and I'll probably get to that in this release.  I have been working this whole week with little sleep to finish my python compiler project for class so I'm a little "compiled out" right now, but hopefully I'll get this all done soon.  My goal is to finish adding core features so that the next release after that will be 1.0.0 but we'll see what happens...


469
The Axe Parser Project / Re: Using OP variable
« on: May 05, 2011, 03:04:37 pm »
Those aren't used in Axe as variables because they are too volatile and get overridden constantly (especially OP1 and OP2) by OS routines.  Axe also uses some of that memory internally to manage grayscale during interrupts.

470
The Axe Parser Project / Re: Bug Reports
« on: May 03, 2011, 03:49:02 am »
Haha!  Interesting bug, unintentional self-modifying code... And Runer, isn't that 2nd piece of code only 17 bytes?  That's only a 2 byte total increase in size.

471
The Axe Parser Project / Re: Features Wishlist
« on: May 02, 2011, 02:59:39 am »
0.5.2 is coming out this week and I haven't actually gotten to fixing it yet so I think you'll have to wait until then.  Yeah, I forgot to mention that I added a new poll.  This is something big that I was thinking about since the start of the project.  I was avoiding the topic for a while though because I was afraid it was already too late to make a change like that, but I figured I would ask it anyway.  Even though it would break compatibility, it would be fairly easy to fix, and Axe could conceivably add extra closing parenthesis for you automatically as it compiles.

I actually already have been enforcing closed parenthesis on some commands.  I thing getkey(), all the # commands, and a few others currently require them closed right now.

EDIT: And ZippyDee, sig related! :P

472
TI Z80 / Re: Tio
« on: May 02, 2011, 02:48:00 am »
That code looks like it should work.  But since its not, there is some problem and you need to do a little debugging to figure out what it is.  Some possibilities: r6 got modified somewhere else, maybe as a 6th argument?  P at some point incremented or decremented by a number that was not a multiple of 383?  P got set somewhere else unintentionally?  You could figure these out by textual runtime debugging like I suggested, that's my primary way of fixing bugs in Axe at least.

473
TI Z80 / Re: Tio
« on: May 02, 2011, 02:40:47 am »
I guess the question for going back is, what is r6?  You can put a ClrHome:Disp P>Dec,i,r6>Dec:getkeyr inside to help you debug what the problem could be.  Same with {P+383}r.

474
The Axe Parser Project / Re: Bug Reports
« on: April 28, 2011, 04:05:29 pm »
I'm with Builderboy on this one.  I can't replicate the error.  Just to be clear, what you're describing is that the amount of RAM displayed in the memory management menu before compiling is larger than after compiling when you have an error and scroll to it correct?  To help me debug this, I need more information about how you got there:

* What shell were you compiling for?
* By how much did the memory shrink?
* How large is the source code?
* Approximately how far down the program was the error located?

475
Axe / Re: Appvar data manipulation--help needed
« on: April 28, 2011, 05:26:21 am »
...or use MemKit.  What you're describing is exactly what its there for.  It gives you the ability to insert any number of bytes into an appvar at any location, or remove bytes from a location.

476
General Calculator Help / Re: Random tokens when 3 is pressed
« on: April 28, 2011, 03:04:17 am »
Axe doesn't chain hooks, it uses the Token hook exclusively.  I'm not sure how omnicalc uses the Token hook (which is Axe's only hook) so I can't say for sure what the problem might be.

477
The Axe Parser Project / Re: Features Wishlist
« on: April 26, 2011, 11:16:07 pm »
Actually I was planning to have for-loops have a step size parameter, but it will most likely have to be a non-negative constant in order to actually optimize.  I really think the syntax for conditional gotos and subs looks a bit ugly which is why I'm planning to auto-optimize it eventually.

Quote from: Runer112
You could get their pointers from the symbol table and cache them at the start, and you'd only need 3 bytes * 5 Axioms of cache storage.
To work reliably, this would require some other kind of hook other than the token hook which I'm trying to avoid.

478
The Axe Parser Project / Re: Features Wishlist
« on: April 24, 2011, 04:30:35 am »
Runer, how do you suggest I do the token replacement?  The first problem I had was that you have to know ahead of time what Axioms are being used in the program so it knows what to replace.  That can easily be solved with your first suggestion of always requiring the Axioms to come first, but this does remove a possible convenience, however its probably worth it.  The next problem is that for each token the Axioms have to be searched for in the symbol table to find their pointers, which could be costly with a large number of programs.  Then, when finally found, each Axiom would have to be scanned completely to find if the token matches by transversing the offset list (again, for each token).  So if you had 2 Axioms with 25 new commands each, and about 20 tokens on the screen, that's 40 symbol table searches + 1000 checks + the built in checks.  I could definitely see this causing lag in the scrolling.  There might be another way of caching the data in ram somewhere, and maybe setup a binary search, but this would greatly complicate things.  The token hook is only called when tokens are being printed and I don't want to use other hooks so its difficult to have some sort of "pre-parsing".  I am however still open to suggestions of what to name the rest of the custom override tokens.

Your other suggestion, If I'm reading this correctly, is a static offset to optimize doing ld hl,dynamic_ptr; ld de,offset; add hl,de; correct?  This might be an option in the future.  There are other useful features I can think of too, like adding the ability to create Axioms that take a label as their first argument, like how the current interrupt setup command works.

479
The Axe Parser Project / Re: Features Wishlist
« on: April 23, 2011, 06:56:54 pm »
An update on my progress today:

Something I thought would be useful, but not requested yet, was to made rand dereferencable.  So now orand returns the pointer to the seed.  One use is to use {orand}r to return the most recent number generated from a rand call.  Another unintended consequence which I was at first about to fix but decided to keep is that you can use rand as the variable in a for loop!  so For(rand,0,10) will actually work and use the seed as the location to store the counter.  This is great for programs that don't use random numbers and want an extra variable.  Just beware that any call to rand will change its value (which would screw your for loop)

Another thing I added was the ability to stack Fix commands.  So "Fix 135" is the same as "Fix 1:Fix 3:Fix 5".  Also, there is now a fixed jump table built into the app so hopefully applications like DoorsCS and zStart can take advantage of using some useful Axe features externally once I release the API.

480
Axe / Re: How use the port commands ?
« on: April 22, 2011, 04:19:45 pm »
"Get" checks if a byte is trying to be sent first so it doesn't do the routine if there isn't.  Your test isn't actually reading anything so nothing is transferring which is why it appears so fast.  The last time I tested the speed, I was able to transfer the entire graph buffer in about 1.5 seconds I think, so that's somewhere near 500 bytes per second.

Pages: 1 ... 30 31 [32] 33 34 ... 135