+ def ARMshift_DR_many(self, data, bits, flags):
+ darry = []
+ tbits = bits
+
+ # this is LSB, least sig BYTE first, between here and goodfet firmware
+ while (tbits>0):
+ darry.append( data&0xff )
+ data >>= 8
+ tbits -= 8
+
+ # bitcount, flags, [data]
+ data = [ bits&0xff, flags&0xff ]
+ data.extend(darry)
+
+ self.writecmd(0x13,DR_SHIFT_MANY, len(darry)+2, data )
+
+ data = self.data[2:]
+ out = 0
+ tbits = bits
+
+ # peal it off LSB again....
+ while (tbits>0):
+ out <<= 8
+ out += ord(data[-1])
+ data = data[:-1]
+ tbits -= 8
+
+ return out
+