«ЭЛЕКТРОНИКА БК-0010»: ДВА ГОДА СПУСТЯ

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

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

И всё же человек, покупающий «БК», получает компьютер практически «голым». Отдельно кассеты с программами тоже не продаются.

Тем не менее за два года среди любителей распространилось довольно много программ, из них несколько системных: «Быстрый Бейсик» (Вильнюс), «Адаптация Бейсика ДВК-1» (Москва). Эти две программы позволяют компьютеру понимать Бейсик. О них рассказывалось в № 10 «Науки и жизни» за 1986 год. «Система Рига» разработана специально с учётом нужд школьной информатики. Она особенно удобна для создания всевозможных обучающих программ.

Ещё две программы, необходимые всем, кто программирует на «БК» в машинных кодах или хочет разобраться, как устроены и как работают программы, находящиеся в постоянной памяти компьютера,-- это «Отладчик» и «Дисассемблер». «Отладчик для программ в машинном коде» (Рига) позволяет выполнять программу пошагово, команда за командой, выдавать на экран и менять содержимое памяти и т.д. «Дисассемблер» (Москва) умеет расшифровывать машинные команды, хранящиеся в памяти «БК» в двоичном коде, и изображать их на экране.

«Фокод» (Москва) позволяет вызывать из Фокала, встроенного языка программирования «БК», подпрограммы в машинном коде. Используя «Фокод», можно сочетать простоту программирования на Фокале с высокой скоростью, характерной для использования машинного языка.

Кроме того, существует довольно много игровых программ для «БК», например, «Шахматы», «Поиск сокровищ в лабиринте», экономическая игра «Менеджмент» из книги Ч. Уэзерелла «Этюды для программистов», «Реверси» и «Ним» из книги М. Гарднера «Математические головоломки и развлечения».

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

«БК-0010» способен играть в шахматы и демонстрировать ход партии, писать на экране тексты из любых символов, нарисовать перспективное изображение предметов заданной формы.

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

М. МАКСИМОВ (г. Москва).

 


 

ГОЛОС ДОМАШНЕГО КОМПЬЮТЕРА

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

Такую простую ЭВМ, как «БК-0010», оказывается, тоже можно научить «говорить» и «музицировать», притом вовсе не прибегая к дополнительным устройствам.

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

В «БК» есть пьезодинамик. Его мембрана отклоняется при поступлении каждого бита в одни из разрядов выходного регистра, через который данные поступают в магнитофон. Для программистов замечу, что это шестой разряд ячейки с адресом 177716.

Для получения музыкальной ноты надо строго периодически (например, 500 раз в секунду) подавать на этот разряд чередующиеся нули и единицы. Тогда мембрана колеблется с той же частотой, и раздаётся звук. Его высоту можно менять, изменяя частоту, с какой подаются сигналы, - иными словами, задерживая паузы между их поступлениями. Правда, чистый тон так не получится, ведь колебания электротока в проводниках компьютера не синусоидальные, а прямоугольные.

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

012767

000100

176652

036727

176704

000100

001374

016700

176640

012701

001100

122100

001403

105721

001374

000763

000451

010103

012767

000100

176644

077301

010103

012767

000000

176632

077301

036727

176624

000100

001762

000743

177506

170103

161531

153125

145127

137501

132105

125120

120116

113522

107507

103517

077514

074135

070504

065532

062526

057534

055072

052456

050010

045437

043422

041433

037436

000000

005046

111116

012601

000723

000000

000000

 

К сожалению, на клавиатуре «БК-0010» в один ряд могут поместиться только две октавы, так как в ряду всего 15 клавиш. В моей программе основным нотам соответствуют клавиши третьего снизу ряда. Если у ноты есть бемоль, он расположен прямо над нею, диез же - правее бемоля по диагонали от основной ноты.

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

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

Практическое использование речевых возможностей «БК-0010» может быть различным: игры, обучающие программы, телефонный автоответчик и многое другое.

Введите программу в компьютер с 1000-го адреса и запишите ее на магнитофон. Запустите программу по команде 1000G. Пьезодатчик компьютера очень слаб, поэтому не отключайте магнитофон. Нажмите клавиши «Пауза», «Пуск», «Запись», и магнитофон превратится в усилитель. Отрегулируйте громкость, и в вашей квартире появится новый электромузыкальный инструмент!

П. КОНОПЛЕВ (г. Москва).


 

ТАЙМЕРНАЯ ФУНКЦИЯ

Работая с «БК-0010», я столкнулся с необходимостью определять временные интервалы. Покопавшись в компьютере, я обнаружил, что он может одновременно решать задачу и отсчитывать время. Есть в нём для этого и специальная функция FCLK(), которая, как ни странно, не описана в справочных материалах по компьютеру, хотя и очень полезна

Чтобы использовать эту функцию, к компьютеру нужно подключить генератор импульсов с напряжением 5 Вольт (вход А5 на левом разъёме). Лучше, если частота импульсов будет 50 или 100 Гц, однако для более точного определения времени частоту можно поднять до килогерца или выше. Я подключаю к «БК» самодельный генератор (см. рисунок); питание он получает от компьютера.

При работе «БК» будет отсчитывать импульсы, а их количество можно узнать, обращаясь к функции FCLK() Решению основной задачи это не помешает: компьютер запоминает текущее состояние исходной задачи, выполняя функцию FCLK(). затем он восстанавливает исходное состояние и продолжает решать основную задачу. Говорят, что таймерное устройство «БК» работает по прерыванию.

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

10.10 Т '"ВКЛЮЧИТЕ ВАШ ТАЙМЕР,ЗАСЕКИТЕ ВРЕМЯ В 30 СЕК. И НАЖМИТЕ 'ВВОД'
10.20 Т !"ПО ИСТЕЧЕНИИ ЭТОГО СРОКА НАЖМИТЕ 'ПРОБЕЛ'
10.30 X FCHR(-1);S T1=FCLK()
10.40 I (FХ(1,177662)-13) 10.5,10.4,10.5
10.50 S T2=FCLK();S R=(T2-T1)/30
10.60 T "ВАШ ТАЙМЕР РАБОТАЕТ С ЧАСТОТОЙ ",%5.1," Гц."!
10.70 G

А. БАТЮК (г. Москва).


 

УЗЕЛКИ НА ПАМЯТЬ

Речь пойдёт об операторе ASK, который предназначен в Фокале для ввода данных с клавиатуры в ходе выполнения программы.

Оказалось, что возможности этого оператора гораздо шире, чем описано в руководстве.

В. Крипа (г. Конотоп) сообщает, что если при вводе, набрав число, нажать клавишу ВВОД, то следующий вопрос появится на новой строке, то есть вводимые числа будут располагаться в столбик. Напротив, следующее число останется в той же строке, если нажать одну из трёх клавиш.

ПРОБЕЛ

,

;

А. Николаев (г. Челябинск). Большое неудобство при вводе чисел по ASK доставляют ошибки ввода. Клавиши редактирования →, ← и другие помочь не могут. Однако, если после ошибочно введённого символа нажать клавишу ЗБ-, то Фокал позволит исправить число. На экране появятся символы -:. Останется только набрать правильное значение переменной.

А. Давыдов (г. Москва). Иногда нужно сохранить текущее значение переменной, а уже введены несколько цифр. Не заметить их машине поможет команда.

@

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

 

Performed by © gid, 2012-2022.