diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp
index b460904a5c..ebf8fdcd21 100644
--- a/stepmania/src/StepMania.dsp
+++ b/stepmania/src/StepMania.dsp
@@ -2258,30 +2258,6 @@ SOURCE=.\archutils\Win32\CrashList.h
# End Source File
# Begin Source File
-SOURCE=.\archutils\Win32\Disasm.cpp
-
-!IF "$(CFG)" == "StepMania - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
-
-!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\archutils\Win32\Disasm.h
-# End Source File
-# Begin Source File
-
SOURCE=.\archutils\Win32\Tls.cpp
!IF "$(CFG)" == "StepMania - Win32 Debug"
diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj
index 27d90bb34e..e4d8755ece 100644
--- a/stepmania/src/StepMania.vcproj
+++ b/stepmania/src/StepMania.vcproj
@@ -1071,12 +1071,6 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\
-
-
-
-
diff --git a/stepmania/src/archutils/Win32/Disasm.cpp b/stepmania/src/archutils/Win32/Disasm.cpp
deleted file mode 100644
index 020a972492..0000000000
--- a/stepmania/src/archutils/Win32/Disasm.cpp
+++ /dev/null
@@ -1,816 +0,0 @@
-// from VirtualDub
-// Copyright (C) 1998-2001 Avery Lee
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-#include
-#include
-
-#include
-
-#include "resource.h"
-#include "disasm.h"
-
-extern HINSTANCE g_hInstance;
-
-#define MAX_INSTRUCTIONS (1024)
-
-// WARNING: This is called from crash-time conditions! No malloc() or new!!!
-
-#define malloc not_allowed_here
-#define new not_allowed_here
-
-// Also, we keep as much of our initialized data as possible as const. That way,
-// it is in a write-locked code segment, which can't be overwritten.
-
-static char *VDDisasmMatchRule(VDDisassemblyContext *pContext, const unsigned char *source, const unsigned char *pattern, int pattern_len, int bytes, int *sp, char *hp, const unsigned char *&source_end);
-
-char *strtack(char *s, const char *t) {
- while(*s = *t)
- ++s, ++t;
-
- return s;
-}
-
-// 1-15 are static lookups
-static const char kTarget_r32 = 1;
-static const char kTarget_r16 = 2;
-static const char kTarget_r8 = 3;
-static const char kTarget_rm = 4;
-static const char kTarget_rx = 5;
-static const char kTarget_rc = 6;
-static const char kTarget_rd = 7;
-static const char kTarget_rs = 8;
-static const char kTarget_rf = 9;
-
-// 16-31 are dynamic translations
-static const char kTarget_r1632 = 16;
-static const char kTarget_rmx = 17;
-static const char kTarget_x = 18;
-static const char kTarget_hx = 19;
-static const char kTarget_lx = 20;
-static const char kTarget_s = 21;
-static const char kTarget_o = 22;
-static const char kTarget_ho = 23;
-static const char kTarget_lo = 24;
-static const char kTarget_a = 25;
-static const char kTarget_ha = 26;
-static const char kTarget_la = 27;
-
-static const char kTarget_ap = (char)224;
-static const char kTarget_p_cs = (char)225;
-static const char kTarget_p_ss = (char)226;
-static const char kTarget_p_ds = (char)227;
-static const char kTarget_p_es = (char)228;
-static const char kTarget_p_fs = (char)229;
-static const char kTarget_p_gs = (char)230;
-static const char kTarget_p_66 = (char)231;
-static const char kTarget_p_67 = (char)232;
-static const char kTarget_p_F2 = (char)233;
-static const char kTarget_p_F3 = (char)234;
-
-static void *VDDisasmDecompress(void *_dst, const unsigned char *src, int src_len) {
- const unsigned char *src_limit = src + src_len;
- unsigned char *dst = (unsigned char *)_dst;
-
- // read ruleset count
- int rulesets = *src++;
- unsigned char **prstab = (unsigned char **)dst;
-
- dst += sizeof(unsigned char *) * (rulesets + 1);
-
- // decompress rulesets sequentially
- for(int rs=0; rs> 6;
-
- int prematch = (packctl & 7) * 2;
- int postmatch = ((packctl>>3) & 7) * 2;
- int literal = (*src++ - 1) * 2;
-
- *dst++ = literal + prematch + postmatch;
-
- const unsigned char *pattern_start = dst;
-
- for(cnt=0; cnt0; --cnt) {
- pattern_cache[cnt][0] = pattern_cache[cnt-1][0];
- pattern_cache[cnt][1] = pattern_cache[cnt-1][1];
- }
-
- pattern_cache[0][0] = pattern_start;
- pattern_cache[0][1] = dst;
-
- // read pack control byte and copy prematch-literal-postmatch for result
-
- packctl = *src++;
- packsrc = packctl >> 6;
-
- prematch = (packctl & 7);
- postmatch = ((packctl>>3) & 7);
- literal = (*src++ - 1);
-
- *dst++ = prematch + postmatch + literal;
-
- const unsigned char *result_start = dst;
-
- for(cnt=0; cnt0; --cnt) {
- result_cache[cnt][0] = result_cache[cnt-1][0];
- result_cache[cnt][1] = result_cache[cnt-1][1];
- }
-
- result_cache[0][0] = result_start;
- result_cache[0][1] = dst;
- }
-
- src += 2;
-
- *dst++ = 0;
- *dst++ = 0;
- }
-
- prstab[0] = prstab[rulesets];
-
- return dst;
-}
-
-static long VDDisasmPack32(const int *src) {
- return src[0] + (src[1]<<8) + (src[2]<<16) + (src[3]<<24);
-}
-
-static void VDDisasmExpandRule(VDDisassemblyContext *pContext, char *s, const unsigned char *result, const int *sp_base, const unsigned char *source) {
- static const char *const reg32[8]={"eax","ecx","edx","ebx","esp","ebp","esi","edi"};
- static const char *const reg16[8]={"ax","cx","dx","bx","sp","bp","si","di"};
- static const char *const reg8[8]={"al","cl","dl","bl","ah","ch","dh","bh"};
- static const char *const regmmx[8]={"mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7"};
- static const char *const regxmm[8]={"xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7"};
- static const char *const regcrn[8]={"cr0","cr1","cr2","cr3","cr4","cr5","cr6","cr7"};
- static const char *const regdrn[8]={"dr0","dr1","dr2","dr3","dr4","dr5","dr6","dr7"};
- static const char *const regseg[8]={"es","cs","ss","ds","fs","gs","?6s","?7s"};
- static const char *const regf[8]={"st(0)","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"};
-
- static const char *const *const sStaticLabels[]={
- reg32,
- reg16,
- reg8,
- regmmx,
- regxmm,
- regcrn,
- regdrn,
- regseg,
- regf
- };
-
- const unsigned char *result_limit = result + result[0]+1;
-
- ++result;
-
- while(result < result_limit) {
- char c = *result++;
-
- if ((unsigned char)(c&0x7f) < 32) {
- if (c & 0x80) {
- c &= 0x7f;
- *s++ = ' ';
- }
-
- static const unsigned char static_bitfields[8]={
- 0x80, 0x30, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00
- };
-
- unsigned char control_byte = (unsigned char)*result++;
- unsigned char bitfield = static_bitfields[control_byte >> 5];
-
- if (!bitfield)
- bitfield = (unsigned char)*result++;
-
- int bf_start = bitfield & 15;
- int bf_siz = bitfield>>4;
- const char *arg_s = (const char *)sp_base[c-1];
- int arg = (sp_base[c-1] >> bf_start) & ((1<bSizeOverride);
- break;
- case kTarget_rmx:
- s = strtack(s, (pContext->bSizeOverride ? regxmm : regmmx)[arg]);
- break;
- case kTarget_lx:
- symoffset = VDDisasmPack32(sp_base + c - 1);
- s += sprintf(s, "%08lx", symoffset);
- break;
- case kTarget_hx:
- s += sprintf(s, "%02x%02x"
- , (unsigned char)sp_base[c]
- , (unsigned char)sp_base[c-1]
- );
- break;
- case kTarget_x:
- s += sprintf(s, "%02x", arg);
- break;
- case kTarget_lo:
- symoffset = VDDisasmPack32(sp_base + c - 1);
- s += sprintf(s, "%c%02lx", symoffset<0 ? '-' : '+', abs(symoffset));
- break;
- case kTarget_ho:
- {
- short x = ((unsigned char)sp_base[c ] << 8)
- + (unsigned char)sp_base[c-1];
-
- s += sprintf(s, "%c%02lx", x<0 ? '-' : '+', abs(x));
- }
- break;
- case kTarget_o:
- s += sprintf(s, "%c%02x", arg&0x80?'-':'+', abs((signed char)arg));
- break;
- case kTarget_la:
- symoffset = (long)source + VDDisasmPack32(sp_base + c - 1) + pContext->physToVirtOffset;
- s += sprintf(s, "%08lx", symoffset);
- break;
- case kTarget_ha:
- symoffset = (long)source + (signed short)(sp_base[c-1] + (sp_base[c]<<8)) + pContext->physToVirtOffset;
- s += sprintf(s, "%08lx", symoffset);
- break;
- case kTarget_a:
- symoffset = (long)source + (signed char)arg + pContext->physToVirtOffset;
- s += sprintf(s, "%08lx", symoffset);
- break;
- case kTarget_s:
- if(arg_s < (const char *) 0x100) {
- /* Oops--somehow we got a character value on the stack where
- * we expected a string. This is probably an error in the
- * disassembly rules. */
- s = strtack(s, "(DISASSEMBLY ERROR: STRING EXPECTED)");
- break;
- }
- s = strtack(s, arg_s);
- break;
- }
-
- if (symoffset && pContext->pSymLookup) {
- char buf[1024];
-
- symoffset = pContext->pSymLookup(pContext, (unsigned long)symoffset, buf, sizeof buf - 16);
-
- if (symoffset >= 0) {
- int l = strlen(buf);
- int l2 = s - s_base;
-
- if (symoffset)
- l += sprintf(buf+l, "+%02x", symoffset);
-
- memmove(s_base+l+2, s_base, l2);
- memcpy(s_base, buf, l);
- s_base[l] = ' ';
- s_base[l+1] = '(';
- s = s_base + l+l2+2;
- *s++ = ')';
- }
- }
- }
- } else if ((unsigned char)c >= 0xe0) {
- switch(c) {
- case kTarget_ap:
- if (pContext->pszSegmentOverride) {
- s = strtack(s, pContext->pszSegmentOverride);
- *s++ = ':';
- }
- break;
- case kTarget_p_cs: pContext->pszSegmentOverride = regseg[1]; break;
- case kTarget_p_ss: pContext->pszSegmentOverride = regseg[2]; break;
- case kTarget_p_ds: pContext->pszSegmentOverride = regseg[3]; break;
- case kTarget_p_es: pContext->pszSegmentOverride = regseg[0]; break;
- case kTarget_p_fs: pContext->pszSegmentOverride = regseg[4]; break;
- case kTarget_p_gs: pContext->pszSegmentOverride = regseg[5]; break;
- case kTarget_p_66: pContext->bSizeOverride = true; break;
- case kTarget_p_67: pContext->bAddressOverride = true; break;
- case kTarget_p_F2: pContext->bRepnePrefix = true; break;
- case kTarget_p_F3: pContext->bRepePrefix = true; break;
- }
- } else
- *s++ = c;
- }
-
- *s = 0;
-}
-
-static char *VDDisasmApplyRuleset(VDDisassemblyContext *pContext, const unsigned char *rs, int *sp, char *hp, const unsigned char *source, int bytes, const unsigned char *&source_end) {
- char *hpr;
-
- while(rs[0] || rs[1]) {
- const unsigned char *src_end;
- const unsigned char *result = rs + rs[0] + 1;
- const unsigned char *match_next = result + result[0] + 1;
-
- hpr = VDDisasmMatchRule(pContext, source, rs+1, rs[0]>>1, bytes, sp, hp, src_end);
-
- if (hpr) {
- VDDisasmExpandRule(pContext, hpr, result, sp, src_end);
-
- source_end = src_end;
- return hpr;
- }
-
- rs = match_next;
- }
-
- return NULL;
-}
-
-static char *VDDisasmMatchRule(VDDisassemblyContext *pContext, const unsigned char *source, const unsigned char *pattern, int pattern_len, int bytes, int *sp, char *hp, const unsigned char *&source_end) {
- while(pattern_len) {
- if (!pattern[1] && pattern[0]) {
- if (pattern[0] & 0x80) {
- int count = pattern[0] & 0x3f;
-
- if (pattern[0] & 0x40) {
- --source;
- ++bytes;
- }
-
- const unsigned char *src_end;
-
- hp = VDDisasmApplyRuleset(pContext, pContext->pRuleSystem[count+1], sp, hp, source, bytes, src_end);
-
- if (!hp)
- return NULL;
-
- *sp++ = *source;
- *sp++ = (int)hp;
-
- while(*hp++);
-
- bytes -= (src_end - source)-1;
- source = src_end;
- } else if (pattern[0] < 16) {
- if (pattern[0] > bytes)
- return NULL;
-
- for(int i=0; ibSizeOverride) return NULL; break;
- case 17: if (!pContext->bAddressOverride) return NULL; break;
- case 18: if (!pContext->bRepnePrefix) return NULL; break;
- case 19: if (!pContext->bRepePrefix) return NULL; break;
- case 20: if (pContext->pszSegmentOverride) return NULL; break;
- }
- }
- } else {
- if (!bytes)
- return NULL;
-
- unsigned char b = *source++;
-
- if ((b & pattern[1]) != pattern[0])
- return NULL;
-
- *sp++ = b;
- }
- pattern += 2;
- --bytes;
- --pattern_len;
- }
-
- if (!pattern_len) {
- source_end = source;
- return hp;
- }
-
- return NULL;
-}
-
-char *VDDisassemble(VDDisassemblyContext *pvdc, const unsigned char *source, int bytes, int& count) {
- const unsigned char *src2 = source;
- const unsigned char *src_end;
- char *s;
-
- pvdc->bAddressOverride = false;
- pvdc->bSizeOverride = false;
- pvdc->bRepePrefix = false;
- pvdc->bRepnePrefix = false;
- pvdc->pszSegmentOverride = NULL;
-
- do {
- s = VDDisasmApplyRuleset(pvdc, pvdc->pRuleSystem[0], pvdc->stack, pvdc->heap, src2, bytes, src_end);
-
- bytes -= (src_end - src2);
- src2 = src_end;
- } while(!*s && bytes);
-
- if (!*s)
- return NULL;
-
- count = src2 - source;
-
- char *dst = s, *dst_base;
-
- while(*dst++)
- ;
-
- dst_base = dst;
-
- char *t = s;
- while(*t && *t != ' ')
- ++t;
-
- if (*t)
- *t++ = 0;
-
- sprintf(dst, "%-6s %s", s, t);
-
- return dst_base;
-}
-
-bool VDDisasmInit(VDDisassemblyContext *pvdc, const char *pszFilename) {
- HANDLE h;
-
- pvdc->pRawBlock = NULL;
- pvdc->pExtraData = NULL;
-
- h = CreateFile(pszFilename, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-
- if (h == INVALID_HANDLE_VALUE)
- return false;
-
- DWORD dwSize = GetFileSize(h, NULL), dwActual;
-
- pvdc->pRawBlock = VirtualAlloc(NULL, dwSize + 65536, MEM_COMMIT, PAGE_READWRITE);
-
- if (!pvdc->pRawBlock || !ReadFile(h, pvdc->pRawBlock, dwSize, &dwActual, NULL) || dwActual != dwSize) {
- CloseHandle(h);
- return false;
- }
-
- CloseHandle(h);
-
- const char *src = (const char *)pvdc->pRawBlock;
-
- if (src[0] != '[' || src[3] != '|')
- return false;
-
- if (memcmp((char *)src + 6, "] StepMania disasm module", 25))
- return false;
-
- // Check version number
-
- int write_version = (src[1]-'0')*10 + (src[2] - '0');
- int compat_version = (src[4]-'0')*10 + (src[5] - '0');
-
- if (compat_version > 1)
- return false; // resource is too new for us to load
-
-
- long packSize = *(long *)((char *)pvdc->pRawBlock + 64);
- long depackSize = *(long *)((char *)pvdc->pRawBlock + 68);
-
- pvdc->pRuleSystem = (const unsigned char **)((char *)pvdc->pRawBlock + dwSize);
- pvdc->stack = (int *)((char *)pvdc->pRuleSystem + depackSize);
- pvdc->heap = (char *)(pvdc->stack + 32);
-
- pvdc->cbExtraData = dwSize - (packSize+72);
- pvdc->pExtraData = NULL;
-
- if (pvdc->cbExtraData)
- pvdc->pExtraData = (char *)pvdc->pRawBlock + 72 + packSize;
-
- VDDisasmDecompress(pvdc->pRuleSystem, (unsigned char *)pvdc->pRawBlock + 72, packSize);
-
- return true;
-}
-
-void VDDisasmDeinit(VDDisassemblyContext *pvdc) {
- if (pvdc->pRawBlock) {
- VirtualFree(pvdc->pRawBlock, 0, MEM_RELEASE);
- pvdc->pRawBlock = NULL;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-static void SpliceProgramPath(char *buf, int bufsiz, const char *fn) {
- char tbuf[MAX_PATH];
- char *pszFile;
-
- GetModuleFileName(NULL, tbuf, sizeof tbuf);
- GetFullPathName(tbuf, bufsiz, buf, &pszFile);
- strcpy(pszFile, fn);
-}
-
-CodeDisassemblyWindow::CodeDisassemblyWindow(void *_code, long _length, void *_rbaseptr, void *_abaseptr)
-: code(_code)
-, rbase(_rbaseptr)
-, abase(_abaseptr)
-, length(_length)
-, pFault(0)
-{
-// lbents = new lbent[MAX_INSTRUCTIONS];
-
- char buf[MAX_PATH];
-
- vdc.pRuleSystem = NULL;
- vdc.pSymLookup = NULL;
- vdc.physToVirtOffset = -(long)_rbaseptr;
-
- SpliceProgramPath(buf, sizeof buf, "ia32.vdi");
- if (!VDDisasmInit(&vdc, buf)) {
- SpliceProgramPath(buf, sizeof buf, "StepMania.vdi");
- if (!VDDisasmInit(&vdc, buf)) {
- SpliceProgramPath(buf, sizeof buf, "StepMani.vdi");
- VDDisasmInit(&vdc, buf);
- }
- }
-
- lbents = (lbent *)VirtualAlloc(NULL, sizeof(lbent)*MAX_INSTRUCTIONS, MEM_COMMIT, PAGE_READWRITE);
-
- hFontMono = CreateFont(
- 10, // nHeight
- 0, // nWidth
- 0, // nEscapement
- 0, // nOrientation
- FW_DONTCARE, // fnWeight
- FALSE, // fdwItalic
- FALSE, // fdwUnderline
- FALSE, // fdwStrikeOut
- ANSI_CHARSET, // fdwCharSet
- OUT_DEFAULT_PRECIS, // fdwOutputPrecision
- CLIP_DEFAULT_PRECIS, // fdwClipPrecision
- DEFAULT_QUALITY, // fdwQuality
- DEFAULT_PITCH | FF_DONTCARE, // fdwPitchAndFamily
- "Lucida Console"
- );
-
- if (!hFontMono) hFontMono = (HFONT)GetStockObject(ANSI_FIXED_FONT);
- num_ents = 0;
-}
-
-CodeDisassemblyWindow::~CodeDisassemblyWindow() {
-
- VDDisasmDeinit(&vdc);
-
- if (hFontMono) DeleteObject(hFontMono);
-
- if (lbents)
- VirtualFree(lbents, 0, MEM_RELEASE);
-}
-
-/////////////////////////////////////////////////////////////////////////
-
-
-void CodeDisassemblyWindow::parse() {
- if (!vdc.pRuleSystem)
- return;
-
- unsigned char *ip = (unsigned char *)code;
- unsigned char *ipend = ip + length;
- lbent *ipd = lbents;
- int cnt=0;
-
- if (!ipd) {
- num_ents = 0;
- return;
- }
-
- while(ip < ipend && cnt++ip = ip;
- ipd->len = count;
-
- ip += count;
-
- ++ipd;
- }
-
- num_ents = ipd-lbents;
-}
-/*
-BOOL CodeDisassemblyWindow::post(HWND hWnd) {
- if (!lbents) return FALSE;
-
- DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_DISASM), hWnd, CodeDisassemblyWindow::DlgProc, (LPARAM)this);
-
- return TRUE;
-}
-*/
-long CodeDisassemblyWindow::getInstruction(char *buf, long val) {
- lbent *ipd;
- unsigned char *ip;
-
- if ((val >> 16) >= num_ents)
- return 0;
-
- ipd = &lbents[val >> 16];
- ip = ipd->ip;
-
- int count;
-
- unsigned virtAddr = (unsigned)ip - (unsigned)code + (unsigned)abase;
- int subIndex = val & 0xffff;
- int left = ipd->len - subIndex * 7;
-
- buf += sprintf(buf, subIndex ? " " : "%08lx: ", virtAddr);
-
- for(int i=0; i<7; ++i) {
- if (--left >= 0) {
- buf += wsprintf(buf, "%02x", (unsigned char)ip[subIndex*7+i]);
- } else {
- *buf++ = ' ';
- *buf++ = ' ';
- }
- }
-
- *buf++ = ' ';
- *buf++ = ' ';
- *buf = 0;
-
- if (!subIndex) {
- strcpy(buf, VDDisassemble(&vdc, ip, ipd->len, count));
-
- if (virtAddr == (unsigned)pFault)
- strcat(buf, " <-- FAULT");
- }
-
- ++subIndex;
-
- if (subIndex >= (ipd->len+6) / 7)
- return (val&0xffff0000) + 0x10000;
- else
- return val+1;
-}
-
-void CodeDisassemblyWindow::DoInitListbox(HWND hwndList) {
-// SendMessage(hwndList, LB_SETCOUNT, num_ents, 0);
-
- for(int i=0; iCtlType != ODT_LISTBOX) return FALSE;
-
- lbent *pent = &lbents[pinfo->itemID];
-
- pinfo->itemHeight = 11 * ((pent->len + 6)/7);
- return TRUE;
-}
-
-BOOL CodeDisassemblyWindow::DoDrawItem(LPARAM lParam) {
- LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
- lbent *ipd;
-
- if (lpdis->CtlType != ODT_LISTBOX) return FALSE;
- if (!(lpdis->itemAction & ODA_DRAWENTIRE)) return FALSE;
- if (lpdis->itemID < 0) return FALSE;
-
-// ipd = (lbent *)lpdis->itemData;
- ipd = &lbents[lpdis->itemID];
-
- if (ipd->ip) {
- SetBkMode(lpdis->hDC, TRANSPARENT);
- SetTextColor(lpdis->hDC, RGB(0x00,0x00,0x00));
-
- if (ipd->ip - (unsigned char *)code + (unsigned char *)abase == pFault) {
- HBRUSH hbr = CreateSolidBrush(RGB(0xff,0xa0,0x60));
- if (hbr) {
- FillRect(lpdis->hDC, &lpdis->rcItem, hbr);
- DeleteObject(hbr);
- }
- }
-
- int count;
- char *dst = buf;
- const unsigned char *src = (const unsigned char *)ipd->ip;
- int i, left = ipd->len;
-
- dst += sprintf(dst, "%08lx: ", (long)ipd->ip + vdc.physToVirtOffset);
-
- for(i=0; i<7; ++i)
- if (--left>=0) {
- dst += sprintf(dst, "%02x", *src++);
- } else {
- dst[0] = dst[1] = ' ';
- dst += 2;
- }
-
- *dst++ = ' ';
- *dst++ = ' ';
-
- strcpy(dst, VDDisassemble(&vdc, ipd->ip, ipd->len, count));
-
- int x = lpdis->rcItem.left;
- int y = lpdis->rcItem.top;
-
- ExtTextOut(lpdis->hDC, x, y, 0, NULL, buf, strlen(buf), NULL);
-
- while(left>0) {
- dst = buf+sprintf(buf, " ");
- for(i=0; i<7; ++i) {
- if (--left>=0) {
- dst += sprintf(dst, "%02x", *src++);
- }
- }
-
- y += 11;
- ExtTextOut(lpdis->hDC, x, y, 0, NULL, buf, dst-buf, NULL);
- }
- }
-
- return TRUE;
-}
-
-BOOL CALLBACK CodeDisassemblyWindow::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
- CodeDisassemblyWindow *thisPtr = (CodeDisassemblyWindow *)GetWindowLong(hDlg, DWL_USER);
-
- switch(msg) {
-
- case WM_INITDIALOG:
- SetWindowLong(hDlg, DWL_USER, lParam);
- thisPtr = (CodeDisassemblyWindow *)lParam;
-
- {
- HWND hwndList = GetDlgItem(hDlg, IDC_ASMBOX);
-
- thisPtr->DoInitListbox(hwndList);
- }
- return TRUE;
-
- case WM_COMMAND:
- switch(LOWORD(wParam)) {
- case IDCANCEL: case IDOK:
- EndDialog(hDlg, FALSE);
- return TRUE;
- }
- break;
-
- case WM_MEASUREITEM:
- return thisPtr->DoMeasureItem(lParam);
-
- case WM_DRAWITEM:
- return thisPtr->DoDrawItem(lParam);
- }
-
- return FALSE;
-}
diff --git a/stepmania/src/archutils/Win32/Disasm.h b/stepmania/src/archutils/Win32/Disasm.h
deleted file mode 100644
index 2a26996919..0000000000
--- a/stepmania/src/archutils/Win32/Disasm.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// from VirtualDub
-// Copyright (C) 1998-2001 Avery Lee
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-#ifndef f_DISASM_H
-#define f_DISASM_H
-
-#include
-
-struct VDDisassemblyContext {
- const unsigned char **pRuleSystem;
- long (*pSymLookup)(VDDisassemblyContext *pctx, unsigned long virtAddr, char *buf, int buf_len);
-
- bool bSizeOverride; // 66
- bool bAddressOverride; // 67
- bool bRepnePrefix; // F2
- bool bRepePrefix; // F3
- const char *pszSegmentOverride;
-
- long physToVirtOffset;
-
- void *pRawBlock;
- char *heap;
- char *heap_limit;
- int *stack;
-
- void *pExtraData;
- int cbExtraData;
-};
-
-
-bool VDDisasmInit(VDDisassemblyContext *, const char *, const char *);
-void VDDisasmDeinit(VDDisassemblyContext *);
-char *VDDisassemble(VDDisassemblyContext *pvdc, const unsigned char *source, int bytes, int& count);
-
-
-
-class CodeDisassemblyWindow {
-private:
- static BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
-
- void *code, *rbase, *abase;
- long length;
- void *pFault;
-
- class lbent {
- public:
- unsigned char *ip;
- int len;
- } *lbents;
- int num_ents;
-
- HFONT hFontMono;
-
- char buf[256];
-
-public:
- VDDisassemblyContext vdc;
-
- CodeDisassemblyWindow(void *code, long, void *, void *);
- ~CodeDisassemblyWindow();
-
- void DoInitListbox(HWND hwndList);
- BOOL DoMeasureItem(LPARAM lParam);
- BOOL DoDrawItem(LPARAM lParam);
- void parse();
- BOOL post(HWND);
- long getInstruction(char *buf, long val);
-
- void setFaultAddress(void *_pFault) {
- pFault = _pFault;
- }
-};
-
-#endif