#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