<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_10-87%2F%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%22%D0%9C%D0%BE%D1%80%D0%B7%D0%B5-%D1%82%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80%22</id>
	<title>Радио-86РК/Радио 10-87/Программа &quot;Морзе-тренажер&quot; - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A%2F%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_10-87%2F%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%22%D0%9C%D0%BE%D1%80%D0%B7%D0%B5-%D1%82%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80%22"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_10-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%22%D0%9C%D0%BE%D1%80%D0%B7%D0%B5-%D1%82%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80%22&amp;action=history"/>
	<updated>2026-05-05T01:24:41Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_10-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%22%D0%9C%D0%BE%D1%80%D0%B7%D0%B5-%D1%82%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80%22&amp;diff=414&amp;oldid=prev</id>
		<title>Panther: retro.h1.ru</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE-86%D0%A0%D0%9A/%D0%A0%D0%B0%D0%B4%D0%B8%D0%BE_10-87/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%22%D0%9C%D0%BE%D1%80%D0%B7%D0%B5-%D1%82%D1%80%D0%B5%D0%BD%D0%B0%D0%B6%D0%B5%D1%80%22&amp;diff=414&amp;oldid=prev"/>
		<updated>2007-11-06T09:04:55Z</updated>

		<summary type="html">&lt;p&gt;retro.h1.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ДИ|Автор=Г. ИВАНОВ|Источник=http://retro.h1.ru/RK86/Morze/Morze.html}}&lt;br /&gt;
&lt;br /&gt;
Эта программа разработана для радиолюбительского компьютера «Радио-86РК» и предназначена для обучения радиотелеграфистов приему на слух. Она позволяет автоматически составлять тренировочные тексты из различных наборов цифр, букв латинского и русского алфавитов, специальных знаков. Тексты со скоростью от 25 до 150 знаков в минуту воспроизводит в звуке динамическая головка компьютера. Для работы с программой не требуется каких-либо дополнительных устройств или переделки компьютера. Все функции тренажера реализованы программно.&lt;br /&gt;
&lt;br /&gt;
Программа состоит из двух частей основной на языке Бейсик и подпрограммы в машинных кодах. Основная программа поддерживает диалог с пользователем, организует введение и составление тренировочных текстов, выбор режимов работы. Использование языка Бейсик для поддержания интерфейса с пользователем дает возможность гибко изменять порядок диалога и при необходимости дополнять его новыми возможностями.&lt;br /&gt;
&lt;br /&gt;
Наиболее критичный ко времени исполнения модуль генерации кода Морзе составлен на ассемблере и транслирован в машинные коды. Это позволило обеспечить широкий выбор скорости генерации кода Морзе и точное соотношение длительностей посылок (точек, тире, пауз). Текст подпрограммы генерации кода Морзе указан в табл.1. Входные параметры подпрограммы определяются символическими переменными СКОР и СИМВОЛ, точка входа — меткой МОРЗЕ. Перед обращением к подпрограмме МОРЗЕ в ячейку с адресом СКОР, заносится значение скорости передачи кода Морзе, а в ячейку СИМВОЛ — код воспроизводимого символа из таблицы КОИ-7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
						Таблица 1&lt;br /&gt;
;***********************************************************************&lt;br /&gt;
; ПРОГРАННА МОРЗЕ-КОДИРОВАНИЯ СИНВОЛОВ КОИ-7&lt;br /&gt;
; ЧАСТЬ ПРОГРАММЫ &amp;quot;МОРЗЕ - ТРЕНАЖЕР&amp;quot;&lt;br /&gt;
; ПОДПРОГРАММА ВСТРАИВАЕТСЯ ВНУТРЬ BASIC-ИНТЕРПРЕТАТОРА&lt;br /&gt;
;***********************************************************************&lt;br /&gt;
	ORG 	19ЕЕН 	; НАЧАЛЬНЫЙ АДРЕС ПОДПРОГРАММЫ&lt;br /&gt;
ЗВОНОК: EOU 	0FD27H 	; АДРЕС ПОДПРОГРАММЫ &amp;quot;ЗВОНОК* МОНИТОРА&lt;br /&gt;
ТОН: 	EQU 	15Н 	; КОНСТАНТА - ТОН ЗВУКА&lt;br /&gt;
СКОР: 	DS 	1 	; СКОРОСТЬ ПЕРЕДАЧИ&lt;br /&gt;
СИМВОЛ: DS 	1 	; КОДИРУЕМЫЙ СИМВОЛ&lt;br /&gt;
МОРЗЕ: 	LDA 	СИМВОЛ 	; А&amp;quot; ASCII-КОИ? КОД СИМВОЛА&lt;br /&gt;
	СРI 	32 	; ПРОВЕЛ •?&lt;br /&gt;
	JNZ 	&amp;quot;+11 	; ПРОБЕЛ -&amp;gt; ПАУЗА МЕЖДУ СЛОВАМИ&lt;br /&gt;
	MVI	Е,4 	; Е-ДЛИТЕЛЬНОСТИ ПАУЗЫ МЕЖДУ СЛОВАМИ&lt;br /&gt;
	CALL 	ПАУЗА 	; НА ПОДПРОГРАММУ ПАУЗЫ&lt;br /&gt;
	JMP 	ВЫХОД 	; НА ВЫХОД&lt;br /&gt;
	СРI 	44 	; КОД СИМВОЛА &amp;quot;.44 ?&lt;br /&gt;
	JC 	ВЫХОД 	; ДА -&amp;gt; НА ВЫХОД&lt;br /&gt;
	СРI 	128 	; КОД СИМВОЛА &amp;gt;=128 ?&lt;br /&gt;
	JNC 	ВЫХОД 	; ДА -&amp;gt; НА ВЫХОД&lt;br /&gt;
	LXI 	D,0 	; DE=0&lt;br /&gt;
	MOV 	E,A 	; Е=КОД СИМВОЛА (СМЕЩЕНИЕ)&lt;br /&gt;
LXI 	Н,ТАБЛ-44 	; ЗАГРУЗИТЬ В РЕГ. ПАРУ HL АДРЕС&lt;br /&gt;
 			;ТАБЛИЦЫ (БЕЗ УЧЕТА СМЕЩЕНИЯ)&lt;br /&gt;
	DAD 	D 	; ВЫЧИСЛИТЬ АДРЕС ЭЛЕМЕНТА ТАБЛИЦЫ&lt;br /&gt;
	MOV 	А,М 	; А=КОД МОРЗЕ ИЗ ТАБЛИЦЫ&lt;br /&gt;
	MVI 	D,8 	; СЧЕТЧИК D&amp;quot;Q&lt;br /&gt;
СТБИТ: 	RLC 		; СДВИГ ВЛЕВО ДО &amp;quot;СТАРТОВОГО&amp;quot; БИТА&lt;br /&gt;
	DCR 	D 	; УМЕНЬШИТЬ СЧЕТЧИК D НА 1&lt;br /&gt;
	J2 	ВЫХОД 	; ВСЕ БИТЫ ПРОВЕРЕНЫ -&amp;gt; НА ВЫХОД&lt;br /&gt;
	JNC 	СТБИТ 	; ПОВТОР, ЕСЛИ &amp;quot;СТ.&amp;quot; БИТ НЕ ОБНАРУЖЕН&lt;br /&gt;
	STA 	СИМВОЛ 	; СИМВОЛ^А&lt;br /&gt;
ГЕНКОД: LDA 	СИМВОЛ 	;А=СИМВОЛ&lt;br /&gt;
	RLC 		;ПРОВЕРКА СЛЕДУЮЩЕГО БИТА&lt;br /&gt;
	STA 	СИМВОЛ 	;СИМВОЛ=А&lt;br /&gt;
	MVI 	Е,1 	;Е=ДЛИТЕЛЬНОСТИ ТОЧКИ&lt;br /&gt;
	JNC 	$+5 	;ЕСЛИ БИТ=0, ТО ТОЧКА, ИНАЧЕ - ТИРЕ&lt;br /&gt;
	MVI 	Е,3 	;Е=ДЛИТЕЛЬНОСТИ ТИРЕ&lt;br /&gt;
	CALL 	ЗВУК 	;НА ПОДПР. ВЫДАЧИ ЗВУКОВОЙ ПОСЫЛКИ&lt;br /&gt;
	MVI 	Е,1 	;Е=ДЛИТЕЛЬНОСТИ ПАУЗЫ МЕЖДУ ПОСЫЛКАМИ&lt;br /&gt;
	CALL 	ПАУЗА 	;НА ПОДПРОГРАММУ ПАУЗЫ&lt;br /&gt;
	DCR 	D 	;УМЕНЬШИТЬ СЧЕТЧИК D НА 1&lt;br /&gt;
	JNZ 	ГЕНКОД 	;НЕ ВСЕ ПОСЫЛКИ ВЫДАНЫ -&amp;gt; ПОВТОР&lt;br /&gt;
	MVI     Е,2     ; Е&amp;quot;ДЛИТЕЛЬНОСТИ ПАУЗЫ МЕЖДУ ЗНАКАМИ &lt;br /&gt;
	CALL    ПАУЗА   ; НА ПОДПРОГРАММУ ПАУЗЫ&lt;br /&gt;
ЕЫХОД: 	RET             ; ВОЗВРАТ Б ИНТЕРПРЕТАТОР БЕЙСИКА&lt;br /&gt;
ПАУЗА: 			;ДЛИТЕЛЬНОСТИ ПАУЗЫ: &lt;br /&gt;
                 	;	E=1 -&amp;gt; МЕЖДУ ПОСЫЛКАМИ &lt;br /&gt;
			;       Е=2 -&amp;gt; МЕЖДУ ЗНАКАМИ &lt;br /&gt;
			;       Е=4 -&amp;gt; МЕЖДУ СЛОВАМИ &lt;br /&gt;
	LDA     СКОР    ; А=СКОРОСТЬ &lt;br /&gt;
	МОV     С,А     ; С=А&lt;br /&gt;
ПМ1:    MVI     В,ТОН+ТОН ; В=ЭКВИВАЛЕНТ ДЛИТЕЛЬНОСТИ ТОНА&lt;br /&gt;
	NОР             ; ПУСТОЙ ОПЕРАТОР &lt;br /&gt;
	DCR     В       ; УМЕНЬШИТЬ СЧЕТЧИК В НА 1 &lt;br /&gt;
	JNZ     $-2     ; ПОВТОРИТЬ, ЕСЛИ B&amp;lt;&amp;gt;0&lt;br /&gt;
	DCR     С       ; УМЕНЬШИТЬ СЧЕТЧИК С НА 1 &lt;br /&gt;
	JNZ     ПМ1     ; ПОВТОРИТЬ, ЕСЛИ C&amp;lt;&amp;gt;0&lt;br /&gt;
	DCR     Е       ; УМЕНЬШИТЬ СЧЕТЧИК ДЛИТЕЛЬНОСТИ ПАУЗЫ •&lt;br /&gt;
	JNZ     ПАУЗА   ; ПОВТОРИТЬ, ЕСЛИ Е&amp;lt;&amp;gt;0 &lt;br /&gt;
	RET&lt;br /&gt;
ЗВУК:   		;ДЛИТЕЛЬНОСТИ ПОСЫЛОК: &lt;br /&gt;
			;	Е=1 -&amp;gt; ТОЧКА ;               &lt;br /&gt;
			;	Е=3 -&amp;gt; ТИРЕ &lt;br /&gt;
	LDA     СКОР    ; А=СКОРОСТЬ &lt;br /&gt;
	MOV     С,А     ; С=А&lt;br /&gt;
	MVI     В,ТОН   ; В=КОНСТАНТЕ-ТОН ЗВУКА &lt;br /&gt;
	CALL    ЗВОНОК  ; НА ПОДПРОГРАММУ МОНИТОРА &lt;br /&gt;
	DCR     Е       ; УМЕНЬШИТЬ СЧЕТЧИК ДЛИТЕЛЬН. ПОСЫЛКИ &lt;br /&gt;
	JNZ     ЗВУК    ; ПОВТОРИТЬ, ЕСЛИ Е&amp;lt;&amp;gt;0 &lt;br /&gt;
	RET&lt;br /&gt;
ТАБЛ:   		; ТАБЛИЦА КОДОВ МОРЗЕ ДЛЯ СИМВОЛОВ КОИ-7&lt;br /&gt;
;   ,   -   .   /   0   1   2   3   4   5   6   7   3   9 &lt;br /&gt;
DB 55H,31H,40H,32H,3FH,2FH,27H,23H,21H,20H,30H,38H,3CH,3EH &lt;br /&gt;
;   :   ;   &amp;lt;   =   &amp;gt;   ?    @   A   B   C   D   E   F   Q &lt;br /&gt;
DB 78H,36H,2AH,45H,28H,4CH,0C5H,05H,18H,1AH,0CH,02H,12H,0EH&lt;br /&gt;
;   H   I   J   K   L   N   N   O   P   Q   R   S   T   U &lt;br /&gt;
DB 10H,04H,17H,0DH,14H,07H,06H,0FH,16H,1DH,0AH,08H,03H,09H &lt;br /&gt;
;   V   W   X   Y   Z   C   \   ]   ^   _   Ю   А   Б   Ц&lt;br /&gt;
DB 11H,0BH,19H,1BH,1CH,6DH,73H,6DH,7DH,80H,13H,05H,18H,1AH &lt;br /&gt;
;   Д   Е   Ф   Г   Х   И   Й   К   Л   М   Н   О   П   Я &lt;br /&gt;
DB 0CH,02H,12H,0EH,10H,04H,17H,0DH,14H,07H,06H,0FH,16H,15H &lt;br /&gt;
;   Р   С   Т   У   Ж   В   Ь   Ы   Э   Ш   Э   Щ   Ч  DEL &lt;br /&gt;
DB 0AH,08H,03H,09H,11H,0BH,19H,1BH,1CH,1FH,24H,1DH,1EH,80H&lt;br /&gt;
	END           ;***************** КОНЕЦ **********&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подпрограмма МОРЗЕ интерпретирует символы, коды которых находятся в интервале 44—127 таблицы КОИ-7, и пробел (код 32), воспроизводимый, как пауза между словами. Морзе-код символа представляет собой один байт. Составляющие байт нули и единицы кодируют разные по длительности посылки — точки и тире. При записи Морзе-кода последняя посылка отображается младшим битом D0, предпоследняя D1 и т. д. Так как Морзе-коды символов имеют различное число посылок, в байт записывают дополнительный, «стартовый» бит, после которого следуют, биты посылок. Например, символ «а» (•-) отображается байтом 00000101В или 05Н; специальный символ «ВК» (--• • •—*—) байтом 11000101В или С5Н. При интерпретации кода Морзе соответствующий ему байт сдвигается влево оператором RLC до появления в признаке переноса стартового бита. Последующие за ним биты интерпретируются звуковыми посылками. Из Морзе-кодов составлена таблица, первый элемент которой размещается в памяти по адресу ТАБЛ.&lt;br /&gt;
&lt;br /&gt;
Машинные коды подпрограммы встраивают в свободную область интерпретатора Бейсика, для чего подпрограмма транслирована с адреса 19ЕНН. Коды подпрограммы представлены в табл.2. Подпрограмма загружается в память по директиве I монитора после загрузки интерпретатора Бейсика. Целесообразно вывести на ленту версию интерпретатора, включающую подпрограмму МОРЗЕ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
				Таблицы 2&lt;br /&gt;
19F0 ЗА ЕF 19 FE 20 C2 00 1A 1E 04 CD 40 1A С3 3F 1A &lt;br /&gt;
1A00 FE 2С DA 3F 1A FЕ 80 D2 3F 1A 11 00 00 5F 21 ЗА &lt;br /&gt;
1А10 1A 19 7E 16 08 07 15 CA 3F 1A D2 15 1A 32 EF 19 &lt;br /&gt;
1A20 3А EF 19 07 32 EF 19 1E 01 D2 2E 1A 1E 03 CD 54 &lt;br /&gt;
1A30 1A 1E 01 CD 40 1A 15 C2 20 1A 1E 02 CD 40 1A C9 &lt;br /&gt;
1A40 ЗА ЕЕ 19 4F 06 2A 00 05 C2 46 1A 0D C2 44 1A 1D &lt;br /&gt;
1A50 C2 40 1A C9 ЗА ЕЕ 19 4F 06 15 CD 27 FD 1D C2 54 &lt;br /&gt;
1A60 1A C9 55 31 40 32 3F 2F 27 23 21 20 30 38 3С 3E &lt;br /&gt;
1A70 78 36 2A 45 28 4C C5 05 19 1A 0С 02 12 0E 10 04 &lt;br /&gt;
1A80 17 0D 14 07 06 OF 16 1D 0A 08 03 09 11 0В 19 1В &lt;br /&gt;
1A90 1С 6D 73 6D 7D 80 13 05 18 1A 0С 02 12 0E 10 04 &lt;br /&gt;
1AA0 17 0D 14 07 06 0F 16 15 0A 08 03 09 11 0В 19 1В &lt;br /&gt;
1AB0 1C 1F 24 1D 1E 80 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Текст основной программы показан в табл.3. При выполнении программа занимает около 5,5 Кбайт ОЗУ и может быть использована на компьютерах с объемом ОЗУ 16 Кб.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10 REM *******************************************************&lt;br /&gt;
11 REM * ПРОГРАММА   * МОРЗЕ   ТРЕНАЖЕР*                     *&lt;br /&gt;
12 REM * РАЗРАБОТКА RA3AU                       Г.Н.ИВАНОВ   *&lt;br /&gt;
13 REM * СОСТАВЛЯЕТ С ПОМОЩЬЮ ДАТЧИКА ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ  *&lt;br /&gt;
14 REM * ТРЕНИРОВОЧНЫЕ ТЕКСТЫ И ВОСПРОИЗВОДИТ КОДОМ МОРЗЕ.   *  &lt;br /&gt;
20 REM *******************************************************&lt;br /&gt;
100 CLEAR 1000 &lt;br /&gt;
150 NT$=&amp;quot;1234567690&amp;quot;&lt;br /&gt;
160 LT$=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot; &lt;br /&gt;
170 КТ$=&amp;quot;АЕВГДЕЖЭИЙКЛМНОПРСТУФХИЧШШЬЫЭЮЯ&amp;quot; &lt;br /&gt;
200 SP=60: POKE 6638,10 &lt;br /&gt;
220 MS$=NT$+LT$+KT$&lt;br /&gt;
500 REM                  ДИСПЕТЧЕР МЕНЮ  &lt;br /&gt;
510 GOSUB 2000: PRINT TAB&amp;lt;20);&amp;quot;OCHOBHOE МЕНЮ:&amp;quot;: PRINT &lt;br /&gt;
520 PRINT TAB(10);&amp;quot;1=ТЕСТ ДАТЧИКА КОДА МОРЗЕ&amp;quot; &lt;br /&gt;
530 PRINT TAB(10);&amp;quot;2=НЕПОСРЕДСТВЕННАЯ ПЕРЕДАЧА С КЛАВИАТУРЫ&amp;quot; &lt;br /&gt;
540 PRINT ТАВ(10);&amp;quot;3=ВВОД ТРЕНИРОВОЧНОГО ТЕКСТА&amp;quot; &lt;br /&gt;
550 PRINT TAB(10);&amp;quot;4=HAБOP ЗНАКОВ, ГЕНЕРАЦИЯ ТЕКСТА ИЗ ГРУПП&amp;quot; &lt;br /&gt;
560 PRINT ТАВ(10);&amp;quot;5=РАСПЕЧАТКA ТРЕНИРОВОЧНОГО ТЕКСТА&amp;quot; &lt;br /&gt;
570 PRINT ТАБ(10);&amp;quot;6=ПЕРЕДАЧА ВИДИМОГО НА ЭКРАНЕ ТЕКСТА&amp;quot; &lt;br /&gt;
580 PRINT TAB(10);&amp;quot;7=ПЕРЕДАЧА НЕВИДИМОГО НА ЭКРАНЕ ТЕКСТА&amp;quot; &lt;br /&gt;
590 PRINT ТАВ(10);&amp;quot;8=НАЗНАЧЕНИЕ СКОРОСТИ ПЕРЕДАЧИ&amp;quot; &lt;br /&gt;
800 PRINT: PRINT TAB(5);: INPUT С &lt;br /&gt;
810 ОN С GOSUB 5000,5100,8700,3000,6000,5300,5500,8000 &lt;br /&gt;
820 GOTO 510&lt;br /&gt;
1000 REM ********** ПОДПРОГРАММЫ ***************** &lt;br /&gt;
2000 REM * ОЧИСТКА ЭКРАНА И ВЫВОД ЗАСТАВКИ &lt;br /&gt;
2010 CLS: CUR 12,24&lt;br /&gt;
2020 PRINT &amp;quot;* МОРЗЕ - ТРЕНАЖЕР*&amp;quot;: PRINT &lt;br /&gt;
2030 PRINT TAB(16);&amp;quot;СКОРОСТЬ &amp;quot;;SP;&amp;quot; ЗНАКОВ/МИН&amp;quot; &lt;br /&gt;
2040 PRINT: RETURN&lt;br /&gt;
2100 REM * ОПИСАНИЕ СПЕЦИАЛЬНЫХ ЗНАКОВ &lt;br /&gt;
2110 PRINT: PRINT TAB(20);&amp;quot;СПЕЦИАЛЬНЫЕ ЗНАКИ:&amp;quot; &lt;br /&gt;
2120 PRINT &amp;quot;AR: &amp;#039;&amp;lt;&amp;#039;   AS: &amp;#039;&amp;gt;&amp;#039;   BК: &amp;#039;@&amp;#039;   KN: &amp;#039;;&amp;#039;   OK; &amp;quot;^&amp;quot; &lt;br /&gt;
2130 PRINT &amp;quot;SK: &amp;#039;=&amp;#039;    !: &amp;#039;\&amp;#039;   РАЗДЕЛ: &amp;#039;-&amp;#039;   ЗАБОЙ: &amp;#039;(ЗБ)&amp;#039; &lt;br /&gt;
2140 PRINT: RETURN&lt;br /&gt;
3000 REM * НАЗНАЧЕНИЕ НАБОРА ЗНАКОВ, ГЕНЕРАЦИЯ ТЕКСТА &lt;br /&gt;
3010 GOSUB 2000: PRINT TAB(20);&amp;quot;НАБОРЫ ЗНАКОВ:&amp;quot;: PRINT &lt;br /&gt;
3020 PRINT TAB(15);&amp;quot;1=ЦИФPЫ&amp;quot; &lt;br /&gt;
3030 PRINT ТАВ(15);&amp;quot;2=БУКВЫ - ЛАТИНСКИЕ&amp;quot; &lt;br /&gt;
3040 PRINT ТАБ(15);&amp;quot;3=БУКВЫ - КИРИЛЛИЦА&amp;quot; &lt;br /&gt;
3050 PRINT ТАВ(15);&amp;quot;4=ЦИФРЫ И БУКВЫ - ЛАТИНСКИЕ&amp;quot; &lt;br /&gt;
3060 PRINT ТАВ(15);&amp;quot;5=ЦИФРЫ И БУКВЫ - КИРИЛЛИЦА&amp;quot; &lt;br /&gt;
3070 PRINT ТАВ(15);&amp;quot;6=ОРИГИНАЛЬНЫЙ НАБОР ЗНАКОВ&amp;quot; &lt;br /&gt;
3100 PRINT: PRINT ТАВ(13); INPUT С &lt;br /&gt;
3110 ON С GOSUB 8100,8200,8300,8400,8500,8600&lt;br /&gt;
3120 IF C&amp;gt;0 AND C&amp;lt;7 THEN GOSUB 7000: GOTO 3140 &lt;br /&gt;
3130 GOTO 3010 &lt;br /&gt;
3140 RETURN&lt;br /&gt;
4000 REM * ПЕРЕДАЧА КОДА МОРЗЕ СИМВОЛА D&amp;quot; &lt;br /&gt;
4010 POKE 6639,ASC(D$): D=USR(6640); RETURN &lt;br /&gt;
5000 REM * ТЕСТ ДАТЧИКА КОДА МОРЗЕ &lt;br /&gt;
5010 GOSUB 2000: PRINT TAB(16)1&amp;quot;ТЕСТ ДАТЧИКА КОДА MОРЗЕ* &lt;br /&gt;
5020 FOR IS=44 TO 127: D$=CHR$(IS) &lt;br /&gt;
5030 PRINT IS,D$: GOSUB 4000: NEXT IS &lt;br /&gt;
5040 RETURN&lt;br /&gt;
5100 REM * НЕПОСРЕДСТВЕННАЯ ПЕРЕДАЧА С КЛАВИАТУРЫ &lt;br /&gt;
5110 GOSUB 2000&lt;br /&gt;
5120 PRINT TAB(10)1&amp;quot;НЕПОСРЕДСТВЕННАЯ ПЕРЕДАЧА С КЛАВИАТУРЫ&amp;quot; &lt;br /&gt;
5130 GOSUB 2100: PRINT TAB(14);&amp;quot; ВЫХОД В ОСНОВНОЕ МЕНЮ: &amp;#039;(ВК)&amp;quot; &lt;br /&gt;
5140 PRINT: PRINT &lt;br /&gt;
5200 Y=USR(-2045) &lt;br /&gt;
5210 IF Y=13 THEN 5250 &lt;br /&gt;
5220 IF Y=32 THEN 5240 &lt;br /&gt;
5230 IF Y&amp;lt;44 OR Y&amp;gt;127 THEN 5200 &lt;br /&gt;
5240 D$=CHR$(Y): PRINT D$;: GOSUB 4000: GOTO 5200 &lt;br /&gt;
5250 PRINT: RETURN&lt;br /&gt;
5300 REM * ПЕРЕДАЧА ВИДИМОГО НА ЭКРАНЕ ТЕКСТА ^ &lt;br /&gt;
5310 GOSUB 2000 &lt;br /&gt;
5320 PRINT TAB(14);&amp;quot;ПЕРЕДАЕТСЯ ТРЕНИРОВОЧНЫЙ ТЕКСТ ...&amp;quot;&lt;br /&gt;
5330 LS=LEN(MS$)  &lt;br /&gt;
5340 FOR IS=1 TO INT(LS)/30)+1 &lt;br /&gt;
5350 PRINT: PRINT ТАВ(4);&lt;br /&gt;
5360 FOR JS=1 TO 30: IF (IS-1)*30+JS&amp;gt;LS THEN 5380 &lt;br /&gt;
5370 D$=MID$(MS*,(IS-1)*30+JS,1): PRINT D$;: GOSUB 4000 &lt;br /&gt;
5380 NEXT JS: NEXT IS &lt;br /&gt;
5390 RETURN&lt;br /&gt;
5500 REM * ПЕРЕДАЧА НЕВИДИМОГО НА ЭКРАНЕ ТЕКСТА &lt;br /&gt;
5510 GOSUB 2000&lt;br /&gt;
5520 PRINT TAB(14);&amp;quot;ПЕРЕДАЕТСЯ ТРЕНИРОВОЧНЫЙ ТЕКСТ ...&amp;quot; &lt;br /&gt;
5530 LS=LEN(MS$) &lt;br /&gt;
5540 FOR IS=1 TO LS &lt;br /&gt;
5550 D$=MID$(MS&amp;quot;,IS,1): GOSUB 4000: NEXT IS&lt;br /&gt;
5560 RETURN&lt;br /&gt;
6000 REM * РАСПЕЧАТКА ТРЕНИРОВОЧНОГО ТЕКСТА &lt;br /&gt;
6010 GOSUB 2000&lt;br /&gt;
6020 PRINT TAB(18);&amp;quot;ТРЕНИРОВОЧНЫЙ ТЕКСТ;&amp;quot;: PRINT &lt;br /&gt;
6030 LS=LEN(MS$)&lt;br /&gt;
6040 FOR IS=1 TO INT(LS/30)+1 &lt;br /&gt;
6030 PRINT TAB(14);MID$(MS$,(IS-1)*30+1,30) &lt;br /&gt;
6060 NEXT IS&lt;br /&gt;
6070 PRINT: PRINT TAB(10); &lt;br /&gt;
6080 PRINT &amp;quot;ЧТОБЫ ПРОДОЛЖИТЬ, НАЖНИТЕ ЛЮБУЮ КЛАВИИУ ...&amp;quot;&lt;br /&gt;
6090 Y=USR(-2045): IF Y=255 THEN 6090 &lt;br /&gt;
6100 RETURN&lt;br /&gt;
7000 RЕM * ГЕНЕРАЦИЯ ТЕКСТА, СОСТОЯЩЕГО ИЗ ГРУПП ЗНАКОВ &lt;br /&gt;
7010 GOSUB 2000&lt;br /&gt;
7020 PRINT TAB(12);&amp;quot;ГЕНЕРИРУЕТСЯ ТРЕНИРОВОЧНЫЙ ТЕКСТ ...-&lt;br /&gt;
703О MS$=&amp;quot;&amp;quot;: LS=LEN(ST$) &lt;br /&gt;
7040 FOR IS=1 TO 40: FOR JS=1 TO 5 &lt;br /&gt;
7050 MS$=MS$+MID$(ST$,INT(RND(1)*LS)+1,1): NEXT JS &lt;br /&gt;
7060 MS$=MS$+&amp;quot; &amp;quot;: NEXT IS &lt;br /&gt;
7070 RETURN&lt;br /&gt;
8000 REM * НАЗНАЧЕНИЕ СКОРОСТИ ПЕРЕДАЧИ &lt;br /&gt;
8010 GOSUB 2000&lt;br /&gt;
8020 PRINT TAB(16)1&amp;quot;ВВЕДИТЕ СКОРОСТЬ ПЕРЕДАЧИ;&amp;quot; &lt;br /&gt;
8030 PRINT TAB(16)1&amp;quot;ОТ  25  ДО  150  ЗНАКОВ/МИН&amp;quot; &lt;br /&gt;
8040 PRINT; PRINT TAB(14);: INPUT SP &lt;br /&gt;
8050 IF SP&amp;lt;25 OR SP&amp;gt;150 THEN 8010 &lt;br /&gt;
8060 POKE 6638,INT(6000/SP): RETURN &lt;br /&gt;
8100 ST$=NT$: RETURN: REM * ЦИФРЫ &lt;br /&gt;
8200 ST$=LT$: RETURN: REM * БУКВЫ - ЛАТИНСКИЕ &lt;br /&gt;
8300 ST$=KT$: RETURN: REM * БУКВЫ - КИРИЛЛИЦА &lt;br /&gt;
8400 ST$=NT$+LT$: RETURN: REM * ЦИФРЫ И БУКВЫ - ЛАТИНСКИЕ &lt;br /&gt;
83ОО ST$=NT$+KT$; RETURN: REM * ЦИФРЫ И БУКВЫ - КИРИЛЛИЦА &lt;br /&gt;
8600 REM * НАЗНАЧЕНИЕ ОРИГИНАЛЬНОГО НАБОРА ЗНАКОВ &lt;br /&gt;
8610 GOSUB 2000: GOSUB 2100 &lt;br /&gt;
8620 PRINT TAB(18); &amp;quot;ВВЕДИТЕ НАБОР ЗНАКОВ:&amp;quot; &lt;br /&gt;
8630 INPUT ST$: RETURN &lt;br /&gt;
8700 REM * ВВОД ТРЕНИРОВОЧНОГО ТЕКСТА &lt;br /&gt;
8710 GOSUB 2000: GOSUB 2100: MS$=&amp;quot;&amp;quot; &lt;br /&gt;
8720 PRINT TAB(14); &amp;quot;ВВЕДИТЕ ТРЕНИРОВОЧНЫЙ ТЕКСТ:&amp;quot; &lt;br /&gt;
8730 INPUT ST$: IF ST$=&amp;quot;&amp;quot; THEN 8760 &lt;br /&gt;
8740 MS$=MS$+LEFT$(ST$,250-LEN(MS$)) &lt;br /&gt;
8750 IF LEN(MS$)&amp;lt;250 THEN 8730 &lt;br /&gt;
8760 RETURN &lt;br /&gt;
9999 REM ****************** КОНЕЦ **********************************&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Программа построена по модульному принципу и состоит из головной части (стр. 10-820) и подпрограмм (стр. 1000 — 8730). Головная часть содержит начальное определение переменных (стр. 100—220) и операторы управления работой программы в режиме меню (стр. 500—-820). Подпрограммы реализуют вывод вспомогательной информации на дисплей (стр. 2000, 2100, 6000), составление тренировочных текстов с помощью датчика псевдослучайных чисел (стр. 3000, 7000, 8100— 8500), воспроизведение текстов кодом Морзе (стр. 5000—5500), организуют введение необходимых для работы данных (стр. 8000, 8600, 8700).&lt;br /&gt;
&lt;br /&gt;
Работа с программой построена в режиме диалога. После запуска программы на выполнение на экране дисплея появляется меню:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
МОРЗЕ — ТРЕНАЖЕР СКОРОСТЬ 60 ЗНАКОВ/МИН ОСНОВНОЕ МЕНЮ:&lt;br /&gt;
1 Тест датчика кода Морзе&lt;br /&gt;
2 Непосредственная передача с клавиатуры&lt;br /&gt;
3 Ввод тренировочного текста&lt;br /&gt;
4 Набор знаков, генерация текста из групп&lt;br /&gt;
5 Распечатка тренировочного текста&lt;br /&gt;
6 Передача видимого на экране текста&lt;br /&gt;
7 Передача невидимого на экране текста&lt;br /&gt;
8 Назначение скорости передачи ? (ответ)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По ответу 1 воспроизводится код Морзе для полного набора символов. Ответ 2 позволяет непосредственно воспроизводить коды, набирая знаки на клавиатуре. По ответу 3 с клавиатуры вводят текст, который затем воспроизводится как тренировочный. Размер вводимого текста — не более 250 символов. Введение текста построчное, заканчивают его символом пробела в первой позиции строки.&lt;br /&gt;
&lt;br /&gt;
По ответу 4 на экране появляется меню для выбора набора знаков и составления тренировочного текста:&lt;br /&gt;
&lt;br /&gt;
НАБОРЫ ЗНАКОВ:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 Цифры&lt;br /&gt;
2 Буквы — латинские&lt;br /&gt;
3 Буквы — кириллица&lt;br /&gt;
4 Цифры и буквы -латинские&lt;br /&gt;
5 Цифры и буквы — кириллица&lt;br /&gt;
6 Оригинальный набор знаков ? (ответ)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответы определяют наборы знаков, из которых с помощью генератора псевдослучайных чисел затем составляют тренировочные тексты. Последний используют при необходимости составить текст из оригинального набора, например из специальных знаков или отдельно изучаемых букв.&lt;br /&gt;
&lt;br /&gt;
По ответу 5 на экране будет распечатан находящийся в памяти текст, например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ТРЕНИРОВОЧНЫЙ ТЕКСТ:&lt;br /&gt;
8УЬБД КЖЛТ9 БЦЮУД ЛЗОЙЦ ЯТТМЛ&lt;br /&gt;
Д4Л1ЦФ ЖРЫ1Ф ЧКБ37 АВЗ^Е Р1&amp;lt;5Р5&lt;br /&gt;
42KIIJ3 Х111ДОЙ 49Ы9Н 6ЙБАЗ &amp;quot;Д1ЈГД&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ответы 6 и 7 позволяют воспроизвести кодом Морзе текст, выводя или не выводя его на экран.&lt;br /&gt;
&lt;br /&gt;
По ответу 8 можно задать скорость воспроизведения кода Морзе в пределах от 25 до 150 знаков в минуту. Прием сигналов на слух на большей скорости затруднен из-за неудовлетворительного качества звукового сигнала компьютера, имеющего характерный «рваный» тон. На относительно невысокой скорости влияние такого гона незаметно. Однако подпрограмма генерации кода Морзе позволяет манипулировать внешний звуковой генератор с большими скоростями. Для этого необходимо к одному из разрядов порта D14 подключить через буферный элемент звуковой генератор.&lt;br /&gt;
&lt;br /&gt;
Программу в этом случае необходимо доработать. В основной программе операторы начального определения переменных (стр. 100—220) дополняют операторами инициализации порта D14. В подпрограмме ЗВУК выдачу звукового сигнала заменяют на команды установки и сброса 1 на управляемом разряде D14, обращение к подпрограмме ЗВОНОК заменяют на обращение к подпрограмме ПАУЗА.&lt;br /&gt;
&lt;br /&gt;
Г. ИВАНОВ&lt;br /&gt;
&lt;br /&gt;
г. Химки. Московской обл.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Радио-86РК/Публикации|20]]&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>