fix: correction d'un bogue dans l'implémentation de la fonction "verifysector" (inverse)

This commit is contained in:
Nicolas Hordé 2007-03-25 00:13:54 +00:00
parent 1f1e1628b1
commit def6ea675d
1 changed files with 10 additions and 8 deletions

View File

@ -818,6 +818,7 @@ endp getserial
;<- Flag Carry si erreur, Flag Equal si secteurs égaux
;=======================================
PROC verifysector FAR
ARG @sector:word
USES ecx,si,di,ds,es
push cs
pop es
@ -825,17 +826,17 @@ PROC verifysector FAR
pop ds
mov si,offset bufferread
call readsector,cx,si
call @@inverse
call inverse
call writesector,cx,si
jc @@errorverify
mov si,offset bufferwrite
call readsector,cx,si
call @@inverse
call inverse
jc @@errorverify
mov si,offset bufferread
call @@inverse
call inverse
call writesector,cx,si
jc @@errorverify
@ -849,18 +850,19 @@ PROC verifysector FAR
@@errorverify:
ret
@@inverse:
push si cx
endp verifysector
inverse:
push si cx
xor cx,cx
@@invert:
invert:
not [dword ptr si]
add si,4
add cx,4
cmp cx,[cs:myboot.sectorsize]
jb @@invert
jb invert
pop cx si
ret
endp verifysector
;=============DecompressRle (Fonction 05H)==============
;decompress ds:si en es:di taille bp dcompress cx compress