public void TryParseConstant_Math_WithLabel()
        {
            ushort val       = 0;
            var    assembler = new Sharp_LR35902_Assembler.Assembler();

            assembler.AddLabelLocation("P", 77);
            Assert.IsTrue(assembler.TryParseImmediate("P + 3", ref val, true));
            Assert.AreEqual(80, val);
        }
Пример #2
0
        public void TryParseConstant_Math_WithConstant()
        {
            ushort currentlocation = 0;
            ushort val             = 0;
            var    assembler       = new Sharp_LR35902_Assembler.Assembler();

            assembler.ParseDirective("#DEFINE O 77", ref currentlocation);
            Assert.IsTrue(assembler.TryParseImmediate("O + 3", ref val));
            Assert.AreEqual(80, val);
        }
        public void TryParseConstant_GetDefinition_DefaultValue()
        {
            var assembler = new Sharp_LR35902_Assembler.Assembler();

            assembler.SetDefintion("B");

            ushort value = 11;

            Assert.IsTrue(assembler.TryParseImmediate("B", ref value));
            Assert.AreEqual(0, value);
        }
        public void AddDefinition_Overrides()
        {
            var assembler = new Sharp_LR35902_Assembler.Assembler();

            assembler.SetDefintion("X", 1);
            assembler.SetDefintion("X", 2);

            ushort val = 0;

            Assert.IsTrue(assembler.TryParseImmediate("X", ref val));
            Assert.AreEqual(2, val);
        }
        public void TryParseConstant_GetDefinition_FindsIt()
        {
            ushort expectedvalue = 0x7F00;
            var    assembler     = new Sharp_LR35902_Assembler.Assembler();

            assembler.SetDefintion("XX", expectedvalue);

            ushort value = 0;

            Assert.IsTrue(assembler.TryParseImmediate("XX", ref value));
            Assert.AreEqual(expectedvalue, value);
        }
Пример #6
0
        public void CompileProgram_AddsDefintition_RequiresParsing()
        {
            ushort expectedvalue = 0x7F;
            var    assembler     = new Sharp_LR35902_Assembler.Assembler();

            assembler.CompileProgram(new[] { "#DEFINE X 0x7F" }, null);

            ushort value = 0;

            Assert.IsTrue(assembler.TryParseImmediate("X", ref value));
            Assert.AreEqual(expectedvalue, value);
        }
        public void CompileProgram_AddsDefintition()
        {
            ushort expectedvalue = 0x7F;
            var    assembler     = new Sharp_LR35902_Assembler.Assembler();

            assembler.CompileProgram(new List <string> {
                $"#DEFINE X {expectedvalue}"
            });

            ushort value = 0;

            Assert.IsTrue(assembler.TryParseImmediate("X", ref value));
            Assert.AreEqual(expectedvalue, value);
        }