|  | 
| version 1.1, 2003/10/16 17:59:09 | version 1.10, 2007/11/11 07:11:27 | 
|---|---|
| Line 1 | Line 1 | 
| #include "compiler.h" | #include "compiler.h" | 
| #include "resource.h" | #include "resource.h" | 
| #include "np2.h" | #include "np2.h" | 
| #include "i286.h" | |
| #include "viewer.h" | #include "viewer.h" | 
| #include "viewcmn.h" | #include "viewcmn.h" | 
| #include "cpucore.h" | |
| static char np2viewclass[] = "NP2-ViewWindow"; | |
| NP2VIEW_T np2view[NP2VIEW_MAX]; | |
| extern HINSTANCE hInst; | |
| static const TCHAR np2viewclass[] = _T("NP2-ViewWindow"); | |
| const TCHAR np2viewfont[] = _T("£Í£Ó ¥´¥·¥Ã¥¯"); | |
| NP2VIEW_T np2view[NP2VIEW_MAX]; | |
| static void viewer_segmode(HWND hwnd, BYTE type) { | |
| static void viewer_segmode(HWND hwnd, UINT8 type) { | |
| NP2VIEW_T *view; | NP2VIEW_T *view; | 
| Line 60 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | Line 61 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | 
| case WM_COMMAND: | case WM_COMMAND: | 
| switch(LOWORD(wParam)) { | switch(LOWORD(wParam)) { | 
| case IDM_VIEWWINNEW: | case IDM_VIEWWINNEW: | 
| viewer_open(); | viewer_open(g_hInstance); | 
| break; | break; | 
| case IDM_VIEWWINCLOSE: | case IDM_VIEWWINCLOSE: | 
| Line 104 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | Line 105 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | 
| if (view) { | if (view) { | 
| RECT rc; | RECT rc; | 
| GetClientRect(hWnd, &rc); | GetClientRect(hWnd, &rc); | 
| view->step = rc.bottom / 16; | view->step = (UINT16)(rc.bottom / 16); | 
| viewcmn_setvscroll(hWnd, view); | viewcmn_setvscroll(hWnd, view); | 
| } | } | 
| break; | break; | 
| Line 112 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | Line 113 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | 
| case WM_VSCROLL: | case WM_VSCROLL: | 
| view = viewcmn_find(hWnd); | view = viewcmn_find(hWnd); | 
| if (view) { | if (view) { | 
| DWORD newpos = view->pos; | UINT32 newpos = view->pos; | 
| switch(LOWORD(wParam)) { | switch(LOWORD(wParam)) { | 
| case SB_LINEUP: | case SB_LINEUP: | 
| if (newpos) { | if (newpos) { | 
| Line 186 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | Line 187 LRESULT CALLBACK ViewProc(HWND hWnd, UIN | 
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | 
| BOOL viewer_init(HINSTANCE hPreInst) { | BOOL viewer_init(HINSTANCE hInstance) { | 
| WNDCLASS np2vc; | WNDCLASS np2vc; | 
| ZeroMemory(np2view, sizeof(np2view)); | ZeroMemory(np2view, sizeof(np2view)); | 
| if (!hPreInst) { | np2vc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW; | 
| np2vc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW; | np2vc.lpfnWndProc = ViewProc; | 
| np2vc.lpfnWndProc = ViewProc; | np2vc.cbClsExtra = 0; | 
| np2vc.cbClsExtra = 0; | np2vc.cbWndExtra = 0; | 
| np2vc.cbWndExtra = 0; | np2vc.hInstance = hInstance; | 
| np2vc.hInstance = hInst; | np2vc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2)); | 
| np2vc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON2)); | np2vc.hCursor = LoadCursor(NULL, IDC_ARROW); | 
| np2vc.hCursor = LoadCursor(NULL, IDC_ARROW); | np2vc.hbrBackground = (HBRUSH)0; | 
| np2vc.hbrBackground = (HBRUSH)0; | np2vc.lpszMenuName = MAKEINTRESOURCE(IDR_VIEW); | 
| np2vc.lpszMenuName = MAKEINTRESOURCE(IDM_VIEW); | np2vc.lpszClassName = np2viewclass; | 
| np2vc.lpszClassName = np2viewclass; | if (!RegisterClass(&np2vc)) { | 
| if (!RegisterClass(&np2vc)) { | return(FAILURE); | 
| return(FAILURE); | |
| } | |
| } | } | 
| return(SUCCESS); | return(SUCCESS); | 
| } | } | 
| Line 216 void viewer_term(void) { | Line 215 void viewer_term(void) { | 
| } | } | 
| void viewer_open(void) { | void viewer_open(HINSTANCE hInstance) { | 
| int i; | int i; | 
| NP2VIEW_T *view; | NP2VIEW_T *view; | 
| Line 224 void viewer_open(void) { | Line 223 void viewer_open(void) { | 
| view = np2view; | view = np2view; | 
| for (i=0; i<NP2VIEW_MAX; i++, view++) { | for (i=0; i<NP2VIEW_MAX; i++, view++) { | 
| if (!view->alive) { | if (!view->alive) { | 
| char buf[256]; | TCHAR buf[256]; | 
| viewcmn_caption(view, buf); | viewcmn_caption(view, buf); | 
| ZeroMemory(view, sizeof(NP2VIEW_T)); | ZeroMemory(view, sizeof(NP2VIEW_T)); | 
| view->alive = TRUE; | view->alive = TRUE; | 
| Line 233 void viewer_open(void) { | Line 232 void viewer_open(void) { | 
| WS_OVERLAPPEDWINDOW | WS_VSCROLL, | WS_OVERLAPPEDWINDOW | WS_VSCROLL, | 
| CW_USEDEFAULT, CW_USEDEFAULT, | CW_USEDEFAULT, CW_USEDEFAULT, | 
| CW_USEDEFAULT, CW_USEDEFAULT, | CW_USEDEFAULT, CW_USEDEFAULT, | 
| NULL, NULL, hInst, NULL); | NULL, NULL, hInstance, NULL); | 
| viewcmn_setmode(view, NULL, VIEWMODE_REG); | viewcmn_setmode(view, NULL, VIEWMODE_REG); | 
| ShowWindow(view->hwnd, SW_SHOWNORMAL); | ShowWindow(view->hwnd, SW_SHOWNORMAL); | 
| UpdateWindow(view->hwnd); | UpdateWindow(view->hwnd); | 
| Line 261 void viewer_allclose(void) { | Line 260 void viewer_allclose(void) { | 
| void viewer_allreload(BOOL force) { | void viewer_allreload(BOOL force) { | 
| static DWORD last = 0; | static UINT32 last = 0; | 
| DWORD now; | UINT32 now; | 
| now = GetTickCount(); | now = GetTickCount(); | 
| if ((force) || ((now - last) >= 200)) { | if ((force) || ((now - last) >= 200)) { | 
| Line 274 static DWORD last = 0; | Line 273 static DWORD last = 0; | 
| for (i=0; i<NP2VIEW_MAX; i++, view++) { | for (i=0; i<NP2VIEW_MAX; i++, view++) { | 
| if ((view->alive) && (!view->lock)) { | if ((view->alive) && (!view->lock)) { | 
| if (view->type == VIEWMODE_ASM) { | if (view->type == VIEWMODE_ASM) { | 
| view->seg = I286_CS; | view->seg = CPU_CS; | 
| view->off = I286_IP; | view->off = CPU_IP; | 
| view->pos = 0; | view->pos = 0; | 
| viewcmn_setvscroll(view->hwnd, view); | viewcmn_setvscroll(view->hwnd, view); | 
| } | } |