Аудиокнига 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 (многоканальный) |