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

Вниз

Адресация порта Longint ?? Как?   Найти похожие ветки 

 
M@X   (2004-04-21 13:08) [0]

Доброго время суток.

Подскажите, как адресовать порт 80000000 ?
Обычный Port[$2f8] модет тока до 65000


 
Fay ©   (2004-04-21 13:10) [1]

Нет теких портов


 
M@X   (2004-04-21 13:13) [2]

В Сях это выглядит следующим образом:

outpd(0xCF8, 0x80000000l | devnum | addr)

Перевел на Паскаль:


Port[$CF8]:=devnum;
Port[Как_его_адресовать_фиг_знает]:=devnum;



Может я ошибся с переводом с японского ;-)


 
Fay ©   (2004-04-21 13:16) [3]

Ты ошибся с переводом с русского. Нет таких портов.
$80000000 <> 80000000


 
M@X   (2004-04-21 13:20) [4]

Несомненно $80000000 > 8000000

А адресовать то его как ??? Суть вопроса то не меняется


 
Dimka Maslov ©   (2004-04-21 13:24) [5]

Точный перевод с ненашенского на нашенский;

Port[$CF8] := $80000001 or devnum or addr;


 
Digitman ©   (2004-04-21 13:25) [6]


> M@X   (21.04.04 13:20) [4]


ты полез не в те дебри

речь, очевидно, ты ведешь о Memory Мapped I/O Port - технологии современных процессоров

для доступа к порту, отображенному на АП физ.памяти, необходимо иметь CPL=0 и пользоваться ассемблерными инструкциями MOV, AND, OR


 
M@X   (2004-04-21 13:42) [7]

Но при этом дирректива asm не позволяет ассемблерными функциями обращатся к портам ?


 
M@X   (2004-04-21 16:31) [8]

Да, и еще нарыл в на-Си_льнике финт ушами:

rg.ecx=0x030000l

Я так понимаю, что нужно сделать:

mov cx, $030000

Но при этом - значение LongInteger !!!
Как это безобразие интерпретеровать ... HELP!!!


 
M@X   (2004-04-21 16:33) [9]

Кто вообще Си придумал :-(


 
M@X   (2004-04-21 16:39) [10]

Привожу кусок текста поиска PCI устройства:


rg.eax = FIND_PCI_CLASS_CODE; //Он же = 0xB103
rg.ecx = 0x030000l;
rg.esi = i; //По очереди опрашиваются устройства
_dx_real_int (0x1A, &rg);
num[i] = rg.ebx;


Я так понимаю:

function ReadFromDevice(i:Integer):Integer;
begin
asm
 mov ax,$b103;
 mov cx, $030000;
 mov si, i;
 int $1a;
 mov @Result, bx;
end
end;


 
Dimka Maslov ©   (2004-04-21 16:43) [11]

регистры cx и ecx различаешь? или ты на Тurbo-Pascale пишешь?


 
M@X   (2004-04-21 16:48) [12]

На нем родном и пишу :-)
Прога Си_шная то под досей


 
Dimka Maslov ©   (2004-04-21 17:25) [13]

В Турбо-Паскале нет 32-битного ассемблера :(


 
Digitman ©   (2004-04-21 17:28) [14]


> M@X


бросай свой ТР
он не даст тебе возможности доступа ко ВСЕМ ресурсам 32-разр. ОС


 
M@X   (2004-04-21 17:41) [15]

Обидно, досадно, но уже поставил Дельфина ...


 
Dimka Maslov ©   (2004-04-21 18:02) [16]

>M@X   (21.04.04 17:41) [15]
Всё равно не поможет


 
Digitman ©   (2004-04-21 18:12) [17]


> M@X


Дельфин тебе напрямую может помочь только тем, что в ассемблерных вставках допускает инструкции MOV, OR, AND c операндами - 32-разрядными регистрами  ... не более того

а чтобы иметь доступ к физ.памяти (т.е. успешно выполнить, например, инструкцию MOV [$80000000], eax), в ШТАТНОМ случае необходимо иметь готовый либо разработать собственный ДРАЙВЕР РЕЖИМА ЯДРА, который позволит обращаться к физ.АП на уровне CPL=0


 
M@X   (2004-04-21 18:47) [18]

Не помогает ... даже обходными путями ...
FreePascal кто нть пробовал? Он вроде 32 разрядный


 
Digitman ©   (2004-04-21 18:50) [19]


> M@X   (21.04.04 18:47) [18]


Что ? не помогает ?

ты про CPL=0 вник или не вник ?

обычное приложение (по барабану, Freepascal оно или ХрюPascal) выполняется с PL=3, так что без драйвера режима ядра - даже не дергайся !


 
M@X   (2004-04-21 18:58) [20]

Да вник я про CPL ...
Неужели нет какого нибудь ХрюПаскального компилятора. несущего избавление от драйвера ядра ...
или проще компоненту каку-нибудь готувую ..


 
M@X   (2004-04-21 19:26) [21]

TMT Pascal - есть панацея, все получилось лучшим образом ;-)))



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

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

Наверх




Память: 0.51 MB
Время: 0.033 c
14-1082451097
}|{yk
2004-04-20 12:51
2004.04.11
Посмейтесь над этим форумом :)


6-1075907414
Shultz
2004-02-04 18:10
2004.04.11
реализация RTP в Дельфи?


1-1082538504
M@X
2004-04-21 13:08
2004.04.11
Адресация порта Longint ?? Как?


6-1075715169
Leech
2004-02-02 12:46
2004.04.11
Не срабатывает событие ClientDisconnect...


14-1079281709
Undert
2004-03-14 19:28
2004.04.11
Кто нить использовал SmartBot ?