Вопрос № 22513: Ув. Эксперты ! Как оставить в памяти резидент,написанный под ДОС, в Windows
(т.е чтоб резидент оставался в памяти после того, как я завершу сеанс DOS в "винде").
Я учусь по книге Олега Калашникова... До WinAPI еще не дошел. А вот ре...Вопрос № 22518: Уважаемые эксперты, вот мой вопрос: какой минимальный отрезок времени можно отмерить с помощью таймера ПК (если не ошибаюсь i-8253)?...Вопрос № 22526: Ув. Эксперты ! Может, запускать резидент при запуске компьютера, и тогда,может быть, "винда" не выкинет мой резидент с памяти ! Я догадываюсь,что можно воспользоваться файлом
autoexec.bat (он же грузиться в самом начале: до загрузки Дос).<b...
Вопрос № 22.513
Ув. Эксперты ! Как оставить в памяти резидент,написанный под ДОС, в Windows
(т.е чтоб резидент оставался в памяти после того, как я завершу сеанс DOS в "винде").
Я учусь по книге Олега Калашникова... До WinAPI еще не дошел. А вот резидент хочу написать, чтоб нажатие
клавиатуры отлавливал(ну и делал бы то, что я хочу: не важно) в Windows(без всяких там перехватов сообщений :) : напрямую)!
Отправлен: 22.06.2005, 16:53
Вопрос задал: SergeyBond (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Voituk Alexander
Здравствуйте, SergeyBond!
Никак у тебя не получится. Только загрузкой dll и установкой хуков. При завершении сеанса DOS вся память освобождается. И естественно твой резидент тоже.
Ответ отправил: Voituk Alexander (статус: 8-ой класс)
Отправлен: 22.06.2005, 17:15 Оценка за ответ: 4
Отвечает: Евгений Иванов
Здравствуйте, SergeyBondт
Такое не получится. или пиши драйвер для win32
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 22.06.2005, 17:38 Оценка за ответ: 4
Отвечает: Ayl
Здравствуйте, SergeyBond!
Хотеть не вредно, но не получится. Мало того, даже под ДОСовской сессией ты не сможешь перехватить все нажатия (например, Ctrl+Alt+Del). Просто ДОС-сессия запускается как виртуальная задача со своей таблицей прерываний и запрос на прерывание ей передается только как большая услуга виндов, которая сидит себе в нулевом кольце и в ус не дует.
Тебе нужно либо пользоваться виндовыми средствами, либо писать нечто, что будет грузиться в защищенном режиме ДО виндов.
--------- Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 23.06.2005, 12:15
Вопрос № 22.518
Уважаемые эксперты, вот мой вопрос: какой минимальный отрезок времени можно отмерить с помощью таймера ПК (если не ошибаюсь i-8253)?
Отправлен: 22.06.2005, 17:51
Вопрос задал: xaoc (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Евгений Иванов
Здравствуйте, xaoc!
Тактовая частота каждого канала равна 1,19318 МГц, т. е.
каждый такт имеет длительность 0,84 мсек. Вход GATE каналов 0 и
1 всегда имеют высокий уровень, поэтому счет на этих каналах
разрешен всегда. Вход GATE канала 2 управляется битом 0 порта PB
интерфейса 8255 (см. гл. 5), связанного с портом 61h.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 22.06.2005, 18:05
Вопрос № 22.526
Ув. Эксперты ! Может, запускать резидент при запуске компьютера, и тогда,может быть, "винда" не выкинет мой резидент с памяти ! Я догадываюсь,что можно воспользоваться файлом autoexec.bat (он же грузиться в самом начале: до загрузки Дос).
Если это не пройдет, то тогда я не пойму: как устанавливаются драйвера ДОСовские в config.sys ? Ну, вообщем, помогите разобраться...Только чтоб все ясно было(я имею в виду без "виндузных" высказываний: я еще не приступил к изучению WInAPI).Все! Заранее благодарен!
Отправлен: 22.06.2005, 18:55
Вопрос задал: SergeyBond (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Евгений Иванов
Здравствуйте, SergeyBond!
win2k даже использует драйвера для жёсткого диска свои! не то, что остальное ;)
если хочешь, чтобы это работало, размести свою ПЗУ и оформи её правильно и настрой прерывания и т.п.
тогда система просто обязана обращаться к её сервисам, если они важны для системы..вот и продумай..
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 22.06.2005, 19:01 Оценка за ответ: 3
Отвечает: Mad_C
Здравствуйте, SergeyBond!
Вам нужно понять главное - windows и dos работают в разных, и в корне не совместимых между собой режимах! То, что позволительно программе дос (запись портов, чтение/запись памяти абы-где) совершенно не приемлимо для окошек. Винда, какая она есть сейчас, это уже не надстройка над дос и не использует его функции и тем более речи быть не может об обработке каких-либо событий, проискодящих в коде, выполняющимся в защищенном режиме (винды) из кода реального режима (дос). То самое окошко эмуляции дос, это не более
чем ЭМУЛЯЦИЯ функций дос, это такой же эмулятор, как например эмулятор денди или спектрума на pc. Что касается autoexec'а - в нынешних виндах он не используется, перед запуском сессии дос винда выполняет c:windowssystem32autoexec.nt и config.nt, после закрытия сессии дос, винда благополучно забывает обо всем, что касалось этого сеанса.
Ответ отправил: Mad_C (статус: 1-ый класс)
Отправлен: 22.06.2005, 20:16 Оценка за ответ: 5 Комментарий оценки: Спасибо
Отвечает: Berkut
Здравствуйте, SergeyBond!
Дело в том, что WinXP при загрузке игнорирует файлы autoexec.bat и config.sys. Резидентную ДОС-программу под виндой в памяти оставить нельзя.
Ответ отправил: Berkut (статус: 1-ый класс)
Отправлен: 23.06.2005, 16:59 Оценка за ответ: 4