#ifndef __conio_h
   #if __IBMC__ || __IBMCPP__
      #pragma info(none)
      #ifndef __CHKHDR__
         #pragma info(none)
      #endif
      #pragma info(restore)
   #endif

   #define __conio_h

   #ifdef __cplusplus
      extern "C" {
   #endif

   #ifndef _LNK_CONV
      #if __IBMC__ || __IBMCPP__ || defined(_OPTLINK_SUPPORTED)
         #define _LNK_CONV _Optlink
      #else
         #define _LNK_CONV
      #endif
   #endif

   #ifndef _IMPORT
      #ifdef __IMPORTLIB__
         #define _IMPORT _Import
      #else
         #define _IMPORT
      #endif
   #endif

   /********************************************************************/
   /*  <conio.h> Header File                                           */
   /*  IBM C and C++ Compilers for OS/2, AIX and for Windows NT,       */
   /*  Version 3.6                                                     */
   /*  Licensed Material - Property of IBM                             */
   /*  (C) Copyright IBM Corp. 1991, 1997. All rights reserved         */
   /*                                                                  */
   /********************************************************************/

   #if __EXTENDED__

      extern char *_IMPORT _LNK_CONV _cgets(char *);
      extern int   _IMPORT _LNK_CONV _cprintf(const char *, ...);
      extern int   _IMPORT _LNK_CONV _cputs(const char *);
      extern int   _IMPORT _LNK_CONV _cscanf(const char *, ...);
      extern int   _IMPORT _LNK_CONV _getch(void);
      extern int   _IMPORT _LNK_CONV _getche(void);
      extern int   _IMPORT _LNK_CONV _kbhit(void);
      extern int   _IMPORT _LNK_CONV _putch(int);
      extern int   _IMPORT _LNK_CONV _ungetch(int);

      #if __THW_INTEL__ && !defined __builtin_h
         int            _Builtin __inpb(const unsigned int);
         unsigned short _Builtin __inpw(const unsigned int);
         unsigned long  _Builtin __inpd(const unsigned int);
         int            _Builtin __outpb(const unsigned int, const int);
         unsigned short _Builtin __outpw(const unsigned int, const unsigned short);
         unsigned long  _Builtin __outpd(const unsigned int, const unsigned long);

         #define _inp(__x)         __inpb(__x)
         #define _inpw(__x)        __inpw(__x)
         #define _inpd(__x)        __inpd(__x)
         #define _outp(__x, __y)   __outpb(__x, __y)
         #define _outpw(__x, __y)  __outpw(__x, __y)
         #define _outpd(__x, __y)  __outpd(__x, __y)
      #endif

      #define cgets(a)       _cgets(a)
      #define cprintf        _cprintf
      #define cputs(a)       _cputs(a)
      #define cscanf         _cscanf
      #define getch          _getch
      #define getche         _getche
      #define kbhit          _kbhit
      #define putch(a)       _putch(a)
      #define ungetch(a)     _ungetch(a)

   #endif

   #ifdef __cplusplus
      }
   #endif

   #if __IBMC__ || __IBMCPP__
      #pragma info(none)
      #ifndef __CHKHDR__
         #pragma info(restore)
      #endif
      #pragma info(restore)
   #endif

#endif

