mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-22 13:24:28 +02:00
Introduce get_cds1 to merge common code that checks for 0=default_drive,1=A,etc.
Make load_transfer() static. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1414 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
eb318177c1
commit
b10d86bcaa
@ -113,13 +113,21 @@ struct cds FAR *get_cds(unsigned drive)
|
|||||||
return cdsp;
|
return cdsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* same, but on input drv is 0 for default or 1=A, 2=B, etc. */
|
||||||
|
struct cds FAR *get_cds1(unsigned drv)
|
||||||
|
{
|
||||||
|
if (drv-- == 0) /* get default drive or convert to 0 = A:, 1 = B:, ... */
|
||||||
|
drv = default_drive;
|
||||||
|
return get_cds(drv);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef WITHFAT32
|
#ifdef WITHFAT32
|
||||||
struct dpb FAR * GetDriveDPB(UBYTE drive, COUNT * rc)
|
struct dpb FAR * GetDriveDPB(UBYTE drive, COUNT * rc)
|
||||||
{
|
{
|
||||||
struct dpb FAR *dpb;
|
struct dpb FAR *dpb;
|
||||||
struct cds FAR *cdsp;
|
struct cds FAR *cdsp;
|
||||||
|
|
||||||
cdsp = get_cds(drive == 0 ? default_drive : drive - 1);
|
cdsp = get_cds1(drive);
|
||||||
|
|
||||||
if (cdsp == NULL)
|
if (cdsp == NULL)
|
||||||
{
|
{
|
||||||
@ -736,12 +744,9 @@ UWORD DosGetFree(UBYTE drive, UWORD * navc, UWORD * bps, UWORD * nc)
|
|||||||
COUNT rg[4];
|
COUNT rg[4];
|
||||||
UWORD spc;
|
UWORD spc;
|
||||||
|
|
||||||
/* next - "log" in the drive */
|
|
||||||
drive = (drive == 0 ? default_drive : drive - 1);
|
|
||||||
|
|
||||||
/* first check for valid drive */
|
/* first check for valid drive */
|
||||||
spc = -1;
|
spc = -1;
|
||||||
cdsp = get_cds(drive);
|
cdsp = get_cds1(drive);
|
||||||
|
|
||||||
if (cdsp == NULL)
|
if (cdsp == NULL)
|
||||||
return spc;
|
return spc;
|
||||||
@ -897,7 +902,7 @@ COUNT DosGetCuDir(UBYTE drive, BYTE FAR * s)
|
|||||||
|
|
||||||
/* next - "log" in the drive */
|
/* next - "log" in the drive */
|
||||||
/* first check for valid drive */
|
/* first check for valid drive */
|
||||||
cdsp = get_cds(drive == 0 ? default_drive : drive - 1);
|
cdsp = get_cds1(drive);
|
||||||
if (cdsp == NULL)
|
if (cdsp == NULL)
|
||||||
return DE_INVLDDRV;
|
return DE_INVLDDRV;
|
||||||
|
|
||||||
|
@ -118,6 +118,7 @@ int idx_to_sft_(int SftIndex);
|
|||||||
sft FAR *idx_to_sft(int SftIndex);
|
sft FAR *idx_to_sft(int SftIndex);
|
||||||
int get_sft_idx(UCOUNT hndl);
|
int get_sft_idx(UCOUNT hndl);
|
||||||
struct cds FAR *get_cds(unsigned dsk);
|
struct cds FAR *get_cds(unsigned dsk);
|
||||||
|
struct cds FAR *get_cds1(unsigned dsk);
|
||||||
COUNT DosTruename(const char FAR * src, char FAR * dest);
|
COUNT DosTruename(const char FAR * src, char FAR * dest);
|
||||||
|
|
||||||
/* dosidle.asm */
|
/* dosidle.asm */
|
||||||
|
@ -233,15 +233,6 @@ void child_psp(seg para, seg cur_psp, int psize)
|
|||||||
p->ps_cmd.ctBuffer[0] = 0xd; /* command tail */
|
p->ps_cmd.ctBuffer[0] = 0xd; /* command tail */
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC UBYTE chkdrv(unsigned drive) /* from FCB: 0 = default, 1 = A:, ... */
|
|
||||||
{
|
|
||||||
if (drive)
|
|
||||||
drive--; /* 0 = A:, 1 = B:, ... */
|
|
||||||
else
|
|
||||||
drive = default_drive;
|
|
||||||
return get_cds(drive) ? 0 : 0xff; /* return 0 if drive is valid, else 0xff */
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC UWORD patchPSP(UWORD pspseg, UWORD envseg, exec_blk FAR * exb,
|
STATIC UWORD patchPSP(UWORD pspseg, UWORD envseg, exec_blk FAR * exb,
|
||||||
BYTE FAR * fnam)
|
BYTE FAR * fnam)
|
||||||
{
|
{
|
||||||
@ -295,11 +286,11 @@ set_name:
|
|||||||
pspmcb->m_name[i] = '\0';
|
pspmcb->m_name[i] = '\0';
|
||||||
|
|
||||||
/* return value: AX value to be passed based on FCB values */
|
/* return value: AX value to be passed based on FCB values */
|
||||||
return chkdrv(psp->ps_fcb1.fcb_drive) |
|
return (get_cds1(psp->ps_fcb1.fcb_drive) ? 0 : 0xff) |
|
||||||
(chkdrv(psp->ps_fcb2.fcb_drive) << 8);
|
(get_cds1(psp->ps_fcb2.fcb_drive) ? 0 : 0xff00);
|
||||||
}
|
}
|
||||||
|
|
||||||
int load_transfer(UWORD ds, exec_blk *exp, UWORD fcbcode, COUNT mode)
|
STATIC int load_transfer(UWORD ds, exec_blk *exp, UWORD fcbcode, COUNT mode)
|
||||||
{
|
{
|
||||||
psp FAR *p = MK_FP(ds, 0);
|
psp FAR *p = MK_FP(ds, 0);
|
||||||
psp FAR *q = MK_FP(cu_psp, 0);
|
psp FAR *q = MK_FP(cu_psp, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user