 
 // Places the byte on the data bus.
 void setDataBus(byte val) {
-   digitalWrite(8, (val >> 6) & 0x01);
-   digitalWrite(9, (val >> 7) & 0x01);
+   digitalWrite(2, val & 1);
+   digitalWrite(3, (val >> 1) & 1);
+   digitalWrite(4, (val >> 2) & 1);
+   digitalWrite(5, (val >> 3) & 1);
+   digitalWrite(6, (val >> 4) & 1);
+   digitalWrite(7, (val >> 5) & 1);
+   digitalWrite(8, (val >> 6) & 1);
+   digitalWrite(9, (val >> 7) & 1);
+
    // MEEPROMMER doesn't mask PIND, this fixes some bad writes
-   PORTD = (PIND & 3) | (val << 2); 
+//   PORTD = (PIND & 3) | (val << 2); 
 }
 
 byte readDataBus() {

         wait = true;
         return;
      case 'W': // Write data to EEPROM 
         state = WRITE;
         addr  = 0x0000;
         data  = 0x00;
         wait  = false;
         digitalWrite(WRITE_LED, HIGH);
         digitalWrite(READ_LED, LOW);

      case 'R': // Read EEPROM contents
         state = READ;
         addr  = 0x0000;
         wait  = false;
         setReadMode();
         digitalWrite(WRITE_LED, LOW);
