Ejemplo n.º 1
0
        public void ParseLongData()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(16, parsed.ByteCount);
            Assert.Equal(8, parsed.Address);
            Assert.Equal(RecordType.Data, parsed.RecordType);

            Assert.Equal(0x00, parsed.Instructions[0].FirstByte);
            Assert.Equal(0x09, parsed.Instructions[0].SecondByte);

            Assert.Equal(0x20, parsed.Instructions[1].FirstByte);
            Assert.Equal(0x2C, parsed.Instructions[1].SecondByte);

            Assert.Equal(0x16, parsed.Instructions[2].FirstByte);
            Assert.Equal(0x83, parsed.Instructions[2].SecondByte);

            Assert.Equal(0x13, parsed.Instructions[3].FirstByte);
            Assert.Equal(0x03, parsed.Instructions[3].SecondByte);

            Assert.Equal(0x12, parsed.Instructions[4].FirstByte);
            Assert.Equal(0x86, parsed.Instructions[4].SecondByte);

            Assert.Equal(0x12, parsed.Instructions[5].FirstByte);
            Assert.Equal(0x83, parsed.Instructions[5].SecondByte);

            Assert.Equal(0x13, parsed.Instructions[6].FirstByte);
            Assert.Equal(0x03, parsed.Instructions[6].SecondByte);

            Assert.Equal(0x16, parsed.Instructions[7].FirstByte);
            Assert.Equal(0x86, parsed.Instructions[7].SecondByte);
        }
Ejemplo n.º 2
0
        public void ReturnsBcfInstructionString()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("BCF STATUS, RP1", parsed.Instructions[3].ToString());
        }
Ejemplo n.º 3
0
        public void ParseAddress()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(0, parsed.Address);
        }
Ejemplo n.º 4
0
        public void ParseBcfInstruction()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.IsType(typeof(Bcf), parsed.Instructions[3]);
        }
Ejemplo n.º 5
0
        public void ParseORGDirective()
        {
            var line   = ":020000040000FA";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("ORG 0x0000", parsed.ToString());
        }
Ejemplo n.º 6
0
        public void ParseByteCount()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(2, parsed.ByteCount);
        }
Ejemplo n.º 7
0
        public void ReturnsRetfieInstructionString()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("RETFIE", parsed.Instructions[0].ToString());
        }
Ejemplo n.º 8
0
        public void ReturnsGotoInstructionString()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("GOTO 0x05", parsed.Instructions[0].ToString());
        }
Ejemplo n.º 9
0
        public void ParseEnd()
        {
            var line   = ":00000001FF";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("END", parsed.ToString());
        }
Ejemplo n.º 10
0
        public void ParseGotoInstruction()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.IsType(typeof(Goto), parsed.Instructions[0]);
        }
Ejemplo n.º 11
0
        public void ParseChecksum()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(0xD1, parsed.Checksum);
        }
Ejemplo n.º 12
0
        public void ParseData5()
        {
            var line   = ":02400E008C3FE5";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("__CONFIG 0x3F8C", parsed.ToString());
        }
Ejemplo n.º 13
0
        public void ParseRecordType()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(RecordType.Data, parsed.RecordType);
        }
Ejemplo n.º 14
0
        public void ReturnsCallInstructionString()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal("CALL 0x2C", parsed.Instructions[1].ToString());
        }
Ejemplo n.º 15
0
        public void ParseInstructionBytes()
        {
            var line   = ":020000000528D1";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            Assert.Equal(0x28, parsed.Instructions[0].FirstByte);
            Assert.Equal(0x05, parsed.Instructions[0].SecondByte);
        }
Ejemplo n.º 16
0
        public void ParseData4()
        {
            var line   = ":0A003000850090308B0064001B284F";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            var asm = @"MOVWF 0x05
MOVLW 0x90
MOVWF 0x0B
CLRWDT
GOTO 0x1B";

            Assert.Equal(asm, parsed.ToString());
        }
Ejemplo n.º 17
0
        public void ParseDataAndReturnsTheSourceCode()
        {
            var line   = ":1000080009002C2083160313861283120313861605";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            var asm = @"RETFIE
CALL 0x2C
BSF STATUS, RP0
BCF STATUS, RP1
BCF PORTB, RB5
BCF STATUS, RP0
BCF STATUS, RP1
BSF PORTB, RB5";

            Assert.Equal(asm, parsed.ToString());
        }
Ejemplo n.º 18
0
        public void ParseData3()
        {
            var line   = ":10002000200E09008316BF3081000F308500831237";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            var asm = @"SWAPF 0x20, W
RETFIE
BSF STATUS, RP0
MOVLW 0xBF
MOVWF 0x01
MOVLW 0x0F
MOVWF 0x05
BCF STATUS, RP0";

            Assert.Equal(asm, parsed.ToString());
        }
Ejemplo n.º 19
0
        public void ParseData2()
        {
            var line   = ":100010008B1C0D288B1005168516210E8300A00E53";
            var parser = new HexParser();
            var parsed = parser.ParseLine(line);

            var asm = @"BTFSS INTCON, INTF
GOTO 0x0D
BCF INTCON, INTF
BSF PORTA, RA4
BSF PORTA, RA5
SWAPF 0x21, W
MOVWF 0x03
SWAPF 0x20, W";

            Assert.Equal(asm, parsed.ToString());
        }