---------------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE DEFAULT VALUE FOR THE MVCOUNT TERM IN THE CONFIGURATION FILE
January 2025
---------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), the default value is 16384 for the MVCOUNT term in the configuration file,
now the default value is 32768 for the MVCOUNT term in the configuration file.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Func00352b :: ; proc near
push ebp ;0x0c00352b : 55
lea ebp , dword ptr [ esp + 0FFFFF3ECh ] ;0x0c00352c : 8dac24ecf3ffff
sub esp , 0C9Ch ;0x0c003533 : 81ec9c0c0000
mov eax , dword ptr [ Datac35ea80 ] ;0x0c003539 : a180ea350c
push ebx ;0x0c00353e : 53
push esi ;0x0c00353f : 56
push edi ;0x0c003540 : 57
push dword ptr [ Datac35ea7c ] ;0x0c003541 : ff357cea350c
mov dword ptr [ ebp + 0C10h ] , eax ;0x0c003547 : 8985100c0000
call dword ptr [ DataPtrc35ea70 ] ;0x0c00354d : ff1570ea350c
fld qword ptr [ Datac3492b8 ] ;0x0c003553 : dd05b892340c
mov edx , dword ptr [ Datac35d05c ] ;0x0c003559 : 8b155cd0350c
or ecx , 0FFFFFFFFh ;0x0c00355f : 83c9ff
xor ebx , ebx ;0x0c003562 : 33db
inc ebx ;0x0c003564 : 43
mov dword ptr [ eax + 0AC0h ] , ecx ;0x0c003565 : 8988c00a0000
mov dword ptr [ eax + 04EF0h ] , ebx ;0x0c00356b : 8998f04e0000
mov dword ptr [ eax + 04EB0h ] , 064h ;0x0c003571 : c780b04e000064000000
mov byte ptr [ eax + 04F54h ] , bl ;0x0c00357b : 8898544f0000
mov dword ptr [ eax + 108 ] , ebx ;0x0c003581 : 89586c
mov dword ptr [ eax + 04F20h ] , ecx ;0x0c003584 : 8988204f0000
mov dword ptr [ eax + 04F3Ch ] , ebx ;0x0c00358a : 89983c4f0000
mov dword ptr [ eax + 04F40h ] , ebx ;0x0c003590 : 8998404f0000
mov dword ptr [ eax + 04F44h ] , ebx ;0x0c003596 : 8998444f0000
mov dword ptr [ eax + 04F48h ] , ebx ;0x0c00359c : 8998484f0000
mov dword ptr [ eax + 04F5Ch ] , ebx ;0x0c0035a2 : 89985c4f0000
mov dword ptr [ eax + 04F60h ] , ebx ;0x0c0035a8 : 8998604f0000
mov dword ptr [ eax + 04F28h ] , ebx ;0x0c0035ae : 8998284f0000
mov dword ptr [ eax + 051E4h ] , ecx ;0x0c0035b4 : 8988e4510000
lea edi , dword ptr [ eax + 0520Ch ] ;0x0c0035ba : 8db80c520000
mov esi , offset Datac34e6fc ;0x0c0035c0 : befce6340c
movsw ;0x0c0035c5 : 66a5
movsb ;0x0c0035c7 : a4
fstp qword ptr [ eax + 04F68h ] ;0x0c0035c8 : dd98684f0000
xor esi , esi ;0x0c0035ce : 33f6
mov dword ptr [ eax + 08480h ] , edx ;0x0c0035d0 : 899080840000
pushd 026h ;0x0c0035d6 : 6a26
pop edx ;0x0c0035d8 : 5a
mov byte ptr [ eax + 06250h ] , 0FFh ;0x0c0035d9 : c68050620000ff
mov dword ptr [ eax + 0637Ch ] , 0363h ;0x0c0035e0 : c7807c63000063030000
mov dword ptr [ eax + 04F74h ] , esi ;0x0c0035ea : 89b0744f0000
mov byte ptr [ eax + 04F34h ] , 05Ah ;0x0c0035f0 : c680344f00005a
mov byte ptr [ eax + 04F35h ] , 03h ;0x0c0035f7 : c680354f000003
;
; ------------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE DEFAULT VALUE FOR THE MVCOUNT TERM IN THE CONFIGURATION FILE
; August 2023
; ------------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the default value is 16384 for the MVCOUNT term in the configuration file,
; now the default value is 32768 for the MVCOUNT term in the configuration file.
;
; 2023/8/7, by ccb
;
; mov dword ptr [ eax + 0AA8h ] , 04000h ;0x0c0035fe : c780a80a000000400000
mov dword ptr [ eax + 0AA8h ] , 08000h ;0x0c0035fe : c780a80a000000400000
mov dword ptr [ eax + 08354h ] , ecx ;0x0c003608 : 898854830000
mov dword ptr [ eax + 08358h ] , ebx ;0x0c00360e : 899858830000
mov dword ptr [ eax + 04F8Ch ] , 014Dh ;0x0c003614 : c7808c4f00004d010000
mov dword ptr [ eax + 064A8h ] , ecx ;0x0c00361e : 8988a8640000
mov dword ptr [ Datac35d058 ] , ebx ;0x0c003624 : 891d58d0350c
mov dword ptr [ eax + 06714h ] , edx ;0x0c00362a : 899014670000
mov dword ptr [ eax + 06718h ] , edx ;0x0c003630 : 899018670000
lea edx , dword ptr [ eax + 0677Ch ] ;0x0c003636 : 8d907c670000
mov dword ptr [ ebp + 0FFFFFF78h ] , eax ;0x0c00363c : 898578ffffff
mov dword ptr [ eax + 07B7Ch ] , edx ;0x0c003642 : 89907c7b0000
mov dword ptr [ eax + 07D28h ] , ecx ;0x0c003648 : 8988287d0000
mov dword ptr [ eax + 07D2Ch ] , ecx ;0x0c00364e : 89882c7d0000
mov dword ptr [ eax + 07D3Ch ] , 0140h ;0x0c003654 : c7803c7d000040010000
mov byte ptr [ eax + 07D40h ] , bl ;0x0c00365e : 8898407d0000
mov dword ptr [ eax + 07D44h ] , ebx ;0x0c003664 : 8998447d0000
mov dword ptr [ eax + 07D48h ] , ebx ;0x0c00366a : 8998487d0000
mov word ptr [ eax + 07D4Ch ] , 0409h ;0x0c003670 : 66c7804c7d00000904
mov dword ptr [ eax + 07D50h ] , 0409h ;0x0c003679 : c780507d000009040000
mov dword ptr [ eax + 07DF0h ] , 0186A1h ;0x0c003683 : c780f07d0000a1860100
mov dword ptr [ eax + 07D80h ] , 01F4h ;0x0c00368d : c780807d0000f4010000
mov dword ptr [ eax + 07D84h ] , esi ;0x0c003697 : 89b0847d0000
mov word ptr [ eax + 07DACh ] , bx ;0x0c00369d : 668998ac7d0000
mov word ptr [ eax + 07DAEh ] , si ;0x0c0036a4 : 6689b0ae7d0000
mov dword ptr [ eax + 07DB0h ] , 01388h ;0x0c0036ab : c780b07d000088130000
mov dword ptr [ eax + 07DB4h ] , 02710h ;0x0c0036b5 : c780b47d000010270000
mov dword ptr [ eax + 0830Ch ] , ebx ;0x0c0036bf : 89980c830000
mov dword ptr [ eax + 08308h ] , ebx ;0x0c0036c5 : 899808830000
call Func0036f8 ;0x0c0036cb : e828000000
cmp dword ptr [ Datac35d2e0 ] , esi ;0x0c0036d0 : 3935e0d2350c
jne Labelc0b1102 ;0x0c0036d6 : 0f8526da0a00
Labelc0036dc ::
mov ecx , dword ptr [ ebp + 0C10h ] ;0x0c0036dc : 8b8d100c0000
mov dword ptr [ Datac35d2e0 ] , ebx ;0x0c0036e2 : 891de0d2350c
call Func0224a0 ;0x0c0036e8 : e8b3ed0100
pop edi ;0x0c0036ed : 5f
pop esi ;0x0c0036ee : 5e
pop ebx ;0x0c0036ef : 5b
add ebp , 0C14h ;0x0c0036f0 : 81c5140c0000
leave ;0x0c0036f6 : c9
ret ;0x0c0036f7 : c3
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix11.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix174.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix175.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix176.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix234.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix280.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|