 
   digitalWrite(_RC, HIGH);
 
-  interrupts();
-
-  // wait for busy to go high
-  wait_busy();
+  // t4, BUSY LOE, is at most 21 us
+  delayMicroseconds(22);
 
   // select the high byte for reading
   digitalWrite(_BYTE, LOW);

  // use port manipulation to read the data pins. Note that our pinmapping
  // is such that port C maps exactly onto the parallel output from the
  // ADS7825.
  uint8_t hbyte = PINC;

  // now for the low byte
  digitalWrite(_BYTE, HIGH);
  __builtin_avr_delay_cycles(2);
  uint8_t lbyte = PINC;

  return (hbyte<<8 | lbyte);
}

volatile uint8_t trigcnt = 0;
void trig_ISR() {
  trigcnt += 1;
}

// buffer for 16bit values from the ADC
int16_t buf[_BUF_SIZE];
uint16_t writepos = 0;

void loop() {
  int c = Serial.read();

 * The software responds to the following serial commands:
 *
 * - r:  read all 4 channels, return results immediately via serial
 * - s:  on receiving this command, the arduino will immediately begin to
 *       capture data into its buffer when triggered, stopping when the
 *       buffer is filled.
 *
 * - p:  prints the current valid contents of the buffer. One line is emitted
 *       for each scan of 4 channels, each line containing 4 codes separated
 *       by space. The last line of buffer content is followed by a line
 *       containing 'END'. All lines are terminated by '\n'.
 */

#ifndef __builtin_avr_delay_cycles
inline void __builtin_avr_delay_cycles(unsigned long __n) {
  while(__n) __n--;
}
#endif
