 
 
 void write_data(byte_t data, SoftwareSerial *serial) {
-    gpib_write(data);
+    gpib_set_data_bus(data);
     serial->write("ok\n");    
 }
 
 
 void read_char_data(SoftwareSerial *serial) {
-    char ch = (char)gpib_read();
+    char ch = (char)gpib_get_data_bus();
     serial->write("data: ");
     serial->write(ch);
     serial->write("\n");

    digitalWrite(DIO8_ARDUINO_PIN, GET_BIT(data, 7));
}

byte_t gpib_read() {
    set_gpib_data_bus_mode(INPUT_PULLUP);
    byte_t data = 0x0;
    digitalRead(DIO1_ARDUINO_PIN) ? CLEAR_BIT(data, 0) : SET_BIT(data, 0);

    pinMode(RX_ARDUINO_PIN, INPUT);
    pinMode(TX_ARDUINO_PIN, OUTPUT);
    serial.begin(9600);
    
    // Initialize the GPIB bus
    unassert_atn();
    unassert_ifc();
    unassert_srq();
    unassert_ren();
    unassert_eoi();

    unassert_dav();
    unassert_ndac();
    unassert_nrfd();

    gpib_release_data_bus();

    settle();
}

void loop() {
