Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

снять показания с GamePort

2 views
Skip to first unread message

Alexander Fedorov

unread,
May 24, 2005, 10:58:22 PM5/24/05
to
Привет *All*

кто знает какие способы сабж? Имеется ввиду сопративление. Мне пока известен
только ниже приведённый метод, но при включении WinAmp показания чуть
изменяются. Т.е. вывод звука как-то вляет на показания снимаемые с GamePort'а.
8-\

--< *Start Windows Clipboard* >--
asm
mov word ptr count, 0
cli { Запрет прерываний }
mov dx, $201 { Запись произвольного байта }
out dx, al
@joystickloop:
inc count { Увеличить счетчик }
cmp count, $FFFF { Проверка тайм-аута }
je @done
in al, dx { Чтение из порта }
and al, $01 { Проверка соответствующего бита }
jne @joystickloop
@done:
sti { Разрешение прерываний }
end;
--< *End Windows Clipboard* >--

... Tagline _*СДАЁТСЯ В АРЕHДУ*_

Dimmy Timchenko

unread,
May 27, 2005, 10:46:13 AM5/27/05
to
Hello Alexander.

Wed May 25 2005 07:58, Alexander Fedorov wrote to All:

AF> кто знает какие способы сабж? Имеется ввиду сопративление. Мне пока
AF> известен только ниже приведённый метод, но при включении WinAmp показания
AF> чуть изменяются. Т.е. вывод звука как-то вляет на показания снимаемые с
AF> GamePort'а. 8-\

AF> --< *Start Windows Clipboard* >--
AF> asm
AF> mov word ptr count, 0
AF> cli { Запрет прерываний }
AF> mov dx, $201 { Запись произвольного байта }
AF> out dx, al
AF> @joystickloop:
AF> inc count { Увеличить счетчик }
AF> cmp count, $FFFF { Проверка тайм-аута }
AF> je @done
AF> in al, dx { Чтение из порта }
AF> and al, $01 { Проверка соответствующего бита }
AF> jne @joystickloop
AF> @done:
AF> sti { Разрешение прерываний }
AF> end;
AF> --< *End Windows Clipboard* >--

Чего-то я не понял, это где должно работать? В 98-й? Зачем ассемблер, зачем
прямое обращение к порту, цикл с запретом прерываний? Есть же Win32 API. См.
MSDN по ключевому слову joystick и файл mmsystem.pas из поставки VP.


Dimmy.

Alexander Fedorov

unread,
May 27, 2005, 9:31:50 PM5/27/05
to
Привет *Dimmy*

27 Май 05 19:46, */Dimmy Timchenko/* -> */Alexander Fedorov/*

AF>> out dx, al
AF>> @joystickloop:
AF>> inc count { Увеличить счетчик }
AF>> cmp count, $FFFF { Проверка тайм-аута }
AF>> je @done
AF>> in al, dx { Чтение из порта }
AF>> and al, $01 { Проверка соответствующего бита }
AF>> jne @joystickloop
AF>> @done:
AF>> sti { Разрешение прерываний }
AF>> end;
AF>> --< *End Windows Clipboard* >--

DT> Чего-то я не понял, это где должно работать? В 98-й? Зачем
да, у меня 98-я.
DT> ассемблер, зачем прямое обращение к порту, цикл с запретом прерываний?
DT> Есть же Win32 API. См. MSDN по ключевому слову joystick и файл
DT> mmsystem.pas из поставки VP.
да я что-то не знаю даже как это выглядить должно в коде. 8-\

Dimmy Timchenko

unread,
May 29, 2005, 7:50:51 AM5/29/05
to
Hello Alexander.

Sat May 28 2005 06:31, Alexander Fedorov wrote to me:

DT>> ассемблер, зачем прямое обращение к порту, цикл с запретом прерываний?
DT>> Есть же Win32 API. См. MSDN по ключевому слову joystick и файл
DT>> mmsystem.pas из поставки VP.

AF> да я что-то не знаю даже как это выглядить должно в коде. 8-\

Как вызовы определённых процедур и функций в определённом порядке. :) Почитай
документацию на сайте MSDN.

Я никогда не пробовал общаться с джойстиком :), но вот понадобилось недавно
прикрутить к консольной программе на VP определённые гуевые фичи через Win32
API - всё получилось и работает.


Dimmy.

0 new messages