private void SetDirectives(DataDirective directive) { switch (directive) { case DataDirective.DotDB: byteCode = shortByteCode; wordCode = shortWordCode; break; case DataDirective.DotByte: byteCode = longByteCode; wordCode = longWordCode; break; default: throw new ArgumentException("Invalid directive type."); break; } }
private ItemDataDisassembler(Level level, DataDirective directive) { this.level = level; SetDirectives(directive); CreateRowList(level); int dataOffset = rows[0].Offset; var pointer = level.CreatePointer((pRom)dataOffset); result.AppendLine("; Offset of item data"); result.AppendLine(".org " + FormatWord(pointer.Value)); for (int i = 0; i < rows.Count; i++) { ItemRowEntry row = rows[i]; ItemRowEntry nextRow = GetNextRow(row); DisassmRow(row, nextRow); } }
public static string GetItemDisassembly(Level l, DataDirective directiveType) { var disassembler = new ItemDataDisassembler(l, directiveType); return(disassembler.GetDisassebly()); }