Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 342
от 13.08.2002, 20:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 978
Отправлено ответов: 2909
Активность: 297.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Portnov
Статус: Опытный
Общий рейтинг: 121.64
[Подробней >>]
copycon
Статус: Начальный
Общий рейтинг: 108
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 117.29
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
igorash
Статус: Профессиональный
Общий рейтинг: 119.63
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 159.12
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 137.37
[Подробней >>]
 
LIFO
Статус: Опытный
Общий рейтинг: 136.36
Телефон: 8 01710 24758
[Подробней >>]
Топор
Статус: Профессиональный
Общий рейтинг: 117.9
URL: Хорошая Русская Металлическая команда
Телефон: (8462)500298
[Подробней >>]
Pablo
Статус: Опытный
Общий рейтинг: 129.47
URL: Моя страничка
[Подробней >>]
 
Gibbel
Статус: Опытный
Общий рейтинг: 109.5
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 123.04
[Подробней >>]
Dark_Lord
Статус: Опытный
Общий рейтинг: 133.33
[Подробней >>]
 
ASMодей
Статус: Опытный
Общий рейтинг: 127.09
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 120.43
URL: Пристанище неодинокого программиста
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 932. Уважаемые эксперты, помrогите!!! На мой вопрос о CRC-проверке ответили, что можно ее обойти... Напиш... (ответов: 5)
Вопрос № 933. Доброе время суток профессионалы. Начал изучать ассемблер совсем недавно, и на многие вопросы стараю... (ответов: 6)
Вопрос № 934. Уважаемые эксперты погите пожалуйста.Как установить хук в windows,чтобы он,перехватывал запуск какой... (ответов: 2)
Вопрос № 935. Кто подскажет, чем можно "отлаживать" 16-битные win-приложения в NT-ях (в XP в частности).... (ответов: 5)
Вопрос № 936. Доброе время суток Broken Sword. Получил твой ответ,благодарю. Понятно,что переслать значение из одн... (ответов: 4)
Вопрос № 937. Благодарю за помощь,господа. Спасибо за подробный ответ, Broken Sword. Теперь что-то прояснилось, бу... (ответов: 1)
Вопрос № 938. Вот, балуюсь тут с неким примитивным вирусом, да только линковаться он не хочет. Ассемблируется пут... (ответов: 4)
Вопрос № 939. Продолжение вопроса 923. Действительно при вызове функций Int 33h, AX=7 или AX=8 я могу выставить в ... (ответов: 3)

Вопросов: 8, ответов: 30


 Вопрос № 932

Уважаемые эксперты, помrогите!!!
На мой вопрос о CRC-проверке ответили, что можно ее обойти...
Напишите, пожалуйста, как это сделать???
Эксперт Gibbel - если можно, кинь письмо на mirrun@gtss.spb.ru, а то хотел напрямую к тебе обратиться, так адреса нету...



Вопрос отправлен: 08.08.2002, 21:28
Отправитель: Кузьмич

[Следующий вопрос >>] [Список вопросов]

Отвечает Portnov

Здравствуйте, Кузьмич!
Ну, находите в проге место, где она вычисляет CRC:
ror ax,...
xor eax,ebx
...; или что-то в этом роде. Как это реализовано на асме, не знаю, но блок-схема CRC32 у меня есть, могу выслать, если надо, пишите portnov@mdv.ru. Дальше *обязательно* должен в проге идти такой код:
cmp <чего-то>,<с чем-то>
jnz <куда-то, где выводится сообщение об ошибке>
...
Вместо cmp может быть еще test. Условный переход тоже может быть по-другому оформлен. В любом случае надо команду условного перехода заменить либо на нужное кол-во nop-ов, либо на команду безусловного перехода в то место, где выполнение программы продолжается нормально.
PS. Я же говорил, маловероятно, что у вас это выйдет... Хотя...
С уважением, Portnov.

Ответ отправлен: 09.08.2002, 20:46
Отправитель: Portnov


Отвечает copycon

Приветствую Вас, Кузьмич!
Самое простое - перехватить открытие файла (.exe) в дебагере
и смотреть что происходит.
Если программа ведет подсчет CRC прямо по живому в памяти
на свой запущенный код - тогда сложнее, надо в softice ставить бреакпоинт на чтение области памяти.
Удачи.


Ответ отправлен: 09.08.2002, 22:00
Отправитель: copycon


Отвечает baldr

Добрый день, Кузьмич!
А можно обойти ее так: если это обычная проверка системы, то сама CRC хранится в заголовке
exe-файла по смещению 12h (2 байта). Можно заново ее посчитать и записать. Надо, естественно,
знать алгоритм, но в сети, думаю, это найдется. Но, возможно, прога сама себя проверяет по
ходу выполнения, то есть, сама вычисляет контрольную сумму. В этом случае задача
усложняется в X раз, то есть, хрен знает во сколько... Потому что если прогу защищают,
то сразу несколькими степенями защиты, обычно... Ну, пробуй, если что - спрашивай еще.


Ответ отправлен: 09.08.2002, 01:27
Отправитель: baldr


Отвечает igorash

Здравствуйте, Кузьмич!
Как сломал регистрацию так и проверку ломай... регистрацию ты же вроде сломал.. :)


Ответ отправлен: 09.08.2002, 01:28
Отправитель: igorash


Отвечает masquer

Добрый день, Кузьмич!
Ну определи где находится процедура проверки, там должно быть чтение файла, инициализация CRC либо сформированная таблица, стандартный полином где-то должен фигурировать 0EDB88320h, а дальше уже смотреть, может кроме расчета и проверки результат еще где-то используется.

Ответ отправлен: 09.08.2002, 06:09
Отправитель: masquer


 Вопрос № 933

Доброе время суток профессионалы.
Начал изучать ассемблер совсем недавно, и на многие вопросы
стараюсь сам находить ответы, но в данном вопросе без вас,
чувствую, не обойдусь.Вот вопрос:
В реальном режиме ОС распределяет сегменты в памяти сама и
записывает адреса в соответствующие регистры. Так вот, залезаю в DOSDEBUG и вижу, все мои регистры содержат один и
тотже адрес! Объясните как же ето.И дальше, пытаюсь поработать с регистрами:заношу числа в DS(dc:0100 aa dd ) и потом в CS записываю команды mov ax,[0100],после выполнения в регистре АХ совсем не DD AA а машинный код команды mov.
Как же так выходит? Не из-за одного и того же адреса во всех сегментных регистрах? ПРошу вас, помогите понять это.
Огромное спасибо, с уважением.
Alex.



Вопрос отправлен: 08.08.2002, 22:48
Отправитель: alex

[Следующий вопрос >>] [Список вопросов]

Отвечает copycon

Доброе время суток, alex!
Это происходит в .com файле
ОС выделяет для .com файла один сегмент,
устанавливает cs, ds, es, ss на этот сегмент
ip на 100h и si на 0FFFEh
то-есть на все про все (и стек) у тебя 65535-FFh байт
(для ассемблера довольно много :)
000h-0FFh - PSP (всякая полезность)
Для .exe файла ты можеш организовать (прямо при запуске
делает сама ОС) сегменты данных и стека, отдельно.
А в .com это-же можно сделать вручную в своей
программе.
Удачи.


Ответ отправлен: 09.08.2002, 22:10
Отправитель: copycon


Отвечает Portnov

Приветствую Вас, alex!
Бр-р... Значится, так.
Значения в сегментных регистрах одинаковые, потому что вы, видимо, отлаживаете COM-программу, а в ней так и положено в начале выполнения. А если такая ситуация еще до загрузки проги, значит, так установила регистры DEBUG. Дальше. Как вы заносите в CS команду? Не понял. REG CS mov ax,[0100], что ли?? Не, вроде правильно сделали, да неправильно написали. Так, да?:
A
mov cx,[0100]

Тогда все ясно. Вы ведь еще не выполнили команду, а только сассемблировали ее в память. Т.е. DEBUG работает в данном случае как простенький ассемблер. При трансляции DEBUG неизбежно юзает регистры, в частности так, что в AX может оказаться код только что сассемблированной инструкции. А если вы таки выполните эту инструкцию, то будет тот же эффект. Потому что начинает ассемблировать DEBUG по умолчанию по адресу CS:0100h, т.е. как COM-файл. Так что после ассемблирования по [0100h] окажется именно код команды mov! Проверьте ту же инструкцию с другими смещениями - будут разные результаты. А для последующего использования данных в вашем коде их лучше определять собственно в коде. Т.е.
mov [2345h],0AADDh
mov ax,[2345h].
С уважением, Portnov.

Ответ отправлен: 09.08.2002, 20:47
Отправитель: Portnov


Отвечает Broken Sword

Доброе время суток, alex!
Чето ты такое спросил, я аж не въехал...
Еще раз перечитаю...
... блин, ну ты загнал!!! :) щас еще раз попробую...
так... ты в DS заносишь AADD, а в CS записываешь команды ???... мда...
все сегм. регистры содержат один и тот же адрес, ну и что?
Ну короче, как я понял - ты изменил регистр DS (да?), а потом сделал mov ax,[100] и в AX у тебя не то число что ты ожидал??? ну так есесно, mov ax,[100] равносильно mov ax,ds:[100], а ds то изменен уже! понятно?
но ты явно чего то не того спрашивал...


Ответ отправлен: 08.08.2002, 23:56
Отправитель: Broken Sword


Отвечает LIFO

Добрый день, alex!
В реальнои режиме так и должно быть!!!
В сегментные регистры загружается одно и то же значение, т.к. данные , код, стек расположены в одном и том же сегменте.
А насчет твоего вопроса, неужели ты после моих слов не догадался????
тогда смотри:
org 100h ; код начинается по смещению 100h
ы заносишь значение aa dd по адресу ds:100h, но и твоя первая команда mov ax,[100h]находится по этому же адресу!!!



Ответ отправлен: 09.08.2002, 16:02
Отправитель: LIFO


Отвечает igorash

Приветствую Вас, alex!
Именно из-за одного сегмента.... в ком-файле используется один сегмент для кода, данных и стека.... и вообще если cs=ds, то если ты пишешь в ds:100 dd aa, а потом в cs:100 пишешь mov ax, [100] то тут ясен перец что в ds:100 тоже будет mov ax, [100] и поэтому эта команда вернет тебе 2 байта от самой себя


Ответ отправлен: 09.08.2002, 01:28
Отправитель: igorash


Отвечает masquer

Здравствуйте, alex!
Если сегментные регистры одинаковые, ну cs=ds, то это com файл.
Ну так ты сам и ответил на вопрос - если сегмент один и тот же (com файл), то сначала ты заносишь одно, а потом в этот же адрес другое.

Ответ отправлен: 09.08.2002, 06:15
Отправитель: masquer


 Вопрос № 934

Уважаемые эксперты погите пожалуйста.Как установить хук в windows,чтобы он,перехватывал запуск какой-нитьпрограммы имог блокировать её дальнейшую загрузку.
Пожалуйста напешите кусок кода.



Вопрос отправлен: 08.08.2002, 23:40
Отправитель: machmil

[Следующий вопрос >>] [Список вопросов]

Отвечает Топор

Доброе время суток, machmil!
А на фига? В реестре находишь ключ NoRun и туда пишешь...



Ответ отправлен: 09.08.2002, 19:10
Отправитель: Топор


Отвечает masquer

Добрый день, machmil!
Код высылать не буду - большой он, да и нет смысла (ну и я жадный на это дело). А по вопросу - с месяц назад я уже расказывал, как это можно сделать.
Смысл в том, чтобы ловить какое нибудь сообщение, которое вновь созданное приложение обязательно будет получать, ставить хук WH_GETMESSAGE (но можно и другой подобрать), потом вызывать FindWindow или какую-нибудь другую функцию для проверки окна и посылать ему сообщение ну WM_CLOSE например

Ответ отправлен: 09.08.2002, 06:22
Отправитель: masquer


 Вопрос № 935

Кто подскажет, чем можно "отлаживать" 16-битные win-приложения в NT-ях (в XP в частности). SoftIce не предлагать, т.к. он на win16 запарывается (не всегда, но частенько)и вешает машину...
Вообще все win16 приложения в XP запускаются через какой-то NTVDM и это еще больше все портит мне кажется... Кто этим делом страдал - ответьте плз



Вопрос отправлен: 08.08.2002, 23:43
Отправитель: Broken Sword (brokensword@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Pablo

Приветствую тебя, Broken Sword!
Ты случаем не пробовал обычный TD!?
PS: А почему сломанный, а не крутой?!)))))))

Ответ отправлен: 09.08.2002, 22:19
Отправитель: Pablo


Отвечает LIFO

Здравствуйте, Broken Sword!
А в w32asm не пробовал ? Вроде бы он отлаживает и 16 и 32 битные приложение.

Ответ отправлен: 09.08.2002, 15:07
Отправитель: LIFO


Отвечает Топор

Добрый день, Broken Sword!
А борландовский TDW.EXE не пробовал? Он как раз под win16.


Ответ отправлен: 09.08.2002, 19:08
Отправитель: Топор


Отвечает Gibbel

Доброе время суток, Broken Sword!
Ну, насколько я помню, TurboDebuger работал под NTей... под XP еще не пробовал...

Ответ отправлен: 09.08.2002, 10:26
Отправитель: Gibbel


Отвечает masquer

Добрый день, Broken Sword!
Пробуй заменить первый байт в OEP на CC (int 3), а когда брякнешся, заменить на оригинальный.
Если это все возможно, учитывая то, чем ты сейчас занимаешься
NTVDM - драйвер виртуальных машин - для 16-битных вин. программ один для всех, для дос программ - для каждой свой.

Ответ отправлен: 09.08.2002, 06:34
Отправитель: masquer


 Вопрос № 936

Доброе время суток Broken Sword.
Получил твой ответ,благодарю. Понятно,что переслать значение из одного сгментного регстра в другой нельзя.
Но вопрос в другом почему у ds,cs,ss, es-один и тот же адрес
если это совершенно разные сегменты, или ОСь распологает их
в одну кучу? Ответь, так и должно быть или их можно расположить по разным адресам?
Благодарю.
Alex.



Вопрос отправлен: 09.08.2002, 01:13
Отправитель: alex

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, alex!
(заодно и к твему предыдущему вопросу (933))
Насколько я понял, у тебя смешались понятия. Разделение памяти на сегменты, распределение памяти приложениям посредством ОС и значения сегментных регистров - это абсолютно разные вещи!
Попробую это объяснить. Все нижеописанное относится к реальному режиму и, соответственно, к DOS.
Сначала введем такое понятие, как параграф. Это область памяти размером в 16 байт, которая начинается с адресов, кратных 16-ти (0, 16, 32 и т.п.). В любимой программистами 16-ричной с.с. число 16 равно 10h. Почему я обращаю на это внимание будет ясно из дальнейшего.
Теперь перейдем к понятию "сегмент". В реальном режиме один сегмент занимает всегда 64К и может располагаться в любом месте физической памяти, кратной параграфу. Происходит это из-за архитектуры процессоров 80x86. А именно, когда процессору нужно сформировать адрес ячейки памяти, то он использует 2 числа - адрес сегмента и смещение. Что обычно записывается в виде сегмент:смещение. А сам адрес формируется следующим образом - значение сегментного адреса умножается на 16 (что в 16-ричной с.с. выполняется "приписыванием" 0 справа) и к этому результату прибавляется смещение. В результате получается 20-значный физический адрес ячейки памяти.
Откуда процессор берет данные для формирования адреса. Смещение указывается в самой команде, а адрес сегмента находится в одном из сегментных регистров процессора. Какой именно сегментный регистр будет использован, зависит от команды.
Теперь посчитаем. Вся адресуемая память в реальном режиме составляет (0:0 - FFFFh:FFFFh) чуть больше 1Мбайт. Сегментных регистров у нас 4 (6 для 386+). Соответственно, одновременно мы можем адресовать не более 4*64К = 256К (384К для 386+).
Операционная система берет на себя распределение памяти для программ. Для DOS существуют два вида исполняемых файлов - COM и EXE.
При загрузке COM-программы ОС выделяет ей всю доступную на данный момент память. Сам файл не может быть больше 64К.
При этом все сегментные регистры устанавливаются в одно и тоже значение - адрес сегмента программы. Исполняемый код начинается со смещения 100h.
При загрузке EXE-программы выделяется доступная память размером не менее того, что указано в поле wMinAlloc в заголовке файла и не более того, что указано в поле wMaxAlloc. Сегментные регистры устанавливаются следующим образом:
1. ES = DS = PSP
2. SS = START_SEG + ReloSS, SP = ExeSP
3. CS = START_SEG + ReloCS, IP = ExeIP,
где PSP = Program Segment Prefix, выделяется ОС,
START_SEG - адрес начального сегмента программы, выделенный ОС,
ReloSS, ExeSP, ReloCS, ExeIP - значения соответствующий полей в заголовке программы.
Так что ничего страшного в равенстве значений сегментных регистров нет. И это не мешает переустанавливать их по своему желанию (за исключением регистров CS и IP).
А по поводу вопроса 933, то там ты записываешь по одному и тому же адресу (CS=DS!) сначала значение 0DDAAh, а потом изменяешь его на код команды mov... В результате в ax у тебя и получается совсеи не то, что ты ожидал...


Ответ отправлен: 09.08.2002, 12:53
Отправитель: Ayl


Отвечает Dark_Lord

Приветствую Вас, alex!
Вы наверное используете формат файла .com, а в нём существует только один сегмент для всего, поэтому все сегменты указовают на одну и ту-же отметку!

Ответ отправлен: 09.08.2002, 01:28
Отправитель: Dark_Lord


Отвечает igorash

Приветствую Вас, alex!
В ехе-файле коду, данным и стеку может отводиться свой сегмент и не один, так что вот и ответ....

Ответ отправлен: 09.08.2002, 01:56
Отправитель: igorash


Отвечает Broken Sword

Здравствуйте, alex!
надеюсь, ds, cs, ss, es - это ты так сократил названия сегментов ? (data segment, code segment и т.п.), потому как ds, cs.... - это вообще СЕГМЕНТНЫЕ РЕГИСТРЫ, и понятие "адрес сегментного регистра" не существует. Вот ЗНАЧЕНИЕ, которое содержит любой из этих регистров и указывает на соответсв. сегмент в памяти, т.ч. ты просто неправильно выразился...

Теперь, насчет того, почему они равны. А почему это тебя так удивлио? Вот допустим COM-прога... При загрузке в ОП ДОС автоматически во все сегм. регистры пихает одно и то же значение (т.е. CS=DS=SS=ES, кстати, почитай про модели памяти и обрати внимание на model tiny), и так удобнее и получается некий "мини-flat", не нужно думать в каком ты сегменте, ненужно никаких "префиксов переопределения сегмента", т.е. допустим mov ax,cs:100 это то же самое что и mov ax,ds:100 и тебе вообще достаточно знать только смещение в памяти!!! Это должно только радовать, по-моему. Вот в экзешниках (файлы с расширением EXE) все обстоит по другому... Тут сегменты данных и кода находятся по разным адресам (хотя это не обязательно), тут ты должен постоянно помнить, что mov ax,[100] - это mov ax,ds:[100], а чтобы сделать то же самое с данным из сегмента кода, то придется уже лепить тот самый "префикс переопред. сегмента": mov ax,cs:[100], вообщем идею ты понял...

Ответ отправлен: 09.08.2002, 02:20
Отправитель: Broken Sword


 Вопрос № 937

Благодарю за помощь,господа.
Спасибо за подробный ответ, Broken Sword.
Теперь что-то прояснилось, буду копать дальше.
Пока! Alex.



Вопрос отправлен: 09.08.2002, 08:24
Отправитель: alex

[Следующий вопрос >>] [Список вопросов]

Отвечает LIFO

Добрый день, alex!
Отправляй благодарности персонально Broken Sword'у.


Ответ отправлен: 09.08.2002, 16:02
Отправитель: LIFO


 Вопрос № 938

Вот, балуюсь тут с неким примитивным вирусом, да только линковаться он не хочет. Ассемблируется путем. Код в приложении.
Используется МАСМ32
Ассемблировал как ML /c /coff /cp /nologo
и вообще все по умолчанию установок RadAsm IDE
Жалоба линкера звучит так:
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
int21h.obj : warning LNK4078: multiple ".data" sections found with different attributes (C0220040)
int21h.obj : fatal error LNK1190: invalid fixup found, type 0x0001
Make error(s) occured.


Приложение:


Вопрос отправлен: 09.08.2002, 10:24
Отправитель: Саня

[Следующий вопрос >>] [Список вопросов]

Отвечает Pablo

Доброе время суток, Саня!
Во первых если делаешь COM файл, то лучше удрасть всякое упоминание о стеке. Потом вот в COM файлах всегда точка входа одна это 100h, а ты ее определил на другое место!
Потом тут по поводу int27h ноа как ни странно часто глюит, ты лучше используй функцию 31h сервиса int21h.

Ответ отправлен: 09.08.2002, 22:19
Отправитель: Pablo


Отвечает masquer

Здравствуйте, Саня!
Рано тебе еще вирусы писать если ты компилятор для вин32 пытаешься скомпилировать приложение для дос.

Ответ отправлен: 09.08.2002, 10:49
Отправитель: masquer


Отвечает LIFO

Приветствую Вас, Саня!
Во первых - никакой это не вирус:( ака здесь нет размножения. Это обыкновенный резидент, кот. вешается на 21 прерывание.
Мне не нравится эта последовательность:
mov dx,offset finish-offset _start
shr dx,1
shr dx,1
shr dx,1
shr dx,1
inc dx
int 27h
Посмотри внимательно описание прерывания 27 - в dx должно быть кол-во байтов, оставленных резидентными. У тебя получится, что в памяти останется этот код :
xor ax,ax
mov es,ax
mov ax,21h
shl ax,1
shl ax,1 = 8 байт ( dx = 8)
вместо кода вывода строки. Вот как тебе надо:
В тасме твой код линкуется без проблем.


Приложение:

Ответ отправлен: 09.08.2002, 15:06
Отправитель: LIFO


Отвечает ASMодей

Приветствую Вас, Саня!
Ассемблируй как ml.exe /AT /nologo.
Ключ /coff используется для создания Windows-приложений.


Ответ отправлен: 10.08.2002, 07:21
Отправитель: ASMодей


 Вопрос № 939

Продолжение вопроса 923.
Действительно при вызове функций Int 33h, AX=7 или AX=8 я могу выставить в CX и DX максимум и минимум, но это справедливо ТОЛЬКО ДЛЯ WINDOWS 98, при DOS это не дает ничего! Как будто я вообще не вызывал 7 и 8. К сожалению, моя программа должна работать в DOS.
Что можете посоветовать уважаемые эксперты?
Специально для Padlo – курсор доходит только до значений 512, 256(приблизительно, так как довольно трудно проследить в TD точные значения). Это так важно для моего вопроса?
Напоминаю, что я работаю на резолюции 1024*768.
Best regards
Alex Burzak.



Вопрос отправлен: 09.08.2002, 16:04
Отправитель: Alex (alexneta@aport2000.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Portnov

Здравствуйте, Alex!
А вы уверены, что загружаете под DOS-ом драйвер мыши, Mouse.com, хотя бы?
С уважением, Portnov.

Ответ отправлен: 09.08.2002, 20:48
Отправитель: Portnov


Отвечает Артём Шегеда

Приветствую Вас, Alex!

Что-то у меня точность Ваших сведений вызывает сомнения. Программа, приведённая в приложении (компилированная с использованием модулей с моего сайта) работает как под голым DOS, так и под Windows. Под DOS использовал Microsoft (R) Mouse Driver Version 8.20 на PS/2


Приложение:

Ответ отправлен: 09.08.2002, 17:08
Отправитель: Артём Шегеда


Отвечает ASMодей

Приветствую Вас, Alex!
У меня мышь прекрасно работает в DOS, позволяя
устанавливать любые границы диапазона передвижения.
А драйвер я использую даже не родной, а mouse.com от
другой мыши. Может у тебя в программе чего не так?
PS. Драйвер для мыши можно найти на сайте производителя
или поисковиком.


Ответ отправлен: 11.08.2002, 14:36
Отправитель: ASMодей



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (41)
C / C++ (28)
Perl (14)
Delphi (19)
Pascal (31)
Basic / VBA (11)
Java / JavaScript (12)
PHP (11)
MySQL / MSSQL (11)
Пользователю
Windows 95/98/Me (51)
Windows NT/2000/XP (33)
"Железо" (40)
Поиск информации (19)
Администратору
Windows NT/2000/XP (20)
Linux / Unix (13)
Юристу
Гражданское право (7)
Семейное право (5)
Трудовое право (6)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное