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 ... 100 101 [102] 103 104 ... 135
1516
Miscellaneous / Re: Birthday Posts
« on: May 14, 2010, 02:28:05 am »

1517
Miscellaneous / Re: Birthday Posts
« on: May 14, 2010, 01:56:58 am »
I almost forgot it was my birthday :P

I once had my birthday the day before the AP Chem test so I ended up spending the whole day studying :(

1518
Axe / Re: MirageOs/Ion issue
« on: May 14, 2010, 01:15:21 am »
All commands work in all shells, the problem is just that I can't use the built in commands that come with Ion/MOS instead to save space.

EDIT: 500th post  :o

1519
The Axe Parser Project / Re: ASM Routines - Source Code
« on: May 14, 2010, 01:10:00 am »
That one is actually really complicated, the Parser itself uses an algorithm to determine what to make H and L.  That's why I require the number for direct keys to be constant instead of variable becasue it would be way too slow to have to convert it each time its trying to detect a key.

Anyway, H is the key group and L is the bit inverse of the key code I think.  There's a chart on day 22 of the learn z80 in 28 days tutorial you can use for reference.

By the way, I haven't updated the list with new commands since the last few versions.  If anyone wants any just ask and I'll post them up here.

1520
It uses a absolute calling, so you can't have a pure hex version unless you know the exact address this code is going to be inserted.

1521
The Axe Parser Project / Re: Features Wishlist
« on: May 14, 2010, 12:49:09 am »
Just curious, would it be useful to set and get exact bits in the 2 byte number?  Like "get the 11th bit" and "set the 2nd bit" or is it more useful to have the Nth bit with N being variable?  Unfortunately, these routines with variable bits are kinda big.  Big enough where they wouldn't be inline like the constant bit checking and I would make it a subroutine to save space.

I might be able to do both, but I'll have to come up with some clever syntax.

By the way, I just coined a new term: "Axe Hax" for clever exploits of Axe commands. :)

1522
Portal X / Re: Portal X
« on: May 14, 2010, 12:40:03 am »
I'd definitely like to help you optimize.  I haven't been programming in Axe as much as I should, I really should see what repeated actions programmers do the most and try to make optimized assembly routines for both those due to readability in the source as well as smaller faster execution.

1523
Axe / Re: Pointers memory location
« on: May 14, 2010, 12:28:38 am »
After re-reading your post, it sounds like you're worried that if you have too much data in one pointer location, that it would somehow be possible to overflow into another pointer location?  It would never happen.  If you had that much data, the program would not compile becasue it would be past the program size limit.

What you might also be asking is how to make sure that when writing over data in Str1 (I assume a string in memory) it doesn't overwrite anything in Str2 (A string in memory right after Str1)

This is simple.  First, if you know what size Str1 is, lets say the string is 20 characters long, then just make sure you don't write past 20 characters.  If you don't know the length off-hand, then just make sure that the pointer is less than the Str2 pointer.  This routine writes a character D to Str1 at position A only if it does not overflow into Str2:

:If Str1+A<Str2
:D->{Str1+A}
:End

Sorry if I'm misunderstanding the question.  I will now explain how Axe decides what pointers to assign to your data.  During the first parsing "pass", it creates the entire program minus the data.  On the second pass, it now knows where the executable ends, so it reads through the code and every time it sees you creating data, it adds it to the end of the program.  It will be in exactly the order you have declared the data in.

So if the compiled program, ends at address 9000, then it might read through until it encounters your first data, lets say its a 10 character string Str1.  It will create Str1's pointer at 9000 and then fill up that memory with the letters in the string until it gets to 9010.  Then your next data might be another 10 character string Str2.  So Str2 now equals 9010 and it fills up data until it gets to 9020.  If that's all the data, then your final program size will be all the compiled code plus the data.

1524
Axe / Re: MirageOs/Ion issue
« on: May 14, 2010, 12:10:16 am »
I actually have been putting off conditional compiling, I think only a few of the commands do that, and only in mirage.

The problem is that most of the built-in functions are either slower than my routines, don't take the right input or output, or don't work quite the same way.  For instance, there is a shell call for sprite drawing, but it doesn't clip the sprites.  And there is one for random numbers, but only 8-bit random numbers.  There really aren't as many routines as I first though either.  I think Doors has a lot, but other than that, the line drawing and get-pixel routines seem to be the only ones I can use.  I think I'm going to just drop conditional compiling all together until I add a new compiling mode to compile for size rather than for speed.

1525
The Axe Parser Project / Re: Your Projects - Post and Critique
« on: May 13, 2010, 11:52:55 pm »
WOW!  I can't believe its so fast!  Also, that website is really cool!

EDIT:  If its fast enough, a port of that game to the calculator would be really really neat and original, although with only black, light gray and dark gray, there really wouldn't be that many possible objects.

1526
TI Z80 / Re: Phoenix: Axe Version
« on: May 13, 2010, 11:03:46 pm »
How about "Raven" or "Eagle".  Or are those not original either ;)

1527
Axe / Re: MirageOs/Ion issue
« on: May 13, 2010, 07:03:34 pm »
Well, it has to be a location that isn't in any of the L1-L6 free ram and it can't ever be modified from any standard bcalls.  I switched to asm_flag2, we'll see if this fixes it.

1528
Regardless of what this will be used for, although I think I have an idea, I still say that this is very dangerous.  No one is being close minded here, the routine was already posted that he requested.  We are just discouraging it becasue no one wants to accidentally brick their calculator, you really really have to know what you're doing.  The fact that the routine was asked for in hex makes me think that this is not going to be written in pure assembly.  If that's the case, I would definitely stay away from the flash, there's a lot more to it than just unlocking it.  You still need to swap pages, read things into registers, swap them back into buffers, and other things that really have to be done in assembly.

1529
TI Z80 / Re: SirCmpwn Axe game: Obstacle Snake
« on: May 13, 2010, 06:44:37 pm »
When you create an application variable, assume random garbage is already there, it is not automatically set to 0.

Wait, so what is the error right now?  Is it the 65535 size error or is Mirage actually changing the high scores?

1530
The Axe Parser Project / Re: Bug Reports
« on: May 13, 2010, 06:38:29 pm »
Oops, I see what the problem is.  I'll have that fixed.  Right now, just do divisions with an extra parenthesis like A/((sin(cos(A)))

Pages: 1 ... 100 101 [102] 103 104 ... 135