Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Ошибка при чтении и записи в порт   Найти похожие ветки 

 
CTPAX.RU ©   (2005-08-09 19:21) [0]

При попытке использования в ассемблерной вставке команды
 in al, dx
или
 out dx, al
(чтение/запись в порт соответственно) выводится ошибка (исключение) класса Eprivilege с сообщением "Priveleged instruction".
Порт $0388, если это имеет значение, это адресный порт монорежима звуковой карты.
Собственно, вопрос: как мне избежать этой ошибки?


 
_Андрей   (2005-08-09 19:24) [1]

Указанные ассемблерные вставки могут работать только под Windows98, а для WinXP, 2000 и т.п. надо пользоваться функциями WinAPI CreateFile(), WriteFile(), ReadFile().


 
CTPAX.RU ©   (2005-08-09 20:21) [2]

А что делают эти функции? Странно как-то: остальные вставки (mov, например) работают, а эти нет. Может, кто-нить знает ассемблерное решение?
В крайнем случае, нельзя ли поподробнее про вышеуказанные функции?


 
DiamondShark ©   (2005-08-09 20:40) [3]


> В крайнем случае, нельзя ли поподробнее про вышеуказанные
> функции?

А нельзя ли поподробнее про исходную задачу?


 
isasa ©   (2005-08-09 20:40) [4]

>Собственно, вопрос: как мне избежать этой ошибки?

Зарегистрировать как драйвер системы.


 
ANB ©   (2005-08-09 20:41) [5]


> остальные вставки (mov, например) работают
- работа с портами - привилегия системы. Удивительно, но, кроме mov, работает еще множество команд :))


 
Kolan ©   (2005-08-09 20:44) [6]

С портом в Windowse так нестоит работать. Работа сним похожа на работу с обычным файлом. А ф-ции WinAPI CreateFile(), WriteFile(), ReadFile(). как раз для этого и нужны.

PS Перевод  "Priveleged instruction" мог дать ответ...


 
DiamondShark ©   (2005-08-09 20:47) [7]

Люблю телепатов.
Где-нибудь было хоть пол-слова про коммуникационный порт?


 
ANB ©   (2005-08-09 20:48) [8]


> Kolan ©   (09.08.05 20:44) [6]
- интересно, как записать в порт процессора $0388 один байт с использованием этих функций ? Может примерчик запостишь ?


 
Kolan ©   (2005-08-09 20:56) [9]


> DiamondShark ©   (09.08.05 20:47) [7]

Не дочитал первый вопрос до конца. Отвечал на [2]. Вообшем ошибочка вышла.


 
MS-REM   (2005-08-09 21:20) [10]

AinCity.narod.ru


 
ANB ©   (2005-08-09 21:24) [11]


> MS-REM   (09.08.05 21:20) [10]
- а чем там пишут ? Или это реклама сайта ?


 
MS-REM   (2005-08-09 21:32) [12]

ANB ©   (09.08.05 21:24) [11]

> MS-REM   (09.08.05 21:20) [10]
- а чем там пишут ? Или это реклама сайта ?


Просто там все про программирования железа на DELPHI.


 
ANB ©   (2005-08-09 21:38) [13]


> MS-REM   (09.08.05 21:32) [12]
- жаль. Я бы полазил. Доступа нету.


 
MS-REM   (2005-08-09 22:09) [14]

ANB ©   (09.08.05 21:38) [13]

> MS-REM   (09.08.05 21:32) [12]
- жаль. Я бы полазил. Доступа нету.


А Я тебе  завидую...
Прикинь сидеть на профес... форуме на халяву /~


 
CTPAX.RU ©   (2005-08-10 20:38) [15]

Ладно, почитал о портах на сайтах разных, все понял, на ASM мутить не буду. Но все же напишите про эти CreateFile(), WriteFile(), ReadFile() - у них столько мудреных параметров, что не факт, что я сам разберусь.

P.S. to [8]: $0388 - это не порт процессора, если я ничего не путаю, но примерчик действительно хотелось бы увидеть  %)


 
isasa ©   (2005-08-10 21:02) [16]

>Но все же напишите про эти CreateFile(), WriteFile(), ReadFile()

Уже написано, MSDN называется.


 
CTPAX.RU ©   (2005-08-10 21:35) [17]

Не хочу показываать свою дремучесть, но что это - MSDN?
Че-то ветвь разрослась, а толку немного. Конкретики мало. 8(
Может, хоть кто-то напишет, как инициализировать порт $0388, записать в него банальное значение типа Word и (на всякий случай) как из него что-нибуль прочесть? Ох, как я ему буду благодарен!


 
begin...end ©   (2005-08-10 21:36) [18]

> CTPAX.RU ©   (10.08.05 21:35) [17]

> что это - MSDN

www.msdn.com


 
Alex Konshin ©   (2005-08-11 12:51) [19]

Какую тебе конкретику еще нужно? Тебе уже конкретно ответили, что не стоит пытаться писать-читать порт под Windows XP.
Не туда копаешь. Должен быть драйвер и он это должен делать. Приложение на Delphi должно обращаться к драйверу. Делает ли то, что тебе нужно какой-то дравер - не знаю.


 
DiamondShark ©   (2005-08-11 12:54) [20]


> Конкретики мало.

А ты про свою задачу ничего не сказал.


 
Digitman ©   (2005-08-11 13:04) [21]


> CTPAX.RU ©   (10.08.05 21:35) [17]


Забудь на секунду про дела свои скорбные и подумай : что произойдет, если одновременно с твоим приложением запись в этот порт возжелает выполнить еще одно приложение (а может и не одно) ... ОС-то - МУЛЬТИЗАДАЧНАЯ !

ЧТО, как ты думаешь, произойдет при этом ?


 
alpet ©   (2005-08-11 14:13) [22]

Лучшее вообще забудь о портах в Win32. Изучай DirectX (в твоем случае DirectSound), это достаточно тонкая прослойка между приложением и аппаратурой.


 
ANB ©   (2005-08-11 15:16) [23]


> CTPAX.RU ©   (10.08.05 20:38) [15]
Если это не порт процессора, то при чем тут in и out ?
Ты чего хочешь то от карты ?


 
CTPAX.RU ©   (2005-08-11 17:42) [24]

Ладно, драйвер так драйвер, DirectSound так DirectSound.
Посмотрю, может, в разделе Media что-нибудь найду.
 Разве читать/писать можно только в/из портов проца? Это я к  [23]. От карты я хочу, чтоб она подавала на колонки звук заданной частоты и длительности, но что без всяких wave, а как в паскале, ч/з порты. Не обязательно ведь это делать на самом низком уровне, чтоб другие приложения, одновременно с моим приложением запись в этот порт возжелав выполнить, вызывали всякие разные конфликты.


 
SammIk ©   (2005-08-11 18:10) [25]

Блин, а готовым драйвом воспользоваться не судьба?
Где-то тут уже пробегало такое дело.
Можно загрузить драйвер и разрешить юзать порты из юзермоде.
Если сильно спичит могу поискать, где-то у меня это было.


 
DiamondShark ©   (2005-08-11 18:43) [26]

Какой упёртый товарищ.
Только на третьи сутки соизволил сделать одолжение и рассказать, чего же он хочет сделать.


 
CTPAX.RU ©   (2005-08-11 19:55) [27]

> Если сильно спичит могу поискать,
Да, спичит порядком. Поищи, плз.

> Какой упёртый товарищ.
Только на третьи сутки соизволил сделать одолжение и рассказать, чего же он хочет сделать.

-Ладно, я нуб, мне можно  :):


 
CTPAX.RU ©   (2005-08-13 12:41) [28]

Насчет ф-ций CreateFile(), WriteFile(), ReadFile(). Вы их случайно не для создания wav-файла предлагаете использовать (в памяти или на диске - не важно). А то я это и сам умею. Мне надо просто, как в паскале, извлечь звук данной частоты из колонок, чтобы вообще не приходилось высчитывать никакие фазы для каждой доли секунды.
  Или в Дельфи звук только посредством wav создавать можно?



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.028 c
14-1126763262
nk
2005-09-15 09:47
2005.10.09
Домен и Win XP


2-1124528502
paurlin
2005-08-20 13:01
2005.10.09
Заполнение Grida


14-1126697690
КаПиБаРа
2005-09-14 15:34
2005.10.09
10 запаведей программиста :)


14-1125265756
Piter
2005-08-29 01:49
2005.10.09
Гради Буч - "Объектно-ориентированный анализ и проектирование..."


2-1124428832
Magnus
2005-08-19 09:20
2005.10.09
Работа с Word и БД