Аудиокнига 2 |
Главная / ЭКВМ / Программы для ЭКВМ / Прикладные задачи |
Возможности встроенного динамика ЭКВМ не позволяют выводить речь в приемлемом качестве. Тем не менее, основная цель использования аудиокниг - получение печатной информации по звуковому каналу - может быть достигнута путём кодирования символов азбукой Морзе.
Литературное произведение или передаваемый текст предварительно требуется перенести в электронный блокнот ЭКВМ в формате программы вывода текста на графический индикатор. Для этого можно использовать и программу txt2mkt, которая разбивает исходный текст на ряд файлов формата MKT и MKN. Для запуска программы выполнить команды В/О и С/П. Если при запуске в RX записан ноль, то чтение аудиокниги будет происходить с начала блокнота. Одновременно будут сброшены установленные пользователем значения темпа чтения и частоты сигнала. Если при запуске в RX содержится отличное от нуля значение, то передача текста продолжится с места останова. При этом возможно повторение нескольких символов, расположенных в последней считанной группе записи блокнота. Для восстановления точки останова в случае ошибочного запуска рекомендуется оставлять закладку: после останова сохранять содержимое R4 в одном из неиспользуемых регистров. При накоплении данных о соответствии номеров групп блокнота началам разделов возможна подготовка содержания часто используемых книг в электронном виде. Сохранение этих данных позволит впоследствии быстро найти требуемый раздел или избранный участок текста. Во время прослушивания книги доступно оперативное изменение темпа передачи. Это позволяет быстро пролистывать ненужные участки текста или внимательно разбирать сложные места, подбирая скорость выдачи информации к индивидуальным потребностям и возможностям пользователя. Возможно также изменение высоты тона, что позволяет отстраивать частоту сигнала от внешних помех. Клавиши ВВЕРХ и ВНИЗ соответственно увеличивают или уменьшают скорость передачи. Клавиши ВЛЕВО и ВПРАВО увеличивают или уменьшают частоту звукового сигнала. Для обработки нажатия клавиш применена система прерываний. Для увеличения громкости звука допускается подключение внешнего усилителя, для этого используется сигнал FOUT разъёма ВУ ЭКВМ. Клавиша ВВОД позволяет отключить или включить управление линией выхода параллельного порта. Таким образом можно отключить ЭКВМ от управления ключом, опуская ненужные участки текста при передаче. При запуске программы управление включено. Клавиша ВЫХОД позволяет корректно завершить работу программы, закончив передачу группы символов и отключив порт, звук и прерывания. Для немедленного завершения работы программы можно нажать клавишу "С/П", но на выход порта при этом может продолжить подаваться сигнал. В этом случае следует отключить порт вручную командой "0 РР П 9090" или выключить питание ЭКВМ. Стартовое значение темпа передачи расположено по адресу 0005, значение частоты сигнала по адресам 0008-0011. Изменение записанных по умолчанию значений позволит настроить программу на нужные индивидуальные параметры, что значительно повысит удобство работы с аудиокнигами. Для тренировки к программе прилагается файл pangram.mkn, состоящий из нескольких панграмм. Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства. (KDE, Linux) Съев цельный кусочек аппетитного мяса доисторической южноафриканской белки, зеленый шершавый хамелеон щёлкнул хвостом. Ящерицы Туниса обложены феноменальными пошлинами на дизайн хвостов, визг ёжиков, экпорт чучел и постройку южных подъездов к дому. (http://www.nabroski.ru/pan.html) Южно-эфиопский грач увёл мышь за хобот на съезд ящериц. (http://www.paratype.ru/help/term/terms.asp?code=253) А также несколько фраз с сайта (http://www.artlebedev.ru/kovodstvo/sections/33/): Подъём с затонувшего эсминца легко бьющейся древнегреческой амфоры сопряжён с техническими трудностями. Автор — Андрей Николаев (Легостаев) Завершён ежегодный съезд эрудированных школьников, мечтающих глубоко проникнуть в тайны физических явлений и химических реакций. Автор — Андрей Николаев (Легостаев) Государев указ: душегубцев да шваль всякую высечь, да калёным железом по щекам этих физиономий съездить! Автор — Ольга Корженевская. БУКВОПЕЧАТАЮЩЕЙ СВЯЗИ НУЖНЫ ХОРОШИЕ Э/МАГНИТНЫЕ РЕЛЕ. ДАТЬ ЦИФРЫ (1234567890+= .?-) Предложение, которое выдает телеграфный аппарат F-2000 при самотестировании. Программа "Аудиокнига 2"(КС 52266/180)
Текст для кросс-компилятора
.CHARSET 1251
; Программа позволяет прослушивать значительные объёмы текста путём генерации кодов азбуки Морзе
; Текст - из блокнота ЭКВМ
; Версия 1.2
; Вывод текста на индикатор
; Управление AUTOFEED
;R4 - указатель на группу записи 0-16383
;R5-R8 используются п/п ZAP
;R20 - длительность точки (используется в прерывании)
;R21 - частота звука (используется в прерывании)
;R23 - флаг выхода
;RA - счётчик для вывода очередной строки текста v1.2
;RC - временное хранение очередного символа
; Вход с RX=0 - с начала, иначе - продолжить чтение
.ORG 0 F X=0 Z0
CX M4 M5
6 PM 20
1500 PM 21
Z0: CX
MA ; v1.2
P M 23 ; флаг выхода
1 PP M 9090 ; установить статический режим порта
2 PP M 9010 ; очистка экрана
56 ENT 0
PP M 9000 ; координаты
; установить прерывание клавиатуры
ENT
1
PP M 9148 ; Сброс прерываний
.NUM KLAVA
ENT
1
PP M 9131
PP M 9153 ; Нажатие на кнопку клавиатуры
PP M 9130 ; Разрешение прерываний
Z1: RM4
16364 -
P X<0 Z2 ; блокнот окончен
P RM 23
P X=0 Z2 ; флаг выхода
RM4
PP M 9060
PP RM 9061
P GSB ZAP
P X=0 Z2
PP RM 9062
P GSB ZAP
P X=0 Z2
PP RM 9063
P GSB ZAP
P X=0 Z2
PP RM 9064
P GSB ZAP
KRM4
P GOTO Z1
Z2: 15 PP M 9092 ; выключить реле
CX PP M 9090 ; запретить использование порта
0 ENT 0
PP M 9052 ; выключить звук
PP M 9130 ; запретить прерывания
R/S ; выход из программы
;------------------ подпрограмма - вывод 4-х символов из RX (группы записи блокнота)
; использован алгоритм из программы чтения книг Л.Кушнарёвой
ZAP: ENT
ENT
9
F 10^X
/
K INT
M5
9
F 10^X
*
-
ENT
ENT
6
F 10^X
/
K INT
M6
6
F 10^X
*
-
ENT
ENT
3
F 10^X
/
K INT
M7
3
F 10^X
*
-
ENT
ENT
M8
;------------------- посимвольный вывод
RM5
P GSB SIM
P X=0 QSIM1
RM6
P GSB SIM
P X=0 QSIM1
RM7
P GSB SIM
P X=0 QSIM1
RM8
P GSB SIM
P X=0 QSIM1
0
RTN
QSIM1: 1
RTN
;------------------ подпрограмма - вывод символа из RX
SIM: MC
PP M 9020 ; v1.2 - вывод символа
K GRPH
RMA 1 + MA
24 -
F X>=0 SIM1
1 PP M 9007 ; прокрутка вверх
56 ENT 0
PP M 9000 ; координаты вывода
CX
MA ; очистка счётчика
SIM1: RMC
P X!=0 QUIT1 ; Конец текста
33
-
P X>=0 PROBEL ; код символа меньше или равен 32 - пауза 5-7 точек
RMC
176
-
F X<0 A1
RMC
33
-
2
*
.NUM S_33 ; код от 33 до 175
+
P GOTO SIGNAL ; генерация сигнала с адреса в RX
A1: ; код больше 175
48
- ; итого 224
P X>=0 QUIT0 ; код от 176 до 223
18
- ; итого 242
P X<0 QUIT1 ; код больше или равен 242 - выход
RMC
224
-
2
*
.NUM S_224 ; код от 224 до 223
+
; генерация сигнала с адреса в RX
SIGNAL: PP M 9042
PP RM 9044
EE 2
PP RM 9044
+
PP M 9042
SIGN1: PP RM 9044
P X!=0 SIGN4 ; если 0
1
-
P X=0 SIGN2 ; если 2
5
PP M 9092 ; включить реле 1 - v1.2
P RM 21
P RM 20
P GSB ZVUK
7
PP M 9092 ; отключить реле 1
P GOTO SIGN3
SIGN2: 5
PP M 9092 ; включить реле 1
P RM 21
P RM 20
3
*
P GSB ZVUK
7
PP M 9092 ; отключить реле 1
SIGN3: 0
P RM 20
P GSB ZVUK
P GOTO SIGN1
SIGN4: 0
P RM 20
3 ; пауза 3 точки
*
P GSB ZVUK
QUIT0: 0
RTN ; следующий символ - выход из п/п 0
PROBEL: 0
P RM 20
7 ; 5-7 точек
*
GSB ZVUK
P GOTO QUIT0 ; следующий символ
;----------------
ZVUK: PP M 9052
ZV1: PP RM 9052
F X=0 ZV1
RTN
;----------------
QUIT1: 1
RTN ; конец текста - выход из п/п 1
;--------------------------------------
; прерывание клавиатуры
KLAVA: PP RM 9042
MD ; сохранить значение
.NUM TKLAVA
PP M 9042
PP RM 9029
PP M 9213
P X>=0 KLAVAE
MB
RMD
PP M 9042 ; восстановить значение
K GOTO B ; перейти по адресу
KLVVOD: PP RM 9090
P X=0 KLVVOD1
1 PP M 9090 ; разрешить порт, статический режим
PP RTN
KLVVOD1:
CX PP M 9090 ; запретить использование параллельного порта
PP RTN
KLVYH: 1
PM 23 ; установить флаг выхода
PP RTN
KLVYBR: PRM 21 ; вправо - увеличить частоту звука
100
+
PM 21
PP RTN
KLVYBL: PRM 21 ; влево - уменьшить частоту звука
100
-
PM 21
PP RTN
KLVYBU: PRM 20 ; вверх - увеличить темп
1
-
PM 20
PP RTN
KLVYBD: PRM 20 ; вниз - уменьшить темп
1
+
PM 20
KLAVAE: PP RTN
TKLAVA: .DB 32
.DA KLVYH
.DB 33
.DA KLVVOD
.DB 34
.DA KLVYBR
.DB 35
.DA KLVYBL
.DB 36
.DA KLVYBU
.DB 37
.DA KLVYBD
.DB 255 ; конец таблицы
;---------------------------------------
;Таблица символов(от 33) - ссылка на код
S_33: .DD K_33 ; 33 восклицательный знак
.DD K_34 ; 34 кавычки
.DD K_0 ; 35 #
.DD K_0 ; 36 $
.DD K_0 ; 37 %
.DD K_0 ; 38 &
.DD K_39 ; 39 '
.DD K_40 ; 40 (
.DD K_40 ; 41 )
.DD K_0 ; 42 *
.DD K_0 ; 43 +
.DD K_44 ; 44 запятая
.DD K_45 ; 45 минус
.DD K_46 ; 46 точка
.DD K_47 ; 47 /
.DD K_48 ; 48 0
.DD K_49 ; 49 1
.DD K_50 ; 50 2
.DD K_51 ; 51 3
.DD K_52 ; 52 4
.DD K_53 ; 53 5
.DD K_54 ; 54 6
.DD K_55 ; 55 7
.DD K_56 ; 56 8
.DD K_57 ; 57 9
.DD K_58 ; 58 двоеточие
.DD K_59 ; 59 точка с запятой
.DD K_40 ; 60 <
.DD K_0 ; 61 =
.DD K_40 ; 62 >
.DD K_63 ; 63 вопросительный знак
.DD K_64 ; 64 @
.DD K_A ; 65 A
.DD K_B ; 66 B
.DD K_C ; 67 C
.DD K_D ; 68 D
.DD K_E ; 69 E
.DD K_F ; 70 F
.DD K_G ; 71 G
.DD K_H ; 72 H
.DD K_I ; 73 I
.DD K_J ; 74 J
.DD K_K ; 75 K
.DD K_L ; 76 L
.DD K_M ; 77 M
.DD K_N ; 78 N
.DD K_O ; 79 O
.DD K_P ; 80 P
.DD K_Q ; 81 Q
.DD K_R ; 82 R
.DD K_S ; 83 S
.DD K_T ; 84 T
.DD K_U ; 85 U
.DD K_V ; 86 V
.DD K_W ; 87 W
.DD K_X ; 88 X
.DD K_Y ; 89 Y
.DD K_Z ; 90 Z
.DD K_40 ; 91 [
.DD K_47 ; 92 \
.DD K_40 ; 93 ]
.DD K_0 ; 94 ^
.DD K_0 ; 95 _
.DD K_39 ; 96 `
.DD K_A ; 97 a
.DD K_B ; 98 b
.DD K_C ; 99 c
.DD K_D ; 100 d
.DD K_E ; 101 e
.DD K_F ; 102 f
.DD K_G ; 103 g
.DD K_H ; 104 h
.DD K_I ; 105 i
.DD K_J ; 106 j
.DD K_K ; 107 k
.DD K_L ; 108 l
.DD K_M ; 109 m
.DD K_N ; 110 n
.DD K_O ; 111 o
.DD K_P ; 112 p
.DD K_Q ; 113 q
.DD K_R ; 114 r
.DD K_S ; 115 s
.DD K_T ; 116 t
.DD K_U ; 117 u
.DD K_V ; 118 v
.DD K_W ; 119 w
.DD K_X ; 120 x
.DD K_Y ; 121 y
.DD K_Z ; 122 z
.DD K_40 ; 123 {
.DD K_124 ; 124 |
.DD K_40 ; 125 {
.DD K_0 ; 126 ~
.DD K_127 ; 127
.DD K_A ; 128 А
.DD K_B ; 129 Б
.DD K_W ; 130 В
.DD K_G ; 131 Г
.DD K_D ; 132 Д
.DD K_E ; 133 Е
.DD K_V ; 134 Ж
.DD K_Z ; 135 З
.DD K_I ; 136 И
.DD K_J ; 137 Й
.DD K_K ; 138 К
.DD K_L ; 139 Л
.DD K_M ; 140 М
.DD K_N ; 141 Н
.DD K_O ; 142 О
.DD K_P ; 143 П
.DD K_R ; 144 Р
.DD K_S ; 145 С
.DD K_T ; 146 Т
.DD K_U ; 147 У
.DD K_F ; 148 Ф
.DD K_H ; 149 Х
.DD K_C ; 150 Ц
.DD K_151 ; 151 Ч
.DD K_152 ; 152 Ш
.DD K_Q ; 153 Щ
.DD K_39 ; 154 Ъ
.DD K_Y ; 155 Ы
.DD K_X ; 156 Ь
.DD K_157 ; 157 Э
.DD K_158 ; 158 Ю
.DD K_159 ; 159 Я
.DD K_A ; 160 а
.DD K_B ; 161 б
.DD K_W ; 162 в
.DD K_G ; 163 г
.DD K_D ; 164 д
.DD K_E ; 165 е
.DD K_V ; 166 ж
.DD K_Z ; 167 з
.DD K_I ; 168 и
.DD K_J ; 169 й
.DD K_K ; 170 к
.DD K_L ; 171 л
.DD K_M ; 172 м
.DD K_N ; 173 н
.DD K_O ; 174 о
.DD K_P ; 175 п
S_224: .DD K_R ; 224 р
.DD K_S ; 225 с
.DD K_T ; 226 т
.DD K_U ; 227 у
.DD K_F ; 228 ф
.DD K_H ; 229 х
.DD K_C ; 230 ц
.DD K_151 ; 231 ч
.DD K_152 ; 232 ш
.DD K_Q ; 233 щ
.DD K_39 ; 234 ъ
.DD K_Y ; 235 ы
.DD K_X ; 236 ь
.DD K_157 ; 237 э
.DD K_158 ; 238 ю
.DD K_159 ; 239 я
.DD K_E ; 240 Ё
.DD K_E ; 241 ё
; Таблица сигналов 1-точка, 2-тире, 0-конец символа
K_0: 0 ; нет символа
K_33: 2211220 ; восклицательный знак
K_34: 1211210 ; кавычки "
K_39: 1222210 ; апостроф ' `
K_40: 2122120 ; скобки () <> [] {}
K_44: 1212120 ; запятая
K_45: 2111120 ; тире
K_46: 1111110 ; точка
K_47: 211210 ; /\
K_48: 222220 ; цифра 0
K_49: 122220 ; цифра 1
K_50: 112220 ; цифра 2
K_51: 111220 ; цифра 3
K_52: 111120 ; цифра 4
K_53: 111110 ; цифра 5
K_54: 211110 ; цифра 6
K_55: 221110 ; цифра 7
K_56: 222110 ; цифра 8
K_57: 222210 ; цифра 9
K_58: 2221110 ; двоеточие
K_59: 212120 ; точка с запятой
K_63: 1122110 ; вопросительный знак
K_64: 1221210 ; @
K_A: 120 ;A
K_B: 21110 ;B
K_C: 21210 ;C
K_D: 2110 ;D
K_E: 10 ;E
K_F: 11210 ;F
K_G: 2210 ;G
K_H: 11110 ;H
K_I: 110 ;I
K_J: 12220 ;J
K_K: 2120 ;K
K_L: 12110 ;L
K_M: 220 ;M
K_N: 210 ;N
K_O: 2220 ;O
K_P: 12210 ;P
K_Q: 22120 ;Q
K_R: 1210 ;R
K_S: 1110 ;S
K_T: 20 ;T
K_U: 1120 ;U
K_V: 11120 ;V
K_W: 1220 ;W
K_X: 21120 ;X
K_Y: 21220 ;Y
K_Z: 22110 ;Z
K_124: 211120 ; знак раздела
K_127: 111111110 ; ошибка перебой
K_151: 22210 ;Ч
K_152: 22220 ;Ш
K_157: 112110 ;Э
K_158: 11220 ;Ю
K_159: 12120 ;Я
.END
Файлы доступны для скачивания на странице с прикладными программами для ЭКВМ. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |