--- np2/win9x/debuguty/viewasm.cpp 2004/02/18 02:03:37 1.4 +++ np2/win9x/debuguty/viewasm.cpp 2005/03/19 20:46:07 1.8 @@ -10,7 +10,7 @@ #include "cpucore.h" -static void set_viewseg(HWND hwnd, NP2VIEW_T *view, WORD seg) { +static void set_viewseg(HWND hwnd, NP2VIEW_T *view, UINT16 seg) { if (view->seg != seg) { view->seg = seg; @@ -23,18 +23,22 @@ static void viewasm_paint(NP2VIEW_T *vie LONG y; DWORD seg4; - WORD off; + UINT16 off; DWORD pos; - BYTE *p; - BYTE buf[16]; - char str[16]; + UINT8 *p; + UINT8 buf[16]; + OEMCHAR str[16]; HFONT hfont; + BOOL opsize; _UNASM una; int step; +#if defined(UNICODE) + TCHAR cnv[64]; +#endif hfont = CreateFont(16, 0, 0, 0, 0, 0, 0, 0, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, - DEFAULT_QUALITY, FIXED_PITCH, "£Í£Ó¥´¥·¥Ã¥¯"); + DEFAULT_QUALITY, FIXED_PITCH, np2viewfont); SetTextColor(hdc, 0xffffff); SetBkColor(hdc, 0x400000); hfont = (HFONT)SelectObject(hdc, hfont); @@ -67,8 +71,8 @@ static void viewasm_paint(NP2VIEW_T *vie } else { int i; - WORD *r; - r = (WORD *)view->buf2.ptr; + UINT16 *r; + r = (UINT16 *)view->buf2.ptr; view->buf2.type = ALLOCTYPE_ASM; view->buf2.arg = seg4 + view->off; off = view->off; @@ -90,7 +94,7 @@ static void viewasm_paint(NP2VIEW_T *vie viewmem_read(&(view->dmem), seg4 + off, buf, 16); } step = unasm(NULL, p, 16, FALSE, off); - off += (WORD)step; + off += (UINT16)step; } *r = off; } @@ -98,14 +102,14 @@ static void viewasm_paint(NP2VIEW_T *vie } if ((pos) && (pos < 256)) { - off = *(((WORD *)view->buf2.ptr) + pos); + off = *(((UINT16 *)view->buf2.ptr) + pos); } else { off = view->off; } for (y=0; ybottom; y+=16) { - wsprintf(str, "%04x:%04x", view->seg, off); + OEMSPRINTF(str, OEMTEXT("%04x:%04x"), view->seg, off); TextOut(hdc, 0, y, str, 9); off &= 0xffff; if (view->lock) { @@ -126,11 +130,22 @@ static void viewasm_paint(NP2VIEW_T *vie if (!step) { break; } - TextOut(hdc, 11 * 8, y, una.mnemonic, strlen(una.mnemonic)); +#if defined(UNICODE) + TextOut(hdc, 11 * 8, y, cnv, MultiByteToWideChar(CP_ACP, + MB_PRECOMPOSED, una.mnemonic, -1, cnv, NELEMENTS(cnv))); +#else + TextOut(hdc, 11 * 8, y, una.mnemonic, OEMSTRLEN(una.mnemonic)); +#endif if (una.operand[0]) { - TextOut(hdc, (11 + 7) * 8, y, una.operand, strlen(una.operand)); +#if defined(UNICODE) + TextOut(hdc, (11 + 7) * 8, y, cnv, MultiByteToWideChar(CP_ACP, + MB_PRECOMPOSED, una.operand, -1, cnv, NELEMENTS(cnv))); +#else + TextOut(hdc, (11 + 7) * 8, y, + una.operand, OEMSTRLEN(una.operand)); +#endif } - off += (WORD)step; + off += (UINT16)step; } DeleteObject(SelectObject(hdc, hfont)); @@ -187,17 +202,17 @@ void viewasm_init(NP2VIEW_T *dst, NP2VIE switch(src->type) { case VIEWMODE_SEG: dst->seg = dst->seg; - dst->off = (WORD)(dst->pos << 4); + dst->off = (UINT16)(dst->pos << 4); break; case VIEWMODE_1MB: if (dst->pos < 0x10000) { - dst->seg = (WORD)dst->pos; + dst->seg = (UINT16)dst->pos; dst->off = 0; } else { dst->seg = 0xffff; - dst->off = (WORD)((dst->pos - 0xffff) << 4); + dst->off = (UINT16)((dst->pos - 0xffff) << 4); } break; @@ -220,3 +235,4 @@ void viewasm_init(NP2VIEW_T *dst, NP2VIE dst->mul = 1; dst->pos = 0; } +