[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]
{
PETER KLAPPROTH
> If anyone happens to know how to find the serial number
> of a diskette, please let me know, code is nice :)
> It is stored in byte 42, 41, 40, and 39 (counting the first one as
> 0) of ths first sector of the disk. The code I have for it uses the
> TPro package to read the sector.
annother way to read/write the diskId is the following small peace of code.
}
type
TInfoBuffer = record
InfoLevel : word; {may be 0}
Serial : longInt;
VolLabel : array [0..10] of char;
FileSystem: array [0..7] of char;
end;
function GetSerial(DiskNum : Byte; var I : TInfoBuffer) : word; assembler;
asm
mov ah, 69h
mov al, 00h
mov bl, DiskNum
push ds
lds dx, I
int 21h
pop ds
jc @bad
Xor ax, ax
@bad:
end;
function SetSerial(DiskNum : Byte; var I : TInfoBuffer) : word; assembler;
asm
mov ah, 69h
mov al, 01h
mov bl, DiskNum
push ds
lds dx, I
int 21h
pop ds
jc @bad
xor ax, ax
@bad:
end;
[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]