anchor.diff:    USART3.CTRLB := TUSART.RXENbm or TUSART.TXENbm;
   end;
   
  +procedure uart_init1(const BAUD: dword; const useU2X: boolean = false);
  +var
  +  ubrr: word;
  +begin
  +  // RX
  +  PORTB.DIRCLR := PIN1bm;
  +  // TX
  +  PORTB.OUTSET := Pin0bm;
  +  PORTB.DIRSET := Pin0bm;
  +
  +  if useU2X then
  +    ubrr := (F_CPU * 64 + 4 * BAUD) div (8 * BAUD)
  +  else
  +    //ubrr := (F_CPU * 64 + 8 * BAUD) div (16 * BAUD);
  +    ubrr := (F_CPU * 8 + BAUD) div (2 * BAUD);
  +
  +  USART3.BAUD := ubrr;
  +  USART3.CTRLB := TUSART.RXENbm or TUSART.TXENbm;
  +end;
  +
   // Blocking functions
   procedure uart_transmit(const data: byte);
   begin
  
positive.code: begin
    // RX
    PORTB.DIRCLR := PIN1bm;
  
    // TX
    PORTB.OUTSET := Pin0bm;
    PORTB.DIRSET := Pin0bm;
  
negative.code:   // Get and return received data from buffer
    result := UDR0;
  end;
  
  function uart_peek(out c: byte): boolean;
  begin
    result := UCSR0A and (1 shl RXC0) > 0;
    c := UDR0;
  end;
  
  {$endif CPUAVRXMEGA3}
  
  procedure uart_transmit_hex(const data: byte);
  