-=John=- (16.11.2005 09:46, просмотров: 1) ответил Морковка на a za BIOS ты ответишь?
Ответ: Вот пример функции на Дельфях - для 98 прокатывает.
{---------------------------------}
{ Получить адрес COM или LPT порта }
function ReadPortAddr ( i : integer ) : word;
begin
asm
push edi
push esi
push esp
push ebp
push ebx
push es
mov ebx,i
shl ebx,1
mov eax,$40
mov es,ax
mov ax,es:[ebx]
mov Result,ax
pop es
pop ebx
pop ebp
pop esp
pop esi
pop edi
end;
end; { ReadPortAddr }
Для СОМ-портов под виндами это не нужно - гораздо проще и, главное, правильнее работать через API, примеров полно.
Для LPT можно. Но при переходе под NT-образные системы все разваливается. Там другие способы есть. Если нужно, пример намылю.
Прямое обращение к портам тоже проходит прекрасно при использовании GiveIO.sys. Пользую, вызов из программы на Дельфи тоже могу намылить.