Recently I have been writing my own greyscale routines for my TI-84 plus calculator and have been noticing some strange things. According to wikit on the article for port 10h it is stated that a minimum of 10 microseconds is required between LCD writes and reads, and this holds true on jsTIfied. But this seems to not be 100% accurate for my physical calculator, I am aware that on port 29h you can have it wait the time for you, but am under the impression that by writing $0C to port 29h you can disable this. On my physical calculator, the following code will draw 3 lines to the screen without the need for delay, despite not being supposed to work according to wikiti and not working in jsTIfied.
Code:
From all that I have read, I would assume that this shouldn't work, but for some reason it does. I have 2 theories on why this might be. One, my calculator is newer and may not require delay (least likely). Two, I have completely misunderstood port 29h (most likely). If anybody has any ideas I would love the hear them.
And if it helps I have been seemingly experiencing longer than expected wait times from my greyscale routines than on jsTIfied, but this might be down to a million other reasons and might not be related to this problem.
Edit: Same effect occurs when port 20h is 0
Code:
ld a, #3 ; turbo cpu
out (0x20), a
LD A, #0x0C ; reset lcd delay
OUT (0x29), A
LD A, #0x80 ; set row
OUT (0x10), A
LD A, #0x20 ; reset col
OUT (0x10), A
ld a, #0xFF ; 3 quick lines
out (0x11), a
out (0x11), a
out (0x11), a
From all that I have read, I would assume that this shouldn't work, but for some reason it does. I have 2 theories on why this might be. One, my calculator is newer and may not require delay (least likely). Two, I have completely misunderstood port 29h (most likely). If anybody has any ideas I would love the hear them.
And if it helps I have been seemingly experiencing longer than expected wait times from my greyscale routines than on jsTIfied, but this might be down to a million other reasons and might not be related to this problem.
Edit: Same effect occurs when port 20h is 0