|
|
|
@ -1,80 +1,73 @@
|
|
|
|
|
.model tiny |
|
|
|
|
.386c |
|
|
|
|
.code |
|
|
|
|
model tiny,stdcall |
|
|
|
|
p586N |
|
|
|
|
locals |
|
|
|
|
jumps |
|
|
|
|
codeseg |
|
|
|
|
option procalign:byte |
|
|
|
|
|
|
|
|
|
include "..\include\mem.h" |
|
|
|
|
include "..\include\divers.h" |
|
|
|
|
|
|
|
|
|
org 0h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include ..\include\mem.h |
|
|
|
|
|
|
|
|
|
start: |
|
|
|
|
header exe <,1,0,,,offset imports,,> |
|
|
|
|
header exe <"CE",1,0,0,,offset imports,,offset realstart> |
|
|
|
|
|
|
|
|
|
realstart: |
|
|
|
|
mov ah,28h |
|
|
|
|
int 47h |
|
|
|
|
push offset msg |
|
|
|
|
call [print] |
|
|
|
|
mov bp,1000h |
|
|
|
|
xor di,di |
|
|
|
|
xor cx,cx |
|
|
|
|
xor edx,edx |
|
|
|
|
VerifAll: |
|
|
|
|
mov ah,1 |
|
|
|
|
int 16h |
|
|
|
|
jz nokey |
|
|
|
|
cmp al,' ' |
|
|
|
|
je enend |
|
|
|
|
call [savestate] |
|
|
|
|
call [print],offset msg |
|
|
|
|
mov bp,1000h |
|
|
|
|
xor di,di |
|
|
|
|
xor cx,cx |
|
|
|
|
xor edx,edx |
|
|
|
|
verifall: |
|
|
|
|
mov ah,1 |
|
|
|
|
int 16h |
|
|
|
|
jz nokey |
|
|
|
|
cmp al,' ' |
|
|
|
|
je enend |
|
|
|
|
nokey: |
|
|
|
|
mov dx,di |
|
|
|
|
push edx |
|
|
|
|
mov dx,cx |
|
|
|
|
inc dx |
|
|
|
|
push edx |
|
|
|
|
mov ax,cx |
|
|
|
|
inc ax |
|
|
|
|
mov si,100 |
|
|
|
|
mul si |
|
|
|
|
mov si,2880 |
|
|
|
|
div si |
|
|
|
|
mov dx,ax |
|
|
|
|
push edx |
|
|
|
|
push offset msg2 |
|
|
|
|
call [print] |
|
|
|
|
call gauge |
|
|
|
|
mov ah,2 |
|
|
|
|
int 48h |
|
|
|
|
jc errors |
|
|
|
|
je noprob |
|
|
|
|
inc di |
|
|
|
|
mov dx,di |
|
|
|
|
push edx |
|
|
|
|
mov dx,cx |
|
|
|
|
inc dx |
|
|
|
|
push edx |
|
|
|
|
mov ax,cx |
|
|
|
|
inc ax |
|
|
|
|
mov si,100 |
|
|
|
|
mul si |
|
|
|
|
mov si,2880 |
|
|
|
|
div si |
|
|
|
|
mov dx,ax |
|
|
|
|
push edx |
|
|
|
|
call [print],offset msg2 |
|
|
|
|
call gauge |
|
|
|
|
call [verifysector],cx |
|
|
|
|
jc errors |
|
|
|
|
je noprob |
|
|
|
|
inc di |
|
|
|
|
noprob: |
|
|
|
|
inc cx |
|
|
|
|
cmp cx,2880 |
|
|
|
|
jnz verifall |
|
|
|
|
enend: |
|
|
|
|
cmp di,0 |
|
|
|
|
je noatall |
|
|
|
|
push offset error2 |
|
|
|
|
call [print] |
|
|
|
|
jmp someof |
|
|
|
|
inc cx |
|
|
|
|
cmp cx,2880 |
|
|
|
|
jnz verifall |
|
|
|
|
enend: |
|
|
|
|
cmp di,0 |
|
|
|
|
je noatall |
|
|
|
|
call [print],offset error2 |
|
|
|
|
jmp someof |
|
|
|
|
noatall: |
|
|
|
|
push offset noerror |
|
|
|
|
call [print] |
|
|
|
|
call [print],offset noerror |
|
|
|
|
someof: |
|
|
|
|
mov ah,0 |
|
|
|
|
int 16h |
|
|
|
|
mov ah,29h |
|
|
|
|
int 47H |
|
|
|
|
retf |
|
|
|
|
mov ah,0 |
|
|
|
|
int 16h |
|
|
|
|
call [restorestate] |
|
|
|
|
retf |
|
|
|
|
errors: |
|
|
|
|
push offset error |
|
|
|
|
call [print] |
|
|
|
|
mov ah,0 |
|
|
|
|
int 16h |
|
|
|
|
mov ah,29h |
|
|
|
|
int 47H |
|
|
|
|
retf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
call [print],offset error |
|
|
|
|
mov ah,0 |
|
|
|
|
int 16h |
|
|
|
|
call [restorestate] |
|
|
|
|
retf |
|
|
|
|
|
|
|
|
|
error db '\g10,10Erreur avec le lecteur de disquette !',0 |
|
|
|
|
error2 db '\g10,10Le disque est defectueux, appuyez sur une touche pour quitter',0 |
|
|
|
@ -83,31 +76,31 @@ msg db '\m02\e\c07\g29,00- Test de surface du disque -\g02,49<Pressez espace pou
|
|
|
|
|
msg2 db '\g10,20%u %%\g10,16%u cluster testes. \h34%u cluster defectueux. ',0 |
|
|
|
|
|
|
|
|
|
gauge: |
|
|
|
|
push ax dx |
|
|
|
|
mov ax,cx |
|
|
|
|
mul sizeof |
|
|
|
|
div max |
|
|
|
|
xor edx,edx |
|
|
|
|
mov dx,sizeof |
|
|
|
|
sub dx,ax |
|
|
|
|
push dx |
|
|
|
|
push 'Û' |
|
|
|
|
mov dx,ax |
|
|
|
|
push dx |
|
|
|
|
push 'Û' |
|
|
|
|
push offset gauges |
|
|
|
|
call [print] |
|
|
|
|
pop dx ax |
|
|
|
|
retn |
|
|
|
|
push ax dx |
|
|
|
|
mov ax,cx |
|
|
|
|
mul [sizeof] |
|
|
|
|
div [max] |
|
|
|
|
xor edx,edx |
|
|
|
|
mov dx,[sizeof] |
|
|
|
|
sub dx,ax |
|
|
|
|
push dx |
|
|
|
|
push 'Û' |
|
|
|
|
mov dx,ax |
|
|
|
|
push dx |
|
|
|
|
push 'Û' |
|
|
|
|
push offset gauges |
|
|
|
|
call [print] |
|
|
|
|
pop dx ax |
|
|
|
|
retn |
|
|
|
|
|
|
|
|
|
max dw 2879 |
|
|
|
|
sizeof dw 50 |
|
|
|
|
|
|
|
|
|
gauges db '\g10,18\c05%cM\c07%cM',0 |
|
|
|
|
|
|
|
|
|
imports: |
|
|
|
|
db "VIDEO.LIB::print",0 |
|
|
|
|
print dd 0 |
|
|
|
|
dw 0 |
|
|
|
|
|
|
|
|
|
End Start |
|
|
|
|
importing |
|
|
|
|
use VIDEO.LIB,print |
|
|
|
|
use VIDEO,savestate |
|
|
|
|
use VIDEO,restorestate |
|
|
|
|
use DISQUE,verifysector |
|
|
|
|
endi |
|
|
|
|