mirror of
https://github.com/FDOS/kernel.git
synced 2025-04-08 17:15:17 +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;
|
||||
}
|
||||
|
||||
/* 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
|
||||
struct dpb FAR * GetDriveDPB(UBYTE drive, COUNT * rc)
|
||||
{
|
||||
struct dpb FAR *dpb;
|
||||
struct cds FAR *cdsp;
|
||||
|
||||
cdsp = get_cds(drive == 0 ? default_drive : drive - 1);
|
||||
cdsp = get_cds1(drive);
|
||||
|
||||
if (cdsp == NULL)
|
||||
{
|
||||
@ -736,12 +744,9 @@ UWORD DosGetFree(UBYTE drive, UWORD * navc, UWORD * bps, UWORD * nc)
|
||||
COUNT rg[4];
|
||||
UWORD spc;
|
||||
|
||||
/* next - "log" in the drive */
|
||||
drive = (drive == 0 ? default_drive : drive - 1);
|
||||
|
||||
/* first check for valid drive */
|
||||
spc = -1;
|
||||
cdsp = get_cds(drive);
|
||||
cdsp = get_cds1(drive);
|
||||
|
||||
if (cdsp == NULL)
|
||||
return spc;
|
||||
@ -897,7 +902,7 @@ COUNT DosGetCuDir(UBYTE drive, BYTE FAR * s)
|
||||
|
||||
/* next - "log" in the drive */
|
||||
/* first check for valid drive */
|
||||
cdsp = get_cds(drive == 0 ? default_drive : drive - 1);
|
||||
cdsp = get_cds1(drive);
|
||||
if (cdsp == NULL)
|
||||
return DE_INVLDDRV;
|
||||
|
||||
|
@ -118,6 +118,7 @@ int idx_to_sft_(int SftIndex);
|
||||
sft FAR *idx_to_sft(int SftIndex);
|
||||
int get_sft_idx(UCOUNT hndl);
|
||||
struct cds FAR *get_cds(unsigned dsk);
|
||||
struct cds FAR *get_cds1(unsigned dsk);
|
||||
COUNT DosTruename(const char FAR * src, char FAR * dest);
|
||||
|
||||
/* dosidle.asm */
|
||||
|
@ -233,15 +233,6 @@ void child_psp(seg para, seg cur_psp, int psize)
|
||||
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,
|
||||
BYTE FAR * fnam)
|
||||
{
|
||||
@ -295,11 +286,11 @@ set_name:
|
||||
pspmcb->m_name[i] = '\0';
|
||||
|
||||
/* return value: AX value to be passed based on FCB values */
|
||||
return chkdrv(psp->ps_fcb1.fcb_drive) |
|
||||
(chkdrv(psp->ps_fcb2.fcb_drive) << 8);
|
||||
return (get_cds1(psp->ps_fcb1.fcb_drive) ? 0 : 0xff) |
|
||||
(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 *q = MK_FP(cu_psp, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user