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

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

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

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

        I.base[CS] = SegBase(CS);
        I.base[DS] = SegBase(DS);
        I.base[ES] = SegBase(ES);
        I.base[SS] = SegBase(SS);
        change_pc20((I.base[CS] + I.ip));

    }