0 Members and 11 Guests are viewing this topic.
Pointers (page 9)Actually, there's no such thing as "the zeroth item"; the correct way to say this would be "the first byte has address zero, the second byte has address one". Not exactly intuitive, I know. If you don't want to change this I can understand.
It might be easier to understand to write "GDB1+A" (assuming that Axe understands this; I didn't check, but assume it does). I understand the current notation is not so much wrong, but it could be unclear for beginning programmers.Since you are very consistent about this notation, I assume there's a reason for it... performance? Can Axe optimize "A+GDB1" better than it optimizes "GDB1+A"? If so, maybe you should explicitely state both are valid, but "A+GDB1" is slightly faster."We use the curly brackets to indicate that we want the byte that's at the address of the pointer, not the the value of the pointer itself."From reading your code samples:Disp Str1 Displays the contents of the (probably zero-terminated) string starting at the address in Str1.Disp {A+GDB1} Displays the value of the single byte at base address GDB1 incremented with offset A.That's quite a difference from what you're saying in the documentation...
Data & Arrays (page 11)The comments for one of the pieces of sample code say "BAISC", oops...An Example Program (page 14)You're already using the "optimized dual-store":0->S-1->DThis hasn't been explained yet and is hardly standard notation. Putting a note "see page 17 for details" would be helpful.Optimization tricks (page 17)"Evaluate all constant expressions before compiling."It would be very awesome if you could teach Axe to recognize expressions working on two constants and automatically decide to pre-compute them...
"If the last line of your program is Return, then remove it. Even if it was part of a subroutine, the return is automatically added at the end for you so there's no need to have 2 returns at the end. Saves 1 byte."Uhm, that saves 1 byte in the source, not in the executable, right?
And about commands.htm:Fix CODE: Changes how text is drawn. Code must be a constant.Wouldn't it make more sense to make CODE consist of flags? That way you can set multiple values at once. Especially useful if you want to reset everything at the end of your code.ReturnIf EXPIs there a special reason to include this? It seems to be equivalent to If EXP Return End.
Quote from: rvw on May 29, 2010, 09:25:33 pmAnd about commands.htm:Fix CODE: Changes how text is drawn. Code must be a constant.Wouldn't it make more sense to make CODE consist of flags? That way you can set multiple values at once. Especially useful if you want to reset everything at the end of your code.That's actually a really cool suggestion! Are you suggesting that saying Fix 135 would behave the same as Fix 1:Fix 3:Fix 5 ? That could work, I like the idea!
And about commands.htm:Fix CODE: Changes how text is drawn. Code must be a constant.Wouldn't it make more sense to make CODE consist of flags? That way you can set multiple values at once. Especially useful if you want to reset everything at the end of your code.
Quote from: rvw on May 29, 2010, 09:25:33 pmPointers (page 9)Actually, there's no such thing as "the zeroth item"; the correct way to say this would be "the first byte has address zero, the second byte has address one". Not exactly intuitive, I know. If you don't want to change this I can understand.Actually, in computer science, you really DO start counting at zero so you can have a 0th element as part of a list.
I wonder... if BASIC Builder could be used to package an Axe program into an app?? That could be an interesting work-around.
I r confus.Explain your spasm, sir.