İlk denemeleri oluşturmaya başladım. Ama programın taşınabilir olması, hem Linux hem de Windows tarafında çalışabilmesi için şu şekilde yazdım. Sizce nasıl fikir.
// giriscikis.d
version (linux) {
import core.bitop;
alias outp yaz;
alias inp oku;
alias ioperm erişimhakları;
extern (C) int ioperm (uint __from, uint __num, int __turn_on) ;
}
version (Windows) {
alias Out32 yaz;
alias Inp32 oku;
extern (C) {
void Out32(short PortAddress, short data);
short Inp32(short PortAddress);
}
}
Hatta düşününce belki buradaki adres tanımlamaları da giriş çıkış dosyasına gidebilirmiş. Çünkü paralel portun adresi kullanıcının değiştirebileceği bir değişken değil.
// ledyak.d
import std.stdio;
import giriscikis;
void main()
{
version (linux) {
/*
paralel portun adresi
*/
const uint adres = 0x0c000;
/*
göndereceğimiz veri
*/
ubyte veri = 0b_11111111;
erişimhakları(adres, 1, 1);
}
version (Windows) {
/*
paralel portun adresi
*/
short adres = 0x0378;
/*
göndereceğimiz veri
*/
short veri = 0b_00001010;
}
yaz (adres, veri);
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]