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 ... 31 32 [33] 34 35 ... 135
481
The Axe Parser Project / Re: Assembly Programmers - Help Axe Optimize!
« on: April 20, 2011, 07:58:47 pm »
That's actually impossible since its a form of the Halting Problem.  It could be faked by some extent but it would be incredibly inefficient. Runer, I'll get those routines up soon.

482
The Axe Parser Project / Re: Assembly Programmers - Help Axe Optimize!
« on: April 20, 2011, 06:08:32 pm »
I'll think about it.  I'm not sure how often square roots are actually needed and how applicable they are to speed constraints.

Another thing, I'm adding new auto-opts for constants in the comparisons (less than, less than or equal to, greater than, and greater than or equal to).  I have found nice optimizations for powers of 2 and some low numbers, but if anyone wants to try writing some, I could definitely use them.  I probably missed some or may have sub-optimal solutions.

483
The Axe Parser Project / Re: Question
« on: April 19, 2011, 12:41:03 am »
If you're using a tilemap, you should definitely not be using pixel by pixel collision detection.  Since you already have the tilemap data, its much easier to just write a quick tile detection routine that gets the current tile at a given (x,y) on the map.

484
The Axe Parser Project / Re: Features Wishlist
« on: April 18, 2011, 09:42:50 pm »
Also I edited the top page poll, because it was left without an edit for far too long.

Hehe, I can take a hint :P  Added a meaningful poll.

I was thinking of adding ++ as an operator for single byte variables because it could lead to a huge optimization there (but not to the 16-bit variables).  So A++ would translate to:
Code: [Select]
ld  hl,axv_A
inc (hl)

Which is NOT the same as A+1->A.  This is because here A represents the Axe "A" variable as just a single 8-bit byte and so 1++ becomes 2, but 255++ becomes 0 again.  And similarly, {B+L1}-- becomes:
Code: [Select]
ld  hl,(axv_B)
ld  de,axr_L1
add hl,de
dec (hl)

485
The Axe Parser Project / Re: Axe ClrDraw
« on: April 18, 2011, 03:44:22 pm »
No, I use the bcall because its small.  Its easy to write in Axe though, its just:

:0->{L6}r
:Fill(L6+1,766)


So you can make it fast yourself if your balance is more towards speed instead of size.

486
The Axe Parser Project / Re: Regarding the upcoming Summer competition
« on: April 17, 2011, 02:39:01 pm »
I'm personally not for an "Axe Only" competition this summer.  It was nice last time because it was new and unique and gave it an establishing kick into the community.  But instead, I would like to see an ASM category for the next competition which would include axe programs.  I think because development speed for Axe programs is significantly faster than ASM, most entries in such a contest would probably still be Axe programs.  And if Axioms are used the way I'm hoping, then the pure ASM programs would have very little advantage in any game development competition.  This also gets rid of any notion of cheating from using certain Axe commands.

I'm not trying to discourage any plans DJ might already have though, this is just my opinion.

487
Miscellaneous / Re: Tutoring
« on: April 17, 2011, 02:13:57 pm »
I used to tutor high school math, physics, and chemistry for about 3 years during the end of high school and after it.  Most people I tutored, I tutored somewhat regularly, but there were also people like you said that only called me before exams.  Its generally the concerned parents, not the students, that want to have regular tutoring.

488
Axe / Re: Reading and parsing a string
« on: April 14, 2011, 09:45:21 pm »
You do realize there was a new command added in 0.5.1 to compare string equality right ?  Equ>String(Str1,Str2)  ;)

489
The Axe Parser Project / Re: Axiom Requests
« on: April 14, 2011, 05:34:08 am »
Well, he's using only one byte at a time anyway, so its perfectly fine and more optimized to just do the 8 bit operation.  You could "or" the screen 2 bytes at a time too, but I'm not sure which way would be faster.

490
In the future, after 1.0.0 is released, I though of an idea of how I could bring Axe to the computer platform officially.

Instead of emulating Axe at the assembly level, I could write a compiler instead that takes z80 source code and converts it to C code or whatever language, compile that, add some fancy GUI stuff and an editor, and poof!  Done.

Low to high level language compilers are easy and don't have to be very efficient.  There is a very limited number of assembly instructions anyway and the actual z80 source only needs to be modified slightly for the different input output standards I would need.

491
General Calculator Help / Re: My calc mess up horizontal lines
« on: April 14, 2011, 01:50:53 am »
Is it because you're drawing text over it?  You should draw the text first and then the horizontal line after.  There is a text flag somewhere to tell it if the bottom row of text should overwrite what's under it (or something like that) so its possible that got flagged on your calc.  A ram reset would restore everything though.

492
The Axe Parser Project / Re: Features Wishlist
« on: April 11, 2011, 04:05:05 pm »
This reminds me, would the new stack commands conflict with operations that implicitly use the stack? For example, A->π B-(π+C) would in theory compile to something like:
Code: [Select]
ld hl,(axv_A)
push hl
ld hl,(axv_B)
push hl
pop hl
ld de,(axv_C)
add hl,de
pop de
ex de,hl
or a
sbc hl,de

Long story short, the pops would happen in the wrong order. How will this be handled?

Ah, but this is exactly my point about scoping!  Because of those extra parenthesis after the subtraction, those stack calls would not be in the same scope and therefore be illegal.  This is one of the reasons I don't want to support an override for the scope checking because it would be very confusing and incompatible with future versions if any of the underlying stack usages in the background of the program change.

The Returnr is a good idea, but that implementation won't work because pointers actually are being added to the code in the first pass for labels.  The second pass just fills in static storage and built-in subroutines.  I might still try to come up with another way though.

493
ASM / Re: Really Long Source Code
« on: April 10, 2011, 05:31:23 pm »
My editor has an instant search box in the upper right hand corner.  All label names in my program end with a colon so if I want to jump to a label, I just enter the label name plus colon and it instantly jumps to that line.  Very useful for large files.  I also keep other tags like TODO and FIXME around for easy access.  That and general categorization of the code makes it manageable.  I actually find it faster than some of my other projects that I've split into separate files because you don't have to switch back and forth.

494
The Axe Parser Project / Re: Features Wishlist
« on: April 10, 2011, 05:00:54 pm »
I've decided to try to incorporate Axe into zStart. But since Axe is constantly being changed, I can't statically link to addresses within it.

So my request is a call table that's at a static location that outside programs can call. The only two calls I can see needing though are:
-Compile OP1
-Set Axe Hooks

I want the Compile OP1 so I can make a button that compiles an Axe program. Preferably, have it display everything it normally does when compiling a program, and then just return. With enough hacking, this might even allow for an on-computer compiler.

And the set axe hooks would be so that even after ram clears, you have Axe's token set.

Yes, I was definitely planning on adding hooks within Axe for external compiling.  Next update would be a good time to add them.

EDIT:  The only problem though is that Axe uses almost all of the free ram locations when compiling so you'd have to be extremely careful if you want your program to resume after the compile.

495
The Axe Parser Project / Re: Bug Reports
« on: April 10, 2011, 03:34:18 am »
Oops!  Forgot to check for that.  Looking at the code, if you're not using a letter, it subtracts the value of the token from the value of the "A" token to figure out where in memory it should be.  So if for instance, the token is value 200 and the A token is 32, then its looking at memory location (oA+(200-32)*2) wherever that is.  I'll have that fixed next version.

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