И снова «голос» домашнего компьютера

Прежде чем передать слово С. Ивашинникову, который предлагает простейшую, но довольно эффективную говорящую программу для БК, вернёмся к статье «Здравствуйте, говорит «Электроника БК-0010» А. Чистякова (см.: Информатика и образование. 1988. № 4). В тексте статьи допущена опечатка - вместо 1026А2000G должно быть 1026А2000И. Благодарим читателей, указавших на это.

Программу вводят в память БК с адреса 1000. Прежде чем запускать её, обнулите ячейки: 1110А36000Д0Р. Только теперь включите в режим записи магнитофон, подключённый к БК, и отрегулируйте уровень записи так, чтобы магнитофон хорошо работал с микрофоном. Запустив программу командой 1000G, продиктуйте как можно более чётко короткую фразу, например: «работает программа речевого синтезатора БК». Сразу же вслед за этим остановите исполнение программы, нажав клавишу СТОП. Всё готово, и командой 1044G можно запустить синтезатор. Фраза, которую мы только что начитали, начнёт повторяться до тех пор, пока вновь не будет нажата клавиша СТОП. Звук будет слышен и через пьезодинамик БК, но лучшего качества нетрудно добиться, подключив к БК тот же магнитофон. Память БК способна вместить и более длинные фразы, если разблокировать её клавишами НР/РП. Впрочем, есть возможность обменять время работы синтезатора на качество звучания. Для этого нужно исправить всего четыре команды: 1026А110420, 1040А110420, 1060АИ151004, 1070АИ152004.

12703 177716 12700 70 60700 12702 40 5004
5204 30213 1775 10420 5004 5204 30213 1375
10420 765 12700 30 60700 12737 100 177716
11004 77401 5037 177716 12004 77401 5710 1365
761 0 0 0        

Как же работает программа? Информация, считываемая с магнитофона, записывается в память БК словами (или байтами) с 1102 адреса, а затем последовательно за байтом воспроизводится.

С. ИВАШИННИКОВ,
г. Арсеньев, Приморский край


 

Радуга на экране БК

Счастливцы, которым удалось подключить свой компьютер к цветному телевизору, знают, что Бейсик позволяет распорядиться всего четырьмя различными цветами - красным, зелёным, синим и чёрным. Оператор PAINT Бейсика-МСХ позволяет окрасить в заданный цвет любую область экрана, ограниченную замкнутым контуром. В черно-белом варианте красный цвет выглядит белым, синий и зелёный - серым. Можно ли увеличить число цветов на экране, если архитектурой БК предопределено, что на задание цвета отводится два бита памяти? Если речь идёт о цвете окраски, то выход есть. Кировчанин С. Зильберштейн, автор известной программы X Фокал, предлагает получать на экране БК 16 различных цветовых оттенков программным способом.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если записать матрицу в цифровом виде (каждому цвету соответствует цифра от 1 до 4), то получится строчка - (4443, 4434, 4344, 3444). В развитых версиях Бейсика оператор PAINT позволяет указывать и матрицу раскрашивания. В Бейсике-БК такой возможности нет, но её можно ввести. Для этого служит программа PAINTM. Запустив её, вы модифицируете Бейсик так, что оператор PAINT будет воспринимать не только цвета от 1 до 4, но и от 5 до 16. При этом определения псевдоцветов 5-16, т.е. соответствующие матрицы раскраски, программист вводит с помощью операторов DEF. Формат оператора легко запомнить: DEF CN=(ЦЦЦЦ, ЦЦЦЦ, ЦЦЦЦ, ЦЦЦЦ). Здесь N - номер цвета раскраски (от 5 до 16), Ц - цвет отдельной точки (от 1 до 4).

 

10 ' ПРОГРАММА PAINTM SZ/08-88
20 ' (16-ЦВЕТНАЯ РАСКРАСКА)
30 ' 
100 DATA 5599,16222,28,9111,-21324,516
110 DATA 5623,-30696,60,265,9111,-21304
120 DATA 1017,9111,-21296,539,5623,-30694
130 DATA 40,6118,140,3039,192,783
140 DATA 4262,8599,304,-32252,5599,-1
150 DATA 140,-30457,17858,-4,26562,192
160 DATA -28001,140,5506,-30696,5535,140
170 DATA 2,95,-32694,95,-13052,11671
180 DATA 4,-13672,518,5585,16236,503
190 DATA 2591,192,92,9111,-21894,523
200 DATA 9622,-6720,5,3264,3264,26048
210 DATA 256,4127,192,2574,92,9111
220 DATA -13450,739,9622,-23337,67,513
230 DATA -30392,-30462,-23337,61,764,-30377
240 DATA -6715,5,3269,3269,26053,256
250 DATA 5606,3,2551,18,-30378,2766
260 DATA 7636,3030,2551,6,-30376,-30394
270 DATA 135,2598,5570,4,3214,3214
280 DATA -27452,-6716,52,2820,8471,3
290 DATA -32036,196,3204,3204,20750,32398
300 DATA 5508,-28395,135,0,0,0
400 CLEAR ,&O37400
410 FOR K=0 TO 250 STEP 2
420 READ CODE
430 POKE &O37400+K,CODE
440 NEXT
450 POKE &O30,&O37400
100 ' CIRCLE - СЕКТОРНАЯ ДИАГРАММА ДЛЯ В ВЕЛИЧИН
120 DEF C5=(3333,4444,3333,4444)
130 DEF C6=(3434,4343,3434,4343)
140 DEF C7=(3444,4444,4434,4444)
150 DEF C8=(4443,4434,4344,3444)
160 CLS
170 SUM=0
180 PRINT "ЗНАЧЕНИЯ:"
190 FOR K=1 TO 8
200 PRINT "V";MID$(STR$(K),2,2);
210 INPUT V(K)
220 SUM=SUM+V(K)
230 NEXT
240 R=100
250 A2=0.00001
260 FOR K=1 TO 8
270 A1=A2
280 A2=A2+2*PI*V(K)/SUM
290 CIRCLE (140,120),R,1,-A1,-A2,4/3
300 XP=R/2*COS((A1+A2)/2)
310 YP=-R/2*SIN((A1+A2)/2)
320 PAINT @(XP,YP),K,1
330 NEXT

 

Достаточно один раз запустить эту программу, чтобы модифицировать Бейсик до следующего включения питания. Программу, разумеется, можно стереть командой NEW. Сказанного вполне достаточно, чтобы самостоятельно проделать первые эксперименты с добавочными цветами, но всё же приведу ещё один пример. Программа CIRCLE определяет четыре дополнительных цвета и строит после ввода с клавиатуры восьми числовых значений раскрашенную в восемь цветов секторную диаграмму. Кстати, попробовать могут и владельцы черно-белого варианта - цветам с 5 по 8 соответствуют горизонтальная штриховка, мелкая сетка, отдельные точки и диагональная штриховка.

С. ЗИЛЬБЕРШТЕЙН, г. Киров

Программный способ, предложенный С. Зильберштейном, весьма интересен, но есть и иной вариант. Владельцы БК, знакомые не только с программированием, но и с радиотехникой, могут выбрать другой путь - усовершенствовать не Бейсик, а саму «Электронику БК». Доработка компьютера позволяет вместо четырёх фиксированных цветов - чёрного, красного, синего и зелёного - выбирать одну из 63 различных палитр. Каждая палитра - это набор из четырёх различных цветов, причём один из этих цветов обязательно чёрный, а три остальных - любые из семи цветов: белого, жёлтого, голубого, зелёного, фиолетового, красного и синего. Прежде чем взяться за паяльник, взвесьте свои силы - переделка достаточно сложная, кроме того, доработанный компьютер (и телевизор) уже не удастся сдать в ремонт. Тем, кто отважится на модернизацию своего БК, киевлянин В. Кондрашев предлагает опробованный им на практике способ.

Проще всего, «Электронику БК-0010» подготовить к работе с четырьмя основными цветами. Для этого на печатную плату устанавливают недостающие элементы - четыре транзистора КТ315, двенадцать резисторов и разъём ХТ11 - точно такой же, как ХТ9. Отверстия в плате под все элементы уже имеются, остаётся только правильно разместить детали и аккуратно припаять их выводы. Рисунок принципиальной схемы и фрагмент платы БК помогут избежать ошибки. Зелёным цветом на рисунке выделены новые элементы схемы. Чтобы получить цветное изображение на телевизоре, достаточно соединить кабелем разъём ХТ11 и входы видеоусилителей красного, синего и зелёного лучей.

Переделка достаточно проста, но так можно получить лишь четыре основных цвета. Для того чтобы расширить цветовую гамму, я разработал другой способ. Если запрограммировать постоянное запоминающее устройство - ПЗУ так, как показано в табл. 1, то вместо трёх цветов мы получим уже восемь. Цифра 0 в коде означает, что на усилитель подаётся сигнал, т.е. комбинация 001 соответствует тому, что сигнал подан на «зелёный» и «красный» входы - такое сочетание даст на экране жёлтый цвет. Таким образом, всё адресное пространство ПЗУ необходимо разделить на «палитры» (табл. 2). Требуемый цвет в палитре кодируется соответствующей цифрой - для этого используют 001, но последним кодом в каждой палитре должна быть цифра 7, соответствующая чёрному цвету. Когда составление табл. 2 будет завершено, информацию переносят в ПЗУ, как говорят радиолюбители, ПЗУ прошивают. Описание процесса прошивки достаточно известно, его нетрудно найти в радиолюбительской литературе, поэтому подробности я опускаю. Поясню работу схемы в целом. Для выбора палитры используются старшие шесть разрядов адреса. Эти разряды записываются в регистр управления - микросхема К555ТМ9 (рис. 3). Чтобы защитить регистр от случайных срабатываний, на микросхему К155ЛЕ1 поступает сигнал с 15 разряда магистрали процессора адрес/данные. Входы регистра управления подключены к 9-14 разрядам магистрали. Поскольку в регистр управления информация поступает прямо из магистрали, то записывается она инвертированной, а значит, и код палитры необходимо записывать в инверсном виде, например: код 177000(8) установит нулевую палитру, код 176000(8) - первую, а 175000(8) - вторую палитру. Код требуемой палитры записывают по адресу 177716(8). При включении питания автоматически происходит установка режима 0-палитры.

Таблица 1

8-ричное число

0

1

2

3

4

5

6

7

Вход видеоусилителя

Код на выходе ПЗУ К556РТ4 Номер выхода

1

0

1

0

1

0

1

0

1

синий

2

0

0

1

1

0

0

1

1

красный

3

0

0

0

0

1

1

1

1

зелёный

4

0

0

0

0

0

0

0

0

не нужен

Цвет на экране

белый

жёлтый

голубой

зелёный

фиолетовый

красный

синий

чёрный

 

 

Таблица 2

Палитра

Адрес

Код

Цвет

1

0

5

красный

1

3

зелёный

2

6

синий

3

7

чёрный

2

4

0

белый

5

0

белый

6

0

белый

7

7

чёрный

3

8

1

жёлтый

9

2

голубой

10

4

фиолетовый

11

7

чёрный

и т.д.

   

Несколько советов по практической части переделки. С основной печатной платы аккуратно удалите микросхему D20 К155ЛЕ1, обрежьте дорожки, ведущие к её выводам. На освободившееся место установите панельку для ПЗУ К556РТ4. От D20 осталось только 14 отверстий, поэтому два «лишних» вывода панельки осторожно отогните в стороны. Микросхему К555ТМ9 установите на свободное место, а микросхему К155ЛЕ1 рядом с ней, например так, как я сделал в своём компьютере. Три транзистора, резисторы и потенциометры, необходимые для регулировки яркости, устанавливают на свободные места. Соединения производите точно по схеме, обрезая все ненужные связи. На разъёме, к которому подключается телевизор, есть перемычка между контактами 3 и 5 - её удаляют и, отсоединив контакты 1, 3 и 5 от схемы, подключают их к выходам транзисторных формирователей. Перемычку R55-R56, которая находилась на разъёме, установите на плате. Для синхронизации можно воспользоваться сигналом черно-белого изображения, т.е. к телевизору подключаем 1, 3, 5 и 4 контакты разъёма ХТ9. Переделка достаточно сложная, но и результат не обманет ваших ожиданий!

 

Performed by © gid, 2012-2022.