------------------------------------------------------------------------------------------------
                      [ENHANCED] VFP 9.0 FIX - THE LARGE ADDRESS AWARE MODE OF THE COMPILED EXECUTABLE FILES
                                  August 2026
                 ------------------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     We can set the large address aware mode of the compiled executable files in Visual FoxPro Advanced 32-bit.


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun6910c5 :: ; proc near
             push ebp                                                        ;0x006910c5 :        55
             mov ebp , esp                                                   ;0x006910c6 :        8bec
             sub esp , 0938h                                                 ;0x006910c8 :        81ec38090000
             mov eax ,  dword ptr [ Data937090 ]                             ;0x006910ce :        a190709300
             push ebx                                                        ;0x006910d3 :        53
             push esi                                                        ;0x006910d4 :        56
             push  dword ptr [ ebp + 8 ]                                     ;0x006910d5 :        ff7508
             lea ebx ,  dword ptr [ ebp + 0FFFFF7D0h ]                       ;0x006910d8 :        8d9dd0f7ffff
             mov  dword ptr [ ebp - 4 ] , eax                                ;0x006910de :        8945fc
             call Fun68711f                                                  ;0x006910e1 :        e83960ffff
             mov  eax , dword ptr [ ebp + 16 ]                               ;0x006910e6 :        8b4510
             lea esi ,  dword ptr [ ebp + 0FFFFF8AEh ]                       ;0x006910e9 :        8db5aef8ffff
             mov  dword ptr [ ebp + 0FFFFFECFh ] , eax                       ;0x006910ef :        8985cffeffff
             call Fun4110ee                                                  ;0x006910f5 :        e8f4ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFF9ADh ]                       ;0x006910fa :        8db5adf9ffff
             call Fun4110ee                                                  ;0x00691100 :        e8e9ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFAACh ]                       ;0x00691105 :        8db5acfaffff
             call Fun4110ee                                                  ;0x0069110b :        e8deffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFBABh ]                       ;0x00691110 :        8db5abfbffff
             call Fun4110ee                                                  ;0x00691116 :        e8d3ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFCAAh ]                       ;0x0069111b :        8db5aafcffff
             call Fun4110ee                                                  ;0x00691121 :        e8c8ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFDA9h ]                       ;0x00691126 :        8db5a9fdffff
             call Fun4110ee                                                  ;0x0069112c :        e8bdffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFEA8h ]                       ;0x00691131 :        8db5a8feffff
             call Fun4110ee                                                  ;0x00691137 :        e8b2ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFEADh ]                       ;0x0069113c :        8db5adfeffff
             call Fun4110ee                                                  ;0x00691142 :        e8a7ffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFEB2h ]                       ;0x00691147 :        8db5b2feffff
             call Fun4110ee                                                  ;0x0069114d :        e89cffd7ff
             lea esi ,  dword ptr [ ebp + 0FFFFFEB7h ]                       ;0x00691152 :        8db5b7feffff
             call Fun4110ee                                                  ;0x00691158 :        e891ffd7ff
             xor ebx , ebx                                                   ;0x0069115d :        33db
             cmp  byte ptr [ ebp + 0FFFFF8AEh ] , bl                         ;0x0069115f :        389daef8ffff
             jne Label6911bb                                                 ;0x00691165 :        7554
             cmp  byte ptr [ ebp + 0FFFFF9ADh ] , bl                         ;0x00691167 :        389dadf9ffff
             jne Label6911bb                                                 ;0x0069116d :        754c
             cmp  byte ptr [ ebp + 0FFFFFAACh ] , bl                         ;0x0069116f :        389dacfaffff
             jne Label6911bb                                                 ;0x00691175 :        7544
             cmp  byte ptr [ ebp + 0FFFFFBABh ] , bl                         ;0x00691177 :        389dabfbffff
             jne Label6911bb                                                 ;0x0069117d :        753c
             cmp  byte ptr [ ebp + 0FFFFFCAAh ] , bl                         ;0x0069117f :        389daafcffff
             jne Label6911bb                                                 ;0x00691185 :        7534
             cmp  byte ptr [ ebp + 0FFFFFDA9h ] , bl                         ;0x00691187 :        389da9fdffff
             jne Label6911bb                                                 ;0x0069118d :        752c
             cmp  byte ptr [ ebp + 0FFFFFEA8h ] , bl                         ;0x0069118f :        389da8feffff
             jne Label6911bb                                                 ;0x00691195 :        7524
             cmp  byte ptr [ ebp + 0FFFFFEADh ] , bl                         ;0x00691197 :        389dadfeffff
             jne Label6911bb                                                 ;0x0069119d :        751c
             cmp  byte ptr [ ebp + 0FFFFFEB2h ] , bl                         ;0x0069119f :        389db2feffff
             jne Label6911bb                                                 ;0x006911a5 :        7514
             cmp  byte ptr [ ebp + 0FFFFFEB7h ] , bl                         ;0x006911a7 :        389db7feffff
             jne Label6911bb                                                 ;0x006911ad :        750c
             cmp  dword ptr [ ebp + 0FFFFFECBh ] , ebx                       ;0x006911af :        399dcbfeffff
             je Label69123d                                                  ;0x006911b5 :        0f8482000000

     Label6911bb ::
             mov  ecx , dword ptr [ ebp + 12 ]                               ;0x006911bb :        8b4d0c
             xor edx , edx                                                   ;0x006911be :        33d2
             push edi                                                        ;0x006911c0 :        57
             inc edx                                                         ;0x006911c1 :        42
             call Fun42ce21                                                  ;0x006911c2 :        e85abcd9ff
             mov edi , eax                                                   ;0x006911c7 :        8bf8
             lea eax ,  dword ptr [ ebp + 16 ]                               ;0x006911c9 :        8d4510
             push eax                                                        ;0x006911cc :        50
             lea eax ,  dword ptr [ ebp + 0FFFFF8AEh ]                       ;0x006911cd :        8d85aef8ffff
             push eax                                                        ;0x006911d3 :        50
             push edi                                                        ;0x006911d4 :        57
             call Fun833bc0                                                  ;0x006911d5 :        e8e6291a00
             mov ecx , edi                                                   ;0x006911da :        8bcf
             mov esi , eax                                                   ;0x006911dc :        8bf0
             call Fun42ddf2                                                  ;0x006911de :        e80fccd9ff
             push ebx                                                        ;0x006911e3 :        53
             push  dword ptr [ ebp + 12 ]                                    ;0x006911e4 :        ff750c
             call  BeginUpdateResourceA                        ;0x006911e7 :        ff1564719100
             mov edi , eax                                                   ;0x006911ed :        8bf8
             cmp edi , ebx                                                   ;0x006911ef :        3bfb
             je Label69123c                                                  ;0x006911f1 :        7449
             push  dword ptr [ ebp + 16 ]                                    ;0x006911f3 :        ff7510
             push  dword ptr [esi]                                           ;0x006911f6 :        ff36
             pushd 0409h                                                     ;0x006911f8 :        6809040000
             pushd 01h                                                       ;0x006911fd :        6a01
             pushd 010h                                                      ;0x006911ff :        6a10
             push edi                                                        ;0x00691201 :        57
             call  UpdateResourceA                             ;0x00691202 :        ff1560719100
             push ebx                                                        ;0x00691208 :        53
             push edi                                                        ;0x00691209 :        57
             call  EndUpdateResourceA                          ;0x0069120a :        ff155c719100
             mov ecx , esi                                                   ;0x00691210 :        8bce
             call Fun42c1e2                                                  ;0x00691212 :        e8cbafd9ff
             mov  esi , dword ptr [ ebp + 8 ]                                ;0x00691217 :        8b7508
             mov  ecx , dword ptr [esi]                                      ;0x0069121a :        8b0e
             mov  ecx , dword ptr [ecx]                                      ;0x0069121c :        8b09
             lea eax ,  dword ptr [ ebp + 0FFFFF6C8h ]                       ;0x0069121e :        8d85c8f6ffff
             call Fun41975b                                                  ;0x00691224 :        e83285d8ff
             lea eax ,  dword ptr [ ebp + 0FFFFF6C8h ]                       ;0x00691229 :        8d85c8f6ffff
             push eax                                                        ;0x0069122f :        50
             push esi                                                        ;0x00691230 :        56
             lea esi ,  dword ptr [ ebp + 0FFFFF7D0h ]                       ;0x00691231 :        8db5d0f7ffff
             call Fun686e46                                                  ;0x00691237 :        e80a5cffff

     Label69123c ::
             pop edi                                                         ;0x0069123c :        5f

     Label69123d ::


     ;
     ;                 -------------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE LARGE ADDRESS AWARE MODE OF THE COMPILED EXECUTABLE FILES
     ;                                  August 2026
     ;                 -------------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; The large address aware mode of the compiled executable files.
     ;
     ; 2026/8/5, by ccb
     ;

             push dword ptr vfpa_sys9212_data
             push dword ptr [ ebp + 12 ]
             call vfpa_updatelargeaddressawaremode


             mov  ecx , dword ptr [ ebp - 4 ]                                ;0x0069123d :        8b4dfc
             pop esi                                                         ;0x00691240 :        5e
             pop ebx                                                         ;0x00691241 :        5b
             call Fun42bf1d                                                  ;0x00691242 :        e8d6acd9ff
             leave                                                           ;0x00691247 :        c9
             ret 0Ch                                                         ;0x00691248 :        c20c00


4. APPLIES TO:

     VFP 10 (VFP Advanced)


5. REFERENCE WEBSITES:

     1, baiyujia.com:
     http://www.baiyujia.com
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix426.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix12.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix127.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix128.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix129.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix130.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix245.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix246.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix289.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix290.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix322.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix323.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix397.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix420.asp
     http://www.baiyujia.com/vfpdocuments/f_vfp9fix421.asp

     2, microsoft.com:
     https://learn.microsoft.com/en-us/cpp/build/reference/largeaddressaware-handle-large-addresses?view=msvc-170


6. OTHER:

     For reference only, there is no guarantees.

     Any questions or suggestions, please send me an email at ccb2000@163.com.