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 ... 78 79 [80] 81 82 ... 135
1186
« on: June 26, 2010, 03:04:09 pm »
There is a size optimization I can do when I get to doing byte mode which allows me to reference the variables from a relative location using the IY register instead of an absolute location. This is becasue IY is located slightly after the free ram area in L1 for normal OS uses. I'm still not 100% sure I will have time for that in Axe 1.0.0 because it might end up being a 2.0.0 thing if I don't have time to finish it. Its an ambitious feature requiring the addition of many new routines.
EDIT: Ninja'd Maybe I'll move them now as a precaution so that people can use the L1 hack to reference them more reliably.
1187
« on: June 26, 2010, 02:58:06 pm »
You mentioned that you're not pushing the block becasue of the physics involved, but won't you still need those physics anyway for releasing the cube in mid-air or dropping it though portals?
1188
« on: June 26, 2010, 02:52:14 pm »
Don't use that method long term. The location of the variables will eventually be switching to a different location at the end of L1 instead of the beginning.
1189
« on: June 26, 2010, 01:15:21 am »
That's what comments are for You should see Runer's Sprite Editor source, more than half of the size of the program was indents and comments. That's another paradigm that BASIC programmers are too used to, commenting in the code doesn't affect the final executable at all since they are all ignored when compiling. In BASIC however, its seen as wasteful since it becomes part of the program.
1190
« on: June 26, 2010, 01:10:14 am »
No, its ever so slightly slower since it has to convert the 8 bit number into a 16 bit number (since C is a 16 bit number) in order to do the addition and then convert it back again to an 8 bit number. The fact that its 3 bytes larger I think? is the greater concern than the speed though. Its actually an optimization if you can store all your variables with constant addresses as 16-bit variables if you have enough ram. Variable addresses however ARE more optimized as 8 bit than as 16 bit.
1191
« on: June 26, 2010, 01:02:40 am »
It sounds like you have the right idea. Since L1-L6 are just numbers, it makes sense for the compiler to add/subtract/multiply/divide etc. to create a single number BEFORE parsing so that the program doesn't have to do it during runtime. However, if you have any variables or non-constants then the compiler can not make this optimization and the size will increase.
Your 2 examples {L1+Z*4+12} and {Z*4+L1+12} would return different values as some people have said due to strict left-to-right order of operations. However, I assume you are asking about the difference between {L1+(Z*4)+12} and {Z*4+L1+12} and in that case, YES, the second one is more optimized since L1 and 12 are combined to form a single number that will get added to the variable part.
You can use as many braces inside of braces as the stack can handle and yes, they act like parenthesis when you use them that way. You can read from expressions with nested braces and store to them. But of course, the less parenthesis you need, the more optimized it is. If its possible try to put all that stuff at the front. {{L1+12}+L1+24} is more optimized than {L1+{L1+12}+24} for the reason above in addition to the fewer acting "parenthesis".
1192
« on: June 25, 2010, 08:32:52 pm »
I never released it becasue it was slow x_x I still have the source code, but I tried it and it doesn't seem to be working.
1193
« on: June 25, 2010, 07:29:44 pm »
Floating points are just as slow as BASIC basically. I did indeed make a Mandelbrot set program in assembly using the OS's floating point bcalls and it still took about 10 minutes to graph. The only way I was able to graph the set with Axe Parser in under a minute was to use fixed point math instead of floating point math. 8.8 is really really fast and fits into a normal Axe Variable, however the resolution is low, you can't make the pixels any closer than .0039 apart (which is 1/256th) or else the image breaks down and pixelates. You can increase the accuracy to 8.16 or 16.16 which are a little bit slower, but it would allow the pixels to have spacings as small as .000015. If you're really daring, you can have an arbitrarily long fixed point number which is referenced by a pointer. I'm going to be adding a new command soon that makes multiplication easier to do as soon as I can figure out an efficient way to do it.
1194
« on: June 25, 2010, 03:46:47 pm »
Hey, welcome back! I like your avatar by the way. I actually made one in Axe a few days ago while we're on the subject. Link
1195
« on: June 25, 2010, 02:22:51 pm »
You need to clear the Text Shadow, not just the LCD. My guess is that you were using the ClrLCDFull command or something? Use ClrScrnFull instead becasue that also clears the Text Shadow as well.
1196
« on: June 25, 2010, 02:13:39 pm »
That's just becasue the sprite has to be shifted before it can be drawn when it is not aligned with the grid on the LCD ram. The effect is most noticeable with Pt-Off() becasue that routine is particularly fast when its aligned and particularly slow when its not. There really isn't much you can do, other than add more pauses when the grid is aligned. This only applies to horizontal alignment by the way, not vertical so something along the lines of "!If X^8" would detect the alignment.
1197
« on: June 25, 2010, 02:05:24 pm »
Oh wait, you're right I must have accidentally clicked on the old copy. I had both on my desktop.
1198
« on: June 25, 2010, 04:41:56 am »
I am aware of the error, and I already fixed it. It had to do with displaying the error on the top of the screen instead of the bottom.
1199
« on: June 25, 2010, 04:40:15 am »
Return IS ret in Axe. They are one and the same A self launching program is going to be too difficult without help from the OS or the start-up app. What I would do instead is have the calculator turn off the LCD and then halt the execution until the next [ON] interrupt. You might have to get an ASM programmer to write this for you if you're new to assembly since its pretty tricky.
1200
« on: June 25, 2010, 04:31:42 am »
The reason the gray looks bad on wabbit is that this grayscale was from an older version of Axe that had the slow routine. I compiled it for 0.3.1 and the gray looks perfect on both settings with "Game Gray 7". You have to remove the SetupEditor command to compile from source though since its not needed anymore. It looks much nicer on calc as well.
Pages: 1 ... 78 79 [80] 81 82 ... 135
|