fix: correction d'un bogue dans la fonction verifysector et prise en compte du flag equal a la sortie du pilote
This commit is contained in:
parent
4a8effdfde
commit
2dbdb9c4c8
|
@ -36,15 +36,23 @@ noerrorint:
|
|||
itsok:
|
||||
push bp
|
||||
mov bp,sp ;On prend sp dans bp pour adresser la pile
|
||||
pushf
|
||||
jnc noerror ;La fonction appelée a renvoyer une erreur : Flag CARRY ?
|
||||
or byte ptr [bp+6],1b;Si oui on le retranscrit sur le registre FLAG qui sera dépilé lors du IRET
|
||||
;xor eax,eax
|
||||
;mov ax,cs ;On récupère le segment et l'offset puis en renvoie l'adresse physique
|
||||
;shl eax,4 ;de l'erreur.
|
||||
;add ax,cs:current
|
||||
jmp endofint ;on termine l'int
|
||||
jmp endofscan ;on termine l'int
|
||||
noerror:
|
||||
and byte ptr [bp+6],0FEh;Si pas d'erreur on efface le Bit CARRY du FLAG qui sera dépilé lors du IRET
|
||||
endofscan:
|
||||
popf
|
||||
jne noequal
|
||||
or byte ptr [bp+6],1000000b
|
||||
jmp endofint
|
||||
noequal:
|
||||
and byte ptr [bp+6],0BFh
|
||||
endofint:
|
||||
pop bp
|
||||
sti ;On réactive les interruptions logiciellement
|
||||
|
@ -53,7 +61,7 @@ endofint:
|
|||
current dw 0 ;Mot temporaire qui contient l'adresse de la fonction appelée
|
||||
tables dw readsector
|
||||
dw writesector
|
||||
dw verifysector2
|
||||
dw verifysector
|
||||
dw initdrive
|
||||
dw loadfile
|
||||
dw compressrle
|
||||
|
@ -901,13 +909,6 @@ invert:
|
|||
pop cx si
|
||||
ret
|
||||
|
||||
VerifySector2:
|
||||
call verifysector
|
||||
jne nook
|
||||
or byte ptr [bp+6],10b
|
||||
nook:
|
||||
ret
|
||||
|
||||
;=============DecompressRle (Fonction 05H)==============
|
||||
;decompress ds:si en es:di taille bp d‚compress‚ cx compress‚
|
||||
;-> AH=5
|
||||
|
|
Loading…
Reference in New Issue