ºó¾àÇÑ »ç¿îµå ¶óÀ̺귯¸®¸¦ º¸ÃæÇϱâ À§ÇØ ±â´ÉÀ» ÅëÇÕÇÑ
beep() ÇÔ¼ö¸¦ ¼Ò°³ÇÕ´Ï´Ù.

±×¸®°í, Turbo-C 2.0¿¡´Â ²Ï ¸¹Àº ¹ö±×°¡ ÀÖ½À´Ï´Ù.
Delay() ÇÔ¼ö¿¡µµ ¹®Á¦°¡ Àִµ¥,
±× ¹®Á¦Á¡À» º¸¿ÏÇÏ´Â ¹æ¹ýÀ» ¾Æ·¡¿¡ ¼³¸íÇØ ³õ¾Ò½À´Ï´Ù.

void beep(unsigned long hz,unsigned long ti)
/* sound(), delay(), nosound() ÇÔ¼ö¸¦ ÅëÇÕ °³¼±ÇÑ °Í */
/* (hz)HzÀÇ À½À» ti/1000 ÃÊ µ¿¾È Áö¼Ó               */ 
{
   unsigned long start;
   start=biostime(0,0);      /* start¿¡ ½ÃÀÛ ½Ã°£ ±â·Ï */                 
   sound(hz);                /* (hz)HzÀÇ ¼Ò¸®¸¦ ¹ß»ý   */  
   while (((biostime(0,0)-start)*10000)<(ti*182)) {};  
   /* ÁÖ¾îÁø ½Ã°£¸¸Å­ ±â´Ù¸®´Â ºÎºÐ */
   nosound();                /* ¼Ò¸®¹ß»ý ÁßÁö */
}

(¼³¸í)

Turbo-C¿¡¼­ À½¾Ç±â´ÉÀ» À§ÇØ ÁغñµÈ ÇÔ¼ö´Â sound(),
delay(), nosound() 3°³

sound(100); -> 100HzÀÇ ¼Ò¸®¸¦ ½ºÇÇÄ¿¸¦ ÅëÇØ ¹ß»ý

delay(100); -> 100ms (¾à 0.1ÃÊ)¸¦ ±â´Ù¸°´Ù.

* delay()ÇÔ¼öÀÇ ¹®Á¦Á¡ :

1.¿¹¸¦ µé¾î delay(100); ¸í·É¿¡¼­ 100msÀÌ»óÀÇ ½Ã°£ ¼Ò¿ä.
±× Èķδ Á¦´ë·Î ÀÛµ¿

2.CPU ¼º´É¿¡ µû¶ó Áö¿¬µÇ´Â ½Ã°£ÀÌ ´Ù¸£´Ù.
Áï CPU°¡ ºü¸£¸é Áö¿¬µÇ´Â ½Ã°£ÀÌ ÁÙ¾îµç´Ù.

* ÇØ°áÃ¥ :

1.ÇÁ·Î±×·¥ÀÇ Ã³À½¿¡ delay(0); ¸í·ÉÀ» Çϳª ÁÖ¸é µÈ´Ù.
ÀÌ ¸í·Éµµ ¾ó¸¶°£ÀÇ ½Ã°£À» Áö¿¬½ÃŲ´Ù.
±×·¡¼­ »õ·Î¿î ÇÔ¼ö¸¦ ¸¸µé¾î ¾´´Ù.

while(((biostime(0,0)-start)/18.2)<(ti/1000)) {};

biostime()Àº ½Ã°£À» ÃøÁ¤ÇÏ´Â ÇÔ¼öÀε¥ ¿ì¼± start º¯¼ö¿¡
±×¶§ÀÇ ½Ã°£ÀÌ ±â·ÏµÇ°í ±× ½Ã°£¿¡¼­ ÇöÀç½Ã°£À» »« °ÍÀÌ
ti º¯¼ö³»¿ë°ú °°À» ¶§±îÁö ¼øÈ¯À» ¹Ýº¹ÇÏ´Â °ÍÀÌ ÀÌ
ÇÁ·Î±×·¥ÀÇ °ñ°Ý

biostime()¿¡¼­ ¾²´Â ´ÜÀ§´Â ÃøÁ¤µÈ ½Ã°£,Áï ÇöÀç ½Ã°£¿¡¼­
start¸¦ »« °ÍÀ» 18.2·Î ³ª´©¾î¾ß¸¸ ÃÊ´ÜÀ§·Î µÈ´Ù.
¶Ç ti º¯¼ö·Î ¿À´Â ³»¿ëÀ» ÃÊ´ÜÀ§·Î ¹Ù²Ù¾î ÁÖ±â À§ÇØ
1000À» ³ª´©¾î ÁÖ¾ú´Ù.

* ÇÁ·Î±×·¥À» ÀÛ°Ô ¸¸µéÀÚ :

´ÙÀ½ µÎ ÁÙÀ» ºñ±³ÇØ º¸ÀÚ.
ù°ÁÙÀº ½Ç¼ö ¿¬»êÀÌ µé¾î°¡´Âµ¥ ºñÇØ µÑ°ÁÙÀº
Á¤¼ö¿¬»ê »ÓÀÌ´Ù.
À̰ÍÀ» ´õ¿í ¸¹ÀÌ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ ¼ÓÀÇ ³ª´°¼ÀÀ»
Á¤¼ö¿¬»êÀ» ÀÌ¿ëÇÑ ÇÔ¼ö·Î Á÷Á¢ ¸¸µé ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
¹°·Ð ½Ç¼ö¿¬»êº¸´Ù´Â Á¤¼ö¿¬»ê ÂÊÀÌ Å©±âµµ ÀÛ¾ÆÁö°í
¼Óµµµµ ´õ ºü¸£´Ù.

while(((biostime(0,0)-start)/18.2)<(ti/1000)) {}; /* ½Ç¼ö¿¬»ê ÀÌ¿ë */

while (((biostime(0,0)-start)*10000)<(ti*182)) {}; /* Á¤¼ö¿¬»ê¸¸ ÀÌ¿ë */

2.CPU¼º´É¿¡ »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ½Ã°£À» Áö¿¬½ÃŰ´Â
ÇÔ¼ö¸¦ »õ·Î Á¦ÀÛ

void wait(unsigned int sec)
/* CPU ¼º´É¿¡ °ü°è¾øÀÌ ÀÏÁ¤ÇÑ ½Ã°£(sec/1000ÃÊ)      */
/* µ¿¾È Áö¿¬½ÃŰ´Â ÇÔ¼ö                             */
/* delay() ÇÔ¼ö´Â CPU¼Óµµ¿¡ µû¶ó Áö¿¬½Ã°£ÀÌ Æ²¸®´Ù. */
{
   long clk;

   clk=(65536L*(long)sec)/5000L;
   while(clk > 0) {
      while(inportb(0x61) & 0x10);   /* inport(port); port·ÎºÎÅÍ 1¹ÙÀÌÆ®¸¦ ÀоîµéÀδÙ. */ 
      while(!(inportb(0x61) & 0x10));
      clk--;
   }
}

* °¢ À½°è¿¡ ÇØ´çÇÏ´Â Á֯ļö = 16.35*2^(À½Á¤/12+¿ÁŸºê)

¿ÁŸºê

0

1

2

3

4

5

6

7

(µµ) C

16.4

32.7

65.4

130.8

261.6

523.3

1046.5

2093.0

C#

17.3

34.6

69.3

138.6

277.2

554.4

1108.7

2217.5

(·¹) D

18.4

36.7

73.4

146.8

293.7

587.3

1174.7

2349.3

D#

19.4

38.9

77.8

155.6

311.1

622.3

1244.5

2489.0

(¹Ì) E

20.6

41.2

82.4

164.8

329.6

659.3

1318.5

2637.0

(ÆÄ) F

21.8

43.7

87.3

174.6

349.2

698.5

1396.9

2793.8

F#

23.1

46.2

92.5

185.0

370.0

740.0

1480.0

2960.0

(¼Ö) G

24.5

49.0

98.0

196.0

392.0

784.0

1568.0

3136.0

G#

26.0

51.9

103.8

207.7

415.3

830.6

1661.2

3322.5

(¶ó) A

27.5

55.0

110.0

220.0

440.0

880.0

1760.0

3520.0

A#

29.1

58.3

116.5

233.1

466.2

932.3

1864.7

3729.3

(½Ã) B

30.9

61.7

123.5

246.9

493.9

987.8

1975.5

3951.1