[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]

    {
    From: regis@alpha2.csd.uwm.edu (Joseph William Metcalf)

    There are been a couple posts looking for a way to read the device name for
    CD audio play functions, so here it is (tested under TP7):
    }

    type DRIVELIST=Record
                   unitcode:byte;
                   doffset,dsegment:word;
                   end;

    var
      CDDL:DriveList;

    function GetDriverName:string;
    var
      CDNTemp:array[1..18] of byte;
      where:pointer;
      count:byte;
      CDSTemp:string[8];
    begin
      asm
        mov ax,1501h
        mov bx,OFFSET CDDL
        mov dx,SEG CDDL
        mov es,dx
        int 2fh
      end;
      where:=ptr(CDDL.dsegment,CDDL.doffset);
      move(where^,CDNTEMP,18);
      count:=1;
      repeat
        CDStemp[count]:=chr(cdntemp[10+count]);
        inc(count);
      until (count>8) or (cdntemp[10+count]=32);
      cdstemp[0]:=chr(count-1);
     getdrivername:=cdstemp;
    end;
    {
    This uses the MSCDEX function 1501h (Int 2fh) to read the drivelist and
    segment/offset of the device driver header. Device name is 10 bytes into the
    header, max 8 characters, padded with spaces if the name is less than 8
    characters.
    }
    begin
      Writeln(GetDriverName);
    end.

[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]