Ok here is another attempt here. Removed the masm test as it was giving me incorrect data. Probably just because I never use masm, that and I have never really tested the vkim debug macros for masm.
Any how, here is my test code picking a few selected strings data from the ADDINDATA structure. Pretty straight forward use of the debug macros...
PrintLine()
PrintText("GoASM Code Start")
PrintText("Everything works fine up to a point")
mov eax,SIZEOF ADDINDATA
PrintText("Size of ADDINDATA")
PrintDec(eax)
PrintText("Using - add eax,ADDINDATA.szAppPath")
mov eax,[lpData]
add eax,ADDINDATA.szAppPath
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintText("Using - add eax,ADDINDATA.szBraceMatch")
mov eax,[lpData]
add eax,ADDINDATA.szBraceMatch
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintText("Using - add eax,ADDINDATA.szTypes")
mov eax,[lpData]
add eax,ADDINDATA.szTypes
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintLine()
PrintText("After this point it becomes unreliable...")
PrintLine()
PrintLine()
PrintText("Using - add eax,ADDINDATA.szCompileRC")
mov eax,[lpData]
add eax,ADDINDATA.szCompileRC
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintText("Using - add eax,ADDINDATA.szCompileRCHelp")
mov eax,[lpData]
add eax,ADDINDATA.szCompileRCHelp
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintText("Using - add eax,ADDINDATA.szCompileRCHelpKw")
mov eax,[lpData]
add eax,ADDINDATA.szCompileRCHelpKw
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintLine()
PrintText("This is definitely wrong... Should print the first of ten MRF")
PrintLine()
PrintLine()
PrintText("Using - add eax,ADDINDATA.szMruFiles")
mov eax,[lpData]
add eax,ADDINDATA.szMruFiles
PrintDWORDHex(eax)
PrintStringByAddr(eax)
DumpMem(eax,64)
PrintText("Using - add eax,ADDINDATA.szDbgFileName")
mov eax,[lpData]
add eax,ADDINDATA.szDbgFileName
PrintDWORDHex(eax)
PrintStringByAddr(eax)
DumpMem(eax,64)
And here is the output, first using Goasm v0.56.8, followed by Goasm v0.62.0
The output appears to be identical...
Goasm v0.56.8
----------------------------------------
Line 639: GoASM Code Start
Line 640: Everything works fine up to a point
Line 642: Size of ADDINDATA
Line 643: eax = 76616 (0x00012B48)
Line 645: Using - add eax,ADDINDATA.szAppPath
Line 648: eax = C:\programming\tools\RadASM30
----------------------------------------
Line 649 : Hex dump of 64 bytes at address 0x0048E8BC
----------------------------------------
0048E8BC: 43 3A 5C 70-72 6F 67 72-61 6D 6D 69-6E 67 5C 74 C:\programming\t
0048E8CC: 6F 6F 6C 73-5C 52 61 64-41 53 4D 33-30 00 52 61 ools\RadASM30.Ra
0048E8DC: 64 41 53 4D-2E 65 78 65-00 00 00 00-00 00 00 00 dASM.exe........
0048E8EC: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 651: Using - add eax,ADDINDATA.szBraceMatch
Line 654: eax = ({[,)}],\,
----------------------------------------
Line 655 : Hex dump of 64 bytes at address 0x0048FE18
----------------------------------------
0048FE18: 28 7B 5B 2C-29 7D 5D 2C-5C 2C 00 00-00 00 00 00 ({[,)}],\,......
0048FE28: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0048FE38: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0048FE48: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 657: Using - add eax,ADDINDATA.szTypes
Line 660: eax = .asm.,.inc.,.rc.,.txt.ini.def.,.exe.,.bat.
----------------------------------------
Line 661 : Hex dump of 64 bytes at address 0x00495F38
----------------------------------------
00495F38: 2E 61 73 6D-2E 2C 2E 69-6E 63 2E 2C-2E 72 63 2E .asm.,.inc.,.rc.
00495F48: 2C 2E 74 78-74 2E 69 6E-69 2E 64 65-66 2E 2C 2E ,.txt.ini.def.,.
00495F58: 65 78 65 2E-2C 2E 62 61-74 2E 00 00-00 00 00 00 exe.,.bat.......
00495F68: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
----------------------------------------
Line 664: After this point it becomes unreliable...
----------------------------------------
----------------------------------------
Line 668: Using - add eax,ADDINDATA.szCompileRC
Line 671: eax = GoRC
----------------------------------------
Line 672 : Hex dump of 64 bytes at address 0x00496038
----------------------------------------
00496038: 47 6F 52 43-00 00 00 00-00 00 00 00-00 00 00 00 GoRC............
00496048: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496058: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496068: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 674: Using - add eax,ADDINDATA.szCompileRCHelp
Line 677: eax =
----------------------------------------
Line 678 : Hex dump of 64 bytes at address 0x004960B8
----------------------------------------
004960B8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960C8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960D8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960E8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 680: Using - add eax,ADDINDATA.szCompileRCHelpKw
Line 683: eax =
----------------------------------------
Line 684 : Hex dump of 64 bytes at address 0x00496138
----------------------------------------
00496138: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496148: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496158: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496168: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
----------------------------------------
Line 687: This is definitely wrong... Should print the first of ten MRF
----------------------------------------
----------------------------------------
Line 691: Using - add eax,ADDINDATA.szMruFiles
Line 694: eax = 0x0049C980
Line 695: eax =
----------------------------------------
Line 696 : Hex dump of 64 bytes at address 0x0049C980
----------------------------------------
0049C980: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C990: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C9A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C9B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 698: Using - add eax,ADDINDATA.szDbgFileName
Line 701: eax = 0x0049ED68
Line 702: eax =
----------------------------------------
Line 703 : Hex dump of 64 bytes at address 0x0049ED68
----------------------------------------
0049ED68: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED78: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED88: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED98: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Goasm v0.62.0
----------------------------------------
Line 639: GoASM Code Start
Line 640: Everything works fine up to a point
Line 642: Size of ADDINDATA
Line 643: eax = 76616 (0x00012B48)
Line 645: Using - add eax,ADDINDATA.szAppPath
Line 648: eax = C:\programming\tools\RadASM30
----------------------------------------
Line 649 : Hex dump of 64 bytes at address 0x0048E8BC
----------------------------------------
0048E8BC: 43 3A 5C 70-72 6F 67 72-61 6D 6D 69-6E 67 5C 74 C:\programming\t
0048E8CC: 6F 6F 6C 73-5C 52 61 64-41 53 4D 33-30 00 52 61 ools\RadASM30.Ra
0048E8DC: 64 41 53 4D-2E 65 78 65-00 00 00 00-00 00 00 00 dASM.exe........
0048E8EC: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 651: Using - add eax,ADDINDATA.szBraceMatch
Line 654: eax = ({[,)}],\,
----------------------------------------
Line 655 : Hex dump of 64 bytes at address 0x0048FE18
----------------------------------------
0048FE18: 28 7B 5B 2C-29 7D 5D 2C-5C 2C 00 00-00 00 00 00 ({[,)}],\,......
0048FE28: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0048FE38: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0048FE48: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 657: Using - add eax,ADDINDATA.szTypes
Line 660: eax = .asm.,.inc.,.rc.,.txt.ini.def.,.exe.,.bat.
----------------------------------------
Line 661 : Hex dump of 64 bytes at address 0x00495F38
----------------------------------------
00495F38: 2E 61 73 6D-2E 2C 2E 69-6E 63 2E 2C-2E 72 63 2E .asm.,.inc.,.rc.
00495F48: 2C 2E 74 78-74 2E 69 6E-69 2E 64 65-66 2E 2C 2E ,.txt.ini.def.,.
00495F58: 65 78 65 2E-2C 2E 62 61-74 2E 00 00-00 00 00 00 exe.,.bat.......
00495F68: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
----------------------------------------
Line 664: After this point it becomes unreliable...
----------------------------------------
----------------------------------------
Line 668: Using - add eax,ADDINDATA.szCompileRC
Line 671: eax = GoRC
----------------------------------------
Line 672 : Hex dump of 64 bytes at address 0x00496038
----------------------------------------
00496038: 47 6F 52 43-00 00 00 00-00 00 00 00-00 00 00 00 GoRC............
00496048: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496058: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496068: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 674: Using - add eax,ADDINDATA.szCompileRCHelp
Line 677: eax =
----------------------------------------
Line 678 : Hex dump of 64 bytes at address 0x004960B8
----------------------------------------
004960B8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960C8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960D8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
004960E8: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 680: Using - add eax,ADDINDATA.szCompileRCHelpKw
Line 683: eax =
----------------------------------------
Line 684 : Hex dump of 64 bytes at address 0x00496138
----------------------------------------
00496138: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496148: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496158: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
00496168: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
----------------------------------------
Line 687: This is definitely wrong... Should print the first of ten MRF
----------------------------------------
----------------------------------------
Line 691: Using - add eax,ADDINDATA.szMruFiles
Line 694: eax = 0x0049C980
Line 695: eax =
----------------------------------------
Line 696 : Hex dump of 64 bytes at address 0x0049C980
----------------------------------------
0049C980: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C990: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C9A0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049C9B0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
Line 698: Using - add eax,ADDINDATA.szDbgFileName
Line 701: eax = 0x0049ED68
Line 702: eax =
----------------------------------------
Line 703 : Hex dump of 64 bytes at address 0x0049ED68
----------------------------------------
0049ED68: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED78: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED88: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
0049ED98: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 ................
----------------------------------------
I'm at a loss here as to why it starts out fine but eventual stops working correctly...
If anyone can help I would appreciate it..