Plazma sayı 5, sayfa 22

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 22

Bir süredir aklımda, TPC'nin geliştirilmesi sırasında yaşadıklarımı aradan fazla zaman geçmeden taze taze yazıya dökmek vardı. Plazma için TPC hakkında bir yazı yazmam istendiğinde kendime güzel bir ortam bulmuş oldum. TPC hem yazılım, hem donanım, hem de firmware ayakları olan bir proje. Bu yazıda okuyucuların proje hakkında teknik ayrıntılar bulabilmelerini sağlamak istiyorum. İlk önce kısaca C64TPC'nin ne olduğunu açıklayayım.

Şekil 1.

C64TPC

C64TPC, C64'ü ve PC'yi seri portlarından birbirine bağlayarak C64'ün PC'nin veri depolama aygıtlarına erişimini mümkün kılan bir yazılım ve donanım birimidir. PC'nin sabit diskinde, CD/DVD sürücüsünde vb. olan bir dosyayı doğrudan C64'e yüklemenizi ya da tam tersi C64'ün belleğinde bulunan bir dosyayı PC'de istediğiniz bir konuma kaydetmenizi sağlar. Bunu yaparken C64 tarafında ilave bir yazılıma ihtiyaç duymazsınız. Daha önce alıştığınız şekilde LOAD, SAVE, SCRATCH vb. komutları kullanırsınız. Yazılım C64'ten gelen komutlara göre PC tarafında gereken işlemleri yapar. Donanım ise farklı mimarideki bu iki bilgisayarın haberleşebilmesi için gereken tüm alt seviyeli işlemleri halleder.

GELİŞTİRME SÜRECİ

C64TPC, bugüne kadar üzerinde çalıştığım en karmaşık projeydi ve benim için çok öğretici oldu. Gerçi insana en son neyle ilgilendiyse en zoru oymuş gibi geliyor olabilir. Çünkü karşılaştığı zorlukların ve sıkıntıların anıları daha taze oluyor. Geliştirme süreci boyunca en az iki kere TPC'yi pencereden aşağı atmak istedim. :) İki kere de vazgeçmeyi ciddi olarak düşündüm. Bu tür uzun soluklu işlerde vazgeçmek de can yakıcı. Çünkü önceki emekleriniz ve zamanınızın çöp olmasına razı olmak kolay değil. Şimdi hatırladım, bir kere de üzerine hızlıca basıp ezmek istemiştim:).

Bu kadar sıkıntı yaşamamın büyük nedeni osiloskop ve lojik analizer gibi profesyonel ölçüm cihazlarına sahip olmamamdı. Bu cihazları birer cümleyle açıklamam yerinde olur sanırım. Osiloskop elektrik sinyallerindeki zamana göre değişimin grafiğini çizer. Lojik analizer ise dijital hatlardaki zamana göre lojik (0/1) değişimi gösterir.

Benim iki en büyük yardımcım "Inside Commodore DOS" ve "C64 Programcının El Kitabı" oldu. Zaten projeye başlamak için gerekli cesareti toplayabilmemi Programcının El Kitabı'nda IEC portundaki hatların haberleşme sırasındaki lojik diyagramlarının verilmiş olması sağladı. Programcının el kitabında bu tür bir bilginin bulunması bana garip gelmişti ama o diyagramlar olmasaydı bu proje lojik analizersiz yapılamazdı. Elimde değişik durumları kapsayan üç diyagram olduğu halde doldurmam gereken boşluklar hala vardı ve onları bulmak için benim elimde deneme yanılma yönteminden başka bir şey yoktu.

İşte en sıkıcı ve zor anlar onlar oldu. IEC portundaki hatların diyagramlarda göremediğim lojik durumları için tahminler geliştirip defalarca deneme yapmak durumunda kaldım. Bir ara pes edip devreyi 8KB RAM takviyesiyle sadece hatların durumlarını kaydedip PC'ye gönderen basit bir analizere çevirmeyi bile düşündüm. Ancak zaman kaybetmek istemiyordum ve buna gerek kalmadan istediğim bilgileri deneme yanılma yoluyla derlemeyi başardım. Ancak bunu bir daha denemem :)

Klavyeyle gezinmek için ← ve → tuşları.