Omnimaga
Calculator Community => TI Calculators => Axe => Topic started by: Happybobjr on December 04, 2010, 08:13:18 pm
-
why does dispgraph have too be so slow?
Is there not anyway to have the code continue to run while its updating?
Edit by ZTrumpet to fix spelling in title of thread.
-
It's TI's display routine or the LCD or something like that. It's not the command itself though. Blame TI :P (I could be wrong, though I feel like like that is what the general consensus is :P)
-
it's not TI's routine, but we can still blame TI for the slow LCD driver.
-
why does dispgraph have too be so slow?
Is there not anyway to have the code continue to run while its updating?
It would require interrupts because the z80 doesn't do parallel processing. Think about it: every pixel on the LCD has to be updated. That's 6144 pixels. That's a lot of data to transfer for the z80. Using interrupts would slow down your code, increase the code size a lot, and not display as quickly.
That, and the LCD driver is slow.
-
Well isn't blaming TI usually the general solve to most problems we find with the calculator? ;) But ya, I wasn't sure if it was sure what it was. I knew it had to do with the LCD though.
-
To quote Sean McLaughlin from Day 26 (http://future_history.freehostia.com/Files/Resources/ASM/ASMin28Days/lesson/day26.html) of his Learn TI-83 Plus Assembly in 28 Days:
The TI-85 and higher-number calculators have a memory mapped screen. That means a section of the calculator's RAM that holds a bit image of the screen is constantly being monitored. Whenever a byte in this area is changed, the display changes immediately. It is also possible to change the RAM area the driver looks at with a single port output. By switching the buffer location back and forth rapidly, you could create Game Boy-style flickerless 4- or 8-level grayscale.
Unfortunately, the "crap series" (everything lower than a TI-85) uses a driver that stores the screen image in its own RAM. In order to change the display, you have to send each byte in the image to the driver. It is also a very slow driver which needs a delay every time it is accessed.
The next line, although not applicable to answering your question, is my favorite line in the whole tutorial. ;D
Hopefully you are sufficiently depressed now, so let's look at how to make the Toshiba T6A04 (that's the name of the driver) our bitch.
-
TI did it right on the 89. They came up with the graph first and then updated the screen instead of updating the screen at each point.
-
I think on newer 89s it's not as great, though. For the 83+ you have to not update the screen too often. If a game of yours requires a fast speed, you may be forced to update the LCD only every 2 or 3 frames. In Axe tunnel, the faster speed modes are done by updating the LCD less often, even though stuff is drawn on the buffer. That's how slow DispGraph is.
-
hum... just a thought here, but would it be possible to make a graphing screen that would still allow allow the user to use trace, but only update after all functions have been drawn.
I am assuming this would work because it says the screen info is stored into the calculators ram.
-
Do you mean GRAPH?
-
The next line, although not applicable to answering your question, is my favorite line in the whole tutorial. ;D
Hopefully you are sufficiently depressed now, so let's look at how to make the Toshiba T6A04 (that's the name of the driver) our bitch.
Mine too. O0
-
The next line, although not applicable to answering your question, is my favorite line in the whole tutorial. ;D
Hopefully you are sufficiently depressed now, so let's look at how to make the Toshiba T6A04 (that's the name of the driver) our bitch.
Mine too. O0
I haven't even read the tutorial and that's my favorite line :P
-
The next line, although not applicable to answering your question, is my favorite line in the whole tutorial. ;D
Hopefully you are sufficiently depressed now, so let's look at how to make the Toshiba T6A04 (that's the name of the driver) our bitch.
Mine too. O0
I haven't even read the tutorial and that's my favorite line :P
Yeah, I remember that... Good times, good times...
-
hum... just a thought here, but would it be possible to make a graphing screen that would still allow allow the user to use trace, but only update after all functions have been drawn.
I am assuming this would work because it says the screen info is stored into the calculators ram.
Trace works by computing the function at every point that would be used during graphing. So it would take at least as long to trace as to graph the function.
-
Trace or Graph it doesn't matter.
I was just asking if it was possible to draw the orrigional functions and only have it displayed after they are done being drawn. Also, if it could transition straight into TRACE.
-
Sure. I don't see why it couldn't be done. But you'd have to rewrite or redirect the TI-OS calls.