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


              

отображаем на экране состояние регистров


// определяем состояние линии CTS

test al,10h jnz next_5

// линия CTS неактивна

mov ah,'c' mov data[3],ah mov attr[3],0x72 jmp short next_6

next_5:

// линия CTS активна

mov ah,'C' mov data[3],ah mov attr[3],0x7a

next_6:

// определяем состояние линии DSR

test al,20h jnz next_7

// линия DSR неактивна

mov ah,'d' mov data[7],ah mov attr[7],0x72 jmp short next_8

next_7:

// линия DSR активна

mov ah,'D' mov data[7],ah mov attr[7],0x7a

next_8:

// определяем состояние линии RI

test al,40h jnz next_9

// линия RI находится в неактивном состоянии

mov ah,'r' mov data[4],ah mov attr[4],0x76 jmp short next_10

next_9:

// линия RI находится в активном состоянии

mov ah,'R' mov data[4],ah mov attr[4],0x7e

next_10:

// определяем состояние линии DCD

test al,80h jnz next_11

// линия DCD неактивна

mov ah,'d' mov data[5],ah mov attr[5],0x76 jmp short next_12

next_11:

// линия DCD активна

mov ah,'D' mov data[5],ah mov attr[5],0x7e

next_12:

// считываем регистр управления модемом

mov dx,MCR_N add dx,com_port in al,dx

// проверяем линию RTS

test al,2 jnz next_13

// линия RTS находится в неактивном состоянии

mov ah,'r' mov data[2],ah mov attr[2],0x74 jmp short next_14

next_13:

// линия RTS находится в активном состоянии

mov ah,'R' mov data[2],ah mov attr[2],0x7c

next_14:

// проверяем линию DTR

test al,1 jnz next_15

// линия DTR неактивна

mov ah,'d' mov data[6],ah mov attr[6],0x74 jmp short next_16

next_15:

// линия DTR активна

mov ah,'D' mov data[6],ah mov attr[6],0x7c

next_16:

// отображаем на экране состояние регистров // вывод на экран происходит непосредственно // через видеопамять

// сегмент видеопамяти

mov ax,0B800h mov es,ax

xor si,si mov di,0 mov cx,8

next_char:

// отображаем на экране очередной символ // из массива data

mov ah,data[si] mov es:[di],ah

inc di

// устанавливаем атрибуты этого символа

mov ah,attr[si] mov es:[di],ah sti

inc di inc si

loop next_char

xor si,si mov di,160 mov cx,8

next_str2: mov ah,data2[si] mov es:[di],ah inc di mov ah,attr[si] mov es:[di],ah sti inc di inc si loop next_str2

xor si,si mov di,320 mov cx,8

next_str3: mov ah,data3[si] mov es:[di],ah inc di mov ah,attr[si] mov es:[di],ah sti inc di inc si loop next_str3

} }


Содержание  Назад  Вперед