РАДИОЛЮБИТЕЛЬ ПОНЕВОЛЕ
Когда я оставлял в магазине открытку на приобретение БК-0010, некоторые знакомые меня отговаривали: ещё рано покупать компьютер - стоит он гораздо дороже, чем должен стоить, подключить к нему ничего нельзя, да и купить то, что можно было бы подключать, тоже нельзя. Нет к тому же самого главного - программного обеспечения.
Компьютер я всё же купил и успел убедиться, что именно так и обстоят дела. Во-первых, за год, прошедший с тех пор, мне пришлось стать радиолюбителем. В самом деле, подключить БК к телевизору - это значит поработать полчаса с паяльником; улучшить работу с магнитофоном - снова за паяльник, собираешь фильтр. Удалось достать принтер (в магазинах они так и не появлялись) - так тут пришлось не только специальные шнуры изготовить, но и написать несколько программ, без которых БК с принтером работать не может. Джойстик пришлось сделать из кнопочных переключателей, чтобы клавиатуру лишний раз играми не разбивать, да и саму клавиатуру пришлось переделать, чтобы избавиться от дребезга клавиш. Постепенно появляется опыт, так что теперь я собираюсь взяться за подключение БК к цветному телевизору, а эта работа не такая уж простая, особенно, если хочется получить 16 цветов. В планах - расширение памяти и подключение дисковода (может быть, кто-то знает, где его достать?).
Так и не пойму до сих пор, что я купил - компьютер или набор «Для умелых рук»?
О программах не говорю. Если москвичам доступен банк программ Московского клуба пользователей БК, то остальным владельцам этого компьютера приходится нелегко.
Как тут не вспомнить опыт наших друзей из ГДР. Мне довелось быть в этой стране дважды - в 1987 и в 1988 годах. В первый раз компьютеров в тамошних магазинах я не встречал, хотя можно было познакомиться с данными одного из них на выставке в специализированном магазине. Всего через год в продаже появились сразу три модели. Любую из них можно подключить к телевизору, даже цветному без помощи паяльника, одновременно с компьютерами можно купить целый набор модулей - ПЗУ с различными языками программирования, блоки расширения ОЗУ, блоки сопряжения с электронной пишущей машинкой («ромашкой»), саму эту машинку можно использовать в качестве принтера. Там же, в магазине, продаются и кассеты с записью программного обеспечения - не только системного, но и прикладного. Нужно добавить, что там в книжных магазинах немало книг по компьютерной тематике.
Так неужели, наваливаясь на увеличение выпуска компьютеров, наша промышленность будет по-прежнему игнорировать необходимость выпуска периферийных устройств?
Пока их нет, хочу дать читателям совет: если собираетесь приобрести БК - покупайте паяльник и осваивайте электронику.
А. СЕРГЕЕВ (г. Тула).
РЕКУРСИЯ В БЕЙСИКЕ
Меня заинтересовала заметка Л. Иоффе («Наука и жизнь», № 2, 1988, стр. 130-133) о головоломке «Ханойская башня». В её названии упоминается имя столицы моей Родины - города Ханоя. Я читал об этой головоломке в книге П. Грогоно «Программирование на языке Паскаль». Там в главе о рекурсии сказано, что у служителей храма брахманов, откуда происходит головоломка, она состоит из 64 дисков и её завершение будет означать конец света; но, добавляет автор, даже современная ЭВМ завершила бы их перекладывание за миллион лет.
В заметке Л. Иоффе было обращение написать программу решения головоломки на Бейсике. Был и намёк, что сделать это почти невозможно. Мне удалось это сделать для ЭВМ «Искра-226» с использованием рекурсии (1-я программа) и без неё (2-я программа).
В современных версиях Бейсика (в том числе той, которая используется в «Искре-226») есть два типа подпрограмм: привычный тип с обращением к номеру первой строки оператором GOSUB и подпрограмма-процедура с вызовом по имени или номеру (1-я программа). Такая подпрограмма может иметь входные и выходные параметры. Правда, нигде не сказано, что такая подпрограмма может рекурсивно вызывать саму себя. Но я попробовал, и получилось - во всяком случае, для семи кружков.
10 DIM A$1,B$1,C$1 20 INPUT "ЧИСЛО КРУЖКОВ",N 30 GOSUB ' 1(N,"A","B","C"):PRINT:END |
||
|
||
40 DEFFN ' 1(N,X$,Y$,Z$) 50 A$=X$:В$=Y$:C$=Z$ |
||
60 IF N>1 THEN 80 |
|
|
70
80 N1=N:GOSUB ' 1(N1-1,A $,C$,В$) 100 PRINT A$;"->";B$;" "; 110 GOSUB ' 1(N1-1,C$,A$,B$) 120 N1=N1+1:A1$=A$:A$=B$:B$=A1$ |
|
PRINT A$;"->";C$;" ";:GOTO 130 |
130 RETURN |
10 DIM X$(1023)1,Y$(1023)1,Z$(1023)1 20 INPUT "ЧИСЛО КРУЖКОВ",N:IF N<2 OR N>10 THEN 20 30 N1=N:K=2^(N-1):X$(K)="A":Y$(K)="B":Z$(K)="C" |
||
40 FOR I=1 TO N-1 |
|
|
50 FOR J=1 TO 2^(I-1) |
|
|
60 M=2^(N1-2):K=2*M*(2*J-1) 70 X$(K-M)=X$(K):Y$(K-M)=Z$(K):Z$(K-M)=Y$(K) 80 X$(K+M)=Y$(K):Y$(K+M)=X$(K):Z$(K+M)=Z$(K) |
|
|
90 NEXT J |
||
100 N1=N1-1 |
||
110 NEXT I |
||
120 FOR I=1 TO 2^N-1:PRINT X$(I);"->";Z$(I);" ";:NEXT I 130 PRINT:END |
ФАМ ВАН ЧИЕН, студент МЭИ.
От редакции. Решение задачи о Ханойских башнях на Бейсике с рекурсией и с использованием операторов вызова подпрограмм по номеру строки прислали Г. Гутман (г. Куйбышев) и А. Радченко (г. Удачный Якутской АССР). Н. Саква из Москвы прислал программу без использования рекурсии и с массивом небольшого размера.
КАК ПОДКЛЮЧИТЬ БК К ТЕЛЕВИЗОРУ
Подключить БК к телевизору? Что может быть проще! - воскликнет иной радиолюбитель. И в самом деле, у компьютера есть для этого специальный разъём, который так и обозначен - ТВ. Казалось бы, вставляем в разъём кабель, другой его конец подключаем к телевизору - и можно работать.
Не тут-то было! В большинстве отечественных телевизоров вход «Видео» (а именно видеовход необходим для подключения компьютера) отсутствует. Впрочем, если такое обозначение всё же есть на схеме телевизора, это ещё ничего не означает. Вот фраза из письма читателя Л. Варшавского (г. Калининград): «В телевизоре «Электроника Ц-401М» видеовход ни к чему не подключён, хотя по схеме он соединён с блоком радиоканала».
Что же, оставим эту недоработку на совести предприятия, где сделали «Электронику Ц-401М», и направимся в телеателье. Там, несомненно, за несколько минут сделают необходимое соединение. Впрочем, прежде дочитаем письмо Л. Варшавского: «Я попытался обратиться в телеателье, но мне ответили, что поскольку телевизор работает, то работники ателье ничего делать, не будут. Пришлось делать видеовход самостоятельно».
Может быть, Л. Варшавскому просто не повезло? Посмотрим, что пишут другие читатели. «Подключить БК к телевизору мне помог знакомый радиолюбитель. До этого я обращался в телеателье, но в помощи было отказано» (М. Калашников, г. Балашиха), «У телевизора «Горизонт 101» видеовход отсутствует, поэтому я установил дополнительное гнездо» (И. Стеколин, г. Москва).
Неужели переделка доступна лишь радиолюбителям, а квалифицированные работники телеателье не способны её выполнить? В одном из центральных московских отделений «Орбиты-сервиса» и в районном телеателье ответ на этот вопрос звучал одинаково: работа простая, но нет соответствующего прейскуранта, попросту неизвестно, сколько она должна стоить.
Итак, что же всё-таки делать, пока телеателье ожидают очередной спасительной инструкции? Если у телевизора гарантийный срок ещё не вышел, то, как известно, открывать его нельзя, иначе владелец потеряет право на гарантийное обслуживание. В этом случае выход один - несколько пожертвовать качеством изображения и подключить компьютер к тому входу, который есть в каждом телевизоре, - это гнездо для подключения антенны. Для этого, однако, понадобится специальное устройство - видеомодулятор. Модулятор можно собрать самому или попросить помощи у знакомого радиолюбителя.
Что это за устройство? По существу, это объединение двух блоков - генератора и модулятора. Генератор вырабатывает сигнал, в данном случае высокочастотный сигнал, соответствующий одному из телевизионных каналов метрового диапазона. Модулятор управляет высокочастотным сигналом, заставляя его следовать всем изменениям сигнала, который приходит от компьютера. Этот высокочастотный сигнал будет принят телевизором по одному из каналов точно так же, как если бы пришёл с телецентра.
Одна из схем модулятора, в общем-то несложная, была опубликована, например, в журнале «Радио» (№ 10, 1986, с. 35). Встречаются и более сложные схемы. Лучшего качества можно добиться, если частота генератора стабилизирована кварцевым резонатором. Кстати, модулятор может работать не только в метровом диапазоне, где он создаёт некоторые помехи приёму телепрограмм, но и в свободном сегодня дециметровом диапазоне, как это делается в большинстве зарубежных домашних компьютеров. В этом случае, однако, телевизор должен быть снабжён блоком ДЦВ.
И всё же модулятор, даже очень хороший, ухудшает качество картинки на телеэкране. В самом деле, низкочастотный сигнал преобразуется модулятором в высокочастотный, а в телевизионном приёмнике вновь в низкочастотный. Двойного преобразования можно избежать, если подключить выход компьютера к видеовходу телевизора. Поэтому, если гарантийный срок закончился и телевизор не стоит на абонементном обслуживании, попросите помощи у знакомого радиолюбителя. А для того чтобы не пришлось изобретать велосипед, предлагаем несколько вариантов, опробованных читателями. Все обозначения даны по схемам телевизоров.
«Кабель ТВ я подключил к выводу 8 лампы 3-Л4 (6Р4П) видеоусилителя» (В. Бабицкий, г. Минск, телевизор «Горизонт 206» УЛПТ-68-11- 28).
«У телевизора отсутствует видеовход, поэтому я установил дополнительное гнездо, подключил его экранированным проводом к контрольной точке К-18, соединенной со входом видеоусилителя (сетка лампы 4Л4, 6Ф1П), через электролитический конденсатор емкостью 500 мкФ. Переключатель устанавливаю на свободный канал (И. Стеколин, г. Москва, телевизор «Горизонт-101»).
«Разъём для компьютера я подключил через неполярный конденсатор 2 мкФ к базе транзистора V7 блока I. Чтобы не шли помехи, базу транзистора последнего каскада УПЧИ замыкаю на корпус, однако в этом случае телевизор работает только как дисплей» (А. Макеев, г. Ленинград, телевизор «Электроника 408Д»).
«Отрезком экранированного провода я соединил контакт 1 разъёма Х3 (модуль радиоканала А1) со свободным контактом 5 разъёма «магнитофон», а контакт 6 разъёма Х3 с контактом 3 разъёма «магнитофон».
Разъём Х3 предназначен для подключения видеомагнитофона и обычно отсутствует - есть только печатные дорожки, - к ним я и подключился. Кабель, соединяющий компьютер с телевизором, я собрал по схеме 1. Теперь, когда я вставляю штекер в телевизор, он автоматически переключается на работу с компьютером» (А. Дьяков, г. Москва, телевизор «Рубин Ц 266»).
«Конденсатор C1 в схеме 2 - любой неполярный конденсатор, ёмкостью не менее 1 мкФ. В правом по схеме положении переключателя телевизор работает на приём телепрограммы, в левом - как дисплей. Если в телевизоре вместо блока БРК-3 установлен блок БРК-1 или БРК-2, то вместо транзистора V10 на схеме будет транзистор V9» (О. Чистяков, г. Томск, телевизор УЛПЦТ(И)-59/61-11).
Собранные здесь советы и рекомендации, конечно, не исчерпывают проблему. Более того, с некоторыми моделями телевизоров придётся повозиться, понадобятся другие схемотехнические решения, особенно если подключать БК к цветному телевизору. Безусловно, вопрос, заданный в заголовке статьи, остаётся практически без ответа. Ответить на него могли бы предприятия, которые выпускают БК, дополнив компьютер встроенным модулятором для работы в дециметровом диапазоне. Здесь смогут помочь любые предприятия, которые хотели бы выпускать товары народного потребления. Тут могли бы поработать и кооперативы. Впрочем, лучше, если бы видеовход появился во всех новых моделях телевизоров и (это, пожалуй, не менее важно) если бы его можно было сделать в любой старой модели с помощью работников телеателье.
А. БОЙКО
КОМПЬЮТЕР ПЕЧАТАЕТ
Персональный компьютер - это не только микро-ЭВМ, но и накопители информации - дисковод или магнитофон, печатающее устройство. Бытовой компьютер БК-0010 рассчитан прежде всего на подключение магнитофона. Однако и к нему можно присоединить дисковод или печатающее устройство, например, такое, как УВВПЧ-30 004. Сделать это несложно, если понимаешь, как компьютер взаимодействует с принтером. Соединительный кабель придётся изготовить самостоятельно, в этом поможет таблица. Поясним назначение линий связи. По линии ГИ (готовность источника) компьютер сообщает принтеру о своей готовности к пересылке информации. В свою очередь, печатающее устройство должно сообщить компьютеру, что оно включено и готово к работе по линии ГП (готовность приёмника). Напечатав очередной символ, принтер сообщает об этом БК по линии ЗП (запрос приёмника). Линию СТР (строб источника) компьютер использует для того, чтобы просигнализировать принтеру о том, что передаётся код очередного сигнала. Линий данных всего восемь - Д0-Д7. Именно по этим линиям передаются комбинации единиц и нулей, каждая из которых даёт принтеру знать, о каком именно символе идёт речь на этот раз. Ещё четыре линии СП1-СП4 предназначены для передачи служебных данных от печатающего устройства к компьютеру. Что же это за данные? Это сообщения об ошибках механического привода устройства печати, о передаче символа, отсутствующего в словаре принтера, о передаче некорректных данных и, наконец, об окончании бумаги. В простейшем случае можно обойтись и без них, подключив все четыре линии к катодам диодов. Аноды всех диодов соединяют и через резистор 1 кОм подключают к выводу А8 порта ввода-вывода. Это относится к компьютеру БК-0010.01. В случае с БК-0010 резистор подключают к выводу 5-го шнура питания.
ЛИНИЯ |
ГИ |
ГП |
ЗП |
СТР |
Д0 |
Д1 |
Д2 |
Д3 |
Д4 |
Д5 |
Д6 |
Д7 |
СП1-СП4 |
РАЗЪЁМ ПОРТА |
B18 |
A23 |
B31 |
A28 |
A16 |
A13 |
B12 |
B10 |
B5 |
B7 |
B6 |
A7 |
A3 ЧЕРЕЗ ДИОДЫ |
Простейшая программа в машинных кодах превращает БК в пишущую машинку. Основная программа размещена в ячейках 1150-1242, в ячейках 1260-1326 записана подпрограмма передачи кодов от БК к печатающему устройству. Начиная работу по программе, БК передаёт на принтер управляющий код, который настраивает принтер на работу с определённым набором символов (ячейки 1150-1160). В данном случае - это набор символов КОИ-8. В памяти БК
формируется строка длиной 80 символов (1162-1172). Фрагмент подпрограммы 1174-1212 распечатывает строку на принтере. Для передачи кода символа используется 256-я ячейка. БК шлёт в эту ячейку код очередного символа, а подпрограмма пересылает код на принтер.
1150: |
12737 |
23 |
256 |
4537 |
1260 |
12701 |
1000 |
12702 |
5120 |
104010 |
12700 |
1000 |
112037 |
256 |
4537 |
1260 |
|
20001 |
1372 |
12737 |
12 |
256 |
4537 |
1260 |
12737 |
|
15 |
256 |
4537 |
1260 |
137 |
1162 |
0 |
0 |
|
0 |
0 |
0 |
0 |
13737 |
256 |
177714 |
22737 |
|
600 |
177714 |
1374 |
62737 |
400 |
256 |
13737 |
256 |
|
177714 |
32737 |
400 |
177714 |
1374 |
5037 |
256 |
205 |
|
0 |
Рассмотрим работу подпрограммы подробнее. Первая команда (1260-1264) передаёт код символа из 256-й ячейки в выходной регистр. 1266-1274 - это проверка, готово ли печатающее устройство принять код. Если готово, то команды 1276-1302 дополняют стробом содержимое ячейки 256 и полученный код направляется в выходной регистр (1304-1310). Выполняя команды 1312-1320, БК проверяет, исчез ли сигнал ЗП. Если послание дошло до адресата, то ячейка 256 очищается (1322-1324) и исполнение программы завершается.
Подпрограмму можно использовать и в других программах, например, в редакторе текстов, вариант редактора, разработанный автором статьи, позволяет набирать тексты объёмом до 7 машинописных страниц, редактировать набранный текст, записывать и считывать готовый текст с помощью магнитофона и, наконец, распечатывать набранные тексты на принтере. Использовать можно большие и маленькие буквы латинского алфавита, большие и маленькие буквы русского алфавита, цифры и другие символы из набора КОИ-8. На листе бумаги стандартного формата компьютер формирует 30 строк по 64 символа в строке.
Подобных программ можно предложить немало, поэтому каждый читатель может создать программу - редактор, отвечающую его личным вкусам и склонностям.
Л. РАДЧЕНКО (г. Москва).
НЕСКОЛЬКО СЛОВ О ПРЕРЫВАНИИ
Разбирая заметку А. Шеломанова («Наука и жизнь», № 4, 1988 г.), я убедился, что предложенный им приём ветвления по условию не всегда применим. Если использовать его, скажем, при программировании игр типа «Питон», когда программа реагирует только на изменение регистра данных РД, то проблем не возникает. А что делать, если необходимо стрелять по цели, летящей по экрану? Опрашивая РД, мы получим лишь код клавиши, нажатой при первом выстреле. Казалось бы, можно опрашивать регистр команд и состояний (РКС) по адресу 177660, проверяя 7-й разряд. Записанная там единица говорила бы о том, что клавиша нажата и её код находится в регистре данных. Те, кто уже пробовал читать РКС из Фокала, убедился, что в этом регистре постоянно записан 0. Это связано с тем, что управляющая опросом клавиатуры программа - драйвер клавиатуры - быстрее успевает отреагировать на нажатие клавиши и взять её код из РД. При этом 7-й разряд РКС обнуляется.
10.01 X FX(-1,177660,100) 10.02 I (FX(1,177660)-64) 10.06,10.04,10.06 10.04 S FL=0;R 10.06 S FL=1;X FX(1, 177662);R
И всё же выход есть. На рисунке - одна из возможных реализующих его программ.
В строке 10.01 в 6-й разряд РКС клавиатуры записывается единица. В строке 10.2 анализируется содержимое регистра команд и состояний. Если в регистре находится число 64, что соответствует единице в 6-м разряде, то нажатия клавиши не было, поэтому переходим к строке 10.4, где обнуляем признак нажатия клавиши - флажок FL.
Число 192 соответствует нажатию клавиши, что вызывает передачу управления к строке 10.6, где флажок будет установлен в 1. Здесь же сбрасываем 7-й разряд РКС, прочитав РД.
Небольшая деталь: если за оператором обращения к данной подпрограмме следует оператор ASK, то предварительно следует сбросить 6-й разряд РКС командой X FX(1,177660,0).
А. БАШИЛОВ (г. Москва).