! nop mePlan.native(i) = mePlan.native(i) - v ! nopI see this hex dump.
*** These values are from my hard drive and not the program in memory *** 00031370: 908B4580 8B8D7CFF FFFF83E9 01C1E102 00031380: F7D80381 A01A3A81 8B8D7CFF FFFF83E9 00031390: 01C1E102 8981A01A 4C0090Using the intel manual from http://www.intel.com I looked up what it all means.
HEX in the EXE Meaning 90 nop 8B 45 80 mov eax,dword ptr [ebp-80] 8B 8D 7C FF FF FF mov ecx,dword ptr [ebp-00000084] 83 E9 01 sub ecx,00000001 C1 E1 02 shl ecx,02 F7 D8 neg eax 03 81 A0 1A ?? ?? add eax,dword ptr [ecx-????????] 8B 8D 7C FF FF FF mov ecx,dword ptr [ebp-00000084] 83 E9 01 sub ecx,00000001 C1 E1 02 shl ecx,02 89 81 A0 1A 4C 00 mov dword ptr [ecx+004c1aa0],eax 90 nop The two hex values marked as ?? are the problem. After every compile, using the same source code these values are RANDOM. Every other byte in the program is exactly the same as the last compile, but these two are random. These random values crash my program with a GPF error every time. The correct values for those two random values is: 4C 00. If I use a HEX editor to edit the EXE (on the hard drive) and change the values of the two random HEX numbers to 4C and 00 the GPF error disappears. To verify the error, all the guys at Power Basic have to do is compile the source code several times and do a file compare of the resulting EXE files. 00031370: 908B4580 8B8D7CFF FFFF83E9 01C1E102 00031380: F7D80381 A01A???? 8B8D7CFF FFFF83E9 00031390: 01C1E102 8981A01A 4C0090They will see that the values at 00031386 and 00031387 in the EXE file on the hard drive is randomly changing with each new compile.
Tim Wisseman
cocomax@sierratel.com