netcall debug
This commit is contained in:
24
netcall.c
24
netcall.c
@@ -54,24 +54,38 @@ int redir_device_drive(int devicetyp, uint8 *devname, uint8 *remotename)
|
|||||||
{
|
{
|
||||||
REGS regs;
|
REGS regs;
|
||||||
SREGS sregs;
|
SREGS sregs;
|
||||||
int result;
|
|
||||||
uint8 buff1[16];
|
uint8 buff1[16];
|
||||||
uint8 buff2[128];
|
uint8 buff2[128];
|
||||||
uint8 *ldevname = buff1;
|
uint8 *ldevname = buff1;
|
||||||
uint8 *lremotename = buff2;
|
uint8 *lremotename = buff2;
|
||||||
strncpy(ldevname, devname, 16);
|
|
||||||
|
memset(®s, 0, sizeof(regs));
|
||||||
|
memset(&sregs, 0, sizeof(sregs));
|
||||||
|
memset(buff1, 0, sizeof(buff1));
|
||||||
|
memset(buff2, 0, sizeof(buff2));
|
||||||
|
|
||||||
|
strmaxcpy(ldevname, devname, sizeof(buff1) - 1);
|
||||||
|
|
||||||
regs.x.ax = (devicetyp == -1) ? 0x5f04 : 0x5f03;
|
regs.x.ax = (devicetyp == -1) ? 0x5f04 : 0x5f03;
|
||||||
regs.h.bl = (uint8)devicetyp;
|
regs.h.bl = (uint8)devicetyp;
|
||||||
regs.x.cx = 0x574e; /* user sign 'NW' */
|
regs.x.cx = 0x574e; /* user sign 'NW' */
|
||||||
sregs.ds = FP_SEG(ldevname);
|
sregs.ds = FP_SEG(ldevname);
|
||||||
regs.x.si = FP_OFF(ldevname);
|
regs.x.si = FP_OFF(ldevname);
|
||||||
|
|
||||||
if (devicetyp > -1) {
|
if (devicetyp > -1) {
|
||||||
strncpy(lremotename, remotename, 128);
|
strmaxcpy(lremotename, remotename, sizeof(buff2) - 1);
|
||||||
sregs.es = FP_SEG(lremotename);
|
sregs.es = FP_SEG(lremotename);
|
||||||
regs.x.di = FP_OFF(lremotename);
|
regs.x.di = FP_OFF(lremotename);
|
||||||
}
|
}
|
||||||
result = intdosx(®s, ®s, &sregs);
|
|
||||||
return(regs.x.cflag ? -result : 0);
|
intdosx(®s, ®s, &sregs);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the actual DOS/redirector error code from AX when carry is set.
|
||||||
|
* The old code returned the intdosx() function result. With OpenWatcom
|
||||||
|
* this can hide which redirector error happened.
|
||||||
|
*/
|
||||||
|
return(regs.x.cflag ? -(int)regs.x.ax : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int list_redir(int index, int *devicetyp, uint8 *devname, uint8 *remotename)
|
int list_redir(int index, int *devicetyp, uint8 *devname, uint8 *remotename)
|
||||||
|
|||||||
Reference in New Issue
Block a user