рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреАрд╕реА-рд╕реНрдкреАрдХрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рди рдХреЗрд╡рд▓ рдиреЛрдЯреНрд╕ рдФрд░ рдореЛрдиреЛрдлреЛрдирд┐рдХ рд░рд┐рдВрдЧрдЯреЛрдиред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдЬрдм рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдерд╛ (рдбреЙрд╕ - рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП!) рдореБрдЭреЗ рдХреЛрдИ рдЬреНрдЮрд╛рди рдирд╣реАрдВ рдерд╛, рдХреЛрдИ рдпреЛрдЧреНрдпрддрд╛ рдирд╣реАрдВ рдереА, рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдерд╛ред рдмрд╛рдж рдореЗрдВ, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдбреАрдбреАрдХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдФрд░ QBASIC SOUND рдХреА рд╢реИрд▓реА рдореЗрдВ рдЪреБрдкрдЪрд╛рдк рдЪреАрдЦрд╝рддрд╛ рд░рд╣рд╛ред рд╣рд╛рдВ, рдФрд░ рд╕рд╛рдЙрдВрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрд╕реА-рд╕реНрдкреАрдХрд░ рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЧрдИ рд╣реИ, рдЧрд░реНрд╡ рд╕реНрдкреАрдХрд░ рдПрдХ рдмреАрдкрд░ рдФрд░ рдмрдЬрд░ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреАрд╕реА рд╕реЗ рдХрд╣реАрдВ рднреА рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реБрдЖ (рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╕рднреА рдбреНрд░рд╛рдЗрд╡реЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛), рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдЦреБрдж рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ред рддреЛ рдХреНрдпрд╛ рдЖрдзреБрдирд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдВрддрд░рд┐рдХреНрд╖ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреАрд╕реА-рд╕реНрдкреАрдХрд░ рдкрд░ рдкреЙрд▓реАрдлреЛрдирд┐рдХ рд░рд╛рдЧ рдпрд╛ рдЖрд╡рд╛рдЬ рдмрдЬрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдмреЗрд╢рдХ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╕реА рдФрд░ рд▓рд┐рдирдХреНрд╕ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдЯреЛрдкреА рдФрд░ рдЪрд╢реНрдореЗ рдореЗрдВ рдПрдХ
рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдорд░реНрдкрд┐рдд
, рд╕рднреА рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджрд┐рд╢рд╛ рдореЗрдВ рднреЗрдЬрдирд╛ (рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ,
рдбреЙрд╕рдмреЙрдХреНрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рд╡рдХреНрддрд╛ рдХреНрдпрд╛ рд╣реИ? рдЗрд╕ рдЙрдкрдХрд░рдг рдХреА рджреЛ рдЕрд╡рд╕реНрдерд╛рдПрдБ рд╣реИрдВ: рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж - рдЗрд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЭрд┐рд▓реНрд▓реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╢рд╛рдпрдж, рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдиреНрдп рд╕рдХреНрд░рд┐рдп рддрддреНрд╡) рдЬреЛ рдзреНрд╡рдирд┐ рдмрдирд╛рддрд╛ рд╣реИред рдЬреАрд╡рд╡рд┐рдЬреНрдЮрд╛рдирд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдорд╛рдирд╡ рд╕реБрдирд╡рд╛рдИ рдХреА рд╕реАрдорд╛ рд▓рдЧрднрдЧ 22KHz рдКрдкрд░ рдФрд░ 20Hz рдиреАрдЪреЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░, рд╡рдХреНрддрд╛ рдЕрдВрддрд░рд╛рд▓ рдЯрд╛рдЗрдорд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдзреНрд╡рдирд┐ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдЕрд╡рдзрд┐ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ (рдЯрд╛рдЗрдорд░ рд╕реАрдзреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ) рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдирдХреНрд╕ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП, рдиреЛрдЯ "рдЯреВ" рдкрд╣рд▓рд╛ рдСрдХреНрдЯреЗрд╡ рд╣реИ, рдЬреЛ 1 рд╕реЗрдХрдВрдб рддрдХ рдЪрд▓рддрд╛ рд╣реИ:
echo -en "\e[10;263;11;1000]\a" echo -en "\ec"
рджреВрд╕рд░рд╛
рдЗрдХреЛ рдХрдорд╛рдВрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╛рдЬреНрдп рдореЗрдВ рдЕрд╡рдзрд┐ рдФрд░ рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╕реНрдкреАрдХрд░ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 0x61 (рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ 61) рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд╢реВрдиреНрдп рдФрд░ рдкрд╣рд▓реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢реВрдиреНрдп рдмрд┐рдЯ: рд╕реНрдкреАрдХрд░ рдХреЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рдЯрд╛рдЗрдорд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдпрджрд┐ 1 рддреЛ рдпрд╣ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдмрд┐рдЯ: рд╕реНрдкреАрдХрд░ рд╕реНрдерд┐рддрд┐ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ - 1 рдЪрд╛рд▓реВ, 0 рдмрдВрджред рдпрд╣ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЕрдм, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдЦреЗрд▓рдирд╛ рд╣реИ, рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЦреЗрд▓реЗрдВрдЧреЗред рдкреНрд▓реЗрдмреИрдХ рдХреЗ рд▓рд┐рдП, рд╣рдо .WAV рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред .WAV рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╡рд┐рдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдпрд╣
рдкрд▓реНрд╕ рдХреЛрдб рдореЙрдбреБрд▓рди рдореЗрдВ рдбреЗрдЯрд╛ рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ ADC рд╕реЗ рджреА рдЧрдИ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА (рд╕реИрдВрдкрд▓рд┐рдВрдЧ рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА) рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрд╡рдирд┐ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рд╕рдордп рдореЗрдВ рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ рдкрд░ рдорд╛рддреНрд░рд╛ рд╣реИ, рдпрд╛ рдПрдХ рд╡рдХреНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЖрд░рд╛рдо рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЭрд┐рд▓реНрд▓реА рдХреА рд╕реНрдерд┐рддрд┐ред ADC рд╕реЗ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдзрд┐рдХрддрдо рдорд╛рди рдмрд┐рдЯ рд╕реНрдЯреНрд░реАрдо (рдмрд┐рдЯрд░реЗрдЯ) рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдореЗрдВ рд╕рднреА рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рдирдореВрдирд╛ рд╣реИред рдзреНрд╡рдирд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ
Kotelnikov рдХреЗ рдкреНрд░рдореЗрдп рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдмрд┐рдирд╛ рдиреБрдХрд╕рд╛рди рдХреЗ рдореВрд▓ рд▓рд╣рд░ (рдЙрдЪреНрдЪ рдирдореВрдирд╛ рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рдмрд┐рдЯрд╕реНрдЯреНрд░реАрдо) рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкреАрдХрд░ рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдмрд▓реНрдХрд┐, рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛ рддреЛ рд╕рдВрдкреВрд░реНрдг рд╡реЙрд▓реНрдпреВрдо (рдЪрд╛рд▓реВ) рдпрд╛ рдирд╣реАрдВ (рдмрдВрдж)ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдбреАрд╕реА рдорд╛рддреНрд░рд╛ рдХреЗ рдирдореВрдиреЗ рдореЗрдВ рднреА рдкрд░рд┐рдорд┐рдд рд╕рдЯреАрдХрддрд╛ рд╣реИ, "рдЧрд░реНрдо рдЯреНрдпреВрдм рдзреНрд╡рдирд┐" рдХрд╛ рдореВрд▓реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ (рдПрдмреНрд╕рд┐рд╕реНрд╕рд╛ рдЕрдХреНрд╖ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд▓рд╣рд░ рдХреА рдЧрддрд┐) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ: рдЖрдзрд╛ (рд╢реВрдиреНрдп) рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рдВрдЧрд▓-рдмрд╛рдЗрдЯ рдирдореВрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢реВрдиреНрдп 256/2 = 128 рд╣реЛрдЧрд╛ред 256 рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ 256 = 255 (0xFF, рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп) + 1. рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЖрдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ 2 рдмрд╛рдЗрдЯреНрд╕, рддрдм (65535 + 1) / 2 = 32768. рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рди рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВ, рдФрд░ рдЫреЛрдЯреЗ рд╕реЗ рдмрдбрд╝реЗ рддрдХ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдо рдореВрд▓реНрдп рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВ, рдФрд░ рдмрдбрд╝реЗ рд╕реЗ рдЫреЛрдЯреЗ рддрдХ рдШрдЯрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХрд▓-рдмрд╛рдЗрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ:
245 (ADC рдорд╛рди) => 117 = 245 - 128
93 (ADC рдорд╛рди) => -35 = 93 - 128
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд╕реНрдкреАрдХрд░ рдХреЛ рдХреЗрд╡рд▓ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╕реЗ рд╣рдо рдПрдХ рд╡рд░реНрдЧ рддрд░рдВрдЧ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд╣рд╛рдВ 1 рдорд╛рди рд╢реВрдиреНрдп рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ 0 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЖрдк
рдпрд╣рд╛рдВ рд╕реНрдкреАрдХрд░ рдХреЛ рдХреИрд╕реЗ рдЦреЗрд▓реЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдХрд▓реНрдкрдирд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рд╣рдо рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдореБрдЭреЗ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдЪреИрдирд▓ рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ рдкреНрд░рддрд┐ рдЪреИрдирд▓ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ (рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкреАрдХрд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЯ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдпрд╣ рдорд╛рди 32 рдЧреБрдирд╛ рдмреЗрдорд╛рдиреА рд╣реИ)ред рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рдореИрдВрдиреЗ рджреЛ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рджреЗрдЦреАрдВ:
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ - рдЬреИрд╕реЗ рдХрд┐ рдбреЙрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдерд╛, рдЙрд╕реА рд╣рдж рддрдХ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд┐рдирдХреНрд╕ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рд╕реБрдкрд░ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдпрд╛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП CAP_SYS_RAWIO рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ
ioperm рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрдХреЛ 0 рд╕реЗ 0x3FF рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╕рднреА рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╣рдо рдПрдХ рдФрд░ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ -
iopl , рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд╛рдж рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдкрд░ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪреЗрдВ, рдЕрд╕реЗрдВрдмрд▓рд░ рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдЖрд╡реЗрд╖рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рд▓рд┐рдЦ (рдЖрдЙрдЯ) рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) (рдмреА), рд╢рдмреНрдж (рдбрдмреНрд▓реНрдпреВ), рдбрдмрд▓ рд╢рдмреНрдж (рдПрд▓), рд▓рд╛рдЗрдиреЗрдВ (рдУрдВ), рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдкреЙрдЬ (_p) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред MAN рдкреГрд╖реНрда рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рдбрд░рд╛рд╡рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ
_p рдХреЗ рд╕рд╛рде
рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЖрдкрдХреЛ
0x80 рдкреЛрд░реНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкреЛрд░реНрдЯ рдкрд░ рдбреЗрдЯрд╛ рдмрд╛рдЗрдЯ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рд╣реЛрддреА рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ - рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬреЛ рдЙрд╕ рдорд╛рди рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 0x61 рдкреЛрд░реНрдЯ рдореЗрдВ рдерд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдмрд╛рдж рд░рд┐рдХрд╡рд░реА рдХреЗ рд▓рд┐рдП:
#define SPKPORT 0x61 static unsigned char old61 = 0; unsigned char out61 = 0; if (!ioperm(SPKPORT,1,1)){
рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдерд╛:
outb(old61,SPKPORT);
рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рд╕рдордп рдХреА рд╣реИред рд▓рд┐рдирдХреНрд╕ рдПрдХ рдмрд╣реБ-рдХрд╛рд░реНрдпрд╢реАрд▓ рдмрд╣реБ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдФрд░ рдХреЛрдИ рдПрдХ рд╕рдВрд╕рд╛рдзрди (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░) рдХреЗ рдПрдХрд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдзреНрд╡рдирд┐ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рд╣реИ (рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдПрдХ рдкреАрд╕реА-рд╕реНрдкреАрдХрд░ рд╣реИ) рдореВрд▓ рдореЗрдВ, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд╡рд┐рдЪрд▓рди рдзреНрд╡рдирд┐ рдХреЛ рддреБрд░рдВрдд рд╡рд┐рдХреГрдд рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рдЕрдВрддрд░рд╛рд▓ рд▓рдпрдмрджреНрдз (рд╕рдорд╛рди) рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рдпрд╛ рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдЦреЗрд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрд╡рд░ рдореВрд▓ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреНрд░рдорд╢рдГ рдХрдо рдпрд╛ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗред рдпрджрд┐ рд╣рд░ рдмрд╛рд░ рдЕрдВрддрд░рд╛рд▓ рдЕрд▓рдЧ рд╣реИ, рддреЛ рдзреНрд╡рдирд┐ рдХреЛ рдмрд╕ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рдирдореВрдирд╛ рдЖрд╡реГрддреНрддрд┐ 8000 рд╣рд░реНрдЯреНрдЬ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ 1/8000 ~ 125 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХреЗ рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИред 22KHz рдкрд░, рдпрд╣ 45 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдЕрдВрддрд░рд╛рд▓ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рд▓рдВрдм, MAN рдХреЗ рдЕрдиреБрд╕рд╛рд░,
рд╕реЛрддреЗ рд╕рдордп рдпрд╛
рдиреИрдиреЛрд╕реЗрд▓реЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдВрднрд╡ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛:
char wavdata[0x10000];
рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реИред
рддреЛ, рджреЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
Usleep рдФрд░
nanosleep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛, рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдирдХреЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рдХрд▓реЗ, рд▓реЗрдХрд┐рди рд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рдорд╛рди 10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗ рдХрдо рд╣реИред рдпрджрд┐ рдард╣рд░рд╛рд╡ рд▓рдВрдмрд╛ рдерд╛, рддреЛ рдзреНрд╡рдирд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрдЯ рдЧрдИ, рдФрд░ рдмрд┐рдВрджреБ рдкрд┐рдЪ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдард╣рд░рд╛рд╡ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдХреЛрдИ рддрд╛рд▓ рдирд╣реАрдВ рдерд╛, рдЕрд░реНрдерд╛рдд, рдЪрдХреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд░реНрдЧ рдХреА рдПрдХ рдЕрд▓рдЧ рдЕрд╡рдзрд┐ рдереАред рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рд╣рдо
рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рди рддреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рди рд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЙрд▓ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдпрд╣ рд╢реЗрдбреНрдпреВрд▓рд░ рдиреАрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:
struct sched_param schedio; sched_getparam(0,&schedio);
рдореИрдВ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд░реВрдк рдореЗрдВ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХреА (рдпрд╣ рдХреЛрдб рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ, рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣
рдЕрдЪреНрдЫрд╛ рднреА рд╣реИ )ред рдпрд╣ рд╕рдм рдЗрд╕
рдкреГрд╖реНрда рд╕реЗ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рд▓реА рдЪрдХреНрд░ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рд╛, рдмрд▓реНрдХрд┐
рдмреЗрдХрд╛рд░ ... рдФрд░ рдЗрд╕рдиреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдпрд╛ - рдЖрдк рди рдХреЗрд╡рд▓ рд╕рдВрдЧреАрдд рд╕реБрди рд╕рдХрддреЗ рдереЗ, рдмрд▓реНрдХрд┐ рднрд╛рд╖рдг рднреА рджреЗ рд╕рдХрддреЗ рдереЗред
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдЗрд╕рдиреЗ рдЖрд╢рд╛ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдореЗрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдереЗ рдХрд┐ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд▓рдЧрднрдЧ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рджреЗрддрд╛ рд╣реИ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рджреЗрд░реА рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП
рдЖрдЙрдЯрдм_рдк рдореИрдХреНрд░реЛ рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдерд╛ред рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд░рд╛рдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:
short int pause; for (i = 0;i < bufsize;i += onechannelinc){ curdata = (void*)(wavdata+i); cursampleraw = *curdata&datamask; if (cursampleraw > samplezero){ out61 |= 0x2; }else{ out61 &= 0xFD; } for (k=0;k<pause;k++)outb(out61,SPKPORT);
- рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП, рдХреБрдЫ рднреА рдирд╣реАрдВ рдЯреВрдЯрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдкреНрд▓реЗрдмреИрдХ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ (рдкрдврд╝рдиреЗ рдХреЗ рдЪрдХреНрд░ рдХреЗ рдмреАрдЪ рд▓реБрдкреНрдд рд╣реЛрддреА) рднреА рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдирд╣реАрдВ рд╣реБрдИрдВ: рдлрд╝рд╛рдЗрд▓ рдХреЛ 64KB рдХреЗ рдмрдлрд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡рд┐рдХреГрддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдзреНрд╡рдирд┐ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХреЛрдб рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рди рд╣реЛред рдирддреАрдЬрддрди, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдмреЗрд╣рддрд░ рд╣рдорд╛рд░рд╛ рд╕реНрдкреАрдХрд░ рдзреНрд╡рдирд┐ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдо рд╢рдХреНрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдорд▓реНрдЯреА-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд┐рдВрдЧрд▓-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ, рд╣рдо рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВ рдХрд┐рд╕реА рднреА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рдордп рдореЗрдВ рдбреЙрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рджреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдереЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рднреА рдЕрд╡рд░реЛрдзреЛрдВ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ (рд╣рдо рд╣рд░ рдЪреАрдЬ рдХреЗ рдЕрдирдиреНрдп рд╕реНрд╡рд╛рдореА рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ) рдФрд░ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рдлреЗрд╕-рдЯреВ-рдлреЗрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдШрдбрд╝реА рдХреЗ рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рджреЗрд░реА рдХреА рдЧрд┐рдирддреА рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛, рдЯрд╛рдЗрдорд░ рдХреЛ рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рдиреНрдпреВрдирддрдо рдЕрдВрддрд░рд╛рд▓ рдХреЗрд╡рд▓ 1 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ), 0x8 рдЗрдВрдЯрд░рдкреНрдЯ (IRQ0) рдЙрдард╛рдПрдВ рдФрд░ рд╕реНрдкреАрдХрд░ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдбреЗрдЯрд╛ рджреЗрдВ, рдЬрд┐рд╕рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред рдпреЗ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдирдХреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдВрддрд░рд┐рдХреНрд╖ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЕрдЬреАрдм рдирд┐рдХрд▓рд╛ред
рдЕрдм рдмрд╛рдХреА рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ .WAV рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реИ,
рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рднреА рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛, рдЙрдирдХреА рдЬрд╛рдБрдЪ рдХреА, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рдХрд▓реАред рдлрд┐рд░,
рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реБрдП рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд╕рд░рд▓ рдХрд░рддреЗ рд╣реБрдП, рдирдП рдбреЗрдЯрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреА, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ
рдлреИрдХреНрдЯ рдЪреЗрди рдХреЗ рд╕рд╛рдордиреЗ 2-рдмрд╛рдЗрдЯ рдлрд╝реАрд▓реНрдб рдХреА рдХрдореА рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдХреБрдЫ рдЙрдЪрд┐рдд рд░рд╛рд╢рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдордирдорд╛рдиреА рдлрд╛рдЗрд▓реЗрдВред
.WAV рд╣реЗрдбрд░ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ
рдЖрдХрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП
рдЗрдВрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ,
рд╢реЙрд░реНрдЯ рдЗрдВрдЯ 2 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ рдФрд░
рдЪрд╛рд░ рдмрд╛рдЗрдЯ рд╣реИрдВред рдЗрд╕ рд░реВрдк рдореЗрдВ, рдЖрдк 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЪреЗрдХ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрд╕рдорд░реНрдерд┐рдд .WAV рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред
рдХреЛрдб рдореЗрдВ рднреА рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдХрд░, рд╣рдо рдХреЗрд╡рд▓ рдХреНрд░реЛрдХрд┐рдВрдЧ рдФрд░ рдХреНрд░реИрдХрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдзреНрд╡рдирд┐ рдХреЗ рдмрд┐рдирд╛ред рд╡реИрд╕реЗ, рдЖрдк рдпрд╣ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд▓рдВрдм рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд▓реЗрдмреИрдХ рдХрд┐рддрдирд╛ рдзреАрдорд╛ рд╣реИ (рдпрд╛ рдЕрдкрдиреА рджреГрд╢реНрдп рдФрд░ рдзреНрд╡рдирд┐ рд╕рдВрд╡реЗрджрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ)ред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рд▓реЛрдЧ рдмреЛрд░рд▓реИрдВрдб рд╕реА рд╕реЗ
рдХреЙрдирд┐рдпреЛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ:
рдИрдПрд╕рд╕реА рдЕрдиреБрдХреНрд░рдо (рдпрд╛ рдореИрди
рдХрдВрд╕реЛрд▓_рдХреЛрдб ) рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ
рдХреЛрдмреАрдЯ рд╕реЗ рдмрджрд▓
рджреЗрддрд╛ рд╣реИ (рдпрд╣ рд╕рд┐рд░реНрдл рд╣реИ рд░реАрдбрд┐рдВрдЧ рдореЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ), рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдкрдХреЛ
ioctl (рдореИрди рдХрдВрд╕реЛрд▓_
ioctl ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
struct winsize scrsize; ioctl(STDOUT_FILENO,TIOCGWINSZ,&scrsize);
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдпрд╣рд╛рдВ
рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
playwav.zip - рдХрдИ
.WAV рдлрд╛рдЗрд▓реЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдк 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╕рд╣рд┐рдд, рдмрд╕ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
gcc playwav64.c -o playwav64 chmod +x playwav64
рдЖрдк рдЗрд╕реЗ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реА рдмрд╛рд░ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ,
sudo ./playwav64 file.wav
рджреВрд╕рд░рд╛ рд╕рдордп рдЧреБрдгрдХ рд╣реИ: рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реИ, рдЯреЛрди рдЙрддрдирд╛ рд╣реА рдХрдо рд╣реИ, рдпрджрд┐ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 650,000 рд╣реИ,
sudo ./playwav64 file.wav 500000
рддреАрд╕рд░рд╛ - рдХреЛрдИ рднреА рдорд╛рди, рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ (рдзреНрд╡рдирд┐ рдХреЗ рдмрд┐рдирд╛) рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
./playwav64 file.wav sw
рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╣реА рдзреНрд╡рдирд┐ред Xs рдореЗрдВ рдирд╣реАрдВ рджреМрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ KDE рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрд╕рдПрд╕рдПрдЪ рд╕рддреНрд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдзреНрд╡рдирд┐ рдЙрд╕ рднреМрддрд┐рдХ рдорд╢реАрди рдкрд░ рд╣реЛрдЧреА, рдЬрд┐рд╕рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ, рд╕рднреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХреА (рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдХрд╛рдо рдХрд┐рдпрд╛), рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЧрдбрд╝рдмрдбрд╝ рдХреА, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБред