#include #include #include static ax_i8 const axd_logo[] = { 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x00u, 0x04u,0x04u,0x04u,0x00u,0x04u,0x04u,0x04u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x00u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x04u,0x04u,0x04u,0x00u,0x04u,0x04u,0x04u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x00u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x04u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x04u,0x04u,0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x00u,0x00u,0x04u,0x00u,0x04u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x04u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x04u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x04u, 0x04u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u, }; constexpr ax_i8 axd_logow = (0x7u * 0x4u) + (0x1u * 0x5u); constexpr ax_i8 axd_logoh = (0x7u * 0x2u) + (0x2u) + (0x1u * 0x2u); static_assert(sizeof (axd_logo) == axd_logow * axd_logoh); static ax_i8 const axd_startmsg[] = { 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x00u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x00u,0x00u,0x04u,0x04u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x00u,0x04u,0x04u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x00u,0x04u,0x04u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x04u,0x04u,0x04u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x04u,0x04u,0x04u,0x04u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x04u,0x04u,0x04u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x00u,0x00u,0x00u,0x00u, 0x0u, 0x04u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x00u,0x00u,0x04u,0x00u,0x00u,0x00u, 0x0u, 0x00u,0x04u,0x04u,0x04u,0x04u,0x04u,0x00u, 0x0u, 0x04u,0x04u,0x00u,0x00u,0x00u,0x04u,0x04u, }; constexpr ax_i8 axd_startmsgw = (0x7u * 0x10u) + (0x1u * 0xFu); constexpr ax_i8 axd_startmsgh = (0x7u * 0x1u); static_assert(sizeof (axd_startmsg) == axd_startmsgw * axd_startmsgh); ax_err ax_start(void) { axd_dat dat; axd_initdat(&dat); axd_initgfx(); ax_vsync(); ax_blnk(); ax_clrscrn1(dat.vaddr,0x0u); ax_plottex1(dat.vaddr,ax_scrnw3,axd_logo,ax_coord(ax_scrnw3,ax_scrnw3 / 0x2u - axd_logow / 0x2u,ax_scrnh3 / 0x2u - axd_logoh / 0x2u),axd_logow,axd_logoh); ax_plottex1(dat.vaddr,ax_scrnw3,axd_startmsg,ax_coord(ax_scrnw3,ax_scrnw3 / 0x2u - axd_startmsgw / 0x2u,ax_scrnh3 - 0x7u - axd_startmsgh),axd_startmsgw,axd_startmsgh); ax_key startkey; for (;;) { ax_keymap const keymap = ax_getkeymap(); startkey = ax_key_a; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_b; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_l; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_pade; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_padn; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_pads; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_padw; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_r; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_sel; if (ax_chkkey(keymap,startkey)) { break; } startkey = ax_key_start; if (ax_chkkey(keymap,startkey)) { break; } } ax_vsync(); ax_rec1(dat.vaddr,ax_scrnw3,ax_coord(ax_scrnw3,ax_scrnw3 / 0x2u - axd_startmsgw / 0x2u,ax_scrnh3 - 0x7u - axd_startmsgh),axd_startmsgw,axd_startmsgh,0x0u); for (;;) { /* Wait for the key to be released. */ ax_keymap const keymap = ax_getkeymap(); if (!ax_chkkey(keymap,startkey)) { break; } } ax_clrscrn1(dat.vaddr,0x0u); bool const err = axd_loop(&dat); if (err) { for (ax_i01 px = 0x0u;px != 0x9600u;++px) { ax_plot1(dat.vaddr,px,dat.col); axd_chgcol(&dat,0x1u); } return ax_err_max; } return ax_err_ok; }