Затыкаются прерывания при вызове int 10h п/у DOS32/A в WinNT5 DOS-окне

Тема в разделе "WASM.ASSEMBLER", создана пользователем Ykidia, 29 май 2007.

  1. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Насчет SpeedFan очень может быть - он у меня везде установлен, но недавно на рабочей машине я его снес - за работоспособность железа на работе я не отвечаю, так что за ненадобностью его там снес (!). Надо будет проверить на домашней машинке...
     
  2. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Да, это оно. Только что снес на одной из машин giveio (ну и speedfan по ходу дела) и - о чудо! - прерывания заработали. Интересно посмотреть исходники giveio, что же там такое злое сидит...
     
  3. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    А может кто подсказать где найти исходники giveio либо какую-нибудь приличную совместимую альтернативу giveio?
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Вот тут есть:

    giveio.c

    Для поиска кода удобно http://www.google.com/codesearch использовать ;)
     
  5. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
  6. Uri2

    Uri2 New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2004
    Сообщения:
    10
  7. NoResponse

    NoResponse New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2005
    Сообщения:
    89
    незачем далеко ходить, на васме же есть
    http://www.wasm.ru/print.php?article=drvw2k03
     
  8. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    Ykidia, писал
    giveio просит NT, обнулить для данного процесса iopm в TSS проца (собственно на исключениях и "работает" эмуляция железа). Забавный косяк, видимо у венды одна таблица битов (а то и TSS), на все процессы. lol.
     
  9. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Ясно, спасибо всем за оперативность (,сказала черепаха :lol: ).
    Вот же попа с ручками >:dntknw: . А я думал, он пассивный ;)
    Да уж, и точно lol. Бугага ;)
     
  10. Ykidia

    Ykidia Member

    Публикаций:
    0
    Регистрация:
    21 июн 2005
    Сообщения:
    99
    Адрес:
    Санкт-Петербург
    Ну ладно, я так понял, что на все процессы NTVDM у винды, возможно, одна таблица битовой карты разрешения ввода/вывода, а прерывания-то здесь все-таки при чем???

    P.S. Вот идиот. Спросил и сам себе же отвечу. Потому что mov al, 020h / out 020h, al не работает как надо, в результате прерывания все же есть, но срабатывают по одному разу.... и кранты.
     
  11. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    а при том, что прерывания тоже эмулируюцца)))
    К примеру, тот же системный таймер (irq0), обрабатываеться исключительно ядром, время от времени оповещая об этом NTVDM процесс. Тот нехотя так, откапывает в 1метре DOS участка, этот жалкий обработчик прерывания, и вручает флаг ему в руки. Этому обработчику кажеться что он типа отдуплил прерывание от железки, наивно делая out 020h, al, в то время как от этой операции должно сработать GPF и дернуть винду за ядро. :) Вобщем не DOS, а "матрица"...