---------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE DEFAULT VALUE FOR THE SET ODOMETER COMMAND
January 2025
---------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), the default value is 100 records for the SET ODOMETER command,
now the default value is 10000 records for the SET ODOMETER command.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun52c83b :: ; proc near
push ebp ;0x0052c83b : 55
lea ebp , dword ptr [ esp - 120 ] ;0x0052c83c : 8d6c2488
sub esp , 0708h ;0x0052c840 : 81ec08070000
mov eax , dword ptr [ Data937090 ] ;0x0052c846 : a190709300
push ebx ;0x0052c84b : 53
mov ebx , dword ptr [ Data9393ac ] ;0x0052c84c : 8b1dac939300
mov dword ptr [ ebp + 116 ] , eax ;0x0052c852 : 894574
mov al , byte ptr [ebx] ;0x0052c855 : 8a03
movzx eax , al ;0x0052c857 : 0fb6c0
inc ebx ;0x0052c85a : 43
dec eax ;0x0052c85b : 48
cmp eax , 094h ;0x0052c85c : 3d94000000
push esi ;0x0052c861 : 56
push edi ;0x0052c862 : 57
mov dword ptr [ Data9393ac ] , ebx ;0x0052c863 : 891dac939300
ja Label52c900 ;0x0052c869 : 0f8791000000
movzx eax ,byte ptr [ eax + offset Data52c918 ] ;0x0052c86f : 0fb68018c95200
jmp dword ptr [ 4 * eax + offset DataPtr52c6d3 ] ;0x0052c876 : ff2485d3c65200
Label52c900 ::
xor eax , eax ;0x0052c900 : 33c0
lea esp , dword ptr [ ebp + 0FFFFF964h ] ;0x0052c902 : 8da564f9ffff
mov ecx , dword ptr [ ebp + 116 ] ;0x0052c908 : 8b4d74
call Fun42bf1d ;0x0052c90b : e80df6efff
pop edi ;0x0052c910 : 5f
pop esi ;0x0052c911 : 5e
pop ebx ;0x0052c912 : 5b
add ebp , 078h ;0x0052c913 : 83c578
leave ;0x0052c916 : c9
ret ;0x0052c917 : c3
Label5e1bb7 ::
inc ebx ;0x005e1bb7 : 43
cmp byte ptr [ebx] , 0FEh ;0x005e1bb8 : 803bfe
mov dword ptr [ Data9393ac ] , ebx ;0x005e1bbb : 891dac939300
jne Label5e1bd2 ;0x005e1bc1 : 750f
;
; ----------------------------------------------------------------------
; VFP 9.0 FIX - THE DEFAULT VALUE FOR THE SET ODOMETER COMMAND
; May 2021
; ----------------------------------------------------------------------
; CCB
;
; In vfp9, the default value is 100 records for the SET ODOMETER command,
; now the default value is 10000 records for the SET ODOMETER command.
;
; 2021/5/18, by ccb
;
; mov dword ptr [ Data945444 ] , 064h ;0x005e1bc3 : c7054454940064000000
mov dword ptr [ Data945444 ] , 02710h ;0x005e1bc3 : c7054454940064000000
jmp Label52c900 ;0x005e1bcd : e92eadf4ff
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_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
http://www.baiyujia.com/vfpdocuments/f_vfp9fix281.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|