};
void
-ao_cmd_register(__code struct ao_cmds *cmds);
+ao_cmd_register(const __code struct ao_cmds *cmds);
void
ao_cmd_init(void);
ao_serial_init(void);
#endif
+#ifndef HAS_SERIAL_0
+#define HAS_SERIAL_0 0
+#endif
+
+#if HAS_SERIAL_0
+
+extern volatile __xdata struct ao_fifo ao_usart0_rx_fifo;
+extern volatile __xdata struct ao_fifo ao_usart0_tx_fifo;
+
+void
+ao_serial0_rx0_isr(void) ao_arch_interrupt(2);
+
+void
+ao_serial0_tx0_isr(void) ao_arch_interrupt(7);
+
+char
+ao_serial0_getchar(void) __critical;
+
+void
+ao_serial0_putchar(char c) __critical;
+
+void
+ao_serial0_drain(void) __critical;
+
+void
+ao_serial0_set_speed(uint8_t speed);
+
+void
+ao_serial0_init(void);
+
+#endif
+
+
/*
* ao_spi.c
*/
ao_radio_set_packet(void);
void
-ao_radio_send(__xdata void *data, uint8_t size) __reentrant;
+ao_radio_send(__xdata void *d, uint8_t size) __reentrant;
uint8_t
-ao_radio_recv(__xdata void *data, uint8_t size) __reentrant;
+ao_radio_recv(__xdata void *d, uint8_t size) __reentrant;
void
ao_radio_recv_abort(void);
/* ao_lcd.c */
void
-ao_lcd_putchar(uint8_t data);
+ao_lcd_putchar(uint8_t d);
void
ao_lcd_putstring(char *string);
void
ao_lcd_clear(void);
+void
+ao_lcd_cursor_on(void);
+
+void
+ao_lcd_cursor_off(void);
+
#define AO_LCD_ADDR(row,col) ((row << 6) | (col))
void
/* ao_lcd_port.c */
void
-ao_lcd_port_put_nibble(uint8_t rs, uint8_t data);
+ao_lcd_port_put_nibble(uint8_t rs, uint8_t d);
void
ao_lcd_port_init(void);
/* ao_aes.c */
-__xdata uint8_t ao_aes_mutex;
+extern __xdata uint8_t ao_aes_mutex;
/* AES keys and blocks are 128 bits */