Port Address: 02
This port reports various status information, including battery strength, LCD driver status, and calculator type.
Writing to Port
TI-83+SE, TI-84+, TI-84+SE, TI-84+CSE
Bit 0: Write a 0 to acknowledge the ON key interrupt; write 1 to leave the status of the ON key interrupt alone.
Bit 1: ACK HW timer 1
Bit 2: ACK HW timer 2
Bit 3: Ignored
Bit 4: ACK Linkport
Bits 5-7: Ignored
Reading from Port
Bit 0: Set if the batteries are good. Reset if the batteries are low. The calculator will refuse to Garbage Collect or receive a FLASH App or OS when the batteries are low. The voltage cutoff can be configured in port 04.
83+SE / 84+(SE) only: Bit 1: At 15MHz this bit resets for a set delay after a command or data is sent to the LCD, otherwise this bit is always set. The amount of delay is controlled by port 2F. On the TI-73, this bit is always reset (this is how you distinguish between the 73 and 83+ series hardware).
Bit 2: Set if Flash is currently unlocked.
83+ only: Bits 3-5:
Bit 3: Last value written to port 05 bit 0
Bit 4: Last value written to port 05 bit 1
Bit 5: Last value written to port 05 bit 2
84+(SE) only: Bit 5: Set for TI-84+ and TI-84+ SE calculators. Reset for TI-83+ and TI-83+ SE calculators. More specifically, this indicates if the calculator is USB-capable or not.
Bit 6: Indicates if Link Assist is available.
Bit 7: Reset for a TI-83+ Basic. Set for everything else.
push af in a, (2) and 01h call nz, BatteriesGood call z, BatteriesLow pop af
push af WaitLoop: in a, (2) and 02h jr z, WaitLoop ;Send a command, like 03 (LCD "On"). call LCDIsReady pop af
This example also uses Port 21h.
in a, (2) rlca ;Roll bit 7 into carry. jp nc, Regular83Plus and 40h ;Test bit 5, now rotated into bit 6. jp z, Silver83Plus in a, (21h) and 03h jp z, Regular84Plus jp nz, Silver84Plus