win98 ve winxp de ISA portuna bilgi yollayıp almada sorun

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bykzkn
Üye
Mesajlar: 3
Kayıt: 05 Oca 2008 12:11
Konum: KONYA

win98 ve winxp de ISA portuna bilgi yollayıp almada sorun

Mesaj gönderen bykzkn »

iyi günler arkadaşlar. ben yeni bir üyeyim formda 3-4 gündür başlıkları inceliyorum ama benim sorunuma çözüm olcak birşey bulamadım.
elimde bir program var delphi 3 yada 4 de yazılmış ve win 98 üzerinde çalışarak ISA portuna bağlı bir karta bilgi yollayıp alıyor.
program win 98 de şu ASM kodları ile rahatlıkla bilgi yollayıp alıyor.

bilgi gönderilen port
PortA : Word=$1b0;
bilgi alınan port
PortB : Word=$1b1;
bide bu var
KontrolReg : Word=$1b3;

//porta bilgi yollar
Procedure TKopyalama.PortYaz(Port:Word; Data:Byte);
Begin
Asm
Mov al,Data
Mov dx,Port
Out Dx,Al
End;
End;
//porttan gelen bilgiyi okur
Function PortOku(Port:Word):Byte;
var
H :Byte;
Begin
Asm
Mov dx,Port
in Al,dx
Mov H,Al
End;
PortOku:=H;
End;

fakat formda da okuduğum kadarıyla win xp de bu durum biraz farklıymış.
aslında port haberleşmesi ile ilgili fazla bir bilgim yok zaten yeni bir programcı olduğum için hiç win 98 de kullanmadım.

size sormak istediğim bu kodları win xp de kullanmak için nasıl bir yol izlemeliyim. formda apro ve mscomm gibi bileşenlerden söz edilmiş bu bileşenler sadece comport için mi eğer öyleyse benim işimi görecek bileşenler de var mı. eğer bu konu eskiden açılmışsa kusuruma bakmayın konu başlığını verseniz oda yeter. yardım edenlere şimdiden teşekkürler.
Hakkan
Üye
Mesajlar: 18
Kayıt: 24 Tem 2004 11:08
Konum: ISTANBUL

Mesaj gönderen Hakkan »

Değerli arkadaşım,

bu konu Delphi'yi aşar. Şöyle ki:

win98/Me de her program giriş/çıkış(IO) işlemi yapabilir. Bu yüzden senin programın bu işletim sisteminde sorunsuz çalışıyor. Xp'de ise giriş/çıkış işlemleri kontrol altına alınmıştır. O da şöyle ki:

Xp iki işlemci kipi kullanır: ring3 ve ring0

ring3 kullanıcı tarafındaki programlar içindir. Bu kipte çalışan programlar giriş/çıkış yapamazlar(istisnası var tabii).

ring0 ise sistem programları içindir. Bu programlar işlemci üzerinde hemen hemen tam yetkiye sahiptir. Aygıt sürücüleri bu kipte çalışır.

Bu bilgiler ışığında sorununun iki çözümü var gibi görünüyor:
1# Kendin bir aygıt sürücüsü yazacaksın ve kodu bu aygıt sürücüsü çalıştıracak...

2# Yazdığın programa giriş/çıkış işlemi yapabilmesi için Xp'den vize alacaksın. Yani Xp'nin programına gerekli yetkiyi vermesini sağlayacaksın...

Google da "Xp Assembly inpw outw IO" gibi aramalar yapabilirsin.

Kolay gelsin...
Kullanıcı avatarı
bykzkn
Üye
Mesajlar: 3
Kayıt: 05 Oca 2008 12:11
Konum: KONYA

Re: win98 ve winxp de ISA portuna bilgi yollayıp almada sorun

Mesaj gönderen bykzkn »

hakkan verdiğin bilgiler için teşekkür ederim. ve yeni cevap verebildiğim için özür dilerim. internette başka bir sitede io.dll diye bi kütüphane ile XP ye uyum yaptırabileceğimizi söylüyordu ben de programa xp.dll yi ekledim. ama yazdığım program ISA slotunu kontrol edeceğinden daha deneyemedim. yani io.dll ile program win98 de yine sorunsuz çalışıyor. fakat xp yükleyip deneyemedim.inşallah yakında deneyip sonucu buraya yazarım.
Tekrar teşekkürler.
Kullanıcı avatarı
bykzkn
Üye
Mesajlar: 3
Kayıt: 05 Oca 2008 12:11
Konum: KONYA

Re: win98 ve winxp de ISA portuna bilgi yollayıp almada sorun

Mesaj gönderen bykzkn »

bir önceki mesaja xp.dll yazmışım. io.dll olacak
Cevapla