From Learn @ Cemetech
Revision as of 03:13, 6 February 2016 by Maintenance script (talk | contribs) (Initial automated import)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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