adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC
Автор ""
Размер 294419 Байт
Страница 31 из 36
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

           mov  dx,3F8h
           mov  al,60h
           out  dx,al     ; младший байт для скорости 1200 бод
           inc  dx
           mov  al,0
           out  dx,al     ; старший байт скорости
           mov  dx,3FBh   ; регистр управления линией
           mov  al,00000011b ; 8 бит, 2 стоп-бита, без четности
           out  dx,al
           mov  dx,3F9h   ; регистр разрешения прерываний
           mov  al,1      ; разрешить прерывания по приему
           out  dx,al
           nop            ; и чуть-чуть подождать
           nop
           mov  dx,3FCh   ; регистр управления модемом
           mov  al,00001011b ; установить DTR, RTS и OUT2
           out  dx,al
           sti            ; разрешить прерывания
           mov  dx,3F8h   ; регистр данных
           in   al,dx     ; сбросить буфер приема
           pop  dx
           pop  ax
           ret
 Ser_Ini   endp
 ;ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
 ;є       Подпрограмма отключения стыка COM1.                  є
 ;ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
 Ser_Rst   proc near
           push ax        ; сохранить регистры
           push dx
 Wait_Free:
           mov  dx,3FDh   ; регистр состояния линии
           in   al,dx
           jmp  short $+2 ; короткая задержка
           test al,60h    ; передача окончена?
           jz   Wait_Free ; ждем, если нет
           mov  dx,3F9h   ; регистр разрешения прерываний
 


                            - 118 -

           mov  al,0      ; запретить прерывания
           out  dx,al
           jmp  short $+2 ; еще подождем...
           jmp  short $+2
           mov  dx,3FCh   ; регистр управления модемом
           mov  al,00000011b ; активировать DTR и RTS
           out  dx,al
           jmp  short $+2
           jmp  short $+2
           push bx
           mov  al,0Ch
           mov  dx,Ser_ip
           push ds
           mov  bx,Ser_cs
           mov  ds,bx
           mov  ah,25h
           int  21h       ; восстановить вектор Int 0Ch
           pop  ds
           pop  bx
           cli            ; запрет прерываний
           in   al,21h    ; читать маску прерываний
           jmp  short $+2
           or   al,10h    ; запретить IRQ4
           out  21h,al
           sti            ; разрешение прерываний
           pop  dx
           pop  ax
           ret
 Ser_Rst   endp
 ;ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
 ;є        Подпрограмма обработки прерываний от COM1.          є
 ;ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
 Ser_Int   proc far
           push ax
           push dx
           push ds
           mov  ax,seg _DATA
           mov  ds,ax
           mov  dx,3FAh   ; регистр идентификации прерываний
           in   al,dx
           mov  Int_Sts,al; сохраним его содержимое
           test al,1      ; есть отложенные прерывания?
           jz   Is_Int    ; да
           pop  Save_ds   ; нет, передаем управление
           pop  dx        ; старому обработчику Int 0Ch
           pop  ax
           push Ser_cs
           push Ser_ip
           push Save_ds
           pop  ds
           ret            ; длинный переход
 Is_Int:
           mov  al,64h    ; послать EOI для IRQ4
           out  20h,al    ; в 1-й контроллер прерываний
           test Int_Sts,4 ; прерывание по приему?





- 119 - jnz Read_Char ; да No_Char: sti ; нет, разрешить прерывания jmp Int_Ret ; и закончить обработку Int 0Ch Read_Char: mov dx,3FDh ; регистр состояния линии in al,dx and al,2 mov Overrun,al; ovvrrun<>0, если была потеря символа mov dx,3F8h ; регистр данных in al,dx ; вводим символ or al,al ; если принят нуль, jz No_Char ; то игнорируем его push bx mov ah,Overrun or ah,ah ; предыдущий символ потерян? jz Save_Char ; нет mov ah,al ; да, mov al,7 ; заменяем его на звонок (07h) Save_Char: mov bx,Src_ptr; заносим символ в буфер mov [bx],al inc Src_ptr ; и обновляем счетчики inc bx cmp bx,offset Src_ptr-2 ; если конец буфера jb Ser_Int_1 mov Src_ptr,offset Source ; то "зацикливаем" на начало Ser_Int_1: cmp Count,Buf_Size ; буфер полон? jae Ser_Int_2 ; да inc Count ; нет, учесть символ Ser_Int_2: or ah,ah ; если была потеря символа jz Ser_Int_3 mov al,ah ; то занести в буфер сам символ xor ah,ah jmp short Save_Char Ser_Int_3: pop bx sti ; разрешить прерывания Int_Ret: pop ds pop dx pop ax iret Ser_Int endp ;ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН» ;є Подпрограмма вывода символа AL в порт. є ;є При ошибке возвращает CF=1, иначе CF=0. є ;ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј Out_Chr proc near push ax push cx push dx mov ah,al - 120 - sub cx,cx Wait_Line: mov dx,3FDh ; регистр состояния линии in al,dx test al,20h ; стык готов к передаче? jnz Output ; да jmp short $+2 jmp short $+2 loop Wait_Line ; нет, ждем pop dx pop cx pop ax stc ; нет готовности порта ret Output: mov al,ah mov dx,3F8h ; регистр данных jmp short $+2 out dx,al ; вывести символ pop dx pop cx pop ax clc ; нормальный возврат ret Out_Chr endp ;ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН» ;є Подпрограмма ввода символа из порта в AL. є ;є Если буфер пуст, возвращает CF=1, иначе CF=0. є ;ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј Get_Chr proc near cmp Count,0 ; буфер пуст? jne loc_1729 ; нет stc ; да, возврат по ошибке ret loc_1729: push si cli ; запретим прерывания mov si,Src_ptr


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.