public List <string> DisassembleTextFile(EDatabaseTable eDatabaseTable, string strDatabasePath, string strItemName) { PrepForDASM(); // Load file to byte array List <string> lstrCardData = ReadCardFileToStringList(eDatabaseTable, "", strItemName); LoadTextFile(lstrCardData); m_bDumpComplete = false; // Disassemble end card List <string> strlDisassembleTextFile = new List <string> (); //strlDisassembleTextFile.Add ("Program Disassembly for: " + strItemName); //strlDisassembleTextFile.Add ("End Card Instructions"); int iInsertPoint = strlDisassembleTextFile.Count; strlDisassembleTextFile.AddRange(DisassembleCodeEndCard(m_yaEndCard, m_iLowAddressEC, m_iHighAddressEC)); //strlDisassembleTextFile.Insert (iInsertPoint, string.Format ("Program entry point: 0x{0:X4}", m_iEndCardLoadAddress)); strlDisassembleTextFile.Add(""); strlDisassembleTextFile.Add(""); // Disassemble byte array strlDisassembleTextFile.Add("Program Body Disassembly"); strlDisassembleTextFile.Add(string.Format("Program entry point: 0x{0:X4}", m_iEndCardLoadAddress)); //if (m_iLowAddressMI < m_iEndCardLoadAddress) //{ // strlDisassembleTextFile.AddRange (BinaryToDump (m_ylMemoryImage, m_iLowAddressMI, m_iEndCardLoadAddress - 1)); //} strlDisassembleTextFile.AddRange(DisassembleCodeFromText(m_ylMemoryImage.ToArray())); return(strlDisassembleTextFile); }
public List <string> ReadScriptDataToStringList(EDatabaseTable eDatabaseTable, string strDatabasePath, string strScriptName) { List <string> lstrScriptLines = new List <string> (); if (strDatabasePath.Length == 0) { if (m_strDatabasePath.Length == 0) { return(lstrScriptLines); } strDatabasePath = m_strDatabasePath; } System.Data.OleDb.OleDbConnection odbConnection; System.Data.OleDb.OleDbCommand odbCommand = new System.Data.OleDb.OleDbCommand(); string strTableName = ""; string strSelectName = ""; string strOrderByName = ""; string strDataName = ""; if (eDatabaseTable == EDatabaseTable.TABLE_SavedScripts) { strTableName = "SavedScripts"; strSelectName = "ScriptName"; strOrderByName = "ScriptLineSequence"; strDataName = "ScriptLineText"; } else if (eDatabaseTable == EDatabaseTable.TABLE_ScriptingMacros) { strTableName = "ScriptingMacros"; strSelectName = "MacroName"; strOrderByName = "MacroLineSequence"; strDataName = "MacroLineText"; } else { return(lstrScriptLines); } string strSqlCommand = string.Format("SELECT {0}.[{3}] FROM {0} WHERE {1} = '{4}' Order by {2} ASC;", strTableName, strSelectName, strOrderByName, strDataName, strScriptName); try { odbConnection = new System.Data.OleDb.OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", strDatabasePath)); OleDbDataAdapter ordAdapter = new OleDbDataAdapter(strSqlCommand, odbConnection); DataSet dsScript = new DataSet("ScripSet"); DataTable dtScript = dsScript.Tables.Add("ScriptTable"); DataColumn dciplScriptLine = dtScript.Columns.Add(strDataName, typeof(string)); ordAdapter.Fill(dtScript); DataTableReader dtrScript = dtScript.CreateDataReader(); if (dtrScript.HasRows) { while (dtrScript.Read()) { lstrScriptLines.Add(SqlInsertDecode(SafeGetString(dtrScript, 0))); } } odbConnection.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(lstrScriptLines); } return(lstrScriptLines); }
public byte[] ReadDiskImageToBinary(EDatabaseTable eDatabaseTable, string strDatabasePath, string strFilename) { List <byte> lyDiskImage = new List <byte> (); if (strDatabasePath.Length > 0) { if (m_strDatabasePath.Length == 0) { return(lyDiskImage.ToArray()); } strDatabasePath = m_strDatabasePath; } string strTableName = ""; if (eDatabaseTable == EDatabaseTable.TABLE_DiskCreatedImages) { strTableName = "DiskCreatedImages"; } else if (eDatabaseTable == EDatabaseTable.TABLE_DiskOriginalImages) { strTableName = "DiskOriginalImages"; } else { return(lyDiskImage.ToArray()); } try { if (m_odbConnection.ConnectionString.Length == 0) { m_odbConnection.ConnectionString = (string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", strDatabasePath)); } string strSqlCommand = string.Format("SELECT {0}.[DiskSectorPartOne], {0}.[DiskSectorPartTwo], {0}.[DiskSectorPartThree], {0}.[DiskSectorPartFour]" + "FROM {0} WHERE DiskImageName = '{1}' ORDER BY DiskRecordSequence", strTableName, strFilename); OleDbDataAdapter ordAdapter = new OleDbDataAdapter(strSqlCommand, m_odbConnection); DataSet ds = new DataSet("DiskOriginalImagesSet"); DataTable dtIPL = ds.Tables.Add("DiskOriginalImagesTable"); DataColumn dcdiDiskSectorPartOne = dtIPL.Columns.Add("DiskSectorPartOne", typeof(string)); DataColumn dcdiDiskSectorPartTwo = dtIPL.Columns.Add("DiskSectorPartTwo", typeof(string)); DataColumn dcdiDiskSectorPartThree = dtIPL.Columns.Add("DiskSectorPartThree", typeof(string)); DataColumn dcdiDiskSectorPartFour = dtIPL.Columns.Add("DiskSectorPartFour", typeof(string)); ordAdapter.Fill(dtIPL); DataTableReader dtr = dtIPL.CreateDataReader(); if (dtr.HasRows) { while (dtr.Read()) { CompressHexToByte(SafeGetString(dtr, 0), ref lyDiskImage); CompressHexToByte(SafeGetString(dtr, 1), ref lyDiskImage); CompressHexToByte(SafeGetString(dtr, 2), ref lyDiskImage); CompressHexToByte(SafeGetString(dtr, 3), ref lyDiskImage); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(lyDiskImage.ToArray()); } return(lyDiskImage.ToArray()); }
public List <string> ReadCardFileToStringList(EDatabaseTable eDatabaseTable, string strDatabasePath, string strFilename) { List <string> lstrCardLines = new List <string> (); if (strDatabasePath.Length == 0) { if (m_strDatabasePath.Length == 0) { return(lstrCardLines); } strDatabasePath = m_strDatabasePath; } string strTableName = ""; string strSelectName = ""; string strOrderByName = ""; string strDataName = ""; if (eDatabaseTable == EDatabaseTable.TABLE_CardData) { strTableName = "CardData"; strSelectName = "DataFileName"; strOrderByName = "CardSequence"; strDataName = "CardImage"; } else if (eDatabaseTable == EDatabaseTable.TABLE_CardObjectIPL) { strTableName = "CardObjectIPL"; strSelectName = "ProgramName"; strOrderByName = "CardSequence"; strDataName = "CardImage"; } else if (eDatabaseTable == EDatabaseTable.TABLE_CardObjectText) { strTableName = "CardObjectText"; strSelectName = "ProgramName"; strOrderByName = "CardSequence"; strDataName = "CardImage"; } else if (eDatabaseTable == EDatabaseTable.TABLE_CardRPGiiSource) { strTableName = "CardRPGiiSource"; strSelectName = "ProgramName"; strOrderByName = "CardSequence"; strDataName = "CardImage"; } else { return(lstrCardLines); } string strSqlCommand = string.Format("SELECT {0}.[{3}] FROM {0} WHERE {1} = '{4}' Order by {2} ASC;", strTableName, strSelectName, strOrderByName, strDataName, strFilename); try { if (m_odbConnection.ConnectionString.Length == 0) { m_odbConnection.ConnectionString = (string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}';", strDatabasePath)); } OleDbDataAdapter ordAdapter = new OleDbDataAdapter(strSqlCommand, m_odbConnection); DataSet ds = new DataSet("CardObjectIPLSet"); DataTable dtIPL = ds.Tables.Add("CardObjectIPLTable"); DataColumn dciplCardImage = dtIPL.Columns.Add("CardImage", typeof(string)); ordAdapter.Fill(dtIPL); DataTableReader dtr = dtIPL.CreateDataReader(); if (dtr.HasRows) { while (dtr.Read()) { string strNewString = SafeGetString(dtr, 0); if (strNewString.Length < 96) { strNewString += new string (' ', 96 - strNewString.Length); } lstrCardLines.Add(SqlInsertDecode(strNewString)); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(lstrCardLines); } return(lstrCardLines); }