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;
}