#include <iostream>
#include "dio/dap.hxx"
const char *szDev = "/dev/isio/0";
#if defined(MMSYS_linux)
#include <fcntl.h>
#include <unistd.h>
int kbhit()
{
struct timeval tv = { 0L, 0L };
fd_set fds;
FD_ZERO(&fds);
FD_SET(0, &fds);
return select(1, &fds, NULL, NULL, &tv);
}
#else
#include <conio.h>
int kbhit() { return _kbhit(); }
#endif
int main(int argc, char **argv) {
if (1) {
if (argc >= 2) {
szDev=argv[1];
}
std::cout << "initializing " << szDev << std::endl;
if (!dio) {
std::cerr << "error initializing " << szDev << ": " << dio << std::endl;
return 2;
}
Umi::RunIo urn;
dio.
initDinoUser(
"dio", &dp);
if (OA == Dino::bhNil) goto lErr;
if (OB == Dino::bhNil) goto lErr;
if (IB == Dino::bhNil) goto lErr;
if (IA == Dino::bhNil) {
lErr:
std::cerr << "error: " << *pdp << std::endl;
return 2;
}
pdp->clrBit(OB);
while (!kbhit()) {
pdp->
setBit(OA, !pdp->
getBit(OA));
pdp->setBit(OB, !pdp->getBit(OB));
std::cerr << pdp->
isBit(IA) <<
" " << pdp->isBit(IB) << std::endl;
}
}
return 0;
}