Each opendevice() must eventually be matched by a call to closedevice().
All I/O requests must be complete before closedevice().  if any requests
are still pending, abort them with abortio() and remove them with waitio().
    if (!(CheckIO(GameIO)))
        {
        AbortIO(GameIO);  /* Ask device to abort request, if pending */
        }
    WaitIO((GameIO);   /* Wait for abort, then clean up */
    CloseDevice(GameIO);