Example #1
0
        private static void AddTemporaryLabels()
        {
            List <int> addMe   = new List <int>();
            int        pointer = 0;

            while (pointer < Data.GetROMSize())
            {
                int           length = GetLineByteLength(pointer);
                Data.FlagType flag   = Data.GetFlag(pointer);

                if (unlabeled == FormatUnlabeled.ShowAll)
                {
                    addMe.Add(Util.ConvertPCtoSNES(pointer));
                }
                else if (unlabeled != FormatUnlabeled.ShowNone &&
                         (flag == Data.FlagType.Opcode || flag == Data.FlagType.Pointer16Bit || flag == Data.FlagType.Pointer24Bit || flag == Data.FlagType.Pointer32Bit))
                {
                    int ia = Util.GetIntermediateAddressOrPointer(pointer);
                    if (ia >= 0 && Util.ConvertSNEStoPC(ia) >= 0)
                    {
                        addMe.Add(ia);
                    }
                }

                pointer += length;
            }

            // TODO +/- labels
            for (int i = 0; i < addMe.Count; i++)
            {
                Data.AddLabel(addMe[i], Util.GetDefaultLabel(addMe[i]), false);
            }
        }
Example #2
0
        private void table_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
        {
            int row = e.RowIndex + viewOffset;

            if (row >= Data.GetROMSize())
            {
                return;
            }
            switch (e.ColumnIndex)
            {
            case 0: e.Value = Data.GetLabel(Util.ConvertPCtoSNES(row)); break;

            case 1: e.Value = Util.NumberToBaseString(Util.ConvertPCtoSNES(row), Util.NumberBase.Hexadecimal, 6); break;

            case 2: e.Value = (char)Data.GetROMByte(row); break;

            case 3: e.Value = Util.NumberToBaseString(Data.GetROMByte(row), DisplayBase); break;

            case 4: e.Value = Util.PointToString(Data.GetInOutPoint(row)); break;

            case 5:
                int len = Manager.GetInstructionLength(row);
                if (row + len <= Data.GetROMSize())
                {
                    e.Value = Util.GetInstruction(row);
                }
                else
                {
                    e.Value = "";
                }
                break;

            case 6:
                int ia = Util.GetIntermediateAddressOrPointer(row);
                if (ia >= 0)
                {
                    e.Value = Util.NumberToBaseString(ia, Util.NumberBase.Hexadecimal, 6);
                }
                else
                {
                    e.Value = "";
                }
                break;

            case 7: e.Value = Util.TypeToString(Data.GetFlag(row)); break;

            case 8: e.Value = Util.NumberToBaseString(Data.GetDataBank(row), Util.NumberBase.Hexadecimal, 2); break;

            case 9: e.Value = Util.NumberToBaseString(Data.GetDirectPage(row), Util.NumberBase.Hexadecimal, 4); break;

            case 10: e.Value = Util.BoolToSize(Data.GetMFlag(row)); break;

            case 11: e.Value = Util.BoolToSize(Data.GetXFlag(row)); break;

            case 12: e.Value = Data.GetComment(Util.ConvertPCtoSNES(row)); break;
            }
        }
Example #3
0
        private void GoToIntermediateAddress(int offset)
        {
            int ia = Util.GetIntermediateAddressOrPointer(offset);

            if (ia >= 0)
            {
                int pc = Util.ConvertSNEStoPC(ia);
                if (pc >= 0)
                {
                    SelectOffset(pc, 1);
                }
            }
        }
Example #4
0
        // length forced to 6
        private static string GetIntermediateAddress(int offset, int length)
        {
            int ia = Util.GetIntermediateAddressOrPointer(offset);

            return(ia >= 0 ? Util.NumberToBaseString(ia, Util.NumberBase.Hexadecimal, 6) : "      ");
        }