+char ao_btm_dir;
+
+uint8_t ao_btm_send_chars = 0;
+
+void
+ao_btm_putchar(char c);
+
+static void
+ao_btm_add_char(char c)
+{
+ if (ao_btm_ptr < sizeof (ao_btm_buffer))
+ ao_btm_buffer[ao_btm_ptr++] = c;
+}
+
+static void
+ao_btm_log_char(char c, char dir)
+{
+ if (dir != ao_btm_dir) {
+ ao_btm_add_char(dir);
+ ao_btm_dir = dir;
+ }
+ ao_btm_add_char(c);
+}
+
+static void
+ao_btm_log_out_char(char c)
+{
+ ao_btm_log_char(c, '>');
+}
+
+static void
+ao_btm_log_in_char(char c)
+{
+ ao_btm_log_char(c, '<');
+}