Quick Question... for the tutorial I'm writing.

Which port number is the one that you use to write to the LCD? According to wikiti, it looks like either 10 or 11? What is the general procedure?
WikiTI ought to have the documentation you need. The ports are indeed $10 and $11. $10 is for commands and $11 is for data. An important point is that the LCD needs a delay before writing to either port. Again, WikiTI should have most of this.
As calcdude says, WikiTI is entirely comprehensive in terms of what you need to do to write to the LCD. I recommend you just give people instructions on using iFastCopy in a tutorial, though...
Wikiti was pretty good. In the end, I was just a bit unclear as to the difference between 10 and 11. And yes, Kerm I will. My goal, in this tutorial, is to start with the complex stuff, like direct input/output, and then explain how you can use premade routines in the stead of those routines.
ACagliano wrote:
Wikiti was pretty good. In the end, I was just a bit unclear as to the difference between 10 and 11. And yes, Kerm I will. My goal, in this tutorial, is to start with the complex stuff, like direct input/output, and then explain how you can use premade routines in the stead of those routines.
Well, the difference is the one is the command port, and one is the data port. The command port is used for setting modes and sending instructions, while the data port is used for sending actual pixel data to the display.
As strange as it sounds, TI83+ Assembly in 28 Days has a good segment on the display driver.
Ok...I just need a bit more help

Quote:
Bit 0: Set if auto-increment mode (commands 05 and 07) is selected, reset if auto-decrement mode (commands 04 and 06) is selected.

What does auto-increment/decrement mode mean?

Quote:
Bit 6: Set if the LCD will transfer 8 bits at a time through Port 11. Reset if the LCD will only trasfer 6 bits at a time.

What is the difference between 6 and 8 bit mode?
Auto increment and auto decrement are settings for the driver that will automatically change the column and row after each write, so that you don't have to adjust the pointer after every write.

Bit 6, if I recall correctly, sets each column to 6 bits wide rather than 8. The point of this is for fonts; notice how the home screen font is 6 pixels wide? This setting gets rid of the math needed if you want to display an axis aligned 6px wide font.
The position that writing/reading port $11 concerns is automatically changed after each access. Auto-increment sets this in the positive direction (either down or right), and auto-decrement in the negative (left or up). Both wrap around the edges. 6-bit mode means port $11 reads/writes 6 bits at a time (the upper two bits don't matter when writing and are 0 when reading), and 8-bit means, well, a whole byte at a time. Setting 6- or 8-bit mode affects column numbers too. Each column in 6-bit mode is 6 pixels wide, so there are more of them.
Edit: ninja'd by Kaslai.
And, if I'm correct, based on the way most text and sprite rending OS commands work...is the LCD set to auto increment by default? Or at least, is that standard.
The OS tends to use the LCD in X auto-increment mode, which (yes, I know I said X--X and Y are named backwards compared to the usual naming) moves the internal pointer a row down every time. That mode is the simplest and is faster than Y auto-increment for updating the entire LCD, as there are fewer columns than rows.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement