Diff for /np2/win9x/debuguty/viewasm.cpp between versions 1.3 and 1.10

version 1.3, 2003/12/08 00:55:34 version 1.10, 2007/01/08 08:52:22
Line 10 Line 10
 #include        "cpucore.h"  #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) {          if (view->seg != seg) {
                 view->seg = seg;                  view->seg = seg;
Line 18  static void set_viewseg(HWND hwnd, NP2VI Line 18  static void set_viewseg(HWND hwnd, NP2VI
         }          }
 }  }
   
   
 static void viewasm_paint(NP2VIEW_T *view, RECT *rc, HDC hdc) {  static void viewasm_paint(NP2VIEW_T *view, RECT *rc, HDC hdc) {
   
         LONG            y;          LONG    y;
         DWORD           seg4;          UINT32  seg4;
         WORD            off;          UINT16  off;
         DWORD           pos;          UINT32  pos;
         BYTE            *p;          UINT8   *p;
         BYTE            buf[16];          UINT8   buf[16];
         char            str[16];          TCHAR   str[16];
         HFONT           hfont;          HFONT   hfont;
         PREFIX_T        fix;  //      BOOL    opsize;
         UNASM_T         una;          _UNASM  una;
         int                     step;          int             step;
   #if defined(UNICODE)
           TCHAR   cnv[64];
   #endif
   
         hfont = CreateFont(16, 0, 0, 0, 0, 0, 0, 0,           hfont = CreateFont(16, 0, 0, 0, 0, 0, 0, 0, 
                                         SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,                                          SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                                         DEFAULT_QUALITY, FIXED_PITCH, "£Í£Ó¥´¥·¥Ã¥¯");                                          DEFAULT_QUALITY, FIXED_PITCH, np2viewfont);
         SetTextColor(hdc, 0xffffff);          SetTextColor(hdc, 0xffffff);
         SetBkColor(hdc, 0x400000);          SetBkColor(hdc, 0x400000);
         hfont = (HFONT)SelectObject(hdc, hfont);          hfont = (HFONT)SelectObject(hdc, hfont);
Line 68  static void viewasm_paint(NP2VIEW_T *vie Line 70  static void viewasm_paint(NP2VIEW_T *vie
                         }                          }
                         else {                          else {
                                 int i;                                  int i;
                                 WORD *r;                                  UINT16 *r;
                                 r = (WORD *)view->buf2.ptr;                                  r = (UINT16 *)view->buf2.ptr;
                                 view->buf2.type = ALLOCTYPE_ASM;                                  view->buf2.type = ALLOCTYPE_ASM;
                                 view->buf2.arg = seg4 + view->off;                                  view->buf2.arg = seg4 + view->off;
                                 off = view->off;                                  off = view->off;
                                 unasm_reset(&fix);  
                                 for (i=0; i<255; i++) {                                  for (i=0; i<255; i++) {
                                         off &= 0xffff;                                          off &= 0xffff;
                                         *r++ = off;                                          *r++ = off;
Line 81  static void viewasm_paint(NP2VIEW_T *vie Line 82  static void viewasm_paint(NP2VIEW_T *vie
                                                 p = (BYTE *)view->buf1.ptr;                                                  p = (BYTE *)view->buf1.ptr;
                                                 p += off;                                                  p += off;
                                                 if (off > 0xfff0) {                                                  if (off > 0xfff0) {
                                                         DWORD pos = 0x10000 - off;                                                          UINT32 pos = 0x10000 - off;
                                                         CopyMemory(buf, p, pos);                                                          CopyMemory(buf, p, pos);
                                                         CopyMemory(buf + pos, view->buf1.ptr, 16 - pos);                                                          CopyMemory(buf + pos, view->buf1.ptr, 16 - pos);
                                                         p = buf;                                                          p = buf;
Line 91  static void viewasm_paint(NP2VIEW_T *vie Line 92  static void viewasm_paint(NP2VIEW_T *vie
                                                 p = buf;                                                  p = buf;
                                                 viewmem_read(&(view->dmem), seg4 + off, buf, 16);                                                  viewmem_read(&(view->dmem), seg4 + off, buf, 16);
                                         }                                          }
                                         step = unasm(off, p, &fix, NULL);                                          step = unasm(NULL, p, 16, FALSE, off);
                                         off += (WORD)step;                                          off += (UINT16)step;
                                 }                                  }
                                 *r = off;                                  *r = off;
                         }                          }
Line 100  static void viewasm_paint(NP2VIEW_T *vie Line 101  static void viewasm_paint(NP2VIEW_T *vie
         }          }
   
         if ((pos) && (pos < 256)) {          if ((pos) && (pos < 256)) {
                 off = *(((WORD *)view->buf2.ptr) + pos);                  off = *(((UINT16 *)view->buf2.ptr) + pos);
         }          }
         else {          else {
                 off = view->off;                  off = view->off;
         }          }
   
         unasm_reset(&fix);  
         for (y=0; y<rc->bottom; y+=16) {          for (y=0; y<rc->bottom; y+=16) {
                 wsprintf(str, "%04x:%04x", view->seg, off);                  wsprintf(str, _T("%04x:%04x"), view->seg, off);
                 TextOut(hdc, 0, y, str, 9);                  TextOut(hdc, 0, y, str, 9);
                 off &= 0xffff;                  off &= 0xffff;
                 if (view->lock) {                  if (view->lock) {
                         p = (BYTE *)view->buf1.ptr;                          p = (BYTE *)view->buf1.ptr;
                         p += off;                          p += off;
                         if (off > 0xfff0) {                          if (off > 0xfff0) {
                                 DWORD pos = 0x10000 - off;                                  UINT32 pos = 0x10000 - off;
                                 CopyMemory(buf, p, pos);                                  CopyMemory(buf, p, pos);
                                 CopyMemory(buf + pos, view->buf1.ptr, 16 - pos);                                  CopyMemory(buf + pos, view->buf1.ptr, 16 - pos);
                                 p = buf;                                  p = buf;
Line 125  static void viewasm_paint(NP2VIEW_T *vie Line 125  static void viewasm_paint(NP2VIEW_T *vie
                         p = buf;                          p = buf;
                         viewmem_read(&(view->dmem), seg4 + off, buf, 16);                          viewmem_read(&(view->dmem), seg4 + off, buf, 16);
                 }                  }
                 step = unasm(off, p, &fix, &una);                  step = unasm(&una, p, 16, FALSE, off);
                 if (!step) {                  if (!step) {
                         break;                          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, lstrlen(una.mnemonic));
   #endif
                 if (una.operand[0]) {                  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, lstrlen(una.operand));
   #endif
                 }                  }
                 off += (WORD)step;                  off += (UINT16)step;
         }          }
   
         DeleteObject(SelectObject(hdc, hfont));          DeleteObject(SelectObject(hdc, hfont));
Line 190  void viewasm_init(NP2VIEW_T *dst, NP2VIE Line 201  void viewasm_init(NP2VIEW_T *dst, NP2VIE
                 switch(src->type) {                  switch(src->type) {
                         case VIEWMODE_SEG:                          case VIEWMODE_SEG:
                                 dst->seg = dst->seg;                                  dst->seg = dst->seg;
                                 dst->off = (WORD)(dst->pos << 4);                                  dst->off = (UINT16)(dst->pos << 4);
                                 break;                                  break;
   
                         case VIEWMODE_1MB:                          case VIEWMODE_1MB:
                                 if (dst->pos < 0x10000) {                                  if (dst->pos < 0x10000) {
                                         dst->seg = (WORD)dst->pos;                                          dst->seg = (UINT16)dst->pos;
                                         dst->off = 0;                                          dst->off = 0;
                                 }                                  }
                                 else {                                  else {
                                         dst->seg = 0xffff;                                          dst->seg = 0xffff;
                                         dst->off = (WORD)((dst->pos - 0xffff) << 4);                                          dst->off = (UINT16)((dst->pos - 0xffff) << 4);
                                 }                                  }
                                 break;                                  break;
   
Line 223  void viewasm_init(NP2VIEW_T *dst, NP2VIE Line 234  void viewasm_init(NP2VIEW_T *dst, NP2VIE
         dst->mul = 1;          dst->mul = 1;
         dst->pos = 0;          dst->pos = 0;
 }  }
   

Removed from v.1.3  
changed lines
  Added in v.1.10


RetroPC.NET-CVS <cvs@retropc.net>