Важная информация

User Tag List

Показано с 1 по 1 из 1

Тема: COM-порт для Вектора

  1. #1
    Activist Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    211
    Благодарностей: 92
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию COM-порт для Вектора

    В продолжение затронутой темы по COM-порту для Вектора, решил нарисовать схемку, как это могло бы быть, и вот что получается:



    Схема должна "откликаться" по портам 22h (упр.) и 23h (данные), не знаю, насколько этот выбор был правильным, но, кажется, эти порты Вектора свободны.

    И ещё, немного не понял, почему в исходной схеме использовали вывод В31 (Орион-128), а не подобрали кварц на более высокую частоту, соответствующую 115200 б/с, но пусть в первом варианте будет пока 38400 б/с.

    И используя наработки из DSDOS, сделал подпрограммы для общения с этим COM-портом, код получается достаточно простым:

    COM-port.ASM

    Код:
    ; Драйвер COM-порта для Вектор-06ц (ВВ51А)
    ;
    	#DEFINE PT_SPC 022H	; порт конфигурации
    	#DEFINE PT_SPD 023H	; порт данных
    ;
    	; Инициализация порта COM1
    IniCOM:	MVI A, 001h
    	OUT PT_SPC
    	OUT PT_SPC	; два раза отправляем единицу для того, чтобы вв51а начал принимать команды
    	MVI A, 040H	; программный сброс
    	OUT PT_SPC
    	MVI A, 04EH	; настройка протокола:
    			;  - 8,N,1
    			;  - стоп-бит = 1,5
    			;  - асинхронный режим, 1:16
    	OUT PT_SPC
    	MVI A, 027H	; слово приказа:
    			;  - Запрос о готовности приёмника ВУ принять данные
    			;  - Приём информации возможен
    			;  - Запрос о готовности передатчика ВУ передать данные
    			;  - Передача информации возможна
    			;  (возможно имеет смысл отправлять 037h, т.е. с обнулением ошибок)
    	OUT PT_SPC
    	IN  PT_SPD	; очистка порта ввода
    	RET
    ;
    	; Запись байта в порт COM1
    	; I: [C]-записываемый байт
    	; O: <C>=0 - [A]=записанный байт,
    	;    <C>=1 - порт не готов
    	;
    SvbCOM:	MVI B, 0	; time-out const = 256
    SVB1:	DCR B		; ожидание готовности
    	JZ  LDB1_4	; -->> выход по таймауту
    	IN  PT_SPC	;
    	RRC		;
    	JNC SVB1	;
    	MOV A, C
    	OUT PT_SPD
    	CMC
    	RET
    
    ;
    	; Чтение байта из порта COM1
    	; O: C=0 - [A]-считанный байт
    	;    C=1 - ошибка (тайм-аут)
    	;
    LdbCOM:	IN  PT_SPC	; проверка на преждевременную готовность
    	ANI 2
    	JNZ LDB1_2	; --> данные есть...
    	PUSH B
    	LXI B, 080E8h	; time-out const = 33000
    LDB1_1:	DCX B
    	MOV A, B
    	ORA C
    	JZ  LDB1_3	; -->> выход по таймауту
    	IN  PT_SPC
    	ANI 2
    	JZ  LDB1_1	; цикл ожидания поступления данных
    	POP B
    LDB1_2:	IN  PT_SPD
    	RET
    ;
    LDB1_3:	POP B
    LDB1_4:	STC
    	RET
    ;
    	.end
    [свернуть]

    На досуге попробую спаять на макетке и проверить...
    Последний раз редактировалось Improver; 15.05.2019 в 08:04. Причина: дописал пару коментариев в коде

  2. Эти 3 пользователя(ей) поблагодарили Improver за это полезное сообщение:
    crackintosh (14.05.2019), KTSerg (14.05.2019), svofski (14.05.2019)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Рива Рейд для Вектора
    от svofski в разделе Вектор
    Ответов: 112
    Последнее: 09.05.2019, 13:33
  2. Картотека ПО для Вектора-06ц
    от svofski в разделе Вектор
    Ответов: 590
    Последнее: 28.01.2019, 13:52
  3. Ответов: 3
    Последнее: 21.09.2018, 18:28
  4. Демо эффекты для Вектора
    от ivagor в разделе Вектор
    Ответов: 150
    Последнее: 23.07.2018, 17:20
  5. CP/M для Вектора и Форматы файлов
    от Black Cat / Era CG в разделе Вектор
    Ответов: 35
    Последнее: 03.07.2016, 12:30

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •