Hello Dave!
Happy 2025 to you...
Pretty easy. Marking a random DLL to load high, exehdr outputs,
...
Automatic data object: 2
no. virtual virtual map map flags
address size index size
0001 00010000 00001320 00000001 00000002 EXECUTABLE, READABLE, 32-bit, HIMEM
0002 00020000 00000740 00000003 00000001 READABLE, WRITEABLE, 32-bit
OK, cool...I am using the 4.01.003 version here already, and indeed that points to the 'flag' that shows me the current state/mark, thank you, great to know this b/c I've been relying on 'highmem -v' up to now.
Alright...so how about the way the EXE/DLL were compiled??? I thought that in order to enable highmem one had to run a special flag during either the compile or link stages??? Would that not be present somewhere?
That is really what I'm after here...b/c having flipped that highmem flag ON/OFF a number of times, how the heck do I know what the DEFAULT setting was?
I suppose that perhaps this question in a sense dovetails into the following:
1) when should something be marked as 'code' highmem enabled
2) when should something be marked as 'data' highmem enabled
3) when should something be marked as 'both' highmem enabled
For now I am under the impression that anything using 16bit stuff must NOT be highmem enabled, for any of the above settings.
So a more specific example: looking at our Lucide PDF viewer, I see the following for lucide1.dll
1) 'code' marked as highmem
no. virtual virtual map map flags
address size index size
0001 00010000 0005d0f0 00000001 0000005e EXECUTABLE, READABLE, 32-bit, HIMEM
0002 00070000 0001b6f0 0000005f 00000016 READABLE, WRITEABLE, 32-bit
0003 00000000 0000c680 00000075 0000000d READABLE, SHARED, RESOURCE,
DISCARDABLE, 32-bit
2) 'data marked as highmem
no. virtual virtual map map flags
address size index size
0001 00010000 0005d0f0 00000001 0000005e EXECUTABLE, READABLE, 32-bit
0002 00070000 0001b6f0 0000005f 00000016 READABLE, WRITEABLE, 32-bit, HIMEM
0003 00000000 0000c680 00000075 0000000d READABLE, SHARED, RESOURCE,
DISCARDABLE, 32-bit
3) 'both' marked as highmem
no. virtual virtual map map flags
address size index size
0001 00010000 0005d0f0 00000001 0000005e EXECUTABLE, READABLE, 32-bit, HIMEM
0002 00070000 0001b6f0 0000005f 00000016 READABLE, WRITEABLE, 32-bit, HIMEM
0003 00000000 0000c680 00000075 0000000d READABLE, SHARED, RESOURCE,
DISCARDABLE, 32-bit
So it is the different object #s that are impacted, this I can see, but just looking at the details and seeing "...32-bit...", is that sufficient enough for me to consider that highmem safe for any of those combinations?
I am using Lucide as an example b/c I've had a nagging issue with this thing freezing during PDF file opening...sort of a soft-lock...I can usually kill the process, but sometimes it's caused my WPS to shut-down...which is really weird. This typically happens when I'm opening a PDF on the NAS, and very rarely, if ever, when opening a local PDF.
Anyways, since the NAS path is complicated (NetDrive: the plugins, samba stuff, etc.) I am trying to work through that whole stream to confirm that all of it is correctly configured...yeah, kind of a needle in a haystack kind of a thing...LOL!