home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / slfinsta.zip / uac_sys.c < prev    next >
C/C++ Source or Header  |  2000-03-26  |  3KB  |  99 lines

  1. /* $Id: uac_sys.c,v 1.1 2000/03/27 04:52:59 ktk Exp $ */
  2.  
  3. /* ------------------------------------------------------------------------ */
  4. /*                                                                          */
  5. /*      Some basic things.                                                  */
  6. /*                                                                          */
  7. /* ------------------------------------------------------------------------ */
  8.  
  9. #include "os.h"
  10.  
  11. #include <signal.h>  // signal()
  12. #include <stdio.h>   // fprintf() fflush() getch() putc()
  13.  
  14. #include "globals.h"
  15. #include "uac_sys.h"
  16.  
  17.  
  18. void memset16(USHORT * dest, SHORT val, INT len)  // fills short-array with
  19. {                                                 // value
  20.    while (len--)
  21.       *(dest++) = val;
  22. }
  23.  
  24. INT  cancel(void)               // checks whether to interrupt the program
  25. {
  26. #ifdef DOS
  27.    while (kbhit())
  28.    {
  29.       if (getch() == 27)
  30.          f_err = ERR_USER;
  31.    }
  32. #endif
  33.    return (f_err);
  34. }
  35.  
  36. /*INT  wrask(CHAR * s)            // prompt-routine
  37. {
  38.    INT  ch;
  39.  
  40.    fprintf(stderr, "\n %s (Yes,Always,No,Cancel) ", s);
  41.    fflush(stderr);
  42.    do
  43.    {
  44.       ch = getch();
  45.       ch = upcase(ch);
  46.    }
  47.    while (ch != 'Y' && ch != 'A' && ch != 'N' && ch != 'C' && ch != 27);
  48.    fprintf(stderr, "%s", ch == 'Y' ? "Yes" : (ch == 'A' ? "Always" : (ch == 'N' ? "No" : "Cancel")));
  49.    fflush(stderr);
  50.    return (ch == 'Y' ? 0 : (ch == 'A' ? 1 : (ch == 'N' ? 2 : 3)));
  51. } */
  52.  
  53. void beep(void)                           // makes some noise
  54. {
  55. #ifdef DOS
  56.    sound(800);
  57.    delay(250);
  58.    nosound();
  59. #endif
  60. #ifdef AMIGA
  61.    putc(0x07, stderr);
  62. #endif
  63. }
  64.  
  65. void my_signalhandler(INT sig_number)     // sets f_err if ctrl+c or ctrl+brk
  66. {
  67.    f_err = ERR_USER;
  68.    error("\nUser break\n");
  69. }
  70.  
  71. #ifdef DOS                                // handles hardware errors
  72. #ifdef __BORLANDC__
  73. INT harderrhandler(UINT deverr, UINT errc, UINT * devhdr)
  74. #else
  75. INT __far harderrhandler(UINT deverr, UINT errc, UINT * devhdr)
  76. #endif
  77. {
  78.    f_criterr = 'A' + deverr & 0xff;
  79.    f_err = ERR_OTHER;
  80.    return (0x3);
  81. }
  82. #endif
  83.  
  84. void set_handler(void)                    // initializes handlers
  85. {
  86. #if defined(DOS) && !defined(__BORLANDC__)
  87.    signal(SIGBREAK, my_signalhandler);    // set ctrl-break/-c handlers
  88. #endif
  89.    signal(SIGINT, my_signalhandler);
  90. #if defined(DOS) && !defined(__CONSOLE__) // set hardware error handler
  91. #ifdef __BORLANDC__
  92.    harderr(harderrhandler);
  93. #else
  94.    _harderr(harderrhandler);
  95. #endif
  96. #endif
  97. }
  98.  
  99.