コード例 #1
0
        void ARGBYTE(bool big, addr_mode M, out u16 b)
        {
            switch (M)
            {
            case addr_mode.IM: immbyte(big, out b); break;

            case addr_mode.DI: DIRBYTE(big, out b); break;

            case addr_mode.EX: EXTBYTE(big, out b); break;

            case addr_mode.IX: IDXBYTE(big, out b); break;

            case addr_mode.IX1: IDX1BYTE(big, out b); break;

            case addr_mode.IX2: IDX2BYTE(big, out b); break;

            default: b = 0; break;
            }
        }
コード例 #2
0
        /* macros for convenience */
        void ARGADDR(bool big, addr_mode M)
        {
            switch (M)
            {
            case addr_mode.IM: static_assert(addr_mode.IM != M, "invalid mode for this instruction"); break;

            case addr_mode.DI: DIRECT(big); break;

            case addr_mode.EX: EXTENDED(big); break;

            case addr_mode.IX: INDEXED(); break;

            case addr_mode.IX1: INDEXED1(big); break;

            case addr_mode.IX2: INDEXED2(big); break;

            default: break;
            }
        }