⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 options.cpp

📁 专门为65XX系列芯片设计的变异调试环境的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  m_nCaseSensitive = -1;
  m_nAsmInstrWithDot = -1;
  m_bGenerateListing = FALSE;
  m_strListingFile = _T("");
  m_bGenerateBRKExtraByte = FALSE;
  m_uBrkExtraByte = 0;
  //}}AFX_DATA_INIT
}

COptionsAsmPage::~COptionsAsmPage()
{
}

void COptionsAsmPage::DoDataExchange(CDataExchange* pDX)
{ 
  CPropertyPage::DoDataExchange(pDX);
  //{{AFX_DATA_MAP(COptionsAsmPage)
  DDX_Radio(pDX, IDC_OPT_ASM_CASE_Y, m_nCaseSensitive);
  DDX_Radio(pDX, IDC_OPT_ASM_INSTR_DOT, m_nAsmInstrWithDot);
  DDX_Check(pDX, IDC_OPT_ASM_GENERATE_LIST, m_bGenerateListing);
  DDX_Text(pDX, IDC_OPT_ASM_FILE_LISTING, m_strListingFile);
  DDX_Check(pDX, IDC_OPT_ASM_GENERATE_BYTE, m_bGenerateBRKExtraByte);
  //}}AFX_DATA_MAP
//  DDX_Text(pDX, IDC_OPT_ASM_EXTRA_BYTE, m_uBrkExtraByte);
  DDX_HexDec(pDX, IDC_OPT_ASM_EXTRA_BYTE, m_uBrkExtraByte, false);
  DDV_MinMaxUInt(pDX,m_uBrkExtraByte,0,0xFF);
}


BEGIN_MESSAGE_MAP(COptionsAsmPage, CPropertyPage)
  //{{AFX_MSG_MAP(COptionsAsmPage)
  ON_WM_HELPINFO()
  ON_WM_CONTEXTMENU()
  ON_BN_CLICKED(IDC_OPT_ASM_CHOOSE_FILE, OnOptAsmChooseFile)
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COptionsAsmPage message handlers


/////////////////////////////////////////////////////////////////////////////
// COptionsDeasmPage property page

IMPLEMENT_DYNCREATE(COptionsDeasmPage, CPropertyPage)

COptionsDeasmPage::COptionsDeasmPage() : CPropertyPage(COptionsDeasmPage::IDD)
{
  //{{AFX_DATA_INIT(COptionsDeasmPage)
  m_ShowCode = FALSE;
  //}}AFX_DATA_INIT
  m_bSubclassed = FALSE;
  m_bColorChanged = FALSE;
}

COptionsDeasmPage::~COptionsDeasmPage()
{
}

void COptionsDeasmPage::DoDataExchange(CDataExchange* pDX)
{
  CPropertyPage::DoDataExchange(pDX);
  //{{AFX_DATA_MAP(COptionsDeasmPage)
  DDX_Check(pDX, IDC_OPT_DA_CODE, m_ShowCode);
  //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COptionsDeasmPage, CPropertyPage)
  //{{AFX_MSG_MAP(COptionsDeasmPage)
  ON_BN_CLICKED(IDC_OPT_DA_ADDR_COL, OnAddrColButton)
  ON_BN_CLICKED(IDC_OPT_DA_CODE_COL, OnCodeColButton)
  ON_WM_HELPINFO()
  ON_WM_CONTEXTMENU()
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COptionsDeasmPage message handlers

void COptionsDeasmPage::OnAddrColButton()
{
  CColorDialog dlg(m_rgbAddress,CC_FULLOPEN);
  if (dlg.DoModal() == IDOK && m_rgbAddress != dlg.GetColor())
  {
    m_rgbAddress = dlg.GetColor();
    m_bColorChanged = TRUE;
    m_ColorButtonAddress.InvalidateRect(NULL);
  }
}


void COptionsDeasmPage::OnCodeColButton()
{
  CColorDialog dlg(m_rgbCode,CC_FULLOPEN);
  if (dlg.DoModal() == IDOK && m_rgbCode != dlg.GetColor())
  {
    m_rgbCode = dlg.GetColor();
    m_bColorChanged = TRUE;
    m_ColorButtonCode.InvalidateRect(NULL);
  }
}


BOOL COptionsDeasmPage::OnSetActive()
{
  if (!m_bSubclassed)
  {
    m_ColorButtonAddress.SubclassDlgItem(IDC_OPT_DA_ADDR_COL,this);
    m_ColorButtonAddress.SetColorRef(&m_rgbAddress);
    m_ColorButtonCode.SubclassDlgItem(IDC_OPT_DA_CODE_COL,this);
    m_ColorButtonCode.SetColorRef(&m_rgbCode);
//    m_ColorButtonInstr.SubclassDlgItem(IDC_OPT_DA_INSTR_COL,this);
//    m_ColorButtonInstr.SetColorRef(&m_rgbInstr);
    m_bSubclassed = TRUE;
  }
  return CPropertyPage::OnSetActive();
}

/////////////////////////////////////////////////////////////////////////////
// COptionsMarksPage property page

IMPLEMENT_DYNCREATE(COptionsMarksPage, CPropertyPage)

COptionsMarksPage::COptionsMarksPage() : CPropertyPage(COptionsMarksPage::IDD)
{
  //{{AFX_DATA_INIT(COptionsMarksPage)
  m_nProc6502 = -1;
  m_uBusWidth = 16;
	//}}AFX_DATA_INIT
  m_bSubclassed = FALSE;
  m_bColorChanged = FALSE;
  m_bFontChanged = FALSE;
}

COptionsMarksPage::~COptionsMarksPage()
{
}

void COptionsMarksPage::DoDataExchange(CDataExchange* pDX)
{
  if (!pDX->m_bSaveAndValidate)
  {
    CSpinButtonCtrl *pTab;
    pTab = (CSpinButtonCtrl *) GetDlgItem(IDC_OPT_BUS_SPIN);
    ASSERT(pTab != NULL);
    pTab->SetRange(10,16);		// wielko滄 szyny adresowej
  }

  CPropertyPage::DoDataExchange(pDX);
  //{{AFX_DATA_MAP(COptionsMarksPage)
  DDX_Radio(pDX, IDC_OPT_6502, m_nProc6502);
  DDX_Text(pDX, IDC_OPT_BUS_WIDTH, m_uBusWidth);
  DDV_MinMaxUInt(pDX, m_uBusWidth, 10, 16);
  //}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COptionsMarksPage, CPropertyPage)
  //{{AFX_MSG_MAP(COptionsMarksPage)
  ON_BN_CLICKED(IDC_OPT_MARK_BRKP_COL, OnBrkpColButton)
  ON_BN_CLICKED(IDC_OPT_MARK_ERR_COL, OnErrColButton)
  ON_BN_CLICKED(IDC_OPT_MARK_PTR_COL, OnPtrColButton)
  ON_WM_HELPINFO()
  ON_WM_CONTEXTMENU()
  ON_BN_CLICKED(IDC_OPT_FONT_BTN, OnOptFontBtn)
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COptionsMarksPage message handlers

void COptionsMarksPage::OnBrkpColButton()
{
  CColorDialog dlg(m_rgbBreakpoint,CC_FULLOPEN);
  if (dlg.DoModal() == IDOK && m_rgbBreakpoint != dlg.GetColor())
  {
    m_rgbBreakpoint = dlg.GetColor();
    m_bColorChanged = TRUE;
    m_ColorButtonBreakpoint.InvalidateRect(NULL);
  }
}

void COptionsMarksPage::OnErrColButton()
{
  CColorDialog dlg(m_rgbError,CC_FULLOPEN);
  if (dlg.DoModal() == IDOK && m_rgbError != dlg.GetColor())
  {
    m_rgbError = dlg.GetColor();
    m_bColorChanged = TRUE;
    m_ColorButtonBreakpoint.InvalidateRect(NULL);
  }
}

void COptionsMarksPage::OnPtrColButton()
{
  CColorDialog dlg(m_rgbPointer,CC_FULLOPEN);
  if (dlg.DoModal() == IDOK && m_rgbPointer != dlg.GetColor())
  {
    m_rgbPointer = dlg.GetColor();
    m_bColorChanged = TRUE;
    m_ColorButtonBreakpoint.InvalidateRect(NULL);
  }
}

BOOL COptionsMarksPage::OnSetActive()
{
  if (!m_bSubclassed)
  {
    m_ColorButtonPointer.SubclassDlgItem(IDC_OPT_MARK_PTR_COL,this);
    m_ColorButtonPointer.SetColorRef(&m_rgbPointer);
    m_ColorButtonBreakpoint.SubclassDlgItem(IDC_OPT_MARK_BRKP_COL,this);
    m_ColorButtonBreakpoint.SetColorRef(&m_rgbBreakpoint);
    m_ColorButtonError.SubclassDlgItem(IDC_OPT_MARK_ERR_COL,this);
    m_ColorButtonError.SetColorRef(&m_rgbError);
    m_bSubclassed = TRUE;
  }
  return CPropertyPage::OnSetActive();
}

void COptionsMarksPage::OnOptFontBtn()
{
  CFontDialog fnt(&m_LogFont,CF_SCREENFONTS | CF_FIXEDPITCHONLY |
    CF_INITTOLOGFONTSTRUCT | CF_FORCEFONTEXIST | CF_SCRIPTSONLY);

  if (fnt.DoModal() == IDOK)
  {
    m_bFontChanged = TRUE;
    m_LogFont = fnt.m_lf;
    SetDlgItemText(IDC_OPT_FONT_NAME,m_LogFont.lfFaceName);
  }
}


DWORD COptions::m_arrIds[]=
{
  IDC_OPT_SYM_FIN_BRK,	      0xA0000 + IDC_OPT_SYM_FIN_BRK,
  IDC_OPT_SYM_FIN_FF,	      0xA0000 + IDC_OPT_SYM_FIN_FF,
  IDC_OPT_SYM_FIN_RTS,	      0xA0000 + IDC_OPT_SYM_FIN_RTS,
  IDC_OPT_SYM_IO_ADDR,	      0xA0000 + IDC_OPT_SYM_IO_ADDR,
  IDC_OPT_SYM_IO_ENABLE,      0xA0000 + IDC_OPT_SYM_IO_ENABLE,
  IDC_OPT_SYM_IO_WND_W,       0xA0000 + IDC_OPT_SYM_IO_WND_W,
  IDC_OPT_SYM_IO_WND_H,	      0xA0000 + IDC_OPT_SYM_IO_WND_H,
  IDC_OPT_SYM_WND_TXT_COL,    0xA0000 + IDC_OPT_SYM_WND_TXT_COL,
  IDC_OPT_SYM_WND_BGND_COL,   0xA0000 + IDC_OPT_SYM_WND_BGND_COL,
  IDC_OPT_SYM_FONT_BTN,	      0xA0000 + IDC_OPT_SYM_FONT_BTN,
  IDC_OPT_SYM_FONT_NAME,      0xA0000 + IDC_OPT_SYM_FONT_NAME,

  IDC_OPT_ASM_CASE_N,	      0xA0000 + IDC_OPT_ASM_CASE_N,
  IDC_OPT_ASM_CASE_Y,	      0xA0000 + IDC_OPT_ASM_CASE_Y,
  IDC_OPT_ASM_INSTR_DOT,      0xA0000 + IDC_OPT_ASM_INSTR_DOT,
  IDC_OPT_ASM_GENERATE_LIST,  0xA0000 + IDC_OPT_ASM_GENERATE_LIST,
  IDC_OPT_ASM_FILE_LISTING,   0xA0000 + IDC_OPT_ASM_FILE_LISTING,
  IDC_OPT_ASM_GENERATE_BYTE,  0xA0000 + IDC_OPT_ASM_GENERATE_BYTE,
  IDC_OPT_ASM_EXTRA_BYTE,     0xA0000 + IDC_OPT_ASM_EXTRA_BYTE,
  IDC_OPT_ASM_CHOOSE_FILE,    0xA0000 + IDC_OPT_ASM_CHOOSE_FILE,

  IDC_OPT_DA_ADDR_COL,	      0xA0000 + IDC_OPT_DA_ADDR_COL,
  IDC_OPT_DA_CODE,	      0xA0000 + IDC_OPT_DA_CODE,
  IDC_OPT_DA_CODE_COL,	      0xA0000 + IDC_OPT_DA_CODE_COL,
  IDC_OPT_DA_INSTR_COL,	      0xA0000 + IDC_OPT_DA_INSTR_COL,

  IDC_OPT_ED_AUTO_INDENT,     0xA0000 + IDC_OPT_ED_AUTO_INDENT,
  IDC_OPT_ED_AUTO_SYNTAX,     0xA0000 + IDC_OPT_ED_AUTO_SYNTAX,
  IDC_OPT_ED_AUTO_UPPER_CASE, 0xA0000 + IDC_OPT_ED_AUTO_UPPER_CASE,
  IDC_OPT_ED_FONT_BTN,	      0xA0000 + IDC_OPT_ED_FONT_BTN,
  IDC_OPT_ED_FONT_NAME,	      0xA0000 + IDC_OPT_ED_FONT_NAME,
  IDC_OPT_ED_NEW_FILE,	      0xA0000 + IDC_OPT_ED_NEW_FILE,
  IDC_OPT_ED_TAB_SPIN,	      0xA0000 + IDC_OPT_ED_TAB_STEP,
  IDC_OPT_ED_TAB_STEP,	      0xA0000 + IDC_OPT_ED_TAB_STEP,

  IDC_OPT_MARK_BRKP_COL,      0xA0000 + IDC_OPT_MARK_BRKP_COL,
  IDC_OPT_MARK_ERR_COL,	      0xA0000 + IDC_OPT_MARK_ERR_COL,
  IDC_OPT_MARK_PTR_COL,	      0xA0000 + IDC_OPT_MARK_PTR_COL,
  IDC_OPT_6502,		      0xA0000 + IDC_OPT_6502,
  IDC_OPT_65C02,	      0xA0000 + IDC_OPT_65C02,
  IDC_OPT_BUS_SPIN,	      0xA0000 + IDC_OPT_BUS_WIDTH,
  IDC_OPT_BUS_WIDTH,	      0xA0000 + IDC_OPT_BUS_WIDTH,
  0,0
};


BOOL COptionsSymPage::OnHelpInfo(HELPINFO *pHelpInfo)
{
  ::WinHelp(HWND(pHelpInfo->hItemHandle), AfxGetApp()->m_pszHelpFilePath,
    HELP_WM_HELP, (DWORD)(void*)COptions::m_arrIds);

  return TRUE;

//    case WM_CONTEXTMENU: 
//        WinHelp((HWND) wParam, "helpfile.hlp", HELP_CONTEXTMENU, 
//            (DWORD) (LPVOID) aIds); 

//  return CPropertyPage::OnHelpInfo(pHelpInfo);
}


BOOL COptionsDeasmPage::OnHelpInfo(HELPINFO* pHelpInfo)
{
  ::WinHelp(HWND(pHelpInfo->hItemHandle), AfxGetApp()->m_pszHelpFilePath,
    HELP_WM_HELP, (DWORD)(void*)COptions::m_arrIds);

  return TRUE;
}


BOOL COptionsEditPage::OnHelpInfo(HELPINFO* pHelpInfo)
{
  ::WinHelp(HWND(pHelpInfo->hItemHandle), AfxGetApp()->m_pszHelpFilePath,
    HELP_WM_HELP, (DWORD)(void*)COptions::m_arrIds);

  return TRUE;
}


BOOL COptionsMarksPage::OnHelpInfo(HELPINFO* pHelpInfo)
{
  ::WinHelp(HWND(pHelpInfo->hItemHandle), AfxGetApp()->m_pszHelpFilePath,
    HELP_WM_HELP, (DWORD)(void*)COptions::m_arrIds);

  return TRUE;
}


BOOL COptionsAsmPage::OnHelpInfo(HELPINFO* pHelpInfo)
{
  ::WinHelp(HWND(pHelpInfo->hItemHandle), AfxGetApp()->m_pszHelpFilePath,
    HELP_WM_HELP, (DWORD)(void*)COptions::m_arrIds);

  return TRUE;
}


BOOL COptions::OnHelpInfo(HELPINFO* pHelpInfo)
{	
  return TRUE;
//  return CPropertySheet::OnHelpInfo(pHelpInfo);
}



void COptionsSymPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptions::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptionsAsmPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptionsDeasmPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptionsEditPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptionsMarksPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
  ::WinHelp(pWnd->GetSafeHwnd(), AfxGetApp()->m_pszHelpFilePath,
    HELP_CONTEXTMENU, (DWORD)(void*)COptions::m_arrIds);
}


void COptionsAsmPage::OnOptAsmChooseFile()
{
  CString filter;
  filter.LoadString(IDS_ASM_OPT_LIST_FILES);
  CFileDialog dlg(TRUE,_T("lst"),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,filter);
  if (dlg.DoModal() != IDOK)
    return;
  SetDlgItemText(IDC_OPT_ASM_FILE_LISTING,dlg.GetPathName());
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -