<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_05%2C06-88%2F%D0%98%D0%B3%D1%80%D0%B0%D0%B5%D0%BC_%D0%B2_%D0%A0%D0%B0%D0%BB%D0%BB%D0%B8</id>
	<title>Радио-86РК/Радио 05,06-88/Играем в Ралли - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_05%2C06-88%2F%D0%98%D0%B3%D1%80%D0%B0%D0%B5%D0%BC_%D0%B2_%D0%A0%D0%B0%D0%BB%D0%BB%D0%B8"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_05,06-88/%D0%98%D0%B3%D1%80%D0%B0%D0%B5%D0%BC_%D0%B2_%D0%A0%D0%B0%D0%BB%D0%BB%D0%B8&amp;action=history"/>
	<updated>2026-05-04T03:50:47Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_05,06-88/%D0%98%D0%B3%D1%80%D0%B0%D0%B5%D0%BC_%D0%B2_%D0%A0%D0%B0%D0%BB%D0%BB%D0%B8&amp;diff=1025&amp;oldid=prev</id>
		<title>Panther: http://retro.h1.ru/RK86/Games/Rally.php</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_05,06-88/%D0%98%D0%B3%D1%80%D0%B0%D0%B5%D0%BC_%D0%B2_%D0%A0%D0%B0%D0%BB%D0%BB%D0%B8&amp;diff=1025&amp;oldid=prev"/>
		<updated>2008-09-17T12:50:43Z</updated>

		<summary type="html">&lt;p&gt;http://retro.h1.ru/RK86/Games/Rally.php&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ДИ|Автор=А. ПЕКИН, Ю. СОЛНЦЕВ|Источник=http://retro.h1.ru/RK86/Games/Rally.php}}&lt;br /&gt;
&lt;br /&gt;
Любой компьютер может быть не только помощником в проведении&lt;br /&gt;
необходимых вам расчетов, но и хорошим партнером в электронных играх. Создавая&lt;br /&gt;
на экране дисплея различные динамически меняющиеся игровые ситуации, компьютер&lt;br /&gt;
развивает быстроту реакции, комбинационное мышление и координацию движений.&lt;br /&gt;
&lt;br /&gt;
Все игровые программы можно условно разделить на два больших&lt;br /&gt;
класса: интеллектуальные, написанные на языках высокого уровня и, как правило,&lt;br /&gt;
реализующие алгоритм какой-либо из известных игр (шахматы, шашки и т. п.), и&lt;br /&gt;
динамические, составленные на языке АССЕМБЛЕРа и работающие в реальном времени.&lt;br /&gt;
Примером динамических программ может служить уже известная читателям программа&lt;br /&gt;
«ПИТОН».&lt;br /&gt;
&lt;br /&gt;
Основным недостатком большинства игр, реализуемых на микро-ЭВМ,&lt;br /&gt;
является неизменность игровой ситуации и правил игры, что приводит к быстрому&lt;br /&gt;
надоеданию программ и даже раздражению, вызванному предсказуемостью действий&lt;br /&gt;
электронного «партнера». Выходом из этой ситуации может стать более широкое&lt;br /&gt;
распространение игр человека с человеком, в которых партнеры могут применить&lt;br /&gt;
присущие им умение, ловкость и даже хитрость, а на компьютер возлагается роль&lt;br /&gt;
беспристрастного электронного «арбитра», сначала создающего игровую ситуацию,&lt;br /&gt;
а затем «зорко» следящего за неукоснительным выполнением правил игры. Две игровые&lt;br /&gt;
программы, реализующие подобный принцип — «РАЛЛИ» и «ТРЕК», и предлагаются в&lt;br /&gt;
настоящей статье.&lt;br /&gt;
&lt;br /&gt;
Для возможности участия в игре двух партнеров необходимо, прежде&lt;br /&gt;
всего, изготовить два пульта управления, с которых в микро-ЭВМ будут вводиться&lt;br /&gt;
команды игроков.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:RK86_Rally_1.png|right|frame]]&lt;br /&gt;
Каждый&lt;br /&gt;
пульт состоит из пяти не фиксируемых в нажатом положении клавиш, расположенных&lt;br /&gt;
в порядке, показанном на рис.1. Поскольку в динамических программах, имеющих&lt;br /&gt;
весьма большую скорость изменения игровой ситуации, времени для «рассматривания»&lt;br /&gt;
клавиш практически не бывает, такая конфигурация пульта признана наиболее удобной&lt;br /&gt;
для осязательной идентификации необходимой клавиши. Тип используемых клавиш&lt;br /&gt;
может быть любым, важно лишь, чтобы они обладали максимальной износоустойчивостью&lt;br /&gt;
и надежностью, поскольку интенсивность эксплуатации их будет весьма высокой.&lt;br /&gt;
В состав каждого пульта входит пять клавиш, из которых четыре формируют различные&lt;br /&gt;
направления движения объектов игры — «гоночных машин» (причем, в отличие от&lt;br /&gt;
«ПИТОНа», движение возможно не только по направлению осей координат, но и по&lt;br /&gt;
диагоналям, что обеспечивается одновременным нажатием двух клавиш), и одна (центральная) — резервная, предназначена для дальнейшего усовершенствования игр.&lt;br /&gt;
&lt;br /&gt;
[[Изображение: RK86_Rally_2.png|thumb|200px]]&lt;br /&gt;
Схема игровых пультов приведена на&lt;br /&gt;
рис.2. Кабели, соединяющие пульты с компьютером, содержат по семь проводов и&lt;br /&gt;
могут иметь длину до трех метров. Подключают пульты к РК через соответствующие&lt;br /&gt;
разряды микросхемы D14 порта связи с внешними устройствами КР580ВВ55.&lt;br /&gt;
&lt;br /&gt;
Обе предлагаемые читателю игры (таблица кодов, исходные тексты&lt;br /&gt;
основных частей на языке АССЕМБЛЕР, а также комментарии по использованию программы&lt;br /&gt;
будут приведены во второй части статьи) формируют на экране ситуации двух основных&lt;br /&gt;
видов автомобильных соревнований — трековых гонок и ралли. После запуска программы&lt;br /&gt;
на экране дисплея появляется следующий текст:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ВЫБЕРИТЕ ИГРУ: &lt;br /&gt;
ТРЕК - 1&lt;br /&gt;
РАЛЛИ - 2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После ответа на запрос нажатием на соответствующую клавишу компьютер&lt;br /&gt;
запоминает вид игры и выводит новый текст;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ВВЕДИТЕ СКОРОСТЬ ГОНКИ (1-9): &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Аналогичным образом вводится скорость, с которой гонщики будут&lt;br /&gt;
двигаться по трассе. Далее на экране формируются изображения игровых полей (различных&lt;br /&gt;
для обеих игр) и гоночных машин, обозначаемых символами «$» и «Ж».&lt;br /&gt;
&lt;br /&gt;
Рассмотрим игровые ситуации и порядок взаимодействия микро-ЭВМ&lt;br /&gt;
и игроков при различных видах гонок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Ралли ===&lt;br /&gt;
[[Изображение: RK86_Rally_3.png|thumb|200px]]&lt;br /&gt;
После запуска программы на экране формируется изображение,&lt;br /&gt;
показанное на рис. 3. Стартовое положение машин — в нижних углах поля. Основные&lt;br /&gt;
элементы игрового поля крестики-препятствия (начальное количество — 21 шт.),&lt;br /&gt;
в случайном порядке разбросанные по трассе гонок, а также флажок-цель (символ&lt;br /&gt;
«забой»), сквозь который нужно проехать машиной раньше соперника. Цель игры&lt;br /&gt;
— первым набрать 21 флажок (проезд «через» символ забой). При столкновении с&lt;br /&gt;
препятствием или бортом автомобиля соперника раздается звуковой сигнал и вместо&lt;br /&gt;
символа машины формируется звездочка, показывающая, что автомобиль поврежден.&lt;br /&gt;
Управление им на несколько ходов блокируется, что позволяет более удачливому&lt;br /&gt;
партнеру первым достигнуть цели.&lt;br /&gt;
&lt;br /&gt;
Аналогичная ситуация возникает при наезде на другую машину или&lt;br /&gt;
ее «обломки» (звездочку). При столкновении двух машин всегда виноват тот, кто&lt;br /&gt;
«стукнул» первым (он и штрафуется простоем). При ударе машин «в лоб» возникает&lt;br /&gt;
сразу две звездочки. При известном навыке можно «повредить» машину партнера,&lt;br /&gt;
подставив ему свою (например, «тормознуть», если за тобой устремились в погоню).&lt;br /&gt;
&lt;br /&gt;
После каждого прохождения одной из машин через флажок он возникает&lt;br /&gt;
на новом месте. Одновременно с этим на трассе появляются три новых препятствия,&lt;br /&gt;
что постепенно усложняет игру (при равном классе партнеров к концу заезда на трассе&lt;br /&gt;
может находиться до 140 препятствий). Количество очков, набранных партнерами,&lt;br /&gt;
выводится на экран. При сборе 21 флажка одной из машин игра прекращается, на экране&lt;br /&gt;
возникает надпись:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
ПОБЕДИТЕЛЬ - с символом победившей машины, а также текст:&lt;br /&gt;
ПОВТОР - 1 &lt;br /&gt;
ВЫБОР ИГРЫ - 2 &lt;br /&gt;
КОНЕЦ - 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При ответе на запрос можно либо повторить заезд (клавиша 1),&lt;br /&gt;
либо сменить игру или скорость (клавиша 2), либо выйти в МОНИТОР (клавиша&lt;br /&gt;
3).&lt;br /&gt;
&lt;br /&gt;
=== Трек ===&lt;br /&gt;
[[Изображение: RK86_Rally_4.png|thumb|200px]]&lt;br /&gt;
После запуска программы на экран выводится игровое&lt;br /&gt;
поле, примерный вид которого показан на рис.4. Рисунок трека может быть&lt;br /&gt;
любым и задаваться владельцем компьютера (о том, как это сделать, будет рассказано&lt;br /&gt;
во второй, части статьи).&lt;br /&gt;
&lt;br /&gt;
Автомобили при трековых гонках установлены в левой верхней части&lt;br /&gt;
трека. В левой нижней его части формируется финишная линия, состоящая из двух&lt;br /&gt;
символов «: :». Задача играющих, стартовав в направлении слева направо, быстрей&lt;br /&gt;
партнера проехать пять кругов (напомним, что машины могут двигаться и по диагонали),&lt;br /&gt;
как можно тщательнее «вписываясь» в повороты трека. При столкновении с «обочиной»&lt;br /&gt;
трека, а также с другой машиной гонщик штрафуется так же, как в ралли. Направление&lt;br /&gt;
движения может быть любым, что позволяет вести весьма разнообразную тактическую&lt;br /&gt;
борьбу на трассе с использованием большего числа приемов (разворот и движение&lt;br /&gt;
навстречу приближающемуся партнеру с целью психологического прессинга, выезд&lt;br /&gt;
из-за «угла» и т. п.).&lt;br /&gt;
&lt;br /&gt;
При прохождении финишной линии символ машины на мгновение гаснет&lt;br /&gt;
и раздается звуковой сигнал. В тот момент, когда один из играющих достигнет&lt;br /&gt;
финиша в пятый раз, игра прекращается, и на экране появляются сообщения, аналогичные&lt;br /&gt;
приведенным для ралли.&lt;br /&gt;
&lt;br /&gt;
Следует заметить, что при некорректном ведении игры одним из&lt;br /&gt;
партнеров возможно достижение победы благодаря пятикратному пересечению линии&lt;br /&gt;
финиша прыжками вперед-назад. Программная защита от такой ситуации значительно&lt;br /&gt;
увеличивает размер программы, что в данном случае нецелесообразно. Существенно&lt;br /&gt;
проще заключить соглашение между играющими о честном ведении игры.&lt;br /&gt;
&lt;br /&gt;
Машинные коды программы обеих игр&lt;br /&gt;
занимают в ОЗУ компьютера область адресов с 0000Н по 0454Н и приведены в табл.1.&lt;br /&gt;
Их вводят в компьютер по директиве МОНИТОРа «М». После проверки корректности&lt;br /&gt;
набора программу запускают по адресу 0000Н и, выбрав, например, игру «РАЛЛИ»,&lt;br /&gt;
оценивают правильность реагирования машин на команды с пультов. Направление&lt;br /&gt;
движения должны соответствовать сочетаниям нажимаемых клавиш. При запрещенных&lt;br /&gt;
комбинациях (например, одновременной подаче команд влево — вправо или вверх-вниз),&lt;br /&gt;
и также при трех или четырех нажатых клавишах машины должны оставаться на месте.&lt;br /&gt;
При неверном реагировании на управляющие команды следует проверить правильность&lt;br /&gt;
монтажа и подключения к порту ввода клавиши, соответствующей этому направлению.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
						Таблица 1.&lt;br /&gt;
0000 	CD 4F 04 21 40 01 CD 18 F8 CD 03 F8 FE 31 CA 16&lt;br /&gt;
0010	00 FE 32 C2 09 00 D6 31 32 55 04 21 17 02 CD 18&lt;br /&gt;
0020	F8 CD 03 F8 4F D6 30 32 56 04 FE 01 FA 21 00 FE&lt;br /&gt;
0030	0A D2 21 00 CD 09 F8 11 00 21 00 00 f1 47 3E 0A&lt;br /&gt;
0040 	90 19 3D C2 41 00 22 57 04 CD 3D 04 CD 4F 04 3A&lt;br /&gt;
0050	55 04 A7 C2 98 00 CD 4F 04 CD 3D 04 32 55 04 21&lt;br /&gt;
0060	49 79 22 5D 04 21 97 79 22 5F 04 21 00 05 01 FA&lt;br /&gt;
0070 	78 7E 02 03 23 7C FE 0B C2 71 00 C0 6E 03 CD 46&lt;br /&gt;
0080 	03 3A 8B 02 B9 CA 0D 01 CD D5 03 CD 46 03 3A 8B&lt;br /&gt;
0090 	02 B9 CA 16 01 C3 7B 00 CD 4F 04 CD 09 F8 21 C2&lt;br /&gt;
00A0 	77 E5 01 01 00 1E 3F CD 90 02 E5 21 12 7F 1E 3F&lt;br /&gt;
00B0 	CD 90 02 E1 0E 4E 1E 19 CD 90 02 E1 1E 19 CD 90&lt;br /&gt;
00C0 	02 1E 15 CD BD 02 0E 2B CD 09 F8 1D C2 C3 00 21&lt;br /&gt;
00D0 	74 01 CD 18 F8 3A 56 04 CD 15 F8 CD BD 02 0E 7F&lt;br /&gt;
00E0 	CD 09 F8 CD 3D 04 2F 32 55 04 21 C5 7E 22 5D 04&lt;br /&gt;
00F0 	21 02 7F 22 5F 04 CD 6E 03 3A 8C 02 B9 CA 0D 01&lt;br /&gt;
0100 	CD D5 03 3A 8C 02 B9 CA 16 01 C3 F6 00 21 C3 01&lt;br /&gt;
0110 	CD 18 F8 C3 1C 01 21 D0 01 CD 18 F8 21 DD 01 CD&lt;br /&gt;
0120 	18 F8 21 45 02 CD 18 F8 CD 03 F8 FE 31 CA 49 00&lt;br /&gt;
0130 	FE 32 CA 00 00 FE 33 CA 00 F8 C3 28 01 1B 59 00&lt;br /&gt;
0140 	1B 59 2C 34 20 20 77 79 62 65 72 69 74 65 20 69&lt;br /&gt;
0150 	67 72 75 3A 1B 59 2E 34 74 72 65 6B 20 2D 20 22&lt;br /&gt;
0160 	31 22 1B 59 30 34 72 61 6C 6C 69 20 2D 20 22 32&lt;br /&gt;
0170 	22 20 20 00 1B 59 20 20 24 2D 30 30 2E 1B 59 20&lt;br /&gt;
0180 	5B 2E 76 2D 30 30 1B 59 21 20 58 58 58 58 58 58&lt;br /&gt;
0190 	1B 59 21 5A 58 58 58 58 58 58 1B 59 20 3A 2E 73&lt;br /&gt;
01A0 	6B 6F 72 6F 73 74 78 3A 20 20 2E 1B 59 21 39 58&lt;br /&gt;
01B0 	58 58 58 58 58 58 58 58 58 58 58 58 58 58 1B 59&lt;br /&gt;
01C0 	20 44 00 1B 59 2C 46 20 20 22 24 22 20 21 20 00&lt;br /&gt;
01D0 	1B 59 2C 46 20 20 22 76 22 20 21 20 00 1B 59 2C&lt;br /&gt;
01E0 	31 20 70 20 4F 20 62 20 65 20 64 20 69 20 74 20&lt;br /&gt;
01F0 	63 20 6C 20 78 20 20 1B 59 2D 31 20 20 20 20 20&lt;br /&gt;
0200 	20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20&lt;br /&gt;
0210 	20 20 20 20 20 20 00 1B 59 31 2E 20 20 77 77 65&lt;br /&gt;
0220 	64 69 74 65 20 73 6B 6F 72 6F 73 74 78 20 67 6F&lt;br /&gt;
0230 	6E 6B 69 20 28 31 2D 39 29 3A 20 20 20 08 08 00&lt;br /&gt;
0240 	1B 59 20 20 00 1B 59 2E 32 20 20 70 6F 77 74 6F&lt;br /&gt;
0250 	72 20 2D 20 22 31 22 1B 59 2F 32 20 20 77 79 62&lt;br /&gt;
0260 	6F 72 20 69 67 72 79 20 2D 20 22 32 22 1B 59 30&lt;br /&gt;
0270 	32 20 20 6B 6F 6E 65 63 20 2D 20 22 33 22 20 20&lt;br /&gt;
0280 	00 1B 59 20 22 00 1B 59 20 5E 00 05 21 6E 30 0A&lt;br /&gt;
0290 	36 58 09 1D C2 90 02 C9 0A 3C 27 02 CD 4F 03 3A&lt;br /&gt;
02A0 	55 04 A7 C8 E5 CD BD 02 0E 7F CD 09 F8 1E 03 CD&lt;br /&gt;
02B0 	BD 02 0E 2B CD 09 F8 1D C2 AF 02 E1 C9 21 3D 01&lt;br /&gt;
02C0 	CD 18 F8 CD F7 02 4C CD 09 F8 4D CD 09 F8 CD 21&lt;br /&gt;
02D0 	F8 B7 C2 BD 02 C9 A7 CA DD 02 11 00 00 36 00 19&lt;br /&gt;
02E0 	7E FE 2A C8 FE 2B C8 FE 58 C8 B8 C9 0A A7 CA F5&lt;br /&gt;
02F0 	02 3D 02 1E 2A 73 C9 2A 8D 02 0E 10 7C 29 E6 60&lt;br /&gt;
0300 	EA 04 03 23 0D C2 FC 02 7C FE 20 FA FC 02 22 8D&lt;br /&gt;
0310 	02 C9 A7 DB A0 C2 1A 03 DB A1 E6 0F 11 01 00 FE&lt;br /&gt;
0320 	0B C8 11 4D 00 FE 06 C8 13 FE 07 C8 13 FE 03 C8&lt;br /&gt;
0330 	11 B1 FF FE 0C C8 13 FE 0D C8 13 FE 09 C8 11 FF&lt;br /&gt;
0340 	FF FE 0E C8 13 C9 3E 3A 32 30 7E 32 7E 7E C9 C5&lt;br /&gt;
0350 	0E 07 CD 09 F8 CD 09 F8 C1 C9 E5 2A 57 04 21 7D&lt;br /&gt;
0360 	B4 C2 5E 03 E1 C9 3A 8F 02 02 CD 4F 03 C9 AF CD&lt;br /&gt;
0370 	12 03 2A 5D 04 3A 59 04 06 76 CD D6 02 C2 83 03&lt;br /&gt;
0380 	2A 5D 04 22 5D 04 01 59 04 F5 CC 66 03 0E 3A 3A&lt;br /&gt;
0390 	55 04 A7 CA 98 03 0E 7F F1 B9 01 5B 04 CC 98 02&lt;br /&gt;
03A0 	01 59 04 1E 24 CD EC 02 3A 5B 04 E5 CD 1E F8 E5&lt;br /&gt;
03B8 	21 81 02 CD 18 F8 3A 5B 04 CD 15 F8 E1 D5 11 18&lt;br /&gt;
03C0 	1D 19 D1 22 42 02 21 40 02 CD 18 F8 E1 CD 5A 03&lt;br /&gt;
03D0 	3A 5B 04 4F C9 3E 01 CD 12 03 2A 5F 04 3A 5A 04&lt;br /&gt;
03E0 	06 24 CD D6 02 C2 EB 03 2A 5F 04 22 5F 04 01 5A&lt;br /&gt;
03F0 	04 F5 CC 66 03 0E 3A 3A 55 04 A7 CA 00 04 0E 7F&lt;br /&gt;
0400 	F1 B9 01 5C 04 CC 98 02 01 5A 04 1E 76 CD EC 02&lt;br /&gt;
0410 	3A 5C 04 E5 CD 1E F8 E3 21 86 02 CD 18 F8 3A 5C&lt;br /&gt;
0420 	04 CD 15 F8 E1 D5 11 18 1D 19 D1 22 42 02 21 40&lt;br /&gt;
0430 	02 CD 18 F8 E1 CD 5A 03 3A 5C 04 4F C9 3E 9B D3&lt;br /&gt;
0440 	A3 AF 32 59 04 32 5A 04 32 5B 04 32 5C 04 C9 0E&lt;br /&gt;
0450 	1F CD 09 F8 C9 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После освоения игры «РАЛЛИ» и приобретения определенного навыка&lt;br /&gt;
в обращении с пультами управления можно приступить к построению&lt;br /&gt;
рисунка игрового поля для трековых гонок. Для этой цели служит программа,&lt;br /&gt;
исходный текст которой приведен в табл.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
					Таблица 2.&lt;br /&gt;
;*************************************&lt;br /&gt;
;*  ПPOГPAММA  ПОСТРОЕНИЯ РИСУНКА    * &lt;br /&gt;
;*    ТРЕКА  С ИСПОЛЬЗОВАНИЕМ        * &lt;br /&gt;
;*           КЛАВИАТУРЫ              * &lt;br /&gt;
;*************************************&lt;br /&gt;
	ORG 2000Н&lt;br /&gt;
	MVI  C,1FH   ; СТИРАНИЕ ЭКРАНА &lt;br /&gt;
	CALL ВЫВСИМ&lt;br /&gt;
	MVI  А,&amp;#039;$&amp;#039;   ; УСТАНОВКА &lt;br /&gt;
	STA  П031    ; МАШИНЫ 1 &lt;br /&gt;
	MVI  А,&amp;#039;Ж&amp;#039;   ; УСТАНОВКА &lt;br /&gt;
	STA  ПОЗ2    ; МАШИНЫ 2 &lt;br /&gt;
	MVI  А,&amp;#039;&amp;quot;&amp;#039;   ; УСТАНОВКА &lt;br /&gt;
	STA  ФИНИШ1  ; ФИНИШНОЙ &lt;br /&gt;
	STA  ФИНИШ2  ; ЛИНИИ&lt;br /&gt;
; *  ЦИКЛ ПОСТРОЕНИЯ ТРЕКА    &lt;br /&gt;
M1:  	CALL ВВОД      &lt;br /&gt;
	СРI  03      ; КЛАВИША  &amp;quot;F4&amp;quot;&lt;br /&gt;
	JZ   М2 &lt;br /&gt;
	MOV  С,А &lt;br /&gt;
	CALL ВЫВСИМ &lt;br /&gt;
	JMP  М1&lt;br /&gt;
; *  ЦИКЛ ПЕРЕЗАПИСИ ТРЕКА    &lt;br /&gt;
; &amp;quot;  В СЛУЖЕБНУЮ ОБЛАСТЬ ОЗУ   &lt;br /&gt;
M2:  	LXI  Н,500Н   ; НАЧАЛО ОБЛ. ОЗУ&lt;br /&gt;
	LXI  В,77С2Н  ; НАЧАЛО ЭКР.ОБЛ. &lt;br /&gt;
M3:  	LDAX В &lt;br /&gt;
	MOV  М,А &lt;br /&gt;
	INX  В &lt;br /&gt;
	INX  Н &lt;br /&gt;
	MOV  А,В &lt;br /&gt;
	CPI  80Н &lt;br /&gt;
	JN2  МЗ &lt;br /&gt;
	JMP  MONIT    	; ВЫХОД ИЗ ЦИКЛА&lt;br /&gt;
MONIT:  EQU 0F86CH 	; АДРЕС ВЫХОДА В&lt;br /&gt;
			; MONITOR БЕЗ СТИР &lt;br /&gt;
ВЫВСИМ: EQU 0F809Н &lt;br /&gt;
ВВОД:   EQU 0F803Н&lt;br /&gt;
ПОЗ1:   EQU 77С2Н+391	; ПОЗ .МАМИНЫ 1 &lt;br /&gt;
ПОЗ2:   EQU 77C2H+469	; ПОЗ. МАШИНЫ 2 &lt;br /&gt;
ФИНИШ1: EQU 77С2Н+1646	; 2 ПОЗИЦИИ &lt;br /&gt;
ФИНИШ2: EQU 77С2Н+1724	; ФИНИША&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В начале программы производится стирание экрана и установка&lt;br /&gt;
элементов игры, положение которых на экране фиксировано (двух машин и финишной&lt;br /&gt;
линии). Затем в цикле построения собственно рисунка трека поочередно выполняются&lt;br /&gt;
подпрограммы МОНИТОРа ВВОД (0F803H) и ВЫВСИМ (вывод символа, 0F809H), Нажатие&lt;br /&gt;
на любую клавишу будет непосредственно отображаться на экране (этот режим аналогичен&lt;br /&gt;
директиве «К» МОНИТОРа микро-ЭВМ «МИКРО-80»1). После нажатия на клавишу «F4»&amp;amp;gt;&lt;br /&gt;
весь рисунок трека, построенный на экране, циклом перезаписи будет скопирован&lt;br /&gt;
в служебную область ОЗУ программы.&lt;br /&gt;
&lt;br /&gt;
Практически работа с программой производится в следующем порядке.&lt;br /&gt;
В компьютер вводят программы РЕДАКТОР ТЕКСТА АССЕМБЛЕР и с клавиатуры набираются&lt;br /&gt;
исходный текст программы построения рисунка трека, который переводят в машинные&lt;br /&gt;
коды программой АССЕМБЛЕР и переносят затем директивой «Т» МОНИТОРа в область&lt;br /&gt;
ОЗУ с начальным адресом 2000Н. После запуска программы с этого адреса и стирания&lt;br /&gt;
экрана с помощью клавиш управления курсором, а также клавиш «+», «X», «*» (любой&lt;br /&gt;
из этих символов является препятствием для машин) «строят трек». При этом следует&lt;br /&gt;
избегать стирания символов машин и финишной линии. В качестве примера можно&lt;br /&gt;
воспользоваться рис. 4. После построения рисунка трека нажимают клавишу «F4»&lt;br /&gt;
— рисунок трека перепишется в служебную область ОЗУ (начиная с адреса 500Н)&lt;br /&gt;
и произойдет выход в МОНИТОР без стирания экрана. Рисунок трека может быть записан&lt;br /&gt;
на магнитную ленту (адреса с 500Н по 0CFFH). Таким образом, при использовании&lt;br /&gt;
игры в «ТРЕК» в компьютер сначала вводят собственно игровую программу, а затем&lt;br /&gt;
один из треков (на ленте их может быть несколько).&lt;br /&gt;
&lt;br /&gt;
При необходимости можно изменить количество флажков в «РАЛЛИ»&lt;br /&gt;
и число заездов в «ТРЕКЕ», необходимых для достижения победы. Эти значения находятся&lt;br /&gt;
в ячейках ОЗУ по адресам 028СН (код 21 Н) и 028ВН (код 05Н) соответственно.&lt;br /&gt;
&lt;br /&gt;
Для тех читателей, которые захотят самостоятельно использовать&lt;br /&gt;
возможности, вложенные в соревновании двух партнеров, приводим сходный текст&lt;br /&gt;
подпрограммы, использованной в приведенных играх. Подпрограмма&lt;br /&gt;
считывания информации из пультов (табл.3) возвращает в регистровой паре&lt;br /&gt;
DE значение, которое складывается с текущей координатой машины (предварительно&lt;br /&gt;
она должна быть записана в регистровой паре HL) и дает новый адрес символа машины&lt;br /&gt;
в ОЗУ экрана. При не нажатых клавишах и запрещенных ситуациях содержимое регистровой&lt;br /&gt;
пары DE равно 0. Перед использованием подпрограммы необходимо выполнение двух&lt;br /&gt;
условий. Во-первых, в регистр РУС порта параллельно интерфейса КР580ВВ55А, должен&lt;br /&gt;
быть записан код 9ВН (все регистры порта настраиваются на чтение). Адрес порта&lt;br /&gt;
РУС — 0А0А3Н. Во-вторых, при чтении подпрограммой информации из регистра «В»&lt;br /&gt;
порта в аккумулятор предварительно следует записать ноль, а при чтении с регистра&lt;br /&gt;
«А» — число, отличное от нуля.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
					Таблица 3. &lt;br /&gt;
;   *************************** &lt;br /&gt;
;   * ПОДПРОГРАММА СЧИТЫВАНИЯ * &lt;br /&gt;
;   *       ИНФОРМАЦИИ        * &lt;br /&gt;
;   *        ИЗ ПУЛЬТОВ       * &lt;br /&gt;
;   ***************************&lt;br /&gt;
УПРАВЛ:	ANA А 		; УСТАНОВКА ПРИЗНАКА Z&lt;br /&gt;
	IN  0А0Н 	; СЧИТЫВАНИЕ ИЗ&lt;br /&gt;
			; ПОРТА  &amp;quot;А&amp;quot; &lt;br /&gt;
	JNZ $+5&lt;br /&gt;
	IN  0А1Н	; СЧИТЫВАНИЕ ИЗ &lt;br /&gt;
			; ПОРТА  &amp;quot;В&amp;quot;&lt;br /&gt;
	ANI BFH  	; МАСКИРОВАНИЕ НЕИСПОЛЬ*&lt;br /&gt;
			; ЗУЕМЫХ РАЗРЯДОВ &lt;br /&gt;
	LXI D,1&lt;br /&gt;
	СРI 0ВН  	; ВПРАВО ? &lt;br /&gt;
	RZ&lt;br /&gt;
	LXI D,77&lt;br /&gt;
	СРI 6    	; ВЛЕВО-ВНИЗ ? &lt;br /&gt;
	RZ&lt;br /&gt;
	INX D&lt;br /&gt;
	СРI 7    	; ВНИЗ ? &lt;br /&gt;
	RZ&lt;br /&gt;
	INX D&lt;br /&gt;
	СРI 3    	; ВПРАВО-ВНИЗ ? &lt;br /&gt;
	RZ &lt;br /&gt;
	LXI D,0-79&lt;br /&gt;
	CPI 0CH  	; ВЛЕВО-ВВЕРХ ?&lt;br /&gt;
	RZ&lt;br /&gt;
	INX D&lt;br /&gt;
	CPI 0DH  	; ВВЕРХ ? &lt;br /&gt;
	RZ&lt;br /&gt;
	INX D&lt;br /&gt;
	CPI 9    	; ВПРАВО-ВВЕРХ ? &lt;br /&gt;
	RZ&lt;br /&gt;
	LXI D,0-1&lt;br /&gt;
	CPI 0EH  	; ВЛЕВО ? &lt;br /&gt;
	RZ &lt;br /&gt;
	INX D    	; КНОПКИ HE НАЖАТЫ,&lt;br /&gt;
			; РЕГИСТР D=0 &lt;br /&gt;
	RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В заключение следует сказать несколько слов о командах чтения&lt;br /&gt;
информации из портов ввода «IN», используемых в начале подпрограммы. При получении&lt;br /&gt;
такой команды микропроцессор считывает информацию из порта ввода (или ячейки&lt;br /&gt;
памяти), расположенного по адресу, шестнадцатеричное значение которого состоит&lt;br /&gt;
из двух одинаковых байтов, эквивалентных второму байту команды. Поэтому при&lt;br /&gt;
получении команды IN 0А0Н информация будет считана с регистра «А» порта ввода,&lt;br /&gt;
поскольку адресный дешифратор компьютера, подключенный к старшим разрядам шины&lt;br /&gt;
адресов микропроцессора, активизирует для обмена соответствующий порт. Выбор&lt;br /&gt;
необходимого регистра внутри БИС осуществляется внутренним дешифратором, использующим&lt;br /&gt;
младшие разряды адресной шины.&lt;br /&gt;
&lt;br /&gt;
А. ПЕКИН, Ю. СОЛНЦЕВ, г. Москва&lt;br /&gt;
&lt;br /&gt;
[[Категория:Радио-86РК/Публикации|31]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>