Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Книга по созданию трёхмерных игр / 14
.TXT - 541 -
ѓ ‹ Ђ ‚ Ђ 14 (Ђ¤ан ‹ Њ®в)
‘ ‚ џ ‡ њ
---------------------
’ Є ¦Ґ, Є Є Ґ¤Ёб⢥ п Є«ҐвЄ ¬®§Ј Ґ ¬®Ј« Ўл ᤥ« вм Ў®«миЁе гбЇҐе®ў ў
и е¬ в е, ЁЈа вм б Є®¬ЇмовҐа®¬ ў ®¤Ё®зҐб⢥ Ґ ®зҐм ЁвҐаҐб®. ‚ бўп§Ё б
Ї®б«Ґ¤Ё¬Ё ¤®бвЁ¦ҐЁп¬Ё ў ®Ў« б⨠⥫ҐЄ®¬¬гЁЄ жЁ©, ўЁ¤Ґ®ЁЈал ¤«п
ҐбЄ®«мЄЁе ЁЈа®Є®ў бв ®ўпвбп ўбҐ Ў®«ҐҐ а бЇа®бва Ґл¬Ё. ‚ бв®п饥
ўаҐ¬п ¬®ЈЁҐ Їа®Ја ¬¬л Ї®¤¤Ґа¦Ёў ов ЁЈаг ¤ўге 祫®ўҐЄ зҐаҐ§ ¬®¤Ґ¬. ‚ нв®©
Ј« ўҐ ¬л 祬 Ё§гз вм бЁб⥬л бўп§Ё ¬Ґ¦¤г ЏЉ Ё ЇаЁҐ¬л, Ґ®Ўе®¤Ё¬лҐ ¤«п
ᮧ¤ Ёп ўЁ¤Ґ®ЁЈа, а ббзЁв ле ҐбЄ®«мЄЁе ЁЈа®Є®ў.
‚ нв®© Ј« ўҐ Ўг¤гв Ё§гзҐл б«Ґ¤гойЁҐ ⥬л:
- ‘।бвў бўп§Ё ўЁ¤Ґ®ЁЈа;
- Џ®б«Ґ¤®ў ⥫мл© ЁвҐадҐ©б ЏЉ;
- ”гЄжЁЁ Ї®¤¤Ґа¦ЄЁ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ROM BIOS;
- ‘®Ґ¤ЁҐЁҐ зҐаҐ§ г«м-¬®¤Ґ¬;
- ‘®§¤ ЁҐ Є®¬¬гЁЄ жЁ®ле ЎЁЎ«Ё®вҐЄ;
- ‘ва ⥣Ёп Є®¬¬гЁЄ жЁ®ле ўЁ¤Ґ®ЁЈа;
- ‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп;
- ‘Ёеа®Ё§ жЁп б®бв®пЁп Ї®ав ўў®¤ /ўлў®¤ ;
- ‘Ёеа®Ё§ жЁп Ї® ўаҐ¬ҐЁ;
- 542 -
- Њ®¤Ґ¬;
- Ќ ЇЁб ЁҐ ЁЈал Net-Tank (‘ҐвҐў®© в Є) ¤«п ¤ўге ЁЈа®Є®ў ў § ¬Єг⮬
Їа®бва б⢥.
‚ нв®© Ј« ўҐ ¬л бЄ®жҐваЁа㥬 ўЁ¬ ЁҐ Їа®Ў«Ґ¬ е ¤Ё§ © ЁЈа ¤«п
ҐбЄ®«мЄЁе ЁЈа®Є®ў, Ї® ў®§¬®¦®бвЁ Ґ ў¤ ў пбм ў гЇа ў«ҐЁҐ Є®¬¬гЁЄ жЁп¬Ё
Є Є в Є®ўл¬Ё. Љ ᮦ «ҐЁо, г б Ґв ўаҐ¬ҐЁ Ё§г票Ґ ¬Ґв®¤®ў
®бгйҐбвў«ҐЁп бўп§Ё зҐаҐ§ ¬®¤Ґ¬ ў Ї®«®¬ ®ЎкҐ¬Ґ. Ћ¤ Є® ¬л гзЁ¬бп
гЇа ў«пвм бўп§мо зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав б Ї®¬®ймо г«м-¬®¤Ґ¬ . ‘ нвЁ¬Ё
§ Ёп¬Ё, Ї®ва вЁў ¤®Ї®«ЁвҐ«м® ҐбЄ®«мЄ® ®зҐ©, ўл гзЁвҐбм бўп§лў вмбп
зҐаҐ§ ¬®¤Ґ¬. “ ў б Ўг¤гв ўбҐ н«Ґ¬Ґвл, ¤®бв в®злҐ ¤«п в®Ј®, зв®Ўл Ї®«гзЁвм
Ґзв® а Ў®в о饥. Њл е®вЁ¬ гзЁвмбп ЇЁб вм ўЁ¤Ґ®ЁЈал ¤«п ¤ўге Ё Ў®«ҐҐ
ЁЈа®Є®ў, бЁ¤пйЁе § бў®Ё¬Ё Є®¬ЇмовҐа ¬Ё Ё ЁЈа ойЁ¬Ё ®¤®ўаҐ¬Ґ® ЎҐ§ Ї®вҐаЁ
бЁеа®Ё§ жЁЁ Ё Їа®зЁе Їа®Ў«Ґ¬. Џ®н⮬г б Ў®«миҐ Ўг¤Ґв ЁвҐаҐб®ў вм
в ЄвЁЄ Є®¬¬гЁЄ жЁЁ ў аеЁвҐЄвгॠўЁ¤Ґ®ЁЈа, Ґ дЁ§ЁзҐбЄ п Є®¬¬гЁЄ жЁп
б ¬ Ї® ᥡҐ.
‘ђ…„‘’‚Ђ ‘‚џ‡€ ‚€„…Ћ€ѓђ
Љ н⮬㠬®¬Ґвг ўл 㦥 ¤®«¦л Ўлвм Ј®в®ўл ЇЁб вм ўЁ¤Ґ®ЁЈал. ‚л ®в з « Ё
¤® Є®ж гзЁ«Ёбм ⮬г, зв® ¤«п нв®Ј® Ґ®Ўе®¤Ё¬® § вм. Ћ¤ Є® ¬л ¤® бЁе
Ї®а гЇгбЄ «Ё ®¤Ё ў ¦л© ¬®¬Ґв: Є Є ЇЁб вм ЁЈаг, зв®Ўл ў ҐҐ ¬®Ј«Ё
ЁЈа вм ба §г ҐбЄ®«мЄ® 祫®ўҐЄ? ќв® ¬ Ї®Єг¤ б®ўҐа襮 Ґ Ё§ўҐбв®.
‘гйҐбвўгов ўЁ¤Ґ®ЁЈал, Ї®¤¤Ґа¦Ёў ойЁҐ ¬®¤Ґ¬®Ґ ᮥ¤ЁҐЁҐ, ® Ў®«миЁбвў®
«о¤Ґ© Ё«Ё Ґ Ї®«м§говбп нв®© ў®§¬®¦®бвмо, Ё«Ё згўбвўгов, зв® ® б«ЁиЄ®¬
б«®¦ , зв®Ўл Є Ґ© ЇаЁЎҐЈ вм. ‚ «оЎ®¬ б«гз Ґ, ў®Їа®б ў нв®© ®Ў« бвЁ ўбҐ
ҐйҐ ®бв Ґвбп ®вЄалвл¬ Ё ў ¬ ЇаҐ¤б⮨⠯தҐ« вм Ґ¬ «® а Ў®вл, Ґб«Ё
¤Ґ©бвўЁвҐ«м® § ©¬ҐвҐбм Їа®Ја ¬¬Ёа®ў ЁҐ¬ ЁЈа.
Џ®бЄ®«мЄг б ЇҐаў® з «м® ЁвҐаҐбгҐв ЇЁб ЁҐ ўЁ¤Ґ®ЁЈа ¤«п Ї®вॡЁвҐ«Ґ©,
¬л Ўг¤Ґ¬ Є®жҐваЁа®ў вм иЁ гбЁ«Ёп ЁбЇ®«м§®ў ЁЁ бҐаЁ©ле Ї®ав®ў Є Є
б।бвў Є®¬¬гЁЄ жЁЁ ( Ґ бҐвҐўлҐ Є®¬¬гЁЄ жЁЁ вЁЇ IPX/SPX Ё«Ё NETBIOS).
џ ўлЎЁа о Ї а ««Ґ«мл© Ї®ав ў ®в«ЁзЁҐ ®в ЁбЇ®«м§®ў Ёп ҐбЄ®«мЄЁе Ethernet
Ї« в Ї® б«Ґ¤гойЁ¬ ЇаЁзЁ ¬:
- ‚®-ЇҐаўле, г Є ¦¤®Ј® Є®¬ЇмовҐа Ґбвм бў®© Ї а ««Ґ«мл© Ї®ав;
- ‚®-ўв®але, г ¬®ЈЁе «о¤Ґ© Ґбвм бў®Ё ¬®¤Ґ¬л, б Ї®¬®ймо Є®в®але ®Ё
®Ў« ¤ ов ®б®ўл¬ б।бвў®¬ ¤«п ЁЈал ў¤ў®Ґ¬.
…б«Ё ¬л б®ЎЁа Ґ¬бп ЇЁб вм ўЁ¤Ґ®ЁЈал ¤«п ¤ўге Ё«Ё Ў®«ҐҐ ЁЈа®Є®ў, в® ¤®«¦л
а ббзЁвлў вм нв® б б ¬®Ј® з « . ‚л Ґ ¬®¦ҐвҐ ЇЁб вм б«®¦го ЁЈаг Ё
в®«мЄ® Ї®в®¬ ў¤агЈ аҐиЁвм, зв® ¤Ґ« ҐвҐ ҐҐ Є Є ЁЈаг ¤«п ҐбЄ®«мЄЁе ЁЈа®Є®ў.
ЌҐ®Ўе®¤Ё¬® Ї®¬Ёвм, зв® а §а Ў®вЄ ¤ўге Ґ§ ўЁбЁ¬ле ЁЈа, Є®в®алҐ
§ ЇгбЄ овбп Ё бЁеа®® а Ў®в ов ¤ўге а §«Ёзле ЏЉ, вॡгҐв ЇаЁ«Ёзле
ва㤮ўле § ва в Ё ЇаҐ¤ў аЁвҐ«м®Ј® Ї« Ёа®ў Ёп.
- 543 -
ЏЋ‘‹…„Ћ‚Ђ’…‹њЌ›‰ €Ќ’…ђ”…‰‘ ЏЉ
Џ®б«Ґ¤®ў ⥫мл© Ї®ав ў ЏЉ бЄ®бвагЁа®ў в Є, зв® ЇаҐ¤бв ў«пҐв б®Ў®©
бЁб⥬г, ®еў влў ойго ¬®Ј® а §«Ёзле Є®¬Ї®Ґв®ў. Ќ ¬, Є Є Їа®Ја ¬¬Ёбв ¬,
Ґ ®Ўп§ вҐ«м® ў¤ ў вмбп ў Ї®¤а®Ў®бвЁ ҐЈ® гбва®©бвў б в®зЄЁ §аҐЁп
ЇЇ а вгал. Ћ¤ Є® Ї®«Ґ§® Ё¬Ґвм ЇаҐ¤бв ў«ҐЁҐ, Є Є ® а Ў®в Ґв, ¤ ¦Ґ Ґб«Ё
нв® ЁЄ®Ј¤ Ґ Ї® ¤®ЎЁвбп.
ЏҐаҐ¤ ⥬ Є Є ¬л Ї®Јаг§Ё¬бп ў ®ЇЁб ЁҐ бЁбвҐ¬л Ї®б«Ґ¤®ў ⥫мле
Є®¬¬гЁЄ жЁ© ЏЉ, ¤ ў ©вҐ а бᬮваЁ¬ бЁб⥬г вҐе ҐҐ ў®§¬®¦®б⥩, Є®в®алҐ
ЁвҐаҐбгов б Є Є а §а Ў®взЁЄ®ў ўЁ¤Ґ®ЁЈа. ЏЉ ¬®Јгв Ї®¤¤Ґа¦Ёў вм «® ᥬЁ
Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў, Ґб¬®вап в®, зв® Ў®«миЁбвў® ЏЉ Ё¬Ґо⠢ᥣ®
®¤Ё Ё«Ё ¤ў Ї®б«Ґ¤®ў ⥫мле Ї®ав . Њл ¬®¦Ґ¬ бЄ®дЁЈгаЁа®ў вм Ёе ¤«п бўп§Ё
в Є, зв® бЄ®а®бвм ЇҐаҐ¤ зЁ ¬®¦Ґв ¤®бвЁЈ вм 115200 Ў®¤. Њл ¬®¦Ґ¬ в Є¦Ґ
ўлЎа вм вЁЇ зҐв®бвЁ, Є®«ЁзҐбвў® бв®Ї-ЎЁв®ў Ё ЎЁв®ў ¤ ле, в Є¦Ґ вЁЇл
ЇаҐалў Ё©, Є®в®алҐ ¬л е®вЁ¬ § ¤Ґ©бвў®ў вм. …б«Ё ўл Ґ § ҐвҐ, ® 祬 Ё¤Ґв
аҐзм, в® § ¤Ґа¦ЁвҐбм §¤Ґбм згвм Ї®¤®«миҐ Ё Ї®бв а ©вҐбм Ї®пвм, ® 祬 п
Ўг¤г Ј®ў®аЁвм.
ЏаҐ¦¤Ґ ўбҐЈ®, 㦮 бЄ®дЁЈгаЁа®ў вм Ї®ав, зҐаҐ§ Є®в®ал© ¬л ᬮ¦Ґ¬ ®Ўй вмбп
б ¤агЈЁ¬Ё Є®¬ЇмовҐа ¬Ё Ё«Ё гбва®©бвў ¬Ё, зЁв п Ё«Ё § ЇЁблў п ¤ лҐ ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. ЂЇЇ а ⮥ ®ЎҐбЇҐзҐЁҐ ЏЉ § Ў®вЁвбп ® ¬®ЈЁе ¤Ґв «пе
ЇҐаҐ¤ зЁ Ё ЇаЁҐ¬ ¤ ле. ‚бҐ, зв® ¬ Ґ®Ўе®¤Ё¬® ᤥ« вм, нв® Ї®б« вм ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав бЁ¬ў®« ¤«п ЇҐаҐ¤ зЁ Ё«Ё ®Ўа Ў®в вм бЁ¬ў®«, Є®в®ал© ўл
®¦Ё¤ ҐвҐ. „«п ўЁ¤Ґ®ЁЈа ў ¦®, зв® ¬л Ї®бл« Ґ¬ Ї ЄҐвл Ёд®а¬ жЁЁ, Є®в®алҐ
®ЇЁблў ов б®бв®пЁҐ ЁЈал ¤агЈ®© ¬ иЁҐ Ё ®Ў®а®в. ќвЁ Ї ЄҐвл б®бв®пв Ё§
бв ¤ авле бЁ¬ў®«®ў ¤«Ё®© 8 ЎЁв.
…¤Ёб⢥®Ґ, зв® ¬ 㦮 § вм, нв® Є Є ®вЄалвм Ї®б«Ґ¤®ў ⥫мл© Ї®ав,
§ ЇЁб вм ў ҐЈ® бЁ¬ў®«л Ё Їа®зЁв вм ®вўҐвго Ёд®а¬ жЁо. ЏҐаҐ©¤Ґ¬ Ў«Ё¦Ґ Є
¤Ґ«г Ё Ї®б¬®ваЁ¬, зв® ЏЉ ¬®Јгв ¤«п нв®Ј® ЇаҐ¤«®¦Ёвм (¬Ґ¦¤г Їа®зЁ¬, § 票Ґ
ҐЄ®в®але вҐа¬Ё®ў ®Ўкпбп«®бм згвм а ҐҐ).
“Ќ€‚…ђ‘Ђ‹њЌ›‰ Ђ‘€Ќ•ђЋЌЌ›‰ Џђ€…ЊЋЏ…ђ…„Ђ’—€Љ
ЏЉ ®Ў®а㤮ў л гЁўҐаб «мл¬ бЁеа®л¬ ЇаЁҐ¬®ЇҐаҐ¤ взЁЄ®¬ (UART) - зЁЇ®¬,
Є®в®ал© ЇаЁЁ¬ Ґв Ё ЇҐаҐ¤ Ґв Ї®б«Ґ¤®ў ⥫млҐ ¤ лҐ. ‘гйҐбвўгов ¤ў
ЁЎ®«ҐҐ Ї®Їг«пале UART ¤«п ЏЉ:
- Њ®¤Ґ«м 8250;
- Њ®¤Ґ«м 16550.
Њ®¦ҐвҐ бзЁв вм, зв® ®Ё Ї®«®бвмо б®ў¬ҐбвЁ¬л ¤агЈ б ¤агЈ®¬ Ё ¬ Ґ 㦮
ўлпбпвм, Є Є®© Ё§ Ёе ЁбЇ®«м§гҐвбп. …¤ЁбвўҐл¬ Ёе ў ¦л¬ ®в«ЁзЁҐ¬
пў«пҐвбп в®«мЄ® в®, зв® ¬®¤Ґ«м 16550 Ё¬ҐҐв ўгв२© FIFO (First In, First
Out - "ЇҐаўл© ў®иҐ« - ЇҐаўл© ўл襫") ЎгдҐа, Є®в®ал© а бЇ®« Ј Ґв
- 544 -
ўе®¤пйЁҐ ¤ лҐ в Є, зв® ®Ё Ґ ¬®Јгв Ї®вҐапвмбп ўб«Ґ¤бвўЁҐ § ¤Ґа¦ЄЁ
®Ўа Ў®вЄЁ. ’ҐЇҐам ў§Ј«пҐ¬ Є¦¤л© Ё§ ॣЁбва®ў UART Ё в®, Є Є Ї®«гзЁвм
Є Ё¬ ¤®бвгЇ. Џ®б«Ґ в®Ј® Є Є ¬л ®Ўп§ «Ёбм ЇЁб вм Ї®«го ЎЁЎ«Ё®вҐЄг ¤«п
бўп§Ё, Ґ®Ўе®¤Ё¬® гпбЁвм, Є Є ®вЄалвм Ї®б«Ґ¤®ў ⥫мл© Ї®ав, в Є¦Ґ Є Є
®бгйҐбвў«пвм з⥨Ґ Ё § ЇЁбм. Ќ ЇЁб ў ®¤ ¦¤л ᮮ⢥вбвўгойЁҐ дгЄжЁЁ, ¬л
¬®¦Ґ¬ бЄ®жҐваЁа®ў вмбп 楫пе ЁЈал.
“бв ®ўЄЁ Ё бв вгб UART
------------------------------
“бв ®ўЄЁ Ё бв вгб UART гЇа ў«повбп зҐаҐ§ Ў®а ўгв२е ॣЁбва®ў,
¤®бвгЇле Є Є Ї®авл ўў®¤ /ўлў®¤ , ¤аҐб Є®в®але зЁ овбп ®в ҐЄ®в®а®Ј®
Ў §®ў®Ј® ¤аҐб . Ѓ §®ўл© ¤аҐб ®ЇаҐ¤Ґ«пҐвбп ®¬Ґа®¬ Ї®б«Ґ¤®ў ⥫쮣®
Ї®ав , зҐаҐ§ Є®в®ал© ўл е®вЁвҐ бўп§ вмбп. ђ бᬮваЁ¬ в Ў«Ёжг 14.1, ў
Є®в®а®© гЄ § л Ў §®ўлҐ ¤аҐб гЇа ў«пойЁе ॣЁбва®ў UART.
’ Ў«Ёж 14.1. Ѓ §®ўлҐ ¤аҐб гЇа ў«по饣® ॣЁбва UART.
---------------------------------------------------------------------
Џ®б«Ґ¤®ў ⥫мл© Ї®ав Ѓ §®ўл© ¤аҐб Ї®ав
- - - - - - - - - - - - - - - - -- - -- - - - - - - ---- --- - - - -
COM1 3F8h
COM2 2F8h
COM3 3E8h
COM4 2E8h
_______________________________________________________________________
Љ Є ўЁ¤ЁвҐ, Ґб«Ё ¬л е®вЁ¬ ЁЈа вм зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав COM1, ¬
Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм Ї®ав 3F8h ў Є зҐб⢥ Ў §®ў®Ј® ¤аҐб ўў®¤ /ўлў®¤ .
Љ ¦¤л© Ї®ав Ё¬ҐҐв 9 ॣЁбва®ў, ў Є®в®алҐ ¬®¦® ЇЁб вм Ё«Ё Ё§ Є®в®але ¬®¦®
бзЁвлў вм Ёд®а¬ жЁо ў § ўЁбЁ¬®бвЁ ®в Ёе вЁЇ . ‘«Ґ¤®ў ⥫м®, ¤«п ¤®бвгЇ Є
ॣЁбваг 1 Ї®ав COM1 Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм ¤аҐб ўў®¤ /ўлў®¤ 3F8h+1,
в® Ґбвм 3F9h.
’ҐЇҐам ¬л § Ґ¬, Ј¤Ґ а бЇ®«®¦Ґл ॣЁбвал. Ђ зв® Є ¦¤л© Ё§ Ёе ¤Ґ« Ґв?
ђҐЈЁбва 0: Љ Є ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ
----------
(Transmitter-Holding Register - THR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДД ВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X і
АДДДБДД БДДДБДДДБДДДБДДДБДДДБДДДЩ
ќв® ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ, Єг¤ Ї®¬Ґй Ґвбп б«Ґ¤гойЁ© бЁ¬ў®« ¤«п
ЇҐаҐ¤ зЁ. …б«Ё нв® ®¤Ё®зл© Ў ©в Ё ўл ЁбЇ®«м§гҐвҐ б奬㠯ҐаҐ¤ зЁ, Ё¬Ґойго
¬ҐҐҐ 8 ЎЁв, в® ¤ лҐ ЁЈ®аЁаговбп Ё Ґ ЇҐаҐ¤ овбп ў®®ЎйҐ.
- 545 -
ђҐЈЁбва 0: Љ Є ॣЁбва-ЎгдҐа ЇаЁҐ¬ (Reciever Buffer
----------
Register - RBR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X і
АДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДЩ
ђҐЈЁбва 0 в Є¦Ґ ўлЇ®«пҐв дгЄжЁЁ ЎгдҐа®Ј® ॣЁбва ЇаЁҐ¬ . ‚ § ўЁбЁ¬®бвЁ
®в в®Ј®, ЇЁиҐвҐ ўл ў ҐЈ® Ё«Ё зЁв ҐвҐ Ё§ нв®Ј® ॣЁбва , ЎгдҐа ЇҐаҐ¤ Ґв Ё«Ё
ЇаЁЁ¬ Ґв бЁ¬ў®«л б ¤агЈ®Ј® Є®¬ЇмовҐа ᮮ⢥вб⢥®. ‚ «оЎ®¬ б«гз Ґ, ЇаЁ
з⥨Ё Ё§ нв®Ј® ॣЁбва ® ᮤҐа¦Ёв Ї®б«Ґ¤Ё© ЇҐаҐ¤ л© Ґ¬г бЁ¬ў®«.
ђҐЈЁбва 1: ђҐЈЁбва ЇаҐалў Ёп (Interrupt Enable Register -
----------
IER)
Љ®Ј¤ гбв ў«Ёў Ґвбп нв®в
ЎЁв, UART Ўг¤Ґв ЈҐҐаЁа®ў вм TBE: Љ®Ј¤ гбв ®ў«Ґ нв®в ЎЁв,
ЇаҐалў ЁҐ ўбпЄЁ© а §, Є®Ј¤ UART ЈҐҐаЁагҐв ЇаҐалў ЁҐ ўбпЄЁ©
«оЎ п Ё§ «ЁЁ© ЁвҐа䥩б ДДї а §, Є®Ј¤ ® ЇҐаҐ¤ Ґв
RS-232 Ё§¬ҐЁв бў®Ґ і бЁ¬ў®« ў ॣЁбва б¤ўЁЈ
б®бв®пЁҐ і і
і і
ЃЁв 7 6 5 4 і3 2 і1 0
ЪДДДВДДДВДДДВДДДВЕДДВДДДВЕДДВДДДї
і X і X і X і X і X і X і X і XДЕДДДї
АДДДБДДДБДДДБДДДБДДДБДЕДБДДДБДДДЩ і
і і
Љ®Ј¤ гбв ®ў«Ґ нв®в ЎЁв, і RxRDY: Љ®Ј¤ гбв ®ў«Ґ
UART Ўг¤Ґв ЈҐҐаЁа®ў вм ДДДДДДДДДЩ нв®в ЎЁв, UART ЈҐҐаЁагҐв
ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ ЇаҐалў ЁҐ ўбпЄЁ© а §,
зҐв®бвЁ, ®иЁЎЄҐ Є®¤Ёа®ў Ёп, Є®Ј¤ ЎгдҐа ЇаЁҐ¬
®иЁЎЄҐ а Ў®вл Ё Ї® BREAK ᮤҐа¦Ёв бЁ¬ў®«
ќв®в ॣЁбва ЁбЇ®«м§гҐвбп, зв®Ўл § ¤Ґ©бвў®ў вм в®в вЁЇ ЇаҐалў Ё©, Є®в®ал©
¬®¦Ґв бЈҐҐаЁа®ў вм UART. Ћ ¤®бвгЇҐ Є Є ¤«п з⥨п, в Є Ё ¤«п § ЇЁбЁ.
Џ®б«Ґ гбв ®ўЄЁ бҐаЁ©®Ј® Ї®ав Ўл«® Ўл Ґг¤®Ў® Ї®бв®п® ®Їа иЁў вм ҐЈ®,
Ї®н⮬㠤«п Ї®«гзҐЁп ўе®¤ле ¤ ле «гзиҐ ЇЁб вм Їа®жҐ¤гаг ®Ўб«г¦Ёў Ёп
ЇаҐалў Ёп (ISR), Є®в®а п Ўг¤Ґв ўл§лў вмбп Є ¦¤л© а § ЇаЁ Ї®«г票Ё
бЁ¬ў®« . ќв®в ॣЁбва Ї®§ў®«пҐв ¬ б®®ЎйЁвм UART'г, Є ЄЁҐ Ё¬Ґ® б®ЎлвЁп
¤®«¦лўл§лў вм ЇаҐалў ЁҐ. „«п б ЇаҐ¤бв ў«пҐв ЁвҐаҐб в®«мЄ® ЇаҐалў ЁҐ
RxRDY, Є®в®а®Ґ ЈҐҐаЁагҐвбп ЇаЁ Ї®«г票Ё cЁ¬ў®« UART'®¬.
- 546 -
ђҐЈЁбва 2: ђҐЈЁбва Ё¤ҐвЁдЁЄ жЁЁ ЇаҐалў Ёп
----------
(Interrupt-Identification Register - IIR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X ЕДДДДї
АДДДБДДДБДДДБДДДБДДДБЕДДБДДЕБДДДЩ і
…б«Ё Їа®Ё§®и«® ЇаҐалў ЁҐ, АДДВДДЩ і
нвЁ ¤ў ЎЁв ®ЇЁблў ов ҐЈ®: і і
і …б«Ё нв®в ЎЁв 0, в®
ЃЁв 2 ЃЁв 1 і Їа®Ёб室Ёв ЇаҐалў ЁҐ, ў
і Їа®вЁў®¬ б«гз Ґ - Ґв.
0 0 - ‘в вгб ¬®¤Ґ¬ і
0 1 - Џгбв®© THR ДДДДДДДДДДДДДДЩ
1 0 - RBF Ї®«л©
1 1 - ЋиЁЎЄ
ђҐЈЁбва Ё¤ҐвЁдЁЄ жЁЁ ЇаҐалў Ёп ЁбЇ®«м§гҐвбп ¤«п ®ЇаҐ¤Ґ«ҐЁп ЇаЁзЁл, Ї®
Є®в®а®© UART ўл¤ « ЇаҐалў ЁҐ. ќв® ¬®¦Ґв Ї®Є § вмбп Ё§Ўлв®зл¬, ®¤ Є® Ґб«Ё
ўл ЇаҐ¤ў аЁвҐ«м® гбв ®ўЁ«Ё UART ¤«п Ї®«гзҐЁп ЇаҐалў Ёп Ї® ¤ўг¬ Ё«Ё
Ў®«ҐҐ а §«Ёзл¬ б®ЎлвЁп¬, в®, Ї®бЄ®«мЄг нв®в ॣЁбва ®ЇаҐ¤Ґ«пҐв вЁЇ
Їа®Ё§®иҐ¤иҐЈ® ЇаҐалў Ёп, ® Ї®¬®¦Ґв ў ¬ ўлпбЁвм, зв® Ё¬Ґ® Їа®Ё§®и«®.
ђҐЈЁбва 3: ђҐЈЁбва гЇа ў«ҐЁп «ЁЁҐ© (Line-Control
----------
Register - LCR)
“Їа ў«пҐв Є®«ЁзҐбвў®¬ бв®Ї-ЎЁв®ў. …б«Ё ЎЁв 2 а ўҐ 0, ЃЁвл 1 Ё 0 ®ЇаҐ-
н⮠ᮮ⢥вбвўгҐв ®¤®¬г бв®Ї-ЎЁвг, Ґб«Ё ® а ўҐ 1, ¤Ґ«пов Є®«-ў®
н⮠ᮮ⢥вбвўгҐв ¤ўг¬ бв®Ї-ЎЁв ¬. і ЪДДДДДДДДДДДДДД Ї®бл« Ґ¬ле ЎЁв®ў
і ЪДДБДДї ¤ ле:
ЃЁв 7 6 5 4 3 і2 і1 0і ЃЁв 1 ЃЁв 0
ЪДДДВДДДВДДДВДДДВДДДВЕДДВЕДДВДДЕї
ќв® ЎЁв ДДДДДДЕ X і X і X і X і X і X і X і X і 0 0 - 5 ЎЁв
Є«оз ¤®бвгЇ АДДДБДДЕБЕДДБДЕДБДДЕБДДДБДДДБДДДЩ 0 1 - 6 ЎЁв
Є ¤Ґ«ЁвҐ«о і АДДДДБДВДДЩ 1 0 - 7 ЎЁв
(DLAB). Љ®Ј¤ ® АДДДДДї АДДДДДДДї 1 1 - 8 ЎЁв
а ўҐ 1, ђҐЈЁбвал 0 Ё 1 АДДДДДДДДї і
ЁвҐаЇаҐвЁаговбп Є Є ¤Ґ«ЁвҐ«м і і
в Єв®ў®© з бв®вл, зв® ®ЇаҐ¤Ґ«пҐв і і ЃЁвл 5, 4 Ё 3 гЇа ў«пов вЁЇ®¬
бЄ®а®бвм ЇҐаҐ¤ зЁ. ЏаЁ ¤Ґ«ҐЁЁ і АДДД зҐв®бвЁ ЇҐаҐ¤ зЁ, Є®в®ал©
зЁб« 115200 § 票Ґ, Ї®¬Ґ- і Ўг¤Ґв Ї®б« :
饮Ґ ў н⨠ॣЁбвал, ў १г«мв ⥠і ЃЁв 5 ЃЁв 4 ЃЁв 3
Ї®«гзЁвбп § 票Ґ бЄ®а®бвЁ ЇҐаҐ- і 0 0 0 ЋвбгвбвўгҐв
¤ зЁ. …б«Ё ўл Ґ е®вЁвҐ ҐҐ ¬Ґпвм, і 0 0 1 ЌҐзҐв п
нв®в ЎЁв ¤®«¦Ґ Ўлвм а ўҐ 0. і 0 1 1 —Ґв п
і 1 0 1 ЊҐвЄ
ќв®в ЎЁв гЇа ў«пҐв BREAK-бЁЈ «®¬, Є®в®- 1 1 1 Џа®ЇгбЄ
ал© Ўг¤Ґв Ї®б« ў «ЁЁо ў ¬®¬Ґв
гбв ®ўЄЁ ЎЁв ў 1.
- 547 -
ђҐЈЁбва гЇа ў«ҐЁп «ЁЁҐ© ЁбЇ®«м§гҐвбп ¤«п Ё§¬ҐҐЁп ҐЄ®в®але
е а ЄвҐаЁбвЁЄ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав , в ЄЁе Є Є Є®«ЁзҐбвў® ЇҐаҐ¤ ў Ґ¬ле
ЎЁв®ў ¤ ле Ё вЁЇ зҐвЄ®бвЁ. ќв®в ॣЁбва в Є¦Ґ ўлЇ®«пҐв дгЄжЁЁ
гЇа ў«ҐЁп § Јаг§Є®© бв а襣® Ё ¬« ¤иҐЈ® Ў ©в®ў ¤Ґ«ЁвҐ«п, § ¤ о饣®
бЄ®а®бвм ЇҐаҐ¤ зЁ Ё Ё¬Ґо饣® вЁЇ WORD. ќв®в ॣЁбва в Є¦Ґ ¤®бвгЇҐ Ё ¤«п
§ ЇЁбЁ, Ё ¤«п з⥨п.
ђҐЈЁбва 4: ђҐЈЁбва гЇа ў«ҐЁп ¬®¤Ґ¬®¬ (Modem-Control
----------
Register - MCR)
ќв®в ЎЁв гбв ў«Ёў Ґв ќв®в ЎЁв гЇа ў«пҐв ¬®¤Ґ¬®©
«®Є «мго § Ј«гиЄг. …б«Ё «ЁЁҐ© Ј®в®ў®бвЁ ўў®¤ ¤ ле
нв®в ЎЁв гбв ®ў«Ґ, ўў®¤ДДДДДї (DTR).DTR-«ЁЁп Ўг¤Ґв ®ва ¦ вм
UART ᮥ¤ЁҐ б ўлў®¤®¬. і б®бв®пЁҐ нв®Ј® ЎЁв .
і і
ЃЁв 7 6 5 і4 3 2 1 0 і
ЪДДДВДДДВДДДВЕДДВДДДВДДДВДДДВДДДї і
і X і X і X і X і X і X і X і X ЕДДДДДДДДДЩ
АДДДБДДДБДДДБДДДБДЕДБЕДДБДДДБДЕДЩ
і і і
ќв®в ЎЁв гЇа ў«пҐв і і ќв®в ЎЁв гЇа ў«пҐв ¬®¤Ґ¬®©
гЁўҐаб «мл¬ ўлў®¤®¬ ®¬Ґа ДДДДДДДЩ і «ЁЁҐ© § Їа®б ЇҐаҐ¤ зг
2 (GPO2) - ® ¤®«¦Ґ Ўлвм і (RTS). RTS-«ЁЁп Ўг¤Ґв ®ва ¦ вм
гбв ®ў«Ґ ў 1 ¤«п UART, і б®бв®пЁҐ нв®Ј® ЎЁв .
зв®Ўл Ўл«® ў®§¬®¦® і
Ї®бл« вм ЇаҐалў Ёп. і
ќв®в ЎЁв гЇа ў«пҐв гЁўҐаб «мл¬ ўлў®¤®¬ ®¬Ґа 1
(GPO1). Ћ ЁбЇ®«м§гҐвбп ¤«п бЎа®б § ў®¤бЄЁе
гбв ®ў®Є ҐЄ®в®але дгЄжЁ© ¬®¤Ґ¬ .
„ л© аҐЈЁбва ®Є §лў Ґв ў«ЁпЁҐ ҐЄ®в®алҐ ўле®¤лҐ ¤ лҐ «ЁЁ©
гЇа ў«ҐЁп ¬®¤Ґ¬ . Ќ б Ў®«миҐ ўбҐЈ® ў Ґ¬ ЁвҐаҐбгҐв ЎЁв GPO2. Љ®Ј¤ ®
гбв ®ў«Ґ, Ї®пў«пҐвбп ў®§¬®¦®бвм ЇаЁе®¤ ЇаҐалў Ё©.
ђҐЈЁбва 5: ђҐЈЁбва б®бв®пЁп «ЁЁЁ (Line-Status Register -
----------
- LSR)
TXE: “бв ®ўЄ нв®Ј® ЎЁв ќв®в ЎЁв гбв ў«Ё- RxRDY: “бв ®ўЄ нв®Ј®
®§ з Ґв, зв® UART ўҐ¤Ґв ў Ґвбп ЇаЁ ў®§ЁЄ®- ЎЁв Ј®ў®аЁв ® ⮬,
ЇҐаҐ¤ зг ЎЁв Ё§ бў®ҐЈ® ўҐЁЁ ®иЁЎЄЁ зҐв®бвЁ. зв® ў RBR 室Ёвбп
ўгв॥Ј® ॣЁбва б¤ўЁЈ . і Ј®в®ўл© бЁ¬ў®«.
і і і
ЃЁв 7 і6 5 4 3 і2 1 0 і …б«Ё нв®в ЎЁв
ЪДДДВЕДДВДДДВДДДВДДДВЕДДВДДДВДДДї і гбв ®ў«Ґ,
і X і X і X і X і X і X і X і X ЕДДЩ Їа®Ё§®и«
АДДДБДДДБДДЕБДЕДБДЕДБДДДБДЕДБДДДЩ ®иЁЎЄ Ё§-§
і і і АДДДДДДДДДДДДД Ґб®®вўҐвбвўЁп
і і АДДДДДДДДДДДДДДДДДДДДї бЄ®а®бвЁ
і …б«Ё нв®в ЎЁв і ЇҐаҐ¤ зЁ.
TBE: …б«Ё нв®в ЎЁв гбв ®ў«Ґ,і гбв ®ў«Ґ, § зЁв і
бЁ¬ў®« Ё§ ЎгдҐа ЇҐаҐ¤ ДДЩ Ї®бвгЇЁ« BREAK-бЁЈ « і
ўе®¤ ॣЁбва б¤ўЁЈ . ’ ЄЁ¬ (в® Ґбвм RD-«ЁЁп …б«Ё нв®в ЎЁв гб-
®Ўа §®¬, ў THR ¬®¦Ґв Ўлвм 㤥নў « бм ў 0 Ў®«ҐҐ в ®ў«Ґ, Їа®Ё§®-
Ї®¬ҐйҐ б«Ґ¤гойЁ© бЁ¬ў®«. ®¤®Ј® в Єв ЇҐаҐ¤ зЁ). и« ®иЁЎЄ Є®¤Ё-
а®ў Ёп.
- 548 -
ђҐЈЁбва б®бв®пЁп «ЁЁЁ ЁбЇ®«м§гҐвбп, зв®Ўл ®ЎаЁб®ў вм ®бв®пЁҐ
Є®¬¬гЁЄ жЁ®®Ј® Ї®ав . ‚ н⮬ ॣЁбваҐ б ЁвҐаҐбгҐв Їпвл© ЎЁв (TBE),
Є®в®ал© ЁбЇ®«м§гҐвбп ¤«п ®ЇаҐ¤Ґ«ҐЁп ў®§¬®¦®бвЁ Їа®¤®«¦ҐЁп ЇҐаҐ¤ зЁ
бЁ¬ў®«®ў (THR).
ђҐЈЁбва 6: ђҐЈЁбва б®бв®пЁп ¬®¤Ґ¬ (Modem-Status
----------
Register - MSR)
…б«Ё нв®в ЎЁв гбв ®ў«Ґ, бЁЈ-
…б«Ё нв®в ЎЁв гбв ®ў«Ґ, бЁЈ « « "бў®Ў®¤Ґ ¤«п ЇҐаҐбл«ЄЁ"
Ґбг饩 з бв®вл (CD) Ё§¬ҐЁ«бп б ДДї (CTS) Ё§¬ҐЁ«бп б ¬®¬Ґв Ї®б-
¬®¬Ґв Ї®б«Ґ¤ҐЈ® звҐЁп Ё§ MSR. і «Ґ¤ҐЈ® звҐЁп Ё§ ॣЁбва
і MSR. і
і і
ЃЁв 7 6 5 4 і3 2 1 0 і
ЪДДДВДДДВДДДВДДДВЕДДВДДДВДДДВДДДї і
Ћва ¦ Ґв і X і X і X і X і X і X і X і X ЕДДЩ
б®бв®пЁҐ «ЁЁЁ АДЕДБЕДДБДЕДБДЕДБДДДБДЕДБЕДДБДДДЩ
¤ ле ¤ҐвҐЄв®а ДДДДЩ і і і і і
бЁЈ « Ґбг饩 і і і і і …б«Ё нв®в ЎЁв гбв ®ў«Ґ,
з бв®вл (DCD). і і і і і бЁЈ « Ј®в®ў®бвЁ Є ЇаЁҐ¬г
і і і і АД ¤ ле (DSR) Ё§¬ҐЁ«бп б
Ћва ¦ Ґв б®бв®пЁҐ Ё¤ЁЄ - і і і ¬®¬Ґв Ї®б«Ґ¤ҐЈ® з⥨п
в®а §ў®Є ¬®¤Ґ¬ (RI). і і і Ё§ ॣЁбва MSR.
і і і
Ћва ¦ Ґв б®бв®пЁҐ і і …б«Ё нв®в ЎЁв гбв ®ў«Ґ, б®бв®пЁҐ
«ЁЁЁ DSR ¬®¤Ґ¬ .ДДДДДДДДДДДЩ і Ё¤ЁЄ в®а §ў®Є (RI) Ё§¬ҐЁ«®бм б
і ¬®¬Ґв Ї®б«Ґ¤ҐЈ® звҐЁп Ё§
Ћва ¦ Ґв б®бв®пЁҐ і ॣЁбва MSR.
«ЁЁЁ CTS ¬®¤Ґ¬ . ДДДДДДДДДДДДДДЩ
ђҐЈЁбва б®бв®пЁп ¬®¤Ґ¬ ЁбЇ®«м§гҐвбп, зв®Ўл Ї®Є § вм б®бв®пЁҐ «ЁЁ©
гЇа ў«ҐЁп ¬®¤Ґ¬®¬. „«п иЁе 楫Ґ© нв®в ॣЁбва Ґ¤ў «Ё Ї® ¤®ЎЁвбп.
Ћ¤ Є® ўл ¬®Ј«Ё Ўл ©вЁ ЇаЁ¬ҐҐЁҐ Ё¤ЁЄ в®аг §ў®Є (RI). ‚л ¬®¦ҐвҐ
ЇЁб вм Їа®Ја ¬¬г, Є®в®а п Ўг¤Ґв ЇҐаҐеў влў вм §ў®®Є Ё Є®Ј¤ ўл§лў Ґвбп
ў и ®¬Ґа, ЇаЁ¬Ґа, б®®Ўй вм ®Ў н⮬ ᮮ⢥вбвўго饩 ¤ЇЁбмо нЄа Ґ Ё
§ўгЄ®¬.
ђҐЈЁбва 7: ђҐЈЁбва ўаҐ¬Ґ®Ј® § Ї®«ҐЁп (Scratch-Pad
----------
Register)
ЌҐ ЁбЇ®«м§гҐвбп
ђҐЈЁбва 8: ЊҐҐҐ § зЁ¬л© Є«оз ¤Ґ«ЁвҐ«п бЄ®а®бвЁ ЇҐаҐ¤ зЁ
----------
(Baud-Rate Divisor Latch Least-Significant Byte - DLL)
ЏаҐ¤ § зҐ ¤«п еа ҐЁп ¬« ¤иҐЈ® Ў ©в ¤Ґ«ЁвҐ«п, ЁбЇ®«м§гҐ¬®Ј® ЇаЁ
ўлзЁб«ҐЁЁ ¤Ґ©б⢨⥫쮩 бЄ®а®бвЁ ЇҐаҐ¤ зЁ зҐаҐ§ Ї®ав. ЋЄ®з ⥫м п
бЄ®а®бвм ўлзЁб«пҐвбп в Є: ЎҐагв ¬« ¤иЁ© Ё бв аиЁ© Ў ©вл Ё ЁбЇ®«м§гов Ёе Є Є
¤Ґ«ЁвҐ«м зЁб« 115200. ‚ १г«мв ⥠Ї®«гзЁвбп бЄ®а®бвм ЇҐаҐ¤ зЁ. ќв®в
ॣЁбва ¤®бвгЇҐ зҐаҐ§ ॣЁбва 0 ЇаЁ гбв ®ў«Ґ®¬ 7-¬ ЎЁвҐ (DLAB) ॣЁбва
3 (LCR).
- 549 -
ђҐЈЁбва 9: ђҐЈЁбва Ў®«ҐҐ § зЁ¬®Ј® Ў ©в Є«оз ¤Ґ«ЁвҐ«п
----------
бЄ®а®бвЁ ЇҐаҐ¤ зЁ (Baud-Rate Divisor Latch Most-Significant Byte - DLM)
ќв®в ॣЁбва ЁбЇ®«м§гҐвбп ¤«п Ї®¤¤Ґа¦ЄЁ бв а襣® Ў ©в ¤Ґ«ЁвҐ«п,
ЁбЇ®«м§гҐ¬®Ј® ¤«п ўлзЁб«ҐЁп ¤Ґ©б⢨⥫쮩 бЄ®а®бвЁ ЇҐаҐ¤ зЁ зҐаҐ§
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. ЋЄ®з ⥫м п бЄ®а®бвм ЇҐаҐ¤ зЁ ўлзЁб«пҐвбп
б«Ґ¤гойЁ¬ ®Ўа §®¬: ЎҐагв бв аиЁ© Ё ¬« ¤иЁ© Ў ©вл Ё ЁбЇ®«м§гов Ёе Є Є
¤Ґ«ЁвҐ«м, Є®в®ал© г¦® а §¤Ґ«Ёвм зЁб«® 115200. ќв® ¤ Ґв бЄ®а®бвм
ЇҐаҐ¤ зЁ. „ л© аҐЈЁбва ¤®бвгЇҐ зҐаҐ§ ॣЁбва 1 ЇаЁ гбв ®ў«Ґ®¬ 7-¬
ЎЁвҐ (DLAB) ॣЁбва 3 (LCR).
ЂЇЇ а ⮥ ®ЎҐбЇҐзҐЁҐ UART
----------------------------
ђ §®Ўа ўиЁбм б Їа®Ја ¬¬л¬ ®ЎҐбЇҐзҐЁҐ¬ UART, ¤ ў ©вҐ ў§Ј«пҐ¬ ҐЈ®
ЇЇ а вго Ї®¤¤Ґа¦Єг. Ќ б ЁвҐаҐбгов в®«мЄ® ¤ўҐ ўҐйЁ: Єг¤ ў®вЄгвм Є ЎҐ«м
Ё Є Є ᤥ« вм а §кҐ¬.
ЏЉ ¬®Јгв Ё¬Ґвм ¤ў вЁЇ Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў:
- 9-ивламЄ®ўл© (а §кҐ¬ вЁЇ DB-9);
- 25-ивламЄ®ўл© (а §кҐ¬ вЁЇ DB-25).
‚ в Ў«.14.2 ЇаЁўҐ¤Ґ Ёе а бЇ ©Є .
’ Ў«Ёж 14.2. ђ бЇ ©Є ¤«п Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў ЏЉ.
------------------------------------------------------------------------
Џа®ў®¤ ”гЄжЁп ЋЎ®§ 票Ґ
------------------------------------------------------------------------
9-ивламЄ®ўл© а §кҐ¬
--------------------
1 ‘ЁЈ « «ЁзЁп Ґбг饩 CD
2 ЏаЁҐ¬ ¤ ле RXD
3 ЏҐаҐ¤ з ¤ ле TXD
4 ‘ЁЈ « Ј®в®ў®бвЁ ўў®¤ ¤ ле DTR
5 ‡Ґ¬«п GND
6 ‘ЁЈ « Ј®в®ў®бвЁ Ў®а ¤ ле DSR
7 ‡ Їа®б ЇҐаҐбл«Єг RTS
8 ‘ЁЈ « ®зЁбвЄЁ ¤«п ЇҐаҐбл«ЄЁ CTS
9 €¤ЁЄ в®а §ў®Є RI
25-ивламЄ®ўл© а §кҐ¬
---------------------
2 ЏҐаҐ¤ з ¤ ле TXD
3 ЏаЁҐ¬ ¤ ле RXD
__________________________________________________________________________
- 550 -
Џа®ў®¤ ”гЄжЁп ЋЎ®§ 票Ґ
_________________________________________________________________________
4 ‡ Їа®б ЇҐаҐбл«Єг RTS
5 ‘ЁЈ « ®зЁбвЄЁ ¤«п ЇҐаҐбл«ЄЁ CTS
6 ‘ЁЈ « Ј®в®ў®бвЁ Ў®а ¤ ле DSR
7 ‡Ґ¬«п GND
8 ‘ЁЈ « «ЁзЁп Ґбг饩 CD
20 ‘ЁЈ « Ј®в®ў®бвЁ ўў®¤ ¤ ле DTR
22 €¤ЁЄ в®а §ў®Є RI
_______________________________________________________________________
ЋЏ…ђЂ–€€ ‘ ROM BIOS
ЏаҐ¦¤Ґ 祬 ¬л 祬 ЇЁб вм б®Ўб⢥го Є®¬¬гЁЄ жЁ®го Їа®Ја ¬¬г, ¤ ў ©вҐ
Ї®б¬®ваЁ¬, 祬 ¬ ¬®¦Ґв Ї®¬®зм ROM BIOS? Ћ Ї®¤¤Ґа¦Ёў Ґв Є®¬¬гЁЄ ж©ЁЁ
зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав, е®вп Ё ўҐбм¬ ®Ја ЁзҐ®. ќвЁ дгЄжЁЁ ¤®вгЇл
зҐаҐ§ ЇаҐалў ЁҐ 14h. ‘гйҐбвўгов дгЄжЁЁ ¤«п ®вЄалвЁп Ї®б«Ґ¤®ў ⥫쮣®
Ї®ав , ҐЈ® Є®дЁЈгаЁа®ў Ёп, звҐЁп Ё § ЇЁбЁ бЁ¬ў®« . Ћ¤ Є® бгйҐбвўгҐв
®¤ ¬ «ҐмЄ п Їа®Ў«Ґ¬ : нвЁ дгЄжЁЁ Ґ а Ў®в ов (ва㤮 ў нв® Ї®ўҐаЁвм, ®
®Ё ¤Ґ©бвўЁвҐ«м® Ґ а Ў®в ов). Ќ б ¬®¬ ¤Ґ«Ґ ®Ё а Ў®в ов, Їа ў¤ , ЇаЁ
®б®Ўле гб«®ўЁпе, Є®в®алҐ ¬ ўап¤ «Ё г¤ бвбп ᮧ¤ вм. Љ ᮦ «ҐЁо,
®вбгвбвўгҐв Єа ©Ґ Ґ®Ўе®¤Ё¬ п ¬ Ї®¤¤Ґа¦Є ўў®¤ /ўлў®¤ , гЇа ў«пҐ¬®Ј®
ЇаҐалў ЁҐ¬. ‚ ўЁ¤Ґ®ЁЈа е ¬л ¤®«¦л Ё¬Ґвм бЁб⥬г гЇа ў«ҐЁп б®ЎлвЁп¬Ё,
®б®ў го ЇаҐалў Ёпе. €§-§ нв®Ј®, в Є¦Ґ Ё§-§ в®Ј®, зв® дгЄжЁЁ ROM
BIOS а Ў®в ов ®зҐм ¬Ґ¤«Ґ®, ¬л ¬®¦Ґ¬ ў®®ЎйҐ Ґ а бб¬ ваЁў вм Ёе Є Є
ॠ«м®Ґ б।бвў® ЇҐаҐ¤ зЁ ЎЁв®ў Ї® Їа®ў®¤ ¬.
’ҐЇҐам, Є®Ј¤ п ў ¬ бЄ § « ®Ў н⮬, ¤ ў ©вҐ Ї®б¬®ваЁ¬, Є ЄЁ¬ ®Ўа §®¬
ўбҐ-в ЄЁ ¬®¦® ᮥ¤ЁЁвм ¤ў Є®¬ЇмовҐа Ё ᮧ¤ вм ¬ «ҐмЄго бҐвҐўго ЁЈаг.
‘Ћ…„€Ќ…Ќ€… —…ђ…‡ Ќ“‹њ-ЊЋ„…Њ
Љ Є п 㦥 бЄ § « ў б ¬®¬ з «Ґ, г б Ґ еў вЁв ўаҐ¬ҐЁ ўЁЄ вм ў® ўбҐ
в®Є®бвЁ ЁбЇ®«м§®ў Ёп ¬®¤Ґ¬ . ‘гйҐбвўгҐв б«ЁиЄ®¬ ¬®Ј® ⥬, Є®в®але ¬л
б«ҐЈЄ Є®бг«Ёбм, Ё ўбҐ ®Ё Ё¬Ґов ®в®иҐЁҐ Є ¤Ё§ ©г ўЁ¤Ґ®ЁЈа. —в® п
¬ҐаҐ ᤥ« вм ў¬Ґбв® нв®Ј®, в Є н⮠ᮧ¤ вм Є®¬¬гЁЄ жЁ®го бЁб⥬г,
ЁбЇ®«м§гойго ᮥ¤ЁҐЁҐ вЁЇ г«м-¬®¤Ґ¬, ў Є®в®а®¬ ¬®¤Ґ¬, Є Є в Є®ў®©,
®вбгвбвўгҐв. Ќг«м-¬®¤Ґ¬ - Їа®б⮥ ᮥ¤ЁҐЁҐ, Є®в®а®Ґ бўп§лў Ґв ¤ў
Є®¬ЇмовҐа зҐаҐ§ Ї®б«Ґ¤®ў ⥫млҐ Ї®авл. ђЁб.14.1 ¤Ґ¬®бваЁагҐв в Є®Ґ
ᮥ¤ЁҐЁҐ.
- 551 -
ђЁб.14.1. ‘®Ґ¤ЁҐЁҐ ¤ўге ЏЉ.
—в®Ўл Ё§Ј®в®ўЁвм в Є®Ґ ᮥ¤ЁҐЁҐ, ¬л ¤®«¦л ў§пвм г«м-¬®¤Ґ¬л© Є ЎҐ«м б
¤«Ґ¦ йЁ¬Ё а §кҐ¬ ¬Ё. ќв® ¬®¦Ґв ®Є § вмбп Ґ б«ЁиЄ®¬ Їа®бв®, ® Ґб«Ё ўл
Ўг¤ҐвҐ ®бв®а®¦л, в® § а Ў®в Ґв б ЇҐаў®© Ї®ЇлвЄЁ. Њл Ўг¤Ґ¬ ЁбЇ®«м§®ў вм
в®«мЄ® ваЁ вЁЇ а §кҐ¬ :
- ‹ЁЁо ЇҐаҐ¤ зЁ ¤ ле;
- ‹ЁЁо ЇаЁҐ¬ ¤ ле;
- ‡Ґ¬«о.
Ќ аЁб.14.2 Ї®Є § ®, Є Є ᤥ« вм г«м-¬®¤Ґ¬л© Є ЎҐ«м ¤«п а §ле вЁЇ®ў
а §кҐ¬®ў.
…б«Ё ўл Ґ е®вЁвҐ Ё§Ј®в ў«Ёў вм г«м-¬®¤Ґ¬л© Є ЎҐ«м, ўл ¬®¦ҐвҐ § Ї« вЁвм
§ ҐЈ® ў «оЎ®¬ Ё§ Є®¬ЇмовҐале ¬ Ј §Ё®ў. (Џ®¦ «г©бв , Ґ Ї« вЁвҐ Ў®«миҐ
15 $. џ Ґ ¬®Јг бЇ®Є®©® ᬮваҐвм, Є Є «о¤Ё Ї« впв § Єгб®Є Їа®ў®¤ Ё
Ї« бвЁЄ ¤ ¦Ґ 1.50$). ‘Ґ©з б ®дЁжЁ «мл© г«м-¬®¤Ґ¬л© Є ЎҐ«м ЁбЇ®«м§гҐв
Ў®«ҐҐ ваҐе иЁ, Є®в®алҐ п ЇҐаҐзЁб«Ё«. Ћ § ¤Ґ©бвўгҐв ўбҐ иЁл, Ё¬ЁвЁагп ⥬
б ¬л¬ ¬®¤Ґ¬®Ґ ᮥ¤ЁҐЁҐ. Џ®Є г б Ґбвм TXD, RXD Ё §Ґ¬«п, ¬л ⮦Ґ ЇаЁ
¤Ґ«Ґ. („®Ї®«ЁвҐ«млҐ «ЁЁЁ ЁбЇ®«м§говбп ¤«п ЇЇ а в®Ј® ®ЎҐбЇҐзҐЁп
"агЄ®Ї®¦ вЁп", ® ¬л Ґ Ўг¤Ґ¬ Ё¬Ё Ї®«м§®ў вмбп.)
Ћв«Ёз®, ⥯Ґам г б Ґбвм г«м-¬®¤Ґ¬л© Є ЎҐ«м, Ё ¬л § Ґ¬, Є ЄЁҐ ॣЁбвал
зв® ¤Ґ« ов ў UART'Ґ. џ ¤г¬ о, з⮠⥯Ґам б ¬®Ґ ўаҐ¬п з вм ЇЁб вм
Є®¬¬гЁЄ жЁ®®Ґ Їа®Ја ¬¬®Ґ ®ЎҐбЇҐзҐЁҐ.
- 552 -
ђЁб.14.2. €§Ј®в®ў«ҐЁҐ г«м-¬®¤Ґ¬®Ј® Є ЎҐ«п ¤«п а §«Ёзле вЁЇ®ў
бҐаЁ©ле а §кҐ¬®ў.
ЏЋ‘’ђЋ…Ќ€… ЉЋЊЊ“Ќ€ЉЂ–€ЋЌЌЋ‰ Ѓ€Ѓ‹€Ћ’…Љ€
Ќ ¬ Ґ ¤® б«ЁиЄ®¬ ¬®Ј® дгЄжЁ© ў 襩 ЎЁЎ«Ё®вҐЄҐ. ” ЄвЁзҐбЄЁ, ¬
¤®бв в®з® иҐбвЁ дгЄжЁ©:
- „«п ЁЁжЁ «Ё§ жЁЁ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ;
- „«п гбв ®ўЄЁ Їа®жҐ¤гал ®Ўа Ў®вЄЁ ЇаҐалў Ёп;
- „«п з⥨п бЁ¬ў®« Ё§ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ;
- „«п § ЇЁбЁ бЁ¬ў®« ў Ї®б«Ґ¤®ў ⥫мл© Ї®ав;
- „«п ®ЇаҐ¤Ґ«ҐЁп б®бв®пЁп Ї®ав ;
- „«п § ЄалвЁп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав .
€ЁжЁ «Ё§ жЁп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав
-------------------------------------------
‚®в и ЈЁ, Є®в®ал¬ ¬л ¤®«¦л б«Ґ¤®ў вм:
- ‘ з « 㦮 гбв ®ўЁвм ®¬Ґа ЇҐаҐ¤ ў Ґ¬ле ЎЁв®ў, Є®«ЁзҐбвў® бв®Ї-
ЎЁв®ў Ё вЁЇ зҐв®бвЁ. ќв® ¤Ґ« Ґвбп б Ї®¬®ймо ॣЁбва гЇа ў«ҐЁп «ЁЁЁ
(LCR);
- 553 -
- ‡ ⥬ гбв ў«Ёў Ґвбп бЄ®а®бвм ЇҐаҐ¤ зЁ § Јаг§Є®© бв а襣® Ё ¬« ¤иҐЈ®
Ў ©в ¤Ґ«ЁвҐ«п;
- „ «ҐҐ 㦮 ЁЁжЁ «Ё§Ёа®ў вм UART ¤«п гЇа ў«ҐЁп ЇаҐалў Ёп¬Ё;
- Њл ¤®«¦л б®®ЎйЁвм Їа®Ја ¬¬Ёа㥬®¬г Є®ва®««Ґаг ЇаҐалў Ё© ЏЉ (PIC),
Є ЄЁҐ ЇаҐалў Ёп Ї® Ї®б«Ґ¤®ў ⥫쮬㠯®авг ® ¤®«¦Ґ ¤®ЇгбЄ вм;
- Ќ Є®Ґж, Ґ®Ўе®¤Ё¬® ЄвЁўЁ§Ёа®ў вм ЇаҐалў ЁҐ, гбв ®ўЁў ЎЁв 3 Ё«Ё 4 ў
ॣЁбвॠ¬ бЄЁ ЇаҐалў Ё© (б®Ў«о¤ п ®бв®а®¦®бвм, зв®Ўл Ґ Ё§¬ҐЁвм
¤агЈЁҐ ҐЈ® ЎЁвл).
’ҐЇҐам ®Ўбг¤Ё¬ нвЁ и ЈЁ ў ¤Ґв «пе. „«п ЁЁжЁ «Ё§ жЁЁ Ї®ав ¬л ¤®«¦л,
ў®-ЇҐаўле, гбв ®ўЁвм Є®«ЁзҐбвў® ЎЁв, Є®«ЁзҐбвў® бв®Ї-ЎЁв®ў Ё вЁЇ зҐв®бвЁ.
ќв® ¤Ґ« Ґвбп Їа®Ја ¬¬Ёа®ў ЁҐ¬ ॣЁбва 3 гЇа ў«ҐЁп «ЁЁЁ (LCR). Џ®б«Ґ
нв®Ј® 㦮 гбв ®ўЁвм бЄ®а®бвм ЇҐаҐ¤ зЁ б Ї®¬®ймо бв а襣® Ё ¬« ¤иҐЈ®
Ў ©в®ў ¤Ґ«ЁвҐ«п бЄ®а®бвЁ ЇҐаҐ¤ зЁ.
ђ Ў®в б ¤Ґ«ЁвҐ«Ґ¬ Ґ¬®Ј® § Їгв . ‚л § ҐвҐ, з⮠ॣЁбвал 0 Ё 1
ўлЇ®«пов ¤®Ї®«ЁвҐ«млҐ дгЄжЁЁ § Јаг§ЄЁ ¤ўгеЎ ©в®ў®Ј® ¤Ґ«ЁвҐ«п, ¤Ґ«ҐЁҐ
Є®в®ал© зЁб« 115200 ¤ Ґв १г«мв в, ЁбЇ®«м§гҐ¬л© UART Є Є ®Є®з ⥫м п
бЄ®а®бвм ЇҐаҐ¤ зЁ. Ћ¤ Є®, Є Є ¬л § Ґ¬, ॣЁбвал 0 Ё 1 пў«повбп
ᮮ⢥вб⢥® ॣЁбв஬ Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ (THR) Ё ॣЁбв஬ ЇаҐалў Ёп
(IER). Љ®Ј¤ ЎЁв 7 ॣЁбва гЇа ў«ҐЁп «ЁЁҐ© гбв ®ў«Ґ ў 1, ®Ё Ї®«гз ов
®¬Ґа 8 Ё 9, ® Їа®¤®«¦ ов ¤аҐб®ў вмбп Є Є 1 Ё 0. џб®?
‚ Є зҐб⢥ ЇаЁ¬Ґа ¤ ў ©вҐ гбв ®ўЁ¬ бЄ®а®бвм ЇҐаҐ¤ зЁ ў 9600 Ў®¤. Њл ¬®Ј«Ё
Ўл ©вЁ зЁб«®, Є®в®а®Ґ ЇаЁ ¤Ґ«ҐЁЁ ҐЈ® § 票п 115200 ¤ ў «® Ўл 9600.
ќв® зЁб«® 12. „ «ҐҐ ¬л ¤®«¦л § ЇЁегвм ҐЈ® ў ¬« ¤иЁ© Ё бв аиЁ© Ў ©вл. ‚
н⮬ б«гз Ґ ¬« ¤иЁ© Ў ©в Ўг¤Ґв а ўҐ 12, бв аиЁ© - 0. „ «ҐҐ 㦮
гбв ®ўЁвм ЎЁв 7 (DLAB) ॣЁбва гЇа ў«ҐЁп «ЁЁҐ© ў 1 Ё § ЇЁб вм ¬« ¤иЁ©
Ў ©в ў ॣЁбва 0, бв аиЁ© - ў ॣЁбва 1, зҐаҐ§ Є®в®алҐ ЇҐаҐ¤ лҐ Ў ©вл Ё
Ї®Ї ¤гв ў ॣЁбвал 8 Ё 9. Џ®б«Ґ нв®Ј® Ґ®Ўе®¤Ё¬® ®зЁбвЁвм ЎЁв 7 (DLAB)
ॣЁбва гЇа ў«ҐЁп «ЁЁЁ. ќв® Ўл«® Ўл Ґ в Є г¦ Ё Ї«®е®, ?
‡ ⥬ ¬л ЁЁжЁ «Ё§Ёа㥬 UART ¤«п ЇаЁҐ¬ ЇаҐалў Ё©. ЌҐ¬®Ј® Ї®Ј®ў®аЁ¬ ®Ў
н⮬. Љ®Ј¤ UART ЇаЁЁ¬ Ґв ¤ лҐ, бЁ¬ў®« Ўг¤Ґв ®бв ў вмбп ў ЎгдҐаҐ ЇаЁҐ¬
в®«мЄ® ¤® вҐе Ї®а, Ї®Є Ґ ЇаЁЎг¤Ґв б«Ґ¤гойЁ©, Ї®б«Ґ 祣® ў®ўм ЇаЁиҐ¤иЁ©
бЁ¬ў®« § ¬ҐбвЁв бв ал©, Ґ§ ўЁбЁ¬® ®в в®Ј®, Ўл« «Ё ® бзЁв . Њл Ґ ¬®¦Ґ¬
нв®Ј® ¤®ЇгбвЁвм, Ё зҐ Ї®вҐа塞 Ёд®а¬ жЁо. ‘гйҐбвўгҐв ¤ў аҐиҐЁп нв®©
Їа®Ў«Ґ¬л:
- ‚®-ЇҐаўле, ¬л ¬®Ј«Ё Ўл ў жЁЄ«Ґ ®Їа иЁў вм ЇаЁҐ¬л© ЎгдҐа ॣЁбва ,
зв®Ўл Ґ Ї®вҐапвм ЁЄ ЄЁе ¤ ле. Ќ® нв® Ўл«® Ўл ЎҐбЇ®«Ґ§®© ва в®©
ўаҐ¬ҐЁ;
- ‚®-ўв®але (Ё нв® Ј®а §¤® «гзиҐ), ¬®¦® ЇЁб вм ¤«п нв®© 楫Ё
Їа®жҐ¤гаг ®Ўа Ў®вЄЁ ЇаҐалў Ёп (Ё«Ё ISR).
- 554 -
…б«Ё ўл Ї®¬ЁвҐ, ў 12-© Ј« ўҐ "ЊЁ¬®Ґ ўаҐ¬п, ЇаҐалў Ёп Ё
¬г«мвЁ§ ¤ з®бвм", Ј®ў®аЁ«®бм, зв® ў ‘Ё Ґб«®¦® гбв ®ўЁвм ®ў®Ґ
ЇаҐалў ЁҐ, ЁбЇ®«м§гп Є«о祢®Ґ б«®ў® _interrupt. Њл ЇЁиҐ¬ Їа®жҐ¤гаг,
Є®в®а п Ўг¤Ґв ЄвЁўЁ§Ёа®ў вмбп ўбпЄЁ© а § б ЇаЁе®¤®¬ ЇаҐалў Ёп. Ќ® Є Є ¬
б®®ЎйЁвм UART, зв® ЇаҐалў ЁҐ ®Ў а㦥®? …б«Ё ўл ЇаЁбв «м® Ї®б¬®ваЁвҐ
®ЇЁб ЁҐ ॣЁбва®ў, в® Ї®©¬ҐвҐ, зв® ў ¬ Ґ®Ўе®¤Ё¬® гбв ®ўЁвм ЎЁв §¤Ґбм,
ЎЁв в ¬, Ё UART Ўг¤Ґв ¤Ґ« вм бў®о а Ў®вг. —в®Ўл § зЁвм ЇаҐалў Ёп, ¬л
¤®«¦л гбв ®ўЁвм б«Ґ¤гойЁҐ ЎЁвл ў UART:
- ЃЁв 0 (RxRDY) ॣЁбва ЇаҐалў Ёп (IER) ¤®«¦Ґ Ўлвм гб ®ў«Ґ ў 1;
- ЃЁв 3 (GR02) ॣЁбва гЇа ў«ҐЁп ¬®¤Ґ¬®¬ (MCR) ¤®«¦Ґ Ўлвм гбв ®ў«Ґ
ў 1.
Џ®б«Ґ нв®Ј® ¬л 㦥 Ј®в®ўл ЇаЁЁ¬ вм ЇаҐалў Ёп, Їа ўЁ«м®? ЋиЁЎ ҐвҐбм!
Ќг¦® ᤥ« вм ҐйҐ ®¤г ўҐйм. Њл ¤®«¦л б®®ЎйЁвм Їа®Ја ¬¬Ёа㥬®¬г
Є®ва®««Ґаг ЇаҐалў Ё© (PIC), Є ЄЁҐ Ё¬Ґ® ЇаҐалў Ёп Ї® Ї®б«Ґ¤®ў ⥫쮬г
Ї®авг ® ¤®«¦Ґ § ¤Ґ©бвў®ў вм. —в®Ўл ўлЇ®«Ёвм нв®, Ґ®Ўе®¤Ё¬® Ё§¬ҐЁвм
гбв ®ўЄЁ ў ॣЁбвॠ¬ бЄЁ ЇаҐалў Ёп (IMR) PIC` , Є®в®ал© ¤®бвгЇҐ зҐаҐ§
Ї®ав 21h. ’ Ў«Ёж 14.3 Ї®Є §лў Ґв ®Ў®§ 票Ґ ЎЁв®ў IMR.
’ Ў«Ёж 14.3. ђҐЈЁбва ¬ бЄЁ ЇаҐалў Ёп (IMR) PIC` .
-----------------------------------------------------------------------
ЃЁв 0: IRQ0 - ЁбЇ®«м§гҐвбп ¤«п в ©¬Ґа
ЃЁв 1: IRQ1 - ЁбЇ®«м§гҐвбп ¤«п Є« ўЁ вгал
ЃЁв 2: IRQ2 - § १ҐаўЁа®ў
ЃЁв 3: IRQ3 - COM2 Ё«Ё COM4
ЃЁв 4: IRQ4 - COM1 Ё«Ё COM3
ЃЁв 5: IRQ5 - ¦ҐбвЄЁ© ¤ЁбЄ
ЃЁв 6: IRQ6 - ЈЁЎЄЁ© ¤ЁбЄ
ЃЁв 7: IRQ7 - ЇаЁвҐа
_________________________________________________________________________
’ ЄЁ¬ ®Ўа §®¬, Ї®б«Ґ¤пп ўҐйм, Є®в®аго ¬ Ґ®Ўе®¤Ё¬® ᤥ« вм ¤«п ®Ўа Ў®вЄЁ
ЇаҐалў Ё© Ё § ЇгбЄ - ЄвЁўЁа®ў вм 㦮Ґ ЇаҐалў ЁҐ Ї® ЎЁвг 3 Ё«Ё 4. Ќ®
Ўг¤м⥠®бв®а®¦л! ђҐЈЁбва ЁўҐавЁа®ў , в Є зв® 0 ®§ з Ґв ўЄ«озҐ, 1 -
ўлЄ«озҐ.
Ћбв®а®¦®!
----------------
Ѓг¤м⥠®бв®а®¦л, Є®Ј¤ ЁбЇ®«м§гҐвҐ ॣЁбва ¬ бЄЁ ЇаҐалў Ё©. Ћ
¤Ґ©бвўЁвҐ«м® ¬®¦Ґв ЇаЁзЁЁвм ҐЇаЁпв®бвЁ Є®¬ЇмовҐаг. џ ЇаҐ¤« Ј о б з «
бзЁвлў вм ¤ лҐ Ё ¬ бЄЁа®ў вм Ёе Ї® и Ў«®г, Ї®в®¬ 㦥 ЇЁб вм ®ўлҐ
¤ лҐ.
- 555 -
“бв ®ўЄ ЇаҐалў Ёп
--------------------------
Ћ¤ ¦¤л Їа®©¤п зҐаҐ§ нвЁ д®Єгбл, зв®Ўл гбв ®ўЁвм Їа®б⮥ ЇаҐалў ЁҐ, ¬л
¬®¦Ґ¬ ®Є®з вҐ«м® Ёбв ««Ёа®ў вм и б®ЎбвўҐл© ўҐЄв®а ISR, § ўЁбпйЁ© ®в
COM-Ї®ав . ‡ Ї®¬ЁвҐ, зв® Ї®авл 3 Ё 4 ЁбЇ®«м§гов ⥠¦Ґ б ¬лҐ ЇаҐалў Ёп,
зв® Ё Ї®авл 1 Ё 2 ᮮ⢥вб⢥®.
’ Ў«Ёж 14.4. ‚ҐЄв®ал ЇаҐалў Ёп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав .
------------------------------------------------------------------------
‚ҐЄв®а Ќ®¬Ґа Ђ¤аҐб п дгЄжЁп
------------------------------------------------------------------------
0x0B 0x002C-0x002F RS-232 Ї®ав 1
0x0C 0x0030-0x0033 RS-232 Ї®ав 2
________________________________________________________________________
‚бҐ, зв® ¬ 㦮 ᤥ« вм ¤«п гбв ®ўЄЁ ®ў®Ј® ISR, нв® ЁбЇ®«м§®ў вм
дгЄжЁо ‘Ё _dos_getvect(), зв®Ўл § Ї®¬Ёвм ЇаҐ¦ҐҐ § 票Ґ ўҐЄв®а , Ё
_dos_setvect(), зв®Ўл Ёбв ««Ёа®ў вм и б®ЎбвўҐл© ISR ¬Ґбв® бв а®Ј®.
„ «ҐҐ, б ЇаЁе®¤®¬ ЇаҐалў Ёп (в® Ґбвм Є®Ј¤ Ї®«гзҐ бЁ¬ў®«), Ўг¤Ґв
ўл§лў вмбп и Їа®жҐ¤га . ‡ўгзЁв нв® ўҐ«ЁЄ®«ҐЇ®, ® зв® ® Ўг¤Ґв ¤Ґ« вм?
Ќ и ISR ¤®«¦Ґ ўлЇ®«пвм в®«мЄ® ®¤г § ¤ зг - Ї®«гзЁвм бЁ¬ў®« Ё§
ॣЁбва ЇаЁҐ¬®Ј® ЎгдҐа (RBR) Ё Ї®¬ҐбвЁвм ҐЈ® ў Їа®Ја ¬¬л© ЎгдҐа. —в®Ўл
®б®ў п Їа®Ја ¬¬ ¬®Ј« Ўа вм Ї®бвгЇ ойЁҐ бЁ¬ў®«л Ї® ¬ҐаҐ ¤®Ў®бвЁ, ¬л
ђЁб.14.3. ЃгдҐа б ЇҐаҐ§ ЇЁбмо.
- 556 -
¤®«¦л ЎгдҐаЁ§Ёа®ў вм ўў®¤. ‘ нв®© ¬лб«мо ᮧ¤ ¤Ё¬ ЎгдҐа б ЇҐаҐ§ ЇЁбмо Ё
гбв ®ўЁ¬ ҐЈ® а §¬Ґа а ўл¬ 128 Ў ©в ¬, е®вп ў®®ЎйҐ-в®, ҐЈ® ¤«Ё ¬®¦Ґв
Ўлвм «оЎ®©.
Ђ«Ј®аЁв¬ ЎгдҐаЁ§ жЁЁ а Ў®в Ґв в Є. Џ®«гзҐл© Ё§ RBR б«Ґ¤гойЁ© бЁ¬ў®«
Ї®¬Ґй Ґвбп ў ЎгдҐа ў ⥪гйго Ї®§ЁжЁо. „ «ҐҐ ⥪гйЁ© Ё¤ҐЄб ЎгдҐа
ЁЄаҐ¬ҐвЁагҐвбп. Љ®Ј¤ Ї®§ЁжЁп § ЇЁбЁ ў ЎгдҐаҐ ¤®е®¤Ёв ¤® Є®ж , ®
ЇҐаҐ¬Ґй Ґвбп Є з «г. Љ Є ўл Ї®Ё¬ ҐвҐ, ЇаЁ н⮬ ¤ лҐ, Є®в®алҐ Ўл«Ё
§ ЇЁб л а ҐҐ, ®Є ¦гвбп ЇҐаҐЄалвл. Ќ ¤Ґобм, зв® ¤® в®Ј®, Є Є нв®
Їа®Ё§®©¤Ґв, ®б®ў п Їа®Ја ¬¬ гбЇҐҐв Їа®зЁв вм бЁ¬ў®«л Ё§ ЎгдҐа Ё
®Ўа Ў®в вм Ї®«гзҐлҐ ¤ лҐ. ђЁб.14.3 Ї®пбпҐв ЇаЁжЁЇ а Ў®вл ЎгдҐа б
ЇҐаҐ§ ЇЁбмо.
Њл ¤®«¦л ®Ўбг¤Ёвм ҐйҐ ®¤г в®Є®бвм, ЇаҐ¦¤Ґ 祬 § Є®зЁ¬ а §Ј®ў®а ®Ў ISR.
ЌҐЇ®б।б⢥® ЇҐаҐ¤ ўл室®¬ Ё§ Їа®жҐ¤гал ®Ўа Ў®вЄЁ ЇаҐалў Ёп Ґ®Ўе®¤Ё¬®
б®®ЎйЁвм PIC`г ® ҐҐ § ўҐа襨Ё. „«п нв®Ј® ў Є®Ґж Їа®жҐ¤гал 㦮 ўбв ўЁвм
Є®¬ ¤г § ЇЁбЁ ў Ї®ав 20h § 票п 20h. …б«Ё нв®Ј® Ґ ᤥ« вм, Їа®Ё§®©¤Ґв
бЎ®© бЁб⥬л. Ќ® нв® - ¬Ґ¦¤г Їа®зЁ¬, ЁЎ® Ї®Є ўл ЁбЇ®«м§гҐвҐ дгЄжЁЁ ‘Ё, ®Ў
н⮬ Ґ бв®Ёв ЎҐбЇ®Є®Ёвмбп. ‚®в Ґб«Ё Ўл ўл аҐиЁ«Ё ЇЁб вм Їа®Ја ¬¬л
ЁбЄ«озЁвҐ«м® бᥬЎ«ҐаҐ, в® ў®Їа®б Їа ўЁ«м®Ј® § ўҐаиҐЁп ЇаҐалў Ё©
®Є § «бп Ўл ўҐбм¬ Євг «Ґ Ё ¬л ®Ўбг¤Ё«Ё Ўл ҐЈ® Ў®«ҐҐ Ї®¤а®Ў®. Ќ® ¤ ў ©вҐ
Ї®Є ®бв ®ўЁ¬бп ‘Ё.
‹ЁбвЁЈ 14.1 Ї®Є §лў Ґв ®ЇҐа жЁЁ б ISR.
‹ЁбвЁЈ 14.1. ЋЇҐа жЁп ISR.
--------------------------------------------------------------------------
void _interrupt _far Serial_Isr(void)
{
// ќв® Їа®жҐ¤га ®Ўа Ў®вЄЁ ЇаҐалў Ёп COM-Ї®ав . Ћ ®зҐм Їа®бв .
// ЏаЁ ўл§®ўҐ ® зЁв Ґв Ї®«гзҐл© бЁ¬ў®« Ё§ ॣЁбва 0 Ї®ав
// Ё Ї®¬Ґй Ґв ҐЈ® ў ЎгдҐа Їа®Ја ¬¬л. ЏаЁ¬Ґз ЁҐ: п§лЄ ‘Ё б ¬
// § Ў®вЁвбп ® б®еа ҐЁЁ ॣЁбва®ў Ё ў®ббв ®ў«ҐЁЁ б®бв®пЁп
// § ЇаҐй Ґ¬ а Ў®вг ўбҐе ¤агЈЁе дгЄжЁ©
// ў® Ё§ЎҐ¦ ЁҐ Ё§¬ҐҐЁп ЎгдҐа
serial_lock = 1;
// § ЇЁблў Ґ¬ бЁ¬ў®« ў б«Ґ¤гойго Ї®§ЁжЁо ЎгдҐа
ser_ch = _inp(open_port + SER_RBF);
// гбв ў«Ёў Ґ¬ ®ўго ⥪гйго Ї®§ЁжЁо ЎгдҐа
if (++ser_end > SERIAL_BUFF_SIZE-1)
ser_end = 0;
// Ї®¬Ґй Ґ¬ бЁ¬ў®« ў ЎгдҐа
ser_buffer[ser_end] = ser_ch;
++char_ready;
- 557 -
// ў®ббв ў«Ёў Ґ¬ б®бв®пЁҐ Є®ва®««Ґа ЇаҐалў Ё©
_outp(PIC_ICR,0x20);
// а §аҐи Ґ¬ а Ў®вг б ЎгдҐа®¬
serial_lock = 0;
} // Є®Ґж дгЄжЁЁ
_____________________________________________________________________
Џа®Ја ¬¬ Ё§ ‹ЁбвЁЈ 14.1 ўлЇ®«пҐв ўбҐ в®, ® 祬 ¬л Ј®ў®аЁ«Ё. Ћ¤ Є®
бв®Ёв ®Ўа вЁвм ўЁ¬ ЁҐ ®¤г ¬ «ҐмЄго ¤Ґв «м. ‚ Їа®Ја ¬¬г ўЄ«озҐ
ЇҐаҐ¬Ґ п serial_lock, Є®в®а п ®ЎҐаҐЈ Ґв ®б®ўго Їа®Ја ¬¬г ®в Є®д«ЁЄв®ў,
бўп§ ле б ®Ўа 饨Ґ¬ Є ЎгдҐаг, Ї®Є ISR ®Ў®ў«пҐв ҐЈ®. ’ Є®© ЇаЁҐ¬
§лў Ґвбп "Ў«®ЄЁа®ўЄ®©" Ё«Ё "ᥬ д®а®¬". ‚ DOS`Ґ Ї®¤®Ў®© Їа®Ў«Ґ¬л ЁЄ®Ј¤
Ґ ў®§ЁЄ Ґв Ї® ап¤г ЇаЁзЁ, ® Є®в®але Ј®ў®аЁвм б«ЁиЄ®¬ ¤®«Ј®.
ЌҐ®Ўе®¤Ё¬®бвм ॣ㫨஢ Ёп ¤®бвгЇ Є ®ЎйЁ¬ ¤ л¬ ў®§ЁЄ Ґв в®«мЄ® ¤«п
Ї®«®бвмо ¬®Ј®§ ¤ зле бЁб⥬. ’Ґ¬ Ґ ¬ҐҐҐ, ўўҐ¤ҐЁҐ "ᥬ д®а®ў" -
е®а®и п Їа ЄвЁЄ , ¤ ¦Ґ Ґб«Ё ¤ ®¬ нв ЇҐ в Є п вҐеЁЄ Ё Ґ г¦ . ‚бҐ,
¬л Ї®звЁ г 楫Ё!
—⥨Ґ бЁ¬ў®« Ё§ ЎгдҐа
------------------------------
’ҐЇҐам ¬ Ґ®Ўе®¤Ё¬® Ё¬Ґвм ў®§¬®¦®бвм бзЁвлў вм бЁ¬ў®« Ё§ ЎгдҐа . ќв®
«ҐЈЄ®. ‚ ЇаЁжЁЇҐ, ¤®бв в®з® § Ї®¬Ёвм ®ўл© Ё¤ҐЄб, гЄ §лў ойЁ©
⥪гйго п祩Єг ЎгдҐа , Ё§ Є®в®а®© Ўг¤Ґв Їа®зЁв б«Ґ¤гойЁ© бЁ¬ў®«. Ќ® зв®
Ґб«Ё ¬л Ї®Їлв Ґ¬бп Їа®зЁв вм бЁ¬ў®« Ё Ё§¬ҐЁвм Ё¤ҐЄб, ў в® ўаҐ¬п Є Є
®б®ў п Їа®Ја ¬¬ 㦥 ЁбзҐаЇ « ўбҐ ўе®¤лҐ ¤ лҐ, ЇаЁиҐ¤иЁҐ ®в
ЇаҐалў Ёп? ‚ н⮬ б«гз Ґ дгЄжЁп Їа®бв®- Їа®бв® Ўг¤Ґв ў®§ўа й вм бЁ¬ў®«
0. ‹ЁбвЁЈ 14.2 ᮤҐа¦Ёв Ї®¤е®¤пйго Їа®Ја ¬¬г.
‹ЁбвЁЈ 14.2. ”гЄжЁп Serial_Read.
-----------------------------------------------------------------------
int Serial_Read()
{
// дгЄжЁп ў®§ўа й Ґв Ї®б«Ґ¤Ё© § ЇЁб л©
// ў Їа®Ја ¬¬л© ЎгдҐа бЁ¬ў®«
int ch;
// ¦¤Ґ¬ § ўҐа襨п дгЄжЁЁ ®Ўа Ў®вЄЁ ЇаҐалў Ёп
while(serial_lock){}
// Їа®ўҐа塞, Ґбвм «Ё бЁ¬ў®«л ў ЎгдҐаҐ
if (ser_end != ser_start)
- 558 -
{
// ¬ҐпҐ¬ § 票Ґ з «м®© Ї®§ЁжЁЁ ЎгдҐа
if (++ser_start > SERIAL_BUFF_SIZE-1)
ser_start = 0;
// зЁв Ґ¬ бЁ¬ў®«
ch = ser_buffer[ser_start];
// ў ЎгдҐаҐ бв «® ®¤Ё¬ бЁ¬ў®«®¬ ¬ҐмиҐ
if (char_ready > 0)
--char_ready;
//ў®§ўа й Ґ¬ бЁ¬ў®« ўл§ў ўиҐ© дгЄжЁЁ
return(ch);
} // Є®Ґ© ¤Ґ©бвўЁ©, Ґб«Ё ЎгдҐа Ґ Їгбв
else
// ЎгдҐа Ўл« Їгбв - ў®§ўа й Ґ¬ 0
return(0);
} // Є®Ґж дгЄжЁЁ
_________________________________________________________________________
”гЄжЁп serial_read Ї®«гз Ґв б«Ґ¤гойЁ© ¤®бвгЇл© бЁ¬ў®« Ё§ ЎгдҐа Ё
ў®§ўа й Ґв ҐЈ®. …б«Ё ў ЎгдҐаҐ Ґ ®бв «®бм ¤ ле, ® ў®§ўа й Ґв 0.
‡ ЇЁбм ў Ї®б«Ґ¤®ў ⥫мл© Ї®ав
----------------------------------
Ќ ¬ ®бв «®бм ᤥ« вм дгЄжЁо, Є®в®а п ¬®Ј« Ўл § ЇЁблў вм бЁ¬ў®«л ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. „«п ўлЇ®«ҐЁп нв®Ј® ¤®бв в®з® § ЇЁб вм ¤ лҐ ў
ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ. Ћ¤ Є® ¬л ¤®«¦л ᤥ« вм в Є, зв®Ўл
®¤®ўаҐ¬Ґ® ўлЇ®«п«Ёбм ¤ў гб«®ўЁп:
- ‚®-ЇҐаўле, ISR Ґ ¬®¦Ґв Ўлвм ЄвЁўҐ;
- ‚®-ўв®але, ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ ¤®«¦Ґ Ўлвм Їгбв.
ЏҐаў®Ґ гб«®ўЁҐ ўлЇ®«пҐвбп Є Є б ¬® б®Ў®© а §г¬Ґо饥бп. Ћ¤ Є® ўв®а®Ґ
¤®«¦® Ўлвм Їа®ўҐаҐ® б Ї®¬®ймо Їпв®Ј® ЎЁв ॣЁбва б®бв®пЁп «ЁЁЁ. …б«Ё
нв®в ЎЁв гбв ®ў«Ґ, ЇҐаҐ¤ взЁЄ Їгбв Ё ¬л ¬®¦Ґ¬ Ї®б« вм ў Ї®ав б«Ґ¤гойЁ©
бЁ¬ў®«.
‹ЁбвЁЈ 14.3 ᮤҐа¦Ёв Їа®Ја ¬¬г ¤«п ЇҐаҐ¤ зЁ бЁ¬ў®« .
- 559 -
‹ЁбвЁЈ 14.3. ”гЄжЁп Serial_Write.
------------------------------------------------------------------------
Serial_Write(char ch)
{
// нв дгЄжЁп § ЇЁблў Ґв бЁ¬ў®« ў ЎгдҐа Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ,
// ® ў з «Ґ ® ®¦Ё¤ Ґв, Ї®Є ® ®бў®Ў®¤Ёвбп
// ЏаЁ¬Ґз ЁҐ: нв дгЄжЁп Ґ бўп§ б ЇаҐалў Ёп¬Ё
// Ё § ЇаҐй Ґв Ёе ўаҐ¬п а Ў®вл
// ¦¤Ґ¬ ®бў®Ў®¦¤ҐЁп ЎгдҐа
while(!(_inp(open_port + SER_LSR) & 0x20)){}
// § ЇаҐй Ґ¬ ЇаҐалў Ёп
_asm cli
// § ЇЁблў Ґ¬ бЁ¬ў®« ў Ї®ав
_outp(open_port + SER_THR, ch);
// а §аҐи Ґ¬ ЇаҐалў Ёп б®ў
_asm sti
} // Є®Ґж дгЄжЁЁ
_________________________________________________________________________
ЋЎа вЁвҐ ўЁ¬ ЁҐ ®¤г еЁва®бвм, ЇаЁ¬ҐҐго ў дгЄжЁЁ Serial_Write: ®
§ ЇаҐй Ґв ЇаҐалў Ёп ЇҐаҐ¤ § ЇЁбмо бЁ¬ў®« ў Ї®ав Ё § ⥬ ў®ўм а §аҐи Ґв
Ёе.
ЉЋЊЊ“Ќ€ЉЂ–€ЋЌЌЂџ ЏђЋѓђЂЊЊЂ: NLINK
Џа®Ја ¬¬ NLINK § ўҐаи Ґв и Ё§ўЁ«Ёбвл© Їгвм ®бў®ҐЁп Ї®б«Ґ¤®ў ⥫мле
Є®¬¬гЁЄ жЁ© ¤«п ЏЉ. џ ЇЁб « нвг ҐЎ®«миго Є®¬¬гЁЄ жЁ®го Їа®Ја ¬¬Єг,
зв®Ўл ўл ¬®Ј«Ё «гзиҐ ®жҐЁвм Їа®©¤Ґ®Ґ. Ћ ᮥ¤ЁпҐв ¤ў ЏЉ зҐаҐ§ COM1
Ё«Ё COM2 Ё Ї®§ў®«пҐв ¤ўг¬ ЁЈа®Є ¬ ®Ўй вмбп Ї® г«м-¬®¤Ґ¬®¬г Є ЎҐ«о. „«п
ўл室 Ё§ Їа®Ја ¬¬л ¤® ¦ вм Є« ўЁиг Esc. ‹ЁбвЁЈ 14.4 ᮤҐа¦Ёв
§ Є®зҐго Є®¬¬гЁЄ жЁ®го ЎЁЎ«Ё®вҐЄг Ё Ј« ўго з бвм Їа®Ја ¬¬л NLINK.
‹ЁбвЁЈ 14.4. Љ®¬¬гЁЄ жЁ® п Їа®Ја ¬¬ NLINK (NLINK.C).
-----------------------------------------------------------------------
// I N C L U D E S ///////////////////////////////////////////////////////////
#include <dos.h>
#include <bios.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <graph.h>
// D E F I N E S ////////////////////////////////////////////////////////////
// registers in UART
#define SER_RBF 0 // the read buffer
#define SER_THR 0 // the write buffer
#define SER_IER 1 // the int. enable register
#define SER_IIR 2 // the int. identification register
#define SER_LCR 3 // control data config. and divisor latch
#define SER_MCR 4 // modem control reg.
#define SER_LSR 5 // line status reg.
#define SER_MSR 6 // modem status of cts, ring etc.
#define SER_DLL 0 // the low byte of baud rate divisor
#define SER_DLH 1 // the hi byte of divisor latch
// bit patterns for control registers
#define SER_BAUD_1200 96 // baud rate divisors for 1200 baud - 19200
#define SER_BAUD_2400 48
#define SER_BAUD_9600 12
#define SER_BAUD_19200 6
#define SER_GP02 8 // enable interrupt
#define COM_1 0x3F8 // base port address of port 0
#define COM_2 0x2F8 // base port address of port 1
#define SER_STOP_1 0 // 1 stop bit per character
#define SER_STOP_2 4 // 2 stop bits per character
#define SER_BITS_5 0 // send 5 bit characters
#define SER_BITS_6 1 // send 6 bit characters
#define SER_BITS_7 2 // send 7 bit characters
#define SER_BITS_8 3 // send 8 bit characters
#define SER_PARITY_NONE 0 // no parity
#define SER_PARITY_ODD 8 // odd parity
#define SER_PARITY_EVEN 24 // even parity
#define SER_DIV_LATCH_ON 128 // used to turn reg 0,1 into divisor latch
#define PIC_IMR 0x21 // pic's interrupt mask reg.
#define PIC_ICR 0x20 // pic's interupt control reg.
#define INT_SER_PORT_0 0x0C // port 0 interrupt com 1 & 3
#define INT_SER_PORT_1 0x0B // port 0 interrupt com 2 & 4
#define SERIAL_BUFF_SIZE 128 // current size of circulating receive buffer
// G L O B A L S /////////////////////////////////////////////////////////////
void (_interrupt _far *Old_Isr)(); // holds old com port interrupt handler
char ser_buffer[SERIAL_BUFF_SIZE]; // the receive buffer
int ser_end = -1,ser_start=-1; // indexes into receive buffer
int ser_ch, char_ready=0; // current character and ready flag
int old_int_mask; // the old interrupt mask on the PIC
int open_port; // the currently open port
int serial_lock = 0; // serial ISR semaphore so the buffer
// isn't altered will it is being written
// to by the ISR
//////////////////////////////////////////////////////////////////////////////
void _interrupt _far Serial_Isr(void)
{
// this is the ISR (Interrupt Service Routine) for the com port. It is very
// simple. When it gets called, it gets the next character out of the receive
// buffer register 0 and places it into the software buffer. Note: C takes care
// of all the register saving and house work. Cool huh!
// lock out any other functions so the buffer doesn't get corrupted
serial_lock = 1;
// place character into next position in buffer
ser_ch = _inp(open_port + SER_RBF);
// wrap buffer index around
if (++ser_end > SERIAL_BUFF_SIZE-1)
ser_end = 0;
// move character into buffer
ser_buffer[ser_end] = ser_ch;
++char_ready;
// restore PIC
_outp(PIC_ICR,0x20);
// undo lock
serial_lock = 0;
} // end Serial_Isr
//////////////////////////////////////////////////////////////////////////////
int Ready_Serial()
{
// this functions returns true if there are any characters waiting and 0 if
// the buffer is empty
return(char_ready);
} // end Ready_Serial
//////////////////////////////////////////////////////////////////////////////
int Serial_Read()
{
// this function reads a character from the circulating buffer and returns it
// to the caller
int ch;
// wait for isr to end
while(serial_lock){}
// test if there is a character(s) ready in buffer
if (ser_end != ser_start)
{
// wrap buffer index if needed
if (++ser_start > SERIAL_BUFF_SIZE-1)
ser_start = 0;
// get the character out of buffer
ch = ser_buffer[ser_start];
// one less character in buffer now
if (char_ready > 0)
--char_ready;
// send data back to caller
return(ch);
} // end if a character is in buffer
else
// buffer was empty return a NULL i.e. 0
return(0);
} // end Serial_read
//////////////////////////////////////////////////////////////////////////////
Serial_Write(char ch)
{
// this function writes a character to the transmit buffer, but first it
// waits for the transmit buffer to be empty. note: it is not interrupt
// driven and it turns of interrupts while it's working
// wait for transmit buffer to be empty
while(!(_inp(open_port + SER_LSR) & 0x20)){}
// turn off interrupts for a bit
_asm cli
// send the character
_outp(open_port + SER_THR, ch);
// turn interrupts back on
_asm sti
} // end Serial_Write
//////////////////////////////////////////////////////////////////////////////
Open_Serial(int port_base, int baud, int configuration)
{
// this function will open up the serial port, set it's configuration, turn
// on all the little flags and bits to make interrupts happen and load the
// ISR
// save the port for other functions
open_port = port_base;
// first set the baud rate
// turn on divisor latch registers
_outp(port_base + SER_LCR, SER_DIV_LATCH_ON);
// send low and high bytes to divsor latches
_outp(port_base + SER_DLL, baud);
_outp(port_base + SER_DLH, 0);
// set the configuration for the port
_outp(port_base + SER_LCR, configuration);
// enable the interrupts
_outp(port_base + SER_MCR, SER_GP02);
_outp(port_base + SER_IER, 1);
// hold off on enabling PIC until we have the ISR installed
if (port_base == COM_1)
{
Old_Isr = _dos_getvect(INT_SER_PORT_0);
_dos_setvect(INT_SER_PORT_0, Serial_Isr);
printf("\nOpening Communications Channel Com Port #1...\n");
}
else
{
Old_Isr = _dos_getvect(INT_SER_PORT_1);
_dos_setvect(INT_SER_PORT_1, Serial_Isr);
printf("\nOpening Communications Channel Com Port #2...\n");
}
// enable interrupt on PIC
old_int_mask = _inp(PIC_IMR);
_outp(PIC_IMR, (port_base==COM_1) ? (old_int_mask & 0xEF) : (old_int_mask & 0xF7 ));
} // Open_Serial
//////////////////////////////////////////////////////////////////////////////
Close_Serial(int port_base)
{
// this function closes the port which entails turning off interrupts and
// restoring the old interrupt vector
// disable the interrupts
_outp(port_base + SER_MCR, 0);
_outp(port_base + SER_IER, 0);
_outp(PIC_IMR, old_int_mask );
// reset old isr handler
if (port_base == COM_1)
{
_dos_setvect(INT_SER_PORT_0, Old_Isr);
printf("\nClosing Communications Channel Com Port #1.\n");
}
else
{
_dos_setvect(INT_SER_PORT_1, Old_Isr);
printf("\nClosing Communications Channel Com Port #2.\n");
}
} // end Close_Serial
//////////////////////////////////////////////////////////////////////////////
main()
{
char ch;
int done=0;
printf("\nNull Modem Terminal Communications Program.\n\n");
// open com 1
Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
// main loop
while(!done)
{
// try and get a character from local machine
if (kbhit())
{
// get the character from keyboard
ch = getch();
printf("%c",ch);
// send the character to other machine
Serial_Write(ch);
// has user pressed ESC ? if so bail.
if (ch==27) done=1;
// test for CR, if so add an line feed
if (ch==13)
{
printf("\n");
Serial_Write(10);
}
} // end if kbhit
// try and get a character from remote
if (ch = Serial_Read())
printf("%c", ch);
if (ch == 27)
{
printf("\nRemote Machine Closing Connection.");
done=1;
} // end if remote close
} // end while
// close the connection and blaze
Close_Serial(COM_1);
} // end main
__________________________________________________________________________
€§г票Ґ ЇаЁжЁЇ®ў Є®¬¬гЁЄ жЁЁ зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав ўў®¤ /ўлў®¤
Ї®е®¦Ґ Ї®бҐйҐЁҐ §гЎ®Ј® ўа з - ЁЄ®¬г Ґ а ўЁвбп, ® ўбҐ¬ ЇаЁе®¤Ёвбп
зҐаҐ§ нв® Їа®©вЁ. ЊҐ ¦ «м, зв® п Ї®¤ўҐаЈ о ў б Ї®¤®Ў®© ЇлвЄҐ, ® нв®
ЁбЄ«озЁвҐ«м® ў ¦® § вм. Џ®бҐ¬г Ґ Ўг¤г ў б ¤®«миҐ Ёбвп§ вм Ё ЇҐаҐ©¤г Є
Ў®«ҐҐ ЁвҐаҐб®© ⥬Ґ ЁЈа®ўле Є®¬¬гЁЄ жЁ©.
‘’ђЂ’…ѓ€џ €ѓђЋ‚›• ЉЋЊЊ“Ќ€ЉЂ–€‰
‘®Ґ¤ЁҐЁҐ ¤ўге ЏЉ ў § ЇгбЄ Ёе бҐвҐў®© ЁЈал пў«пҐвбп Є®¬Ї«ҐЄб®©
§ ¤ 祩, Ґ Ё¬Ґо饩 Є Є®Ј®-в® ®ЎйҐЈ® аҐиҐЁп. ‚ᥠ§ ўЁбЁв ®в Є®ЄаҐв®©
楫Ё, Є®в®аго ўл ЇҐаҐ¤ б®Ў®© Ї®бв ўЁвҐ Ё аҐиҐЁҐ Їа®Ў«Ґ¬л, ᪮॥ ўбҐЈ®,
Ўг¤Ґв ¬Ґпвмбп ®в ЁЈал Є ЁЈаҐ. Ћ¤ Є®, бгйҐбвўгҐв ҐбЄ®«мЄ® Їа ўЁ«, Є®в®алҐ
ўбҐЈ¤ 㦮 ЇаЁЁ¬ вм ў® ўЁ¬ ЁҐ. €¬Ґ® ®Ў н⮬ ¬л Ё Ї®Ј®ў®аЁ¬ ў
Ў«Ё¦ ©иҐҐ ўаҐ¬п.
‚ ЁЈаҐ ¤«п ¤ўге гз бвЁЄ®ў, Є®в®а п § ЇгбЄ Ґвбп ®¤®¬ Є®¬ЇмовҐаҐ, ®Ў
ЁЈа®Є Ё¬Ґов а ўлҐ и бл ў«Ёпвм ЁЈа®ўго бЁвг жЁо. ђЁб.14.4 Ї®Є §лў Ґв
¤ў а §«Ёзле ЇаҐ¤бв ў«ҐЁп нв®© а §®ўЁ¤®бвЁ ЁЈа.
Ћ¤ Є®, Ґб«Ё в Є п ЁЈа § ЇгбЄ Ґвбп а §ле ¬ иЁ е, ў§ Ё¬®®в®иҐЁп
ЁЈа®Є®ў б ўгв२¬ ¬Ёа®¬ Є®¬ЇмовҐа®ў ЇаҐ¤бв ў«пҐвбп Ў®«ҐҐ б«®¦л¬, Ё нв®
®ва ¦Ґ® аЁб.14.5.
- 567 -
ђЁб.14.4. ђ §«ЁзлҐ ЇаҐ¤бв ў«ҐЁп ЁЈал ¤«п ¤ў®Ёе.
ђЁб.14.5. €Ја ¤«п ¤ў®Ёе а §ле ЏЉ.
- 568 -
Џа®Ў«Ґ¬л, ў®§ЁЄ ойЁҐ ЇаЁ в Є®© Є®дЁЈга жЁЁ, ў ®б®ў®¬ бўп§ л б
®вбгвбвўЁҐ¬ ў ҐЇ®б।б⢥®© Ў«Ё§®бвЁ ¤агЈ®Ј® ЁЈа®Є (Є Є-ЁЎг¤м ¬л
®бўҐвЁ¬ ⥬㠤Ёбв жЁ®®Ј® гЇа ў«ҐЁп б®бв®пЁҐ¬ Є®¬ЇмовҐа ). Ља®¬Ґ в®Ј®,
Є®¬ЇмовҐа ¤®«¦Ґ Ї®«гзЁвм ¤®бв в®з® Ёд®а¬ жЁЁ, зв®Ўл ® ᬮЈ Ї®Є § вм
¤Ґ©бвўЁп ЁЈа®Є § ¤агЈЁ¬ Є®¬ЇмовҐа®¬.
„«п ЇаҐ®¤®«ҐЁп нвЁе Їа®Ў«Ґ¬ бгйҐбвўгов б«Ґ¤гойЁҐ ЇгвЁ:
- Њ®¦® ЇҐаҐ¤ вм ¤агЈ®© Є®¬ЇмовҐа Ї®«го Ёд®а¬ жЁо ® ¤Ґ©бвўЁпе
ЁЈа®Є . ‚ н⮬ б«гз Ґ Є®¬¬гЁЄ жЁ®л© Ї®а⠡㤥⠯®¬Ё вм
ўЁав㠫쮥 гбва®©бвў® ўў®¤ ¤ ле, гЇа ў«пҐ¬®Ґ ¤агЈЁ¬ Є®¬ЇмовҐа®¬.
Љ®Ј¤ ЁЈа®Є в஥⠪« ўЁиЁ, ЇҐаҐ¬ҐбвЁв ¬лим Ё«Ё Ї®ўҐаҐв агзЄг
¤¦®©бвЁЄ , нв® ¤Ґ©бвўЁҐ вгв ¦Ґ ЇҐаҐ¤ Ґвбп Ї® Є ЎҐ«о ¤агЈ®© ¬ иЁҐ,
Є®в®а п ®б®ўҐ Ї®«гзҐле ¤ ле ¬®¦Ґв бЄ®а४вЁа®ў вм ўЁав㠫쮥
¬Ґбв®Ї®«®¦ҐЁҐ ЁЈа®Є ў б®Ўб⢥®¬ ЁЈа®ў®¬ Їа®бва б⢥;
- ‚в®а®© ¬Ґв®¤ §лў Ґвбп "бЁеа®Ё§ жЁҐ© ўҐЄв®а б®бв®пЁп". ‚ н⮬
б«гз Ґ ў¬Ґбв® ЇҐаҐ¤ зЁ ¤ ле ®в гбва®©бвў ўў®¤ /ўлў®¤ , ¬л ЇҐаҐ¤ Ґ¬
"б®бв®пЁҐ" ЁЈа®ў®Ј® Їа®бва бвў ў 楫®¬, в Є зв® ЇаЁЁ¬ ойЁ©
Є®¬ЇмовҐа ¬®¦Ґв бЁеа®Ё§Ёа®ў вмбп б ЇҐаҐ¤ ойЁ¬, Є Є Ї®Є § ®
аЁб.14.6. ќв®в ¬Ґв®¤ а Ў®в Ґв ¤®бв в®з® е®а®и®, ®¤ Є® ЇаЁ ҐЈ®
ЁбЇ®«м§®ў ЁЁ ¬®¦Ґв § зЁвҐ«м® 㢥«ЁзЁвмбп Є®«ЁзҐбвў® ЇҐаҐ¤ ў Ґ¬®©
Ёд®а¬ жЁЁ.
ђЁб.14.6. ‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп.
‚᪮ॠ¬л а §ЎҐаҐ¬бп б Є ¦¤л¬ Ё§ ¬Ґв®¤®ў Ў®«ҐҐ ¤Ґв «м®, ᥩз б бв®Ёв
Ї®Ј®ў®аЁвм ® ЁЎ®«ҐҐ вЁЇЁзле ®иЁЎЄ е, ўбваҐз ойЁебп ЇаЁ б®Ґ¤ЁҐЁЁ ¤ўге
ЏЉ:
- Ќ ЁЎ®«ми п Їа®Ў«Ґ¬ ў®§ЁЄ Ґв, Є®Ј¤ ¤ўҐ ¬ иЁл вҐапов бЁеа®Ё§ жЁо.
‘Є ¦Ґ¬, ®¤ Ё§ Ёе Ё¬ҐҐв 586-© Їа®жҐбб®а, ¤агЈ п - 386-©. ЏаЁ н⮬
®¤Ё ЏЉ ҐЁ§ЎҐ¦® ®Є ¦Ґвбп ўЇҐаҐ¤Ё ¤агЈ®Ј® Ё бЁеа®Ё§ жЁп Ўг¤Ґв
Ї®вҐап . ќв®в д Єв®а ¤®«¦Ґ Ўлвм ЇаЁпв ў® ўЁ¬ ЁҐ ҐйҐ нв ЇҐ
а §а Ў®вЄЁ ЁЈал;
- 569 -
- ‘«Ґ¤гой п Ї®вҐжЁ «м п Їа®Ў«Ґ¬ ¬®¦Ґв Ўлвм ўл§ў Ё в Є §лў Ґ¬л¬
"Ґ¤ҐвҐа¬ЁЁа®ў л¬ нд䥪⮬ «®¦ҐЁп" (п а ббЄ ¦г «Ёим ® ҐЄ®в®але
«Ґ¦ йЁе Ї®ўҐае®бвЁ ўҐй е, ®¤ Є® нв®Ј® ¤®бв в®з® ¤«п Ї®Ё¬ Ёп бгвЁ
Їа®Ў«Ґ¬л). ЋЎҐ ЁЈал ¤®«¦л Ўлвм Ї®«®бвмо ¤ҐвҐа¬ЁЁа®ў л. ќв® § зЁв,
ЇаЁ¬Ґа, зв® ¬Ёл а §ле Є®¬ЇмовҐа е Ґ ¬®Јгв ®Є § вмбп ў а §«Ёзле
¬Ґбв е. …б«Ё ®¤®© ¬ иЁҐ ¬Ё а бЇ®«®¦Ґ , бЄ ¦Ґ¬, ў жҐвॠЁЈа®ў®Ј®
Ї®«п, в® Ё ¤агЈ®© ¬ иЁҐ Ґ© «гзиҐ Ўл ®Є § вмбп ў ⮬ ¦Ґ ¬ҐбвҐ. ’®з®
в Є ¦Ґ, ЇаЁ ЁбЇ®«м§®ў ЁЁ ЈҐҐа в®а б«гз ©ле зЁбҐ« ¤«п гЇа ў«ҐЁп
Ї®ўҐ¤ҐЁҐ¬ бгйҐбвў, Ґ®Ўе®¤Ё¬®, зв®Ўл ®ЎҐЁе ¬ иЁ е ЈҐҐаЁа®ў « бм
®¤ Ё в ¦Ґ Ї®б«Ґ¤®ў ⥫м®бвм б«гз ©ле ўҐ«ЁзЁ. …¤ЁбвўҐл¬ Їг⥬
ЇаҐ®¤®«ҐЁп нв®© Їа®Ў«Ґ¬л ¬®¦Ґв б«г¦Ёвм ЇҐаҐ¤ з Ї®«®© Ёд®а¬ жЁЁ ®Ў
ЁЈа®ў®© бЁвг жЁЁ, в Є зв®Ўл ¤ ¦Ґ б«гз ©лҐ б®ЎлвЁп, Їа®Ёб室пйЁҐ
®¤®© ¬ иЁҐ, ЎҐ§ ЁбЄ ¦ҐЁ© ®ва ¦ «Ёбм ¤агЈ®©.
ќвЁ Їа®Ў«Ґ¬л ¤Ґ©бвўЁвҐ«м® ®зҐм бҐамҐ§л Ё ў ¬ Ґ®Ўе®¤Ё¬® Ёе вй ⥫м®
Їа®а Ў®в вм. Њл Єа вЄ® ®Ўбг¤Ё«Ё ®б®ўлҐ ¬Ґв®¤л бЁеа®Ё§ жЁЁ Ё ⥯Ґам 㦥
¬®¦® Ї®Ј®ў®аЁвм ® Ёе Ў®«ҐҐ Ї®¤а®Ў®.
‘€Ќ•ђЋЌ€‡Ђ–€џ ‚…Љ’ЋђЂ ‘Ћ‘’ЋџЌ€џ
ђҐ «Ё§®ў вм бЁеа®Ё§ жЁо ўҐЄв®а б®бв®пЁп Ґб«®¦®. „«п нв®Ј® ¤®бв в®з®
ҐЇаҐалў® ЇҐаҐ¤ ў вм ¤агЈ®© ¬ иЁҐ ¤ лҐ ® б®бв®пЁЁ ЁЈа®ў®Ј®
Їа®бва бвў Ё ЇаЁЁ¬ вм ®вўҐвго Ёд®а¬ жЁо, зв®Ўл бЄ®а४вЁа®ў вм
®Ўбв ®ўЄг.
„ ў ©вҐ ў Є зҐб⢥ ЇаЁ¬Ґа а бᬮваЁ¬ ҐЄ®в®аго ЁЈаг, ў Є®в®а®© ¤ў®Ґ
гз бвЁЄ®ў а §ле Є®¬ЇмовҐа е ўҐ¤гв ¤гн«м б бвҐа®Ё¤ ¬Ё. —в®Ўл ЇҐаҐ¤ вм
б®бв®пЁҐ ®¤®© ¬ иЁл ¤агЈго, ¬л ¤®«¦л гзҐбвм Ё ¬Ґбв®Ї®«®¦ҐЁҐ, Ё
бЄ®а®бвм, Ё а §¬Ґа Є ¦¤®Ј® бвҐа®Ё¤ , в Є¦Ґ Ґ § Ўлвм ЇҐаҐ¤ вм Ё
Є®®а¤Ё вл б ¬®Ј® ЁЈа®Є . …б«Ё ЁЈа®Є ®вЄал« ®Ј®м, ¬л ¤®«¦л ЇҐаҐ¤ вм
ᮮ⢥вбвўго饥 б®®ЎйҐЁҐ Ё ®Ў н⮬, в Є¦Ґ ®ЇЁб вм ваЁЎгвл ®аг¦Ёп. Ља®¬Ґ
в®Ј®, Ґб«Ё ў ЁЈа®ў®¬ Їа®бва б⢥ ®¤®© Ё§ ¬ иЁ Ї®пўЁ«бп ®ўл© ®ЎкҐЄв,
¬л ¤®«¦л б®®ЎйЁвм ®Ў н⮬ ¤агЈ«¬г Є®¬ЇмовҐаг, зв®Ўл Ё ® ᮧ¤ «
«®ЈЁзл© ®ЎкҐЄв.
’ ЄЁ¬ ®Ўа §®¬, ¬л Є Є Ўл ¤Ґ« Ґ¬ д®в®Ја дЁЁ ЁЈа®ў®Ј® Їа®бва бвў Ё
Ї®бв®п® ЇҐаҐ¤ Ґ¬ Ёе ¤агЈго ¬ иЁг. ќв® 㦮 ¤Ґ« вм ў а §г¬®¬ ⥬ЇҐ,
в Є, зв®Ўл Ё§ЎҐ¦ вм ўбҐў®§¬®¦ле Ґб®Ј« б®ў ле бЁвг жЁ©. Ќ ЇаЁ¬Ґа, ¬®¦Ґв
¦Ґ б«гзЁвмбп в Є, зв® ®¤Ё ЁЈа®Є ў§алў Ґв бвҐа®Ё¤ ў в® ўаҐ¬п, Є Є ¤агЈ®©
ҐЈ® в®«мЄ® 楫Ё«бп. Љ Є ўл Ї®Ё¬ ҐвҐ, ў н⮬ б«гз Ґ 㦮 г¤ «Ёвм
бвҐа®Ё¤ Ё§ ЁЈа®ў®Ј® Їа®бва бвў ЇаҐ¦¤Ґ, 祬 б ап¤ ўв®а®Ј® ЁЈа®Є
¤®бвЁЈҐв 㦥 Ґ бгйҐбвўго饩 楫Ё. Ќ аЁб.14.7 б ҐЄ®в®ал¬ ЇаҐгўҐ«ЁзҐЁҐ¬
Ї®Є § ®, зв® ¬®¦Ґв Їа®Ё§®©вЁ, Ґб«Ё бЁб⥬ ўл©¤Ґв Ё§ б®бв®пЁп
бЁеа®Ё§ жЁЁ.
- 570 -
ђЁб.14.7. —в® Їа®Ёб室Ёв, Є®Ј¤ ¤ў ЏЉ ўл室пв Ё§ ०Ё¬
бЁеа®Ё§ жЁЁ.
‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп а Ў®в Ґв ЇаҐЄа б® Ё б®ўҐа襮 ¤Ґ¦®,
Ї®в®¬г зв® Ўб®«ов® ўбҐ Їа®Ёб室п饥 ®¤®© ¬ иЁҐ ЇҐаҐ¤ Ґвбп ¤агЈго.
Ћ¤ Є®, Є Є п Ї®¤®§аҐў о, нв® Ґ в Є «ҐЈЄ® ॠ«Ё§®ў вм: ўҐ¤м ў® ўЁ¬ ЁҐ
ЇаЁЁ¬ овбп ўбҐ ў®§¬®¦лҐ е а ЄвҐаЁбвЁЄЁ б®бв®пЁп ЁЈал, Ё ў १г«мв вҐ
Ёв®Ј®ў п Ёд®а¬ жЁп, ЇҐаҐ¤ ў Ґ¬ п зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «, ®Є §лў Ґвбп
¤®бв в®з® ®ЎкҐ¬Ёбв®©.
‘«Ґ¤гойЁ© ¬Ґв®¤, ® Є®в®а®¬ ¬л ᥩз б Ї®Ј®ў®аЁ¬, Ў®«ҐҐ «ҐЈ®Є ¤«п Ї®Ё¬ Ёп Ё
§лў Ґвбп бЁеа®Ё§ жЁҐ© б®бв®пЁп ўў®¤ /ўлў®¤ .
‘€Ќ•ђЋЌ€‡Ђ–€џ ‘Ћ‘’ЋџЌ€џ ‚‚Ћ„Ђ/‚›‚Ћ„Ђ
‘Ёеа®Ё§ жЁп б®бв®пЁп ўў®¤ /ўлў®¤ пў«пҐвбп ¬Ґв®¤®¬, ЇаЁ Є®в®а®¬ бв вгб
гбва®©бвў ўў®¤ ¤ ле ЇҐаҐ¤ Ґвбп ¤агЈ®© ЏЉ ў ॠ«м®¬ ўаҐ¬ҐЁ. ‚бҐ, зв®
ЁЈа®Є ¤Ґ« Ґв ®¤®¬ Є®¬ЇмовҐаҐ, ЇаЁЁ¬ ой п бЁб⥬ ў®бЇаЁЁ¬ Ґв Є Є
ўе®¤лҐ ¤ лҐ, Є®в®алҐ ЁбЇ®«м§гҐв ¤«п Є®а४вЁа®ўЄЁ ў бў®Ґ¬ ЁЈа®ў®¬
Їа®бва б⢥ Ї®ўҐ¤ҐЁп ®Ўа § ®в¤ «Ґ®Ј® ЁЈа®Є . ђЁб.14.9 Ї®пбпҐв
бЄ § ®Ґ.
- 571 -
ђЁб.14.8. ЏҐаҐ¤ з гбва®©бвў ўе®¤ле ¤ ле ¤агЈго ¬ иЁг.
ќв®в ¬Ґв®¤ зҐвЄ® а Ў®в Ґв ¤® вҐе Ї®а, Ї®Є ®ЎҐ бЁбвҐ¬л ®бв овбп
бЁеа®Ё§Ёа®ў л¬Ё Ё Ґ Їа®Ёб室Ёв ЁЄ ЄЁе б«гз ©ле Ё§¬ҐҐЁ© ЁЈа®ў®©
бЁвг жЁЁ. …б«Ё ¦Ґ Ї®¤®Ў®Ґ Їа®Ё§®©¤Ґв, в® ¤агЈ п ¬ иЁ Ґ ᬮ¦Ґв "г§ вм"
®Ў н⮬, Ї®в®¬г Є Є ¤ л© бЇ®б®Ў Ґ ЇаҐ¤ § зҐ ¤«п ЇҐаҐ¤ зЁ в Є®Ј® த
Ёд®а¬ жЁЁ.
…б«Ё ў ¬ ўбҐ ¦Ґ Ї®вॡгҐвбп, зв®Ўл Їа®Ёб室Ё«Ё Є ЄЁҐ-в® б«гз ©лҐ б®ЎлвЁп,
ўл ¤®«¦л ў®бЇ®«м§®ў вмбп ЇҐаўл¬ ¬Ґв®¤®¬, зв®Ўл б®®ЎйЁвм ®Ў Ё§¬ҐҐЁпе
¤агЈ®© ¬ иЁҐ. ‚ ¤ «мҐ©иҐ¬ ¬л ®ЎкҐ¤ЁЁ¬ ®Ў бЇ®б®Ў бЁеа®Ё§ жЁЁ ў¬Ґб⥠-
нв® б®ўҐа襮 ҐЁ§ЎҐ¦®.
„«п бЁеа®Ё§ жЁЁ б®бв®пЁп ўў®¤ /ўлў®¤ Ґ®Ўе®¤Ё¬®:
- ЋЇа®бЁвм ⥪г饥 б®бв®пЁҐ гбва®©бвў ўў®¤ ¤ ле, Ўг¤м в® ¤¦®©бвЁЄ Ё«Ё
Є« ўЁ вга ;
- ЋЎкҐ¤ЁЁвм Ёе ў¬Ґб⥠ў Ї ЄҐв Ё Ї®б« вм зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «.
’Ґа¬Ё "Ї ЄҐв" Ї®¤а §г¬Ґў Ґв ®ЎкҐ¤ЁҐЁҐ а §®б®ав®© Ёд®а¬ жЁЁ. Џ®н⮬г
¤«п ЇҐаҐбл«ЄЁ Ї ЄҐв®ў ¬л ¤®«¦л ЇаЁпвм ап¤ б®Ј« 襨©, зв®Ўл
Ї®б«Ґ¤®ў ⥫млҐ Є®¬¬гЁЄ жЁ®лҐ бЁб⥬л "§ «Ё", зв® ®§ з Ґв в Ё«Ё Ё п
з бвм Ёд®а¬ жЁЁ. ‘Є ¦Ґ¬, ¬л аҐиЁ«Ё ЇҐаҐ¤ вм зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «
Ї®«®¦ҐЁҐ агзЄЁ ¤¦®©бвЁЄ ®¤®ўаҐ¬Ґ® б б®бв®пЁҐ¬ ҐЈ® Є®Ї®Є. ”®а¬ в
Ї ЄҐв ¤«п ЇҐаҐ¤ зЁ нвЁе ¤ ле ¬®Ј Ўл ўлЈ«п¤Ґвм ЇаЁ¬Ґа® в Є, Є Є нв®
Ї®Є § ® ў в Ў«.14.5.
- 572 -
’ Ў«Ёж 14.5. ЋЎа §Ґж Ї ЄҐв Ёд®а¬ жЁ®®Ј® Їа®бва бвў ўў®¤ /ўлў®¤ .
-------------------------------------------------------------------------
N Ў ©в ЋЎ®§ 票Ґ ‘¬лб«
-------------------------------------------------------------------------
0 J “бв ®ў«Ґ®Ґ б®бв®пЁҐ ¤¦®©бвЁЄ
1 data_x Ѓ ©в •-Є®®а¤Ё вл ¤¦®©бвЁЄ
2 data_y Ѓ ©в Y-Є®®а¤Ё вл ¤¦®©бвЁЄ
3 buttons Ѓ ©в б®бв®пЁп Є®Ї®Є
4 (period) Љ®Ґж ЇҐаҐ¤ зЁ
--------------------------------------------------------------------------
‘®бв ўЁвм в Є®© Ї ЄҐв з१ўлз ©® Їа®бв®. ЌҐ б«®¦® Ё § бв ўЁвм Їа®Ја ¬¬г
ЇҐаҐ¤ ў вм ҐЈ® ¤агЈго ¬ иЁг б з бв®в®©, Ґ®Ўе®¤Ё¬®© ¤«п б®еа ҐЁп
бЁеа®Ё§ жЁЁ. ‚ в® ¦Ґ б ¬®Ґ ўаҐ¬п, ¤ЇгЈ п ¬ иЁ ¬®Ј« Ўл ЇаҐ¤®бв ўЁвм ў
а бЇ®а殮ЁҐ ЇҐаў®© б®ЎбвўҐл© Ї ЄҐв б®бв®пЁп ¤¦®©бвЁЄ .
ќ¤Ґбм Ґбвм ®¤Ё Ґ ўЇ®«Ґ ®зҐўЁ¤л© о б. „Ґ«® ў ⮬, зв® ®Ў Є®¬ЇмовҐа
ў а ў®© ¬ҐаҐ ¤г¬ ов ¤агЈ ® ¤агЈҐ Є Є ®Ў г¤ «Ґ®¬ ЁЈа®ЄҐ. (…бвм ў н⮬
зв®-в® ®в д в бвЁзҐбЄЁе ஬ ®ў, ®ЇЁблў ойЁе ЇгвҐиҐбвўЁп ў Ї а ««Ґ«млҐ
¬Ёал Ё ў® ўаҐ¬ҐЁ, - з бвҐмЄ® Їгв Ґимбп Ё зЁ Ґв Ў®«Ґвм Ј®«®ў .)
ќв® ўбҐ, зв® п е®вҐ« бЄ § вм Ї® Ї®ў®¤г бЁеа®Ё§ жЁЁ б®бв®пЁп
ўў®¤ /ўлў®¤ . Њл ҐйҐ Їа®¤®«¦Ё¬ а §Ј®ў®а ® б®еа ҐЁЁ ०Ё¬ бЁеа®Ё§ жЁЁ,
® ᥩз б ¬ 㦮 ®Ўбг¤Ёвм в Єго ¬ «®Ё§гзҐго ®Ў« бвм, Є Є ўаҐ¬ҐЂп
бЁеа®Ё§ жЁп.
'
‚ђ…Њ…ЌЌЂџ ‘€Ќ•ђЋЌ€‡Ђ–€џ
‚६Ґ п бЁеа®Ё§ жЁп ®§ з Ґв ЇаЁўп§Єг ®ЎҐЁе ¬ иЁ Є ҐЄ®Ґ¬г ®ЎйҐ¬г
в ©¬Ґаг, Є®в®ал© ¬®¦Ґв Ўлвм Є Є ўгв२¬, в Є Ё ўҐиЁ¬. Љ Є п 㦥
Ј®ў®аЁ«, Ґ®Ўе®¤Ё¬®, зв®Ўл ®ЎҐ ЁЈал Їа®вҐЄ «Ё ў ®¤®¬ Ё ⮬ ¦Ґ ⥬ЇҐ Ё
Є ¦¤®Ґ б®ЎлвЁҐ Їа®Ёб室Ё«® ®Ў®Ёе Є®¬ЇмовҐа е ®¤®ўаҐ¬Ґ®. ‘гйҐбвўгҐв
¬®Ј® Їг⥩ ¤«п нв®Ј®, ® §¤Ґбм ЇаЁў®¤пвбп в®«мЄ® ¤ў Ё§ Ёе:
- Ћ¤Ё Їгвм б®бв®Ёв ў ®Ў¬ҐҐ ¤ л¬Ё ¬Ґ¦¤г Є®¬ЇмовҐа ¬Ё б ®ЇаҐ¤Ґ«Ґл¬
ЁвҐаў «®¬ ўаҐ¬ҐЁ, Є®в®ал© ўлЎЁа Ґвбп ®¤Ё Є®ўл¬ ¤«п ®ЎҐЁе ¬ иЁ. Љ
ЇаЁ¬Ґаг, ¬ иЁл Їа®Ё§ў®¤пв ®Ў¬Ґ Є ¦¤лҐ 1/30 ᥪг¤л. ‚ १г«мв вҐ
бЁб⥬ Ўг¤Ґв вҐапвм бЁеа®Ё§ жЁо Ґ Ў®«ҐҐ 祬 1/30 ᥪг¤л.
- „агЈ®© вҐеЁзҐбЄЁ© ЇаЁҐ¬ ®б®ў ®¦Ё¤ ЁЁ Ї®бл« ойЁ¬ Є®¬ЇмовҐа®¬
Ї®¤вўҐа¦¤ҐЁп в®Ј®, зв® б®®ЎйҐЁҐ ЇаЁЁ¬ ойЁ¬ ЏЉ Ї®«г祮. ќв® Ї®Є § ®
аЁб.14.9.
ЏҐаўл© Є®¬ЇмовҐа ЇҐаҐ¤ Ґв бў®Ґ б®бв®пЁҐ ¤агЈ®¬г. Љ Є в®«мЄ® ўв®а п ¬ иЁ
Ї®¤вўҐа¤Ёв Ї®«г票Ґ нв®Ј® б®®ЎйҐЁп Ё ЇҐаҐ¤ бв бў®Ґ б®бв®пЁҐ, ЏЉ1
- 573 -
ђЁб.14.9. ЏҐаҐ¤ з «ҐЄбҐ¬л ў б®бв®пЁЁ бЁеа®Ё§ жЁЁ.
¬®¦Ґв Їа®¤®«¦ вм а Ў®вг. € § Ї®¬ЁвҐ, зв® б в®зЄЁ §аҐЁп ўв®а®Ј® ЏЉ ўбҐ
¤®«¦® Їа®Ёб室Ёвм ®Ў®а®в. ’® Ґбвм Ї®б«Ґ ᮥ¤ЁҐЁп Є®¬ЇмовҐа®ў ®¤Ё Ё§
Ёе Ї®«гзЁв б®®ЎйҐЁҐ ЇҐаўл¬ Ё вгв ¦Ґ ўҐаҐв ҐЈ® § ¤ - б®®ЎйҐЁҐ зҐв
室Ёвм ў§ ¤ Ё ўЇҐаҐ¤.
ќв®в ¬Ґв®¤ Ё¬ҐҐв ЁвҐаҐбл© Ї®Ў®зл© нд䥪в: ¤«п б®еа ҐЁп б®бв®пЁп
бЁеа®Ё§ жЁЁ Є®¬ЇмовҐал ўл㦤Ґл а Ў®в вм б Ў®«ҐҐ Ё§Є®© бЄ®а®бвмо. ќв®
Їа®Ёб室Ёв ®вв®Ј®, зв® ¬ ЄбЁ¬ «м п § ¤Ґа¦Є ®ЇаҐ¤Ґ«пҐвбп Ґ
ЎлбвதҐ©бвўЁҐ¬ ЏЉ, ⥬, Є Є ¤®«Ј® Є ¦¤®© Ё§ ¬ иЁ ®Ўа Ў влў овбп
б®®ЎйҐЁп.
ЏаҐЄа б®, ⥯Ґам ўл Їа®бв® нЄбЇҐавл Ї® Є®¬¬гЁЄ жЁп¬. ќв® Ўл«® Ґ в Є г¦ Ё
б«®¦®, Ґ Їа ў¤ «Ё? „ ¦Ґ Ґб«Ё ўл Ё Ґ бв «Ё бЇҐжЁ «Ёб⮬, в® Ї® Єа ©Ґ©
¬ҐаҐ, ¤®«¦л ҐЇ«®е® а §ЎЁа вмбп ў н⮬ ў®Їа®бҐ Ё г ў б Ї®пўЁ«®бм ҐбЄ®«мЄ®
вҐеЁзҐбЄЁе ЇаЁҐ¬®ў ¤«п аҐиҐЁп ў®§¬®¦ле Їа®Ў«Ґ¬. ЏҐаҐ¤ ⥬, Є Є ¬л
ЇаЁбвгЇЁ¬ Є ЁЈаҐ Net-Tank, п е®зг бЄ § вм Ї аг б«®ў ® ¬®¤Ґ¬Ґ.
ЊЋ„…Њ
‘®Ґ¤ЁҐЁҐ зҐаҐ§ ¬®¤Ґ¬ Ґ в Є б«®¦®, ® ®ЇЁб ЁҐ а Ў®вл б ¬®¤Ґ¬®¬ ¤®Ў ўЁ«®
Ўл ҐйҐ Ґ¬ «® бва Ёж, Є®в®алҐ г б Їа®бв® Ґв ўаҐ¬ҐЁ. Њ®¤Ґ¬
гЇа ў«пҐвбп Ї® ⥬ ¦Ґ ЇаЁжЁЇ ¬, зв® Ё Ї®б«Ґ¤®ў ⥫мл© Ї®ав, б Є®в®ал¬ ®
ᮥ¤ЁҐ. …¤Ёб⢥®Ґ ®в«ЁзЁҐ б®бв®Ёв ў ⮬, зв® ¬®¤Ґ¬ Їа®б«гиЁў Ґв
Ї®б«Ґ¤®ў ⥫мл© Ї®ав, Ё Ґб«Ё б«лиЁв бЇҐжЁ «мго Ї®б«Ґ¤®ў ⥫м®бвм
бЁ¬ў®«®ў, в® ¤г¬ Ґв, зв® ўл а §Ј®ў аЁў ҐвҐ б Ё¬, Ё Ўг¤Ґв ЁвҐаЇаҐвЁа®ў вм
Є®¬ ¤л Ё ўлЇ®«пвм Ёе. ќвЁ Є®¬ ¤л §лў овбп Ў®а®¬ Ђ’-Є®¬ ¤. ЋЁ
Ї®¤¤Ґа¦Ёў о⠢ᥠдгЄжЁ® «млҐ ў®§¬®¦®бвЁ, Є®в®алҐ ў ¬ г¦л ¤«п ¤®§ў® ,
®вўҐв Ё ®бгйҐбвў«ҐЁп ⥫Ґд®®Ј® ᮥ¤ЁҐЁп.
Љ Є в®«мЄ® ᮥ¤ЁҐЁҐ Їа®Ё§®и«®, нв® бв «® Їа®§а з® ¤«п ў б. ‚л ¬®¦ҐвҐ
§ Ўлвм, з⮠ᮥ¤ЁЁ«Ёбм зҐаҐ§ ¬®¤Ґ¬. Ќг « ¤®, ⥯Ґам Ї®а а §кҐ¤ЁЁвмбп Ё
ЇҐаҐ©вЁ Є ЁЈаҐ.
NET-TANK: ’ЂЌЉЋ‚›‰ €Њ€’Ђ’Ћђ „‹џ „‚“• €ѓђЋЉЋ‚
Net-Tank - ЁЈа ¤«п ®¤®Ј® Ё«Ё ¤ўге ЁЈа®Є®ў. џ ЇЁб « ҐҐ, зв®Ўл Ї®Є § вм,
Є Є ᮧ¤ овбп ЁЈал ¤«п ҐбЄ®«мЄЁе гз бвЁЄ®ў Ё ®бўҐвЁвм ҐЄ®в®алҐ Їа®Ў«Ґ¬л,
Є®в®алҐ ¬®Јгв ЇаЁ н⮬ ў®§ЁЄгвм. ќв® б ¬ п ЇаЁ¬ЁвЁў п ЁЈа (¤«п ҐҐ
ЇЁб Ёп ¬Ґ Ї® ¤®ЎЁ«®бм ўбҐЈ® ваЁ ¤п), Ё¬Ґой п ®¤Ё-Ґ¤Ёб⢥л©
га®ўҐм. Ѓ®«ҐҐ в®Ј®, нв® ¤ўг嬥а п ЁЈа , ў Є®в®а®© ЁЈа®Є ᬮваЁв Ї®«Ґ
Ў®п ᢥаег ўЁ§. Њл ЇЁиҐ¬ Ї®«®жҐго ваҐе¬Ґаго ЁЈаг вЁЇ Wolfenstein ў
19-© Ј« ўҐ, ᥩз б п е®зг ®бв ўЁвм Їа®Ја ¬¬г ¤®бв в®з® Їа®бв®©, зв®Ўл
ЄжҐвЁа®ў вм ўЁ¬ ЁҐ Ґ «Ј®аЁв¬ е ЁЈа®ў®© «®ЈЁЄЁ, Є®¬¬гв жЁ®®©
з бвЁ.
ЏҐаҐ¤ ⥬, Є Є ¬л 祬 а §ЎЁа вм ЁЈаг, п ЇаҐ¤« Ј о ў ¬ блЈа вм ў ҐҐ б
ЄҐ¬-ЁЎг¤м Ё«Ё, Ї® Єа ©Ґ© ¬ҐаҐ, ў ®¤Ё®зЄг, зв®Ўл ўл Ї®Ё¬ «Ё, ® 祬
ᥩз б Ї®©¤Ґв аҐзм. Љ Є п гЇ®¬Ё « а ҐҐ, ўбҐ Їа®дҐббЁ® «л ў ®Ў« бвЁ
а §а Ў®вЄЁ ЁЈа бв а овбп ЇЁб вм гЁЄ «млҐ Їа®Ја ¬¬л Ё Ґ Ї®ўв®апвм 㦥
бгйҐбвўгойЁҐ ЁЈал. џ ¬®¤ЁдЁжЁа®ў « ҐЄ®в®алҐ ¬®¤г«Ё иЁе бв але Їа®Ја ¬¬ Ё
ᮧ¤ « Ёе ®б®ўҐ ®ўлҐ ¬®¤г«Ё. —в®Ўл Ё§Ў ўЁвмбп ®в ¬ ббЁўле ўЄ«о票©
Ёб室ле д ©«®ў, Ґ Ё¬ҐойЁе ҐЇ®б।б⢥®Ј® ®в®иҐЁп Є ЁЈаҐ, п
а §а Ў®в « ҐбЄ®«мЄ® ЎЁЎ«Ё®вҐЄ:
SNDLIB.C ЎЁЎ«Ё®вҐЄ §ўгЄ®ўле нд䥪⮢;
GRAPF1.C Ё§Є®га®ўҐўл© ¤ўг嬥ал© бЇа ©в Ё Ја дЁзҐбЄ п
ЎЁЎ«Ё®вҐЄ ;
KEYLIB.C ЎЁЎ«Ё®вҐЄ ўў®¤ б Є« ўЁ вгал;
SERLIB.C Є®¬¬гЁЄ жЁ® п ЎЁЎ«Ё®вҐЄ .
‚бҐ д ©«л § Ј®«®ўЄ®ў ¤«п нвЁе ЎЁЎ«Ё®вҐЄ Ё¬Ґов ⥠¦Ґ б ¬лҐ Ё¬Ґ :
SNDLIB.H
GRAPH1.H
KEYLIB.H
SERLIB.H
‚ᥠнвЁ ¬®¤г«Ё ®ЎкҐ¤Ёповбп ў ®¤г ®ЎиЁаго ЎЁЎ«Ё®вҐЄг б Ї®¬®ймо ¬ҐҐ¤¦Ґа
LIB.EXE. „«п ᮧ¤ Ёп нв®© ЎЁЎ«Ё®вҐЄЁ ў ¬ ¤®:
(ЋЇЁб ЁҐ Їа®жҐбб Є®¬ЇЁ«пжЁЁ а ббзЁв ® ва б«пв®а дЁа¬л Microsoft.
…б«Ё ўл Ї®«м§гҐвҐбм § зЁвҐ«м® Ў®«ҐҐ а бЇа®бва Ґл¬ г б ва б«пв®а®¬
дЁа¬л Borland Int., Є«озЁ Є®¬ЇЁ«пжЁЁ ¤® Ё§¬ҐЁвм. Џа®Ја ¬¬ -ЎЁЎ«Ё®вҐЄ ам
Є®¬ЇЁ«пв®а дЁа¬л Borland Int. §лў Ґвбп TLIB.EXE Ё а Ў®в б Ґ© ўлЈ«п¤Ёв
ҐбЄ®«мЄ® Ё зҐ (ЇаЁ¬.।.))
1. ‘Є®¬ЇЁ«Ёа®ў вм Є ¦¤л© ‘Ё-¬®¤г«м б Ї®¬®ймо д ©« CO.BAT:
cl -AM -Zi -c -Fc -Gs -G2 %1.c
- 575 -
2. Џ®б«Ґ Є®¬ЇЁ«пжЁЁ ᮧ¤ Ґвбп ®¤ Ў®«ми п ЎЁЎ«Ё®вҐЄ б Ё¬ҐҐ¬
MYLIB.LIB. —в®Ўл ᤥ« вм нв®, ўл§®ўЁвҐ ЎЁЎ«Ё®вҐзл© ¬ҐҐ¤¦Ґа Їг⥬
ўў®¤ Є®¬ ¤л
lib mylib.lib
3. Џа®Ја ¬¬ бЄ ¦Ґв, зв® ЎЁЎ«Ё®вҐЄ бв ЄЁ¬ Ё¬ҐҐ¬ ®вбгвбвўгҐв, Ё
бЇа®бЁв ў 襣® б®Ј« бЁп ҐҐ ᮧ¤ ЁҐ. ЋвўҐвм⥠г⢥न⥫м®;
4. „®Ў ўм⥠ў Є®¬ ¤го бвப㠢ᥠ¬®¤г«Ё, ўе®¤пйЁҐ ў ЎЁЎ«Ё®вҐЄг, Є
нв® гЄ § ®:
operations: +SNDLIB +GRAPH1 +KEYLIB +SERLIB
5. ‡ ⥬ Ї®пўпвбп ҐйҐ ¤ў § Їа®б . ЋвўҐвм⥠Ёе ¦ вЁҐ¬ Є« ўЁиЁ
Enter.
Џ®б«Ґ нв®Ј® г ў б Ї®пўЁвбп ЎЁЎ«Ё®вҐЄ MYLIB.LIB, Є®в®аго ўл ¬®¦ҐвҐ
ЇаЁб®Ґ¤Ёпвм в Є ¦Ґ, Є Є Ё «оЎго ¤агЈго ЎЁЎ«Ё®вҐЄг.
„«п ᮧ¤ Ёп ЁЈал ў ¬ Ґ®Ўе®¤Ё¬® ᮧ¤ вм ¤ў ЁбЇ®«пҐ¬ле ¬®¤г«п:
- Ћ¤Ё ¤«п ЁЈа®Є 1;
- „агЈ®© ¤«п ЁЈа®Є 2.
—в®Ўл н⮠ᤥ« вм, ў ¬ ¤®:
1. ЋвЄ®¬ЇЁ«Ёа®ў вм NET1.C Ё NET2.C (2 ўҐабЁЁ ЁЈал) б«Ґ¤гойЁ¬ б Ї®¬®ймо
Є®¬ ¤®Ј® д ©« CC.BAT:
cl -AM -Zi -c -Fc -Gs -G2 %1.c
if errorlevel l goto c_fail
link /ST:16384 /CO %1,,,graphics.lib+mylib.lib,,
:c_fail
ќв®в Є®¬ ¤л© д ©« Є®¬ЇЁ«ЁагҐв ЁЈаг Ё ®ЎкҐ¤ЁпҐв ҐҐ б ЎЁЎ«Ё®вҐЄ®©, зв®Ўл
ᮧ¤ вм ЁбЇ®«пҐ¬л© ¬®¤г«м. ‘¤Ґ« ©вҐ нв®, зв®Ўл ᮧ¤ вм ¤ў д ©« :
NET1.EXE Ё NET2.EXE;
2. Џ®¬ҐбвЁвҐ NET1.EXE ЏЉ1 Ё NET2.EXE ЏЉ2. ‘®Ґ¤ЁЁвҐ ®ЎҐ ¬ иЁл
г«м-¬®¤Ґ¬л¬ Є ЎҐ«Ґ¬ зҐаҐ§ COM1;
3. ’ҐЇҐам ¬®¦® зЁ вм ЁЈаг. Ќ ЎҐаЁвҐ NET1.EXE ЏЉ1 Ё NET2.EXE
ЏЉ2. Њ иЁл ᮥ¤Ёпвбп Ё ўл ¬®¦ҐвҐ ба §Ёвмбп б® бў®Ё¬ ЇаЁп⥫Ґ¬
в Є®ў®© ¤гн«Ё.
€бЇ®«м§г©вҐ б«Ґ¤гойЁҐ гЇа ў«пойЁҐ Є« ўЁиЁ:
‘в५Є ўЇа ў® Џ®ўҐагвм Їа ў®
‘в५Є ў«Ґў® Џ®ўҐагвм «Ґў®
‘в५Є ўўҐае „ўЁЈ вмбп ўЇҐаҐ¤
‘в५Є ўЁ§ „ўЁЈ вмбп § ¤
- 576 -
ESC ‚л室 Ё§ ЁЈал
Џа®ЎҐ« ‘в५мЎ
’ Џ®¤а §Ёвм Ї авҐа
Џ®ЁЈа ©вҐ ў Net-Tank Ё Ї®Їгв® ®Ўа вЁвҐ ўЁ¬ ЁҐ б«Ґ¤гойЁҐ ўҐйЁ:
- ‚®§ЁЄ Ґв «Ё нд䥪⠧ Ї §¤лў Ёп ЇаЁ ЇҐаҐ¬ҐйҐЁпе?
- ’ҐапҐв «Ё ЁЈа бЁеа®Ё§ жЁо?
- …б«Ё ¤ , в® ў Є ЄЁҐ ¬®¬Ґвл?
’ Є¦Ґ ®Ўа вЁвҐ ўЁ¬ ЁҐ §ўгЄ®ўлҐ нд䥪вл. „«п Ёе ᮧ¤ Ёп п ЁбЇ®«м§®ў «
б®ЎбвўҐл© Ј®«®б Ё гб«®ў®-ЎҐбЇ« вго Їа®Ја ¬¬г Blaster Master. Ќ Є®Ґж,
ЁЈаг ¬®¦® Їа®ў®¤Ёвм ЇаЁ гбв ®ў«Ґ®© Їа®Ја ¬¬Ґ-гбЄ®аЁвҐ«Ґ Є« ўЁ вгал.
…б«Ё ЇаЁ ¦ вЁЁ Є« ўЁиЁ в Є б«ЁиЄ®¬ १ў® гбв६«пҐвбп ўЇҐаҐ¤, Ї®Їа®Ўг©вҐ
㬥миЁвм бЄ®а®бвм ॠЈЁа®ў Ёп Є« ўЁ вгал, гбв ®ўЁў Їа®Ја ¬¬г
TURBOKEY.COM, Є®в®а п Ё¬ҐҐвбп ¤ЁбЄҐвҐ.
ЂЌЂ‹€‡ €ѓђ› NET-TANK
…б«Ё ўл ®Ў§®ўҐвҐ Net-Tank ЇҐаҐ¦ЁвЄ®¬ Є ¬Ґ®Ј® ўҐЄ , п Ї®«®бвмо б®Ј« игбм
б ў ¬Ё. Ћ¤ Є® ® ᮤҐа¦Ёв ҐбЄ®«мЄ® ЁвҐаҐбле вҐеЁзҐбЄЁе ЇаЁҐ¬®ў,
Є®в®алҐ ўл ¬®¦ҐвҐ ЁбЇ®«м§®ў вм (Ё Є®в®алҐ ў ¤ «мҐ©иҐ¬ Ўг¤гв ЇаЁ¬ҐҐл ў
Warlock`Ґ). ‚бп ЁЈа®ў п «®ЈЁЄ ᮤҐа¦Ёвбп ў дгЄжЁЁ main() ‘Ё-Їа®Ја ¬¬л. џ
ᤥ« « нв® ¤«п в®Ј®, зв®Ўл «ҐЈзҐ Ўл«® ®Ў®§аҐвм ЁЈаг ў 楫®¬. €бЄ«о票Ґ
б®бв ў«пов в®«мЄ® ўл§лў Ґ¬лҐ дгЄжЁЁ, Є®в®алҐ пў«повбп Ё§Є®га®ўҐўл¬Ё, ®
®Ўлз® Ёе Ё¬Ґ Ј®ў®апв ® ⮬, ¤«п 祣® ®Ё ЇаҐ¤ § зҐл Ё«Ё зв® ®Ё
¤Ґ« ов ( ЇаЁ¬Ґа, б«®¦® Ґ Ї®пвм, зв® ®§ з Ґв Draw_Sprite). Ћб®ў п
з бвм ўЄ«оз Ґв ў бҐЎп Ї аг б®вҐ бва®Є, Ё Ґб«Ё ўл Ї®©¬ҐвҐ Ёе б¬лб«, ўл ў
е®а®иҐ© д®а¬Ґ. „ ў ©вҐ а §ЎҐаҐ¬ ЁЈаг, а бб¬ ваЁў п а §¤Ґ« § а §¤Ґ«®¬.
ђ §¤Ґ« 1: €ЁжЁ «Ё§ жЁп
-----------------------
‚ нв®© з бвЁ Їа®Ја ¬¬л ¬л § Јаг¦ Ґ¬ ўбҐ д ©«л б® §ўгЄ®ўл¬Ё нд䥪⠬Ё Ё
Ја дЁЄ®© ¤«п ЁЈал. ќ«Ґ¬Ґвл Ё§®Ўа ¦ҐЁп ¤«п в Є®ў ЎҐагвбп Ё§ § Ја㦥ле
д ©«®ў Ё а §¬Ґй овбп ў ЇаҐ¤ў аЁвҐ«м® ўл¤Ґ«Ґ®© Ї®¤ ЎгдҐа ®Ў« бвЁ Ї ¬пвЁ.
Net-Tank ЁбЇ®«м§гҐв вҐеЁЄг ¤гЎ«Ёаго饩 ЎгдҐаЁ§ жЁЁ ¤«п ЁбЄ«озҐЁп ¬Ґаж Ёп
Ё§«Ўа ¦ҐЁп. Ќ Ї®¬о, нв® ®§ з Ґв, зв® Ё§®Ўа ¦ҐЁҐ ў з «Ґ д®а¬ЁагҐвбп ў
®ЇҐа вЁў®© Ї ¬пвЁ Ё ў 㦥 Ї®«®бвмо Ї®¤Ј®в®ў«Ґ®¬ ўЁ¤Ґ Є®ЇЁагҐвбп ў
ўЁ¤Ґ®Ї ¬пвм. Ља®¬Ґ в®Ј®, ў® ўаҐ¬п ЁЁжЁ «Ё§ жЁЁ бвагЄвгал ¤ ле,
®ЇЁблў ойЁҐ ўбҐ ЁЈа®ўлҐ ®ЎкҐЄвл, ®Ўг«повбп Ё гбв ў«Ёў овбп ў Ёб室®Ґ
Ї®«®¦ҐЁҐ.
“¦Ґ ЇаЁ ЁЁжЁ «Ё§ жЁЁ ў®§ЁЄ Ґв ЇҐаўл© ў®Їа®б бҐвҐў®© ЁЈал. Џа®Ја ¬¬л,
а Ў®в ойЁҐ ®ЎҐЁе ¬ иЁ е, Ї®звЁ Ё¤ҐвЁзл, ® ¤®«¦ Ўлвм ҐЎ®«ми п
- 577 -
а §Ёж : ў и Є®¬ЇмовҐа ¤®«¦Ґ Ї®Є § вм ®ЎкҐЄв Їа®вЁўЁЄ ў ⮬ ¦Ґ ¬ҐбвҐ,
Ј¤Ґ ® Ё§ з «м® а бЇ®«®¦Ґ ¤агЈ®¬ ЏЉ Ё ®Ў®а®в. ќв® ®§ з Ґв, зв®
Ёбе®¤лҐ Ї®§ЁжЁЁ ЁЈа®ўле ®ЎкҐЄв®ў ¤®«¦л Ўлвм ¦ҐбвЄ® гбв ®ў«Ґл. ќв®Ј®
¬®¦® ¤®ЎЁвмбп, § ¤ ў Ї®§ЁжЁЁ ў Є зҐб⢥ Є®бв в ў ⥪б⥠Їа®Ја ¬¬л,
§ Јаг¦ п Ёе Ё§ ҐЁ§¬ҐпҐ¬®Ј® д ©« ¤ ле Ё«Ё § ¤ ў п ЇаЁ бв а⥠Їа®Ја ¬¬л
Ї® ®ЇаҐ¤Ґ«Ґ®¬г «Ј®аЁв¬г. ‘Ї®б®Ў, б Ї®¬®ймо Є®в®а®Ј® нв® ¤Ґ« Ґвбп, Ґ
ў ¦Ґ. Ћ¤ Є® ЇаЁ бв а⥠Їа®Ја ¬¬л ЁЈа®Є, Є®в®ал© бв®зЄЁ §аҐЁп ®¤®©
¬ иЁл пў«пҐвбп ¬Ґбвл¬, Ўг¤Ґв г¤ «Ґл¬ б в®зЄЁ §аҐЁп ¤агЈ®Ј® Є®¬ЇмовҐа ,
Ё ®Ў®а®в. ќв® ¬®¦Ґв ЇаЁўҐбвЁ Є Їгв ЁжҐ б Є®®а¤Ё в ¬Ё Ё Їа®Ў«Ґ¬ ¬ б
бЁеа®Ё§ жЁҐ©.
ђ §¤Ґ« 2: €Ја®ў®© жЁЄ«
------------------------
‘«Ґ¤гой п з бвм зЁ Ґвбп б Ј« ў®Ј® жЁЄ« . ЋЎа вЁвҐ ўЁ¬ ЁҐ, зв® ў ЁЈаҐ
Ё¬ҐҐвбп ¤ў жЁЄ« : ўҐиЁ© Ё ўгв२©. ‚ҐиЁ© ЁЈа®ў®© жЁЄ« ЁбЇ®«м§гҐвбп
¤«п ЁЁжЁ «Ё§ жЁЁ ҐЄ®в®але ЇҐаҐ¬Ґле. § ⥬ зЁ Ґвбп ўгв२© жЁЄ«.
€¬Ґ® ў Ґ¬ Ё Їа®Ёб室Ёв ®б®ў®Ґ ¤Ґ©бвўЁҐ.
‡ ¬ҐвмвҐ, зв® ЁЈа в §«Ёз Ґв, Є®Ј¤ ® 室Ёвбп ў б®бв®пЁЁ ᮥ¤ЁҐЁп,
Є®Ј¤ - Ґв.
ђ §¤Ґ« 3: “¤ «ҐЁҐ ®ЎкҐЄв®ў
---------------------------
Љ Є ўл г§ «Ё Ё§ ЇаҐ¤л¤гйЁе Ј« ў, Ї®бўпйҐле Ја дЁЄҐ, ЇаҐ¦¤Ґ 祬 аЁб®ў вм
бЇа ©вл ®ў®¬ ¬ҐбвҐ, ¬л ¤®«¦л г¤ «Ёвм Ёе Ё§ ЇаҐ¦Ґ© Ї®§ЁжЁЁ. ќв з бвм
Їа®Ја ¬¬л гЎЁа Ґв б ЁЈа®ў®Ј® Ї®«п ўбҐ ¤ўЁ¦гйЁҐбп ®ЎкҐЄвл Їг⥬
ў®ббв ®ў«ҐЁп а ҐҐ б®еа Ґ®Ј® д® Ї®¤ Ё¬Ё.
ђ §¤Ґ« 4: Џ®«г票Ґ ўе®¤ле ¤ ле Ё ЇҐаҐ¤ з б®бв®пЁп ¤Ёбв жЁ®®
гЇа ў«пҐ¬®© бЁб⥬Ґ
--------------------------------------------------------------------
‡¤Ґбм зЁ Ґвбп б ¬®Ґ ЇаЁп⮥. ќв з бвм Їа®Ја ¬¬л Ї®¤а §¤Ґ«Ґ ¤ў
да Ј¬Ґв :
- ЏҐаўл© Ё§ Ёе ЇаЁЁ¬ Ґв ўе®¤лҐ ¤ лҐ ®в «®Є «м®Ј® ЁЈа®Є ;
- „агЈ®© ЇаЁЁ¬ Ґв ўе®¤лҐ ¤ лҐ ®в г¤ «Ґ®Ј® ЁЈа®Є .
‹оЎ®Їлв® в®, зв® ®Ў да Ј¬Ґв ¤Ґ« ов Їа ЄвЁзҐбЄЁ ®¤® Ё в® ¦Ґ. ђ §Ёж
в®«мЄ® ў ⮬, зв® ўв®а®© да Ј¬Ґв ®Ўа й Ґв Ў®«миҐ ўЁ¬ Ёп в®, зв®
Ї®бвгЇ Ґв Ё§ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав , ЇҐаўл© ў ®б®ў®¬ ЁвҐаҐбгҐвбп
Є« ўЁ вга®©. „ ў ©вҐ ®бв ®ўЁ¬бп Ё згвм-згвм Ї®Ј®ў®аЁ¬ ® ⮬, Є Є
Їа®Ёб室Ёв ᮥ¤ЁҐЁҐ. Љ Є п Ј®ў®аЁ« ҐбЄ®«мЄЁ¬Ё бва Ёж ¬Ё а миҐ, ¤«п
®бгйҐбвў«ҐЁп ᮥ¤ЁҐЁп ЇаЁ¬Ґповбп ¤ў ®б®ўле ¬Ґв®¤ :
- Њ®¦® ЇҐаҐ¤ вм б®бв®пЁҐ ЁЈал ў 楫®¬;
- 578 -
- ‚л ¬®¦ҐвҐ Ї®бл« вм бв вгб гбва®©бвў ўў®¤ Ё ва Єв®ў вм нв® Є Є ЇаЁҐ¬
¤ ле ®в ¤агЈ®Ј® ¤¦®©бвЁЄ Ё«Ё Є« ўЁ вгал.
‚ Net-Tank п ЇаЁ¬ҐЁ« ўв®а®© ¬Ґв®¤. Ћ¤Ё а § ў вҐзҐЁҐ жЁЄ« ўв®а®© ¬ иЁҐ
ЇҐаҐ¤ овбп ўбҐ ¬ ЁЇг«пжЁЁ ЁЈа®Є б Є« ўЁ вга®©. ‚ нв® ¦Ґ ўаҐ¬п ¤агЈ®©
Є®¬ЇмовҐа ЁвҐаЇаҐвЁагҐв Ї®«гзҐлҐ Ї® бҐвЁ ¤ лҐ Є Є ¤Ґ©бвўЁп б® бў®Ґ©
б®Ўб⢥®© Є« ўЁ вга®©.
Џ®¬ЁвҐ, зв®Ўл нв®в вҐеЁзҐбЄЁ© ЇаЁҐ¬ а Ў®в «, ®ЎҐ ЁЈал ¤®«¦л Ўлвм
Ї®«®бвмо ¤ҐвҐа¬ЁЁа®ў л. ЌЁЄ ЄЁе б«гз ©®б⥩ Ўлвм Ґ ¤®«¦®. ‚ Net-Tank
п Ї®«®бвмо б«Ґ¤®ў « нв®¬г Їа ўЁ«г ўбо¤г, Єа®¬Ґ да Ј¬Ґв , Ё§®Ўа ¦ о饣®
ў§алў. ЋЎлз® нв®Ј® Ґ б«®¦® Ё§ЎҐ¦ вм, ® Ё®Ј¤ , Ї®б«Ґ гЁз⮦ҐЁп ®¤®Ј®
Ё§ в Є®ў, ЁЈал вҐапов бЁеа®Ё§ жЁо.
ђ §¤Ґ« 5: ЏҐаҐ¬ҐйҐЁҐ ®ЎкҐЄв®ў
------------------------------
‘«Ґ¤гой п з бвм Їа®Ја ¬¬л § Ё¬ Ґвбп ЇҐаҐ¬ҐйҐЁҐ¬ ®ЎкҐЄв®ў. Њл Їа®бв®
ЁбЇ®«м§гҐ¬ Ёд®а¬ жЁо, Ї®бвгЇ ойго ®в «®Є «м®Ј® Ё ¤Ёбв жЁ®®Ј® ўў®¤ ¤«п
ЇҐаҐ¤ўЁ¦ҐЁп Ё а §ў®а®в в Є®ў. €вҐаҐбҐ бЇ®б®Ў ЇҐаҐ¬ҐйҐЁп в Є®ў. ЋЁ
¬®Јгв ¤ўЁЈ вмбп ў 16 а §«Ёзле Їа ў«ҐЁпе, гЈ®« ¬Ґ¦¤г Є®в®ал¬Ё б®бв ў«пҐв
22,5 Ја ¤гб . ‚®®ЎйҐ-в®, зв®Ўл ЇҐаҐ¬ҐбвЁвм в Є ў ўлЎа ®¬ Їа ў«ҐЁЁ ¬
Ї®вॡ®ў «®бм Ўл, ЇаҐ¦¤Ґ ўбҐЈ®, ©вЁ гЈ®«, § ⥬ ўлзЁб«Ёвм ҐЈ® бЁгб Ё
Є®бЁгб ¤«п 宦¤ҐЁп Ї а ¬Ґва®ў ЇҐаҐ¤ўЁ¦ҐЁп.
Ћ¤ Є® ў 襩 ЁЈаҐ бЁгбл Ё Є®бЁгбл ўлзЁб«Ґл § а ҐҐ. ќв® Ї®§ў®«пҐв
ЇаЁбў®Ёвм Є ¦¤®¬г Ё§ Їа ў«ҐЁ© бў®© ®¬Ґа (Є®в®ал© Ўг¤Ґв б®ўЇ ¤ вм б
®¬Ґа®¬ ⥪г饣® Є ¤а , Ё§®Ўа ¦ о饣® в Є) Ё ЁбЇ®«м§®ў вм ҐЈ® Є Є Ё¤ҐЄб ў
в Ў«ЁжҐ, ᮤҐа¦ 饩 § 票п ᮮ⢥вбвўгойЁе ЇҐаҐ¤ўЁ¦ҐЁ© Ї® ®бп¬
Є®®а¤Ё в.
Џ®ўҐамвҐ, нв® «гзиҐ, 祬 ЁбЇ®«м§®ў ЁҐ ¬ ⥬ вЁЄЁ б Ї« ў о饩 § Їпв®©, ¤
ҐйҐ ў¬Ґб⥠б ваЁЈ®®¬ҐваЁзҐбЄЁ¬Ё дгЄжЁп¬Ё. ‚л г§ ҐвҐ Ј®а §¤® Ў®«миҐ ®
Ї®¤®Ўле д®Єгб е ў 18-© Ј« ўҐ "’ҐеЁЄ ®ЇвЁ¬Ё§ жЁЁ".
‚® ўбпЄ®¬ б«гз Ґ, Є Є в®«мЄ® в ЄЁ ¤ўЁгвбп, ба §г ¦Ґ ¬®¦® ®вЄалў вм
®Ј®м.
ђ §¤Ґ« 6: ђ бЇ®§ ў ЁҐ бв®«Є®ўҐЁ©
-------------------------------------
Љ®Ј¤ ¤«п ўбҐе ®ЎкҐЄв®ў ®ЇаҐ¤Ґ«Ґ® Ёе ®ў®Ґ ¬Ґбв®Ї®«®¦ҐЁҐ, 㦮
Ї®б¬®ваҐвм, Ґ ЇҐаҐбҐЄ овбп «Ё ®Ё ў Є ЄЁе-ЁЎг¤м в®зЄ е, в® Ґбвм, Ґ
агиЁ«Ё «Ё ®Ё ЇаЁжЁЇ ЁбЄ«озЁвҐ«м®бвЁ Џ г«Ё, Ї®« Ј ойЁ© зв® ¤ўҐ
а §«ЁзлҐ з бвЁжл Ґ ¬®Јгв ў ®¤® Ё в® ¦Ґ ўаҐ¬п 室Ёвмбп ў ®¤®¬ Ё ⮬ ¦Ґ
¬ҐбвҐ. ЏаЁ¬ҐЁвҐ«м® Є 襩 Їа®Ја ¬¬Ґ, ¬л ¤®«¦л ®вўҐвЁвм ў®Їа®б: Ї®Ї «
«Ё б ап¤ ў® ўа ¦ҐбЄЁ© Ё«Ё ў и б®ЎбвўҐл© в Є? „«п нв®Ј® Є®®а¤Ё вл
ўбҐе б а冷ў Їа®ўҐаповбп б®ўЇ ¤ҐЁҐ б Є®®а¤Ё в ¬Ё в Є . …б«Ё
Їа®Ёб室Ёв Ї®Ї ¤ ЁҐ, ®® дЁЄбЁагҐвбп б ⥬, зв®Ўл ў Є®жҐ жЁЄ« ЁЈал
Ё§®Ўа §Ёвм ў§алў. —в® Є б Ґвбп бв®«Є®ўҐЁ© в Є®ў ¤агЈ б ¤агЈ®¬,
- 579 -
в® Ї®Є Ї®§ў®«Ё¬ Ё¬ нв® ¤Ґ« вм ЎҐбЇаҐЇпвб⢥® (ЇаҐ¤« Ј о ў ¬ ¤®а Ў®в вм
Їа®Ја ¬¬г ў нв®© з бвЁ б ¬®бв®п⥫м®).
Ља®¬Ґ нв®Ј® ¬ 㦮 Ї®§ Ў®вЁвмбп ® ⮬, зв®Ўл в ЄЁ Ґ ¬®Ј«Ё Їа®е®¤Ёвм
бЄў®§м бвҐл. …б«Ё ўл Ї®¬ЁвҐ, ЁЈа®ў®Ґ Ї®«Ґ ЇаҐ¤бв ў«пҐв б®Ў®© ¬ ваЁжг
н«Ґ¬Ґв®ў, Ё¬Ґойго ®ЇаҐ¤Ґ«Ґго а §¬Ґа®бвм. ‚ Net-Tank а §¬Ґа ЁЈа®ў®Ј®
Ї®«п б®бв ў«пҐв 20е11 п祥Є, Є ¦¤ п Ё§ Є®в®але Ё¬ҐҐв Ї«®й ¤м 16е16
ЇЁЄбҐ«Ґ©. ‘«Ґ¤®ў ⥫м®, зв®Ўл гўЁ¤Ґвм, Ґ бв®«Єг«бп «Ё в Є б® б⥪®©,
в® Ґбвм Ї®Ї « ў § пвго п祩Єг, Ґ®Ўе®¤Ё¬®:
- ђ §¤Ґ«Ёвм ¤ўҐ Є®®а¤Ё вл в Є 16;
- ЋЄагЈ«Ёвм १г«мв в ¤® 楫®Ј®;
_ €бЇ®«м§®ў вм Ї®«г祮Ґ § 票Ґ Є Є Ё¤ҐЄб п祩ЄЁ ЁЈа®ў®Ј® Ї®«п, зв®Ўл
гўЁ¤Ґвм, Ґбвм «Ё в ¬ Ў«®Є. …б«Ё бв®«Є®ўҐЁҐ Їа®Ё§®и«®, ўҐагвм в Є ў
ЇаҐ¦оо Ї®§ЁжЁо.
ђ §¤Ґ« 7: ђЁб®ў ЁҐ ®ЎкҐЄв®ў
----------------------------
’ҐЇҐам ¬л Ј®в®ўл аЁб®ў вм ўбҐ ®ЎкҐЄвл. —в®Ўл ᤥ« вм нв®, ¬л ¤®«¦л
б®еа Ёвм д® ў вҐе ¬Ґбв е, Ј¤Ґ ¬л Ї« Ёа㥬 а §¬ҐбвЁвм ®ЎкҐЄвл. Џ®б«Ґ
нв®Ј® Ёе ¬®¦® аЁб®ў вм. Ќ н⮬ нв ЇҐ ЁЈа®ў®© нЄа Ї®«®бвмо Ї®бв஥ ў
¤гЎ«Ёаго饬 ЎгдҐаҐ Ё ⥯Ґам ¬®¦® Ї®б¬®ваҐвм, зв® ¦Ґ г б Ї®«гзЁ«®бм.
ђ §¤Ґ« 8: „гЎ«ЁагойЁ© ЎгдҐа
---------------------------
‚ Net-Tank ЁбЇ®«м§гҐвбп вҐеЁЄ ¤гЎ«Ёаго饩 ЎгдҐаЁ§ жЁЁ ¤«п ЁбЄ«о票п
¬Ґаж Ёп Ё§®Ўа ¦ҐЁп. ‚ нв®© з бвЁ ЁЈал Єа ©Ґ Ўлбвал© жЁЄ« бᥬЎ«Ґа
Є®ЇЁагҐв ¤гЎ«ЁагойЁ© ЎгдҐа нЄа . Ћ¤ Є® ¬л ЇҐаҐ¬Ґй Ґ¬ в®«мЄ® ЇҐаўлҐ 176
бва®Є Ё§ ЎгдҐа , в Є Є Є Ё¦пп з бвм нЄа ҐЁ§¬Ґ Ё ҐҐ Ґ ¤®
ЇҐаҐаЁб®ўлў вм.
ђ §¤Ґ« 9: ‚бпЄ п ўбпзЁ
------------------------
€Ја Їа®и« ®зҐаҐ¤®© жЁЄ«. Ќ®ў п ЁЈа®ў п бЁвг жЁп ®в®Ўа ¦Ґ нЄа Ґ Ё
¬л Ј®в®ўл ўҐагвмбп Є з «г жЁЄ« ЁЈал. Ќ® ЇҐаҐ¤ нвЁ¬ ¬ 㦮 ᤥ« вм
Є®Ґ-зв® ҐйҐ. ‚® ўаҐ¬п нв®© д §л ЁЈал ЇҐаҐаЁб®ўлў Ґвбп ЁЈа®ў®Ґ Їа®бва бвў®,
ᢥઠов ®ЈЁ ў§алў®ў, ЇҐаҐ¬ҐлҐ, 㦤 ойЁҐбп ў бЎа®бҐ, ЇаЁЁ¬ ов
Ёбе®¤лҐ § 票п.
ђ §¤Ґ« 10: ЋЇпвм Ё б®ў ®Їпвм...
---------------------------------
ЃҐ§гб«®ўл© ЇҐаҐе®¤ Є ᥪ樨 1.
- 580 -
€’Ћѓ
Њл Ґ в®«мЄ® гзЁ«Ёбм а Ў®в вм Ї®б«Ґ¤®ў ⥫мл¬ Ї®а⮬, ® Ё ᮧ¤ «Ё
Ї®«го ЎЁЎ«Ё®вҐЄг, Є®в®а п ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў ў Ўг¤г饬 б ҐЎ®«миЁ¬Ё
¬®¤ЁдЁЄ жЁп¬Ё.
Њл в Є¦Ґ гзЁ«Ёбм ᮥ¤Ёпвм ў бҐвм ¤ў Є®¬ЇмовҐа Ё г§ «Ё ® д Єв®а е,
Є®в®алҐ ¤® ЇаЁ н⮬ гзЁвлў вм. Ќ Є®Ґж, г б Ї®пўЁ« бм Ї®« п (ўҐаҐҐ,
Ї®звЁ Ї®« п) бҐвҐў п ЁЈа .
ѓ ‹ Ђ ‚ Ђ 14 (Ђ¤ан ‹ Њ®в)
‘ ‚ џ ‡ њ
---------------------
’ Є ¦Ґ, Є Є Ґ¤Ёб⢥ п Є«ҐвЄ ¬®§Ј Ґ ¬®Ј« Ўл ᤥ« вм Ў®«миЁе гбЇҐе®ў ў
и е¬ в е, ЁЈа вм б Є®¬ЇмовҐа®¬ ў ®¤Ё®зҐб⢥ Ґ ®зҐм ЁвҐаҐб®. ‚ бўп§Ё б
Ї®б«Ґ¤Ё¬Ё ¤®бвЁ¦ҐЁп¬Ё ў ®Ў« б⨠⥫ҐЄ®¬¬гЁЄ жЁ©, ўЁ¤Ґ®ЁЈал ¤«п
ҐбЄ®«мЄЁе ЁЈа®Є®ў бв ®ўпвбп ўбҐ Ў®«ҐҐ а бЇа®бва Ґл¬Ё. ‚ бв®п饥
ўаҐ¬п ¬®ЈЁҐ Їа®Ја ¬¬л Ї®¤¤Ґа¦Ёў ов ЁЈаг ¤ўге 祫®ўҐЄ зҐаҐ§ ¬®¤Ґ¬. ‚ нв®©
Ј« ўҐ ¬л 祬 Ё§гз вм бЁб⥬л бўп§Ё ¬Ґ¦¤г ЏЉ Ё ЇаЁҐ¬л, Ґ®Ўе®¤Ё¬лҐ ¤«п
ᮧ¤ Ёп ўЁ¤Ґ®ЁЈа, а ббзЁв ле ҐбЄ®«мЄЁе ЁЈа®Є®ў.
‚ нв®© Ј« ўҐ Ўг¤гв Ё§гзҐл б«Ґ¤гойЁҐ ⥬л:
- ‘।бвў бўп§Ё ўЁ¤Ґ®ЁЈа;
- Џ®б«Ґ¤®ў ⥫мл© ЁвҐадҐ©б ЏЉ;
- ”гЄжЁЁ Ї®¤¤Ґа¦ЄЁ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ROM BIOS;
- ‘®Ґ¤ЁҐЁҐ зҐаҐ§ г«м-¬®¤Ґ¬;
- ‘®§¤ ЁҐ Є®¬¬гЁЄ жЁ®ле ЎЁЎ«Ё®вҐЄ;
- ‘ва ⥣Ёп Є®¬¬гЁЄ жЁ®ле ўЁ¤Ґ®ЁЈа;
- ‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп;
- ‘Ёеа®Ё§ жЁп б®бв®пЁп Ї®ав ўў®¤ /ўлў®¤ ;
- ‘Ёеа®Ё§ жЁп Ї® ўаҐ¬ҐЁ;
- 542 -
- Њ®¤Ґ¬;
- Ќ ЇЁб ЁҐ ЁЈал Net-Tank (‘ҐвҐў®© в Є) ¤«п ¤ўге ЁЈа®Є®ў ў § ¬Єг⮬
Їа®бва б⢥.
‚ нв®© Ј« ўҐ ¬л бЄ®жҐваЁа㥬 ўЁ¬ ЁҐ Їа®Ў«Ґ¬ е ¤Ё§ © ЁЈа ¤«п
ҐбЄ®«мЄЁе ЁЈа®Є®ў, Ї® ў®§¬®¦®бвЁ Ґ ў¤ ў пбм ў гЇа ў«ҐЁҐ Є®¬¬гЁЄ жЁп¬Ё
Є Є в Є®ўл¬Ё. Љ ᮦ «ҐЁо, г б Ґв ўаҐ¬ҐЁ Ё§г票Ґ ¬Ґв®¤®ў
®бгйҐбвў«ҐЁп бўп§Ё зҐаҐ§ ¬®¤Ґ¬ ў Ї®«®¬ ®ЎкҐ¬Ґ. Ћ¤ Є® ¬л гзЁ¬бп
гЇа ў«пвм бўп§мо зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав б Ї®¬®ймо г«м-¬®¤Ґ¬ . ‘ нвЁ¬Ё
§ Ёп¬Ё, Ї®ва вЁў ¤®Ї®«ЁвҐ«м® ҐбЄ®«мЄ® ®зҐ©, ўл гзЁвҐбм бўп§лў вмбп
зҐаҐ§ ¬®¤Ґ¬. “ ў б Ўг¤гв ўбҐ н«Ґ¬Ґвл, ¤®бв в®злҐ ¤«п в®Ј®, зв®Ўл Ї®«гзЁвм
Ґзв® а Ў®в о饥. Њл е®вЁ¬ гзЁвмбп ЇЁб вм ўЁ¤Ґ®ЁЈал ¤«п ¤ўге Ё Ў®«ҐҐ
ЁЈа®Є®ў, бЁ¤пйЁе § бў®Ё¬Ё Є®¬ЇмовҐа ¬Ё Ё ЁЈа ойЁ¬Ё ®¤®ўаҐ¬Ґ® ЎҐ§ Ї®вҐаЁ
бЁеа®Ё§ жЁЁ Ё Їа®зЁе Їа®Ў«Ґ¬. Џ®н⮬г б Ў®«миҐ Ўг¤Ґв ЁвҐаҐб®ў вм
в ЄвЁЄ Є®¬¬гЁЄ жЁЁ ў аеЁвҐЄвгॠўЁ¤Ґ®ЁЈа, Ґ дЁ§ЁзҐбЄ п Є®¬¬гЁЄ жЁп
б ¬ Ї® ᥡҐ.
‘ђ…„‘’‚Ђ ‘‚џ‡€ ‚€„…Ћ€ѓђ
Љ н⮬㠬®¬Ґвг ўл 㦥 ¤®«¦л Ўлвм Ј®в®ўл ЇЁб вм ўЁ¤Ґ®ЁЈал. ‚л ®в з « Ё
¤® Є®ж гзЁ«Ёбм ⮬г, зв® ¤«п нв®Ј® Ґ®Ўе®¤Ё¬® § вм. Ћ¤ Є® ¬л ¤® бЁе
Ї®а гЇгбЄ «Ё ®¤Ё ў ¦л© ¬®¬Ґв: Є Є ЇЁб вм ЁЈаг, зв®Ўл ў ҐҐ ¬®Ј«Ё
ЁЈа вм ба §г ҐбЄ®«мЄ® 祫®ўҐЄ? ќв® ¬ Ї®Єг¤ б®ўҐа襮 Ґ Ё§ўҐбв®.
‘гйҐбвўгов ўЁ¤Ґ®ЁЈал, Ї®¤¤Ґа¦Ёў ойЁҐ ¬®¤Ґ¬®Ґ ᮥ¤ЁҐЁҐ, ® Ў®«миЁбвў®
«о¤Ґ© Ё«Ё Ґ Ї®«м§говбп нв®© ў®§¬®¦®бвмо, Ё«Ё згўбвўгов, зв® ® б«ЁиЄ®¬
б«®¦ , зв®Ўл Є Ґ© ЇаЁЎҐЈ вм. ‚ «оЎ®¬ б«гз Ґ, ў®Їа®б ў нв®© ®Ў« бвЁ ўбҐ
ҐйҐ ®бв Ґвбп ®вЄалвл¬ Ё ў ¬ ЇаҐ¤б⮨⠯தҐ« вм Ґ¬ «® а Ў®вл, Ґб«Ё
¤Ґ©бвўЁвҐ«м® § ©¬ҐвҐбм Їа®Ја ¬¬Ёа®ў ЁҐ¬ ЁЈа.
Џ®бЄ®«мЄг б ЇҐаў® з «м® ЁвҐаҐбгҐв ЇЁб ЁҐ ўЁ¤Ґ®ЁЈа ¤«п Ї®вॡЁвҐ«Ґ©,
¬л Ўг¤Ґ¬ Є®жҐваЁа®ў вм иЁ гбЁ«Ёп ЁбЇ®«м§®ў ЁЁ бҐаЁ©ле Ї®ав®ў Є Є
б।бвў Є®¬¬гЁЄ жЁЁ ( Ґ бҐвҐўлҐ Є®¬¬гЁЄ жЁЁ вЁЇ IPX/SPX Ё«Ё NETBIOS).
џ ўлЎЁа о Ї а ««Ґ«мл© Ї®ав ў ®в«ЁзЁҐ ®в ЁбЇ®«м§®ў Ёп ҐбЄ®«мЄЁе Ethernet
Ї« в Ї® б«Ґ¤гойЁ¬ ЇаЁзЁ ¬:
- ‚®-ЇҐаўле, г Є ¦¤®Ј® Є®¬ЇмовҐа Ґбвм бў®© Ї а ««Ґ«мл© Ї®ав;
- ‚®-ўв®але, г ¬®ЈЁе «о¤Ґ© Ґбвм бў®Ё ¬®¤Ґ¬л, б Ї®¬®ймо Є®в®але ®Ё
®Ў« ¤ ов ®б®ўл¬ б।бвў®¬ ¤«п ЁЈал ў¤ў®Ґ¬.
…б«Ё ¬л б®ЎЁа Ґ¬бп ЇЁб вм ўЁ¤Ґ®ЁЈал ¤«п ¤ўге Ё«Ё Ў®«ҐҐ ЁЈа®Є®ў, в® ¤®«¦л
а ббзЁвлў вм нв® б б ¬®Ј® з « . ‚л Ґ ¬®¦ҐвҐ ЇЁб вм б«®¦го ЁЈаг Ё
в®«мЄ® Ї®в®¬ ў¤агЈ аҐиЁвм, зв® ¤Ґ« ҐвҐ ҐҐ Є Є ЁЈаг ¤«п ҐбЄ®«мЄЁе ЁЈа®Є®ў.
ЌҐ®Ўе®¤Ё¬® Ї®¬Ёвм, зв® а §а Ў®вЄ ¤ўге Ґ§ ўЁбЁ¬ле ЁЈа, Є®в®алҐ
§ ЇгбЄ овбп Ё бЁеа®® а Ў®в ов ¤ўге а §«Ёзле ЏЉ, вॡгҐв ЇаЁ«Ёзле
ва㤮ўле § ва в Ё ЇаҐ¤ў аЁвҐ«м®Ј® Ї« Ёа®ў Ёп.
- 543 -
ЏЋ‘‹…„Ћ‚Ђ’…‹њЌ›‰ €Ќ’…ђ”…‰‘ ЏЉ
Џ®б«Ґ¤®ў ⥫мл© Ї®ав ў ЏЉ бЄ®бвагЁа®ў в Є, зв® ЇаҐ¤бв ў«пҐв б®Ў®©
бЁб⥬г, ®еў влў ойго ¬®Ј® а §«Ёзле Є®¬Ї®Ґв®ў. Ќ ¬, Є Є Їа®Ја ¬¬Ёбв ¬,
Ґ ®Ўп§ вҐ«м® ў¤ ў вмбп ў Ї®¤а®Ў®бвЁ ҐЈ® гбва®©бвў б в®зЄЁ §аҐЁп
ЇЇ а вгал. Ћ¤ Є® Ї®«Ґ§® Ё¬Ґвм ЇаҐ¤бв ў«ҐЁҐ, Є Є ® а Ў®в Ґв, ¤ ¦Ґ Ґб«Ё
нв® ЁЄ®Ј¤ Ґ Ї® ¤®ЎЁвбп.
ЏҐаҐ¤ ⥬ Є Є ¬л Ї®Јаг§Ё¬бп ў ®ЇЁб ЁҐ бЁбвҐ¬л Ї®б«Ґ¤®ў ⥫мле
Є®¬¬гЁЄ жЁ© ЏЉ, ¤ ў ©вҐ а бᬮваЁ¬ бЁб⥬г вҐе ҐҐ ў®§¬®¦®б⥩, Є®в®алҐ
ЁвҐаҐбгов б Є Є а §а Ў®взЁЄ®ў ўЁ¤Ґ®ЁЈа. ЏЉ ¬®Јгв Ї®¤¤Ґа¦Ёў вм «® ᥬЁ
Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў, Ґб¬®вап в®, зв® Ў®«миЁбвў® ЏЉ Ё¬Ґо⠢ᥣ®
®¤Ё Ё«Ё ¤ў Ї®б«Ґ¤®ў ⥫мле Ї®ав . Њл ¬®¦Ґ¬ бЄ®дЁЈгаЁа®ў вм Ёе ¤«п бўп§Ё
в Є, зв® бЄ®а®бвм ЇҐаҐ¤ зЁ ¬®¦Ґв ¤®бвЁЈ вм 115200 Ў®¤. Њл ¬®¦Ґ¬ в Є¦Ґ
ўлЎа вм вЁЇ зҐв®бвЁ, Є®«ЁзҐбвў® бв®Ї-ЎЁв®ў Ё ЎЁв®ў ¤ ле, в Є¦Ґ вЁЇл
ЇаҐалў Ё©, Є®в®алҐ ¬л е®вЁ¬ § ¤Ґ©бвў®ў вм. …б«Ё ўл Ґ § ҐвҐ, ® 祬 Ё¤Ґв
аҐзм, в® § ¤Ґа¦ЁвҐбм §¤Ґбм згвм Ї®¤®«миҐ Ё Ї®бв а ©вҐбм Ї®пвм, ® 祬 п
Ўг¤г Ј®ў®аЁвм.
ЏаҐ¦¤Ґ ўбҐЈ®, 㦮 бЄ®дЁЈгаЁа®ў вм Ї®ав, зҐаҐ§ Є®в®ал© ¬л ᬮ¦Ґ¬ ®Ўй вмбп
б ¤агЈЁ¬Ё Є®¬ЇмовҐа ¬Ё Ё«Ё гбва®©бвў ¬Ё, зЁв п Ё«Ё § ЇЁблў п ¤ лҐ ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. ЂЇЇ а ⮥ ®ЎҐбЇҐзҐЁҐ ЏЉ § Ў®вЁвбп ® ¬®ЈЁе ¤Ґв «пе
ЇҐаҐ¤ зЁ Ё ЇаЁҐ¬ ¤ ле. ‚бҐ, зв® ¬ Ґ®Ўе®¤Ё¬® ᤥ« вм, нв® Ї®б« вм ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав бЁ¬ў®« ¤«п ЇҐаҐ¤ зЁ Ё«Ё ®Ўа Ў®в вм бЁ¬ў®«, Є®в®ал© ўл
®¦Ё¤ ҐвҐ. „«п ўЁ¤Ґ®ЁЈа ў ¦®, зв® ¬л Ї®бл« Ґ¬ Ї ЄҐвл Ёд®а¬ жЁЁ, Є®в®алҐ
®ЇЁблў ов б®бв®пЁҐ ЁЈал ¤агЈ®© ¬ иЁҐ Ё ®Ў®а®в. ќвЁ Ї ЄҐвл б®бв®пв Ё§
бв ¤ авле бЁ¬ў®«®ў ¤«Ё®© 8 ЎЁв.
…¤Ёб⢥®Ґ, зв® ¬ 㦮 § вм, нв® Є Є ®вЄалвм Ї®б«Ґ¤®ў ⥫мл© Ї®ав,
§ ЇЁб вм ў ҐЈ® бЁ¬ў®«л Ё Їа®зЁв вм ®вўҐвго Ёд®а¬ жЁо. ЏҐаҐ©¤Ґ¬ Ў«Ё¦Ґ Є
¤Ґ«г Ё Ї®б¬®ваЁ¬, зв® ЏЉ ¬®Јгв ¤«п нв®Ј® ЇаҐ¤«®¦Ёвм (¬Ґ¦¤г Їа®зЁ¬, § 票Ґ
ҐЄ®в®але вҐа¬Ё®ў ®Ўкпбп«®бм згвм а ҐҐ).
“Ќ€‚…ђ‘Ђ‹њЌ›‰ Ђ‘€Ќ•ђЋЌЌ›‰ Џђ€…ЊЋЏ…ђ…„Ђ’—€Љ
ЏЉ ®Ў®а㤮ў л гЁўҐаб «мл¬ бЁеа®л¬ ЇаЁҐ¬®ЇҐаҐ¤ взЁЄ®¬ (UART) - зЁЇ®¬,
Є®в®ал© ЇаЁЁ¬ Ґв Ё ЇҐаҐ¤ Ґв Ї®б«Ґ¤®ў ⥫млҐ ¤ лҐ. ‘гйҐбвўгов ¤ў
ЁЎ®«ҐҐ Ї®Їг«пале UART ¤«п ЏЉ:
- Њ®¤Ґ«м 8250;
- Њ®¤Ґ«м 16550.
Њ®¦ҐвҐ бзЁв вм, зв® ®Ё Ї®«®бвмо б®ў¬ҐбвЁ¬л ¤агЈ б ¤агЈ®¬ Ё ¬ Ґ 㦮
ўлпбпвм, Є Є®© Ё§ Ёе ЁбЇ®«м§гҐвбп. …¤ЁбвўҐл¬ Ёе ў ¦л¬ ®в«ЁзЁҐ¬
пў«пҐвбп в®«мЄ® в®, зв® ¬®¤Ґ«м 16550 Ё¬ҐҐв ўгв२© FIFO (First In, First
Out - "ЇҐаўл© ў®иҐ« - ЇҐаўл© ўл襫") ЎгдҐа, Є®в®ал© а бЇ®« Ј Ґв
- 544 -
ўе®¤пйЁҐ ¤ лҐ в Є, зв® ®Ё Ґ ¬®Јгв Ї®вҐапвмбп ўб«Ґ¤бвўЁҐ § ¤Ґа¦ЄЁ
®Ўа Ў®вЄЁ. ’ҐЇҐам ў§Ј«пҐ¬ Є¦¤л© Ё§ ॣЁбва®ў UART Ё в®, Є Є Ї®«гзЁвм
Є Ё¬ ¤®бвгЇ. Џ®б«Ґ в®Ј® Є Є ¬л ®Ўп§ «Ёбм ЇЁб вм Ї®«го ЎЁЎ«Ё®вҐЄг ¤«п
бўп§Ё, Ґ®Ўе®¤Ё¬® гпбЁвм, Є Є ®вЄалвм Ї®б«Ґ¤®ў ⥫мл© Ї®ав, в Є¦Ґ Є Є
®бгйҐбвў«пвм з⥨Ґ Ё § ЇЁбм. Ќ ЇЁб ў ®¤ ¦¤л ᮮ⢥вбвўгойЁҐ дгЄжЁЁ, ¬л
¬®¦Ґ¬ бЄ®жҐваЁа®ў вмбп 楫пе ЁЈал.
“бв ®ўЄЁ Ё бв вгб UART
------------------------------
“бв ®ўЄЁ Ё бв вгб UART гЇа ў«повбп зҐаҐ§ Ў®а ўгв२е ॣЁбва®ў,
¤®бвгЇле Є Є Ї®авл ўў®¤ /ўлў®¤ , ¤аҐб Є®в®але зЁ овбп ®в ҐЄ®в®а®Ј®
Ў §®ў®Ј® ¤аҐб . Ѓ §®ўл© ¤аҐб ®ЇаҐ¤Ґ«пҐвбп ®¬Ґа®¬ Ї®б«Ґ¤®ў ⥫쮣®
Ї®ав , зҐаҐ§ Є®в®ал© ўл е®вЁвҐ бўп§ вмбп. ђ бᬮваЁ¬ в Ў«Ёжг 14.1, ў
Є®в®а®© гЄ § л Ў §®ўлҐ ¤аҐб гЇа ў«пойЁе ॣЁбва®ў UART.
’ Ў«Ёж 14.1. Ѓ §®ўлҐ ¤аҐб гЇа ў«по饣® ॣЁбва UART.
---------------------------------------------------------------------
Џ®б«Ґ¤®ў ⥫мл© Ї®ав Ѓ §®ўл© ¤аҐб Ї®ав
- - - - - - - - - - - - - - - - -- - -- - - - - - - ---- --- - - - -
COM1 3F8h
COM2 2F8h
COM3 3E8h
COM4 2E8h
_______________________________________________________________________
Љ Є ўЁ¤ЁвҐ, Ґб«Ё ¬л е®вЁ¬ ЁЈа вм зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав COM1, ¬
Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм Ї®ав 3F8h ў Є зҐб⢥ Ў §®ў®Ј® ¤аҐб ўў®¤ /ўлў®¤ .
Љ ¦¤л© Ї®ав Ё¬ҐҐв 9 ॣЁбва®ў, ў Є®в®алҐ ¬®¦® ЇЁб вм Ё«Ё Ё§ Є®в®але ¬®¦®
бзЁвлў вм Ёд®а¬ жЁо ў § ўЁбЁ¬®бвЁ ®в Ёе вЁЇ . ‘«Ґ¤®ў ⥫м®, ¤«п ¤®бвгЇ Є
ॣЁбваг 1 Ї®ав COM1 Ґ®Ўе®¤Ё¬® ЁбЇ®«м§®ў вм ¤аҐб ўў®¤ /ўлў®¤ 3F8h+1,
в® Ґбвм 3F9h.
’ҐЇҐам ¬л § Ґ¬, Ј¤Ґ а бЇ®«®¦Ґл ॣЁбвал. Ђ зв® Є ¦¤л© Ё§ Ёе ¤Ґ« Ґв?
ђҐЈЁбва 0: Љ Є ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ
----------
(Transmitter-Holding Register - THR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДД ВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X і
АДДДБДД БДДДБДДДБДДДБДДДБДДДБДДДЩ
ќв® ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ, Єг¤ Ї®¬Ґй Ґвбп б«Ґ¤гойЁ© бЁ¬ў®« ¤«п
ЇҐаҐ¤ зЁ. …б«Ё нв® ®¤Ё®зл© Ў ©в Ё ўл ЁбЇ®«м§гҐвҐ б奬㠯ҐаҐ¤ зЁ, Ё¬Ґойго
¬ҐҐҐ 8 ЎЁв, в® ¤ лҐ ЁЈ®аЁаговбп Ё Ґ ЇҐаҐ¤ овбп ў®®ЎйҐ.
- 545 -
ђҐЈЁбва 0: Љ Є ॣЁбва-ЎгдҐа ЇаЁҐ¬ (Reciever Buffer
----------
Register - RBR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X і
АДДДБДДДБДДДБДДДБДДДБДДДБДДДБДДДЩ
ђҐЈЁбва 0 в Є¦Ґ ўлЇ®«пҐв дгЄжЁЁ ЎгдҐа®Ј® ॣЁбва ЇаЁҐ¬ . ‚ § ўЁбЁ¬®бвЁ
®в в®Ј®, ЇЁиҐвҐ ўл ў ҐЈ® Ё«Ё зЁв ҐвҐ Ё§ нв®Ј® ॣЁбва , ЎгдҐа ЇҐаҐ¤ Ґв Ё«Ё
ЇаЁЁ¬ Ґв бЁ¬ў®«л б ¤агЈ®Ј® Є®¬ЇмовҐа ᮮ⢥вб⢥®. ‚ «оЎ®¬ б«гз Ґ, ЇаЁ
з⥨Ё Ё§ нв®Ј® ॣЁбва ® ᮤҐа¦Ёв Ї®б«Ґ¤Ё© ЇҐаҐ¤ л© Ґ¬г бЁ¬ў®«.
ђҐЈЁбва 1: ђҐЈЁбва ЇаҐалў Ёп (Interrupt Enable Register -
----------
IER)
Љ®Ј¤ гбв ў«Ёў Ґвбп нв®в
ЎЁв, UART Ўг¤Ґв ЈҐҐаЁа®ў вм TBE: Љ®Ј¤ гбв ®ў«Ґ нв®в ЎЁв,
ЇаҐалў ЁҐ ўбпЄЁ© а §, Є®Ј¤ UART ЈҐҐаЁагҐв ЇаҐалў ЁҐ ўбпЄЁ©
«оЎ п Ё§ «ЁЁ© ЁвҐа䥩б ДДї а §, Є®Ј¤ ® ЇҐаҐ¤ Ґв
RS-232 Ё§¬ҐЁв бў®Ґ і бЁ¬ў®« ў ॣЁбва б¤ўЁЈ
б®бв®пЁҐ і і
і і
ЃЁв 7 6 5 4 і3 2 і1 0
ЪДДДВДДДВДДДВДДДВЕДДВДДДВЕДДВДДДї
і X і X і X і X і X і X і X і XДЕДДДї
АДДДБДДДБДДДБДДДБДДДБДЕДБДДДБДДДЩ і
і і
Љ®Ј¤ гбв ®ў«Ґ нв®в ЎЁв, і RxRDY: Љ®Ј¤ гбв ®ў«Ґ
UART Ўг¤Ґв ЈҐҐаЁа®ў вм ДДДДДДДДДЩ нв®в ЎЁв, UART ЈҐҐаЁагҐв
ЇаҐалў ЁҐ Ї® ®иЁЎЄҐ ЇаҐалў ЁҐ ўбпЄЁ© а §,
зҐв®бвЁ, ®иЁЎЄҐ Є®¤Ёа®ў Ёп, Є®Ј¤ ЎгдҐа ЇаЁҐ¬
®иЁЎЄҐ а Ў®вл Ё Ї® BREAK ᮤҐа¦Ёв бЁ¬ў®«
ќв®в ॣЁбва ЁбЇ®«м§гҐвбп, зв®Ўл § ¤Ґ©бвў®ў вм в®в вЁЇ ЇаҐалў Ё©, Є®в®ал©
¬®¦Ґв бЈҐҐаЁа®ў вм UART. Ћ ¤®бвгЇҐ Є Є ¤«п з⥨п, в Є Ё ¤«п § ЇЁбЁ.
Џ®б«Ґ гбв ®ўЄЁ бҐаЁ©®Ј® Ї®ав Ўл«® Ўл Ґг¤®Ў® Ї®бв®п® ®Їа иЁў вм ҐЈ®,
Ї®н⮬㠤«п Ї®«гзҐЁп ўе®¤ле ¤ ле «гзиҐ ЇЁб вм Їа®жҐ¤гаг ®Ўб«г¦Ёў Ёп
ЇаҐалў Ёп (ISR), Є®в®а п Ўг¤Ґв ўл§лў вмбп Є ¦¤л© а § ЇаЁ Ї®«г票Ё
бЁ¬ў®« . ќв®в ॣЁбва Ї®§ў®«пҐв ¬ б®®ЎйЁвм UART'г, Є ЄЁҐ Ё¬Ґ® б®ЎлвЁп
¤®«¦лўл§лў вм ЇаҐалў ЁҐ. „«п б ЇаҐ¤бв ў«пҐв ЁвҐаҐб в®«мЄ® ЇаҐалў ЁҐ
RxRDY, Є®в®а®Ґ ЈҐҐаЁагҐвбп ЇаЁ Ї®«г票Ё cЁ¬ў®« UART'®¬.
- 546 -
ђҐЈЁбва 2: ђҐЈЁбва Ё¤ҐвЁдЁЄ жЁЁ ЇаҐалў Ёп
----------
(Interrupt-Identification Register - IIR)
ЃЁв 7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і X і X і X і X і X і X і X і X ЕДДДДї
АДДДБДДДБДДДБДДДБДДДБЕДДБДДЕБДДДЩ і
…б«Ё Їа®Ё§®и«® ЇаҐалў ЁҐ, АДДВДДЩ і
нвЁ ¤ў ЎЁв ®ЇЁблў ов ҐЈ®: і і
і …б«Ё нв®в ЎЁв 0, в®
ЃЁв 2 ЃЁв 1 і Їа®Ёб室Ёв ЇаҐалў ЁҐ, ў
і Їа®вЁў®¬ б«гз Ґ - Ґв.
0 0 - ‘в вгб ¬®¤Ґ¬ і
0 1 - Џгбв®© THR ДДДДДДДДДДДДДДЩ
1 0 - RBF Ї®«л©
1 1 - ЋиЁЎЄ
ђҐЈЁбва Ё¤ҐвЁдЁЄ жЁЁ ЇаҐалў Ёп ЁбЇ®«м§гҐвбп ¤«п ®ЇаҐ¤Ґ«ҐЁп ЇаЁзЁл, Ї®
Є®в®а®© UART ўл¤ « ЇаҐалў ЁҐ. ќв® ¬®¦Ґв Ї®Є § вмбп Ё§Ўлв®зл¬, ®¤ Є® Ґб«Ё
ўл ЇаҐ¤ў аЁвҐ«м® гбв ®ўЁ«Ё UART ¤«п Ї®«гзҐЁп ЇаҐалў Ёп Ї® ¤ўг¬ Ё«Ё
Ў®«ҐҐ а §«Ёзл¬ б®ЎлвЁп¬, в®, Ї®бЄ®«мЄг нв®в ॣЁбва ®ЇаҐ¤Ґ«пҐв вЁЇ
Їа®Ё§®иҐ¤иҐЈ® ЇаҐалў Ёп, ® Ї®¬®¦Ґв ў ¬ ўлпбЁвм, зв® Ё¬Ґ® Їа®Ё§®и«®.
ђҐЈЁбва 3: ђҐЈЁбва гЇа ў«ҐЁп «ЁЁҐ© (Line-Control
----------
Register - LCR)
“Їа ў«пҐв Є®«ЁзҐбвў®¬ бв®Ї-ЎЁв®ў. …б«Ё ЎЁв 2 а ўҐ 0, ЃЁвл 1 Ё 0 ®ЇаҐ-
н⮠ᮮ⢥вбвўгҐв ®¤®¬г бв®Ї-ЎЁвг, Ґб«Ё ® а ўҐ 1, ¤Ґ«пов Є®«-ў®
н⮠ᮮ⢥вбвўгҐв ¤ўг¬ бв®Ї-ЎЁв ¬. і ЪДДДДДДДДДДДДДД Ї®бл« Ґ¬ле ЎЁв®ў
і ЪДДБДДї ¤ ле:
ЃЁв 7 6 5 4 3 і2 і1 0і ЃЁв 1 ЃЁв 0
ЪДДДВДДДВДДДВДДДВДДДВЕДДВЕДДВДДЕї
ќв® ЎЁв ДДДДДДЕ X і X і X і X і X і X і X і X і 0 0 - 5 ЎЁв
Є«оз ¤®бвгЇ АДДДБДДЕБЕДДБДЕДБДДЕБДДДБДДДБДДДЩ 0 1 - 6 ЎЁв
Є ¤Ґ«ЁвҐ«о і АДДДДБДВДДЩ 1 0 - 7 ЎЁв
(DLAB). Љ®Ј¤ ® АДДДДДї АДДДДДДДї 1 1 - 8 ЎЁв
а ўҐ 1, ђҐЈЁбвал 0 Ё 1 АДДДДДДДДї і
ЁвҐаЇаҐвЁаговбп Є Є ¤Ґ«ЁвҐ«м і і
в Єв®ў®© з бв®вл, зв® ®ЇаҐ¤Ґ«пҐв і і ЃЁвл 5, 4 Ё 3 гЇа ў«пов вЁЇ®¬
бЄ®а®бвм ЇҐаҐ¤ зЁ. ЏаЁ ¤Ґ«ҐЁЁ і АДДД зҐв®бвЁ ЇҐаҐ¤ зЁ, Є®в®ал©
зЁб« 115200 § 票Ґ, Ї®¬Ґ- і Ўг¤Ґв Ї®б« :
饮Ґ ў н⨠ॣЁбвал, ў १г«мв ⥠і ЃЁв 5 ЃЁв 4 ЃЁв 3
Ї®«гзЁвбп § 票Ґ бЄ®а®бвЁ ЇҐаҐ- і 0 0 0 ЋвбгвбвўгҐв
¤ зЁ. …б«Ё ўл Ґ е®вЁвҐ ҐҐ ¬Ґпвм, і 0 0 1 ЌҐзҐв п
нв®в ЎЁв ¤®«¦Ґ Ўлвм а ўҐ 0. і 0 1 1 —Ґв п
і 1 0 1 ЊҐвЄ
ќв®в ЎЁв гЇа ў«пҐв BREAK-бЁЈ «®¬, Є®в®- 1 1 1 Џа®ЇгбЄ
ал© Ўг¤Ґв Ї®б« ў «ЁЁо ў ¬®¬Ґв
гбв ®ўЄЁ ЎЁв ў 1.
- 547 -
ђҐЈЁбва гЇа ў«ҐЁп «ЁЁҐ© ЁбЇ®«м§гҐвбп ¤«п Ё§¬ҐҐЁп ҐЄ®в®але
е а ЄвҐаЁбвЁЄ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав , в ЄЁе Є Є Є®«ЁзҐбвў® ЇҐаҐ¤ ў Ґ¬ле
ЎЁв®ў ¤ ле Ё вЁЇ зҐвЄ®бвЁ. ќв®в ॣЁбва в Є¦Ґ ўлЇ®«пҐв дгЄжЁЁ
гЇа ў«ҐЁп § Јаг§Є®© бв а襣® Ё ¬« ¤иҐЈ® Ў ©в®ў ¤Ґ«ЁвҐ«п, § ¤ о饣®
бЄ®а®бвм ЇҐаҐ¤ зЁ Ё Ё¬Ґо饣® вЁЇ WORD. ќв®в ॣЁбва в Є¦Ґ ¤®бвгЇҐ Ё ¤«п
§ ЇЁбЁ, Ё ¤«п з⥨п.
ђҐЈЁбва 4: ђҐЈЁбва гЇа ў«ҐЁп ¬®¤Ґ¬®¬ (Modem-Control
----------
Register - MCR)
ќв®в ЎЁв гбв ў«Ёў Ґв ќв®в ЎЁв гЇа ў«пҐв ¬®¤Ґ¬®©
«®Є «мго § Ј«гиЄг. …б«Ё «ЁЁҐ© Ј®в®ў®бвЁ ўў®¤ ¤ ле
нв®в ЎЁв гбв ®ў«Ґ, ўў®¤ДДДДДї (DTR).DTR-«ЁЁп Ўг¤Ґв ®ва ¦ вм
UART ᮥ¤ЁҐ б ўлў®¤®¬. і б®бв®пЁҐ нв®Ј® ЎЁв .
і і
ЃЁв 7 6 5 і4 3 2 1 0 і
ЪДДДВДДДВДДДВЕДДВДДДВДДДВДДДВДДДї і
і X і X і X і X і X і X і X і X ЕДДДДДДДДДЩ
АДДДБДДДБДДДБДДДБДЕДБЕДДБДДДБДЕДЩ
і і і
ќв®в ЎЁв гЇа ў«пҐв і і ќв®в ЎЁв гЇа ў«пҐв ¬®¤Ґ¬®©
гЁўҐаб «мл¬ ўлў®¤®¬ ®¬Ґа ДДДДДДДЩ і «ЁЁҐ© § Їа®б ЇҐаҐ¤ зг
2 (GPO2) - ® ¤®«¦Ґ Ўлвм і (RTS). RTS-«ЁЁп Ўг¤Ґв ®ва ¦ вм
гбв ®ў«Ґ ў 1 ¤«п UART, і б®бв®пЁҐ нв®Ј® ЎЁв .
зв®Ўл Ўл«® ў®§¬®¦® і
Ї®бл« вм ЇаҐалў Ёп. і
ќв®в ЎЁв гЇа ў«пҐв гЁўҐаб «мл¬ ўлў®¤®¬ ®¬Ґа 1
(GPO1). Ћ ЁбЇ®«м§гҐвбп ¤«п бЎа®б § ў®¤бЄЁе
гбв ®ў®Є ҐЄ®в®але дгЄжЁ© ¬®¤Ґ¬ .
„ л© аҐЈЁбва ®Є §лў Ґв ў«ЁпЁҐ ҐЄ®в®алҐ ўле®¤лҐ ¤ лҐ «ЁЁ©
гЇа ў«ҐЁп ¬®¤Ґ¬ . Ќ б Ў®«миҐ ўбҐЈ® ў Ґ¬ ЁвҐаҐбгҐв ЎЁв GPO2. Љ®Ј¤ ®
гбв ®ў«Ґ, Ї®пў«пҐвбп ў®§¬®¦®бвм ЇаЁе®¤ ЇаҐалў Ё©.
ђҐЈЁбва 5: ђҐЈЁбва б®бв®пЁп «ЁЁЁ (Line-Status Register -
----------
- LSR)
TXE: “бв ®ўЄ нв®Ј® ЎЁв ќв®в ЎЁв гбв ў«Ё- RxRDY: “бв ®ўЄ нв®Ј®
®§ з Ґв, зв® UART ўҐ¤Ґв ў Ґвбп ЇаЁ ў®§ЁЄ®- ЎЁв Ј®ў®аЁв ® ⮬,
ЇҐаҐ¤ зг ЎЁв Ё§ бў®ҐЈ® ўҐЁЁ ®иЁЎЄЁ зҐв®бвЁ. зв® ў RBR 室Ёвбп
ўгв॥Ј® ॣЁбва б¤ўЁЈ . і Ј®в®ўл© бЁ¬ў®«.
і і і
ЃЁв 7 і6 5 4 3 і2 1 0 і …б«Ё нв®в ЎЁв
ЪДДДВЕДДВДДДВДДДВДДДВЕДДВДДДВДДДї і гбв ®ў«Ґ,
і X і X і X і X і X і X і X і X ЕДДЩ Їа®Ё§®и«
АДДДБДДДБДДЕБДЕДБДЕДБДДДБДЕДБДДДЩ ®иЁЎЄ Ё§-§
і і і АДДДДДДДДДДДДД Ґб®®вўҐвбвўЁп
і і АДДДДДДДДДДДДДДДДДДДДї бЄ®а®бвЁ
і …б«Ё нв®в ЎЁв і ЇҐаҐ¤ зЁ.
TBE: …б«Ё нв®в ЎЁв гбв ®ў«Ґ,і гбв ®ў«Ґ, § зЁв і
бЁ¬ў®« Ё§ ЎгдҐа ЇҐаҐ¤ ДДЩ Ї®бвгЇЁ« BREAK-бЁЈ « і
ўе®¤ ॣЁбва б¤ўЁЈ . ’ ЄЁ¬ (в® Ґбвм RD-«ЁЁп …б«Ё нв®в ЎЁв гб-
®Ўа §®¬, ў THR ¬®¦Ґв Ўлвм 㤥নў « бм ў 0 Ў®«ҐҐ в ®ў«Ґ, Їа®Ё§®-
Ї®¬ҐйҐ б«Ґ¤гойЁ© бЁ¬ў®«. ®¤®Ј® в Єв ЇҐаҐ¤ зЁ). и« ®иЁЎЄ Є®¤Ё-
а®ў Ёп.
- 548 -
ђҐЈЁбва б®бв®пЁп «ЁЁЁ ЁбЇ®«м§гҐвбп, зв®Ўл ®ЎаЁб®ў вм ®бв®пЁҐ
Є®¬¬гЁЄ жЁ®®Ј® Ї®ав . ‚ н⮬ ॣЁбваҐ б ЁвҐаҐбгҐв Їпвл© ЎЁв (TBE),
Є®в®ал© ЁбЇ®«м§гҐвбп ¤«п ®ЇаҐ¤Ґ«ҐЁп ў®§¬®¦®бвЁ Їа®¤®«¦ҐЁп ЇҐаҐ¤ зЁ
бЁ¬ў®«®ў (THR).
ђҐЈЁбва 6: ђҐЈЁбва б®бв®пЁп ¬®¤Ґ¬ (Modem-Status
----------
Register - MSR)
…б«Ё нв®в ЎЁв гбв ®ў«Ґ, бЁЈ-
…б«Ё нв®в ЎЁв гбв ®ў«Ґ, бЁЈ « « "бў®Ў®¤Ґ ¤«п ЇҐаҐбл«ЄЁ"
Ґбг饩 з бв®вл (CD) Ё§¬ҐЁ«бп б ДДї (CTS) Ё§¬ҐЁ«бп б ¬®¬Ґв Ї®б-
¬®¬Ґв Ї®б«Ґ¤ҐЈ® звҐЁп Ё§ MSR. і «Ґ¤ҐЈ® звҐЁп Ё§ ॣЁбва
і MSR. і
і і
ЃЁв 7 6 5 4 і3 2 1 0 і
ЪДДДВДДДВДДДВДДДВЕДДВДДДВДДДВДДДї і
Ћва ¦ Ґв і X і X і X і X і X і X і X і X ЕДДЩ
б®бв®пЁҐ «ЁЁЁ АДЕДБЕДДБДЕДБДЕДБДДДБДЕДБЕДДБДДДЩ
¤ ле ¤ҐвҐЄв®а ДДДДЩ і і і і і
бЁЈ « Ґбг饩 і і і і і …б«Ё нв®в ЎЁв гбв ®ў«Ґ,
з бв®вл (DCD). і і і і і бЁЈ « Ј®в®ў®бвЁ Є ЇаЁҐ¬г
і і і і АД ¤ ле (DSR) Ё§¬ҐЁ«бп б
Ћва ¦ Ґв б®бв®пЁҐ Ё¤ЁЄ - і і і ¬®¬Ґв Ї®б«Ґ¤ҐЈ® з⥨п
в®а §ў®Є ¬®¤Ґ¬ (RI). і і і Ё§ ॣЁбва MSR.
і і і
Ћва ¦ Ґв б®бв®пЁҐ і і …б«Ё нв®в ЎЁв гбв ®ў«Ґ, б®бв®пЁҐ
«ЁЁЁ DSR ¬®¤Ґ¬ .ДДДДДДДДДДДЩ і Ё¤ЁЄ в®а §ў®Є (RI) Ё§¬ҐЁ«®бм б
і ¬®¬Ґв Ї®б«Ґ¤ҐЈ® звҐЁп Ё§
Ћва ¦ Ґв б®бв®пЁҐ і ॣЁбва MSR.
«ЁЁЁ CTS ¬®¤Ґ¬ . ДДДДДДДДДДДДДДЩ
ђҐЈЁбва б®бв®пЁп ¬®¤Ґ¬ ЁбЇ®«м§гҐвбп, зв®Ўл Ї®Є § вм б®бв®пЁҐ «ЁЁ©
гЇа ў«ҐЁп ¬®¤Ґ¬®¬. „«п иЁе 楫Ґ© нв®в ॣЁбва Ґ¤ў «Ё Ї® ¤®ЎЁвбп.
Ћ¤ Є® ўл ¬®Ј«Ё Ўл ©вЁ ЇаЁ¬ҐҐЁҐ Ё¤ЁЄ в®аг §ў®Є (RI). ‚л ¬®¦ҐвҐ
ЇЁб вм Їа®Ја ¬¬г, Є®в®а п Ўг¤Ґв ЇҐаҐеў влў вм §ў®®Є Ё Є®Ј¤ ўл§лў Ґвбп
ў и ®¬Ґа, ЇаЁ¬Ґа, б®®Ўй вм ®Ў н⮬ ᮮ⢥вбвўго饩 ¤ЇЁбмо нЄа Ґ Ё
§ўгЄ®¬.
ђҐЈЁбва 7: ђҐЈЁбва ўаҐ¬Ґ®Ј® § Ї®«ҐЁп (Scratch-Pad
----------
Register)
ЌҐ ЁбЇ®«м§гҐвбп
ђҐЈЁбва 8: ЊҐҐҐ § зЁ¬л© Є«оз ¤Ґ«ЁвҐ«п бЄ®а®бвЁ ЇҐаҐ¤ зЁ
----------
(Baud-Rate Divisor Latch Least-Significant Byte - DLL)
ЏаҐ¤ § зҐ ¤«п еа ҐЁп ¬« ¤иҐЈ® Ў ©в ¤Ґ«ЁвҐ«п, ЁбЇ®«м§гҐ¬®Ј® ЇаЁ
ўлзЁб«ҐЁЁ ¤Ґ©б⢨⥫쮩 бЄ®а®бвЁ ЇҐаҐ¤ зЁ зҐаҐ§ Ї®ав. ЋЄ®з ⥫м п
бЄ®а®бвм ўлзЁб«пҐвбп в Є: ЎҐагв ¬« ¤иЁ© Ё бв аиЁ© Ў ©вл Ё ЁбЇ®«м§гов Ёе Є Є
¤Ґ«ЁвҐ«м зЁб« 115200. ‚ १г«мв ⥠Ї®«гзЁвбп бЄ®а®бвм ЇҐаҐ¤ зЁ. ќв®в
ॣЁбва ¤®бвгЇҐ зҐаҐ§ ॣЁбва 0 ЇаЁ гбв ®ў«Ґ®¬ 7-¬ ЎЁвҐ (DLAB) ॣЁбва
3 (LCR).
- 549 -
ђҐЈЁбва 9: ђҐЈЁбва Ў®«ҐҐ § зЁ¬®Ј® Ў ©в Є«оз ¤Ґ«ЁвҐ«п
----------
бЄ®а®бвЁ ЇҐаҐ¤ зЁ (Baud-Rate Divisor Latch Most-Significant Byte - DLM)
ќв®в ॣЁбва ЁбЇ®«м§гҐвбп ¤«п Ї®¤¤Ґа¦ЄЁ бв а襣® Ў ©в ¤Ґ«ЁвҐ«п,
ЁбЇ®«м§гҐ¬®Ј® ¤«п ўлзЁб«ҐЁп ¤Ґ©б⢨⥫쮩 бЄ®а®бвЁ ЇҐаҐ¤ зЁ зҐаҐ§
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. ЋЄ®з ⥫м п бЄ®а®бвм ЇҐаҐ¤ зЁ ўлзЁб«пҐвбп
б«Ґ¤гойЁ¬ ®Ўа §®¬: ЎҐагв бв аиЁ© Ё ¬« ¤иЁ© Ў ©вл Ё ЁбЇ®«м§гов Ёе Є Є
¤Ґ«ЁвҐ«м, Є®в®ал© г¦® а §¤Ґ«Ёвм зЁб«® 115200. ќв® ¤ Ґв бЄ®а®бвм
ЇҐаҐ¤ зЁ. „ л© аҐЈЁбва ¤®бвгЇҐ зҐаҐ§ ॣЁбва 1 ЇаЁ гбв ®ў«Ґ®¬ 7-¬
ЎЁвҐ (DLAB) ॣЁбва 3 (LCR).
ЂЇЇ а ⮥ ®ЎҐбЇҐзҐЁҐ UART
----------------------------
ђ §®Ўа ўиЁбм б Їа®Ја ¬¬л¬ ®ЎҐбЇҐзҐЁҐ¬ UART, ¤ ў ©вҐ ў§Ј«пҐ¬ ҐЈ®
ЇЇ а вго Ї®¤¤Ґа¦Єг. Ќ б ЁвҐаҐбгов в®«мЄ® ¤ўҐ ўҐйЁ: Єг¤ ў®вЄгвм Є ЎҐ«м
Ё Є Є ᤥ« вм а §кҐ¬.
ЏЉ ¬®Јгв Ё¬Ґвм ¤ў вЁЇ Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў:
- 9-ивламЄ®ўл© (а §кҐ¬ вЁЇ DB-9);
- 25-ивламЄ®ўл© (а §кҐ¬ вЁЇ DB-25).
‚ в Ў«.14.2 ЇаЁўҐ¤Ґ Ёе а бЇ ©Є .
’ Ў«Ёж 14.2. ђ бЇ ©Є ¤«п Ї®б«Ґ¤®ў ⥫мле Ї®ав®ў ЏЉ.
------------------------------------------------------------------------
Џа®ў®¤ ”гЄжЁп ЋЎ®§ 票Ґ
------------------------------------------------------------------------
9-ивламЄ®ўл© а §кҐ¬
--------------------
1 ‘ЁЈ « «ЁзЁп Ґбг饩 CD
2 ЏаЁҐ¬ ¤ ле RXD
3 ЏҐаҐ¤ з ¤ ле TXD
4 ‘ЁЈ « Ј®в®ў®бвЁ ўў®¤ ¤ ле DTR
5 ‡Ґ¬«п GND
6 ‘ЁЈ « Ј®в®ў®бвЁ Ў®а ¤ ле DSR
7 ‡ Їа®б ЇҐаҐбл«Єг RTS
8 ‘ЁЈ « ®зЁбвЄЁ ¤«п ЇҐаҐбл«ЄЁ CTS
9 €¤ЁЄ в®а §ў®Є RI
25-ивламЄ®ўл© а §кҐ¬
---------------------
2 ЏҐаҐ¤ з ¤ ле TXD
3 ЏаЁҐ¬ ¤ ле RXD
__________________________________________________________________________
- 550 -
Џа®ў®¤ ”гЄжЁп ЋЎ®§ 票Ґ
_________________________________________________________________________
4 ‡ Їа®б ЇҐаҐбл«Єг RTS
5 ‘ЁЈ « ®зЁбвЄЁ ¤«п ЇҐаҐбл«ЄЁ CTS
6 ‘ЁЈ « Ј®в®ў®бвЁ Ў®а ¤ ле DSR
7 ‡Ґ¬«п GND
8 ‘ЁЈ « «ЁзЁп Ґбг饩 CD
20 ‘ЁЈ « Ј®в®ў®бвЁ ўў®¤ ¤ ле DTR
22 €¤ЁЄ в®а §ў®Є RI
_______________________________________________________________________
ЋЏ…ђЂ–€€ ‘ ROM BIOS
ЏаҐ¦¤Ґ 祬 ¬л 祬 ЇЁб вм б®Ўб⢥го Є®¬¬гЁЄ жЁ®го Їа®Ја ¬¬г, ¤ ў ©вҐ
Ї®б¬®ваЁ¬, 祬 ¬ ¬®¦Ґв Ї®¬®зм ROM BIOS? Ћ Ї®¤¤Ґа¦Ёў Ґв Є®¬¬гЁЄ ж©ЁЁ
зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав, е®вп Ё ўҐбм¬ ®Ја ЁзҐ®. ќвЁ дгЄжЁЁ ¤®вгЇл
зҐаҐ§ ЇаҐалў ЁҐ 14h. ‘гйҐбвўгов дгЄжЁЁ ¤«п ®вЄалвЁп Ї®б«Ґ¤®ў ⥫쮣®
Ї®ав , ҐЈ® Є®дЁЈгаЁа®ў Ёп, звҐЁп Ё § ЇЁбЁ бЁ¬ў®« . Ћ¤ Є® бгйҐбвўгҐв
®¤ ¬ «ҐмЄ п Їа®Ў«Ґ¬ : нвЁ дгЄжЁЁ Ґ а Ў®в ов (ва㤮 ў нв® Ї®ўҐаЁвм, ®
®Ё ¤Ґ©бвўЁвҐ«м® Ґ а Ў®в ов). Ќ б ¬®¬ ¤Ґ«Ґ ®Ё а Ў®в ов, Їа ў¤ , ЇаЁ
®б®Ўле гб«®ўЁпе, Є®в®алҐ ¬ ўап¤ «Ё г¤ бвбп ᮧ¤ вм. Љ ᮦ «ҐЁо,
®вбгвбвўгҐв Єа ©Ґ Ґ®Ўе®¤Ё¬ п ¬ Ї®¤¤Ґа¦Є ўў®¤ /ўлў®¤ , гЇа ў«пҐ¬®Ј®
ЇаҐалў ЁҐ¬. ‚ ўЁ¤Ґ®ЁЈа е ¬л ¤®«¦л Ё¬Ґвм бЁб⥬г гЇа ў«ҐЁп б®ЎлвЁп¬Ё,
®б®ў го ЇаҐалў Ёпе. €§-§ нв®Ј®, в Є¦Ґ Ё§-§ в®Ј®, зв® дгЄжЁЁ ROM
BIOS а Ў®в ов ®зҐм ¬Ґ¤«Ґ®, ¬л ¬®¦Ґ¬ ў®®ЎйҐ Ґ а бб¬ ваЁў вм Ёе Є Є
ॠ«м®Ґ б।бвў® ЇҐаҐ¤ зЁ ЎЁв®ў Ї® Їа®ў®¤ ¬.
’ҐЇҐам, Є®Ј¤ п ў ¬ бЄ § « ®Ў н⮬, ¤ ў ©вҐ Ї®б¬®ваЁ¬, Є ЄЁ¬ ®Ўа §®¬
ўбҐ-в ЄЁ ¬®¦® ᮥ¤ЁЁвм ¤ў Є®¬ЇмовҐа Ё ᮧ¤ вм ¬ «ҐмЄго бҐвҐўго ЁЈаг.
‘Ћ…„€Ќ…Ќ€… —…ђ…‡ Ќ“‹њ-ЊЋ„…Њ
Љ Є п 㦥 бЄ § « ў б ¬®¬ з «Ґ, г б Ґ еў вЁв ўаҐ¬ҐЁ ўЁЄ вм ў® ўбҐ
в®Є®бвЁ ЁбЇ®«м§®ў Ёп ¬®¤Ґ¬ . ‘гйҐбвўгҐв б«ЁиЄ®¬ ¬®Ј® ⥬, Є®в®але ¬л
б«ҐЈЄ Є®бг«Ёбм, Ё ўбҐ ®Ё Ё¬Ґов ®в®иҐЁҐ Є ¤Ё§ ©г ўЁ¤Ґ®ЁЈа. —в® п
¬ҐаҐ ᤥ« вм ў¬Ґбв® нв®Ј®, в Є н⮠ᮧ¤ вм Є®¬¬гЁЄ жЁ®го бЁб⥬г,
ЁбЇ®«м§гойго ᮥ¤ЁҐЁҐ вЁЇ г«м-¬®¤Ґ¬, ў Є®в®а®¬ ¬®¤Ґ¬, Є Є в Є®ў®©,
®вбгвбвўгҐв. Ќг«м-¬®¤Ґ¬ - Їа®б⮥ ᮥ¤ЁҐЁҐ, Є®в®а®Ґ бўп§лў Ґв ¤ў
Є®¬ЇмовҐа зҐаҐ§ Ї®б«Ґ¤®ў ⥫млҐ Ї®авл. ђЁб.14.1 ¤Ґ¬®бваЁагҐв в Є®Ґ
ᮥ¤ЁҐЁҐ.
- 551 -
ђЁб.14.1. ‘®Ґ¤ЁҐЁҐ ¤ўге ЏЉ.
—в®Ўл Ё§Ј®в®ўЁвм в Є®Ґ ᮥ¤ЁҐЁҐ, ¬л ¤®«¦л ў§пвм г«м-¬®¤Ґ¬л© Є ЎҐ«м б
¤«Ґ¦ йЁ¬Ё а §кҐ¬ ¬Ё. ќв® ¬®¦Ґв ®Є § вмбп Ґ б«ЁиЄ®¬ Їа®бв®, ® Ґб«Ё ўл
Ўг¤ҐвҐ ®бв®а®¦л, в® § а Ў®в Ґв б ЇҐаў®© Ї®ЇлвЄЁ. Њл Ўг¤Ґ¬ ЁбЇ®«м§®ў вм
в®«мЄ® ваЁ вЁЇ а §кҐ¬ :
- ‹ЁЁо ЇҐаҐ¤ зЁ ¤ ле;
- ‹ЁЁо ЇаЁҐ¬ ¤ ле;
- ‡Ґ¬«о.
Ќ аЁб.14.2 Ї®Є § ®, Є Є ᤥ« вм г«м-¬®¤Ґ¬л© Є ЎҐ«м ¤«п а §ле вЁЇ®ў
а §кҐ¬®ў.
…б«Ё ўл Ґ е®вЁвҐ Ё§Ј®в ў«Ёў вм г«м-¬®¤Ґ¬л© Є ЎҐ«м, ўл ¬®¦ҐвҐ § Ї« вЁвм
§ ҐЈ® ў «оЎ®¬ Ё§ Є®¬ЇмовҐале ¬ Ј §Ё®ў. (Џ®¦ «г©бв , Ґ Ї« вЁвҐ Ў®«миҐ
15 $. џ Ґ ¬®Јг бЇ®Є®©® ᬮваҐвм, Є Є «о¤Ё Ї« впв § Єгб®Є Їа®ў®¤ Ё
Ї« бвЁЄ ¤ ¦Ґ 1.50$). ‘Ґ©з б ®дЁжЁ «мл© г«м-¬®¤Ґ¬л© Є ЎҐ«м ЁбЇ®«м§гҐв
Ў®«ҐҐ ваҐе иЁ, Є®в®алҐ п ЇҐаҐзЁб«Ё«. Ћ § ¤Ґ©бвўгҐв ўбҐ иЁл, Ё¬ЁвЁагп ⥬
б ¬л¬ ¬®¤Ґ¬®Ґ ᮥ¤ЁҐЁҐ. Џ®Є г б Ґбвм TXD, RXD Ё §Ґ¬«п, ¬л ⮦Ґ ЇаЁ
¤Ґ«Ґ. („®Ї®«ЁвҐ«млҐ «ЁЁЁ ЁбЇ®«м§говбп ¤«п ЇЇ а в®Ј® ®ЎҐбЇҐзҐЁп
"агЄ®Ї®¦ вЁп", ® ¬л Ґ Ўг¤Ґ¬ Ё¬Ё Ї®«м§®ў вмбп.)
Ћв«Ёз®, ⥯Ґам г б Ґбвм г«м-¬®¤Ґ¬л© Є ЎҐ«м, Ё ¬л § Ґ¬, Є ЄЁҐ ॣЁбвал
зв® ¤Ґ« ов ў UART'Ґ. џ ¤г¬ о, з⮠⥯Ґам б ¬®Ґ ўаҐ¬п з вм ЇЁб вм
Є®¬¬гЁЄ жЁ®®Ґ Їа®Ја ¬¬®Ґ ®ЎҐбЇҐзҐЁҐ.
- 552 -
ђЁб.14.2. €§Ј®в®ў«ҐЁҐ г«м-¬®¤Ґ¬®Ј® Є ЎҐ«п ¤«п а §«Ёзле вЁЇ®ў
бҐаЁ©ле а §кҐ¬®ў.
ЏЋ‘’ђЋ…Ќ€… ЉЋЊЊ“Ќ€ЉЂ–€ЋЌЌЋ‰ Ѓ€Ѓ‹€Ћ’…Љ€
Ќ ¬ Ґ ¤® б«ЁиЄ®¬ ¬®Ј® дгЄжЁ© ў 襩 ЎЁЎ«Ё®вҐЄҐ. ” ЄвЁзҐбЄЁ, ¬
¤®бв в®з® иҐбвЁ дгЄжЁ©:
- „«п ЁЁжЁ «Ё§ жЁЁ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ;
- „«п гбв ®ўЄЁ Їа®жҐ¤гал ®Ўа Ў®вЄЁ ЇаҐалў Ёп;
- „«п з⥨п бЁ¬ў®« Ё§ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ;
- „«п § ЇЁбЁ бЁ¬ў®« ў Ї®б«Ґ¤®ў ⥫мл© Ї®ав;
- „«п ®ЇаҐ¤Ґ«ҐЁп б®бв®пЁп Ї®ав ;
- „«п § ЄалвЁп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав .
€ЁжЁ «Ё§ жЁп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав
-------------------------------------------
‚®в и ЈЁ, Є®в®ал¬ ¬л ¤®«¦л б«Ґ¤®ў вм:
- ‘ з « 㦮 гбв ®ўЁвм ®¬Ґа ЇҐаҐ¤ ў Ґ¬ле ЎЁв®ў, Є®«ЁзҐбвў® бв®Ї-
ЎЁв®ў Ё вЁЇ зҐв®бвЁ. ќв® ¤Ґ« Ґвбп б Ї®¬®ймо ॣЁбва гЇа ў«ҐЁп «ЁЁЁ
(LCR);
- 553 -
- ‡ ⥬ гбв ў«Ёў Ґвбп бЄ®а®бвм ЇҐаҐ¤ зЁ § Јаг§Є®© бв а襣® Ё ¬« ¤иҐЈ®
Ў ©в ¤Ґ«ЁвҐ«п;
- „ «ҐҐ 㦮 ЁЁжЁ «Ё§Ёа®ў вм UART ¤«п гЇа ў«ҐЁп ЇаҐалў Ёп¬Ё;
- Њл ¤®«¦л б®®ЎйЁвм Їа®Ја ¬¬Ёа㥬®¬г Є®ва®««Ґаг ЇаҐалў Ё© ЏЉ (PIC),
Є ЄЁҐ ЇаҐалў Ёп Ї® Ї®б«Ґ¤®ў ⥫쮬㠯®авг ® ¤®«¦Ґ ¤®ЇгбЄ вм;
- Ќ Є®Ґж, Ґ®Ўе®¤Ё¬® ЄвЁўЁ§Ёа®ў вм ЇаҐалў ЁҐ, гбв ®ўЁў ЎЁв 3 Ё«Ё 4 ў
ॣЁбвॠ¬ бЄЁ ЇаҐалў Ё© (б®Ў«о¤ п ®бв®а®¦®бвм, зв®Ўл Ґ Ё§¬ҐЁвм
¤агЈЁҐ ҐЈ® ЎЁвл).
’ҐЇҐам ®Ўбг¤Ё¬ нвЁ и ЈЁ ў ¤Ґв «пе. „«п ЁЁжЁ «Ё§ жЁЁ Ї®ав ¬л ¤®«¦л,
ў®-ЇҐаўле, гбв ®ўЁвм Є®«ЁзҐбвў® ЎЁв, Є®«ЁзҐбвў® бв®Ї-ЎЁв®ў Ё вЁЇ зҐв®бвЁ.
ќв® ¤Ґ« Ґвбп Їа®Ја ¬¬Ёа®ў ЁҐ¬ ॣЁбва 3 гЇа ў«ҐЁп «ЁЁЁ (LCR). Џ®б«Ґ
нв®Ј® 㦮 гбв ®ўЁвм бЄ®а®бвм ЇҐаҐ¤ зЁ б Ї®¬®ймо бв а襣® Ё ¬« ¤иҐЈ®
Ў ©в®ў ¤Ґ«ЁвҐ«п бЄ®а®бвЁ ЇҐаҐ¤ зЁ.
ђ Ў®в б ¤Ґ«ЁвҐ«Ґ¬ Ґ¬®Ј® § Їгв . ‚л § ҐвҐ, з⮠ॣЁбвал 0 Ё 1
ўлЇ®«пов ¤®Ї®«ЁвҐ«млҐ дгЄжЁЁ § Јаг§ЄЁ ¤ўгеЎ ©в®ў®Ј® ¤Ґ«ЁвҐ«п, ¤Ґ«ҐЁҐ
Є®в®ал© зЁб« 115200 ¤ Ґв १г«мв в, ЁбЇ®«м§гҐ¬л© UART Є Є ®Є®з ⥫м п
бЄ®а®бвм ЇҐаҐ¤ зЁ. Ћ¤ Є®, Є Є ¬л § Ґ¬, ॣЁбвал 0 Ё 1 пў«повбп
ᮮ⢥вб⢥® ॣЁбв஬ Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ (THR) Ё ॣЁбв஬ ЇаҐалў Ёп
(IER). Љ®Ј¤ ЎЁв 7 ॣЁбва гЇа ў«ҐЁп «ЁЁҐ© гбв ®ў«Ґ ў 1, ®Ё Ї®«гз ов
®¬Ґа 8 Ё 9, ® Їа®¤®«¦ ов ¤аҐб®ў вмбп Є Є 1 Ё 0. џб®?
‚ Є зҐб⢥ ЇаЁ¬Ґа ¤ ў ©вҐ гбв ®ўЁ¬ бЄ®а®бвм ЇҐаҐ¤ зЁ ў 9600 Ў®¤. Њл ¬®Ј«Ё
Ўл ©вЁ зЁб«®, Є®в®а®Ґ ЇаЁ ¤Ґ«ҐЁЁ ҐЈ® § 票п 115200 ¤ ў «® Ўл 9600.
ќв® зЁб«® 12. „ «ҐҐ ¬л ¤®«¦л § ЇЁегвм ҐЈ® ў ¬« ¤иЁ© Ё бв аиЁ© Ў ©вл. ‚
н⮬ б«гз Ґ ¬« ¤иЁ© Ў ©в Ўг¤Ґв а ўҐ 12, бв аиЁ© - 0. „ «ҐҐ 㦮
гбв ®ўЁвм ЎЁв 7 (DLAB) ॣЁбва гЇа ў«ҐЁп «ЁЁҐ© ў 1 Ё § ЇЁб вм ¬« ¤иЁ©
Ў ©в ў ॣЁбва 0, бв аиЁ© - ў ॣЁбва 1, зҐаҐ§ Є®в®алҐ ЇҐаҐ¤ лҐ Ў ©вл Ё
Ї®Ї ¤гв ў ॣЁбвал 8 Ё 9. Џ®б«Ґ нв®Ј® Ґ®Ўе®¤Ё¬® ®зЁбвЁвм ЎЁв 7 (DLAB)
ॣЁбва гЇа ў«ҐЁп «ЁЁЁ. ќв® Ўл«® Ўл Ґ в Є г¦ Ё Ї«®е®, ?
‡ ⥬ ¬л ЁЁжЁ «Ё§Ёа㥬 UART ¤«п ЇаЁҐ¬ ЇаҐалў Ё©. ЌҐ¬®Ј® Ї®Ј®ў®аЁ¬ ®Ў
н⮬. Љ®Ј¤ UART ЇаЁЁ¬ Ґв ¤ лҐ, бЁ¬ў®« Ўг¤Ґв ®бв ў вмбп ў ЎгдҐаҐ ЇаЁҐ¬
в®«мЄ® ¤® вҐе Ї®а, Ї®Є Ґ ЇаЁЎг¤Ґв б«Ґ¤гойЁ©, Ї®б«Ґ 祣® ў®ўм ЇаЁиҐ¤иЁ©
бЁ¬ў®« § ¬ҐбвЁв бв ал©, Ґ§ ўЁбЁ¬® ®в в®Ј®, Ўл« «Ё ® бзЁв . Њл Ґ ¬®¦Ґ¬
нв®Ј® ¤®ЇгбвЁвм, Ё зҐ Ї®вҐа塞 Ёд®а¬ жЁо. ‘гйҐбвўгҐв ¤ў аҐиҐЁп нв®©
Їа®Ў«Ґ¬л:
- ‚®-ЇҐаўле, ¬л ¬®Ј«Ё Ўл ў жЁЄ«Ґ ®Їа иЁў вм ЇаЁҐ¬л© ЎгдҐа ॣЁбва ,
зв®Ўл Ґ Ї®вҐапвм ЁЄ ЄЁе ¤ ле. Ќ® нв® Ўл«® Ўл ЎҐбЇ®«Ґ§®© ва в®©
ўаҐ¬ҐЁ;
- ‚®-ўв®але (Ё нв® Ј®а §¤® «гзиҐ), ¬®¦® ЇЁб вм ¤«п нв®© 楫Ё
Їа®жҐ¤гаг ®Ўа Ў®вЄЁ ЇаҐалў Ёп (Ё«Ё ISR).
- 554 -
…б«Ё ўл Ї®¬ЁвҐ, ў 12-© Ј« ўҐ "ЊЁ¬®Ґ ўаҐ¬п, ЇаҐалў Ёп Ё
¬г«мвЁ§ ¤ з®бвм", Ј®ў®аЁ«®бм, зв® ў ‘Ё Ґб«®¦® гбв ®ўЁвм ®ў®Ґ
ЇаҐалў ЁҐ, ЁбЇ®«м§гп Є«о祢®Ґ б«®ў® _interrupt. Њл ЇЁиҐ¬ Їа®жҐ¤гаг,
Є®в®а п Ўг¤Ґв ЄвЁўЁ§Ёа®ў вмбп ўбпЄЁ© а § б ЇаЁе®¤®¬ ЇаҐалў Ёп. Ќ® Є Є ¬
б®®ЎйЁвм UART, зв® ЇаҐалў ЁҐ ®Ў а㦥®? …б«Ё ўл ЇаЁбв «м® Ї®б¬®ваЁвҐ
®ЇЁб ЁҐ ॣЁбва®ў, в® Ї®©¬ҐвҐ, зв® ў ¬ Ґ®Ўе®¤Ё¬® гбв ®ўЁвм ЎЁв §¤Ґбм,
ЎЁв в ¬, Ё UART Ўг¤Ґв ¤Ґ« вм бў®о а Ў®вг. —в®Ўл § зЁвм ЇаҐалў Ёп, ¬л
¤®«¦л гбв ®ўЁвм б«Ґ¤гойЁҐ ЎЁвл ў UART:
- ЃЁв 0 (RxRDY) ॣЁбва ЇаҐалў Ёп (IER) ¤®«¦Ґ Ўлвм гб ®ў«Ґ ў 1;
- ЃЁв 3 (GR02) ॣЁбва гЇа ў«ҐЁп ¬®¤Ґ¬®¬ (MCR) ¤®«¦Ґ Ўлвм гбв ®ў«Ґ
ў 1.
Џ®б«Ґ нв®Ј® ¬л 㦥 Ј®в®ўл ЇаЁЁ¬ вм ЇаҐалў Ёп, Їа ўЁ«м®? ЋиЁЎ ҐвҐбм!
Ќг¦® ᤥ« вм ҐйҐ ®¤г ўҐйм. Њл ¤®«¦л б®®ЎйЁвм Їа®Ја ¬¬Ёа㥬®¬г
Є®ва®««Ґаг ЇаҐалў Ё© (PIC), Є ЄЁҐ Ё¬Ґ® ЇаҐалў Ёп Ї® Ї®б«Ґ¤®ў ⥫쮬г
Ї®авг ® ¤®«¦Ґ § ¤Ґ©бвў®ў вм. —в®Ўл ўлЇ®«Ёвм нв®, Ґ®Ўе®¤Ё¬® Ё§¬ҐЁвм
гбв ®ўЄЁ ў ॣЁбвॠ¬ бЄЁ ЇаҐалў Ёп (IMR) PIC` , Є®в®ал© ¤®бвгЇҐ зҐаҐ§
Ї®ав 21h. ’ Ў«Ёж 14.3 Ї®Є §лў Ґв ®Ў®§ 票Ґ ЎЁв®ў IMR.
’ Ў«Ёж 14.3. ђҐЈЁбва ¬ бЄЁ ЇаҐалў Ёп (IMR) PIC` .
-----------------------------------------------------------------------
ЃЁв 0: IRQ0 - ЁбЇ®«м§гҐвбп ¤«п в ©¬Ґа
ЃЁв 1: IRQ1 - ЁбЇ®«м§гҐвбп ¤«п Є« ўЁ вгал
ЃЁв 2: IRQ2 - § १ҐаўЁа®ў
ЃЁв 3: IRQ3 - COM2 Ё«Ё COM4
ЃЁв 4: IRQ4 - COM1 Ё«Ё COM3
ЃЁв 5: IRQ5 - ¦ҐбвЄЁ© ¤ЁбЄ
ЃЁв 6: IRQ6 - ЈЁЎЄЁ© ¤ЁбЄ
ЃЁв 7: IRQ7 - ЇаЁвҐа
_________________________________________________________________________
’ ЄЁ¬ ®Ўа §®¬, Ї®б«Ґ¤пп ўҐйм, Є®в®аго ¬ Ґ®Ўе®¤Ё¬® ᤥ« вм ¤«п ®Ўа Ў®вЄЁ
ЇаҐалў Ё© Ё § ЇгбЄ - ЄвЁўЁа®ў вм 㦮Ґ ЇаҐалў ЁҐ Ї® ЎЁвг 3 Ё«Ё 4. Ќ®
Ўг¤м⥠®бв®а®¦л! ђҐЈЁбва ЁўҐавЁа®ў , в Є зв® 0 ®§ з Ґв ўЄ«озҐ, 1 -
ўлЄ«озҐ.
Ћбв®а®¦®!
----------------
Ѓг¤м⥠®бв®а®¦л, Є®Ј¤ ЁбЇ®«м§гҐвҐ ॣЁбва ¬ бЄЁ ЇаҐалў Ё©. Ћ
¤Ґ©бвўЁвҐ«м® ¬®¦Ґв ЇаЁзЁЁвм ҐЇаЁпв®бвЁ Є®¬ЇмовҐаг. џ ЇаҐ¤« Ј о б з «
бзЁвлў вм ¤ лҐ Ё ¬ бЄЁа®ў вм Ёе Ї® и Ў«®г, Ї®в®¬ 㦥 ЇЁб вм ®ўлҐ
¤ лҐ.
- 555 -
“бв ®ўЄ ЇаҐалў Ёп
--------------------------
Ћ¤ ¦¤л Їа®©¤п зҐаҐ§ нвЁ д®Єгбл, зв®Ўл гбв ®ўЁвм Їа®б⮥ ЇаҐалў ЁҐ, ¬л
¬®¦Ґ¬ ®Є®з вҐ«м® Ёбв ««Ёа®ў вм и б®ЎбвўҐл© ўҐЄв®а ISR, § ўЁбпйЁ© ®в
COM-Ї®ав . ‡ Ї®¬ЁвҐ, зв® Ї®авл 3 Ё 4 ЁбЇ®«м§гов ⥠¦Ґ б ¬лҐ ЇаҐалў Ёп,
зв® Ё Ї®авл 1 Ё 2 ᮮ⢥вб⢥®.
’ Ў«Ёж 14.4. ‚ҐЄв®ал ЇаҐалў Ёп Ї®б«Ґ¤®ў ⥫쮣® Ї®ав .
------------------------------------------------------------------------
‚ҐЄв®а Ќ®¬Ґа Ђ¤аҐб п дгЄжЁп
------------------------------------------------------------------------
0x0B 0x002C-0x002F RS-232 Ї®ав 1
0x0C 0x0030-0x0033 RS-232 Ї®ав 2
________________________________________________________________________
‚бҐ, зв® ¬ 㦮 ᤥ« вм ¤«п гбв ®ўЄЁ ®ў®Ј® ISR, нв® ЁбЇ®«м§®ў вм
дгЄжЁо ‘Ё _dos_getvect(), зв®Ўл § Ї®¬Ёвм ЇаҐ¦ҐҐ § 票Ґ ўҐЄв®а , Ё
_dos_setvect(), зв®Ўл Ёбв ««Ёа®ў вм и б®ЎбвўҐл© ISR ¬Ґбв® бв а®Ј®.
„ «ҐҐ, б ЇаЁе®¤®¬ ЇаҐалў Ёп (в® Ґбвм Є®Ј¤ Ї®«гзҐ бЁ¬ў®«), Ўг¤Ґв
ўл§лў вмбп и Їа®жҐ¤га . ‡ўгзЁв нв® ўҐ«ЁЄ®«ҐЇ®, ® зв® ® Ўг¤Ґв ¤Ґ« вм?
Ќ и ISR ¤®«¦Ґ ўлЇ®«пвм в®«мЄ® ®¤г § ¤ зг - Ї®«гзЁвм бЁ¬ў®« Ё§
ॣЁбва ЇаЁҐ¬®Ј® ЎгдҐа (RBR) Ё Ї®¬ҐбвЁвм ҐЈ® ў Їа®Ја ¬¬л© ЎгдҐа. —в®Ўл
®б®ў п Їа®Ја ¬¬ ¬®Ј« Ўа вм Ї®бвгЇ ойЁҐ бЁ¬ў®«л Ї® ¬ҐаҐ ¤®Ў®бвЁ, ¬л
ђЁб.14.3. ЃгдҐа б ЇҐаҐ§ ЇЁбмо.
- 556 -
¤®«¦л ЎгдҐаЁ§Ёа®ў вм ўў®¤. ‘ нв®© ¬лб«мо ᮧ¤ ¤Ё¬ ЎгдҐа б ЇҐаҐ§ ЇЁбмо Ё
гбв ®ўЁ¬ ҐЈ® а §¬Ґа а ўл¬ 128 Ў ©в ¬, е®вп ў®®ЎйҐ-в®, ҐЈ® ¤«Ё ¬®¦Ґв
Ўлвм «оЎ®©.
Ђ«Ј®аЁв¬ ЎгдҐаЁ§ жЁЁ а Ў®в Ґв в Є. Џ®«гзҐл© Ё§ RBR б«Ґ¤гойЁ© бЁ¬ў®«
Ї®¬Ґй Ґвбп ў ЎгдҐа ў ⥪гйго Ї®§ЁжЁо. „ «ҐҐ ⥪гйЁ© Ё¤ҐЄб ЎгдҐа
ЁЄаҐ¬ҐвЁагҐвбп. Љ®Ј¤ Ї®§ЁжЁп § ЇЁбЁ ў ЎгдҐаҐ ¤®е®¤Ёв ¤® Є®ж , ®
ЇҐаҐ¬Ґй Ґвбп Є з «г. Љ Є ўл Ї®Ё¬ ҐвҐ, ЇаЁ н⮬ ¤ лҐ, Є®в®алҐ Ўл«Ё
§ ЇЁб л а ҐҐ, ®Є ¦гвбп ЇҐаҐЄалвл. Ќ ¤Ґобм, зв® ¤® в®Ј®, Є Є нв®
Їа®Ё§®©¤Ґв, ®б®ў п Їа®Ја ¬¬ гбЇҐҐв Їа®зЁв вм бЁ¬ў®«л Ё§ ЎгдҐа Ё
®Ўа Ў®в вм Ї®«гзҐлҐ ¤ лҐ. ђЁб.14.3 Ї®пбпҐв ЇаЁжЁЇ а Ў®вл ЎгдҐа б
ЇҐаҐ§ ЇЁбмо.
Њл ¤®«¦л ®Ўбг¤Ёвм ҐйҐ ®¤г в®Є®бвм, ЇаҐ¦¤Ґ 祬 § Є®зЁ¬ а §Ј®ў®а ®Ў ISR.
ЌҐЇ®б।б⢥® ЇҐаҐ¤ ўл室®¬ Ё§ Їа®жҐ¤гал ®Ўа Ў®вЄЁ ЇаҐалў Ёп Ґ®Ўе®¤Ё¬®
б®®ЎйЁвм PIC`г ® ҐҐ § ўҐа襨Ё. „«п нв®Ј® ў Є®Ґж Їа®жҐ¤гал 㦮 ўбв ўЁвм
Є®¬ ¤г § ЇЁбЁ ў Ї®ав 20h § 票п 20h. …б«Ё нв®Ј® Ґ ᤥ« вм, Їа®Ё§®©¤Ґв
бЎ®© бЁб⥬л. Ќ® нв® - ¬Ґ¦¤г Їа®зЁ¬, ЁЎ® Ї®Є ўл ЁбЇ®«м§гҐвҐ дгЄжЁЁ ‘Ё, ®Ў
н⮬ Ґ бв®Ёв ЎҐбЇ®Є®Ёвмбп. ‚®в Ґб«Ё Ўл ўл аҐиЁ«Ё ЇЁб вм Їа®Ја ¬¬л
ЁбЄ«озЁвҐ«м® бᥬЎ«ҐаҐ, в® ў®Їа®б Їа ўЁ«м®Ј® § ўҐаиҐЁп ЇаҐалў Ё©
®Є § «бп Ўл ўҐбм¬ Євг «Ґ Ё ¬л ®Ўбг¤Ё«Ё Ўл ҐЈ® Ў®«ҐҐ Ї®¤а®Ў®. Ќ® ¤ ў ©вҐ
Ї®Є ®бв ®ўЁ¬бп ‘Ё.
‹ЁбвЁЈ 14.1 Ї®Є §лў Ґв ®ЇҐа жЁЁ б ISR.
‹ЁбвЁЈ 14.1. ЋЇҐа жЁп ISR.
--------------------------------------------------------------------------
void _interrupt _far Serial_Isr(void)
{
// ќв® Їа®жҐ¤га ®Ўа Ў®вЄЁ ЇаҐалў Ёп COM-Ї®ав . Ћ ®зҐм Їа®бв .
// ЏаЁ ўл§®ўҐ ® зЁв Ґв Ї®«гзҐл© бЁ¬ў®« Ё§ ॣЁбва 0 Ї®ав
// Ё Ї®¬Ґй Ґв ҐЈ® ў ЎгдҐа Їа®Ја ¬¬л. ЏаЁ¬Ґз ЁҐ: п§лЄ ‘Ё б ¬
// § Ў®вЁвбп ® б®еа ҐЁЁ ॣЁбва®ў Ё ў®ббв ®ў«ҐЁЁ б®бв®пЁп
// § ЇаҐй Ґ¬ а Ў®вг ўбҐе ¤агЈЁе дгЄжЁ©
// ў® Ё§ЎҐ¦ ЁҐ Ё§¬ҐҐЁп ЎгдҐа
serial_lock = 1;
// § ЇЁблў Ґ¬ бЁ¬ў®« ў б«Ґ¤гойго Ї®§ЁжЁо ЎгдҐа
ser_ch = _inp(open_port + SER_RBF);
// гбв ў«Ёў Ґ¬ ®ўго ⥪гйго Ї®§ЁжЁо ЎгдҐа
if (++ser_end > SERIAL_BUFF_SIZE-1)
ser_end = 0;
// Ї®¬Ґй Ґ¬ бЁ¬ў®« ў ЎгдҐа
ser_buffer[ser_end] = ser_ch;
++char_ready;
- 557 -
// ў®ббв ў«Ёў Ґ¬ б®бв®пЁҐ Є®ва®««Ґа ЇаҐалў Ё©
_outp(PIC_ICR,0x20);
// а §аҐи Ґ¬ а Ў®вг б ЎгдҐа®¬
serial_lock = 0;
} // Є®Ґж дгЄжЁЁ
_____________________________________________________________________
Џа®Ја ¬¬ Ё§ ‹ЁбвЁЈ 14.1 ўлЇ®«пҐв ўбҐ в®, ® 祬 ¬л Ј®ў®аЁ«Ё. Ћ¤ Є®
бв®Ёв ®Ўа вЁвм ўЁ¬ ЁҐ ®¤г ¬ «ҐмЄго ¤Ґв «м. ‚ Їа®Ја ¬¬г ўЄ«озҐ
ЇҐаҐ¬Ґ п serial_lock, Є®в®а п ®ЎҐаҐЈ Ґв ®б®ўго Їа®Ја ¬¬г ®в Є®д«ЁЄв®ў,
бўп§ ле б ®Ўа 饨Ґ¬ Є ЎгдҐаг, Ї®Є ISR ®Ў®ў«пҐв ҐЈ®. ’ Є®© ЇаЁҐ¬
§лў Ґвбп "Ў«®ЄЁа®ўЄ®©" Ё«Ё "ᥬ д®а®¬". ‚ DOS`Ґ Ї®¤®Ў®© Їа®Ў«Ґ¬л ЁЄ®Ј¤
Ґ ў®§ЁЄ Ґв Ї® ап¤г ЇаЁзЁ, ® Є®в®але Ј®ў®аЁвм б«ЁиЄ®¬ ¤®«Ј®.
ЌҐ®Ўе®¤Ё¬®бвм ॣ㫨஢ Ёп ¤®бвгЇ Є ®ЎйЁ¬ ¤ л¬ ў®§ЁЄ Ґв в®«мЄ® ¤«п
Ї®«®бвмо ¬®Ј®§ ¤ зле бЁб⥬. ’Ґ¬ Ґ ¬ҐҐҐ, ўўҐ¤ҐЁҐ "ᥬ д®а®ў" -
е®а®и п Їа ЄвЁЄ , ¤ ¦Ґ Ґб«Ё ¤ ®¬ нв ЇҐ в Є п вҐеЁЄ Ё Ґ г¦ . ‚бҐ,
¬л Ї®звЁ г 楫Ё!
—⥨Ґ бЁ¬ў®« Ё§ ЎгдҐа
------------------------------
’ҐЇҐам ¬ Ґ®Ўе®¤Ё¬® Ё¬Ґвм ў®§¬®¦®бвм бзЁвлў вм бЁ¬ў®« Ё§ ЎгдҐа . ќв®
«ҐЈЄ®. ‚ ЇаЁжЁЇҐ, ¤®бв в®з® § Ї®¬Ёвм ®ўл© Ё¤ҐЄб, гЄ §лў ойЁ©
⥪гйго п祩Єг ЎгдҐа , Ё§ Є®в®а®© Ўг¤Ґв Їа®зЁв б«Ґ¤гойЁ© бЁ¬ў®«. Ќ® зв®
Ґб«Ё ¬л Ї®Їлв Ґ¬бп Їа®зЁв вм бЁ¬ў®« Ё Ё§¬ҐЁвм Ё¤ҐЄб, ў в® ўаҐ¬п Є Є
®б®ў п Їа®Ја ¬¬ 㦥 ЁбзҐаЇ « ўбҐ ўе®¤лҐ ¤ лҐ, ЇаЁиҐ¤иЁҐ ®в
ЇаҐалў Ёп? ‚ н⮬ б«гз Ґ дгЄжЁп Їа®бв®- Їа®бв® Ўг¤Ґв ў®§ўа й вм бЁ¬ў®«
0. ‹ЁбвЁЈ 14.2 ᮤҐа¦Ёв Ї®¤е®¤пйго Їа®Ја ¬¬г.
‹ЁбвЁЈ 14.2. ”гЄжЁп Serial_Read.
-----------------------------------------------------------------------
int Serial_Read()
{
// дгЄжЁп ў®§ўа й Ґв Ї®б«Ґ¤Ё© § ЇЁб л©
// ў Їа®Ја ¬¬л© ЎгдҐа бЁ¬ў®«
int ch;
// ¦¤Ґ¬ § ўҐа襨п дгЄжЁЁ ®Ўа Ў®вЄЁ ЇаҐалў Ёп
while(serial_lock){}
// Їа®ўҐа塞, Ґбвм «Ё бЁ¬ў®«л ў ЎгдҐаҐ
if (ser_end != ser_start)
- 558 -
{
// ¬ҐпҐ¬ § 票Ґ з «м®© Ї®§ЁжЁЁ ЎгдҐа
if (++ser_start > SERIAL_BUFF_SIZE-1)
ser_start = 0;
// зЁв Ґ¬ бЁ¬ў®«
ch = ser_buffer[ser_start];
// ў ЎгдҐаҐ бв «® ®¤Ё¬ бЁ¬ў®«®¬ ¬ҐмиҐ
if (char_ready > 0)
--char_ready;
//ў®§ўа й Ґ¬ бЁ¬ў®« ўл§ў ўиҐ© дгЄжЁЁ
return(ch);
} // Є®Ґ© ¤Ґ©бвўЁ©, Ґб«Ё ЎгдҐа Ґ Їгбв
else
// ЎгдҐа Ўл« Їгбв - ў®§ўа й Ґ¬ 0
return(0);
} // Є®Ґж дгЄжЁЁ
_________________________________________________________________________
”гЄжЁп serial_read Ї®«гз Ґв б«Ґ¤гойЁ© ¤®бвгЇл© бЁ¬ў®« Ё§ ЎгдҐа Ё
ў®§ўа й Ґв ҐЈ®. …б«Ё ў ЎгдҐаҐ Ґ ®бв «®бм ¤ ле, ® ў®§ўа й Ґв 0.
‡ ЇЁбм ў Ї®б«Ґ¤®ў ⥫мл© Ї®ав
----------------------------------
Ќ ¬ ®бв «®бм ᤥ« вм дгЄжЁо, Є®в®а п ¬®Ј« Ўл § ЇЁблў вм бЁ¬ў®«л ў
Ї®б«Ґ¤®ў ⥫мл© Ї®ав. „«п ўлЇ®«ҐЁп нв®Ј® ¤®бв в®з® § ЇЁб вм ¤ лҐ ў
ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ. Ћ¤ Є® ¬л ¤®«¦л ᤥ« вм в Є, зв®Ўл
®¤®ўаҐ¬Ґ® ўлЇ®«п«Ёбм ¤ў гб«®ўЁп:
- ‚®-ЇҐаўле, ISR Ґ ¬®¦Ґв Ўлвм ЄвЁўҐ;
- ‚®-ўв®але, ॣЁбва Ї®¤¤Ґа¦ЄЁ ЇҐаҐ¤ зЁ ¤®«¦Ґ Ўлвм Їгбв.
ЏҐаў®Ґ гб«®ўЁҐ ўлЇ®«пҐвбп Є Є б ¬® б®Ў®© а §г¬Ґо饥бп. Ћ¤ Є® ўв®а®Ґ
¤®«¦® Ўлвм Їа®ўҐаҐ® б Ї®¬®ймо Їпв®Ј® ЎЁв ॣЁбва б®бв®пЁп «ЁЁЁ. …б«Ё
нв®в ЎЁв гбв ®ў«Ґ, ЇҐаҐ¤ взЁЄ Їгбв Ё ¬л ¬®¦Ґ¬ Ї®б« вм ў Ї®ав б«Ґ¤гойЁ©
бЁ¬ў®«.
‹ЁбвЁЈ 14.3 ᮤҐа¦Ёв Їа®Ја ¬¬г ¤«п ЇҐаҐ¤ зЁ бЁ¬ў®« .
- 559 -
‹ЁбвЁЈ 14.3. ”гЄжЁп Serial_Write.
------------------------------------------------------------------------
Serial_Write(char ch)
{
// нв дгЄжЁп § ЇЁблў Ґв бЁ¬ў®« ў ЎгдҐа Ї®б«Ґ¤®ў ⥫쮣® Ї®ав ,
// ® ў з «Ґ ® ®¦Ё¤ Ґв, Ї®Є ® ®бў®Ў®¤Ёвбп
// ЏаЁ¬Ґз ЁҐ: нв дгЄжЁп Ґ бўп§ б ЇаҐалў Ёп¬Ё
// Ё § ЇаҐй Ґв Ёе ўаҐ¬п а Ў®вл
// ¦¤Ґ¬ ®бў®Ў®¦¤ҐЁп ЎгдҐа
while(!(_inp(open_port + SER_LSR) & 0x20)){}
// § ЇаҐй Ґ¬ ЇаҐалў Ёп
_asm cli
// § ЇЁблў Ґ¬ бЁ¬ў®« ў Ї®ав
_outp(open_port + SER_THR, ch);
// а §аҐи Ґ¬ ЇаҐалў Ёп б®ў
_asm sti
} // Є®Ґж дгЄжЁЁ
_________________________________________________________________________
ЋЎа вЁвҐ ўЁ¬ ЁҐ ®¤г еЁва®бвм, ЇаЁ¬ҐҐго ў дгЄжЁЁ Serial_Write: ®
§ ЇаҐй Ґв ЇаҐалў Ёп ЇҐаҐ¤ § ЇЁбмо бЁ¬ў®« ў Ї®ав Ё § ⥬ ў®ўм а §аҐи Ґв
Ёе.
ЉЋЊЊ“Ќ€ЉЂ–€ЋЌЌЂџ ЏђЋѓђЂЊЊЂ: NLINK
Џа®Ја ¬¬ NLINK § ўҐаи Ґв и Ё§ўЁ«Ёбвл© Їгвм ®бў®ҐЁп Ї®б«Ґ¤®ў ⥫мле
Є®¬¬гЁЄ жЁ© ¤«п ЏЉ. џ ЇЁб « нвг ҐЎ®«миго Є®¬¬гЁЄ жЁ®го Їа®Ја ¬¬Єг,
зв®Ўл ўл ¬®Ј«Ё «гзиҐ ®жҐЁвм Їа®©¤Ґ®Ґ. Ћ ᮥ¤ЁпҐв ¤ў ЏЉ зҐаҐ§ COM1
Ё«Ё COM2 Ё Ї®§ў®«пҐв ¤ўг¬ ЁЈа®Є ¬ ®Ўй вмбп Ї® г«м-¬®¤Ґ¬®¬г Є ЎҐ«о. „«п
ўл室 Ё§ Їа®Ја ¬¬л ¤® ¦ вм Є« ўЁиг Esc. ‹ЁбвЁЈ 14.4 ᮤҐа¦Ёв
§ Є®зҐго Є®¬¬гЁЄ жЁ®го ЎЁЎ«Ё®вҐЄг Ё Ј« ўго з бвм Їа®Ја ¬¬л NLINK.
‹ЁбвЁЈ 14.4. Љ®¬¬гЁЄ жЁ® п Їа®Ја ¬¬ NLINK (NLINK.C).
-----------------------------------------------------------------------
// I N C L U D E S ///////////////////////////////////////////////////////////
#include <dos.h>
#include <bios.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <graph.h>
// D E F I N E S ////////////////////////////////////////////////////////////
// registers in UART
#define SER_RBF 0 // the read buffer
#define SER_THR 0 // the write buffer
#define SER_IER 1 // the int. enable register
#define SER_IIR 2 // the int. identification register
#define SER_LCR 3 // control data config. and divisor latch
#define SER_MCR 4 // modem control reg.
#define SER_LSR 5 // line status reg.
#define SER_MSR 6 // modem status of cts, ring etc.
#define SER_DLL 0 // the low byte of baud rate divisor
#define SER_DLH 1 // the hi byte of divisor latch
// bit patterns for control registers
#define SER_BAUD_1200 96 // baud rate divisors for 1200 baud - 19200
#define SER_BAUD_2400 48
#define SER_BAUD_9600 12
#define SER_BAUD_19200 6
#define SER_GP02 8 // enable interrupt
#define COM_1 0x3F8 // base port address of port 0
#define COM_2 0x2F8 // base port address of port 1
#define SER_STOP_1 0 // 1 stop bit per character
#define SER_STOP_2 4 // 2 stop bits per character
#define SER_BITS_5 0 // send 5 bit characters
#define SER_BITS_6 1 // send 6 bit characters
#define SER_BITS_7 2 // send 7 bit characters
#define SER_BITS_8 3 // send 8 bit characters
#define SER_PARITY_NONE 0 // no parity
#define SER_PARITY_ODD 8 // odd parity
#define SER_PARITY_EVEN 24 // even parity
#define SER_DIV_LATCH_ON 128 // used to turn reg 0,1 into divisor latch
#define PIC_IMR 0x21 // pic's interrupt mask reg.
#define PIC_ICR 0x20 // pic's interupt control reg.
#define INT_SER_PORT_0 0x0C // port 0 interrupt com 1 & 3
#define INT_SER_PORT_1 0x0B // port 0 interrupt com 2 & 4
#define SERIAL_BUFF_SIZE 128 // current size of circulating receive buffer
// G L O B A L S /////////////////////////////////////////////////////////////
void (_interrupt _far *Old_Isr)(); // holds old com port interrupt handler
char ser_buffer[SERIAL_BUFF_SIZE]; // the receive buffer
int ser_end = -1,ser_start=-1; // indexes into receive buffer
int ser_ch, char_ready=0; // current character and ready flag
int old_int_mask; // the old interrupt mask on the PIC
int open_port; // the currently open port
int serial_lock = 0; // serial ISR semaphore so the buffer
// isn't altered will it is being written
// to by the ISR
//////////////////////////////////////////////////////////////////////////////
void _interrupt _far Serial_Isr(void)
{
// this is the ISR (Interrupt Service Routine) for the com port. It is very
// simple. When it gets called, it gets the next character out of the receive
// buffer register 0 and places it into the software buffer. Note: C takes care
// of all the register saving and house work. Cool huh!
// lock out any other functions so the buffer doesn't get corrupted
serial_lock = 1;
// place character into next position in buffer
ser_ch = _inp(open_port + SER_RBF);
// wrap buffer index around
if (++ser_end > SERIAL_BUFF_SIZE-1)
ser_end = 0;
// move character into buffer
ser_buffer[ser_end] = ser_ch;
++char_ready;
// restore PIC
_outp(PIC_ICR,0x20);
// undo lock
serial_lock = 0;
} // end Serial_Isr
//////////////////////////////////////////////////////////////////////////////
int Ready_Serial()
{
// this functions returns true if there are any characters waiting and 0 if
// the buffer is empty
return(char_ready);
} // end Ready_Serial
//////////////////////////////////////////////////////////////////////////////
int Serial_Read()
{
// this function reads a character from the circulating buffer and returns it
// to the caller
int ch;
// wait for isr to end
while(serial_lock){}
// test if there is a character(s) ready in buffer
if (ser_end != ser_start)
{
// wrap buffer index if needed
if (++ser_start > SERIAL_BUFF_SIZE-1)
ser_start = 0;
// get the character out of buffer
ch = ser_buffer[ser_start];
// one less character in buffer now
if (char_ready > 0)
--char_ready;
// send data back to caller
return(ch);
} // end if a character is in buffer
else
// buffer was empty return a NULL i.e. 0
return(0);
} // end Serial_read
//////////////////////////////////////////////////////////////////////////////
Serial_Write(char ch)
{
// this function writes a character to the transmit buffer, but first it
// waits for the transmit buffer to be empty. note: it is not interrupt
// driven and it turns of interrupts while it's working
// wait for transmit buffer to be empty
while(!(_inp(open_port + SER_LSR) & 0x20)){}
// turn off interrupts for a bit
_asm cli
// send the character
_outp(open_port + SER_THR, ch);
// turn interrupts back on
_asm sti
} // end Serial_Write
//////////////////////////////////////////////////////////////////////////////
Open_Serial(int port_base, int baud, int configuration)
{
// this function will open up the serial port, set it's configuration, turn
// on all the little flags and bits to make interrupts happen and load the
// ISR
// save the port for other functions
open_port = port_base;
// first set the baud rate
// turn on divisor latch registers
_outp(port_base + SER_LCR, SER_DIV_LATCH_ON);
// send low and high bytes to divsor latches
_outp(port_base + SER_DLL, baud);
_outp(port_base + SER_DLH, 0);
// set the configuration for the port
_outp(port_base + SER_LCR, configuration);
// enable the interrupts
_outp(port_base + SER_MCR, SER_GP02);
_outp(port_base + SER_IER, 1);
// hold off on enabling PIC until we have the ISR installed
if (port_base == COM_1)
{
Old_Isr = _dos_getvect(INT_SER_PORT_0);
_dos_setvect(INT_SER_PORT_0, Serial_Isr);
printf("\nOpening Communications Channel Com Port #1...\n");
}
else
{
Old_Isr = _dos_getvect(INT_SER_PORT_1);
_dos_setvect(INT_SER_PORT_1, Serial_Isr);
printf("\nOpening Communications Channel Com Port #2...\n");
}
// enable interrupt on PIC
old_int_mask = _inp(PIC_IMR);
_outp(PIC_IMR, (port_base==COM_1) ? (old_int_mask & 0xEF) : (old_int_mask & 0xF7 ));
} // Open_Serial
//////////////////////////////////////////////////////////////////////////////
Close_Serial(int port_base)
{
// this function closes the port which entails turning off interrupts and
// restoring the old interrupt vector
// disable the interrupts
_outp(port_base + SER_MCR, 0);
_outp(port_base + SER_IER, 0);
_outp(PIC_IMR, old_int_mask );
// reset old isr handler
if (port_base == COM_1)
{
_dos_setvect(INT_SER_PORT_0, Old_Isr);
printf("\nClosing Communications Channel Com Port #1.\n");
}
else
{
_dos_setvect(INT_SER_PORT_1, Old_Isr);
printf("\nClosing Communications Channel Com Port #2.\n");
}
} // end Close_Serial
//////////////////////////////////////////////////////////////////////////////
main()
{
char ch;
int done=0;
printf("\nNull Modem Terminal Communications Program.\n\n");
// open com 1
Open_Serial(COM_1,SER_BAUD_9600,SER_PARITY_NONE | SER_BITS_8 | SER_STOP_1);
// main loop
while(!done)
{
// try and get a character from local machine
if (kbhit())
{
// get the character from keyboard
ch = getch();
printf("%c",ch);
// send the character to other machine
Serial_Write(ch);
// has user pressed ESC ? if so bail.
if (ch==27) done=1;
// test for CR, if so add an line feed
if (ch==13)
{
printf("\n");
Serial_Write(10);
}
} // end if kbhit
// try and get a character from remote
if (ch = Serial_Read())
printf("%c", ch);
if (ch == 27)
{
printf("\nRemote Machine Closing Connection.");
done=1;
} // end if remote close
} // end while
// close the connection and blaze
Close_Serial(COM_1);
} // end main
__________________________________________________________________________
€§г票Ґ ЇаЁжЁЇ®ў Є®¬¬гЁЄ жЁЁ зҐаҐ§ Ї®б«Ґ¤®ў ⥫мл© Ї®ав ўў®¤ /ўлў®¤
Ї®е®¦Ґ Ї®бҐйҐЁҐ §гЎ®Ј® ўа з - ЁЄ®¬г Ґ а ўЁвбп, ® ўбҐ¬ ЇаЁе®¤Ёвбп
зҐаҐ§ нв® Їа®©вЁ. ЊҐ ¦ «м, зв® п Ї®¤ўҐаЈ о ў б Ї®¤®Ў®© ЇлвЄҐ, ® нв®
ЁбЄ«озЁвҐ«м® ў ¦® § вм. Џ®бҐ¬г Ґ Ўг¤г ў б ¤®«миҐ Ёбвп§ вм Ё ЇҐаҐ©¤г Є
Ў®«ҐҐ ЁвҐаҐб®© ⥬Ґ ЁЈа®ўле Є®¬¬гЁЄ жЁ©.
‘’ђЂ’…ѓ€џ €ѓђЋ‚›• ЉЋЊЊ“Ќ€ЉЂ–€‰
‘®Ґ¤ЁҐЁҐ ¤ўге ЏЉ ў § ЇгбЄ Ёе бҐвҐў®© ЁЈал пў«пҐвбп Є®¬Ї«ҐЄб®©
§ ¤ 祩, Ґ Ё¬Ґо饩 Є Є®Ј®-в® ®ЎйҐЈ® аҐиҐЁп. ‚ᥠ§ ўЁбЁв ®в Є®ЄаҐв®©
楫Ё, Є®в®аго ўл ЇҐаҐ¤ б®Ў®© Ї®бв ўЁвҐ Ё аҐиҐЁҐ Їа®Ў«Ґ¬л, ᪮॥ ўбҐЈ®,
Ўг¤Ґв ¬Ґпвмбп ®в ЁЈал Є ЁЈаҐ. Ћ¤ Є®, бгйҐбвўгҐв ҐбЄ®«мЄ® Їа ўЁ«, Є®в®алҐ
ўбҐЈ¤ 㦮 ЇаЁЁ¬ вм ў® ўЁ¬ ЁҐ. €¬Ґ® ®Ў н⮬ ¬л Ё Ї®Ј®ў®аЁ¬ ў
Ў«Ё¦ ©иҐҐ ўаҐ¬п.
‚ ЁЈаҐ ¤«п ¤ўге гз бвЁЄ®ў, Є®в®а п § ЇгбЄ Ґвбп ®¤®¬ Є®¬ЇмовҐаҐ, ®Ў
ЁЈа®Є Ё¬Ґов а ўлҐ и бл ў«Ёпвм ЁЈа®ўго бЁвг жЁо. ђЁб.14.4 Ї®Є §лў Ґв
¤ў а §«Ёзле ЇаҐ¤бв ў«ҐЁп нв®© а §®ўЁ¤®бвЁ ЁЈа.
Ћ¤ Є®, Ґб«Ё в Є п ЁЈа § ЇгбЄ Ґвбп а §ле ¬ иЁ е, ў§ Ё¬®®в®иҐЁп
ЁЈа®Є®ў б ўгв२¬ ¬Ёа®¬ Є®¬ЇмовҐа®ў ЇаҐ¤бв ў«пҐвбп Ў®«ҐҐ б«®¦л¬, Ё нв®
®ва ¦Ґ® аЁб.14.5.
- 567 -
ђЁб.14.4. ђ §«ЁзлҐ ЇаҐ¤бв ў«ҐЁп ЁЈал ¤«п ¤ў®Ёе.
ђЁб.14.5. €Ја ¤«п ¤ў®Ёе а §ле ЏЉ.
- 568 -
Џа®Ў«Ґ¬л, ў®§ЁЄ ойЁҐ ЇаЁ в Є®© Є®дЁЈга жЁЁ, ў ®б®ў®¬ бўп§ л б
®вбгвбвўЁҐ¬ ў ҐЇ®б।б⢥®© Ў«Ё§®бвЁ ¤агЈ®Ј® ЁЈа®Є (Є Є-ЁЎг¤м ¬л
®бўҐвЁ¬ ⥬㠤Ёбв жЁ®®Ј® гЇа ў«ҐЁп б®бв®пЁҐ¬ Є®¬ЇмовҐа ). Ља®¬Ґ в®Ј®,
Є®¬ЇмовҐа ¤®«¦Ґ Ї®«гзЁвм ¤®бв в®з® Ёд®а¬ жЁЁ, зв®Ўл ® ᬮЈ Ї®Є § вм
¤Ґ©бвўЁп ЁЈа®Є § ¤агЈЁ¬ Є®¬ЇмовҐа®¬.
„«п ЇаҐ®¤®«ҐЁп нвЁе Їа®Ў«Ґ¬ бгйҐбвўгов б«Ґ¤гойЁҐ ЇгвЁ:
- Њ®¦® ЇҐаҐ¤ вм ¤агЈ®© Є®¬ЇмовҐа Ї®«го Ёд®а¬ жЁо ® ¤Ґ©бвўЁпе
ЁЈа®Є . ‚ н⮬ б«гз Ґ Є®¬¬гЁЄ жЁ®л© Ї®а⠡㤥⠯®¬Ё вм
ўЁав㠫쮥 гбва®©бвў® ўў®¤ ¤ ле, гЇа ў«пҐ¬®Ґ ¤агЈЁ¬ Є®¬ЇмовҐа®¬.
Љ®Ј¤ ЁЈа®Є в஥⠪« ўЁиЁ, ЇҐаҐ¬ҐбвЁв ¬лим Ё«Ё Ї®ўҐаҐв агзЄг
¤¦®©бвЁЄ , нв® ¤Ґ©бвўЁҐ вгв ¦Ґ ЇҐаҐ¤ Ґвбп Ї® Є ЎҐ«о ¤агЈ®© ¬ иЁҐ,
Є®в®а п ®б®ўҐ Ї®«гзҐле ¤ ле ¬®¦Ґв бЄ®а४вЁа®ў вм ўЁав㠫쮥
¬Ґбв®Ї®«®¦ҐЁҐ ЁЈа®Є ў б®Ўб⢥®¬ ЁЈа®ў®¬ Їа®бва б⢥;
- ‚в®а®© ¬Ґв®¤ §лў Ґвбп "бЁеа®Ё§ жЁҐ© ўҐЄв®а б®бв®пЁп". ‚ н⮬
б«гз Ґ ў¬Ґбв® ЇҐаҐ¤ зЁ ¤ ле ®в гбва®©бвў ўў®¤ /ўлў®¤ , ¬л ЇҐаҐ¤ Ґ¬
"б®бв®пЁҐ" ЁЈа®ў®Ј® Їа®бва бвў ў 楫®¬, в Є зв® ЇаЁЁ¬ ойЁ©
Є®¬ЇмовҐа ¬®¦Ґв бЁеа®Ё§Ёа®ў вмбп б ЇҐаҐ¤ ойЁ¬, Є Є Ї®Є § ®
аЁб.14.6. ќв®в ¬Ґв®¤ а Ў®в Ґв ¤®бв в®з® е®а®и®, ®¤ Є® ЇаЁ ҐЈ®
ЁбЇ®«м§®ў ЁЁ ¬®¦Ґв § зЁвҐ«м® 㢥«ЁзЁвмбп Є®«ЁзҐбвў® ЇҐаҐ¤ ў Ґ¬®©
Ёд®а¬ жЁЁ.
ђЁб.14.6. ‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп.
‚᪮ॠ¬л а §ЎҐаҐ¬бп б Є ¦¤л¬ Ё§ ¬Ґв®¤®ў Ў®«ҐҐ ¤Ґв «м®, ᥩз б бв®Ёв
Ї®Ј®ў®аЁвм ® ЁЎ®«ҐҐ вЁЇЁзле ®иЁЎЄ е, ўбваҐз ойЁебп ЇаЁ б®Ґ¤ЁҐЁЁ ¤ўге
ЏЉ:
- Ќ ЁЎ®«ми п Їа®Ў«Ґ¬ ў®§ЁЄ Ґв, Є®Ј¤ ¤ўҐ ¬ иЁл вҐапов бЁеа®Ё§ жЁо.
‘Є ¦Ґ¬, ®¤ Ё§ Ёе Ё¬ҐҐв 586-© Їа®жҐбб®а, ¤агЈ п - 386-©. ЏаЁ н⮬
®¤Ё ЏЉ ҐЁ§ЎҐ¦® ®Є ¦Ґвбп ўЇҐаҐ¤Ё ¤агЈ®Ј® Ё бЁеа®Ё§ жЁп Ўг¤Ґв
Ї®вҐап . ќв®в д Єв®а ¤®«¦Ґ Ўлвм ЇаЁпв ў® ўЁ¬ ЁҐ ҐйҐ нв ЇҐ
а §а Ў®вЄЁ ЁЈал;
- 569 -
- ‘«Ґ¤гой п Ї®вҐжЁ «м п Їа®Ў«Ґ¬ ¬®¦Ґв Ўлвм ўл§ў Ё в Є §лў Ґ¬л¬
"Ґ¤ҐвҐа¬ЁЁа®ў л¬ нд䥪⮬ «®¦ҐЁп" (п а ббЄ ¦г «Ёим ® ҐЄ®в®але
«Ґ¦ йЁе Ї®ўҐае®бвЁ ўҐй е, ®¤ Є® нв®Ј® ¤®бв в®з® ¤«п Ї®Ё¬ Ёп бгвЁ
Їа®Ў«Ґ¬л). ЋЎҐ ЁЈал ¤®«¦л Ўлвм Ї®«®бвмо ¤ҐвҐа¬ЁЁа®ў л. ќв® § зЁв,
ЇаЁ¬Ґа, зв® ¬Ёл а §ле Є®¬ЇмовҐа е Ґ ¬®Јгв ®Є § вмбп ў а §«Ёзле
¬Ґбв е. …б«Ё ®¤®© ¬ иЁҐ ¬Ё а бЇ®«®¦Ґ , бЄ ¦Ґ¬, ў жҐвॠЁЈа®ў®Ј®
Ї®«п, в® Ё ¤агЈ®© ¬ иЁҐ Ґ© «гзиҐ Ўл ®Є § вмбп ў ⮬ ¦Ґ ¬ҐбвҐ. ’®з®
в Є ¦Ґ, ЇаЁ ЁбЇ®«м§®ў ЁЁ ЈҐҐа в®а б«гз ©ле зЁбҐ« ¤«п гЇа ў«ҐЁп
Ї®ўҐ¤ҐЁҐ¬ бгйҐбвў, Ґ®Ўе®¤Ё¬®, зв®Ўл ®ЎҐЁе ¬ иЁ е ЈҐҐаЁа®ў « бм
®¤ Ё в ¦Ґ Ї®б«Ґ¤®ў ⥫м®бвм б«гз ©ле ўҐ«ЁзЁ. …¤ЁбвўҐл¬ Їг⥬
ЇаҐ®¤®«ҐЁп нв®© Їа®Ў«Ґ¬л ¬®¦Ґв б«г¦Ёвм ЇҐаҐ¤ з Ї®«®© Ёд®а¬ жЁЁ ®Ў
ЁЈа®ў®© бЁвг жЁЁ, в Є зв®Ўл ¤ ¦Ґ б«гз ©лҐ б®ЎлвЁп, Їа®Ёб室пйЁҐ
®¤®© ¬ иЁҐ, ЎҐ§ ЁбЄ ¦ҐЁ© ®ва ¦ «Ёбм ¤агЈ®©.
ќвЁ Їа®Ў«Ґ¬л ¤Ґ©бвўЁвҐ«м® ®зҐм бҐамҐ§л Ё ў ¬ Ґ®Ўе®¤Ё¬® Ёе вй ⥫м®
Їа®а Ў®в вм. Њл Єа вЄ® ®Ўбг¤Ё«Ё ®б®ўлҐ ¬Ґв®¤л бЁеа®Ё§ жЁЁ Ё ⥯Ґам 㦥
¬®¦® Ї®Ј®ў®аЁвм ® Ёе Ў®«ҐҐ Ї®¤а®Ў®.
‘€Ќ•ђЋЌ€‡Ђ–€џ ‚…Љ’ЋђЂ ‘Ћ‘’ЋџЌ€џ
ђҐ «Ё§®ў вм бЁеа®Ё§ жЁо ўҐЄв®а б®бв®пЁп Ґб«®¦®. „«п нв®Ј® ¤®бв в®з®
ҐЇаҐалў® ЇҐаҐ¤ ў вм ¤агЈ®© ¬ иЁҐ ¤ лҐ ® б®бв®пЁЁ ЁЈа®ў®Ј®
Їа®бва бвў Ё ЇаЁЁ¬ вм ®вўҐвго Ёд®а¬ жЁо, зв®Ўл бЄ®а४вЁа®ў вм
®Ўбв ®ўЄг.
„ ў ©вҐ ў Є зҐб⢥ ЇаЁ¬Ґа а бᬮваЁ¬ ҐЄ®в®аго ЁЈаг, ў Є®в®а®© ¤ў®Ґ
гз бвЁЄ®ў а §ле Є®¬ЇмовҐа е ўҐ¤гв ¤гн«м б бвҐа®Ё¤ ¬Ё. —в®Ўл ЇҐаҐ¤ вм
б®бв®пЁҐ ®¤®© ¬ иЁл ¤агЈго, ¬л ¤®«¦л гзҐбвм Ё ¬Ґбв®Ї®«®¦ҐЁҐ, Ё
бЄ®а®бвм, Ё а §¬Ґа Є ¦¤®Ј® бвҐа®Ё¤ , в Є¦Ґ Ґ § Ўлвм ЇҐаҐ¤ вм Ё
Є®®а¤Ё вл б ¬®Ј® ЁЈа®Є . …б«Ё ЁЈа®Є ®вЄал« ®Ј®м, ¬л ¤®«¦л ЇҐаҐ¤ вм
ᮮ⢥вбвўго饥 б®®ЎйҐЁҐ Ё ®Ў н⮬, в Є¦Ґ ®ЇЁб вм ваЁЎгвл ®аг¦Ёп. Ља®¬Ґ
в®Ј®, Ґб«Ё ў ЁЈа®ў®¬ Їа®бва б⢥ ®¤®© Ё§ ¬ иЁ Ї®пўЁ«бп ®ўл© ®ЎкҐЄв,
¬л ¤®«¦л б®®ЎйЁвм ®Ў н⮬ ¤агЈ«¬г Є®¬ЇмовҐаг, зв®Ўл Ё ® ᮧ¤ «
«®ЈЁзл© ®ЎкҐЄв.
’ ЄЁ¬ ®Ўа §®¬, ¬л Є Є Ўл ¤Ґ« Ґ¬ д®в®Ја дЁЁ ЁЈа®ў®Ј® Їа®бва бвў Ё
Ї®бв®п® ЇҐаҐ¤ Ґ¬ Ёе ¤агЈго ¬ иЁг. ќв® 㦮 ¤Ґ« вм ў а §г¬®¬ ⥬ЇҐ,
в Є, зв®Ўл Ё§ЎҐ¦ вм ўбҐў®§¬®¦ле Ґб®Ј« б®ў ле бЁвг жЁ©. Ќ ЇаЁ¬Ґа, ¬®¦Ґв
¦Ґ б«гзЁвмбп в Є, зв® ®¤Ё ЁЈа®Є ў§алў Ґв бвҐа®Ё¤ ў в® ўаҐ¬п, Є Є ¤агЈ®©
ҐЈ® в®«мЄ® 楫Ё«бп. Љ Є ўл Ї®Ё¬ ҐвҐ, ў н⮬ б«гз Ґ 㦮 г¤ «Ёвм
бвҐа®Ё¤ Ё§ ЁЈа®ў®Ј® Їа®бва бвў ЇаҐ¦¤Ґ, 祬 б ап¤ ўв®а®Ј® ЁЈа®Є
¤®бвЁЈҐв 㦥 Ґ бгйҐбвўго饩 楫Ё. Ќ аЁб.14.7 б ҐЄ®в®ал¬ ЇаҐгўҐ«ЁзҐЁҐ¬
Ї®Є § ®, зв® ¬®¦Ґв Їа®Ё§®©вЁ, Ґб«Ё бЁб⥬ ўл©¤Ґв Ё§ б®бв®пЁп
бЁеа®Ё§ жЁЁ.
- 570 -
ђЁб.14.7. —в® Їа®Ёб室Ёв, Є®Ј¤ ¤ў ЏЉ ўл室пв Ё§ ०Ё¬
бЁеа®Ё§ жЁЁ.
‘Ёеа®Ё§ жЁп ўҐЄв®а б®бв®пЁп а Ў®в Ґв ЇаҐЄа б® Ё б®ўҐа襮 ¤Ґ¦®,
Ї®в®¬г зв® Ўб®«ов® ўбҐ Їа®Ёб室п饥 ®¤®© ¬ иЁҐ ЇҐаҐ¤ Ґвбп ¤агЈго.
Ћ¤ Є®, Є Є п Ї®¤®§аҐў о, нв® Ґ в Є «ҐЈЄ® ॠ«Ё§®ў вм: ўҐ¤м ў® ўЁ¬ ЁҐ
ЇаЁЁ¬ овбп ўбҐ ў®§¬®¦лҐ е а ЄвҐаЁбвЁЄЁ б®бв®пЁп ЁЈал, Ё ў १г«мв вҐ
Ёв®Ј®ў п Ёд®а¬ жЁп, ЇҐаҐ¤ ў Ґ¬ п зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «, ®Є §лў Ґвбп
¤®бв в®з® ®ЎкҐ¬Ёбв®©.
‘«Ґ¤гойЁ© ¬Ґв®¤, ® Є®в®а®¬ ¬л ᥩз б Ї®Ј®ў®аЁ¬, Ў®«ҐҐ «ҐЈ®Є ¤«п Ї®Ё¬ Ёп Ё
§лў Ґвбп бЁеа®Ё§ жЁҐ© б®бв®пЁп ўў®¤ /ўлў®¤ .
‘€Ќ•ђЋЌ€‡Ђ–€џ ‘Ћ‘’ЋџЌ€џ ‚‚Ћ„Ђ/‚›‚Ћ„Ђ
‘Ёеа®Ё§ жЁп б®бв®пЁп ўў®¤ /ўлў®¤ пў«пҐвбп ¬Ґв®¤®¬, ЇаЁ Є®в®а®¬ бв вгб
гбва®©бвў ўў®¤ ¤ ле ЇҐаҐ¤ Ґвбп ¤агЈ®© ЏЉ ў ॠ«м®¬ ўаҐ¬ҐЁ. ‚бҐ, зв®
ЁЈа®Є ¤Ґ« Ґв ®¤®¬ Є®¬ЇмовҐаҐ, ЇаЁЁ¬ ой п бЁб⥬ ў®бЇаЁЁ¬ Ґв Є Є
ўе®¤лҐ ¤ лҐ, Є®в®алҐ ЁбЇ®«м§гҐв ¤«п Є®а४вЁа®ўЄЁ ў бў®Ґ¬ ЁЈа®ў®¬
Їа®бва б⢥ Ї®ўҐ¤ҐЁп ®Ўа § ®в¤ «Ґ®Ј® ЁЈа®Є . ђЁб.14.9 Ї®пбпҐв
бЄ § ®Ґ.
- 571 -
ђЁб.14.8. ЏҐаҐ¤ з гбва®©бвў ўе®¤ле ¤ ле ¤агЈго ¬ иЁг.
ќв®в ¬Ґв®¤ зҐвЄ® а Ў®в Ґв ¤® вҐе Ї®а, Ї®Є ®ЎҐ бЁбвҐ¬л ®бв овбп
бЁеа®Ё§Ёа®ў л¬Ё Ё Ґ Їа®Ёб室Ёв ЁЄ ЄЁе б«гз ©ле Ё§¬ҐҐЁ© ЁЈа®ў®©
бЁвг жЁЁ. …б«Ё ¦Ґ Ї®¤®Ў®Ґ Їа®Ё§®©¤Ґв, в® ¤агЈ п ¬ иЁ Ґ ᬮ¦Ґв "г§ вм"
®Ў н⮬, Ї®в®¬г Є Є ¤ л© бЇ®б®Ў Ґ ЇаҐ¤ § зҐ ¤«п ЇҐаҐ¤ зЁ в Є®Ј® த
Ёд®а¬ жЁЁ.
…б«Ё ў ¬ ўбҐ ¦Ґ Ї®вॡгҐвбп, зв®Ўл Їа®Ёб室Ё«Ё Є ЄЁҐ-в® б«гз ©лҐ б®ЎлвЁп,
ўл ¤®«¦л ў®бЇ®«м§®ў вмбп ЇҐаўл¬ ¬Ґв®¤®¬, зв®Ўл б®®ЎйЁвм ®Ў Ё§¬ҐҐЁпе
¤агЈ®© ¬ иЁҐ. ‚ ¤ «мҐ©иҐ¬ ¬л ®ЎкҐ¤ЁЁ¬ ®Ў бЇ®б®Ў бЁеа®Ё§ жЁЁ ў¬Ґб⥠-
нв® б®ўҐа襮 ҐЁ§ЎҐ¦®.
„«п бЁеа®Ё§ жЁЁ б®бв®пЁп ўў®¤ /ўлў®¤ Ґ®Ўе®¤Ё¬®:
- ЋЇа®бЁвм ⥪г饥 б®бв®пЁҐ гбва®©бвў ўў®¤ ¤ ле, Ўг¤м в® ¤¦®©бвЁЄ Ё«Ё
Є« ўЁ вга ;
- ЋЎкҐ¤ЁЁвм Ёе ў¬Ґб⥠ў Ї ЄҐв Ё Ї®б« вм зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «.
’Ґа¬Ё "Ї ЄҐв" Ї®¤а §г¬Ґў Ґв ®ЎкҐ¤ЁҐЁҐ а §®б®ав®© Ёд®а¬ жЁЁ. Џ®н⮬г
¤«п ЇҐаҐбл«ЄЁ Ї ЄҐв®ў ¬л ¤®«¦л ЇаЁпвм ап¤ б®Ј« 襨©, зв®Ўл
Ї®б«Ґ¤®ў ⥫млҐ Є®¬¬гЁЄ жЁ®лҐ бЁб⥬л "§ «Ё", зв® ®§ з Ґв в Ё«Ё Ё п
з бвм Ёд®а¬ жЁЁ. ‘Є ¦Ґ¬, ¬л аҐиЁ«Ё ЇҐаҐ¤ вм зҐаҐ§ Є®¬¬гЁЄ жЁ®л© Є «
Ї®«®¦ҐЁҐ агзЄЁ ¤¦®©бвЁЄ ®¤®ўаҐ¬Ґ® б б®бв®пЁҐ¬ ҐЈ® Є®Ї®Є. ”®а¬ в
Ї ЄҐв ¤«п ЇҐаҐ¤ зЁ нвЁе ¤ ле ¬®Ј Ўл ўлЈ«п¤Ґвм ЇаЁ¬Ґа® в Є, Є Є нв®
Ї®Є § ® ў в Ў«.14.5.
- 572 -
’ Ў«Ёж 14.5. ЋЎа §Ґж Ї ЄҐв Ёд®а¬ жЁ®®Ј® Їа®бва бвў ўў®¤ /ўлў®¤ .
-------------------------------------------------------------------------
N Ў ©в ЋЎ®§ 票Ґ ‘¬лб«
-------------------------------------------------------------------------
0 J “бв ®ў«Ґ®Ґ б®бв®пЁҐ ¤¦®©бвЁЄ
1 data_x Ѓ ©в •-Є®®а¤Ё вл ¤¦®©бвЁЄ
2 data_y Ѓ ©в Y-Є®®а¤Ё вл ¤¦®©бвЁЄ
3 buttons Ѓ ©в б®бв®пЁп Є®Ї®Є
4 (period) Љ®Ґж ЇҐаҐ¤ зЁ
--------------------------------------------------------------------------
‘®бв ўЁвм в Є®© Ї ЄҐв з१ўлз ©® Їа®бв®. ЌҐ б«®¦® Ё § бв ўЁвм Їа®Ја ¬¬г
ЇҐаҐ¤ ў вм ҐЈ® ¤агЈго ¬ иЁг б з бв®в®©, Ґ®Ўе®¤Ё¬®© ¤«п б®еа ҐЁп
бЁеа®Ё§ жЁЁ. ‚ в® ¦Ґ б ¬®Ґ ўаҐ¬п, ¤ЇгЈ п ¬ иЁ ¬®Ј« Ўл ЇаҐ¤®бв ўЁвм ў
а бЇ®а殮ЁҐ ЇҐаў®© б®ЎбвўҐл© Ї ЄҐв б®бв®пЁп ¤¦®©бвЁЄ .
ќ¤Ґбм Ґбвм ®¤Ё Ґ ўЇ®«Ґ ®зҐўЁ¤л© о б. „Ґ«® ў ⮬, зв® ®Ў Є®¬ЇмовҐа
ў а ў®© ¬ҐаҐ ¤г¬ ов ¤агЈ ® ¤агЈҐ Є Є ®Ў г¤ «Ґ®¬ ЁЈа®ЄҐ. (…бвм ў н⮬
зв®-в® ®в д в бвЁзҐбЄЁе ஬ ®ў, ®ЇЁблў ойЁе ЇгвҐиҐбвўЁп ў Ї а ««Ґ«млҐ
¬Ёал Ё ў® ўаҐ¬ҐЁ, - з бвҐмЄ® Їгв Ґимбп Ё зЁ Ґв Ў®«Ґвм Ј®«®ў .)
ќв® ўбҐ, зв® п е®вҐ« бЄ § вм Ї® Ї®ў®¤г бЁеа®Ё§ жЁЁ б®бв®пЁп
ўў®¤ /ўлў®¤ . Њл ҐйҐ Їа®¤®«¦Ё¬ а §Ј®ў®а ® б®еа ҐЁЁ ०Ё¬ бЁеа®Ё§ жЁЁ,
® ᥩз б ¬ 㦮 ®Ўбг¤Ёвм в Єго ¬ «®Ё§гзҐго ®Ў« бвм, Є Є ўаҐ¬ҐЂп
бЁеа®Ё§ жЁп.
'
‚ђ…Њ…ЌЌЂџ ‘€Ќ•ђЋЌ€‡Ђ–€џ
‚६Ґ п бЁеа®Ё§ жЁп ®§ з Ґв ЇаЁўп§Єг ®ЎҐЁе ¬ иЁ Є ҐЄ®Ґ¬г ®ЎйҐ¬г
в ©¬Ґаг, Є®в®ал© ¬®¦Ґв Ўлвм Є Є ўгв२¬, в Є Ё ўҐиЁ¬. Љ Є п 㦥
Ј®ў®аЁ«, Ґ®Ўе®¤Ё¬®, зв®Ўл ®ЎҐ ЁЈал Їа®вҐЄ «Ё ў ®¤®¬ Ё ⮬ ¦Ґ ⥬ЇҐ Ё
Є ¦¤®Ґ б®ЎлвЁҐ Їа®Ёб室Ё«® ®Ў®Ёе Є®¬ЇмовҐа е ®¤®ўаҐ¬Ґ®. ‘гйҐбвўгҐв
¬®Ј® Їг⥩ ¤«п нв®Ј®, ® §¤Ґбм ЇаЁў®¤пвбп в®«мЄ® ¤ў Ё§ Ёе:
- Ћ¤Ё Їгвм б®бв®Ёв ў ®Ў¬ҐҐ ¤ л¬Ё ¬Ґ¦¤г Є®¬ЇмовҐа ¬Ё б ®ЇаҐ¤Ґ«Ґл¬
ЁвҐаў «®¬ ўаҐ¬ҐЁ, Є®в®ал© ўлЎЁа Ґвбп ®¤Ё Є®ўл¬ ¤«п ®ЎҐЁе ¬ иЁ. Љ
ЇаЁ¬Ґаг, ¬ иЁл Їа®Ё§ў®¤пв ®Ў¬Ґ Є ¦¤лҐ 1/30 ᥪг¤л. ‚ १г«мв вҐ
бЁб⥬ Ўг¤Ґв вҐапвм бЁеа®Ё§ жЁо Ґ Ў®«ҐҐ 祬 1/30 ᥪг¤л.
- „агЈ®© вҐеЁзҐбЄЁ© ЇаЁҐ¬ ®б®ў ®¦Ё¤ ЁЁ Ї®бл« ойЁ¬ Є®¬ЇмовҐа®¬
Ї®¤вўҐа¦¤ҐЁп в®Ј®, зв® б®®ЎйҐЁҐ ЇаЁЁ¬ ойЁ¬ ЏЉ Ї®«г祮. ќв® Ї®Є § ®
аЁб.14.9.
ЏҐаўл© Є®¬ЇмовҐа ЇҐаҐ¤ Ґв бў®Ґ б®бв®пЁҐ ¤агЈ®¬г. Љ Є в®«мЄ® ўв®а п ¬ иЁ
Ї®¤вўҐа¤Ёв Ї®«г票Ґ нв®Ј® б®®ЎйҐЁп Ё ЇҐаҐ¤ бв бў®Ґ б®бв®пЁҐ, ЏЉ1
- 573 -
ђЁб.14.9. ЏҐаҐ¤ з «ҐЄбҐ¬л ў б®бв®пЁЁ бЁеа®Ё§ жЁЁ.
¬®¦Ґв Їа®¤®«¦ вм а Ў®вг. € § Ї®¬ЁвҐ, зв® б в®зЄЁ §аҐЁп ўв®а®Ј® ЏЉ ўбҐ
¤®«¦® Їа®Ёб室Ёвм ®Ў®а®в. ’® Ґбвм Ї®б«Ґ ᮥ¤ЁҐЁп Є®¬ЇмовҐа®ў ®¤Ё Ё§
Ёе Ї®«гзЁв б®®ЎйҐЁҐ ЇҐаўл¬ Ё вгв ¦Ґ ўҐаҐв ҐЈ® § ¤ - б®®ЎйҐЁҐ зҐв
室Ёвм ў§ ¤ Ё ўЇҐаҐ¤.
ќв®в ¬Ґв®¤ Ё¬ҐҐв ЁвҐаҐбл© Ї®Ў®зл© нд䥪в: ¤«п б®еа ҐЁп б®бв®пЁп
бЁеа®Ё§ жЁЁ Є®¬ЇмовҐал ўл㦤Ґл а Ў®в вм б Ў®«ҐҐ Ё§Є®© бЄ®а®бвмо. ќв®
Їа®Ёб室Ёв ®вв®Ј®, зв® ¬ ЄбЁ¬ «м п § ¤Ґа¦Є ®ЇаҐ¤Ґ«пҐвбп Ґ
ЎлбвதҐ©бвўЁҐ¬ ЏЉ, ⥬, Є Є ¤®«Ј® Є ¦¤®© Ё§ ¬ иЁ ®Ўа Ў влў овбп
б®®ЎйҐЁп.
ЏаҐЄа б®, ⥯Ґам ўл Їа®бв® нЄбЇҐавл Ї® Є®¬¬гЁЄ жЁп¬. ќв® Ўл«® Ґ в Є г¦ Ё
б«®¦®, Ґ Їа ў¤ «Ё? „ ¦Ґ Ґб«Ё ўл Ё Ґ бв «Ё бЇҐжЁ «Ёб⮬, в® Ї® Єа ©Ґ©
¬ҐаҐ, ¤®«¦л ҐЇ«®е® а §ЎЁа вмбп ў н⮬ ў®Їа®бҐ Ё г ў б Ї®пўЁ«®бм ҐбЄ®«мЄ®
вҐеЁзҐбЄЁе ЇаЁҐ¬®ў ¤«п аҐиҐЁп ў®§¬®¦ле Їа®Ў«Ґ¬. ЏҐаҐ¤ ⥬, Є Є ¬л
ЇаЁбвгЇЁ¬ Є ЁЈаҐ Net-Tank, п е®зг бЄ § вм Ї аг б«®ў ® ¬®¤Ґ¬Ґ.
ЊЋ„…Њ
‘®Ґ¤ЁҐЁҐ зҐаҐ§ ¬®¤Ґ¬ Ґ в Є б«®¦®, ® ®ЇЁб ЁҐ а Ў®вл б ¬®¤Ґ¬®¬ ¤®Ў ўЁ«®
Ўл ҐйҐ Ґ¬ «® бва Ёж, Є®в®алҐ г б Їа®бв® Ґв ўаҐ¬ҐЁ. Њ®¤Ґ¬
гЇа ў«пҐвбп Ї® ⥬ ¦Ґ ЇаЁжЁЇ ¬, зв® Ё Ї®б«Ґ¤®ў ⥫мл© Ї®ав, б Є®в®ал¬ ®
ᮥ¤ЁҐ. …¤Ёб⢥®Ґ ®в«ЁзЁҐ б®бв®Ёв ў ⮬, зв® ¬®¤Ґ¬ Їа®б«гиЁў Ґв
Ї®б«Ґ¤®ў ⥫мл© Ї®ав, Ё Ґб«Ё б«лиЁв бЇҐжЁ «мго Ї®б«Ґ¤®ў ⥫м®бвм
бЁ¬ў®«®ў, в® ¤г¬ Ґв, зв® ўл а §Ј®ў аЁў ҐвҐ б Ё¬, Ё Ўг¤Ґв ЁвҐаЇаҐвЁа®ў вм
Є®¬ ¤л Ё ўлЇ®«пвм Ёе. ќвЁ Є®¬ ¤л §лў овбп Ў®а®¬ Ђ’-Є®¬ ¤. ЋЁ
Ї®¤¤Ґа¦Ёў о⠢ᥠдгЄжЁ® «млҐ ў®§¬®¦®бвЁ, Є®в®алҐ ў ¬ г¦л ¤«п ¤®§ў® ,
®вўҐв Ё ®бгйҐбвў«ҐЁп ⥫Ґд®®Ј® ᮥ¤ЁҐЁп.
Љ Є в®«мЄ® ᮥ¤ЁҐЁҐ Їа®Ё§®и«®, нв® бв «® Їа®§а з® ¤«п ў б. ‚л ¬®¦ҐвҐ
§ Ўлвм, з⮠ᮥ¤ЁЁ«Ёбм зҐаҐ§ ¬®¤Ґ¬. Ќг « ¤®, ⥯Ґам Ї®а а §кҐ¤ЁЁвмбп Ё
ЇҐаҐ©вЁ Є ЁЈаҐ.
NET-TANK: ’ЂЌЉЋ‚›‰ €Њ€’Ђ’Ћђ „‹џ „‚“• €ѓђЋЉЋ‚
Net-Tank - ЁЈа ¤«п ®¤®Ј® Ё«Ё ¤ўге ЁЈа®Є®ў. џ ЇЁб « ҐҐ, зв®Ўл Ї®Є § вм,
Є Є ᮧ¤ овбп ЁЈал ¤«п ҐбЄ®«мЄЁе гз бвЁЄ®ў Ё ®бўҐвЁвм ҐЄ®в®алҐ Їа®Ў«Ґ¬л,
Є®в®алҐ ¬®Јгв ЇаЁ н⮬ ў®§ЁЄгвм. ќв® б ¬ п ЇаЁ¬ЁвЁў п ЁЈа (¤«п ҐҐ
ЇЁб Ёп ¬Ґ Ї® ¤®ЎЁ«®бм ўбҐЈ® ваЁ ¤п), Ё¬Ґой п ®¤Ё-Ґ¤Ёб⢥л©
га®ўҐм. Ѓ®«ҐҐ в®Ј®, нв® ¤ўг嬥а п ЁЈа , ў Є®в®а®© ЁЈа®Є ᬮваЁв Ї®«Ґ
Ў®п ᢥаег ўЁ§. Њл ЇЁиҐ¬ Ї®«®жҐго ваҐе¬Ґаго ЁЈаг вЁЇ Wolfenstein ў
19-© Ј« ўҐ, ᥩз б п е®зг ®бв ўЁвм Їа®Ја ¬¬г ¤®бв в®з® Їа®бв®©, зв®Ўл
ЄжҐвЁа®ў вм ўЁ¬ ЁҐ Ґ «Ј®аЁв¬ е ЁЈа®ў®© «®ЈЁЄЁ, Є®¬¬гв жЁ®®©
з бвЁ.
ЏҐаҐ¤ ⥬, Є Є ¬л 祬 а §ЎЁа вм ЁЈаг, п ЇаҐ¤« Ј о ў ¬ блЈа вм ў ҐҐ б
ЄҐ¬-ЁЎг¤м Ё«Ё, Ї® Єа ©Ґ© ¬ҐаҐ, ў ®¤Ё®зЄг, зв®Ўл ўл Ї®Ё¬ «Ё, ® 祬
ᥩз б Ї®©¤Ґв аҐзм. Љ Є п гЇ®¬Ё « а ҐҐ, ўбҐ Їа®дҐббЁ® «л ў ®Ў« бвЁ
а §а Ў®вЄЁ ЁЈа бв а овбп ЇЁб вм гЁЄ «млҐ Їа®Ја ¬¬л Ё Ґ Ї®ўв®апвм 㦥
бгйҐбвўгойЁҐ ЁЈал. џ ¬®¤ЁдЁжЁа®ў « ҐЄ®в®алҐ ¬®¤г«Ё иЁе бв але Їа®Ја ¬¬ Ё
ᮧ¤ « Ёе ®б®ўҐ ®ўлҐ ¬®¤г«Ё. —в®Ўл Ё§Ў ўЁвмбп ®в ¬ ббЁўле ўЄ«о票©
Ёб室ле д ©«®ў, Ґ Ё¬ҐойЁе ҐЇ®б।б⢥®Ј® ®в®иҐЁп Є ЁЈаҐ, п
а §а Ў®в « ҐбЄ®«мЄ® ЎЁЎ«Ё®вҐЄ:
SNDLIB.C ЎЁЎ«Ё®вҐЄ §ўгЄ®ўле нд䥪⮢;
GRAPF1.C Ё§Є®га®ўҐўл© ¤ўг嬥ал© бЇа ©в Ё Ја дЁзҐбЄ п
ЎЁЎ«Ё®вҐЄ ;
KEYLIB.C ЎЁЎ«Ё®вҐЄ ўў®¤ б Є« ўЁ вгал;
SERLIB.C Є®¬¬гЁЄ жЁ® п ЎЁЎ«Ё®вҐЄ .
‚бҐ д ©«л § Ј®«®ўЄ®ў ¤«п нвЁе ЎЁЎ«Ё®вҐЄ Ё¬Ґов ⥠¦Ґ б ¬лҐ Ё¬Ґ :
SNDLIB.H
GRAPH1.H
KEYLIB.H
SERLIB.H
‚ᥠнвЁ ¬®¤г«Ё ®ЎкҐ¤Ёповбп ў ®¤г ®ЎиЁаго ЎЁЎ«Ё®вҐЄг б Ї®¬®ймо ¬ҐҐ¤¦Ґа
LIB.EXE. „«п ᮧ¤ Ёп нв®© ЎЁЎ«Ё®вҐЄЁ ў ¬ ¤®:
(ЋЇЁб ЁҐ Їа®жҐбб Є®¬ЇЁ«пжЁЁ а ббзЁв ® ва б«пв®а дЁа¬л Microsoft.
…б«Ё ўл Ї®«м§гҐвҐбм § зЁвҐ«м® Ў®«ҐҐ а бЇа®бва Ґл¬ г б ва б«пв®а®¬
дЁа¬л Borland Int., Є«озЁ Є®¬ЇЁ«пжЁЁ ¤® Ё§¬ҐЁвм. Џа®Ја ¬¬ -ЎЁЎ«Ё®вҐЄ ам
Є®¬ЇЁ«пв®а дЁа¬л Borland Int. §лў Ґвбп TLIB.EXE Ё а Ў®в б Ґ© ўлЈ«п¤Ёв
ҐбЄ®«мЄ® Ё зҐ (ЇаЁ¬.।.))
1. ‘Є®¬ЇЁ«Ёа®ў вм Є ¦¤л© ‘Ё-¬®¤г«м б Ї®¬®ймо д ©« CO.BAT:
cl -AM -Zi -c -Fc -Gs -G2 %1.c
- 575 -
2. Џ®б«Ґ Є®¬ЇЁ«пжЁЁ ᮧ¤ Ґвбп ®¤ Ў®«ми п ЎЁЎ«Ё®вҐЄ б Ё¬ҐҐ¬
MYLIB.LIB. —в®Ўл ᤥ« вм нв®, ўл§®ўЁвҐ ЎЁЎ«Ё®вҐзл© ¬ҐҐ¤¦Ґа Їг⥬
ўў®¤ Є®¬ ¤л
lib mylib.lib
3. Џа®Ја ¬¬ бЄ ¦Ґв, зв® ЎЁЎ«Ё®вҐЄ бв ЄЁ¬ Ё¬ҐҐ¬ ®вбгвбвўгҐв, Ё
бЇа®бЁв ў 襣® б®Ј« бЁп ҐҐ ᮧ¤ ЁҐ. ЋвўҐвм⥠г⢥न⥫м®;
4. „®Ў ўм⥠ў Є®¬ ¤го бвப㠢ᥠ¬®¤г«Ё, ўе®¤пйЁҐ ў ЎЁЎ«Ё®вҐЄг, Є
нв® гЄ § ®:
operations: +SNDLIB +GRAPH1 +KEYLIB +SERLIB
5. ‡ ⥬ Ї®пўпвбп ҐйҐ ¤ў § Їа®б . ЋвўҐвм⥠Ёе ¦ вЁҐ¬ Є« ўЁиЁ
Enter.
Џ®б«Ґ нв®Ј® г ў б Ї®пўЁвбп ЎЁЎ«Ё®вҐЄ MYLIB.LIB, Є®в®аго ўл ¬®¦ҐвҐ
ЇаЁб®Ґ¤Ёпвм в Є ¦Ґ, Є Є Ё «оЎго ¤агЈго ЎЁЎ«Ё®вҐЄг.
„«п ᮧ¤ Ёп ЁЈал ў ¬ Ґ®Ўе®¤Ё¬® ᮧ¤ вм ¤ў ЁбЇ®«пҐ¬ле ¬®¤г«п:
- Ћ¤Ё ¤«п ЁЈа®Є 1;
- „агЈ®© ¤«п ЁЈа®Є 2.
—в®Ўл н⮠ᤥ« вм, ў ¬ ¤®:
1. ЋвЄ®¬ЇЁ«Ёа®ў вм NET1.C Ё NET2.C (2 ўҐабЁЁ ЁЈал) б«Ґ¤гойЁ¬ б Ї®¬®ймо
Є®¬ ¤®Ј® д ©« CC.BAT:
cl -AM -Zi -c -Fc -Gs -G2 %1.c
if errorlevel l goto c_fail
link /ST:16384 /CO %1,,,graphics.lib+mylib.lib,,
:c_fail
ќв®в Є®¬ ¤л© д ©« Є®¬ЇЁ«ЁагҐв ЁЈаг Ё ®ЎкҐ¤ЁпҐв ҐҐ б ЎЁЎ«Ё®вҐЄ®©, зв®Ўл
ᮧ¤ вм ЁбЇ®«пҐ¬л© ¬®¤г«м. ‘¤Ґ« ©вҐ нв®, зв®Ўл ᮧ¤ вм ¤ў д ©« :
NET1.EXE Ё NET2.EXE;
2. Џ®¬ҐбвЁвҐ NET1.EXE ЏЉ1 Ё NET2.EXE ЏЉ2. ‘®Ґ¤ЁЁвҐ ®ЎҐ ¬ иЁл
г«м-¬®¤Ґ¬л¬ Є ЎҐ«Ґ¬ зҐаҐ§ COM1;
3. ’ҐЇҐам ¬®¦® зЁ вм ЁЈаг. Ќ ЎҐаЁвҐ NET1.EXE ЏЉ1 Ё NET2.EXE
ЏЉ2. Њ иЁл ᮥ¤Ёпвбп Ё ўл ¬®¦ҐвҐ ба §Ёвмбп б® бў®Ё¬ ЇаЁп⥫Ґ¬
в Є®ў®© ¤гн«Ё.
€бЇ®«м§г©вҐ б«Ґ¤гойЁҐ гЇа ў«пойЁҐ Є« ўЁиЁ:
‘в५Є ўЇа ў® Џ®ўҐагвм Їа ў®
‘в५Є ў«Ґў® Џ®ўҐагвм «Ґў®
‘в५Є ўўҐае „ўЁЈ вмбп ўЇҐаҐ¤
‘в५Є ўЁ§ „ўЁЈ вмбп § ¤
- 576 -
ESC ‚л室 Ё§ ЁЈал
Џа®ЎҐ« ‘в५мЎ
’ Џ®¤а §Ёвм Ї авҐа
Џ®ЁЈа ©вҐ ў Net-Tank Ё Ї®Їгв® ®Ўа вЁвҐ ўЁ¬ ЁҐ б«Ґ¤гойЁҐ ўҐйЁ:
- ‚®§ЁЄ Ґв «Ё нд䥪⠧ Ї §¤лў Ёп ЇаЁ ЇҐаҐ¬ҐйҐЁпе?
- ’ҐапҐв «Ё ЁЈа бЁеа®Ё§ жЁо?
- …б«Ё ¤ , в® ў Є ЄЁҐ ¬®¬Ґвл?
’ Є¦Ґ ®Ўа вЁвҐ ўЁ¬ ЁҐ §ўгЄ®ўлҐ нд䥪вл. „«п Ёе ᮧ¤ Ёп п ЁбЇ®«м§®ў «
б®ЎбвўҐл© Ј®«®б Ё гб«®ў®-ЎҐбЇ« вго Їа®Ја ¬¬г Blaster Master. Ќ Є®Ґж,
ЁЈаг ¬®¦® Їа®ў®¤Ёвм ЇаЁ гбв ®ў«Ґ®© Їа®Ја ¬¬Ґ-гбЄ®аЁвҐ«Ґ Є« ўЁ вгал.
…б«Ё ЇаЁ ¦ вЁЁ Є« ўЁиЁ в Є б«ЁиЄ®¬ १ў® гбв६«пҐвбп ўЇҐаҐ¤, Ї®Їа®Ўг©вҐ
㬥миЁвм бЄ®а®бвм ॠЈЁа®ў Ёп Є« ўЁ вгал, гбв ®ўЁў Їа®Ја ¬¬г
TURBOKEY.COM, Є®в®а п Ё¬ҐҐвбп ¤ЁбЄҐвҐ.
ЂЌЂ‹€‡ €ѓђ› NET-TANK
…б«Ё ўл ®Ў§®ўҐвҐ Net-Tank ЇҐаҐ¦ЁвЄ®¬ Є ¬Ґ®Ј® ўҐЄ , п Ї®«®бвмо б®Ј« игбм
б ў ¬Ё. Ћ¤ Є® ® ᮤҐа¦Ёв ҐбЄ®«мЄ® ЁвҐаҐбле вҐеЁзҐбЄЁе ЇаЁҐ¬®ў,
Є®в®алҐ ўл ¬®¦ҐвҐ ЁбЇ®«м§®ў вм (Ё Є®в®алҐ ў ¤ «мҐ©иҐ¬ Ўг¤гв ЇаЁ¬ҐҐл ў
Warlock`Ґ). ‚бп ЁЈа®ў п «®ЈЁЄ ᮤҐа¦Ёвбп ў дгЄжЁЁ main() ‘Ё-Їа®Ја ¬¬л. џ
ᤥ« « нв® ¤«п в®Ј®, зв®Ўл «ҐЈзҐ Ўл«® ®Ў®§аҐвм ЁЈаг ў 楫®¬. €бЄ«о票Ґ
б®бв ў«пов в®«мЄ® ўл§лў Ґ¬лҐ дгЄжЁЁ, Є®в®алҐ пў«повбп Ё§Є®га®ўҐўл¬Ё, ®
®Ўлз® Ёе Ё¬Ґ Ј®ў®апв ® ⮬, ¤«п 祣® ®Ё ЇаҐ¤ § зҐл Ё«Ё зв® ®Ё
¤Ґ« ов ( ЇаЁ¬Ґа, б«®¦® Ґ Ї®пвм, зв® ®§ з Ґв Draw_Sprite). Ћб®ў п
з бвм ўЄ«оз Ґв ў бҐЎп Ї аг б®вҐ бва®Є, Ё Ґб«Ё ўл Ї®©¬ҐвҐ Ёе б¬лб«, ўл ў
е®а®иҐ© д®а¬Ґ. „ ў ©вҐ а §ЎҐаҐ¬ ЁЈаг, а бб¬ ваЁў п а §¤Ґ« § а §¤Ґ«®¬.
ђ §¤Ґ« 1: €ЁжЁ «Ё§ жЁп
-----------------------
‚ нв®© з бвЁ Їа®Ја ¬¬л ¬л § Јаг¦ Ґ¬ ўбҐ д ©«л б® §ўгЄ®ўл¬Ё нд䥪⠬Ё Ё
Ја дЁЄ®© ¤«п ЁЈал. ќ«Ґ¬Ґвл Ё§®Ўа ¦ҐЁп ¤«п в Є®ў ЎҐагвбп Ё§ § Ја㦥ле
д ©«®ў Ё а §¬Ґй овбп ў ЇаҐ¤ў аЁвҐ«м® ўл¤Ґ«Ґ®© Ї®¤ ЎгдҐа ®Ў« бвЁ Ї ¬пвЁ.
Net-Tank ЁбЇ®«м§гҐв вҐеЁЄг ¤гЎ«Ёаго饩 ЎгдҐаЁ§ жЁЁ ¤«п ЁбЄ«озҐЁп ¬Ґаж Ёп
Ё§«Ўа ¦ҐЁп. Ќ Ї®¬о, нв® ®§ з Ґв, зв® Ё§®Ўа ¦ҐЁҐ ў з «Ґ д®а¬ЁагҐвбп ў
®ЇҐа вЁў®© Ї ¬пвЁ Ё ў 㦥 Ї®«®бвмо Ї®¤Ј®в®ў«Ґ®¬ ўЁ¤Ґ Є®ЇЁагҐвбп ў
ўЁ¤Ґ®Ї ¬пвм. Ља®¬Ґ в®Ј®, ў® ўаҐ¬п ЁЁжЁ «Ё§ жЁЁ бвагЄвгал ¤ ле,
®ЇЁблў ойЁҐ ўбҐ ЁЈа®ўлҐ ®ЎкҐЄвл, ®Ўг«повбп Ё гбв ў«Ёў овбп ў Ёб室®Ґ
Ї®«®¦ҐЁҐ.
“¦Ґ ЇаЁ ЁЁжЁ «Ё§ жЁЁ ў®§ЁЄ Ґв ЇҐаўл© ў®Їа®б бҐвҐў®© ЁЈал. Џа®Ја ¬¬л,
а Ў®в ойЁҐ ®ЎҐЁе ¬ иЁ е, Ї®звЁ Ё¤ҐвЁзл, ® ¤®«¦ Ўлвм ҐЎ®«ми п
- 577 -
а §Ёж : ў и Є®¬ЇмовҐа ¤®«¦Ґ Ї®Є § вм ®ЎкҐЄв Їа®вЁўЁЄ ў ⮬ ¦Ґ ¬ҐбвҐ,
Ј¤Ґ ® Ё§ з «м® а бЇ®«®¦Ґ ¤агЈ®¬ ЏЉ Ё ®Ў®а®в. ќв® ®§ з Ґв, зв®
Ёбе®¤лҐ Ї®§ЁжЁЁ ЁЈа®ўле ®ЎкҐЄв®ў ¤®«¦л Ўлвм ¦ҐбвЄ® гбв ®ў«Ґл. ќв®Ј®
¬®¦® ¤®ЎЁвмбп, § ¤ ў Ї®§ЁжЁЁ ў Є зҐб⢥ Є®бв в ў ⥪б⥠Їа®Ја ¬¬л,
§ Јаг¦ п Ёе Ё§ ҐЁ§¬ҐпҐ¬®Ј® д ©« ¤ ле Ё«Ё § ¤ ў п ЇаЁ бв а⥠Їа®Ја ¬¬л
Ї® ®ЇаҐ¤Ґ«Ґ®¬г «Ј®аЁв¬г. ‘Ї®б®Ў, б Ї®¬®ймо Є®в®а®Ј® нв® ¤Ґ« Ґвбп, Ґ
ў ¦Ґ. Ћ¤ Є® ЇаЁ бв а⥠Їа®Ја ¬¬л ЁЈа®Є, Є®в®ал© бв®зЄЁ §аҐЁп ®¤®©
¬ иЁл пў«пҐвбп ¬Ґбвл¬, Ўг¤Ґв г¤ «Ґл¬ б в®зЄЁ §аҐЁп ¤агЈ®Ј® Є®¬ЇмовҐа ,
Ё ®Ў®а®в. ќв® ¬®¦Ґв ЇаЁўҐбвЁ Є Їгв ЁжҐ б Є®®а¤Ё в ¬Ё Ё Їа®Ў«Ґ¬ ¬ б
бЁеа®Ё§ жЁҐ©.
ђ §¤Ґ« 2: €Ја®ў®© жЁЄ«
------------------------
‘«Ґ¤гой п з бвм зЁ Ґвбп б Ј« ў®Ј® жЁЄ« . ЋЎа вЁвҐ ўЁ¬ ЁҐ, зв® ў ЁЈаҐ
Ё¬ҐҐвбп ¤ў жЁЄ« : ўҐиЁ© Ё ўгв२©. ‚ҐиЁ© ЁЈа®ў®© жЁЄ« ЁбЇ®«м§гҐвбп
¤«п ЁЁжЁ «Ё§ жЁЁ ҐЄ®в®але ЇҐаҐ¬Ґле. § ⥬ зЁ Ґвбп ўгв२© жЁЄ«.
€¬Ґ® ў Ґ¬ Ё Їа®Ёб室Ёв ®б®ў®Ґ ¤Ґ©бвўЁҐ.
‡ ¬ҐвмвҐ, зв® ЁЈа в §«Ёз Ґв, Є®Ј¤ ® 室Ёвбп ў б®бв®пЁЁ ᮥ¤ЁҐЁп,
Є®Ј¤ - Ґв.
ђ §¤Ґ« 3: “¤ «ҐЁҐ ®ЎкҐЄв®ў
---------------------------
Љ Є ўл г§ «Ё Ё§ ЇаҐ¤л¤гйЁе Ј« ў, Ї®бўпйҐле Ја дЁЄҐ, ЇаҐ¦¤Ґ 祬 аЁб®ў вм
бЇа ©вл ®ў®¬ ¬ҐбвҐ, ¬л ¤®«¦л г¤ «Ёвм Ёе Ё§ ЇаҐ¦Ґ© Ї®§ЁжЁЁ. ќв з бвм
Їа®Ја ¬¬л гЎЁа Ґв б ЁЈа®ў®Ј® Ї®«п ўбҐ ¤ўЁ¦гйЁҐбп ®ЎкҐЄвл Їг⥬
ў®ббв ®ў«ҐЁп а ҐҐ б®еа Ґ®Ј® д® Ї®¤ Ё¬Ё.
ђ §¤Ґ« 4: Џ®«г票Ґ ўе®¤ле ¤ ле Ё ЇҐаҐ¤ з б®бв®пЁп ¤Ёбв жЁ®®
гЇа ў«пҐ¬®© бЁб⥬Ґ
--------------------------------------------------------------------
‡¤Ґбм зЁ Ґвбп б ¬®Ґ ЇаЁп⮥. ќв з бвм Їа®Ја ¬¬л Ї®¤а §¤Ґ«Ґ ¤ў
да Ј¬Ґв :
- ЏҐаўл© Ё§ Ёе ЇаЁЁ¬ Ґв ўе®¤лҐ ¤ лҐ ®в «®Є «м®Ј® ЁЈа®Є ;
- „агЈ®© ЇаЁЁ¬ Ґв ўе®¤лҐ ¤ лҐ ®в г¤ «Ґ®Ј® ЁЈа®Є .
‹оЎ®Їлв® в®, зв® ®Ў да Ј¬Ґв ¤Ґ« ов Їа ЄвЁзҐбЄЁ ®¤® Ё в® ¦Ґ. ђ §Ёж
в®«мЄ® ў ⮬, зв® ўв®а®© да Ј¬Ґв ®Ўа й Ґв Ў®«миҐ ўЁ¬ Ёп в®, зв®
Ї®бвгЇ Ґв Ё§ Ї®б«Ґ¤®ў ⥫쮣® Ї®ав , ЇҐаўл© ў ®б®ў®¬ ЁвҐаҐбгҐвбп
Є« ўЁ вга®©. „ ў ©вҐ ®бв ®ўЁ¬бп Ё згвм-згвм Ї®Ј®ў®аЁ¬ ® ⮬, Є Є
Їа®Ёб室Ёв ᮥ¤ЁҐЁҐ. Љ Є п Ј®ў®аЁ« ҐбЄ®«мЄЁ¬Ё бва Ёж ¬Ё а миҐ, ¤«п
®бгйҐбвў«ҐЁп ᮥ¤ЁҐЁп ЇаЁ¬Ґповбп ¤ў ®б®ўле ¬Ґв®¤ :
- Њ®¦® ЇҐаҐ¤ вм б®бв®пЁҐ ЁЈал ў 楫®¬;
- 578 -
- ‚л ¬®¦ҐвҐ Ї®бл« вм бв вгб гбва®©бвў ўў®¤ Ё ва Єв®ў вм нв® Є Є ЇаЁҐ¬
¤ ле ®в ¤агЈ®Ј® ¤¦®©бвЁЄ Ё«Ё Є« ўЁ вгал.
‚ Net-Tank п ЇаЁ¬ҐЁ« ўв®а®© ¬Ґв®¤. Ћ¤Ё а § ў вҐзҐЁҐ жЁЄ« ўв®а®© ¬ иЁҐ
ЇҐаҐ¤ овбп ўбҐ ¬ ЁЇг«пжЁЁ ЁЈа®Є б Є« ўЁ вга®©. ‚ нв® ¦Ґ ўаҐ¬п ¤агЈ®©
Є®¬ЇмовҐа ЁвҐаЇаҐвЁагҐв Ї®«гзҐлҐ Ї® бҐвЁ ¤ лҐ Є Є ¤Ґ©бвўЁп б® бў®Ґ©
б®Ўб⢥®© Є« ўЁ вга®©.
Џ®¬ЁвҐ, зв®Ўл нв®в вҐеЁзҐбЄЁ© ЇаЁҐ¬ а Ў®в «, ®ЎҐ ЁЈал ¤®«¦л Ўлвм
Ї®«®бвмо ¤ҐвҐа¬ЁЁа®ў л. ЌЁЄ ЄЁе б«гз ©®б⥩ Ўлвм Ґ ¤®«¦®. ‚ Net-Tank
п Ї®«®бвмо б«Ґ¤®ў « нв®¬г Їа ўЁ«г ўбо¤г, Єа®¬Ґ да Ј¬Ґв , Ё§®Ўа ¦ о饣®
ў§алў. ЋЎлз® нв®Ј® Ґ б«®¦® Ё§ЎҐ¦ вм, ® Ё®Ј¤ , Ї®б«Ґ гЁз⮦ҐЁп ®¤®Ј®
Ё§ в Є®ў, ЁЈал вҐапов бЁеа®Ё§ жЁо.
ђ §¤Ґ« 5: ЏҐаҐ¬ҐйҐЁҐ ®ЎкҐЄв®ў
------------------------------
‘«Ґ¤гой п з бвм Їа®Ја ¬¬л § Ё¬ Ґвбп ЇҐаҐ¬ҐйҐЁҐ¬ ®ЎкҐЄв®ў. Њл Їа®бв®
ЁбЇ®«м§гҐ¬ Ёд®а¬ жЁо, Ї®бвгЇ ойго ®в «®Є «м®Ј® Ё ¤Ёбв жЁ®®Ј® ўў®¤ ¤«п
ЇҐаҐ¤ўЁ¦ҐЁп Ё а §ў®а®в в Є®ў. €вҐаҐбҐ бЇ®б®Ў ЇҐаҐ¬ҐйҐЁп в Є®ў. ЋЁ
¬®Јгв ¤ўЁЈ вмбп ў 16 а §«Ёзле Їа ў«ҐЁпе, гЈ®« ¬Ґ¦¤г Є®в®ал¬Ё б®бв ў«пҐв
22,5 Ја ¤гб . ‚®®ЎйҐ-в®, зв®Ўл ЇҐаҐ¬ҐбвЁвм в Є ў ўлЎа ®¬ Їа ў«ҐЁЁ ¬
Ї®вॡ®ў «®бм Ўл, ЇаҐ¦¤Ґ ўбҐЈ®, ©вЁ гЈ®«, § ⥬ ўлзЁб«Ёвм ҐЈ® бЁгб Ё
Є®бЁгб ¤«п 宦¤ҐЁп Ї а ¬Ґва®ў ЇҐаҐ¤ўЁ¦ҐЁп.
Ћ¤ Є® ў 襩 ЁЈаҐ бЁгбл Ё Є®бЁгбл ўлзЁб«Ґл § а ҐҐ. ќв® Ї®§ў®«пҐв
ЇаЁбў®Ёвм Є ¦¤®¬г Ё§ Їа ў«ҐЁ© бў®© ®¬Ґа (Є®в®ал© Ўг¤Ґв б®ўЇ ¤ вм б
®¬Ґа®¬ ⥪г饣® Є ¤а , Ё§®Ўа ¦ о饣® в Є) Ё ЁбЇ®«м§®ў вм ҐЈ® Є Є Ё¤ҐЄб ў
в Ў«ЁжҐ, ᮤҐа¦ 饩 § 票п ᮮ⢥вбвўгойЁе ЇҐаҐ¤ўЁ¦ҐЁ© Ї® ®бп¬
Є®®а¤Ё в.
Џ®ўҐамвҐ, нв® «гзиҐ, 祬 ЁбЇ®«м§®ў ЁҐ ¬ ⥬ вЁЄЁ б Ї« ў о饩 § Їпв®©, ¤
ҐйҐ ў¬Ґб⥠б ваЁЈ®®¬ҐваЁзҐбЄЁ¬Ё дгЄжЁп¬Ё. ‚л г§ ҐвҐ Ј®а §¤® Ў®«миҐ ®
Ї®¤®Ўле д®Єгб е ў 18-© Ј« ўҐ "’ҐеЁЄ ®ЇвЁ¬Ё§ жЁЁ".
‚® ўбпЄ®¬ б«гз Ґ, Є Є в®«мЄ® в ЄЁ ¤ўЁгвбп, ба §г ¦Ґ ¬®¦® ®вЄалў вм
®Ј®м.
ђ §¤Ґ« 6: ђ бЇ®§ ў ЁҐ бв®«Є®ўҐЁ©
-------------------------------------
Љ®Ј¤ ¤«п ўбҐе ®ЎкҐЄв®ў ®ЇаҐ¤Ґ«Ґ® Ёе ®ў®Ґ ¬Ґбв®Ї®«®¦ҐЁҐ, 㦮
Ї®б¬®ваҐвм, Ґ ЇҐаҐбҐЄ овбп «Ё ®Ё ў Є ЄЁе-ЁЎг¤м в®зЄ е, в® Ґбвм, Ґ
агиЁ«Ё «Ё ®Ё ЇаЁжЁЇ ЁбЄ«озЁвҐ«м®бвЁ Џ г«Ё, Ї®« Ј ойЁ© зв® ¤ўҐ
а §«ЁзлҐ з бвЁжл Ґ ¬®Јгв ў ®¤® Ё в® ¦Ґ ўаҐ¬п 室Ёвмбп ў ®¤®¬ Ё ⮬ ¦Ґ
¬ҐбвҐ. ЏаЁ¬ҐЁвҐ«м® Є 襩 Їа®Ја ¬¬Ґ, ¬л ¤®«¦л ®вўҐвЁвм ў®Їа®б: Ї®Ї «
«Ё б ап¤ ў® ўа ¦ҐбЄЁ© Ё«Ё ў и б®ЎбвўҐл© в Є? „«п нв®Ј® Є®®а¤Ё вл
ўбҐе б а冷ў Їа®ўҐаповбп б®ўЇ ¤ҐЁҐ б Є®®а¤Ё в ¬Ё в Є . …б«Ё
Їа®Ёб室Ёв Ї®Ї ¤ ЁҐ, ®® дЁЄбЁагҐвбп б ⥬, зв®Ўл ў Є®жҐ жЁЄ« ЁЈал
Ё§®Ўа §Ёвм ў§алў. —в® Є б Ґвбп бв®«Є®ўҐЁ© в Є®ў ¤агЈ б ¤агЈ®¬,
- 579 -
в® Ї®Є Ї®§ў®«Ё¬ Ё¬ нв® ¤Ґ« вм ЎҐбЇаҐЇпвб⢥® (ЇаҐ¤« Ј о ў ¬ ¤®а Ў®в вм
Їа®Ја ¬¬г ў нв®© з бвЁ б ¬®бв®п⥫м®).
Ља®¬Ґ нв®Ј® ¬ 㦮 Ї®§ Ў®вЁвмбп ® ⮬, зв®Ўл в ЄЁ Ґ ¬®Ј«Ё Їа®е®¤Ёвм
бЄў®§м бвҐл. …б«Ё ўл Ї®¬ЁвҐ, ЁЈа®ў®Ґ Ї®«Ґ ЇаҐ¤бв ў«пҐв б®Ў®© ¬ ваЁжг
н«Ґ¬Ґв®ў, Ё¬Ґойго ®ЇаҐ¤Ґ«Ґго а §¬Ґа®бвм. ‚ Net-Tank а §¬Ґа ЁЈа®ў®Ј®
Ї®«п б®бв ў«пҐв 20е11 п祥Є, Є ¦¤ п Ё§ Є®в®але Ё¬ҐҐв Ї«®й ¤м 16е16
ЇЁЄбҐ«Ґ©. ‘«Ґ¤®ў ⥫м®, зв®Ўл гўЁ¤Ґвм, Ґ бв®«Єг«бп «Ё в Є б® б⥪®©,
в® Ґбвм Ї®Ї « ў § пвго п祩Єг, Ґ®Ўе®¤Ё¬®:
- ђ §¤Ґ«Ёвм ¤ўҐ Є®®а¤Ё вл в Є 16;
- ЋЄагЈ«Ёвм १г«мв в ¤® 楫®Ј®;
_ €бЇ®«м§®ў вм Ї®«г祮Ґ § 票Ґ Є Є Ё¤ҐЄб п祩ЄЁ ЁЈа®ў®Ј® Ї®«п, зв®Ўл
гўЁ¤Ґвм, Ґбвм «Ё в ¬ Ў«®Є. …б«Ё бв®«Є®ўҐЁҐ Їа®Ё§®и«®, ўҐагвм в Є ў
ЇаҐ¦оо Ї®§ЁжЁо.
ђ §¤Ґ« 7: ђЁб®ў ЁҐ ®ЎкҐЄв®ў
----------------------------
’ҐЇҐам ¬л Ј®в®ўл аЁб®ў вм ўбҐ ®ЎкҐЄвл. —в®Ўл ᤥ« вм нв®, ¬л ¤®«¦л
б®еа Ёвм д® ў вҐе ¬Ґбв е, Ј¤Ґ ¬л Ї« Ёа㥬 а §¬ҐбвЁвм ®ЎкҐЄвл. Џ®б«Ґ
нв®Ј® Ёе ¬®¦® аЁб®ў вм. Ќ н⮬ нв ЇҐ ЁЈа®ў®© нЄа Ї®«®бвмо Ї®бв஥ ў
¤гЎ«Ёаго饬 ЎгдҐаҐ Ё ⥯Ґам ¬®¦® Ї®б¬®ваҐвм, зв® ¦Ґ г б Ї®«гзЁ«®бм.
ђ §¤Ґ« 8: „гЎ«ЁагойЁ© ЎгдҐа
---------------------------
‚ Net-Tank ЁбЇ®«м§гҐвбп вҐеЁЄ ¤гЎ«Ёаго饩 ЎгдҐаЁ§ жЁЁ ¤«п ЁбЄ«о票п
¬Ґаж Ёп Ё§®Ўа ¦ҐЁп. ‚ нв®© з бвЁ ЁЈал Єа ©Ґ Ўлбвал© жЁЄ« бᥬЎ«Ґа
Є®ЇЁагҐв ¤гЎ«ЁагойЁ© ЎгдҐа нЄа . Ћ¤ Є® ¬л ЇҐаҐ¬Ґй Ґ¬ в®«мЄ® ЇҐаўлҐ 176
бва®Є Ё§ ЎгдҐа , в Є Є Є Ё¦пп з бвм нЄа ҐЁ§¬Ґ Ё ҐҐ Ґ ¤®
ЇҐаҐаЁб®ўлў вм.
ђ §¤Ґ« 9: ‚бпЄ п ўбпзЁ
------------------------
€Ја Їа®и« ®зҐаҐ¤®© жЁЄ«. Ќ®ў п ЁЈа®ў п бЁвг жЁп ®в®Ўа ¦Ґ нЄа Ґ Ё
¬л Ј®в®ўл ўҐагвмбп Є з «г жЁЄ« ЁЈал. Ќ® ЇҐаҐ¤ нвЁ¬ ¬ 㦮 ᤥ« вм
Є®Ґ-зв® ҐйҐ. ‚® ўаҐ¬п нв®© д §л ЁЈал ЇҐаҐаЁб®ўлў Ґвбп ЁЈа®ў®Ґ Їа®бва бвў®,
ᢥઠов ®ЈЁ ў§алў®ў, ЇҐаҐ¬ҐлҐ, 㦤 ойЁҐбп ў бЎа®бҐ, ЇаЁЁ¬ ов
Ёбе®¤лҐ § 票п.
ђ §¤Ґ« 10: ЋЇпвм Ё б®ў ®Їпвм...
---------------------------------
ЃҐ§гб«®ўл© ЇҐаҐе®¤ Є ᥪ樨 1.
- 580 -
€’Ћѓ
Њл Ґ в®«мЄ® гзЁ«Ёбм а Ў®в вм Ї®б«Ґ¤®ў ⥫мл¬ Ї®а⮬, ® Ё ᮧ¤ «Ё
Ї®«го ЎЁЎ«Ё®вҐЄг, Є®в®а п ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў ў Ўг¤г饬 б ҐЎ®«миЁ¬Ё
¬®¤ЁдЁЄ жЁп¬Ё.
Њл в Є¦Ґ гзЁ«Ёбм ᮥ¤Ёпвм ў бҐвм ¤ў Є®¬ЇмовҐа Ё г§ «Ё ® д Єв®а е,
Є®в®алҐ ¤® ЇаЁ н⮬ гзЁвлў вм. Ќ Є®Ґж, г б Ї®пўЁ« бм Ї®« п (ўҐаҐҐ,
Ї®звЁ Ї®« п) бҐвҐў п ЁЈа .