[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]
{
checking for drive ready?
Here's something that I fiddled arround. It is still noisy but
thought you may want to see it.
}
uses
Crt, Dos;
function DriveReady(Drive : Byte) : Boolean; assembler;
{ a=0, b=1, etc. Shouldn't work at all on hard drives !! }
var
Buffer : array[1..512] of Byte;
N : Byte;
asm
mov [N],3 { retry 3 times }
@10:
mov ax,$0401
mov cx,$0001
mov dh,$00
mov dl,[Drive]
push ss
pop es
lea bx,[Buffer]
int $13
mov al,FALSE
jnc @20
dec [N]
jnz @10
jmp @30
@20:
or ah,ah
jnz @30
mov al,TRUE
@30:
end;
begin
ClrScr;
repeat
writeln(^G'Drive Ready = ', DriveReady(0));
Mem[$40:$40]:=255;
Delay(2000);
until (KeyPressed);
Mem[$40:$40]:=1; { shut motors }
end.
[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]