Port02

Basic Info

Port Address: 02

This port reports various status information, including battery strength, LCD driver status, and calculator type.

Writing to Port

TI-83+ (Non-SE)
No effect.

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.

Example Uses

Battery checking

  push af
  in a, (2)
  and 01h
  call nz, BatteriesGood
  call z, BatteriesLow
  pop af

LCD Testing

  push af
WaitLoop:
  in a, (2)
  and 02h
  jr z, WaitLoop
  ;Send a command, like 03 (LCD "On").
  call LCDIsReady
  pop af

Device checking
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

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.