+ # Fast read dual I/O: Same as fast read, but all data
+ # after the command is sent via two I/O pins.
+ # MOSI = SIO0 = even bits, MISO = SIO1 = odd bits.
+ # Recombine the bytes and pass them up to the handle_fast_read command.
+ if self.cmdstate == 1:
+ # Byte 1: Master sends command ID.
+ self.putx([5, ['Command: %s' % cmds[self.state][1]]])
+ self.cmdstate = 2
+ else:
+ # Dual I/O mode.
+ a, b = decode_dual_bytes(mosi, miso)
+ # Pass same byte in as both MISO & MOSI, parser state determines
+ # which one it cares about.
+ self.handle_fast_read(a, a)
+ self.handle_fast_read(b, b)