Московский клуб БК

Когда три года назад в продаже наконец появились первые бытовые компьютеры «Электроника БК-0010», никто из покупателей ещё не представлял, с какими трудностями придётся столкнуться, осваивая эту машину. Надо сказать, что возможности БК казались тогда ограниченными настолько, что никто просто не мог поверить, что для этой машины можно создать, например, такую программу, как «Шахматы» (С. Шмытов, Москва).

Действуя по известной поговорке «ум хорошо, а два - лучше», немногочисленные счастливые обладатели БК из Москвы стали встречаться друг с другом; образовались небольшие группы по интересам. Постепенно встречи стали регулярными, хотя и на разных «площадках»: то в здании издательства «Молодая гвардия», то в Политехническом музее.

Основой этих встреч был обмен программами (создавался общедоступный фонд) и всевозможной информацией, касающейся компьютеров вообще и БК в частности.

Сегодня «Московский городской клуб пользователей бытовых компьютеров» - это крупнейшее в стране любительское объединение пользователей «Электроники БК». Клуб решает много задач, главные - оказание помощи начинающим пользователям компьютеров, создание общедоступного фонда программного обеспечения. Клуб объединяет уже более 500 человек, поддерживает связи с другими компьютерными клубами страны.

Адрес одной из площадок клуба - Москва, ул. Павловская, 6, ДК ЗВИ, к. 218.


«Электроника БК-0010» работает с магнитофоном

Пока у БК нет дисковода, единственный способ сохранить программу - это записать её на магнитофон. Магнитофон может быть любым: отечественным или зарубежным, новым или старым, кассетным или катушечным. Единственное условие: он должен надёжно воспроизводить последовательности импульсов - компьютерные программы. Надёжность зависит от многих причин, но есть несколько основных параметров, которые чаще всего определяют, насколько удобно работать с домашним вычислительным комплексом. Во-первых, это уровень сигнала, - обычно от 0,25 до 0,8 В. Оптимум здесь находится примерно посередине. Второе условие - верное положение головки магнитофона. Бывает так: программы, которые вы составляете самостоятельно, хорошо записываются и считываются с магнитофонной ленты, а кассету, полученную из другого города, прочесть не удаётся. Дело в том, что магнитные головки во всех магнитофонах должны находиться строго на одной стандартной высоте - только в этом случае запись, сделанная на одном магнитофоне, подойдёт к другому аппарату. К сожалению, так случается далеко не всегда, особенно когда речь идёт о портативных кассетных магнитофонах. В то же время в большинстве случаев положение можно исправить. Прежде всего разыщите кассету с эталонной записью (есть специальные кассеты для измерений, но подойдёт любая кассета, записанная на заведомо отрегулированном магнитофоне). Слегка поворачивая регулировочный винт, нужно выставить стандартную высоту головки. Ориентироваться при этом следует прежде всего на качество воспроизведения высоких частот. Отметив эталонное положение винта краской, можно попытаться прочесть программы, записанные на «неправильных» магнитофонах, также ориентируясь на то положение головки, когда лучше всего воспроизводятся высокие частоты. Однако настроить магнитофон, руководствуясь исключительно слухом, довольно сложно. В то же время БК-0010 вполне может оказать серьёзную помощь в этом деле, если воспользоваться программой С. Гуторенко из г. Железнодорожного (Московская обл.).


БК считает периоды

После того как программа (рис. 1) введена в компьютер, её запускают с адреса 1000. На экране ничего не произойдёт до тех пор, пока мы не поставим на магнитофон качественную запись и не включим воспроизведение. Через 2 с на экране телевизора появится график, который будет постоянно обновляться. Если запись действительно качественная и головка установлена верно, на экране будут два чётких максимума различной высоты, а между ними - чёткий минимум, доходящий до нуля. Правый максимум должен быть меньше левого. Если вы увидите лишь один максимум, это значит, что сейчас воспроизводится настроечная последовательность или файл, содержащий одни нули. Но если поставить кассету, которую компьютер не считывает, то вид графика тотчас же изменится: пропадёт нулевой минимум, максимумы расплывутся. Глядя на картинку, можно попытаться подстроить магнитофон.

12705

177716

42715

200

12700

1134

12701

400

5020

77102

11501

5002

5202

102774

21501

1774

20227

1000

2367

105262

1134

126227

1134

357

103761

12700

14

104016

5000

5001

5002

104030

5200

5003

116302

1134

42702

177400

104032

5203

62701

40

20127

1000

2765

722

 

 

Рис. 1

 

Вводят программу из отладочного режима, начиная с адреса 1000. Длина программы 134 байта, контрольная сумма 31 571. Запускают программу командой 1000G в режиме «64 символа в строке». Алгоритм программы несложен.

  1. Запустив двигатель магнитофона, компьютер очищает массив, в котором будет накапливаться статистика, полученная при обработке сигналов магнитофона.
  2. Компьютер запоминает состояние сигнала на выходе магнитофона (0 или 1) в текущий момент времени, очищает счётчик и начинает цикл анализа сигнала: содержимое счётчика увеличивается на единицу и, если возникает переполнение, управление возвращается на п. 2. Если с магнитофона продолжает поступать тот же сигнал, то управление возвращается к началу цикла, в противном случае цикл завершается. Каждый сигнал, длительность периода которого оказывается больше, чем 512 циклов анализа, БК считает ошибочным. В этом случае управление вновь передаётся на п. 2.

Наконец анализ закончен и начинается обработка результатов. Увеличивается на единицу элемент массива с номером, соответствующим длительности периода. При этом компьютер следит за тем, чтобы график не вышел за пределы экрана. По горизонтальной оси в верхней части экрана откладывается длительность периода, по вертикальной - количество периодов соответствующей длительности. Как только график построен, выполнение программы повторяется с начала.

 

Способ С. Гуторенко хорош, однако его можно дополнить ещё несколькими приёмами, позволяющими выбраться почти из любой затруднительной ситуации с магнитофоном. Если магнитофон работает с компьютером хорошо, то можно воспользоваться приёмом, ускоряющим ввод программ в компьютер. Для этого программу записывают на кассетный магнитофон со скоростью 2,38 см/с, а воспроизводят со скоростью 4,76 см/с. Для катушечного магнитофона это 9,53 см/с и 19,05 см/с или 4,76 см/с и 9,53 см/с. В тех моделях, где переключателя скорости нет, его можно сделать. Для этого последовательно с подстроечным резистором R в блоке управления скоростью устанавливают цепочку из выключателя и резистора, включённых параллельно (рис. 2). Разомкнутое положение переключателя соответствует режиму «Запись с БК», замкнутое - «Загрузка в БК». Если считывание с магнитофона идёт плохо, попробуйте обратный приём: запись на большей скорости, воспроизведение на меньшей.

Рис. 2

Если слишком мала амплитуда сигналов на линейном выходе магнитофона, можно попытаться воспользоваться гнездом для подключения наушников. Амплитуду импульсов на выходе - 0,5 В устанавливают ручкой громкости (для этого лучше всего воспользоваться осциллографом). Манипулируя ручками тембра, нужно отыскать такое положение, когда форма импульсов будет наиболее близка к прямоугольной.

И наконец, ещё несколько советов, как хранить программы. Прежде всего, кассет должно быть несколько, даже если у вас пока что всего около десятка программ. Одну из кассет выделяют под запись программ в машинных кодах, другую - для программ на Бейсике-MSX, третью - для Форт-программ или для программы на Т-языке. Одну из кассет выделяют под разработку новых программ. Можно завести специальную архивную кассету, куда записывать по одному дублю каждой программы, чтобы исключить возможность её утраты. Чтобы реже регулировать положение головки, имеет смысл завести специальную обменную кассету для записи программ на других магнитофонах, с которой затем переписывать новые программы на свои кассеты в стандартном положении головки.

Каждую программу нужно записывать, как минимум, дважды. Возможны два варианта, впрочем, оба они не лишены недостатков. Можно записывать дубли подряд, но тогда трудно будет находить нужную программу на ленте, если магнитофон не имеет счётчика. Другой способ - записывать один дубль с каждой стороны кассеты и, тотчас же перевернув кассету, - второй дубль. В этом случае программы располагаются компактно, но механическое повреждение ленты почти наверняка повредит оба дубля. Можно предложить ещё немало приёмов: например, записывать после каждой программы серию тональных сигналов или проговаривать в микрофон название программы, чтобы легче было находить нужную. Впрочем, отыскать эти или свои собственные приёмы совсем несложно - всё зависит от вашей фантазии и настойчивости.

А. БОЙКО, Москва


Программная орбита

  1. МИРАЖ SZ/01-88 (С. Зильберштейн, г. Киров). Машинные коды. Это мини операционная система низкого уровня, состоящая из экранного ассемблера, дисассемблера, средств отладки и средств работы с файлами. Система предназначена для разработки небольших программ на ассемблере, модификации существующих кодовых программ, обучения программированию на уровне машинных команд БК-0010. Система «МИРАЖ» не занимает места в ОЗУ программ, поскольку она размещается в восьми нижних строках экрана.
  2. PRINTFOC (АСП, Москва). Машинные коды. Вывод из Фокала БК текстовой информации на принтер.
  3. GRAFFOC (АСП, Москва). Машинные коды. Вывод из Фокала БК графической информации на принтер.
  4. DRIVER (М. Сикорский, г. Сыктывкар). Машинные коды. Вывод из БК текстовой информации на принтер ROBOTRON СМ 6329.01-М.
  5. TRF-88 (А. Ромашевский, Минск). Демонстрационный текстовый редактор, позволяющий не только набирать и редактировать текстовую информацию, но и производить некоторые нестандартные операции, такие, как кодирование текста и его дешифровку.
  6. КЛАСС-ЭКЗАМЕНАТОР (А. Тихонов, г. Петропавловск-Камчатский). Операционная система, рассчитанная для работы в КУВТ-86, предназначенная для проверки знаний по курсу информатики с ориентацией на язык программирования Фокал БК-0010. Содержит 39 файлов на одном диске.
  7. GARDEN (АСП, Москва). Динамическая игра в машинных кодах. На фруктовый сад, в котором вырос богатый урожай, напали прожорливые чудовища. Необходимо как можно быстрее собрать все фрукты.
  8. LODE RUNNER (А. Марков, Ленинград). Динамическая игра в машинных кодах. Цель игры - пройти несколько лабиринтов, собирая клады и стараясь избежать опасных встреч с хранителями кладов. Надо умело расставлять ловушки, а за каждые десять кладов добавляется одна «жизнь». В отличие от большинства игровых программ предусмотрено редактирование лабиринтов и создание новых маршрутов, причём их можно записывать на магнитофон. Программа с музыкальными эффектами.
  9. MONEY (М. Бураке г. Ленинград) - на Фокале. Пакет из четырёх программ для ведения семейного бюджета. Программы наглядно показывают динамику, структуру и другие показатели экономики семьи.
  10. SLV-3 (М. Сикорский, г. Сыктывкар) - на Бейсике-MSX. Пакет из трёх программ для решения системы линейных уравнений обычным методом, методом Гаусса и методом вращения.

Не только цифровые...

Известно, что «Электроника БК-0010» способна управлять различными электрическими устройствами не только в быту, но и на производстве. Если устройства цифровые, то никаких сложностей не возникает. Другое дело, когда работать предстоит с аналоговыми сигналами; тут не обойтись без цифро-аналогового и аналого-цифрового преобразователя. Сделать эти устройства не так уж сложно, воспользовавшись опытом С. Камнева.

Простейший ЦАП для БК - это восемь резисторов (рис. 1). Напряжение на выходе ЦАП будет пропорционально числу, записанному в порт вывода. Например, если записать в порт число 128, которому соответствует двоичное число 10000000, то на линиях 0-6 появится напряжение 4-5 В, а на линии 7 напряжение будет отсутствовать. Суммарное напряжение на выходе схемы окажется равным 2,5 В. Засылая в порт вывода числа от 0 до 255, можно регулировать напряжение на выходе ЦАП от 5 до 3 В. Качество работы преобразователя определяется тем, насколько точно подобраны резисторы R2 - R8; особенно важно, чтобы выполнялось соотношение Rn=2* Rn-1

Рис. 1

 

1.1 S V=128;S А=V;F K=,7;Х FX(-1,177714,V);S A=A/2;S V=V+ 2*A*F P(,1)-A

Рис. 2

 

10246

12700

200

10002

110037

177714

6202

1410

32737

1

177714

1402

60200

766

160200

764

32737

1

177714

1002

5300

12602

 

 

Рис. 3

 

Аналого-цифровой преобразователь - это тот же ЦАП, дополненный ячейкой сравнения: транзисторы V1-V4, резисторы R9 и R10 (рис. 1). Вход А подключают к любому контакту разъёма, где есть напряжение 4-5 В. Принцип работы схемы несложен: если напряжение на входе АЦП меньше, чем на выходе ЦАП, то транзисторы V2-V4 открываются и в порт ввода поступает «1», в противном случае - «0». Изменяя напряжение на выходе ЦАП, компьютер сравнивает его со входным напряжением до тех пор, пока они не станут равными. Число от 0 до 255, записанное к этому моменту 8 порт вывода, соответствует измеряемому напряжению. Программное обеспечение АЦП - одна строка на Фокале (рис. 2).

Результат работы программы - число V, соответствующее входному напряжению. Алгоритм измерений напоминает алгоритм решения уравнения методом половинного деления. Все восемь циклов, необходимых для получения результата, БК выполняет за полсекунды. Если такое быстродействие окажется недостаточным, можно воспользоваться аналогичной программой в машинных кодах (рис. 3). Результат измерений записывается в регистр R0. БК с такой программой может работать как осциллограф, если только частота исследуемого сигнала не превышает 100 Гц. Изображение сигнала в этом случае выводится на экран телевизора в любом удобном масштабе. Для измерений такой осциллограф вряд ли пригодится - величина V изменяется от 25 до 235, что соответствует напряжению от 5 до 0 В. Впрочем, для измерения больших напряжений схему можно дополнить резисторным делителем, причём переключение диапазонов - задача, доступная для компьютера.

Есть у АЦП - ЦАП ещё одно интересное применение: подключив к АЦП переменный резистор Rn, получим превосходную «ручку управления», или «руль», для различных игровых программ. В отличие от обычного джойстика таким АЦП-джойстиком можно задавать не только направление, но и скорость перемещения.

С. КАМНЕВ, Москва


Плёночные переключатели

Пожалуй, ни одно электронное устройство не обходится без каких-либо кнопок или переключателей. Стоит взглянуть на них, чтобы убедиться, что подавляющее большинство - это довольно сложные конструкции, состоящие из нескольких отдельных элементов, а значит, кроме изготовления этих элементов нужно предусмотреть ещё и сборку. Каждый элемент и каждая операция таят в себе какую-либо причину будущих отказов. И, как это часто бывает, из-за поломки какой-то одной клавиши нельзя в нужный момент воспользоваться, например, тем же компьютером. В то же время в компьютере может быть 40, а то и 60 одинаковых по конструкции клавиш.

Разработчики новых клавиатур руководствовались, по-видимому, известной в микроэлектронике интегральной технологией, когда при одновременном изготовлении устройства из типовых элементов надёжность всего устройства практически не отличается от надёжности одного элемента. Так появились плёночные переключатели, успешно работающие в пультах управления различными устройствами на производстве и в быту.

Небольшая западногерманская фирма «Клемм» - один из крупнейших производителей печатного оборудования, на котором изготавливаются разнообразные плёночные переключатели. Все операции осуществляются на линии из нескольких станков, с которой сходят уже полностью готовые к эксплуатации клавиатуры, напри мер такие, как те, что изображены на фото. Можно печатать клавиатуры двух типов: многослойные и однослойные. Что же такое плёночные переключатели? Это напылённые на пластик контактные площадки и дорожки соединительных проводников. Дорожки покрывают лаком, чтобы исключить неправильные соединения.

Изолятором между контактами зачастую служит воздушное пространство, образовавшееся из-за того, что в верхней пластине выдавили некоторое подобие клавиш. Нажимая на такую клавишу, мы деформируем пластик и замыкаем цепь. Упругие свойства пластика таковы, что без каких-либо пружин он принимает исходное положение и может выдерживать сотни тысяч и более нажатий.

Иногда клавиатуру делают плоской; тогда, чтобы обеспечить изолирующий зазор, между контактными пластинами прокладывают пластиковую пластину с отверстиями. В этом случае можно обойтись даже без изолирующего лака. Кстати, именно по такому принципу сделана клавиатура для БК, показанная на фото. В отличие от той, что используется в БК сейчас, новая клавиатура не содержит ни одного паяного соединения, её подключают к компьютеру с помощью специального разъёма. Кстати, точно такая клавиатура стоит на детской электронной игрушке «Луноход» - сломать её очень трудно.

Можно спорить, будут ли по такому принципу делать все компьютерные клавиатуры; многие считают, что для ЭВМ необходима клавиатура с большим ходом клавиш, как на пишущей машинке. Но в калькуляторах, телефонных аппаратах и в промышленной электронике, где нужно заботиться, например, о том, чтобы защитить устройство от грязи, пыли, влаги (а плёночную клавиатуру можно мыть), такая клавиатура вскоре, несомненно, «приживётся».

А. БОРИСОВ, Москва


Супер-Фокал, или Фонд БК

Создавать программы для БК было бы гораздо проще, если бы в Фокале или Бейсике существовали подпрограммы типа фортрановских процедур. Программа Фонд, о которой пойдёт рассказ, реализует эту идею. Загруженный в память БК, Фонд существенно расширяет возможности Фокала: позволяет увеличить скорость и одновременно повысить точность арифметических вычислений, с его помощью можно обращаться к подпрограммам, составленным на Фокале или в машинных кодах. Фонд занимает в памяти 4,5 К, но этот расход многократно окупается теми возможностями, которые получает программист. Но для того, чтобы Фонд стал по-настоящему мощной системой программирование, необходимы общие усилия всех программистов, работающих с БК. Программу Фонд и подпрограммы, которые уже собраны, можно получить у членов московского клуба БК (см. заметку о нём в этом номере), там же предполагается накапливать новые подпрограммы, созданные всеми программистами, которые бы хотели принять участие в этой интересной и полезной работе.

Разговор о Фонде лучше всего начать с небольшой разминки - решить квадратное уравнение, классический пример пособия по программированию. Разумеется, нам понадобится подпрограмма решения такого уравнения, она существует, и её можно считать с магнитофона оператором L CALL FSQRT. Нетрудно догадаться, что FSQRT - подпрограмма, CALL - новый оператор Фокала для вызова подпрограмм (можно просто С). Подпрограмма автоматически записывается на свободное место в памяти, а её данные направляются в таблицу подпрограмм. Теперь к ней можно обратиться ещё одним новым оператором JSR (можно просто J). Чтобы решить квадратное уравнение Ах2+Вх+С=0, достаточно теперь выполнить один оператор J FSQRT (А, В, С,/ X1, Х2). Переменные X1 и Х2 при этом примут значения корней, вычисленные с точностью до девяти знаков. Программы, составленные на основе возможностей, представленных Фондом, легко читаются.

1.10 J FSQRT (V, 5.5, С-4,/Р,РР)
1.20 Y=P; ZT; V=PP; ZT 

Первая строка решает квадратное уравнение Vx2+5,5х+С=4, во второй встречаются ещё два оператора Фонда. Это Y - оператор вычисления арифметического выражения и ZT - оператор вывода результата вычислений на экран. Эти операторы аналогичны операторам X и Т Фокала, но работают с числами, содержащими девять десятичных разрядов. Подпрограмму, которая более не нужна, легко удалить из памяти командой L Е, ИМЯ, причём остальные программы сдвинутся так, чтобы передать освободившееся место свободной части ОЗУ. С той же лёгкостью включаются в программу и более сложные блоки, например вычисления интегрального синуса.

Y=1+FINT(0,2,1Е-8,"YX,=FS(X)/X",/J,E);ZT

Число 0 и 2 - пределы интегрирования, 1Е-8 - требуемая погрешность вычисления интеграла. Подынтегральная функция оказалась простой, поэтому она записана среди параметров подпрограммы (выделена кавычками). Значение синуса вычисляет функция Фонда FS(X), которая отличается от аналогичной функции Фокала только лишь большей точностью. Результат вычисления хранится в памяти, как значение переменной J, а Е - вычисленная оценка погрешности вычислений. Столь короткое обращение позволяет вставлять процедуру интегрирования в любое арифметическое выражение.

Если подобных подпрограмм будет достаточно много, то на долю медленного Фокала останется лишь роль обрамления - своеобразного «связующего раствора» для «кирпичиков» - подпрограмм. С помощью Фонда можно, например, реализовать любые операторы любой версии Бейсика. Но в отличие от настоящего Бейсика такой супер Фокал не занимает память постоянно, необходимые подпрограммы загружают лишь тогда, когда они будут использованы в данной конкретной программе.

Впрочем, потенциальные возможности Фонда гораздо шире, чем у любого штатного Бейсика. Интересы, например, подпрограммы, позволяющие включать в Фокал-программу одноголосые мелодии или эффекты, имитирующие вой сирены или хлопок выстрела. Подпрограмма FTITR (X, Y, MX, М, Y, «ТЕКСТ») выведет на экран произвольный текст, но буквы будут увеличены по горизонтали и вертикали в MX и MY раз. Созданные в графическом редакторе кадры мультипликации также можно включить в программу на Фокале с помощью подпрограммы Фонда. А рисунки, в свою очередь, нетрудно оформить, как новые подпрограммы Фонда: шрифты, математические символы, знаки дорожного движения, элементы радиосхем.

Хотя простейшие подпрограммы создаются непосредственно на Фокале, эффективными будут подпрограммы в кодах. И, конечно, не хотелось бы лишний раз изобретать велосипед - хорошо бы использовать для создания Фонда множество алгоритмов, накопленных, например, для Фортрана. Кстати, в Фонде уже сейчас предусмотрены некоторые средства, облегчающие ручной перевод процедур Фортрана на машинный язык БК-0010.

Г. ПРИС,
Москва


Устранение «дребезга клавиш» у БК

Всякому пользователю БК-0010.01 с полноходовой клавиатурой хорошо известно такое неприятное явление, как «дребезг клавиш»: при нажатии на клавишу вместо одного символа на экране дисплея появляются два и больше, или вместо нужного символа появляется совсем другой. Идею устранения этого недостатка подсказал автору С.И. Следнев, известный среди пользователей БК-0010 энтузиаст-любитель. Будем надеяться, что ей воспользуются не только обладатели БК, но и завод-изготовитель.

Суть предлагаемого решения в том, что следует внести небольшое изменение в схему БК-0010.01, обеспечивающее снижение быстродействия клавиатуры: поставить вместо R3 и R4 (см. рис.) сопротивления по 180 кОм, ёмкость конденсатора С3 увеличить до 0,33 мкФ, а ёмкость С4 - до 0,47 мкФ.

Так как эта работа связана со вскрытием корпуса компьютера, то будет лучше, если её выполнит специалист ремонтного предприятия в порядке технического обслуживания; впрочем, она по силам любому, имеющему навык работы с паяльником.

Нетрудно устранить и неприятные щелчки и заедания клавиатуры. Для этого рекомендуется сделать следующее:

Если осуществить все вышеописанное, то «дребезг клавиш» исчезнет навсегда.

Автор желает заинтересованным читателям успешно справиться с описанными переделками и тем самым обеспечить себе нормальную работу на БК-0010.01.

А. Гриценко,
 зав. кабинетом ОИВТ Алтайского КИУУ

Performed by © gid, 2012-2022.