Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 598
от 24.07.2003, 15:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3777 Отправлено ответов: 11088 Активность: 293.5 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 122.94 URL: Методы оптимизации работы ПК [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.19 URL: Программирование [Подробней >>] |
Теоретик Статус: Доверительный Общий рейтинг: 115.2 [Подробней >>] |
getoff Статус: Начальный Общий рейтинг: 107.54 [Подробней >>] |
Дмитрий Статус: Профессиональный Общий рейтинг: 126.82 [Подробней >>] |
Евгений Иванов Статус: Опытный Общий рейтинг: 140 URL: Super Assembler Software [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.23 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 121.53 URL: мой сайт [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 107.61 URL: Beeblebrox / TMA HomePage [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 120.87 [Подробней >>] |
Hangatyr Статус: Опытный Общий рейтинг: 114.82 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3731. внимательно смотрите на ник от кого пришел вопрос гандон хуба подставляет чужие e-mail... (ответов: 1)
Вопрос № 3732. Игра Европа 2. Известен адрес, где находится код клавиши при нажатии которой устанавливается пауза, ... (ответов: 3)
Вопрос № 3733. В доках Iczeliona, описывается методика написания VxD. Но это засада, так как под NT это не работает... (ответов: 2)
Вопрос № 3735. во первых строках моего писима хатю сказать, что книга клаааасная!! кагда мона будет скачать 2-й том... (ответов: 4)
Вопрос № 3736. хайте, эксперты! скачал я демок с инета 256б каждая, штук 100, некоторые с исходниками на асме. како... (ответов: 5)
Вопрос № 3739. Здравствуйте, уважаемые эксперты! Я пытаюсь подключить устройство через LPT-port. Под ДОС у меня вс... (ответов: 2)
Вопрос № 3740. Здравствуйте,друзья.Пытаясь написать прогу,я упрастил для себя задачу.Программа должна выводить в AX... (ответов: 3)
Вопрос № 3741. Доброго времени суток господа Эксперты. У меня есть вопрос которыЙ надеюсь вы мне поможете прояснит... (ответов: 6)
Вопросов: 8, ответов: 26
Вопрос № 3731 |
внимательно смотрите на ник от кого пришел вопрос
гандон хуба подставляет чужие e-mail
Вопрос отправлен: 19.07.2003, 11:05
Отправитель: Broken Sword (brokensword@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Доброе время суток, Broken Sword!
Хе-хе. А я это предсказывал в письме к нашему читателю Antonio всего пару дней назад...
Это нормально для немодерируемой конференции, где вопрошающий может оставаться анонимным. Пример такого поведения легко найти в конфах иерархии MTU.INFORM - сразу после отмены модераториала началась подмена адресов и ников.
Есть 2 варианта решения этой проблемы:
1. введение команды модераторов и отмена анонимности(как в FIDONet-конференциях).
2. просто игнорирование таких выпадов.
Второй вариант был применен в конфах MTU.INFORM
Ответ отправлен: 19.07.2003, 12:09
Отправитель: Tigran K. Kalaidjian
Вопрос № 3732 |
Игра Европа 2. Известен адрес, где находится код клавиши при нажатии которой устанавливается пауза, хочу заменить этот код на код средней клавиши мыши, может кто-нибудь подскажет код средней клавиши мыши и оператор, если он отличается.
Вопрос отправлен: 19.07.2003, 20:44
Отправитель: ilich (ilich@mail.wplus.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, ilich!
Ну-ну. А какой там был код до этого, и вообще раньше пауза устанавливалась на клавиатуре или на мыше? Если на клаве - то тебе будет трудно...
> и оператор, если он отличается
Зависит от того, что там было.
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 20.07.2003, 21:00
Отправитель: Bob Johnson
Отвечает Теоретик
Добрый день, ilich!
Существует вида кодов клавиш: ASCII-коды, скан-коды и виртуальные коды Windows.
Первые два связаны только с клавиатурой, соответственно средняя кнопка мыши никак с их помощью не задаётся.
А вот Windows имеет виртуальные ключи для кнопок мыши.
Левая кнопка мыши: 1
Правая кнопка мыши: 2
Средняя кнопка мыши: 4
Соответственно, получится или нет у вас сделать паузу зависит от того, какие коды использует игрушка.
Ответ отправлен: 20.07.2003, 17:36
Отправитель: Теоретик
Отвечает Tigran K. Kalaidjian
Приветствую Вас, ilich!
Э-э.. Что такое "код средней клавиши"? Доступ к мыши и клавиатуре осуществляется разными способами. Например для получения кода нажатой клавиши можно использовать int16h, а статус кнопок мыши получается с помощью одной из ф-ций прер-я int33h. Код средней клавиши в этом случае - 010b=2d
Если Вас интересует программирвание мыши под ДОС, то пишите на kalaidjian@pochtamt.ru - вышлю доки по теме.
Ответ отправлен: 19.07.2003, 22:55
Отправитель: Tigran K. Kalaidjian
Вопрос № 3733 |
В доках Iczeliona, описывается методика написания VxD. Но это засада, так как под NT это не работает. Подскажите есть что-либо подобное под NT ядро, главное где взять примеры с описанием. Очень надо. Заранее благодарю.
Вопрос отправлен: 20.07.2003, 00:18
Отправитель: demwf
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, demwf!
Под NT надо писать другие драйвера - WDM, например. Для этого тебе надо прежде всего NT DDK под ту винду, под которую ты будешь писать драйвер. Ссылка на XP DDK есть на моей странице (я ее сейчас на память не помню), если она еще работает (раздел "файлы"). http://bobjohnson.nm.ru Там же есть (должны быть) и примеры ("там же" - в смысле DDK, а не на моей странице).
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 20.07.2003, 21:00
Отправитель: Bob Johnson
Отвечает getoff
Доброе время суток, demwf!
В системе NT принята совершенно другая системя для драйверов WDM. Поэтому примеры и не работали. Примеры для NT можно взять в том самом DDK для нужной системы с сайта M$.
Ответ отправлен: 20.07.2003, 04:24
Отправитель: getoff
Вопрос № 3735 |
во первых строках моего писима хатю сказать, что книга клаааасная!! кагда мона будет скачать 2-й том??
а вопрос вот какой:
у меня MASM 6.13 и он под виндой(98) не хочет конпилировать, пишет
DOSXNT : fatal error DX1140: DOSXNT.386 required to run with Windows
DOSXNT : fatal error DX1230: DOSXNT initialization failed
можно чтонить с этим сделать?? а то тяжко перегружаться под дос все время((
Вопрос отправлен: 20.07.2003, 07:19
Отправитель: Poma
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Poma!
1. Учите все-таки Русский Язык (это относится ко многим людям, которые задают вопросы), т.к. "во первых строках", "хатю", "мона", "конпилировать", "чтонить" и т.д. уже просто достает читать. Вы думаете, что это модно или красиво? Да это полный отстой.
> во первых строках моего писима хатю сказать, что книга клаааасная!! кагда мона будет скачать 2-й том??
Клево. А что за книга хоть?
> DOSXNT : fatal error DX1140: DOSXNT.386 required to run with Windows
Ну вот и найди этот самый DOSXNT.386. Это - файл (видимо). А помочь тебе в этом может яндекс.
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 20.07.2003, 21:00
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Добрый день, Poma!
Добавьте следующую строку в system.ini(секция [386Enh]):
device=DOSXNT.386
Ну, и путь, если понадобится.
Ответ отправлен: 20.07.2003, 14:57
Отправитель: Tigran K. Kalaidjian
Отвечает Дмитрий
Доброе время суток, Poma!
Вот описание проблемы и ее решение:
DX1140: DOSXNT.386 driver required to run with Windows
For ML.EXE to run with the Microsoft Windows operating system, the
driver called DOSXNT.386 must be specified in the [386Enh] section of
SYSTEM.INI as follows:
DEVICE=
Ответ отправлен: 22.07.2003, 11:14
Отправитель: Дмитрий
Отвечает Евгений Иванов
Приветствую Вас, Poma!
Тебе нужно загружать библиотеку DOSXNT.386 из секции
[386Enh] файла system.ini
device=DOSXNT.386
Ответ отправлен: 20.07.2003, 13:50
Отправитель: Евгений Иванов
Вопрос № 3736 |
хайте, эксперты!
скачал я демок с инета 256б каждая, штук 100, некоторые
с исходниками на асме. каков принцип работы всех этих
демок, у меня с графикой получается только рисовать точки,
линии, линии справо-налево, меняя цвет на 1. Там-то красиво,
хоть и с 320х200х256, хоть и 256байт. К примеру, линия
ползет по экрану, линия толстая и как-будто светится,
оставляя за собой след, который плавно исчезает.
принцип построения таких программ каков? в исходнике
почти ничего непонял. Или пример "плазма", там вообще ничего непонять, даже где там точки выводятся.
и ещё, поясните пожалуста, что,где куда в исходнике и зачем,
т.е. что какая команда делает и зачем, особенно. с ;*
Приложение:
Вопрос отправлен: 20.07.2003, 11:35
Отправитель: Zensor_ (zasm@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, Zensor_!
В основном все эти демки используют изменения палитры для получения соответствующего эффекта. Например эффект исчезания линии можно достичь, если каждую точку линии нарисовать своим цветом, предварительно загрузив в регистры палитры одно и тоже значение, а затем последовательно изменять цвета для каждого регистра палитры на более темный до получения черного цвета.
Насчет "ничего не понятно" - ничего удивительного, в таких демках используется множество "вывертов" как непосредственно с ассемблером, так и с аппаратной частью. Чтобы разобраться, нужно обложиться документацией (в примере с плазмой - справочник по командам ассемблера и справочник по видеоадаптору VGA). После чего последовательно на бумажке (можно и в отладчике) выполняешь программу. Пытаешься понять, что делает эта команда (или блок команд, что более правильно). Не в плане "загружает число тринадцать (шестнадцатеричное) в регистр AX", а "использует прерывание 10h (прерывание видеоBIOS) для установки с помощью функции 0, указанной в AH, режима экрана 320*200 256 цветов (режим 13h, указывается в регистре AL)". Когда ты так распишешь всю программу на блоки, ты уже вчерне сможешь приблизительно понять ее логику. После этого начинаешь понимать математику, например, почему для построения плазмы используется исенно такой закон. Когда ты таким образом отпрепарируешь десяток демок, в дальнейшем ты уже "на лету" будешь вычленять подобные куски. И дело пойдет гораздо проще.
Насчет программы рисования плазмы. Вначале заполняются 66 регистров палитры по определенному закону (двумя блоками по 33 регистра в блоке). Затем с помощью FPU заполняется 512 элементов массива с помощью некоторого синусоидального закона. Далее, начиная с метки @MainLp экран заполняется точками с цветом, выисляемым также по некоторому закону. Вывод точки выполняется с помощью команды stosb перед командой loop @x_Loop. Все, что написано перед этим stosb - определение цвета точки (точнее, индекса в палитре). Когда ты декодируешь эту функцию, то ты должен понять, как прога устроена.
Ответ отправлен: 20.07.2003, 22:26
Отправитель: Ayl
Отвечает Broken Sword
Здравствуйте, Zensor_!
не будете ли вы столь любезны запаковать все 100 скачанных демок в один zip и кинуть на brokensword@mail.ru ? Век не забуду!
во всех подобных демках ОЧЕНЬ активно используется сопроцессор, и вывод через регистры видеокарты. Впринципе там все очень просто, если знать математику и принципы создания визуальных эффектов
Ответ отправлен: 21.07.2003, 23:31
Отправитель: Broken Sword
Отвечает Евгений Иванов
Приветствую Вас, Zensor_!
Настройка палитры или создание оной.
>mov di, 20*320;*the pixel is putting there?
Да, на строчку 20.
>mov word ptr [x], 160;*
Всего 160 строчек из 200-от.
То есть, выводятся линии за линией по вертикали.
Что выводить (какой цвет), берётся по синусоидальному закону.
Заранее заполняется таблица для быстроты.
Ответ отправлен: 20.07.2003, 13:49
Отправитель: Евгений Иванов
Отвечает Beeblebrox
Приветствую Вас, Zensor_!
Рано тебе еще. Вообще-то демки - это высший пилотаж, в особенности 256-байтные. Осваивай постепенно режим 13h (320x200 256 цветов), рисуй точки, группы точек, изменяй палитру, синхронизируй вывод с обратным ходом луча, изучай математику и ассемблер. Очень полезный ресурс в инете http://www.enlight.ru (demo.design FAQ)
Ответ отправлен: 21.07.2003, 16:45
Отправитель: Beeblebrox
Отвечает Bob Johnson
Добрый день, Zensor_!
Ну ты даешь...
> и ещё, поясните пожалуста, что,где куда в исходнике и зачем, т.е. что какая команда делает и зачем, особенно. с ;*
Мне кажется, что среди нас нет автора этой демки (хотя бы потому, что там комментарии на немецком языке), так что объяснить тебе никто не сможет (это надо понять именно то, как автор делал задуманный эффект). Странно, почему только в этой демке не сделали перед выходом команды
mov al, 3
int 10h
т.к. это даст переход в текстовый режим, а размер будет тогда ровно 256 байт. (ah тут все равно 0, т.к. после shr ax, 10 inc ax ah всегда будет 0).
> каков принцип работы всех этих демок
Надо придумывать эффект и простой алгоритм его реализации. При этом изначально демка может занимать 300 и даже больше байт, а потом ты начинаешь думать, как то, что ты сделал уменьшить еще.
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 20.07.2003, 21:01
Отправитель: Bob Johnson
Вопрос № 3739 |
Здравствуйте, уважаемые эксперты!
Я пытаюсь подключить устройство через LPT-port.
Под ДОС у меня всё получилось, теперь хочу разобраться
как сделать всё под Windows, но под последней не получается:
выдаёт ошибку. При отладке под сайсом при вызове CreateThread
вообще всё виснет. Ума не приложу в чём проблема. Пользуюсь в
качестве пособия туториалами Iczelion'a, компилирую тасмом.
Подскажите, пожалуйста, в чём моя ошибка.
Приложение:
Вопрос отправлен: 20.07.2003, 13:40
Отправитель: 86 a5 ad ef (difuzion@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Привет, тёзка!
>
! push threadID
надо так
push offset threadID
и вообще советую использовать при адресации [], чтобы хоть самому не
путаться!
а то пишешь:
mov al,sfal
а чего имел в виду, постоянную заносишь или из адреса?
А вот так
mov al,[sfal]
сразу ясно, что из памяти!
push 3bch
pop dx
лучше
mov dx, 3BCh
не намного меньше, но быстрее, так как стек не использует!
shtatno:
push 3bch
pop dx
Зачем второй раз?
Ответ отправлен: 20.07.2003, 19:02
Отправитель: Евгений Иванов
Отвечает _vt
Приветствую Вас, 86 a5 ad ef!
Работать напрямую с LPT-портом можно только через драйвер, а у тебя обычная программа
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 23.07.2003, 11:12
Отправитель: _vt
Вопрос № 3740 |
Здравствуйте,друзья.Пытаясь написать прогу,я упрастил для себя задачу.Программа должна выводить в AX и BX колличество "срабатывания"генератора случайных чисел,чтобы потом увидеть
в отладчике статистику.Это как если подбросить 100 раз монетку и результат записать в эти регистры.Ну что-то я намудрил наверное со стеком.Где я ошибся ? Не судите строго,
заранее благодарен.Yury.
Приложение:
Вопрос отправлен: 20.07.2003, 15:02
Отправитель: Yury (ch_y@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Доброе время суток, Yury!
Процедура rand правильная, а алгоритм статистики запутан донельзя, ошибок море... Проще новую программу написать, чем эту исправить...
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 23.07.2003, 11:12
Отправитель: _vt
Отвечает Hangatyr
Доброе время суток, Yury!
1. Что значит загадочная последовательность инструкций
mov bx, ax
xor ax, ax
mov ax, bx
2.
xor eax,eax
xor ebx,ebx
jz r
Команда XOR тоже влияет на состояние флага ZF, который вы проверяете, т.е. если нужно проверить равен ли нулю DX эти инструкции нужно будет разместить или до или после XOR.
3.
mov cx,100
push cx
xor cx,cx
Тоже не совсем понятно - процедура rand не использует CX. Собственно, в этом и есть ошибка - регистр CX помещается в стек только один раз, а извлекается 100h раз. Нужно поставить push cx где-нибудь после Lebel_1.
В приложении подправленный вариант программы.
Приложение:
Ответ отправлен: 20.07.2003, 16:00
Отправитель: Hangatyr
Отвечает Евгений Иванов
Здравствуйте, Yury!
Ну... хотя у тебя и мусора тоже полно.., но вот так должно получше:
cseg segment
assume cs:cseg,ds:cseg,es:cseg,ss:cseg
org 100h
.386
Begin:
int 3
mov cx,100
Lebel_1:
push cx
;!!xor cx,cx ;! по моему, лишняя команда
;!! Lebel_1: ;! Со стеком сразу видна ошибочка; метку Lebel_1 надо пораньше, перед push.
call rand
mov bx,ax
;!!xor ax,ax ;!ты думаешь, AX портится, когда в BX копируешь? :)
;!!mov ax,bx
xor dx,dx
mov cx,2
div cx
;!!cmp dx,0
xor eax,eax
xor ebx,ebx
or dx, dx ;!здесь надо, XOR портит флаг Z
jz r
jmp o
r:
;!!add x,1
inc [x] ;лучше так
jmp e
o:
;!!add y,1
inc [y] ;лучше так
e:
pop cx
loop Lebel_1
mov al,x
mov bl,y
int 20h
x db 0
y db 0
Ответ отправлен: 20.07.2003, 22:33
Отправитель: Евгений Иванов
Вопрос № 3741 |
Доброго времени суток господа Эксперты.
У меня есть вопрос которыЙ надеюсь вы мне поможете прояснить.
Вознаграждение - моя безграничная признательность и БОЛЬШОЕ уважение.
Мне нужна программка которая зажигает светодиод NumLock'a.
Под DOS я ее написал без больших проблем, но дело в том что мне она нужна под Win32. Написал под Win32 но основной код взял из Dos'овской, я считал, что никаких прерываний и фунций Dos не использую дожно работать. Но не тут то было
Программа вроде компилируеся, но не работает, вылетает с ошибкой программа выполнила не ту операцию и т.д.
Насколько я разобрался она пытается писать не в ту облать памяти, надо в 0040:0017 а она пишет например в 0187:00401003 (из информации об ошибке).
Вроде бы Api функций включающих Numlock нету, как же быть?
Обе проги в приложении.
Буду очень благодарен, за обьяснение проблеммы.
Приложение:
Вопрос отправлен: 20.07.2003, 15:26
Отправитель: Евгений
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, Евгений!
> я считал, что никаких прерываний и фунций Dos не использую дожно работать
Адресация памяти в Win32 тоже другая, и использовать область данных BIOS нельзя. А API-функции, по-моему, есть, эксперты по Win32 напишут...
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 23.07.2003, 11:12
Отправитель: _vt
Отвечает Теоретик
Доброе время суток, Евгений!
0187:00401003 - это не то, куда она пишет, а адрес инструкции, в которой произошла ошибка.
0187 - это значение регистра CS.
В своей программе вы нарушили множество принципов работы с полской моделью памяти.
Во-первых, сами меняете значение сегментного регистра.
Прикладные программы этого делать НЕ ДОЛЖНЫ!
Во-вторых, в адресном пространстве Windows-приложений нет никаких переменных BIOS.
Ваша программа обращается к адресу 00000417h, а что там находится - зависит
от конкретной разновидности Windows, но в любом случае писать туда нельзя.
Наконец, пожурив немного, открою секрет, как сделать то, что вы хотите -
поиграть с NumLock. Существует процедура keybd_event, которая эмулирует
нажатие или отжатие клавиши.
Для того, чтобы "мигнуть" NumLock'ом, достаточно его только "нажать",
но чтобы небыло глюков, его нужно ещё и отпустить.
Делается это так:
invoke keybd_event,144,0,0,0 ; типа как нажимаем
invoke keybd_event,144,0,2,0 ; типа как отпускаем
144 - это виртуальный код клавиши NumLock.
Вам остаётся только дописать заголовки и выход из программы.
Процедура keybd_event принадлежит библиотеке user32.dll
Ответ отправлен: 20.07.2003, 20:15
Отправитель: Теоретик
Отвечает Hangatyr
Добрый день, Евгений!
Тут все зависит от того, под какую версию винды вы пишите:
1. NT:
call keybd_event, VK_NUMLOCK, 45h, KEYEVENTF_EXTENDEDKEY, 0
call keybd_event, VK_NUMLOCK, 45h, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0
Т.е. просто нажали и отпустили.
2. Win9x:
Используйте GetKeyboardState/SetKeyboardState. Им в качестве параметра передается адрес массива, в котором хранятся статусы кнопок.
call GetKeyboardState, offset keys
mov byte ptr keys[VK_NUMLOCK], 1
call SetKeyboardState
Ответ отправлен: 20.07.2003, 16:44
Отправитель: Hangatyr
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Евгений!
Вы пробовали работать с памятью, находясь на 3-м кольце защиты. WIN32 такого не терпит от простых смертных =)
Так что переходите на нулевое кольцо и там уже работайте напрямую с памятью. Не гарантирую, что будет работать, но попробовать можно. О том, как сесть на 0-е кольцо читайте в ближайших выпусках рассылки (вопрос N3724).
Ответ отправлен: 21.07.2003, 16:20
Отправитель: Tigran K. Kalaidjian
Отвечает Евгений Иванов
Здравствуйте, Евгений!
В защищённом режиме нет сегментов, там переключатели (селекторы).
То есть, процессор сам берёт число из сегментного регистра и смотрит таблицу
и находит соответствие этому номеру нужный адрес, понятно?
Попробуй зажечь лампочку NumLock'a с помощью портов.
Вроде в win9x можно в порты писать, а в NT можно использовать библиотеку
HWIODRV.DLL
или
NTHWIO.SYS
и
HWIO95.VXD.
Ищи их на tuner.ixbt.com
программа FMRadio.
tuner.ixbt.com/soft/soft_tv_fm_001.html
Эти DLL внутри архива с программой
или драйвер:
www.hg.pp.ru/downloads/giveio.zip
Посылай эту команду в порт 64h:
0edH Turn LED 'lock key' lights on or off. First send 0edH, then send byte:
¤7€6€5€4€3€2€1€0§
Ў not usedЃcЃnЃsЎ
ЄЂ‰Ђ‰Ђ‰Ђ‰Ђ‰·‰·‰·
Ў Ў « ScrollLock light 01H=turn on
Ў « NumLock light 02H=turn on
« CapsLock light 04H=turn on
The bit positions 0-3 correspond to bits 4-6 of the keyboard flags
variable in the BIOS Data Area. You should make an effort to keep the
flags in sync with the lights. For instance, if you do a big favor for
the user and set his ten-key pad into NumLock mode (by setting bit 5 of
0:0417) then be sure to turn on the corresponding LED (e.g., bit 1).
Только сначала проверяй, что можно посылать!
Ответ отправлен: 20.07.2003, 22:33
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Здравствуйте, Евгений!
Читай как ты про защищенный режим... Нельзя в нем менять сегмент вот так просто.
По вопросу: кажется еще был один метод, основанный на выводе данных в порт - используй его, только для этого перейди вначале на нулевое кольцо, т.к. из третьего с портами работать нельзя.
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 21.07.2003, 11:59
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (33) C / C++ (23) Perl (4) Builder / Delphi (20) Pascal (22) Basic / VBA (11) Java / JavaScript (11) PHP (8) Криптография (8) WinAPI (12) |
Пользователю Windows 95/98/Me (44) Windows NT/2000/XP (40) "Железо" (33) Поиск информации (23) |
Администратору Windows NT/2000/XP (23) Linux / Unix (9) |
Юристу Гражданское право (11) Семейное право (6) Трудовое право (9) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||