mirror of https://github.com/FDOS/kernel.git
Small cleanups; initialize a VDISK in inithma.c.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@409 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
e77a22ead9
commit
31661b437d
|
@ -581,8 +581,10 @@ void DosDefinePartition(struct DriveParamS *driveParam,
|
|||
pddt->ddt_WriteVerifySupported = driveParam->WriteVerifySupported;
|
||||
pddt->ddt_ncyl = driveParam->chs.Cylinder;
|
||||
|
||||
#ifdef DEBUG
|
||||
if (pddt->ddt_LBASupported)
|
||||
DebugPrintf(("LBA enabled for drive %c:\n", 'A' + nUnits));
|
||||
#endif
|
||||
|
||||
pddt->ddt_offset = StartSector;
|
||||
|
||||
|
@ -761,8 +763,8 @@ ErrorReturn:
|
|||
converts physical into logical representation of partition entry
|
||||
*/
|
||||
|
||||
ConvPartTableEntryToIntern(struct PartTableEntry * pEntry,
|
||||
UBYTE FAR * pDisk)
|
||||
BOOL ConvPartTableEntryToIntern(struct PartTableEntry * pEntry,
|
||||
UBYTE FAR * pDisk)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -797,7 +799,7 @@ ConvPartTableEntryToIntern(struct PartTableEntry * pEntry,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
ScanForPrimaryPartitions(struct DriveParamS * driveParam, int scan_type,
|
||||
BOOL ScanForPrimaryPartitions(struct DriveParamS * driveParam, int scan_type,
|
||||
struct PartTableEntry * pEntry, ULONG startSector,
|
||||
int partitionsToIgnore, int extendedPartNo)
|
||||
{
|
||||
|
@ -1249,7 +1251,7 @@ void ReadAllPartitionTables(void)
|
|||
setvec(0x1e, (intvec)int1e_table);
|
||||
|
||||
/* Setup media info and BPBs arrays for floppies */
|
||||
for (Unit = 0; Unit < nUnits; Unit++)
|
||||
for (Unit = 0; Unit < 2; Unit++)
|
||||
{
|
||||
pddt = DynAlloc("ddt", 1, sizeof(ddt));
|
||||
|
||||
|
@ -1267,6 +1269,9 @@ void ReadAllPartitionTables(void)
|
|||
fmemcpy(&pddt->ddt_bpb, &pddt->ddt_defbpb, sizeof(bpb));
|
||||
}
|
||||
|
||||
/* Initial number of disk units */
|
||||
nUnits = 2;
|
||||
|
||||
/*
|
||||
this is a quick patch - see if B: exists
|
||||
test for A: also, need not exist
|
||||
|
@ -1364,9 +1369,6 @@ COUNT dsk_init()
|
|||
/* Reset the drives */
|
||||
BIOS_drive_reset(0);
|
||||
|
||||
/* Initial number of disk units */
|
||||
nUnits = 2;
|
||||
|
||||
ReadAllPartitionTables();
|
||||
|
||||
return nUnits;
|
||||
|
|
|
@ -87,6 +87,7 @@ VOID ASMCFUNC FAR _DisableA20(VOID);
|
|||
void FAR * ASMCFUNC DetectXMSDriver(VOID);
|
||||
int ASMCFUNC init_call_XMScall(void FAR * driverAddress, UWORD ax,
|
||||
UWORD dx);
|
||||
STATIC void InstallVDISK(void);
|
||||
|
||||
#ifdef DEBUG
|
||||
#ifdef __TURBOC__
|
||||
|
@ -239,14 +240,19 @@ int MoveKernelToHMA()
|
|||
DosLoadedInHMA = TRUE;
|
||||
}
|
||||
|
||||
/* report the fact we are running high thorugh int 21, ax=3306 */
|
||||
/*
|
||||
on finalize, will install a VDISK
|
||||
*/
|
||||
|
||||
InstallVDISK();
|
||||
|
||||
/* report the fact we are running high through int 21, ax=3306 */
|
||||
version_flags |= 0x10;
|
||||
|
||||
return TRUE;
|
||||
|
||||
}
|
||||
|
||||
/* not necessary anymore : BO */
|
||||
/*
|
||||
now protect against HIMEM/FDXMS/... by simulating a VDISK
|
||||
FDXMS should detect us and not give HMA access to ohers
|
||||
|
@ -254,8 +260,7 @@ int MoveKernelToHMA()
|
|||
|
||||
so: we install this after all drivers have been loaded
|
||||
*/
|
||||
#if 0
|
||||
void InstallVDISK(VOID)
|
||||
STATIC void InstallVDISK(void)
|
||||
{
|
||||
static struct { /* Boot-Sektor of a RAM-Disk */
|
||||
UBYTE dummy1[3]; /* HIMEM.SYS uses 3, but FDXMS uses 2 */
|
||||
|
@ -278,38 +283,12 @@ void InstallVDISK(VOID)
|
|||
|
||||
if (!DosLoadedInHMA)
|
||||
return;
|
||||
if (HMAclaimed)
|
||||
return;
|
||||
|
||||
fmemcpy(MK_FP(0xffff, 0x0010), &VDISK_BOOT_SEKTOR,
|
||||
sizeof(VDISK_BOOT_SEKTOR));
|
||||
|
||||
setvec(0x19, MK_FP(0xffff, 0x0010)); /* let INT 19 point to VDISK */
|
||||
|
||||
*(WORD FAR *) MK_FP(0xffff, 0x002e) = 1024 + 64;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
this should be called, after each device driver
|
||||
has been loaded with FALSE
|
||||
and on finished CONFIG processing with TRUE.
|
||||
|
||||
will try to grab HMA;
|
||||
|
||||
on finalize, will install a VDISK
|
||||
*/
|
||||
|
||||
#if 0 /* not necessary anymore */
|
||||
|
||||
void HMAconfig(int finalize)
|
||||
{
|
||||
ClaimHMA();
|
||||
|
||||
if (finalize)
|
||||
InstallVDISK();
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
this allocates some bytes from the HMA area
|
||||
|
@ -346,7 +325,6 @@ void MoveKernel(unsigned NewKernelSegment)
|
|||
UBYTE FAR *HMASource;
|
||||
unsigned len;
|
||||
|
||||
int3();
|
||||
if (CurrentKernelSegment == 0)
|
||||
CurrentKernelSegment = FP_SEG(_HMATextEnd);
|
||||
|
||||
|
|
|
@ -39,15 +39,15 @@ UWORD init_oem(void)
|
|||
{
|
||||
UWORD top_k = 0;
|
||||
|
||||
#ifndef __TURBOC__
|
||||
#ifdef __TURBOC__
|
||||
__int__(0x12);
|
||||
top_k = _AX;
|
||||
#elif defined(I86)
|
||||
asm
|
||||
{
|
||||
int 0x12;
|
||||
mov top_k, ax;
|
||||
}
|
||||
#else
|
||||
__int__(0x12);
|
||||
top_k = _AX;
|
||||
#endif
|
||||
return top_k;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue