home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
s
/
snip1292.zip
/
SOUND.H
< prev
next >
Wrap
C/C++ Source or Header
|
1991-09-14
|
4KB
|
182 lines
/*
** SOUND.H
**
** Original Copyright 1988-1991 by Bob Stout as part of
** the MicroFirm Function Library (MFL)
**
** This subset version is functionally identical to the
** version originally published by the author in Tech Specialist
** magazine and is hereby donated to the public domain.
*/
#if defined(__ZTC__)
#include <int.h>
#undef int_on
#undef int_off
#elif defined(__TURBOC__)
#define int_on enable
#define int_off disable
#ifndef inp
#define inp inportb
#endif
#ifndef outp
#define outp outportb
#endif
#else /* assume MSC/QC */
#include <conio.h>
#define int_on _enable
#define int_off _disable
#define getvect _dos_getvect
#define setvect _dos_setvect
#endif
/* defines for mktone() update parameter: */
#define ON 0 /* turn the speaker on */
#define UPDATE 1 /* sound is on, just change freq */
#define TOGGLE 2 /* for delay use, turn on, then off */
/* port equates */
#define SCNTRL 0x61 /* sound control port */
#define SOUNDON 0x03 /* bit mask to enable speaker */
#define SOUNDOFF 0xfc /* bit mask to disable speaker */
#define C8253 0x43 /* port address to control 8253 */
#define SETIMER 0xb6 /* tell 8253 to expect freq data next */
#define F8253 0x42 /* frequency address on 8253 */
/* frequency equates (muscical scale) */
/* digit in label is octave number, S indicates Sharp (#) */
#define C0 36489
#define CS0 34445
#define D0 32512
#define DS0 30673
#define E0 28961
#define F0 27329
#define FS0 25804
#define G0 24351
#define GS0 22981
#define A0 21694
#define AS0 20473
#define B0 19326
#define C1 18244
#define CS1 17218
#define D1 16251
#define DS1 15340
#define E1 14480
#define F1 13668
#define FS1 12899
#define G1 12175
#define GS1 11493
#define A1 10847
#define AS1 10238
#define B1 9663
#define C2 9121
#define CS2 8609
#define D2 8126
#define DS2 7670
#define E2 7239
#define F2 6833
#define FS2 6450
#define G2 6088
#define GS2 5746
#define A2 5424
#define AS2 5119
#define B2 4832
#define C3 4561
#define CS3 4305
#define D3 4063
#define DS3 3835
#define E3 3620
#define F3 3417
#define FS3 3225
#define G3 3044
#define GS3 2873
#define A3 2712
#define AS3 2560
#define B3 2416
#define C4 2280
#define CS4 2152
#define D4 2032
#define DS4 1917
#define E4 1810
#define F4 1708
#define FS4 1612
#define G4 1522
#define GS4 1437
#define A4 1356
#define AS4 1280
#define B4 1210
#define C5 1140
#define CS5 1076
#define D5 1016
#define DS5 959
#define E5 905
#define F5 854
#define FS5 806
#define G5 761
#define GS5 718
#define A5 678
#define AS5 640
#define B5 604
#define C6 570
#define CS6 538
#define D6 508
#define DS6 479
#define E6 449
#define F6 427
#define FS6 403
#define G6 380
#define GS6 359
#define A6 339
#define AS6 320
#define B6 302
#define C7 285
#define CS7 269
#define D7 254
#define DS7 240
#define E7 226
#define F7 214
#define FS7 202
#define G7 190
#define GS7 180
#define A7 169
#define AS7 160
#define B7 151
#define C8 143
#define REST 0
typedef struct
{
unsigned int freq;
unsigned int duration;
} NOTE;
#if __cplusplus
extern "C" {
#endif
void mktone(int, int, unsigned),
dosound(int),
soundon(void),
soundoff(void),
playb_close(void);
int playb_note(unsigned, unsigned);
NOTE *playb_open(unsigned);
#if __cplusplus
}
#endif