*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
#define AO_PORT_TYPE uint8_t
+#define AO_LED_TYPE uint8_t
+
+#ifndef AO_TICK_TYPE
+#define AO_TICK_TYPE uint16_t
+#define AO_TICK_SIGNED int16_t
+#endif
+
/* Various definitions to make GCC look more like SDCC */
#define ao_arch_naked_declare __attribute__((naked))
#define ao_arch_naked_define
-#define __pdata
-#define __data
-#define __xdata
-#define __code const
-#define __reentrant
-#define __critical
#define __interrupt(n)
#define __at(n)
#define ao_arch_interrupt(n) /* nothing */
+#define AO_ROMCONFIG_SYMBOL __attribute__((section(".romconfig"))) const
+
#undef putchar
#undef getchar
#define putchar(c) ao_putchar(c)
#define ao_arch_block_interrupts() cli()
#define ao_arch_release_interrupts() sei()
-#define ao_mutex_get(m)
-#define ao_mutex_put(m)
-
void
-ao_delay_until(uint16_t target);
+ao_delay_until(AO_TICK_TYPE target);
/* We can't hit 100 Hz, but we can hit 125 */
#define AO_HERTZ 125
void
ao_eeprom_write(uint16_t addr, void *buf, uint16_t len);
+uint16_t
+ao_adc_read(uint8_t mux);
+
#endif /* _AO_ARCH_H_ */