From Tom: must set r_bpfat for C_BLDBPB, otherwise USBASPI.SYS, DI1000DD.SYS

won't like us. From Lucho: use DiskTransferBuffer for deblock_buf.


git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@943 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2004-05-23 15:10:08 +00:00
parent de5bed6d28
commit 24d27f2f9b
4 changed files with 7 additions and 2 deletions

View File

@ -1714,12 +1714,11 @@ STATIC void config_init_buffers(int wantedbuffers)
else
{
LoL->bufloc = LOC_HMA;
LoL->deblock_buf = KernelAlloc(SEC_SIZE, 'B', 0);
/* space in HMA beyond requested buffers available as user space */
firstAvailableBuf = pbuffer + wantedbuffers;
}
}
LoL->deblock_buf = DiskTransferBuffer;
LoL->firstbuf = pbuffer;
DebugPrintf(("init_buffers (size %u) at", sizeof(struct buffer)));

View File

@ -2085,6 +2085,9 @@ STATIC int rqblockio(unsigned char command, struct dpb FAR * dpbp)
MediaReqHdr.r_command = command;
MediaReqHdr.r_mcmdesc = dpbp->dpb_mdb;
MediaReqHdr.r_status = 0;
if (command == C_BLDBPB) /* help USBASPI.SYS & DI1000DD.SYS (TE) */
MediaReqHdr.r_bpfat = (boot FAR *)DiskTransferBuffer;
execrh((request FAR *) & MediaReqHdr, dpbp->dpb_device);
if ((MediaReqHdr.r_status & S_ERROR) || !(MediaReqHdr.r_status & S_DONE))
{

View File

@ -336,6 +336,7 @@ extern UBYTE ASM BootDrive, /* Drive we came up from */
extern keyboard ASM kb_buf;
extern char ASM local_buffer[LINEBUFSIZE0A];
extern UBYTE DiskTransferBuffer[SEC_SIZE];
extern struct cds
ASM TempCDS;

View File

@ -271,6 +271,8 @@ extern UWORD DOSFAR LBA_WRITE_VERIFY;
/* floppy parameter table, at 70:xxxx */
extern unsigned char DOSTEXTFAR ASM int1e_table[0xe];
extern char DOSTEXTFAR DiskTransferBuffer[SEC_SIZE]; /* in dsk.c */
struct RelocationTable {
UBYTE jmpFar;
UWORD jmpOffset;