z80:Ports:Port02

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