#include "adisk.h"
#include "defines.h"
#include <string.h>

unchar *fd_path(unchar *path)
/* pathの先頭に0:〜3:によるドライブ指定があるとき、それをＦＤの実ドライブに変換する */
/* 4:〜9:による指定があるときは、それをＲＡＭＤＩＳＫの実ドライブに変換する */
/* 変更後のパス名を返す */
{
static unchar path0[MAXPATH];
unchar c;
int drv;
	c=path[0];
	if (path[1]==':' && (c>='0' && c<='9')) {
		strcpy(path0,path);
		drv=(c>='4'? get_ramdisk(c-'4'):get_2hd(c-'0',0));
		if (drv!=0) {
			/* ドライブ名が正常なときはドライブ名を書き換える */
			path0[0]='A'-1+drv;
			return(path0);
		}
		/* 通常、ドライブ名は0:〜3:に限定している以上、正常のはずだが、
		   ＦＤが認識されていないときにエラーになるのでエラー判定している。
		   ＲＡＭＤＩＳＫも同様。
		*/
	}
	return(path);
}

#if 0
main()
{
	printf("0:disk-0 = ");
	printf(fd_path("0:disk-0\n"));
	printf("2:disk-2 = ");
	printf(fd_path("2:disk-2\n"));
	printf("4:ramdisk1 = ");
	printf(fd_path("5:ramdisk1\n"));
	printf("5:ramdisk2 = ");
	printf(fd_path("6:ramdisk2\n"));
}
#endif
