Радио-86РК/Радио 06-89/Контроллер последовательного интерфейса/Таблица 4
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: А. ДОЛГИЙ Источник: http://retro.h1.ru/RK86/RS232/RS232s.asm |
; ;*** ПОДПРОГРАММЫ ОБСЛУЖИВАНИЯ КОНТРОЛЛЕРА *' ;******* ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА, *****1 ;******** ПОДКЛЮЧЕННОГО К СИСТ. ШИНАМ ***** ; *ASD* 18/06/88 ;АДРЕСА РЕГИСТРОВ УСАПП И ТАЙМЕРА: DAT51: EQU 0А800Н ;РЕГИСТР ДАННЫХ ВВ51 CW51: EQU 0А801Н ;РЕГИСТР КОМАНД ВВ51 СТ0: EQU 0А400Н ;СЧЕТЧИК 0 ВИ53 СТ1: EQU 0А401Н ;СЧЕТЧИК 1 ВИ53 CT2: EQU 0A40ZH ; СЧЕТЧИК 2 ВИ53 CW53: EQU 0А403Н ;РЕГИСТР КОМАНД ВИ53 ;+++ УПРАВЛЯЮЩЕЕ СЛОВО ВИ53 +++ BCD: EQU 1 ; ДВ. -ДЕСЯТИЧНЫЙ СЧЕТ MODE0: EQU 0 МОDЕ1: EQU 2 MODE2: EQU 4 ;ВЫБОР MODE3: EQU 6 ;РЕЖИМА MODE4: EQU 8 MODE5: EQU 0AH ; ROF: EQU 0 ;ЧТЕНИЕ НА ЛЕТУ RLL: EQU 10Н ;ЧТЕНИЕ/ЗАПИСЬ МЛ. БАЙТА RLH: EQU 20Н ;ЧТЕНИЕ/ЗАПИСЬ СТ. БАЙТА RLW: EQU 30Н ;ЧТЕНИЕ/ЗАПИСЬ СЛОВА SCO: EQU 0 SC1: EQU 40H ;ВЫБОР СЧЕТЧИКА SC2: EQU 80H ; ;+++ ИНСТРУКЦИЯ РЕЖИМА ВВ51 +++ X1: EQU 1 Х16: EQU 2 ;МНОЖИТЕЛЬ СКОРОСТИ Х64: EQU 3 L5: EQU 0 L6: EQU 4 ;ДЛИНА ИНФОРМАЦИОННОГО L7: EQU 8 ;СЛОВА L8: EQU 0CH PEN: EQU 10Н ;РАЗРЕШЕНИЕ КОНТРОЛЯ ЕР: EQU 20Н ;КОНТРОЛЬ ЧЕТНОСТИ S1: EQU 40H S15 EQU 80H ;ДЛИНА СТОП-БИТА S2: EQU 0C0H ;+++ ИНСТРУКЦИЯ КОНАНДЫ ВВ51 +++ TXEN: EQU 1 ;ПЕРЕДАТЧИК ВКЛЮЧЕН DTR: EQU 2 ;УСТРОЙСТВО ГОТОВО RXE: EQU 4 ;ПРИЕМНИК ВКЛЮЧЕН SBRK: EQU 8 ;ПРЕРЫВАНИЕ ПЕРЕДАЧИ ER: EQU 10Н ;СБРОС ОШИБОК ПРИЕМА RTS: EQU 20Н ;ПЕРЕДАЧА РАЗРЕШЕНА IR: EQU 40H ;ПРОГР. СБРОС УСАПП ЕН: EQU 80H ; РАЗРЕШЕНИЕ ПОИСКА ; СИНХРОСИМВОЛА ;**** РЕГИСТР СОСТОЯНИЯ ВB51 **** TXRDY: EQU 1 ;ПЕРЕДАТЧИК ГОТОВ RXRDY: EQU 2 ;ПРИЕМНИК ГОТОВ ТХЕ: EQU 4 ;ПЕРЕДАЧА ЗАКОНЧЕНА РЕ: EQU 8 ;ОШИБКА ЧЕТНОСТИ ОЕ: EQU 10Н ;ПЕРЕПОЛНЕНИЕ ПРИЕМНИКА FE: EQU 20Н ;ОШИБКА ФОРМАТА SYNDET: EQU 40H ;СИНХРОСИМВОЛ НАЙДЕН DSR: EQU 80H ;ПЕРЕДАТЧИК ДАННЫХ ГОТОВ ;*** ПОДПРОГРАММА НАСТРОЙКИ КОНТРОЛЛЕРА **** ;СКОРОСТЬ И РЕЖИМ УСАПП ПО УМОЛЧАНИЮ KDIV: EQU 23 ;4800 Бод (F0=1,78 МГГЦ) MI: EQU X16+L8+S2 ; INIT: LXI Н, KDIV MVI A, MI INIT1: PUSH PSW ;НАСТРАИВАЕМ ТАЙМЕР MVI A, SCO+RLW+MODE3 STA CW53 MOV A, L STA СТО MOV А, И STA СТО ;УСТАНАВЛИВАЕМ УСАПП В ИСХ. СОСТОЯНИЕ MVI А, 1 STA CW51 STA CW51 MVI A, IR STA CW51 ; ЗАПИСЫВАЕМ ИНСТРУКЦИЮ РЕЖИМА POP PSW STA CW51 ; УСТАНАВЛИВАЕМ ФЛАГZ, ЕСЛИ ЗАДАНА ;РАБОТА С ТЕЛЕТАЙПОМ ANI 0FCH ;# CPI 80Н ;# ; ЗАПИСЫВАЕМ ИНСТРУКЦИЮ КОМАНДЫ MVI A, TXEN+DTR+RXE+RTS STA CW51 RNZ ;# ;ЕСЛИ ЗАДАНА РАБОТА С ТЕЛЕТАЙПОМ, ;ТО 5 РАЗ ПЕРЕДАЕМ КОД УСТАНОВКИ ; ЛАТИНСКОГО РЕГИСТРА LXI B, 51FH ;# LAT: CALL TX ;# DCR В ;# JNZ LAT ;# ;И ЗАПИСЫВАЕМ ПРИЗНАК ЛАТ. РЕГИСТРА MVI А, 20H ;# STA REG ;# RET ;*** ПОДПРОГРАММА ПЕРЕДАЧИ *** ;***... БАЙТА ИЗ РЕГИСТРА С *** TX: PUSH PSW ;ЖДЕМ ГОТОВНОСТИ ТХ1: LDA CW51 ANI TXRDY+DSR CPI TXRDY+DSR JNZ ТХ1 ;ПЕРЕДАЕМ БАЙТ MOV А, С STA DAT51 POP PSW RET ;*** ПОДПРОГРAMMA ПРИЕМА БАЙТА В АККУМУЛЯТОР ��* PX: ;ПРОВЕРЯЕМ ГОТОВНОСТЬ LDA CW51 ANI RXRRY ;ВОЗВРАТ С ФЛАГОМ ПЕРЕНОСА, ;ЕСЛИ ПРИЕМНИК НЕ ГОТОВ STC RZ ;ЧИТАЕМ ПРИНЯТЫЙ БАЙТ LDA DAT51 CMC RET ; ;ЯЧЕЙКА ОЗУ ДЛЯ ХРАНЕНИЯ ПРИЗНАКА ;РЕГИСТРА ТЕЛЕТАЙПА: ; REG: EQU 7653H ;АДРЕС НУЖНО УКАЗАТЬ ТОТ ЖE, ;ЧТО В TTYOUT, TTYIN END ;*** ПОДПРОГРАММЫ РАБОТЫ С ТЕЛЕТАЙПОМ ; *ASD* 01/07/88 ;ИСПОЛЬЗУЮТ ПОДПРОГРАММЫ ТХ,PХ. ;В ПОДПРОГРАММЕ INIT ЗАДАТЬ ИНСТРУКЦИИ ;РЕЖИМА 82H ИЛИ 83Н ;ЯЧЕЙКА ОЗУ ДЛЯ ХРАНЕНИЯ ПРИЗНАКА ;РЕГИСТРА ТЕЛЕТАЙПА: REG: EQU 7653H ;ДЛЯ ОЗУ 32K