home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_02_01 / 2n01066a < prev    next >
Text File  |  1990-12-02  |  4KB  |  172 lines

  1.  
  2. #if defined(__ZTC__)
  3.  #include <int.h>
  4.  #undef int_on
  5.  #undef int_off
  6. #elif defined(__TURBOC__)
  7.  #define int_on         enable
  8.  #define int_off        disable
  9.  #ifndef inp
  10.   #define inp           inportb
  11.  #endif
  12.  #ifndef outp
  13.   #define outp          outportb
  14.  #endif
  15. #else /* assume MSC/QC */
  16.  #include <conio.h>
  17.  #define int_on         _enable
  18.  #define int_off        _disable
  19.  #define getvect        _dos_getvect
  20.  #define setvect        _dos_setvect
  21. #endif
  22.  
  23. /* defines for mktone() update parameter: */
  24.  
  25. #define ON 0          /* turn the speaker on */
  26. #define UPDATE 1      /* sound is on, just change freq */
  27. #define TOGGLE 2      /* for delay use, turn on, then off */
  28.  
  29. /* port equates */
  30.  
  31. #define SCNTRL 0x61   /* sound control port */
  32. #define SOUNDON 0x03  /* bit mask to enable speaker */
  33. #define SOUNDOFF 0xfc /* bit mask to disable speaker */
  34. #define C8253 0x43    /* port address to control 8253 */
  35. #define SETIMER 0xb6  /* tell 8253 to expect freq data next */
  36. #define F8253 0x42    /* frequency address on 8253 */
  37.  
  38. /* frequency equates (muscical scale) */
  39. /* digit in label is octave number, S indicates Sharp (#) */
  40.  
  41. #define C0      36489
  42. #define CS0     34445
  43. #define D0      32512
  44. #define DS0     30673
  45. #define E0      28961
  46. #define F0      27329
  47. #define FS0     25804
  48. #define G0      24351
  49. #define GS0     22981
  50. #define A0      21694
  51. #define AS0     20473
  52. #define B0      19326
  53.  
  54. #define C1      18244
  55. #define CS1     17218
  56. #define D1      16251
  57. #define DS1     15340
  58. #define E1      14480
  59. #define F1      13668
  60. #define FS1     12899
  61. #define G1      12175
  62. #define GS1     11493
  63. #define A1      10847
  64. #define AS1     10238
  65. #define B1      9663
  66.  
  67. #define C2      9121
  68. #define CS2     8609
  69. #define D2      8126
  70. #define DS2     7670
  71. #define E2      7239
  72. #define F2      6833
  73. #define FS2     6450
  74. #define G2      6088
  75. #define GS2     5746
  76. #define A2      5424
  77. #define AS2     5119
  78. #define B2      4832
  79.  
  80. #define C3      4561
  81. #define CS3     4305
  82. #define D3      4063
  83. #define DS3     3835
  84. #define E3      3620
  85. #define F3      3417
  86. #define FS3     3225
  87. #define G3      3044
  88. #define GS3     2873
  89. #define A3      2712
  90. #define AS3     2560
  91. #define B3      2416
  92.  
  93. #define C4      2280
  94. #define CS4     2152
  95. #define D4      2032
  96. #define DS4     1917
  97. #define E4      1810
  98. #define F4      1708
  99. #define FS4     1612
  100. #define G4      1522
  101. #define GS4     1437
  102. #define A4      1356
  103. #define AS4     1280
  104. #define B4      1210
  105.  
  106. #define C5      1140
  107. #define CS5     1076
  108. #define D5      1016
  109. #define DS5     959
  110. #define E5      905
  111. #define F5      854
  112. #define FS5     806
  113. #define G5      761
  114. #define GS5     718
  115. #define A5      678
  116. #define AS5     640
  117. #define B5      604
  118.  
  119. #define C6      570
  120. #define CS6     538
  121. #define D6      508
  122. #define DS6     479
  123. #define E6      449
  124. #define F6      427
  125. #define FS6     403
  126. #define G6      380
  127. #define GS6     359
  128. #define A6      339
  129. #define AS6     320
  130. #define B6      302
  131.  
  132. #define C7      285
  133. #define CS7     269
  134. #define D7      254
  135. #define DS7     240
  136. #define E7      226
  137. #define F7      214
  138. #define FS7     202
  139. #define G7      190
  140. #define GS7     180
  141. #define A7      169
  142. #define AS7     160
  143. #define B7      151
  144.  
  145. #define C8      143
  146.  
  147. #define REST    0
  148.  
  149. typedef struct
  150. {
  151.         unsigned int      freq;
  152.         unsigned int      duration;
  153. } NOTE;
  154.  
  155. #if __cplusplus
  156.  extern "C" {
  157. #endif
  158.  
  159. void    mktone(int, int, unsigned),
  160.         dosound(int),
  161.         soundon(void),
  162.         soundoff(void),
  163.         playb_close(void);
  164.  
  165. int     playb_note(unsigned, unsigned);
  166.  
  167. NOTE   *playb_open(unsigned);
  168.  
  169. #if __cplusplus
  170.  }
  171. #endif
  172.