Emu8086 ile C# da yazılmış bir formun butonu ile port bağlantısı kurma işlemini yapmak için,
c:/emu8086/devices/developers adresine girip io.cs classını bulunuz.
Daha sonra c# da yaptığınız projenin üzerine tıklayıp Existing New items ile io.cs classını projenize ekleyiniz.
Bu işlemide gerçekleştirdiğinize göre projenize Assembly ile c# arasında port bağlantısını sağlayacağınız classı eklemiş oldunuz.
Classı incelerseniz içersinde 4 tane metodun olduğunu göreceksiniz.Bu metodların ne işimize yaradığını anlattıktan sonra kullanımlarıyla ilgili de bilgi vereceğim.
READ_IO_BYTE
READ_IO_WORD
Yukarıdaki iki metod ile c# assembly’nin kendisiyle iletişime geçebileceği port numaralarını belirliyor.Bu port numaralarının birimlerinin byte veya word cinsinden olmasına göre ikisinden birini seçiyoruz.
WRITE_IO_BYTE
WRITE_IO_WORD
Yukarıdaki diğer iki metod ile de c# ile Assembly’nin içinde kullanılan,port numarası bilinen herhangi bir porta müdahele edebiliyoruz.Write_io_byte ve Write_io_word metodları 2 parametrelidir.Bu parametrelerin birincisi ile port numarasını ikincisiyle de portun açık /kapalı olma durumu tutuluyor.
Mesela ben Emu8086 içerisinde örneklerde olan Thermometer kodunu form ile çağırdım.Ve bu form ile o thermometer projesine c# ile müdahele etmek istiyorum.Thermometer projesini c#’da buton ile çağırdım.
Bunu
System.Diagnostics.Process.Start (“C:\\emu8086\\DEVICES\\thermometer.exe”); komutuyla gerçekleştirdim.
Formdaki kapat butonuna basıldığında thermometrenin çalışmamasını ve Aç butonuyla da çalışmasını istiyorum.Bunun için port işlemlerini yapmamız gerekli.Butonların click kısmına gelip
Emu8086.IO.WRITE_IO_WORD(127, 0); //Thermometreyi kapatır.
Emu8086.IO.WRITE_IO_WORD(127, 1);//Thermometreyi açar.
Yukarıdaki birer satırlık kodları yazmamız yeterli.Peki 127 sayısı nerden çıktı?127 sayısı emu8086 içerisindeki thermometre örneğinde kullanılan port numarası olarak verilmiş.Yani aslında biz yukarıdaki kodlarla portu açıp kapama işlemini yerine getiriyoruz.