+ ao_usb_putchar(c);
+ }
+}
+
+static void
+ao_show_version(void)
+{
+ ao_put_string("altos-loader");
+ ao_put_string("\nmanufacturer "); ao_put_string(ao_manufacturer);
+ ao_put_string("\nproduct "); ao_put_string(ao_product);
+ ao_put_string("\nsoftware-version "); ao_put_string(ao_version);
+ ao_put_string("\n");
+}
+
+static void
+ao_flash_task(void) {
+ for (;;) {
+ ao_usb_flush();
+ switch (ao_usb_getchar()) {
+ case 'v': ao_show_version(); break;
+ case 'a': ao_application(); break;
+ case 'X': ao_block_erase(); break;
+ case 'W': ao_block_write(); break;
+ case 'R': ao_block_read(); break;
+ }