PIC | APIC

Тема в разделе "WASM.OS.DEVEL", создана пользователем NoName, 13 дек 2007.

  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Посоветуйте пж-та что и как сделать с прерываниями от устройств после входа в защищенный режим.
    Нужно сдвинуть прерывания на заданные номера IDT.
    Спасибо.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Код (Text):
    1. const
    2.  MASTER8259A=$20;
    3.  SLAVE8259A=$A0;
    4.  
    5. procedure InitPIC(IRQ:Word;Port:Word ); // Иницилизируем контролер прерывание PIC 8259A. Настраеваем вектора.
    6. asm    //В DX будет порт в AH IRQ
    7.         MOV     AL,11h     //ICW1 бит 0=1 сигнализирунт, что будет послон ICW4
    8.         OUT     DX,AL
    9.         MOV     AL,AH      //ICW2  - начальный номера прерываний биты 2-0=0 Так как задает для 8.
    10.         INC     DX
    11.         OUT     DX,AL
    12.         MOV     al,4       //ICW4 ведущий ???
    13.         OUT     DX,AL
    14.         MOV     AL,1       //OCW2 ставим самый низкий уровень упрерываний 1.
    15.         OUT     DX,AL
    16.         MOV     AL,0FFh    //OCW1 маскируем все прерывания
    17.         OUT     DX,AL
    18.         DEC     DX
    19. ret
    20. end;
    21.  
    22. // Устанавливаем для IRQ0-IRQ7 номера прерываний 20h-27h
    23.     MOV dx,MASTER8259A
    24.     MOV ah,20h
    25.     CALL    InitPIC
    26.  
    27. // Устанавливаем для IRQ8-IRQ15 номера прерываний 28h-2Fh
    28.  
    29.     MOV dx,SLAVE8259A
    30.     MOV ah,28h
    31.     CALL InitPIC
     
  3. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    бревед!

    комрады вопрос на лимон тугриков: а можно APIC использовать в UN'REAL mode?
     
  4. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    bugaga
    да