z80:Ports:Port02

From Learn @ Cemetech
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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