66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/*
|
|||
|
|
P_DLIST.C
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include <plib.h>
|
||
|
|
|
||
|
|
LOCAL_C TEXT *GetTypeText(UINT type)
|
||
|
|
{
|
||
|
|
switch (type)
|
||
|
|
{
|
||
|
|
case P_FMEDIA_FLOPPY:
|
||
|
|
return "Floppy";
|
||
|
|
case P_FMEDIA_HARDDISK:
|
||
|
|
return "Hard";
|
||
|
|
case P_FMEDIA_FLASH:
|
||
|
|
return "Flash";
|
||
|
|
case P_FMEDIA_RAM:
|
||
|
|
return "RAM";
|
||
|
|
case P_FMEDIA_ROM:
|
||
|
|
return "ROM";
|
||
|
|
case P_FMEDIA_WRITEPROTECTED:
|
||
|
|
return "Protected";
|
||
|
|
}
|
||
|
|
return "Unknown";
|
||
|
|
}
|
||
|
|
|
||
|
|
LOCAL_C VOID ListDevices(VOID)
|
||
|
|
{
|
||
|
|
VOID *ncb,*dcb;
|
||
|
|
INT ret;
|
||
|
|
TEXT device[P_FNAMESIZE];
|
||
|
|
TEXT bb[E_MAX_ERROR_TEXT_SIZE];
|
||
|
|
P_DINFO dinfo;
|
||
|
|
|
||
|
|
p_printf(" Device Name Type Size Free");
|
||
|
|
p_printf("=========== ========== ========== ======== ========");
|
||
|
|
p_open(&ncb,"FIL:",P_FNODE);
|
||
|
|
while (!p_iow(ncb,P_FREAD,&device[0],NULL))
|
||
|
|
{
|
||
|
|
p_scat(&device[0],"a:\\");
|
||
|
|
if (p_open(&dcb,&device[0],P_FDEVICE))
|
||
|
|
continue;
|
||
|
|
while (!p_read(dcb,&device[P_FSYSNAMESIZE],0))
|
||
|
|
{
|
||
|
|
if ((ret=p_dinfo(&device[0],&dinfo))<0)
|
||
|
|
{
|
||
|
|
p_errs(&bb[0],ret);
|
||
|
|
p_printf("%- 12s %- 12s<%s>",&device[0],"**Failed**",&bb[0]);
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
p_printf("%- 12s %- 12s%- 11s %7ldK %7ldK",
|
||
|
|
&device[0],&dinfo.name[0],GetTypeText(dinfo.mediatype&0xff),
|
||
|
|
(dinfo.size+512)>>10,(dinfo.free+512)>>10);
|
||
|
|
}
|
||
|
|
p_close(dcb);
|
||
|
|
}
|
||
|
|
p_close(ncb);
|
||
|
|
}
|
||
|
|
|
||
|
|
GLDEF_C INT main(VOID)
|
||
|
|
{
|
||
|
|
ListDevices();
|
||
|
|
p_getch();
|
||
|
|
return(0);
|
||
|
|
}
|