![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TP7.0 & Delphi [D5, D6, NT4, Win2k, WinXP]
neodiX © (2002-09-24 17:14:00)Привет мастера!
Возникло пару вопросов,
В TP 7.0 можно написать такое выражение:
***
port[$3C1]:=4;
***
a как ето будет на Delphi?
и еще,
В TP 7.0 можно тип обазначить так:
***
var
b:byte absolute [$40:$20];
***
a на Delphi как oбазначить такой тип и как потом с этого адресса считать данные?
Демонов Е.В. (2002-09-24 17:27:00) [1]>>qube
конечно ДА
neodiX (2002-09-24 17:25:00) [2]$А000:$000 - да это видеопамять.
У меня просто возникла идея скопировать экран на апаратном уровне т.е. напрямую обратиться к видяшке, вот и думаю как это сделать.
qube (2002-09-24 17:25:00) [3]2 Демонов.
32-битное, вы хотели сказать? :)
MBo (2002-09-24 17:24:00) [4]>а тогда как обратиться к определенному адрессу?
У каждого процеесса свое независимое адресное пространство.
К видеопамяти (судя по $А000) прямого доступа нет, разве что можно обращаться через DirectX
Дежавюев (2002-09-24 17:23:00) [5]Обращение по адресам в Delphi запрещено. Это вызывает исключения и system crash с голубым экраном.
MBo (2002-09-24 17:22:00) [6]c портом в Win9X можно работать через ассемблер (in, out), в NT/2K так нельзя, но есть компоненты DirectPort, ZLPortIO
absolute в Дельфи используется только по отношению к адресам переменных, например
var a:array [0..3] of byte;
i:integer absolute a;
для абсолютных адресов это недопустимо
qube (2002-09-24 17:22:00) [7]$А000:$0000 -- насколько я помню, в ДОС здесь начиналась видеопамять :). Для Windows это не имеет смысла.
Демонов Е.В. (2002-09-24 17:22:00) [8]В виндосе нет смещения и значит нет адресов типа $А000:$0000. - адрес в виндосе это 32-х байтное число
neodiX (2002-09-24 17:20:00) [9]а тогда как обратиться к определенному адрессу? Например $А000:$0000.
Дежавюев (2002-09-24 17:17:00) [10]Не используйте Delphi. Под Delphi так нельзя.