T8SuitePro.Disassembler.find_symbol C# (CSharp) Method

find_symbol() private method

private find_symbol ( string &symbol, long caddr ) : int
symbol string
caddr long
return int
        int find_symbol(out string symbol, long caddr)
        {
            int retval = 0;
            symbol = string.Empty;
            foreach(SymbolHelper sh in m_symbols)
            {
                if (caddr != 0 && sh.Flash_start_address == caddr)
                {
                    if (sh.Flash_start_address < 0x100000)
                    {
                        symbol = "ROM_" + sh.SmartVarname;
                        retval = 1;
                    }
                    else
                    {
                        symbol = "RAM_" + sh.SmartVarname;
                        retval = 1;
                    }
                }
            }
            if (symbol == string.Empty)
            {
                // http://cache.freescale.com/files/microcontrollers/doc/ref_manual/MC68377RM.pdf
                // APPENDIX A INTERNAL MEMORY MAP
                if (caddr == 0x100000) symbol = "RAM_FSRAM";
                else if (caddr >= 0xFFF000 && caddr < 0xFFF100)
                {
                    long seg_base = caddr - 0xFFF000;
                    symbol += "QADC64.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "QADC64MCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "QADC64TEST";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "QADC64INT";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "PORTQA/PORTQB";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "DDRQA";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "QACR0";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "QACR1";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "QACR2";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "QASR0";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "QASR1";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF100 && caddr < 0xFFF200) symbol = "TouCAN+0x" + (caddr - 0xFFF100).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF300 && caddr < 0xFFF400)
                {
                    long seg_base = caddr - 0xFFF300;
                    symbol += "QADC64.";
                    if (seg_base >= 0x0 && seg_base < 0x7F) symbol += "CCW";
                    else if (seg_base >= 0x80 && seg_base < 0xFE) symbol += "RJURR";
                    else if (seg_base >= 0x0 && seg_base < 0x7E) symbol += "LJSRR";
                    else if (seg_base >= 0x80 && seg_base < 0xFE) symbol += "LJURR";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF400 && caddr < 0xFFF600)
                {
                    long seg_base = caddr - 0xFFF400;
                    symbol = "QSM_B.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "QSMCR_B";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "QTEST_B";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "QILR/QIVR_B";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "SCCR0_B";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "SCCR1_B";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "SCSR_B";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "SCDR_B";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "PORTQS_B";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "PQSPAR_B/DDRQST_B";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "SPCR0_B";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "SPCR1_B";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "SPCR2_B";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "SPCR3_B/SPSR_B";
                    else if (seg_base >= 0x100 && seg_base < 0x11F) symbol += "SCRQ_B";
                    else if (seg_base >= 0x120 && seg_base < 0x13F) symbol += "SCTQ_B";
                    else if (seg_base >= 0x140 && seg_base < 0x14F) symbol += "QSPIRAM_B";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF600 && caddr < 0xFFF610) symbol = "DLCMD+0x" + (caddr - 0xFFF600).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF610 && caddr < 0xFFF660) symbol = "RESERVED_A+0x" + (caddr - 0xFFF610).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF660 && caddr < 0xFFF668) symbol = "SRAM_A+0x" + (caddr - 0xFFF660).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF668 && caddr < 0xFFF670) symbol = "SRAM_B+0x" + (caddr - 0xFFF668).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF670 && caddr < 0xFFF678) symbol = "SRAM_C+0x" + (caddr - 0xFFF670).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF678 && caddr < 0xFFF680) symbol = "SRAM_D+0x" + (caddr - 0xFFF678).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF680 && caddr < 0xFFF6C0)
                {
                    long seg_base = caddr - 0xFFF680;
                    symbol += "DPTRAM.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "DPTMCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "DPTTCR";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "DPTBAR";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "MISRH";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "MISRL";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "MISCNT";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF6C0 && caddr < 0xFFF6E0)
                {
                    long seg_base = caddr - 0xFFF6C0;
                    symbol += "FASRAM.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "FMCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "FTEST";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "FBAR-H";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "FBAR-L";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "FCCR0";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "FCCR1";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "FMATCH";
                    //else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "FSTATUS";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF6E0 && caddr < 0xFFF700) symbol = "RESERVED_B+0x" + (caddr - 0xFFF6E0).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF700 && caddr < 0xFFF800)
                {
                    long seg_base = caddr - 0xFFF700;
                    symbol += "CTM9.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "BIUMCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "BIUTEST";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "BIUTBR";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "CPCR";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "CPTR";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "MCSM2SIC";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "MCSM2CNT";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "MCSM2ML";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "DASM3SIC";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "DASM3A";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "DASM3B";
                    else if (seg_base >= 0x20 && seg_base < 0x22) symbol += "DASM4SIC";
                    else if (seg_base >= 0x22 && seg_base < 0x24) symbol += "DASM4A";
                    else if (seg_base >= 0x24 && seg_base < 0x26) symbol += "DASM4B";
                    else if (seg_base >= 0x28 && seg_base < 0x2A) symbol += "PWM5SIC";
                    else if (seg_base >= 0x2A && seg_base < 0x2C) symbol += "PWM5A";
                    else if (seg_base >= 0x2C && seg_base < 0x2E) symbol += "PWM5B";
                    else if (seg_base >= 0x2E && seg_base < 0x30) symbol += "PWM5C";
                    else if (seg_base >= 0x30 && seg_base < 0x32) symbol += "PWM6SIC";
                    else if (seg_base >= 0x32 && seg_base < 0x34) symbol += "PWM6A";
                    else if (seg_base >= 0x34 && seg_base < 0x36) symbol += "PWM6B";
                    else if (seg_base >= 0x36 && seg_base < 0x38) symbol += "PWM6C";
                    else if (seg_base >= 0x38 && seg_base < 0x3A) symbol += "PWM7SIC";
                    else if (seg_base >= 0x3A && seg_base < 0x3C) symbol += "PWM7A";
                    else if (seg_base >= 0x3C && seg_base < 0x3E) symbol += "PWM7B";
                    else if (seg_base >= 0x3E && seg_base < 0x40) symbol += "PWM7C";
                    else if (seg_base >= 0x40 && seg_base < 0x42) symbol += "PWM8SIC";
                    else if (seg_base >= 0x42 && seg_base < 0x44) symbol += "PWM8A";
                    else if (seg_base >= 0x44 && seg_base < 0x46) symbol += "PWM8B";
                    else if (seg_base >= 0x46 && seg_base < 0x48) symbol += "PWM8C";
                    else if (seg_base >= 0x48 && seg_base < 0x4A) symbol += "DASM9SIC";
                    else if (seg_base >= 0x4A && seg_base < 0x4C) symbol += "DASM9A";
                    else if (seg_base >= 0x4C && seg_base < 0x4E) symbol += "DASM9B";
                    else if (seg_base >= 0x50 && seg_base < 0x52) symbol += "DASM10SIC";
                    else if (seg_base >= 0x52 && seg_base < 0x54) symbol += "DASM10A";
                    else if (seg_base >= 0x54 && seg_base < 0x56) symbol += "DASM10B";
                    else if (seg_base >= 0x58 && seg_base < 0x5A) symbol += "MCSM11SIC";
                    else if (seg_base >= 0x5A && seg_base < 0x5C) symbol += "MCSM11CNT";
                    else if (seg_base >= 0x5C && seg_base < 0x5E) symbol += "MCSM11ML";
                    else if (seg_base >= 0x60 && seg_base < 0x62) symbol += "FCSMSIC";
                    else if (seg_base >= 0x62 && seg_base < 0x64) symbol += "FCSMCNT";
                    else if (seg_base >= 0x70 && seg_base < 0x72) symbol += "S14ICA";
                    else if (seg_base >= 0x72 && seg_base < 0x74) symbol += "S14DATA";
                    else if (seg_base >= 0x74 && seg_base < 0x76) symbol += "S14ICB";
                    else if (seg_base >= 0x76 && seg_base < 0x78) symbol += "S14DATB";
                    else if (seg_base >= 0x80 && seg_base < 0x82) symbol += "S16ICA";
                    else if (seg_base >= 0x82 && seg_base < 0x84) symbol += "S16DATA";
                    else if (seg_base >= 0x84 && seg_base < 0x86) symbol += "S16ICB";
                    else if (seg_base >= 0x86 && seg_base < 0x88) symbol += "S16DATB";
                    else if (seg_base >= 0x90 && seg_base < 0x92) symbol += "S18ICA";
                    else if (seg_base >= 0x92 && seg_base < 0x94) symbol += "S18DATA";
                    else if (seg_base >= 0x94 && seg_base < 0x96) symbol += "S18ICB";
                    else if (seg_base >= 0x96 && seg_base < 0x98) symbol += "S18DATB";
                    else if (seg_base >= 0xA0 && seg_base < 0xA2) symbol += "S20ICA";
                    else if (seg_base >= 0xA2 && seg_base < 0xA4) symbol += "S20DATA";
                    else if (seg_base >= 0xA4 && seg_base < 0xA6) symbol += "S20ICB";
                    else if (seg_base >= 0xA6 && seg_base < 0xA8) symbol += "S20DATB";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF800 && caddr < 0xFFF840)
                {
                    long seg_base = caddr - 0xFFF800;
                    symbol += "TPU3_B.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "TPUMCR_B";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "TCR_B";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "DSCR_B";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "DSSR_B";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "TICR_B";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "CIER_B";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "CFSR0_B";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "CFSR1_B";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "CFSR2_B";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "CFSR3_B";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "HSQR0_B";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "HSQR1_B";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "HSRR0_B";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "HSRR1_B";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "CPR0_B";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "CPR1_B";
                    else if (seg_base >= 0x20 && seg_base < 0x22) symbol += "CISR_B";
                    else if (seg_base >= 0x22 && seg_base < 0x24) symbol += "LR_B";
                    else if (seg_base >= 0x24 && seg_base < 0x26) symbol += "SGLR_B";
                    else if (seg_base >= 0x26 && seg_base < 0x28) symbol += "DCNR_B";
                    else if (seg_base >= 0x28 && seg_base < 0x2A) symbol += "TPUMCR2_B";
                    else if (seg_base >= 0x2A && seg_base < 0x2C) symbol += "TPUMCR3_B";
                    else if (seg_base >= 0x2C && seg_base < 0x2E) symbol += "ISDR_B";
                    else if (seg_base >= 0x2E && seg_base < 0x30) symbol += "ISCR_B";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFF840 && caddr < 0xFFF848) symbol = "SRAM_A+0x" + (caddr - 0xFFF840).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF848 && caddr < 0xFFF850) symbol = "SRAM_B+0x" + (caddr - 0xFFF848).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF850 && caddr < 0xFFF858) symbol = "SRAM_C+0x" + (caddr - 0xFFF850).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF858 && caddr < 0xFFF900) symbol = "SRAM_D+0x" + (caddr - 0xFFF858).ToString("X3"); // unused in T8
                else if (caddr >= 0xFFF900 && caddr < 0xFFFA00)
                {
                    long seg_base = caddr - 0xFFF900;
                    symbol = "TPU3_B.";
                    if (seg_base >= 0x0 && seg_base < 0x10F) symbol += "Ch 0 param registers";
                    else if (seg_base >= 0x10 && seg_base < 0x1F) symbol += "Ch 1 param registers";
                    else if (seg_base >= 0x20 && seg_base < 0x2F) symbol += "Ch 2 param registers";
                    else if (seg_base >= 0x30 && seg_base < 0x3F) symbol += "Ch 3 param registers";
                    else if (seg_base >= 0x40 && seg_base < 0x4F) symbol += "Ch 4 param registers";
                    else if (seg_base >= 0x50 && seg_base < 0x5F) symbol += "Ch 5 param registers";
                    else if (seg_base >= 0x60 && seg_base < 0x6F) symbol += "Ch 6 param registers";
                    else if (seg_base >= 0x70 && seg_base < 0x7F) symbol += "Ch 7 param registers";
                    else if (seg_base >= 0x80 && seg_base < 0x8F) symbol += "Ch 8 param registers";
                    else if (seg_base >= 0x90 && seg_base < 0x9F) symbol += "Ch 9 param registers";
                    else if (seg_base >= 0xA0 && seg_base < 0xAF) symbol += "Ch 10 param registers";
                    else if (seg_base >= 0xB0 && seg_base < 0xBF) symbol += "Ch 11 param registers";
                    else if (seg_base >= 0xC0 && seg_base < 0xCF) symbol += "Ch 12 param registers";
                    else if (seg_base >= 0xD0 && seg_base < 0xDF) symbol += "Ch 13 param registers";
                    else if (seg_base >= 0xE0 && seg_base < 0xEF) symbol += "Ch 14 param registers";
                    else if (seg_base >= 0xF0 && seg_base < 0xFF) symbol += "Ch 15 param registers";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFFA00 && caddr < 0xFFFA80)
                {
                    long seg_base = caddr - 0xFFFA00;
                    symbol = "BIM.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "MCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "MTR";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "BIMTR/MDR";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "RESERVED";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "SYNCR";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "SYNST/RSR";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "RESERVED";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "PCON";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "PORTA/PORTB";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "PORTAP/PORTBP";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "DDRAB";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "RESERVED";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "PORTC/PORTD";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "PORTCP/PORTDP";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "DDRC/DDRD";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "PCPAR/PDPAR";
                    else if (seg_base >= 0x20 && seg_base < 0x22) symbol += "PORTK/PORTE";
                    else if (seg_base >= 0x22 && seg_base < 0x24) symbol += "PORTKP/PORTEP";
                    else if (seg_base >= 0x24 && seg_base < 0x26) symbol += "DDRK/DDRE";
                    else if (seg_base >= 0x26 && seg_base < 0x28) symbol += "PKPAR/PEPAR";
                    else if (seg_base >= 0x28 && seg_base < 0x2A) symbol += "PORTG/PORTH";
                    else if (seg_base >= 0x2A && seg_base < 0x2C) symbol += "PORTGP/PORTHP";
                    else if (seg_base >= 0x2C && seg_base < 0x2E) symbol += "DDRG/DDRH";
                    else if (seg_base >= 0x2E && seg_base < 0x30) symbol += "RESERVED";

                    else if (seg_base >= 0x30 && seg_base < 0x32) symbol += "PORTF";
                    else if (seg_base >= 0x32 && seg_base < 0x34) symbol += "PORTFP";
                    else if (seg_base >= 0x34 && seg_base < 0x36) symbol += "DDRF";
                    else if (seg_base >= 0x36 && seg_base < 0x38) symbol += "PFPAR";
                    else if (seg_base >= 0x38 && seg_base < 0x3A) symbol += "PORTFE";
                    else if (seg_base >= 0x3A && seg_base < 0x3C) symbol += "PFIACK/PFEER";
                    else if (seg_base >= 0x3C && seg_base < 0x3E) symbol += "PFLVR";
                    else if (seg_base >= 0x3E && seg_base < 0x40) symbol += "RESERVED";

                    else if (seg_base >= 0x40 && seg_base < 0x42) symbol += "MSRA";
                    else if (seg_base >= 0x42 && seg_base < 0x44) symbol += "MSRB";
                    else if (seg_base >= 0x44 && seg_base < 0x46) symbol += "SCRA";
                    else if (seg_base >= 0x46 && seg_base < 0x48) symbol += "REPS";
                    else if (seg_base >= 0x48 && seg_base < 0x4A) symbol += "CREG";
                    else if (seg_base >= 0x4A && seg_base < 0x4C) symbol += "DREG";
                    else if (seg_base >= 0x4C && seg_base < 0x4E) symbol += "BCSOR2";
                    else if (seg_base >= 0x4E && seg_base < 0x50) symbol += "RESERVED";

                    else if (seg_base >= 0x50 && seg_base < 0x52) symbol += "SYPCR";
                    else if (seg_base == 0x52) symbol += "TIC";
                    else if (seg_base == 0x53) symbol += "TIV";
                    else if (seg_base == 0x54) symbol += "RESERVED";
                    else if (seg_base == 0x55) symbol += "SWS";
                    else if (seg_base == 0x56) symbol += "PRE";
                    else if (seg_base == 0x58) symbol += "SWI";
                    else if (seg_base == 0x5A) symbol += "RTI";
                    else if (seg_base == 0x5C) symbol += "SWIT";
                    else if (seg_base == 0x5E) symbol += "RTDC";
                    else if (seg_base == 0x5F) symbol += "RTIT";

                    else if (seg_base >= 0x60 && seg_base < 0x62) symbol += "CSBAR1";
                    else if (seg_base >= 0x62 && seg_base < 0x64) symbol += "CSOR1";
                    else if (seg_base >= 0x64 && seg_base < 0x66) symbol += "CSBAR2";
                    else if (seg_base >= 0x66 && seg_base < 0x68) symbol += "CSOR2";
                    else if (seg_base >= 0x68 && seg_base < 0x6A) symbol += "CSBAR3";
                    else if (seg_base >= 0x6A && seg_base < 0x6C) symbol += "CSOR3";
                    else if (seg_base >= 0x6C && seg_base < 0x6E) symbol += "CSBAR4";
                    else if (seg_base >= 0x6E && seg_base < 0x70) symbol += "CSOR4";

                    else if (seg_base >= 0x70 && seg_base < 0x72) symbol += "CSBAR5";
                    else if (seg_base >= 0x72 && seg_base < 0x74) symbol += "CSOR5";
                    else if (seg_base >= 0x74 && seg_base < 0x76) symbol += "CSBAR6";
                    else if (seg_base >= 0x76 && seg_base < 0x78) symbol += "CSOR6";
                    else if (seg_base >= 0x78 && seg_base < 0x7A) symbol += "CSBAR7";
                    else if (seg_base >= 0x7A && seg_base < 0x7C) symbol += "CSOR7";
                    else if (seg_base >= 0x7C && seg_base < 0x7E) symbol += "BCSBAR";
                    else if (seg_base >= 0x7E && seg_base < 0x80) symbol += "BCSOR1";

                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFFA80 && caddr < 0xFFFB00)
                {
                    long seg_base = caddr - 0xFFFA80;
                    symbol = "TouCAN.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "TCNMCR";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "TTR";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "CANICR";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "CANCTRL0/CANCTRL1";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "PRESDIV/CANCTRL2";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "TIMER";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "RXGMASKHI";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "RXGMASKLO";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "RX14MASKHI";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "RX14MASKLO";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "RX15MASKHI";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "RX15MASKLO";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "ESTAT";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "IMASK";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "IFLAG";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "RXECTR/TXECTR";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFFB00 && caddr < 0xFFFC00)
                {
                    long seg_base = caddr - 0xFFFB00;
                    symbol = "SRAM_E.";
                    if (0x0 == seg_base) symbol += "RAMMCR";
                    else if (0x2 == seg_base) symbol += "RAMTST";
                    else if (0x4 == seg_base) symbol += "RAMBAH";
                    else if (0x6 == seg_base) symbol += "RAMBAL";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFFC00 && caddr < 0xFFFE00)
                {
                    long seg_base = caddr - 0xFFFC00;
                    symbol = "QSM_A.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "QSMCR_A";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "QTEST_A";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "QILR/QIVR_A";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "SCCR0_A";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "SCCR1_A";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "SCSR_A";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "SCDR_A";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "PORTQS_A";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "PQSPAR_A/DDRQST_A";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "SPCR0_A";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "SPCR1_A";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "SPCR2_A";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "SPCR3_A/SPSR_A";
                    else if (seg_base >= 0x100 && seg_base < 0x11F) symbol += "SCRQ_A";
                    else if (seg_base >= 0x120 && seg_base < 0x13F) symbol += "SCTQ_A";
                    else if (seg_base >= 0x140 && seg_base < 0x14F) symbol += "QSPIRAM_A";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
                else if (caddr >= 0xFFFE00 && caddr < 0xFFFFFF)
                {
                    long seg_base = caddr - 0xFFFE00;
                    symbol = "TPU3_A.";
                    if (seg_base >= 0x0 && seg_base < 0x2) symbol += "TPUMCR_A";
                    else if (seg_base >= 0x2 && seg_base < 0x4) symbol += "TCR_A";
                    else if (seg_base >= 0x4 && seg_base < 0x6) symbol += "DSCR_A";
                    else if (seg_base >= 0x6 && seg_base < 0x8) symbol += "DSSR_A";
                    else if (seg_base >= 0x8 && seg_base < 0xA) symbol += "TICR_A";
                    else if (seg_base >= 0xA && seg_base < 0xC) symbol += "CIER_A";
                    else if (seg_base >= 0xC && seg_base < 0xE) symbol += "CFSR0_A";
                    else if (seg_base >= 0xE && seg_base < 0x10) symbol += "CFSR1_A";
                    else if (seg_base >= 0x10 && seg_base < 0x12) symbol += "CFSR2_A";
                    else if (seg_base >= 0x12 && seg_base < 0x14) symbol += "CFSR3_A";
                    else if (seg_base >= 0x14 && seg_base < 0x16) symbol += "HSQR0_A";
                    else if (seg_base >= 0x16 && seg_base < 0x18) symbol += "HSQR1_A";
                    else if (seg_base >= 0x18 && seg_base < 0x1A) symbol += "HSRR0_A";
                    else if (seg_base >= 0x1A && seg_base < 0x1C) symbol += "HSRR1_A";
                    else if (seg_base >= 0x1C && seg_base < 0x1E) symbol += "CPR0_A";
                    else if (seg_base >= 0x1E && seg_base < 0x20) symbol += "CPR1_A";
                    else if (seg_base >= 0x20 && seg_base < 0x22) symbol += "CISR_A";
                    else if (seg_base >= 0x22 && seg_base < 0x24) symbol += "LR_A";
                    else if (seg_base >= 0x24 && seg_base < 0x26) symbol += "SGLR_A";
                    else if (seg_base >= 0x26 && seg_base < 0x28) symbol += "DCNR_A";
                    else if (seg_base >= 0x28 && seg_base < 0x2A) symbol += "TPUMCR2_A";
                    else if (seg_base >= 0x2A && seg_base < 0x2C) symbol += "TPUMCR3_A";
                    else if (seg_base >= 0x2C && seg_base < 0x2E) symbol += "ISDR_A";
                    else if (seg_base >= 0x2E && seg_base < 0x30) symbol += "ISCR_A";
                    else if (seg_base >= 0x100 && seg_base < 0x10F) symbol += "Ch 0 param registers";
                    else if (seg_base >= 0x110 && seg_base < 0x11F) symbol += "Ch 1 param registers";
                    else if (seg_base >= 0x120 && seg_base < 0x12F) symbol += "Ch 2 param registers";
                    else if (seg_base >= 0x130 && seg_base < 0x13F) symbol += "Ch 3 param registers";
                    else if (seg_base >= 0x140 && seg_base < 0x14F) symbol += "Ch 4 param registers";
                    else if (seg_base >= 0x150 && seg_base < 0x15F) symbol += "Ch 5 param registers";
                    else if (seg_base >= 0x160 && seg_base < 0x16F) symbol += "Ch 6 param registers";
                    else if (seg_base >= 0x170 && seg_base < 0x17F) symbol += "Ch 7 param registers";
                    else if (seg_base >= 0x180 && seg_base < 0x18F) symbol += "Ch 8 param registers";
                    else if (seg_base >= 0x190 && seg_base < 0x19F) symbol += "Ch 9 param registers";
                    else if (seg_base >= 0x1A0 && seg_base < 0x1AF) symbol += "Ch 10 param registers";
                    else if (seg_base >= 0x1B0 && seg_base < 0x1BF) symbol += "Ch 11 param registers";
                    else if (seg_base >= 0x1C0 && seg_base < 0x1CF) symbol += "Ch 12 param registers";
                    else if (seg_base >= 0x1D0 && seg_base < 0x1DF) symbol += "Ch 13 param registers";
                    else if (seg_base >= 0x1E0 && seg_base < 0x1EF) symbol += "Ch 14 param registers";
                    else if (seg_base >= 0x1F0 && seg_base < 0x1FF) symbol += "Ch 15 param registers";
                    else symbol += "+0x" + seg_base.ToString("X3");
                }
            }
            if (symbol != string.Empty) retval = 1;
            return retval;
        }