Uyumsuz musunuz?

Hangi bilgisayarın daha çok programı var? Hangisinin grafik programları daha üstün? Bu tür problemler yavaş yavaş sona eriyor gibi. Aradığınız programın başka bir bilgisayar için hazırlanmış olması büyük bir problem mi?

Hayır, artık bu tür roblemler tarihe kaldı. Son on yıl içindeki gelişmelere şöyle bir göz atalım:

inclair firmasının ilk prota- & tif ev bilgisayarı modeli olan ZX SPECTRUM, 48 K'lık hafızası ve toplam 8 rengiyle çok iyi bir girişim yaptı fakat arkasından COMMODORE firmasının dillere destan bilgisayarı 64K'lık hafızası, 16 rengi ve müthiş program desteğiyle ZX'i piyasadan sildi. Elinde ZX'leri olan ise sadece desteklerini kaybetmeyip aynı zamanda COM-MODORE'a yenildiler. Belki de siz de bunları hissetmişsinizdir. Aldığınız oyunları bir kenara bırakırsak, el emeği göznuru programlarınızı ne yapacaksınız? Bir meraklı bunlara bir son veriyor ve C-64 için SPECTRUM SIMULATOR adlı bir simulasyon programı yazıyordu. Bu programı hâlâ bulmak mümkün. Bu programın başarısına

— by Ballar gelince, Spectrum ile yazılı basic programları yazabilmenizi ve çalıştırabilmenizi sağlıyordu. En büyük şaşkınlığı ise Spectrum ile kasede kaydettiğimiz basic programı Comdataseti aracılığıyla yükleyip çalıştırdığınızda yaşıyorduk. O zamanlar bu bizim için “AMAN Bir bilgisayar, tamamen farklı bir işlemci kullanan başka bir bilgisayarın programlarını yükleyebiliyor ve çalıştırabiliyordu. Sonraları bilgisayarların hafızaları ikiye katlandı ve 128 K'lık bilgisayarlar üretildi. Bunlardan biri de üç değişik bilgisayar olarak çalışabilen Commodore 128'idi. Ku-

A TARI ww Çolors v

* me “iç » Fl km

Memory Size — —

Şar Size A

AMAX II'nin çalışma ekranı.

O zamanlar bu bizim için “Aman Tanrım Bir bilgisayar, tamamen farklı bir işlemciyi kullanan başka bir bilgisayarın programlarını yükleyebiliyor ve çalıştırabiliyordu.

lağa oldukça garip geliyor değil mi? Bu bilgisayarlardan ikisi Commodore firmasının 6810 işlemci kullanan 64 ve 128 K'lık modellerinden oluşmaktaydı. İşin garibi, üçüncü sistem ise (CD/M) Z80 kullanan makinalarla uyumluluk gösteriyor ve kullanımı ile biraz da PC'leri andırıyordu. Gerçi bu bilgisayar software desteği bulamadığından çok kısa zamanda piyasadan silindi ve 128 almış olanlar bilgisayarlarını genelde 64 modunda kullandılar. Commodore firmasının son HİT bilgisayarı ise AMIGA 500'ler. Bir AMIGA almakla bitmiyor işiniz.

ATonce'ın çalışma ekranı; bir AT'ninkinden Jarksız.

Ülkemizde ilk alanlar genelde oyunlarına kanıyorlar fakat bir süre sonra sadece oyun oynamak, adventure bitirmek yetmemeye başlıyor. Bunların yanı sıra biraz da bilgisayarınızı tanıma isteği ve amatörce de olsa bir şeyler üretme isteği başlıyor. Başka bir bilgisayar için yapılmış bir programı ya da başka bir şeyi elinizdeki bilgisayarı satıp masrafa girerek yenisini almadan nasıl kullanabilirsiniz ki? Olmaz canım, olur mu hiç?! Olur tabii. İlk olarak AMIGA için yapılmış software emulatörlere göz atalım. Bunlar ek bir devreye gerek duymadan, sadece bilgisayarınızın yeteneklerini kullanarak yapilan programlardır. İlki Commodore 64 Emulator programıydı ve orijinal disketinin yanında bir de kablo veriliyordu. Bu kablo ile Commodere 64 bilgisayarlarının özel disk sürücüsü olan 1541'lere erişim yapılabiliyor ve Commodore programları (makina dili programları da dahil olmak üzere) yükleyip çalıştırabiliyorduk. Aynı zamanlarda bir başka soft emülatör olan TRANS-FORMER ise 8088 işlemci kullanan IBM PC'leri emüle ediyor ve AMI-GA'nın disk sürücüsünü PC disk sürücüsü gibi çalıştırmayı başarabiliyordu. Burada yapılan işlemler de tamamen PC uyumlu ve sorunsuz çalışıyorlardı. Gelelim HARD emulasyona, AMIGA'da karşımıza ilk olarak SIDECAR'lar çıkıyor. Bu kartların tüm versiyonları tamamen 8088 işlemci kullanan PC'lerle uyum sağlıyorlar. Bunlarla Hard diskinizin bir kısmını PC olarak kullanmanız bile mümkün. Tabii sadece iş PC-AMIGA uyumuyla bitmiyor. Deskop Publishing (masa üstü yayıncılık) ile ilgileniyorsanız o zaman fontlar sizin için hayati önem taşıyor demektir ve bilinen en çok font Mac Intosh'lar için hazırlanmıştır.

Bu fontları AMIGA'ya aktarmak mümkün müdür sizce? Hayır diyenleriniz kaybetti. Evet, bir kart (A-MAX) ve bir Mac ROM'u ile Mac programlarını ve datalarını elde etmek mümkün ve tahmin edemeyeceğiniz kadar uyumlu. İsterseniz birk Mac sürücüsünü bile AMI-GA'ya bağlayıp kullanmanız mümkün. Gerçi bu iki bilgisayar da MO-TOROLA ailesinin 68000 serisi işlemcilerini kullanıyor ve bu da oldukça büyük bir avantaj sağlıyor. Gelelim son gelişmelere; bir 68000 işlemci sahibi bilgisayarı 80286 AT uyumlu yapmak sizce ne kadar zordur? Evet, doğru tahmin ettiniz, sonunda AMIĞGA AT uyumlu çalışabiliyor. Üstelik hiç hız 18 kaybı olmadan. Bunu yapmayı başaran firma, akıllara durgunluk veren çalışmasının ürünü ATonce'ı A 500 bilgisayarının içine küçücük bir karta sığdırmasını bir rekor olarak nitelendiriyorum. Yepyeni bir 68000 işlemci ve hemen üzerindeki kartta da bir 80286 ile gerekli diğer birimler yer alıyor. Küçük bir iki değişiklikle bir A 500 AT sahibi oluveriyorsunuz ve bu kart tüm ek sürücülerinizi, ek RAM kartlarınızı destekleyerek AT modunda çalışırken EGA ve CGA grafik adaptörlerini de emule etmeyi başarıyor. Bu hızlı gelişmenin sonunun nereye. varacağını tahmin etmek oldukça zor, çünkü her an yeni bir şeyler daha çıkabilir. İşin en ilginç yanı ise bilgisayaranızı bir ara çevirici olarak da kullanabilirsiniz. Bir bilgisayarın datalarını başka bilgisayarda kullanmak istiyorsanız ve emülatörünüz yoksa, bunu her iki bilgisayarla da uyumlu başka bir bilgisayar ile başarabilirsiniz. Yakın bir gelecekte alacağınız bilgisayarın markasının pek farketmeyeceğine inanıyorum. Şu anda bile bu uyumları başarabildiğimize göre, ileride neler olabileceğini siz tahmin edin...

ATonce'ı yerleştirmek birkaç dakikadan fazla ve kapladığı yer çok az.

(NOT: Bu yazıda kullanılan tüm ürün isimleri üretici firmalarının tescili markalarıdır.)

Yıldırım Tatay rogramlarınız istediğiniz gibi yazma özgürlüğüne sahipsiniz: Düzenli, zarif, karışık, ilkel, kaba... Bilgisayar sizin bilgisayarınız, proje sizin projeniz. Spagettinin (karman çorman ve düzensiz kod için kullanılan bir deyim) ne kadar eğlenceli olduğuna dair birçok yazı bile yayınlandı dergilerde, Buna karşılık, AMIGA'da düzenli olmanız gerektiğini söyleyen kişiler daha ağır basmaktadır. Çünkü programınız, genelde bilgisayarı birçok ayrı programla ortaklaşa kullanır. Bu yüzünden aşırı serbest ve vahşi programlar kendi sınırlarından dışarı çıkarak çalışan diğer programlara zarar verebilirler. Programlarınız en azından şu fikri benimsemelidirler: Hiç bir program kendi başına bırakılmış bir birey değildir. En azından AMIGA'da kuralı çiğnememek yararınıza olacaktır. Son iki düzine yıldır bilgisayar uzmanları programları daha düzenli hale getirebilecek yöntemler geliştirmeye çalışıyor. Belki şu anahtar kelimeleri duymuşsunuzdur: “Structured” (yapılanmış), “top-

PROG RAM ADI
00010
00020
REM
INPUT
00080
40 FOR TO N
00050 INPUT ELEMAN(J)
00060 NEXT
00100 :
00110 RE
00120 :
00130
00135:
00140
00150
00160
00170
00180
00190
00200 BAYRAK-İI
“00210 NEXT J
00220 1F BAYRAK-I THEN
: :
00300 REM ------CIKIS
00305
“©0310 FOR TON
00320 PRİNT
— 00830 NEXT.
00340 END.
00040
TARAMA
TO N-1
GECİCİSELEMAN(J)
"KAÇ ELEMAN”
DIM
N<2 THEN 20
DIKKAT ELEMAN-EL
IP ELEMAN CJ) << ELEMANCJ*1) THEN 210
141)
120

down” (yukarıdan aşağıya), “gotoless”” (goto'suz) programlama. Bu üç terimin tanımında bazı farklar vardır ama hepsi size aynı şeyi yaptırmayı amaçlar: Projenizi planlayın, modüllerinizi hazırlayın ve programınızı ufacık bir köşeye sıkıştırılmış bir kod parçasında kaybetmeyin. Burada dikkatinizi çekmem gereken nokta, hepimizin başlangıçta spagettiler programladığı ve zamanla düzenli ve zarif programlar yapmayı öğrendiğidir. Mesela AMIGA BASIC'de program yaptığım zaman ilk olarak label'ları kullanırım, program bittikten sonra çalışmasını bozmadan label'ları yok etmeye çalışırım (procedure'ları gösteren label'lar dışında). Bu sayede yapılanmışa daha yakın kodlar elde edebiliyorum.

tekrar: BU

İŞLEM DÖNGÜ KARAR

Şekil 1: Yapılandırılmış akış şemalarında kullanılan üç eleman

GİRİŞ

ÇIKIŞ

Şekil 2: Bir işlem basamağının sadece bir girişi (tepeden) bir de çıkışı (en alttan) bulunur.

Yapılanmış Akış Diyagramları

Düzenli programlar yapmanın ilk basamağı, programınızı planlamaktan ve akış şemaları yapmaktan geçer. Ama standart akış şemaları hem çok fazla yer kaplar, hem de garip görünüşleriyle çok itici gelirler bana. Fakat yapılandırılmış programlar için kullanılabilecek akış şemaları olan Nassi-Shneiderman diyagramları, birçok alanda geleneksel akış şemalarından üstündürler. Biz de bu diyagramı kullanarak basit bir program tasarlayacak, daha sonra da bu programı AMIGA BASIC'de yazacağız. Yazacağımız program hemen her programcı tarafından bilinen bubble-sort (kabarcık sıralama) olacak. Tabii ki bu sıralama metodu şimdiye kadar yapılmış en etkin sıralama metodu değildir ama hem anlatması oldukça kolay, hem de program mantığını kolaylıkla izleyebilirsiniz.

İşlem, Döngü ve Karar

Bu üç eleman ve nasıl çizileceklerini Şekil 1'de görebilirsiniz. Bunlar, yapılandırılmış programlamanın üç temel parçasıdır. Sadece bu üç elemanı kullanarak herhangi bir şeyi programlamanız mümkündür. Şekil 2'de bir işlem basamağını görüyorsunuz. Bir işlem basamağının yalnızca bir giriş (INPUT) ve bir çıkış (OUTPUT) noktası bulunur. Giriş dikdörtgenin en tepesinde, çıkış da en altında yer alır. Bir işlem basamağı tüm program olabileceği gibi programın küçücük bir parçası bile olabilir. Şekil 3'de bir döngü basamağı görüyorsunuz. L şeklindeki basamağın iç tarafındaki bölgede bulunan işlemler L'nin dışında tanımlanan koşullara göre işlenirler. Dikkat etmeniz gereken bir nokta koşulun başta veya sonda tanımlanmış olmasıdır, buna göre döngü basamağının şekli değişebilir.

BEŞ KERE İŞLET

Şekil 3: Döngü içindeki işlem gösterildiği gibi tekrarlanır. Tekrarlama kararı işlemin başında ya da sonunda verilebilir.

tz0?

Şekil 4: Bir karar basamağı kodu değişik parçalara böler. Soldaki şemada ya sağ ya da sol işlem basamağına sıçranır. Sağdaki şemada ise X$'ın değerine göre gerekli işlem basamağına sıçranır.

Şekil 4'te ise karar basamağını görüyorsunuz. Basit bir Evet/Hayır kararı iki işlemden birinin yürütülmesini sağlayacaktır. Çoklu bir seçim her biri bir işlem basamağına açılan birçok yolun birine açılabilir. İsterseniz bu işlem basamaklarından herhangi birini boş bırakarak, “bu işlem seçilirse hiçbir şey yapma!” diyebilirsiniz.

Kabarcık Sıralama

Bu sıralama sistemi bilgisayar uzmanlarınca pek tutulmaz ama anlatması ve akış şeması çıkartması oldukça kolaydır. Bu sıralama metodunun hızını ve esnekliğini artıracak yollar var ama burada temel rutine bağlı kalacağız. Projeye başlamak için atılacak ilk adım şekil 5'de görülen gibi bir

GİRİŞ

SIRALAMA

PROGRAMI SIRALAMA

ÇIKIŞ dikdörtgen çizmektir. Bu dikdörtgen tüm programı temsil eder. Daha sonra programı üç ayrı parçaya böleriz: Girdi, sıralama, çıkış. Şu anda, programın ana tasarımı bitmiş durumda, Diyagramımız diyor

Şekil 5: Bütün sıralama programı bir işlem basamağıdır ve tek bir dikdörtgen olarak çizilebilir. Daha sonra bu programı ardışık işlem basamaklarına ayırabiliriz: giriş, sıralama, çıkış. Her işlem basamağı bir önceki tamamlandıktan sonra başlar.

ki, program başladığında girdiler alacak, tüm girdiler verildikten sonra bu girdileri sıralayacak ve sıralama işlemi bitince sıralanmış değerleri çıktı olarak verecek. Programı başka şekillerde de tasarlayabilirdik. Mesela bilgi girişi yapılırken sıralama da yapabilirdik. En iyisi girdi ve çıktı bölümlerini bırakalım ve sıralama işlemine 21 detaylı olarak bakalım. Bu tür akış diyagramlarının en iyi yanı, gittikçe kompleksleşen şemalarla uğraşmak zorunda olmayışımız. Yani sıralama işlemi yapan işlem basamağını ayrı bir blok olarak tasarlamanız mümkündür bu sistemde (Şekil 6'ya bakın). Kabarcık sıralama şu şekilde mantık yürütür: Program elemanları tarar. Eğer ardışık iki eleman

“doğru sırada değilse, bu elemanların yerini değiştirir. Her taramanın sonunda ise şöyle der: “Bu tarama sırasında elemanların yerini değiştirdim mi? Eğer değiştirdiysem, bir

BAYRAK -0

BAYRAĞI 1 YAPABİLEN TARAMAYI ÇALIŞTIR

BAYRAK 0 OLANA KADAR

Şekil 6: Sıralama işlem basamağının ilk detayı. Program iç işlemleri bayrak 0 olana kadar tekrarlar,

HER ÇİFT DEĞER İÇİN

DEĞERLERİN YERİNİ DEĞİŞTİR

BAYRAK = 0 tarama daha yapmalıyım.” Şekil 6 bunu gösteriyor. Tarama sırasında yer değiştirme olup olmadığını kontrol etmek için bir “bayrak” kullanırız. Eğer bayrağı kaldırmışsak, geri indirir ve taramaya yeniden başlarız. Şekil 7 “Tarama” işlemini anlatan diyagramı içerir. Ardışık elemanları kontrol ederiz. Dikkatinizi çekeceği gibi, N tane elemanın N-1 tane ardışık çifti olacaktır. Eğer herhangi ikisi doğru sırada değilse, yerlerini değiştirir ve bayrağı kaldırırız.

Şekil 7: Tarama işlem basamağının detayı. E altındaki işlem basamağı boştur. Yani değerler doğru sıradaysa hiçbir işlem yapılmaz.

Programı Yazalım Artık Bütün diyagramları inceledikten sonra programı yazmak şaşırtıcı derecede kolay gelecektir size. Programı yazıp bitirip çalıştırdığınızda ise, hiçbir hata olmadığını ve programın ilk denemede hatasız çalıştığını dehşet içinde fark edeceksiniz!!! Liste 1'de burada çizdiğimiz diyagramların, C64 BASIC'de yapılmış olan programını görebilirsiniz. Programlama diğer dillerde de kolaylıkla yapılabilir. AMIGA BASIC, C, Pascal, Assembler... Mantığını bir kez kağıda döktükten sonra programını yazmak hiçbir şey değil.

Her eleman için (1 to N)

Elemanı al

Eleman sayısını sor N=?

programlama adı verilir. Sanırım çoğunuz tüm programın bir diyagramını çıkarmadığımızı, aksine “Sırala” ve “tara” gibi modülleri teker teker diyagramlara döktüğümüzü fark etmişsinizdir. Aslında tüm programın detaylı olarak diyagramının çıkarılmasına gerek yok, ama böyle basit bir program için bir ayrıcalık yapıp her şeyi bir arada görmenizi sağlayabilirim. Şekil 8'de her şeyi aynı yerde görebilirsiniz. Tekrarlıyorum, basit bir program olduğu için bunu yapabildik.

GİRİŞ

Bütün çiftler için (1 to (n-1))

Bayrak 0 olana kadar

Yer değiştir

Bayrak -1

SIRALA

TARAMA

Her eleman için (İ to N)

Hepsi Birlikte

Dikkat ettiyseniz programı tasarlarken her şeye en baştan başladık. Önce tüm programın akışını kabaca tasarladık ve gittikçe detaya inerek tüm programın çalışma mantığını yarattık. Bu tür planlamalara genel top-down (yukarıdan aşağı) 22

Şekil 8: Tüm program. Her şeyin bir arada olması ortalığı karıştırıyor.

ÇIKIŞ yapıyorum. Bu tabloya hiçbir zaman ihtiyacınız olmayacaktır. Bu programda bile katılmanız gerekli: Tek diyagramda bulunan fazla teyp mantığı çok karmaşık gösterir.