Chapter 2: TI-83 Plus Specific Information 77
TI-83 Plus Developer Guide Third Release May 28, 2002
– The LCD has a delay requirement of approximately 10us between operations.
The following routine should provide adequate delay on the TI-83 Plus (not Silver
Edition).
lcd_busy:
PUSH AF
INC HL
DEC HL
POP AF
RET
– If the application is run on the Silver Edition at fast speed, the above routine will
not provide a long enough delay. There are three options for solving this
problem.
• Triple or quadruple the delay time of the in-line code. This will solve the
problem, but it may reoccur if another faster version is produced.
• Do B_CALL LCD_BUSY. This is guaranteed to work, but may slow down a
display intensive application.
• Use a CALL LCD_BUSY_QUICK, where LCD_BUSY_QUICK is equated to
000Bh. This is a new entry point that does not require the system overhead
of a B_CALL. This call also works on earlier TI-83 Plus versions, but runs
slightly faster than the required 10us and modifies the z/nz status flag. To
use this on all versions, wrap it in another routine that saves and restores the
flag register.
lcd_busy_2:
PUSH AF
CALL LCD_BUSY_QUICK ; = 000Bh
POP AF
RET
This will ensure that the routine runs on both the TI-83 Plus and Silver Edition
with minimal additional time delays.
– Communication is done with the drive through two IO ports:
lcdinstport = 10h command port
lcddataport = 11h data port
– Addressing a byte of RAM
Row (X) addressing
Commands 80h to BFh — sets the row address to 0 – 63 or top to bottom
rows.
Top Row
LD A,80h ; top row
CALL lcd_busy_2
OUT (lcdinstport),A