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); }
public void ReturnsBcfInstructionString() { var line = ":1000080009002C2083160313861283120313861605"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("BCF STATUS, RP1", parsed.Instructions[3].ToString()); }
public void ParseAddress() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal(0, parsed.Address); }
public void ParseBcfInstruction() { var line = ":1000080009002C2083160313861283120313861605"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.IsType(typeof(Bcf), parsed.Instructions[3]); }
public void ParseORGDirective() { var line = ":020000040000FA"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("ORG 0x0000", parsed.ToString()); }
public void ParseByteCount() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal(2, parsed.ByteCount); }
public void ReturnsRetfieInstructionString() { var line = ":1000080009002C2083160313861283120313861605"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("RETFIE", parsed.Instructions[0].ToString()); }
public void ReturnsGotoInstructionString() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("GOTO 0x05", parsed.Instructions[0].ToString()); }
public void ParseEnd() { var line = ":00000001FF"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("END", parsed.ToString()); }
public void ParseGotoInstruction() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.IsType(typeof(Goto), parsed.Instructions[0]); }
public void ParseChecksum() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal(0xD1, parsed.Checksum); }
public void ParseData5() { var line = ":02400E008C3FE5"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("__CONFIG 0x3F8C", parsed.ToString()); }
public void ParseRecordType() { var line = ":020000000528D1"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal(RecordType.Data, parsed.RecordType); }
public void ReturnsCallInstructionString() { var line = ":1000080009002C2083160313861283120313861605"; var parser = new HexParser(); var parsed = parser.ParseLine(line); Assert.Equal("CALL 0x2C", parsed.Instructions[1].ToString()); }
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); }
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()); }
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()); }
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()); }
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()); }