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 ... 25 26 [27] 28 29 ... 135
391
Axe / Re: Text Data
« on: June 06, 2011, 11:10:13 am »
Text(X,Y,sub(NTH,1)) :)

By the way I edited the NTH routine to make a correction.

392
Axe / Re: Text Data
« on: June 06, 2011, 11:00:20 am »
@Hayleia
Not quite, you can't read the pointers like that unless all the strings are the same length.  You have to scan the text each time since you don't know how far apart each text entry is from one another.  Text1 is at sub(NTH,0), Text2 is at sub(NTH,1), etc...

393
Axe / Re: Text Data
« on: June 06, 2011, 10:54:15 am »
The Data command needs the r modifier after each entry if you're using pointers since each entry needs to be 2 bytes large.  But there is a more memory efficient way to store the text, which is to just have each entry right after each other like this:

Code: [Select]
:"Text1"[00]->Str1
:"Text2"[00]
:"More Text"[00]
:.etc

And then to get the Nth string, just write a routine that starts at Str1 and scans until it has read N-1 zeros

Code: [Select]
:Lbl NTH
:Str1->r2
:While r1
: While {r2}
:  r2++
: End
: r2++
: r1--
:End
:Return r2

394
The Axe Parser Project / Re: Which Axe version do you use?
« on: June 06, 2011, 05:34:20 am »
Well, one example was when application compiling came out.  I wanted to make sure that it was completely safe before releasing a public version so I got some volunteers to test it.  Luckily there weren't any problems, but had I made a mistake in coding, it could have resulted in ROM corruption, OS corruption, or even a bricked calculator.

I usually only do private testing when something is either potentially dangerous, hardware specific, an unreproducible bug, or someone is willing to spend a few hours abusing it until they find bugs.

Thanks again for the great comments everyone!  I'm really excited for 1.0.0.  I am going to continue working on it after that (at a slower pace) but I will be reluctant to change anything that breaks compatibility.  It will mostly be optimizations and compiler features.  Eventually if I ever lose interest, I might make it open source or pass the project on to someone else, but we'll see.

395
The Axe Parser Project / Re: Which Axe version do you use?
« on: June 06, 2011, 04:18:19 am »
Too bad there's no options for versions above 0.5.3 :P

There were also several unofficial versions that some people may have lying around becasue they requested to beta test new features, but I doubt anyone still uses those.  They had version numbers like "0.2.B" or "0.3.A" for instance.

396
ASM / Re: ASM SMC in shells
« on: June 06, 2011, 01:31:17 am »
Wouldn't it take basically the same amount of time to check byte by byte, or possibly even longer than it would to just copy the program back always?  I don't get why it would check unless the program was in archive.

397
The Axe Parser Project / Re: Bug Reports
« on: June 05, 2011, 10:44:53 pm »
That was already fixed as part of my revamping of buffer drawing commands. :)

398
The Axe Parser Project / Re: Bug Reports
« on: June 05, 2011, 10:17:56 pm »
Technically, that's an illegal use of a comment.  They're only supposed to start a line and not be put inline with other commands.  I don't check for that though because some people like to abuse it.  I guess I should either check or fix this.  There are other places that would have this problem too that I can think of.

399
The Axe Parser Project / Re: Features Wishlist
« on: June 05, 2011, 07:07:23 pm »
That's already been around since I first added the EndIf, you can always use them in for loops ;)

400
Axe / Re: Axe Q&A
« on: June 05, 2011, 06:42:13 pm »
By the way, a faster way to determine if a number is 2 or 3 (since that's a continuous range) is like this:

Code: [Select]
If D-2<2
.D is 2 or 3
End

401
The Axe Parser Project / Re: Features Wishlist
« on: June 05, 2011, 06:19:49 pm »
Speaking of For( loops, I don't know if this has already been asked, but why isn't a 4 parameter allowed?  Even if it's just a constant increment or decrement, that would be really helpful

The main reason is that the increment code has already been written by the 2nd argument so it would be hard to make that happen on the 4th argument.  I would have to do some really weird and difficult out of order parsing for that to work, and I don't want to make it the 2nd argument because that would be extremely confusing.

Also, I will probably be adding a new loop structure which unlike "Repeat" is literally a "Repeat".  The syntax is a one argument for loop For(Times):Code:End where it just does the loop however many times without using extra variables and is highly optimized (more so than Runer-style loops).  The only thing blocking me right now is those AWFUL "Goto" statements.  I now see why so many languages ban them, they make it really difficult to optimize since you can't use the stack in any loop that has a goto, otherwise you get memory leaks.  I am therefore banning the Goto instruction inside this new loop structure and possibly for-loops if it leads to an optimization there.  I mean you shouldn't be abusing gotos that way anyway so I'm hoping there won't be any compatibility issues with this.

And just to let developers know, I already added code to allow Axioms to hijack existing routines so they can call or jump into any routine at any entry point.  Beware when using this on native Axe commands though as some of them could change from version to version as new optimizations are found.  Speaking of which I've already found a few major optimizations with all sprite and pixel commands that should shed quite a few bytes off of programs, especially larger ones.

402
Other Calculators / Re: Your first programs
« on: June 04, 2011, 08:44:05 pm »
My first complete program in most programming languages is generally a Mandelbrot Set program, unless I'm taking a class on a new language, then its whatever the first assignment is.

403
TI Z80 / Re: Axe Contest Entry: Doodle God
« on: June 02, 2011, 10:37:01 pm »
I think the Bitmap() command is perfect for that, except it doesn't work if you have part of the image off screen, but as long as these stay fully on screen, this would be the easiest way for sure.

404
The Axe Parser Project / Re: Features Wishlist
« on: June 02, 2011, 05:04:51 pm »
Yeah, I tried ducksign recently and it signs apps on-calc in about 20 seconds (with a 15MHz calc) so speed is certainly not an issue and I could integrate a signer into Axe.  But I think setting the expiration count is more useful than actually signing it since the only reason to sign it is to transfer it to another calculator from your own calculator, while the expiration count affects the normal use of the program.  Although I still want an option for that eventually.

405
ASM / Re: simple assembly question
« on: June 01, 2011, 11:16:42 pm »
Code: (original) [Select]
push hl
sbc hl,de
ret z
pop hl

This could be disastrous!  If you return after you pushed hl, the top of the stack contains the number hl instead of the return address so the program will jump to some random place in memory.  You should only return after the stack is back to where it was before:

Code: (fixed) [Select]
push hl
sbc hl,de
pop hl
ret z

Pages: 1 ... 25 26 [27] 28 29 ... 135