Блокирование прерывания гибкого диска

Тема в разделе "WASM.ASSEMBLER", создана пользователем JJORIK, 6 июн 2009.

  1. JJORIK

    JJORIK New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2009
    Сообщения:
    1
    Помогите запретить прерывания гибкого диска (блокировать доступ).
    Я пытаюсь:

    mov AL, 20h ; прочитать текущую маску
    out 20h, AL
    out 0Ah, AL



    in AL, 21h
    MOV AL,01000000B ;маскируем бит 6 ; установить в 1 разряд IRQ 6 рег-ра IMR
    OUT 21H,AL ;посылаем в регистр маски прерываний

    Но когда запускаю программу в DOS,то доступ не болкируется,всегда могу обращаться "A:" или "cd A:"
     
  2. Memphis

    Memphis New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2008
    Сообщения:
    104
    JJORIK
    Но когда запускаю программу в DOS,то доступ не болкируется,всегда могу обращаться "A:" или "cd A:" - В ДОСе отработка флопофункций идет через БИОС. И вполне возможно, что БИОС содержит код, который принудительно разрешит IRQ6 (сбросит шестой бит в 21-м порту). Аналогично, для ХДД - точно знаю, Award BIOS (4.5x) точно сбросит биты для 14/15 IRQ. Проверить элементарно для флопа в ДОСе - запустили отладчик, вывели ручками значение 40h в порт 21h, затем вставили в привод отформаченную дискету, дали параметры в регистры и провели чтение ее через int 13h/40h (желательно 2...4 раза подряд), а потом прочитали порт 21h и посмотрели маски.