Программирование модемов


Коммуникационная программа CHAT - часть 11


; параметры COM-порта

installed DB ? ; установлен ли порт на этом компьютере? (1=да,0=нет) baud_rate DW ? device_conn DB ? ; M(Модем), D(Нуль-модем) parity DB ? ; N(ONE), O(DD), E(VEN), S(PACE), M(ARK) stop_bits DB ? ; 1, 2

; счетчики ошибок

error_block DW 8 DUP(?)

; порты 8250

DATREG DW ? ; регистр данных IER DW ? ; регистр управления прерываниями IIR DW ? ; регистр идентификации прерывания LCR DW ? ; регистр управления линией MCR DW ? ; регистр управления модемом LSR DW ? ; регистр состояния линии MSR DW ? ; регистр состояния модема

DLL EQU DATREG ; младший регистр делителя DLH EQU IER ; старший регистр делителя

; указатели буферов FIFO

; индекс первого символа в буфере передатчика

start_s_data DW ?

; индекс первого свободного элемента буфера передатчика

end_s_data DW ?

; индекс первого символа в буфере приемника

start_r_data DW ?

; индекс первого свободного элемента буфера приемника

end_r_data DW ?

; счетчики количества символов в буферах

size_s_data DW ? ; число символов в буфере передатчика size_r_data DW ? ; число символов в буфере приемника

; буфера

send_buf DB S_SIZE DUP(?) ; буфер передатчика reciave_buf DB R_SIZE DUP(?) ; буфер приемника

SP_TAB ENDS

EFRAME EQU error_block+6 ; ошибка синхронизации EPARITY EQU error_block+8 ; ошибка четности EOVFLOW EQU error_block ; произошло переполнение буфера EDSR EQU error_block+12 ; модем не ответил сигналом DSR

EOVRUN EQU error_block+2 ; ошибка переполнения EBREAK EQU error_block+4 ; обнаружен запрос на прерывание

EXMIT EQU error_block+10 ; ошибка при передаче ECTS EQU error_block+14 ; модем не ответил сигналом CTS

; ; DGROUP GROUP _DATA

_DATA SEGMENT public 'DATA'

DIV50 DW 2304

; текущий номер области данных порта

CURRENT_AREA DW AREA1

; область данных для каждого порта

AREA1 SP_TAB <1,INT_COM1,E_IRQ4,D_IRQ4,EOI4> ; область данных COM1 AREA2 SP_TAB <2,INT_COM2,E_IRQ3,D_IRQ3,EOI3> ; область данных COM2 AREA3 SP_TAB <3,INT_COM3,E_IRQ4,D_IRQ4,EOI4> ; область данных COM3 AREA4 SP_TAB <4,INT_COM4,E_IRQ3,D_IRQ3,EOI3> ; область данных COM4




Начало  Назад  Вперед