home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cdisk.zip
/
VDD
/
PIOIN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-02-24
|
952b
|
48 lines
/* pioin.c */
#include "mvdm.h" /* VDH services, etc. */
#include "pio.h"
#include "basemid.h"
/* PIO specific */
#pragma alloc_text(CSWAP_TEXT,PIODataIn,RequestDirect)
extern IOH Ioh;
/* entry from data input trap in VDM */
BYTE HOOKENTRY PIODataIn(ULONG portaddr, PCRF pcrf)
{
BYTE dataread; /* set up byte to return */
VdhInt3();
RequestDirect();
/* disable I/O trap */
VDHSetIOHookState(current_VDM,DIGIO_BASE,3,&Ioh,0);
dataread = inp(portaddr);
return(dataread); /* return data read */
}
BOOL HOOKENTRY RequestDirect(void)
{
if (owner_VDM != current_VDM)
{
if (owner_VDM !=0)
{
VDHPopup(0,0,MSG_DEVICE_IN_USE,&Resp,ABORT,0);
if (Resp != ABORT)
{
VDHKillVDM(current_VDM);
owner_VDM = current_VDM;
}
}
else
owner_VDM = current_VDM;
}
}