#include /* Convert a normal asciz string to MSDOS/CPM FCB format. Make the filename portion 8 characters, extention 3 maximum. Supports wildcards, skips drive specs. */ void cvt_to_fcb(inname,outname) char *inname; char outname[]; { char c; int i; if (inname[1] == ':') inname= &inname[2]; for (i= 0; i < 11; i++) outname[i]= ' '; /* clear out name, */ cvt2(inname,outname,8); /* do name portion, */ while (*inname) { /* skip to dot, if any */ if (*inname++ == '.') break; } cvt2(inname,&outname[8],3); /* do extention, */ } /* Do part of a name. */ static cvt2(inname,outname,n) char *inname,*outname; int n; { int i; for (i= 0; i < n; i++) { /* NAME PART */ if (*inname == '\0') /* if null, */ break; /* quit, */ else if (*inname == '*') /* if *, fill with ?, */ outname[i]= '?'; else if (*inname == '.') /* if a dot, */ break; /* skip to extention, */ else { outname[i]= toupper(*inname); ++inname; } } }