async def METHOD_NAME(self, addr):
    await self.lower.write_ir(IR_DPACC)
    dr_update = DR_xPACC_update(RnW=1, A=(addr & 0xf) >> 2)
    # TODO: use JTAG masked compare when implemented
    dr_capture = DR_xPACC_capture.from_bits(await self.lower.exchange_dr(dr_update.to_bits()))
    assert dr_capture.ACK == DR_xPACC_ACK.OK_FAULT
    # TODO: pick a better nop than repeated read?
    dr_capture = DR_xPACC_capture.from_bits(await self.lower.exchange_dr(dr_update.to_bits()))
    assert dr_capture.ACK == DR_xPACC_ACK.OK_FAULT
    return dr_capture.ReadResult