INT 21 U - DOS 4+ internal - GET/SET DISK SERIAL NUMBER
AH = 69h
AL = subfunction
00h get serial number
01h set serial number
BL = drive (0=default, 1=A, 2=B, etc)
DS:DX -> disk info (see below)
Return: CF set on error
AX = error code (see AH=59h)
CF clear if successful
AX destroyed
(AL = 00h) buffer filled with appropriate values from extended BPB
(AL = 01h) extended BPB on disk set to values from buffer
Notes:  does not generate a critical error; all errors are returned in AX
error 0005h given if no extended BPB on disk
does not work on network drives (error 0001h)
buffer after first two bytes is exact copy of bytes 27h thru 3Dh of
extended BPB on disk
this function is supported under Novell NetWare versions 2.0A through
3.11; the returned serial number is the one a DIR would display,
the volume label is the NetWare volume label, and the file system
is set to "FAT16".

Format of disk info:
Offset  Size    Description
00h    WORD    info level (zero)
02h    DWORD   disk serial number (binary)
06h 11 BYTEs   volume label or "NO NAME    " if none present
11h  8 BYTEs   (AL=00h only) filesystem type--string "FAT12   " or "FAT16   "

See also: 21440D

2169 - DOS 4+ internal - GET/SET DISK SERIAL NUMBER