Omnimaga

Calculator Community => TI Calculators => Axe => Topic started by: Munchor on January 24, 2011, 05:20:18 pm

Title: Using the Asm( token inside a program
Post by: Munchor on January 24, 2011, 05:20:18 pm
If you consider this a bug, then merge into bugs and reports please.

Code: [Select]
.UPROG
Asm(EF4045
Asm(FDCB00AE
Asm(EF7045
Asm(210100
0->I
While I<5
Asm(EF0745
I+1->I
End

(Not sure if this code is correct, it's just a sample one)

Code: [Select]
Asm(EF4045
Asm(FDCB00AE
Asm(EF7045
//The above lines could be changed to:
ClrDraw
DiagnosticOff

In fact, they're just the same thing. However, the second option runs much faster.

Now, the questions:

1. Is it just me?
2. Is it supposed to be like this?
3. If not, can it be fixed?

I think it is supposed to be this way, hence not considering it a 'bug'.

Thanks.
Title: Re: Using the Asm( token inside a program
Post by: Camdenmil on January 24, 2011, 11:52:51 pm
I'm no expert in asm but it looks like you're using bcalls. My guess is that quigibo doesn't use _ClrLCDFull for ClrDraw. For DiagnosticOff, my guess is that he resets 0, (IY+12h) and 5,(IY+0) but idk if he went for speed or size with DiagnosticOff. But again, I only just started asm.
Title: Re: Using the Asm( token inside a program
Post by: calc84maniac on January 25, 2011, 12:21:17 am
Yeah, ClrDraw clears the buffer, not the LCD (and clearing the LCD would definitely be slower, especially if it's a TI-OS routine)
Title: Re: Using the Asm( token inside a program
Post by: Munchor on January 25, 2011, 07:37:18 am
Yeah, ClrDraw clears the buffer, not the LCD (and clearing the LCD would definitely be slower, especially if it's a TI-OS routine)

I'm no expert in asm but it looks like you're using bcalls. My guess is that quigibo doesn't use _ClrLCDFull for ClrDraw. For DiagnosticOff, my guess is that he resets 0, (IY+12h) and 5,(IY+0) but idk if he went for speed or size with DiagnosticOff. But again, I only just started asm.

Oh thanks! That makes sense now.