From 8db3b907770b5dace75816f025f7cbc978982c0e Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sun, 4 Aug 2013 00:20:05 -0400 Subject: [PATCH] far model segment header --- bin/disasm.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bin/disasm.cpp b/bin/disasm.cpp index ead749d..f39be33 100644 --- a/bin/disasm.cpp +++ b/bin/disasm.cpp @@ -280,9 +280,18 @@ int main(int argc, char **argv) } else { - // 4-byte header for segment stuff. - data += 4; - size -= 4; + // near model uses a $4-byte header. + // far model uses a $28-byte header. + if (data[0] == 0xff && data[1] == 0xff) + { + data += 0x28; + size -= 0x28; + } + else + { + data += 0x04; + size -= 0x04; + } memorySetMemory(data, size); disasm(cname.c_str(), resID, size); }