Ejemplo n.º 1
0
        private static void InitMethodCallList()
        {
            lstCallInstructions = new List <Instruction>();

            foreach (var Type in AsmDef.MainModule.Types)
            {
                foreach (var Method in Type.Methods)
                {
                    if (!Method.HasBody)
                    {
                        continue;
                    }

                    foreach (var Instr in Method.Body.Instructions)
                    {
                        if (Instr.ToString().Contains("call"))
                        {
                            lstCallInstructions.Add(Instr);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public ushort SetLigne(ushort Adr, ref string Buffer)
        {
            int    Instr, Inst2 = 0, Inst3, Ad16, Ad8;
            string Chaine, Inst;

            Buffer  = Adr.ToString("X4") + "    ";
            Instr   = VGA.PEEK8(Adr++);
            Buffer += " " + Instr.ToString("X2");
            Chaine  = TabInstr[Instr];
            if (Instr == 0xCB)
            {
                Inst2   = VGA.PEEK8(Adr++);
                Buffer += " " + Inst2.ToString("X2");
                Chaine  = TabInstrCB[Inst2];
            }
            else
            if (Instr == 0xED)
            {
                Inst2   = VGA.PEEK8(Adr++);
                Buffer += " " + Inst2.ToString("X2");
                Chaine  = TabInstrED[Inst2];
            }
            else
            if (Instr == 0xDD || Instr == 0xFD)
            {
                Inst2   = VGA.PEEK8(Adr++);
                Buffer += " " + Inst2.ToString("X2");
                if (Inst2 == 0xCB)
                {
                    Inst3  = VGA.PEEK8((ushort)(Adr + 1));
                    Chaine = TabInstrXXCB[Inst3];
                }
                else
                {
                    Chaine = TabInstrXX[Inst2];
                }
            }

            if (Chaine == null)
            {
                Chaine = "????";
            }

            Inst = Chaine;
            if (Instr == 0xFD)
            {
                Inst.Replace("IX", "IY");
            }

            Ad8  = VGA.PEEK8(Adr);
            Ad16 = Ad8 + VGA.PEEK8((ushort)(Adr + 1)) << 8;
            if (Ad8 > 127)
            {
                Ad8 -= 256;
            }
            if (Inst.Contains("nnnn"))
            {
                Inst = Inst.Replace("nnnn", Ad16.ToString("X4"));
                Adr += 2;
            }
            else
            {
                if (Inst.Contains("nn"))
                {
                    Inst = Inst.Replace("nn", Ad8.ToString("X2"));
                    Adr++;
                    if (Inst2 == 0xCB)
                    {
                        Inst = Inst.Replace("nn", (Ad16 >> 8).ToString("X2"));
                        Adr++;
                    }
                    if (Inst.Contains("nn"))
                    {
                    }
                }
                else
                {
                    if (Inst.Contains("eeee"))
                    {
                        Inst = Inst.Replace("eeee", (++Adr + Ad8).ToString("X4"));
                    }
                }
            }
            Buffer += " " + Inst;
            return(Adr);
        }