From WikiTI
Revision as of 18:18, 3 March 2020 by Dr. D'nar (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This port only exists on the the TI-84 Plus and the TI-84 Plus Silver Edition. On the standard TI-83 Plus, it acts as a shadow of port 05. On the TI-83 Plus Silver Edition, this port has no effect.


Port Number: 55h

Function: USB Interrupt State

This port reports which USB interrupts have occurred.

Read Values

  • Bit 0: Normally set. Cleared if the bus goes into suspend mode.
  • Bit 1: Normally set. This interrupt is related to ports 4F and 50.
  • Bit 2: Normally set. Cleared if a USB line interrupt (ports 56 and 57) has occurred.
  • Bit 3: Normally set. BrandonW's ViewScreen experiments suggest that this gets reset if the ViewScreen-over-USB logic misses a byte, possibly because you're sending them too fast.
  • Bit 4: Normally set. Cleared if a USB protocol interrupt (ports 80+) has occurred.
  • Bit 5: Always 0
  • Bit 6: Always 0
  • Bit 7: Always 0

Write Values

  • No effect


Normally, the value of this port will be 1Fh. When a USB interrupt occurs, one or more of the bits will be cleared.

USB line interrupts are triggered when one of the four functional USB lines changes from low to high or high to low. Port 57 controls when these interrupts occur. When a line interrupt occurs, port 56 tells you which of the lines has changed. Use port 57 to acknowledge the interrupt.

USB protocol interrupts are triggered when (a) a USB device-level event occurs, such as a bus reset, or (b) a USB transaction finishes. Port 5B controls whether these interrupts occur. When one does, ports 82, 84, and 86 (and possibly 83 and 85) will tell you what event(s) caused the interrupt. Reading from any of these ports also clears it and acknowledges the interrupt.

Bit 0 indicates some other, and uncommon, type of event - possibly that the bus has been suspended. I think that this is also controlled by port 5B, and zeroing port 5B will acknowledge the interrupt. This should be tested.