Bu sayfadaki yazılar
Sayfanın metni
Sayfa 159
Commodore 64 yani 6502 mikroişlemcinin yorumlayabileceği şekilde derlenebileceği bir uygulama bulmaktır. PC'de bu işi yapan "The ACME Crossassembler", "CC65", "ADC-65", "The COMFY 6502 Compiler" gibi birçok uygulama mevcuttur. Ancak kullanıcı dilediği taktirde kendi derleyicisini yazabilir ya da kaynak kodu açık derleyicilerden birini kendine göre modifiye edebilir.
İlk sorunumuzu çözdükten sonra karşımıza başka bir sorun çıkıyor. "Derleyici editörü" ihtiyacı. Programlarımızı Notepad'de yazıp daha sonra DOS ekranından parametrik komutlarla derlememiz mümkün. Mümkün olmasına mümkün ancak pratik değil. Projeler büyüdükçe renklendirilmiş editör ekranları, regular expression destekleyen bul&değiştir özelliği, çeşitli kısayol tuşları gibi ihtiyaçlar artacaktır. Bunun için Windows üzerinde "EditPlus"ı tavsiye ederim. EditPlus shareware bir uygulama olduğu için free bir editör tercih edenler ise aralarında Windows, Linux ve MacOS'un da yer aldığı 10'dan fazla platform desteği sunan "Emacs"i tercih edebilirler. Bu ve benzeri editörler çapraz geliştirme sürecinde işimizi oldukça kolaylaştıracaklardır.
Geriye tek bir sorun kaldı. Commodore 64'ün yorumlayabileceği byte kodları ürettiğimizi varsayalım. Peki bunun sonucunu nasıl göreceğiz? Elbette ki bunun iki yolu var.
1) PC'den Commodore 64'e veri transferi i) Dosya transferi ii) Doğrudan Commodore'un belleğine veri aktarımı
2) PC üzerinde emülatör kullanımı
Şimdi bu iki yöntemi biraz detaylandırarak anlatalım.
PC'den Commodore 64'e veri transfer etmenin birkaç farklı yolu var. Bunların en çok kullanılanı X1541 kablosu ve türevleridir. Bu kablo PC ile Commodore 64 arasında doğrudan bir bağlantı sağlamaz. Bunun yerine PC'nin paralel portu ile disket sürücü (1541, 1541-II gibi) arası bağlantı sağlar. Bu sayede PC'de geliştirilen uygulamalar Commodore 64'ün kendi formatındaki disketlere kopyalanabilir ve daha sonra Commodore 64 ile çalıştırılıp test edilebilir. Son yıllarda MMC64 gibi çok daha gelişmiş transfer (MMC64'ün veri transferinden çok daha fazla ve önemli özelliği var, internette bu konu üzerine biraz sörf yapmanızı tavsiye ederim) yöntemleri gündemde. Nightshift partisinde GO64'ün standını ziyaret edenlerdenseniz bir MMC64 sahibi olma şansını elde etmişsiniz demektir. Umarım bu şansı kaçırmış olmazsınız. Bu yöntemlerin haricinde IDE64, 1581, PC üzerinde 5.25" disket sürücüler v.b. teknolojileri veri transferinde kullanmanın çeşitli yolları mevcut. Ancak şimdilik bize transfer konusunda bu kadar detay gerekmiyor.
PC'den Commodore'a veri transfer etmeden Commodore için geliştirdiğimiz programların sonucunu PC'de görmenin tek yolu emülasyondur, yani Commodore 64'ün tüm donanımını, makine dilini, üzerinde gelen ROM'u, çalışma prensiplerini yazılımla simüle etmektir. Bu elbette ki hiç kolay bir iş değildir ve kullanıcının kendi başına böyle bir işe kalkışması çok uzun soluklu bir projeye girişmesi demektir ki başarı şansı da çok yüksek olmayacaktır. Ancak ne mutlu ki günümüzde Vice ve CCS64 gibi birçok Commodore 64 emülatörü mevcut ve birçoğu oldukça başarılı sonuçlar veriyor. Vice aralarında en gelişmişi denilebilir ve %99'a varan bir uyumlulukla Commodore 64'ü PC üzerinde çalıştırabiliyor.
Şimdi gelelim karar aşamasına. Yöntem olarak transferi mi yoksa emülasyonu mu seçmeliyiz? Birbirlerine göre avantajları neler? Cevap ise her ikisini birden kullanmamız gerektiğidir. Çünkü hiçbir Commodore 64 emülatörü, programları çalıştırmada %100'e varan başarıya ulaşsa da görüntü ve özellikle de ses emülasyonunda yeterli başarıyı gösteremez. Bunun başlıca sebepleri PC monitörleriyle Commodore'un kendine özel monitörleri ve televizyon çıkışının etkisinin yaratılamaması ve Commodore'un ses çipi olan SID'in analog yapısının PC'deki ses kartlarıyla emüle edilememesidir. Bu durumda geliştirilen programların tam olarak sonuçlarını görmek için Commodore 64'e transfer etmemiz bir zorunluluktur. Ancak elbette ki bu da geliştirme sürecini yavaşlatacak bir unsurdur. Çünkü programcı programları geliştirirken sık sık sonuçlarını görmek isteyecektir. Transfer işlemi ise dakikalar alabilen bir işlemdir. Bu durumda programcının her defasında programını kaydedip, transfer edip, sonucuna bakması bir süre sonra işkenceye dönüşecektir. Dolayısıyla PC'de geliştirdiğimiz programları doğrudan Commodore 64'ün belleğine derleyen bir düzeneğimiz olmadığı sürece en pratik metot, geliştirme sürecinde ara testler için emülatörleri kullanıp, tam sonuçları görmek için ise Commodore 64'e transfer etmektir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 158
Gerek kendi çalışma ortamım, gerekse önceki sayının devamı olması nedeniyle geliştirme platformunu PC ve işletim sistemini Windows olarak ele alacağım. Ancak anlatacağım yöntemler kolay bir şekilde başka işletim sistemleri, hatta hatta başka bilgisayarlara uyarlanabilir.
Hangi Hedef Platformlardan Bahsediyoruz?
Evet bir de hedef platformlarımız var, yani hazırladığımız programın çalışmasını amaçladığımız ve geliştirme platformunu araç olarak kullandığımız platformlar.
Bu platformlar neler olabilir? Atari 800XL, Atari ST, Commodore 64/128, Sinclair, Amstrad, Amiga, GameBoy, PlayStation v.b. Peki öncelikle son örnekleri ele alalım. Diyelim ki PlayStation 3'e uygulama geliştirmek için PC kullanıyoruz. Bu mantıklı mı? PlayStation 3 kullandığımız PC'den daha güçlü bir donanıma sahipse neden doğrudan PS 3 üzerinde uygulama geliştirmiyoruz? Elbette ki PC kullanmak mantıklı, hatta hatta bazı platformlarda uygulama geliştirmek için alternatifimiz olmayabilir. PlayStation örneğini kasti olarak verdim. Ancak hiç üzerinde durmayacağım. Bizi burada ilgilendiren örnekler daha çok Atari, Commodore, Amiga gibi örnekler. Oyun konsolları ve gelişmiş donanımlar arasında çapraz geliştirme bu dokümanın konusuna girmiyor.
Bu dokümanı yazmamda yola çıktığım nokta olması nedeniyle Commodore 64'ü hedef platform olarak seçiyorum. Yazıda buradan sonra kullanılacak geliştirme platformu PC, hedef platform ise Commodore 64 olarak ele alınacaktır.
PC Kullanarak Commodore 64 Üzerinde Çapraz Geliştirme
Geçen sayıda verdiğimiz ön bilgiler ve bu sayıdaki girişin ardından, sonunda asıl konumuza geçebiliriz.
PC'de geliştireceğimiz uygulamalar elbette ki normal koşullarda Commodore 64'te çalışmayacaktır. Bunun en temel nedeni iki platformun makine dili yapılarının birbirinden çok farklı olmasıdır. Kısacası 2 ile 3'ü toplayan bir programı bile PC'den Commodore 64'e aktarmamız mümkün değildir. Öyleyse yapmamız gereken şey yazacağımız programların