@Override
    public Object get_context() {
        nec_Regs Regs = new nec_Regs();
        Regs.regs.SetW(0, I.regs.w[0]);
        Regs.regs.SetW(1, I.regs.w[1]);
        Regs.regs.SetW(2, I.regs.w[2]);
        Regs.regs.SetW(3, I.regs.w[3]);
        Regs.regs.SetW(4, I.regs.w[4]);
        Regs.regs.SetW(5, I.regs.w[5]);
        Regs.regs.SetW(6, I.regs.w[6]);
        Regs.regs.SetW(7, I.regs.w[7]);

        Regs.ip = I.ip;
        Regs.flags = I.flags;

        Regs.base = I.base;
        Regs.sregs = I.sregs;
        Regs.irq_callback = I.irq_callback;
        Regs.AuxVal = I.AuxVal;
        Regs.OverVal = I.OverVal;
        Regs.SignVal = I.SignVal;
        Regs.ZeroVal = I.ZeroVal;
        Regs.CarryVal = I.CarryVal;
        Regs.ParityVal = I.ParityVal;
        Regs.TF = I.TF;
        Regs.IF = I.IF;
        Regs.DF = I.DF;
        Regs.MF = I.MF;

        Regs.int_vector = I.int_vector;
        Regs.pending_irq = I.pending_irq;
        Regs.nmi_state = I.nmi_state;
        Regs.irq_state = I.irq_state;
        Regs.prefix_base = I.prefix_base;
        Regs.seg_prefix = I.seg_prefix;

        return Regs;
    }