И. БЛАКУНОВ (ex UQ2GKB),
228400, Латвия, г. Даугавпилс, ул. Страдниеку, 88-34.

Программа - генератор кода Морзе

Многие пользователи “фокальных” БК-0010 жалуются на низкое быстродействие и ограниченные возможности своих компьютеров.

Так, быстродействие на Фокале составляет около 100 оп/с. (для сравнения - на Бейсике - 600...800 оп./с., а быстродействие процессора - около 300000 оп./с.).

Версия Бейсика для БК-0010-01 позволяет использовать подпрограммы в машинных кодах для расширения возможностей программ. На Фокале операторы вызова подпрограмм в машинных кодах отсутствуют, что доставляет определённые неудобства пользователям. Между тем, этот недостаток можно легко устранить.

Таблица 1

176024

000000

035103

163200

165757

162357

100200

161200

030353

030460

107060

005000

012701

120020

012120

022701

120046

002374

012710

002050

012737

177777

000262

012737

037776

001744

012737

003000

001742

000137

121244

010546

016605

000002

022745

104016

001403

012605

000137

100112

022700

000003

103772

001415

022700

000001

103406

001365

012737

002340

000060

012605

000002

012737

101136

000060

000772

004437

110346

016700

000214

016705

000206

022700

000040

001443

012701

002362

120021

001413

105721

001374

042700

000240

120021

001405

105721

001374

004437

110362

000742

111100

022700

000001

103013

010502

006200

103002

006302

060502

004767

000040

010502

004767

000026

000762

010502

006302

004767

000014

000751

010502

006302

006302

060502

000770

005003

000402

012703

177716

012704

000200

012713

000100

077401

012704

000200

005013

077401

077212

 

 

 

 

 

 

 

 

052713

000200

000207

004437

110340

010546

013700

177662

000137

101150

000044

000101

015521

013776

017773

015775

022374

016340

015361

037460

037061

036062

034063

030064

020065

020466

021467

023470

027471

046077

071441

030455

065054

040056

025074

024457

043472

026473

064075

021076

000200

003101

010502

007127

005507

004504

001105

014126

011532

002111

017112

006513

011114

003515

002516

007517

013120

005122

004123

001524

006125

012106

010110

012503

016531

014530

000200

 

 

 

 

 

 

Приведённая программа, позволяет переводить коды заглавных русских и латинских букв, цифр и некоторых специальных знаков в код Морзе и выдавать на пьезодинамик компьютера. Обращение к программе возможно из Фокала с использованием стандартных операторов языка. Машинные коды программы приведены в таблице 1. Для ввода их в БК необходимо перейти из Фокала в МСД:

*Р Т<ВВОД>
+<РУС>ТС
$

Директивы МСД:

<АДРЕС><А> - установка текущего адреса;

<ЧИСЛО><,> - запись слова с автоувеличеним адреса на 2;

<А> - контроль текущего адреса;

<И> - чтение слова по адресу А;

<,> - чтение слова с автоувеличением адреса на 2.

Начальный адрес загрузки программы: 1752.

После набора текста программы запустите её директивой: $2000<ЛАТ>G

На экране появится приглашение Фокала:

Если теперь дать команду W<ВВОД>, то, вместо привычного Фокал БК-0010, появится Фокод БК-0010, что говорит о наличии нашей дополнительной подпрограммы - генератора кода Морзе. Проверить правильность набранной программы можно простой программой:

1.1 X FCHR(3);G

После запуска этой программы будет непрерывно выдаваться код буквы “А”. Если этого не происходит, необходимо снова выйти в МСД и проверить правильность набранной программы. (Выход в Фокод - 2000<ЛАТ>G).

Правильно набранную программу желательно записать на магнитофон командой L S ИМЯ<ВВОД>. При этом запишется и программа на Фокоде, и подпрограмма в кодах. При последующих загрузках с магнитофона командой L G ИМЯ <ВВОД>, необходимо инициализировать Фокод:

*Р Т<ВВОД>
+<РУС>ТС
$2000<ЛAT>G
*

Работа с программой несложна. Десятичный код символа заносится в ячейку с адресом 2360 командой X FX(-1,2360,КОД). Команда X FCHR (3) выдаёт этот символ в коде Морзе со скоростью, заданной в ячейке 2356 (чем больше содержимое этой ячейки, тем меньше скорость).

Команда X FCHR (1) - изменение адреса обработки прерываний от клавиатуры для исключения “пиканья” при нажатии на клавиши.

Команда X FCHR (2) - восстанавливает адрес обработки прерываний от клавиатуры.

Используя данную подпрограмму, можно создавать различные обучающие и тренировочные программы, автоматизировать работу в эфире. Реле, управляющее двигателем магнитофона, срабатывает в такт выдаче сигналов Морзе. Таким образом, манипуляцию передатчика можно производить, подключаясь непосредственно к гнезду МГ компьютера. Дизассемблировав подпрограмму Фокода, можно на её основе создавать любые другие, используя область адресов 2000 - 3000. Их вызов можно осуществлять командами X FCHR (N), где N=0...6.

Пример программы:

1.1 IF (FX(1,30)-1064)3.1,1.2,3.1; С проверка иниц. Фокода
1.2 D 4;Т!,"ПЕРЕДАЧА С КЛАВИАТУРЫ"
1.3 X FCHR(1); С маскир. звука клавиш
1.4 S K=FCHR(-l)
1.5 IF (К-13)1.6,2.1; С если нажат <ввод>, то 2.1
1.6 X FX(-1,2360,К); С ввод кода в п/программу
1.7 X FCHR(3); С выдача кода Морзе
1.8 G 1.4
2.1 X FCHR(2); Q; C размаскир.звука клавиш и выход
3.1 Т "Инициализируйте Фокод"; Q
4.1 А "Введите скорость", S
4.2 X FX(-1,2356,FITR(2200/S)) ; С ввод скорости передачи

Программа написана с использованием TURBO ассемблера А.М. Надежина и работает на БК 0010 и БК 0010-01 (с блоком МСТД). Объём требуемой памяти 566 Байт.

 

Performed by © gid, 2012-2024.