Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
Eğer bilgisayarınızı açtıktan Workbench ekranını görünceye kadar geçen zaman size uzun gelmeye başlamışsa...
Eğer bir programın yüklenmesini sabırsızlıkla beklerken disk sürücünüzden gelen hart hart kaşıntı sesleri sinirlerinizi bozmaya başlamışsa...
Eğer birkaç disketlik oyun veya programlarla uğraşırken ikide bir disket değiştirmek zor gelmeye başlamışsa...
Eh, artık sizin de bir Hard Disk almanızın zamanı gelmiş demektir. Unutmayın ki, Amiga 500 ilk aldığınız günkü sınırlarına mahkum değildir.
Kararınızı verip paranızı denkleştirirseniz, sıra gelir "hangi hard disk" sorusuna cevap bulmaya. Öyle ya, hard disk dediğiniz bir defa alınır. Bir gün gelip "keşke bunu değil de ötekini alsaydım" demektense, gelin birlikte belli başlı bazı seçenekleri gözden geçirelim. Sizler için, bir tanesi Türkiye'den de temin edilebilen toplam dört ayrı marka hard disk hakkında çeşitli bilgiler derledik. Tanıtacağımız bu hard disk'ler bilgisayarınıza 20 ila 40 MB depolama kapasitesinin yanında, 2 ila 8 MB Fast RAM ekleme imkanı da sağlamaktadır.
ÖNCE BİRKAÇ UYARI Bir hard disk alıp, onun geniş ve ferah kayıt alanını programlarınızla doldurmaya başlamadan önce, Amiga'nızın bu imkanlardan ne kadar verimle yararlanabileceğinden emin olmanız gerekiyor. Sanırım bu noktada söylenebilecek en önemli konu, Amiga 500'ünüzün Kickstart versiyonu. Eğer bilgisayarınızın Kickstart versiyonu 1.2 veya daha eskiyse, hard disk almadan önce bir servise uğrayıp Kickstart ROM'unu yenisi ile değiştirmenizde fayda var. Çünkü Kickstart 1.3, getirdiği birçok yenilikle birlikte hard disklerin Autoboot (hard diskten otomatik açılabilme) özelliklerini de desteklemektedir.
Amiga'nızın Kickstart versiyonunu bilmiyorsanız, öğrenmek çok kolay. Hiç disket takmadan bilgisayarınızı açıp ekrana bakın. Eğer ekranda bir el sizden Workbench 1.3'ü istiyorsa, Kickstart versiyonunuz 1.3 demektir. Ama Workbench 1.2'yi istiyorsa, yine de paniğe kapılmanıza gerek yok. Hemen hemen her Amiga servisi "cüzi bir ücret" karşılığında ROM'unuzu değiştirerek 1.3'ü ister hale getirebiliyor.
DEĞERLENDİRMELER NASIL YAPILDI? Amiga 500 kullanıcılarına alacakları hard disk için seçenekler sunmak ve herbiri hakkında bir ön fikir verecek özellikleri ortaya koymak amacıyla hazırlanan bu yazıda, edinilen bilgilerin büyük bir kısmı Michael Sinz'in DiskSpeed 3.1'i sayesinde oldu. DiskSpeed 3.1, hard disk üreticileri arasında drive performansının belirlenmesi için bir nevi "de facto" standart sayılmaktadır.
İlk üç test, hard disklerin her birine Workbench 1.3 ve ilgili dosyalar yüklenerek yapıldı (Şekil 1, 2 ve 3). Bu üç test bir araya geldiğinde, Amiga'cıların çoğunun kendi Amiga'larını kullanma koşulları taklit edilmiş oldu. Örneğin; geri planda üç boyutlu bir obje hesaplanırken, aynı anda bir resim programı, bir modem programı ve bir kelime işlemci çalıştırmak gibi. Gerçek anlamda bir multitasking çalışma ortamı oluşturuldu. Basit ve anlaşılır olması için, bütün grafikler 256 KB'lık bir buffer kullanılarak çizildi. İlk şekilde 1 saniyede oluşturulan byte sayısı, ikinci şekilde okunan ve üçüncüde ise yazılan byte sayısı grafiklerle gösterilmiştir.
Şekil 4, 5, 6 ve 7'de, her hard disk için 1 saniyede oluşturulan, açılıp kapatılan, aranan ve silinebilen dosyaların sayısı görünmektedir.
Şekil 8, belirli bir dosyanın 1 saniyede kaç defa serbestlenip yeniden okunabildiğini gösteriyor. Bu 8 şekil, hem DMA meşgul ve CPU stress altında iken, hem de her ikisinin serbest olduğu durumu birlikte göstermektedir.
Son olarak Şekil 9'da, iki test bir arada gösterilmiştir. Birinci test standart bir Workbench 1.3'ün yüklenme süresidir. Power düğmesinin açılışından Startup-Sequence'nin bitmesine ve Workbench ekranının görülmesine kadar geçen süre,
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
} Şimdiki örnekte ise, her tuşun gerçek port kodunu öğrenebilirsiniz.
maın()
{
int *mouse=0xbfe001; int *key=0xbfec01;
printf("Durmak için Sol Mouse tuşuna basınız.");
while(*mouse!=188) { printf("kod=%d",*key); } } Daha önce de söylediğim gibi, bu örnekleri çoğaltmak mümkün. Ben sizlere en çok kullandığım türden örnekler vermeye çalıştım. Siz bu örnekler üzerinde oynayarak konuya hakim olmaya çalışabilirsiniz.
İŞARETLER ve DİZİLER: C'de pointer'lar ve diziler arasında oldukça sıkı bir bağ vardır. Dizilerdeki herhangi bir indise pointer'lar sayesinde rahatça ulaşabilirsiniz.
Aşağıdaki örnekte 'a', on elemanlı integer bir dizi olsun. Bu dizinin örneğin beşinci elemanına pointer'lar ile ulaşmaya çalışalım:
int a[10]; int *pa,x;
pa=&a[0]; x=*(pa+5); Bu örnekte pa, a değişkeninin ilk adresini gösterecek şekilde tanımlanmaktadır. Doğal olarak beş byte sonrası da, a değişkeninin beşinci elemanının değerini verecektir.
pa=&a[0]; yerine;
pa=a; da diyebiliriz. Ya da aşağıdaki örnekte olduğu gibi kullanabiliriz; f() bir fonksiyon olsun,
f(&a[2]); yerine f(a+2); gibi. Şimdi ise, iki dizinin birbirine eşit- lenmesi örneğini inceleyelim. strcpy(s, t) char s[], t[];
{
int i;
i=0; while((s[i]=t[i]) !='0')
i++; } Yukarıdaki örneği pointerlar ile yapa- lım, strcpy(s, t) char *s, *t;
{
while((*s=*t) !='0') {
s++; t++;
} } Bu örneği daha kısa biçimde yazmak gerekirse, strcpy(s, t) char *s, *t;
{
while((*s++=*t++) !='0'); } '0' ifadesini, dizinin sonuna gelip gel- mediğimizi kontrol etmek için kullanıyo- ruz. Fakat bunu en kısa biçimde şöyle de yazabiliriz.
strcpy(s, t) char *s, *t;
{
while(*s++=*t-H-); } Burada, her iki dizinin değerinin sıfır ol- ması şartıyla programdan çıkılabilir.
Dikkat ettiyseniz, pointer'lar sayesinde istediğimiz bir değişkenin değerini rahatlıkla okuyup değiştirebiliyoruz. Bu da, programcılık açısından yukarıdaki örneklerden de anlaşılacağı gibi oldukça kolaylıklar sağlamakta. Fakat pointer'ların yararları bu kadarla bitmiyor. Bu yalnızca bir başlangıç. Bundan sonraki örneklerde de sıkça kullanacağımız pointer değişkenleri tam olarak anlamaya çalışın.
Bu aylık bu kadar. Gelecek aya oldukça önemli olan Structures (yapılar) konusunu inceleyeceğiz.
Hepinize iyi çalışmalar...