Драйверы устройств в системе Windows

         

указание для программы ISR завершить


    cli

    int 21h          ; запросить текущую программу ISR

    mov lpPrevISR.LoWord,bx

    mov lpPrevISR.HiWord,es  ; сохранить ее

    mov dx,OFFSET FIXED_TEXT:IntSvcRtn

    push   ds

    mov ds,segFixed

    assume  ds:NOTHING

    mov ax,2500h+INT_DEV

    int 21h              ; установить нашу программу ISR

    pop ds

    assume  ds:DGroup

    sti

    mov dx,OFFSET DGroup:sdPrompt

    mov ax,9

    int 21h              ; S)tart или Q)uit

ml1:

    mov dl,0PFh

    mov ah,6

    int 21h              ; читать с консоли, не ожидая

    jz  ml3

    or  al,40h

    cmp al,'q'

    je  ml8              ; пропустить, если нажато "Q"

    cmp al,'s'

    jne ml3              ; пропустить, если не нажато "S"

    cli

    in  al,PIC01         ; размаскировать прерывание

    and al,NOT INT_MASK

    out PIC01,al

    sti

    mov al,NOT FAKE_CTL_START

    mov dx,FAKE_PORT

    out dx,al             ; начать ввод-вывод с устройства

ml3:

    mov ax,dwCount1

    cmp ax,dwCount2

    je  ml4      ; пропустить, если счетчик прерываний не изменился

    mov dwCount2,ax

    mov dx,OFFSET DGroup:sdDot

    mov ah,9

    int 21,h         ;в противном случае выдать точку

ml4:

    jmp ml1          ; цикл

ml8:

    mov fStopping,1     ; указание для программы ISR завершить работу

    mov dx,FAKE_PORT

ml9:

    in  al,dx

    rcr al,1

    jnc ml9          ; цикл, если занято

    cli

    in  al,PIC01

    or  al,INT_MASK

    out PIC01,al     ; маскировать уровень прерывания

    sti

    push    ds

    lds dx,lpPrevISR

    assume ds:NOTHING

    mov ax,2500h+INT_DEV

    int 21h           ; восстановить предыдущую программу ISR

    pop ds

    assume ds:DGroup

    mov ax,4C00h

    int 21h           ; выход

_TEXT ENDS

    end_main

_____________________________________________________________________

     Листинг 1. Программа dostest.asm

     Драйвер  устройства  начинает  работу  с  проверки  старшего бита порта  состояния,  чтобы  убедиться  в  наличии  устройства.  Затем он устанавливает связь  с вектором  прерывания MS-DOS  для прерывания 11.

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







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий