#ifdef VECTREX
#ifdef BUT_HOSTED_ON_LINUX
#ifndef int8_t
#define int8_t char
#endif
#ifndef int16_t
#define int16_t short
#endif
#ifndef int32_t
#define int32_t long
#endif
#ifndef int64_t
#define int64_t long long
#endif
#else
#ifndef int8_t
#define int8_t int
#endif
#ifndef int16_t
#define int16_t long
#endif
#ifndef int32_t
#define int32_t long long
#endif
#endif
#else // not VECTREX...
#include
#include
#ifndef int8_t
#define int8_t char
#endif
#ifndef int16_t
#define int16_t short
#endif
#ifndef int32_t
#define int32_t long
#endif
#ifndef int64_t
#define int64_t long long
#endif
#endif
// =====================================================================================
// DIVIDING
// =====================================================================================
/* Macros for division of an UNSIGNED 8-bit integer by constants 2 through 127 */
#define div2(x) (unsigned int8_t)((unsigned int16_t)(x) >> 1UL)
#define div3(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 85UL) >> 8UL)
#define div4(x) (unsigned int8_t)((unsigned int16_t)(x) >> 2UL)
#define div5(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 51UL) >> 8UL)
#define div6(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 42UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*6UL), (unsigned int8_t)temp+(rem >= 6U ? 1U : 0U)))
#define div7(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 36UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*7UL), (unsigned int8_t)temp+(rem >= 7U ? 1U : 0U)))
#define div8(x) (unsigned int8_t)((unsigned int16_t)(x) >> 3UL)
#define div9(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 28UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*9UL), (unsigned int8_t)temp+(rem >= 9U ? 1U : 0U)))
#define div10(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 25UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*10UL), (unsigned int8_t)temp+(rem >= 10U ? 1U : 0U)))
#define div11(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 23UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*11UL), (unsigned int8_t)temp+(rem >= 11U ? 1U : 0U)))
#define div12(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 21UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*12UL), (unsigned int8_t)temp+(rem >= 12U ? 1U : 0U)))
#define div13(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 19UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*13UL), (unsigned int8_t)temp+(rem >= 13U ? 1U : 0U)))
#define div14(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 18UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*14UL), (unsigned int8_t)temp+(rem >= 14U ? 1U : 0U)))
#define div15(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 17UL) >> 8UL)
#define div16(x) (unsigned int8_t)((unsigned int16_t)(x) >> 4UL)
#define div17(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 15UL) >> 8UL)
#define div18(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 14UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*18UL), (unsigned int8_t)temp+(rem >= 18U ? 1U : 0U)))
#define div19(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 13UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*19UL), (unsigned int8_t)temp+(rem >= 19U ? 1U : 0U)))
#define div20(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 12UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*20UL), (unsigned int8_t)temp+(rem >= 20U ? 1U : 0U)))
#define div21(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 12UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*21UL), (unsigned int8_t)temp+(rem >= 21U ? 1U : 0U)))
#define div22(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 11UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*22UL), (unsigned int8_t)temp+(rem >= 22U ? 1U : 0U)))
#define div23(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 11UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*23UL), (unsigned int8_t)temp+(rem >= 23U ? 1U : 0U)))
#define div24(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 10UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*24UL), (unsigned int8_t)temp+(rem >= 24U ? 1U : 0U)))
#define div25(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 10UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*25UL), (unsigned int8_t)temp+(rem >= 25U ? 1U : 0U)))
#define div26(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 9UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*26UL), (unsigned int8_t)temp+(rem >= 26U ? 1U : 0U)))
#define div27(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 9UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*27UL), (unsigned int8_t)temp+(rem >= 27U ? 1U : 0U)))
#define div28(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 9UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*28UL), (unsigned int8_t)temp+(rem >= 28U ? 1U : 0U)))
#define div29(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 5UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*29UL), (unsigned int8_t)temp+(rem >= 29U ? 1U : 0U)))
#define div30(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 5UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*30UL), (unsigned int8_t)temp+(rem >= 30U ? 1U : 0U)))
#define div31(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 5UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*31UL), (unsigned int8_t)temp+(rem >= 31U ? 1U : 0U)))
#define div32(x) (unsigned int8_t)((unsigned int16_t)(x) >> 5UL)
#define div33(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 7UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*33UL), (unsigned int8_t)temp+(rem >= 33U ? 1U : 0U)))
#define div34(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 7UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*34UL), (unsigned int8_t)temp+(rem >= 34U ? 1U : 0U)))
#define div35(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 7UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*35UL), (unsigned int8_t)temp+(rem >= 35U ? 1U : 0U)))
#define div36(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 7UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*36UL), (unsigned int8_t)temp+(rem >= 36U ? 1U : 0U)))
#define div37(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*37UL), (unsigned int8_t)temp+(rem >= 37U ? 1U : 0U)))
#define div38(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*38UL), (unsigned int8_t)temp+(rem >= 38U ? 1U : 0U)))
#define div39(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*39UL), (unsigned int8_t)temp+(rem >= 39U ? 1U : 0U)))
#define div40(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*40UL), (unsigned int8_t)temp+(rem >= 40U ? 1U : 0U)))
#define div41(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*41UL), (unsigned int8_t)temp+(rem >= 41U ? 1U : 0U)))
#define div42(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 6UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*42UL), (unsigned int8_t)temp+(rem >= 42U ? 1U : 0U)))
#define div43(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*43UL), (unsigned int8_t)temp+(rem >= 43U ? 1U : 0U)))
#define div44(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*44UL), (unsigned int8_t)temp+(rem >= 44U ? 1U : 0U)))
#define div45(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*45UL), (unsigned int8_t)temp+(rem >= 45U ? 1U : 0U)))
#define div46(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*46UL), (unsigned int8_t)temp+(rem >= 46U ? 1U : 0U)))
#define div47(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*47UL), (unsigned int8_t)temp+(rem >= 47U ? 1U : 0U)))
#define div48(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*48UL), (unsigned int8_t)temp+(rem >= 48U ? 1U : 0U)))
#define div49(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*49UL), (unsigned int8_t)temp+(rem >= 49U ? 1U : 0U)))
#define div50(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 5UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*50UL), (unsigned int8_t)temp+(rem >= 50U ? 1U : 0U)))
#define div51(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 5UL) >> 8UL)
#define div52(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*52UL), (unsigned int8_t)temp+(rem >= 52U ? 1U : 0U)))
#define div53(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*53UL), (unsigned int8_t)temp+(rem >= 53U ? 1U : 0U)))
#define div54(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*54UL), (unsigned int8_t)temp+(rem >= 54U ? 1U : 0U)))
#define div55(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*55UL), (unsigned int8_t)temp+(rem >= 55U ? 1U : 0U)))
#define div56(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*56UL), (unsigned int8_t)temp+(rem >= 56U ? 1U : 0U)))
#define div57(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*57UL), (unsigned int8_t)temp+(rem >= 57U ? 1U : 0U)))
#define div58(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*58UL), (unsigned int8_t)temp+(rem >= 58U ? 1U : 0U)))
#define div59(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*59UL), (unsigned int8_t)temp+(rem >= 59U ? 1U : 0U)))
#define div60(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*60UL), (unsigned int8_t)temp+(rem >= 60U ? 1U : 0U)))
#define div61(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*61UL), (unsigned int8_t)temp+(rem >= 61U ? 1U : 0U)))
#define div62(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*62UL), (unsigned int8_t)temp+(rem >= 62U ? 1U : 0U)))
#define div63(x) (unsigned int8_t)((temp = (unsigned int16_t)((unsigned int16_t)(x) >> 6UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*63UL), (unsigned int8_t)temp+(rem >= 63U ? 1U : 0U)))
#define div64(x) (unsigned int8_t)((unsigned int16_t)(x) >> 6UL)
#define div65(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*65UL), (unsigned int8_t)temp+(rem >= 65U ? 1U : 0U)))
#define div66(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*66UL), (unsigned int8_t)temp+(rem >= 66U ? 1U : 0U)))
#define div67(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*67UL), (unsigned int8_t)temp+(rem >= 67U ? 1U : 0U)))
#define div68(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*68UL), (unsigned int8_t)temp+(rem >= 68U ? 1U : 0U)))
#define div69(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*69UL), (unsigned int8_t)temp+(rem >= 69U ? 1U : 0U)))
#define div70(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*70UL), (unsigned int8_t)temp+(rem >= 70U ? 1U : 0U)))
#define div71(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*71UL), (unsigned int8_t)temp+(rem >= 71U ? 1U : 0U)))
#define div72(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*72UL), (unsigned int8_t)temp+(rem >= 72U ? 1U : 0U)))
#define div73(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*73UL), (unsigned int8_t)temp+(rem >= 73U ? 1U : 0U)))
#define div74(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*74UL), (unsigned int8_t)temp+(rem >= 74U ? 1U : 0U)))
#define div75(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*75UL), (unsigned int8_t)temp+(rem >= 75U ? 1U : 0U)))
#define div76(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*76UL), (unsigned int8_t)temp+(rem >= 76U ? 1U : 0U)))
#define div77(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*77UL), (unsigned int8_t)temp+(rem >= 77U ? 1U : 0U)))
#define div78(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*78UL), (unsigned int8_t)temp+(rem >= 78U ? 1U : 0U)))
#define div79(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*79UL), (unsigned int8_t)temp+(rem >= 79U ? 1U : 0U)))
#define div80(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*80UL), (unsigned int8_t)temp+(rem >= 80U ? 1U : 0U)))
#define div81(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*81UL), (unsigned int8_t)temp+(rem >= 81U ? 1U : 0U)))
#define div82(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*82UL), (unsigned int8_t)temp+(rem >= 82U ? 1U : 0U)))
#define div83(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*83UL), (unsigned int8_t)temp+(rem >= 83U ? 1U : 0U)))
#define div84(x) (unsigned int8_t)((temp = (unsigned int16_t)(((unsigned int16_t)(x) * 3UL) >> 8UL), rem = (unsigned int8_t)((unsigned int16_t)(x) - temp*84UL), (unsigned int8_t)temp+(rem >= 84U ? 1U : 0U)))
#define div85(x) (unsigned int8_t)((((unsigned int16_t)(x) + 1UL) * 3UL) >> 8UL)
#define div86(x) ((unsigned int8_t)(x < 86U ? 0U : (x < 172U ? 1U : 2U)))
#define div87(x) ((unsigned int8_t)(x < 87U ? 0U : (x < 174U ? 1U : 2U)))
#define div88(x) ((unsigned int8_t)(x < 88U ? 0U : (x < 176U ? 1U : 2U)))
#define div89(x) ((unsigned int8_t)(x < 89U ? 0U : (x < 178U ? 1U : 2U)))
#define div90(x) ((unsigned int8_t)(x < 90U ? 0U : (x < 180U ? 1U : 2U)))
#define div91(x) ((unsigned int8_t)(x < 91U ? 0U : (x < 182U ? 1U : 2U)))
#define div92(x) ((unsigned int8_t)(x < 92U ? 0U : (x < 184U ? 1U : 2U)))
#define div93(x) ((unsigned int8_t)(x < 93U ? 0U : (x < 186U ? 1U : 2U)))
#define div94(x) ((unsigned int8_t)(x < 94U ? 0U : (x < 188U ? 1U : 2U)))
#define div95(x) ((unsigned int8_t)(x < 95U ? 0U : (x < 190U ? 1U : 2U)))
#define div96(x) ((unsigned int8_t)(x < 96U ? 0U : (x < 192U ? 1U : 2U)))
#define div97(x) ((unsigned int8_t)(x < 97U ? 0U : (x < 194U ? 1U : 2U)))
#define div98(x) ((unsigned int8_t)(x < 98U ? 0U : (x < 196U ? 1U : 2U)))
#define div99(x) ((unsigned int8_t)(x < 99U ? 0U : (x < 198U ? 1U : 2U)))
#define div100(x) ((unsigned int8_t)(x < 100U ? 0U : (x < 200U ? 1U : 2U)))
#define div101(x) ((unsigned int8_t)(x < 101U ? 0U : (x < 202U ? 1U : 2U)))
#define div102(x) ((unsigned int8_t)(x < 102U ? 0U : (x < 204U ? 1U : 2U)))
#define div103(x) ((unsigned int8_t)(x < 103U ? 0U : (x < 206U ? 1U : 2U)))
#define div104(x) ((unsigned int8_t)(x < 104U ? 0U : (x < 208U ? 1U : 2U)))
#define div105(x) ((unsigned int8_t)(x < 105U ? 0U : (x < 210U ? 1U : 2U)))
#define div106(x) ((unsigned int8_t)(x < 106U ? 0U : (x < 212U ? 1U : 2U)))
#define div107(x) ((unsigned int8_t)(x < 107U ? 0U : (x < 214U ? 1U : 2U)))
#define div108(x) ((unsigned int8_t)(x < 108U ? 0U : (x < 216U ? 1U : 2U)))
#define div109(x) ((unsigned int8_t)(x < 109U ? 0U : (x < 218U ? 1U : 2U)))
#define div110(x) ((unsigned int8_t)(x < 110U ? 0U : (x < 220U ? 1U : 2U)))
#define div111(x) ((unsigned int8_t)(x < 111U ? 0U : (x < 222U ? 1U : 2U)))
#define div112(x) ((unsigned int8_t)(x < 112U ? 0U : (x < 224U ? 1U : 2U)))
#define div113(x) ((unsigned int8_t)(x < 113U ? 0U : (x < 226U ? 1U : 2U)))
#define div114(x) ((unsigned int8_t)(x < 114U ? 0U : (x < 228U ? 1U : 2U)))
#define div115(x) ((unsigned int8_t)(x < 115U ? 0U : (x < 230U ? 1U : 2U)))
#define div116(x) ((unsigned int8_t)(x < 116U ? 0U : (x < 232U ? 1U : 2U)))
#define div117(x) ((unsigned int8_t)(x < 117U ? 0U : (x < 234U ? 1U : 2U)))
#define div118(x) ((unsigned int8_t)(x < 118U ? 0U : (x < 236U ? 1U : 2U)))
#define div119(x) ((unsigned int8_t)(x < 119U ? 0U : (x < 238U ? 1U : 2U)))
#define div120(x) ((unsigned int8_t)(x < 120U ? 0U : (x < 240U ? 1U : 2U)))
#define div121(x) ((unsigned int8_t)(x < 121U ? 0U : (x < 242U ? 1U : 2U)))
#define div122(x) ((unsigned int8_t)(x < 122U ? 0U : (x < 244U ? 1U : 2U)))
#define div123(x) ((unsigned int8_t)(x < 123U ? 0U : (x < 246U ? 1U : 2U)))
#define div124(x) ((unsigned int8_t)(x < 124U ? 0U : (x < 248U ? 1U : 2U)))
#define div125(x) ((unsigned int8_t)(x < 125U ? 0U : (x < 250U ? 1U : 2U)))
#define div126(x) ((unsigned int8_t)(x < 126U ? 0U : (x < 252U ? 1U : 2U)))
#define div127(x) ((unsigned int8_t)(x < 127U ? 0U : (x < 254U ? 1U : 2U)))
// rather contorted macros are in the hope of being able to compile both on X86 linux and gcc6809 with 8 bit ints.
// there's a problem when bits==32 and unsigned int32_t is defined as unsigned long long on linux.
// It's OK on the vectrex where that type is 32 bits. The problem comes from a check to see if a
// shift will cause overflow. If the type is 32 bits, you shift left then shift right by the same
// amount and see if the end value is what you started with. However if the type is larger than
// 32 bits, the value is preserved and you need to do an 'and' test instead to detect the shift
// going farther left than bit32.
/* this complex expression is the same as "(1<> 1);
x |= (x >> 2);
x |= (x >> 4);
return(x & ~(x >> 1));
}
static inline unsigned int16_t msb16(register unsigned int16_t x)
{
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
return(x & ~(x >> 1));
}
static inline unsigned int32_t msb32(register unsigned int32_t x)
{
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
return(x & ~(x >> 1));
}