Exemple #1
0
 public App()
 {
     AppDomain.CurrentDomain.SetData(LibsPath, new string[] {
         App.Root + App.Component
     });
     AssemblyServices.HockResolve(AppDomain.CurrentDomain);
     Startup += App_Startup;
 }
Exemple #2
0
        public void OnGet()
        {
            WebRootPath     = currentEnvironment.WebRootPath;
            ApplicationName = currentEnvironment.ApplicationName;
            EnvironmentName = currentEnvironment.EnvironmentName;
            EntryAssembly   = AssemblyServices.GetDisplayInfoForAssembly(Assembly.GetEntryAssembly());
            var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName !.StartsWith("MemCheck"));

            MemCheckAssemblies = assemblies.Select(a => AssemblyServices.GetDisplayInfoForAssembly(a)).OrderBy(a => a);
        }
Exemple #3
0
 private void PopulateSelected(TreeNodeCollection treeNodeCollection, List <string> retList)
 {
     foreach (TreeNode node in treeNodeCollection)
     {
         if (node.Checked && AssemblyServices.IsClass(node.Tag))
         {
             retList.Add(node.Text);
         }
         PopulateSelected(node.Nodes, retList);
     }
 }
 /// <summary>
 /// Constructs a new instance of the encoding assembler class.
 /// </summary>
 /// <param name="services">The shared <see cref="AssemblyServices"/> object.</param>
 public EncodingAssembler(AssemblyServices services)
     : base(services)
 {
     Reserved.DefineType("Directives",
                         ".encoding", ".map", ".unmap");
 }
Exemple #5
0
        /// <summary>
        /// Creates a new instance of the Z80 assembler.
        /// </summary>
        /// <param name="services">The shared <see cref="AssemblyServices"/> object.</param>
        public Z80Asm(AssemblyServices services)
            : base(services)
        {
            Reserved.DefineType("Mnemonics",
                                "adc", "add", "ccf", "cpd", "cpdr", "cpi", "cpir", "cpl",
                                "daa", "dec", "di", "ei", "ex", "exx", "halt", "in",
                                "inc", "ind", "indr", "ini", "inir", "ld", "ldd", "lddr",
                                "ldi", "ldir", "neg", "nop", "otdr", "otir", "out", "outd",
                                "outi", "pop", "push", "reti", "retn", "rl", "rla", "rlc",
                                "rlca", "rld", "rr", "rra", "rrc", "rrca", "rrd", "sbc",
                                "scf", "sla", "sll", "slr", "sra", "srl", "xor"
                                );

            Reserved.DefineType("i80Mnemonics",
                                "aci", "adi", "ana", "ani", "cc", "cm", "cma", "cmc",
                                "cmp", "cnc", "cnz", "cpe", "cpo", "cz", "dad", "dcr",
                                "dcx", "hlt", "inr", "inx", "jc", "jm", "jmp", "jnc",
                                "jnz", "jpe", "jpo", "jz", "lda", "ldax", "lhld", "lxi",
                                "mov", "mvi", "ora", "ori", "pchl", "ral", "rar", "rc",
                                "rm", "rnc", "rnz", "rp", "rpe", "rpo", "rz", "sbb",
                                "sbi", "shld", "sphl", "sta", "stax", "stc", "sui", "xchg",
                                "xra", "xri", "xthl");

            Reserved.DefineType("Bits",
                                "im", "rst", "bit", "res", "set"
                                );

            Reserved.DefineType("Shifts",
                                "rl", "rla", "rlc", "rld", "rr", "rra", "rrc",
                                "rrd", "sla", "sll", "slr", "sra", "srl"
                                );

            Reserved.DefineType("ImpliedA",
                                "and", "cp", "or", "sub", "xor"
                                );

            Reserved.DefineType("Branches",
                                "call", "jp", "jr", "ret"
                                );

            Reserved.DefineType("Relatives",
                                "djnz", "jr"
                                );

            _namedModes = new Dictionary <StringView, Z80Mode>(Services.StringViewComparer)
            {
                { "a", Z80Mode.A },
                { "af", Z80Mode.AF },
                { "af'", Z80Mode.ShadowAF },
                { "b", Z80Mode.B },
                { "bc", Z80Mode.BC },
                { "c", Z80Mode.C },
                { "d", Z80Mode.D },
                { "de", Z80Mode.DE },
                { "e", Z80Mode.E },
                { "h", Z80Mode.H },
                { "hl", Z80Mode.HL },
                { "i", Z80Mode.I },
                { "ix", Z80Mode.IX },
                { "ixh", Z80Mode.XH },
                { "ixl", Z80Mode.XL },
                { "iy", Z80Mode.IY },
                { "iyh", Z80Mode.YH },
                { "iyl", Z80Mode.YL },
                { "l", Z80Mode.L },
                { "m", Z80Mode.M },
                { "nc", Z80Mode.NC },
                { "nz", Z80Mode.NZ },
                { "p", Z80Mode.P },
                { "pe", Z80Mode.PE },
                { "po", Z80Mode.PO },
                { "psw", Z80Mode.PSW },
                { "r", Z80Mode.R },
                { "sp", Z80Mode.SP },
                { "z", Z80Mode.Z }
            };
            Services.SymbolManager.AddValidSymbolNameCriterion(s => !_namedModes.ContainsKey(s));
        }
Exemple #6
0
        /// <summary>
        /// Constructs a new instance of the 6502 assembler object.
        /// </summary>
        /// <param name="services">The shared <see cref="AssemblyServices"/> object.</param>
        public Asm6502(AssemblyServices services)
            : base(services)
        {
            Reserved.DefineType("IndIndeces",
                                "s", "sp", "x");

            Reserved.DefineType("IndicesInd",
                                "y", "z");

            Reserved.DefineType("Indeces",
                                "s", "sp", "x", "y", "z");

            Reserved.DefineType("Registers",
                                "a", "s", "sp", "x", "y", "z");

            Reserved.DefineType("Implieds",
                                "brk", "clc", "cld", "cla", "cle", "cli", "clv", "clx",
                                "cly", "csh", "dex", "dey", "dez", "inx", "iny", "inz",
                                "jam", "map", "nop", "pha", "phb", "phd", "phk", "php",
                                "phx", "phy", "phz", "pla", "plb", "pld", "plp", "plx",
                                "ply", "plz", "rts", "rti", "rtl", "rtn", "say", "sec",
                                "sed", "see", "sei", "set", "stp", "tax", "tay", "taz",
                                "tcd", "tcs", "tdc", "tsc", "tsx", "tsy", "txa", "txs",
                                "txy", "tya", "tys", "tyx", "tza", "wai", "wdm", "xba",
                                "xce"
                                );

            Reserved.DefineType("Branches",
                                "bcc", "bcs", "beq", "bmi", "bne", "bpl", "bra", "bvc",
                                "bvs", "brl", "per", "blt", "bge", "bbr", "bbs"
                                );

            Reserved.DefineType("Branches16",
                                "brl", "per", "blt", "bge"
                                );

            Reserved.AddWord("RelativeSecond", "bbr");
            Reserved.AddWord("RelativeSecond", "bbs");
            Reserved.AddWord("RelativeSecond", "rmb");
            Reserved.AddWord("RelativeSecond", "smb");

            Reserved.DefineType("MoveMemory16",
                                "tai", "tdd", "tia", "tii", "tin"
                                );

            Reserved.DefineType("Jumps",
                                "jmp", "jsr"
                                );

            Reserved.DefineType("JumpsLong",
                                "jml", "jsl"
                                );

            Reserved.AddWord("SwapOperands", "mvn");
            Reserved.AddWord("SwapOperands", "mvp");

            Reserved.DefineType("LongShort",
                                ".m16", ".m8", ".x16", ".x8", ".mx16", ".mx8"
                                );

            Reserved.DefineType("Autos", ".auto", ".manual");

            Reserved.DefineType("PseudoBranches",
                                "jcc", "jcs", "jeq", "jmi", "jne", "jpl", "jvc",
                                "jvs");

            Reserved.DefineType("RepSep",
                                "rep", "sep"
                                );

            Reserved.DefineType("Mnemonics",
                                "adc", "anc", "and", "ane", "arr", "asl", "asr", "asw",
                                "bit", "bsr", "cmp", "cop", "cpx", "cpy", "cpz", "dcp",
                                "dec", "dew", "dop", "eor", "inc", "inw", "isb", "jml",
                                "jmp", "jsl", "jsr", "las", "lax", "lda", "ldx", "ldy",
                                "ldz", "lsr", "neg", "ora", "pea", "pei", "phw", "rla",
                                "rol", "ror", "row", "rra", "sax", "sbc", "sha", "shx",
                                "shy", "slo", "sre", "st1", "st2", "sta", "stx", "sty",
                                "stz", "tam", "tas", "tma", "top", "trb", "tsb", "tst",
                                "adcq", "aslq", "andq", "cpq", "deq", "eom", "eorq",
                                "inq", "ldq", "lsrq", "orq", "rolq", "rorq", "sbcq",
                                "stq"
                                );

            // set architecture specific encodings
            Services.Encoding.SelectEncoding("\"petscii\"");
            Services.Encoding.Map("az", 'A');
            Services.Encoding.Map("AZ", 0xc1);
            Services.Encoding.Map('£', '\\');
            Services.Encoding.Map('↑', '^');
            Services.Encoding.Map('←', '_');
            Services.Encoding.Map('▌', 0xa1);
            Services.Encoding.Map('▄', 0xa2);
            Services.Encoding.Map('▔', 0xa3);
            Services.Encoding.Map('▁', 0xa4);
            Services.Encoding.Map('▏', 0xa5);
            Services.Encoding.Map('▒', 0xa6);
            Services.Encoding.Map('▕', 0xa7);
            Services.Encoding.Map('◤', 0xa9);
            Services.Encoding.Map('├', 0xab);
            Services.Encoding.Map('└', 0xad);
            Services.Encoding.Map('┐', 0xae);
            Services.Encoding.Map('▂', 0xaf);
            Services.Encoding.Map('┌', 0xb0);
            Services.Encoding.Map('┴', 0xb1);
            Services.Encoding.Map('┬', 0xb2);
            Services.Encoding.Map('┤', 0xb3);
            Services.Encoding.Map('▎', 0xb4);
            Services.Encoding.Map('▍', 0xb5);
            Services.Encoding.Map('▃', 0xb9);
            Services.Encoding.Map('✓', 0xba);
            Services.Encoding.Map('┘', 0xbd);
            Services.Encoding.Map('━', 0xc0);
            Services.Encoding.Map('♠', 0xc1);
            Services.Encoding.Map('│', 0xc2);
            Services.Encoding.Map('╮', 0xc9);
            Services.Encoding.Map('╰', 0xca);
            Services.Encoding.Map('╯', 0xcb);
            Services.Encoding.Map('╲', 0xcd);
            Services.Encoding.Map('╱', 0xce);
            Services.Encoding.Map('●', 0xd1);
            Services.Encoding.Map('♥', 0xd3);
            Services.Encoding.Map('╭', 0xd5);
            Services.Encoding.Map('╳', 0xd6);
            Services.Encoding.Map('○', 0xd7);
            Services.Encoding.Map('♣', 0xd8);
            Services.Encoding.Map('♦', 0xda);
            Services.Encoding.Map('┼', 0xdb);
            Services.Encoding.Map('π', 0xde);
            Services.Encoding.Map('◥', 0xdf);

            Services.Encoding.SelectEncoding("\"cbmscreen\"");
            Services.Encoding.Map("@Z", '\0');
            Services.Encoding.Map("az", 'A');
            Services.Encoding.Map('£', '\\');
            Services.Encoding.Map('π', '^'); // π is $5e in unshifted
            Services.Encoding.Map('↑', '^'); // ↑ is $5e in shifted
            Services.Encoding.Map('←', '_');
            Services.Encoding.Map('▌', '`');
            Services.Encoding.Map('▄', 'a');
            Services.Encoding.Map('▔', 'b');
            Services.Encoding.Map('▁', 'c');
            Services.Encoding.Map('▏', 'd');
            Services.Encoding.Map('▒', 'e');
            Services.Encoding.Map('▕', 'f');
            Services.Encoding.Map('◤', 'i');
            Services.Encoding.Map('├', 'k');
            Services.Encoding.Map('└', 'm');
            Services.Encoding.Map('┐', 'n');
            Services.Encoding.Map('▂', 'o');
            Services.Encoding.Map('┌', 'p');
            Services.Encoding.Map('┴', 'q');
            Services.Encoding.Map('┬', 'r');
            Services.Encoding.Map('┤', 's');
            Services.Encoding.Map('▎', 't');
            Services.Encoding.Map('▍', 'u');
            Services.Encoding.Map('▃', 'y');
            Services.Encoding.Map('✓', 'z');
            Services.Encoding.Map('┘', '}');
            Services.Encoding.Map('━', '@');
            Services.Encoding.Map('♠', 'A');
            Services.Encoding.Map('│', 'B');
            Services.Encoding.Map('╮', 'I');
            Services.Encoding.Map('╰', 'J');
            Services.Encoding.Map('╯', 'K');
            Services.Encoding.Map('╲', 'M');
            Services.Encoding.Map('╱', 'N');
            Services.Encoding.Map('●', 'Q');
            Services.Encoding.Map('♥', 'S');
            Services.Encoding.Map('╭', 'U');
            Services.Encoding.Map('╳', 'V');
            Services.Encoding.Map('○', 'W');
            Services.Encoding.Map('♣', 'X');
            Services.Encoding.Map('♦', 'Z');
            Services.Encoding.Map('┼', '[');
            Services.Encoding.Map('◥', '_');

            Services.Encoding.SelectEncoding("\"atascreen\"");
            Services.Encoding.Map(" _", '\0');

            Services.Encoding.SelectDefaultEncoding();
            _autoOn = CPU.Equals("65816") && Services.Options.Autosize;
            _m16    = _x16 = false;
        }
 public void CheckNull()
 {
     Assert.AreEqual("Unknown", AssemblyServices.GetDisplayInfoForAssembly(null));
 }
 public void CheckBasics()
 {
     Assert.AreEqual("MemCheck.BasicsTests 0.12.12", AssemblyServices.GetDisplayInfoForAssembly(GetType().Assembly));
 }
Exemple #9
0
 public void SetAssemblyPath(string assembly)
 {
     treeView1.Nodes.Add(AssemblyServices.CreateClassNamesNode(assembly));
 }