Commodore sayı 1, sayfa 15

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 15

INPUT/OUTPUT

Yalnızca mikroişlemci ve bellekten oluşan bir bilgisayarda bu işlemlere ne müdahale edebiliriz, ne işlemin sonucunu görebiliriz. İşlemci bilgisayarın beyni, bellek de iç organları ise, şimdi bilgisayarımıza beş duyu organıyla kol bacak takmamız gerekiyor. Belleğin bazı anahtarlarını mikroişlemciden bağımsız olarak açıp kapatan, yani belleğe belli sinyal dizileri gönderen cihazlara input (giriş) cihazları; bellekteki sinyal dizileri uyarınca belli işlemler yapanlara da output (çıkış) cihazları adı verilir. Input ve output cihazları, asıl bilgisayarın bir parçası değil, elektrikle işleyen ve anlamlı sinyal dizileri üreten (veya anlamlı sinyal dizilerinden etkilenen) herhangi bir alet, input/output cihazı olabilir. En basit input cihazı klavye. Klavye, sıra sıra tuştan oluşan ve bir tuşa basıldığında 8 bit'lik bir sinyal gönderen bir nesne. Tuşların üzerinde birtakım harflerin bulunması hiç önemli değil. Önemli olan, örneğin soldan beşinci tuşa basınca 01110001 gibi bir sinyalin çıkması. Bu sinyal belleğe ulaşınca mikroişlemcinin bunu neye çevireceği, programa bağlı bir olay. Bir başka input cihazı joystick. Joystick, sadece 16 farklı çeşit sinyal gönderebilen basit bir alet. Paddle ise 256 çeşit sinyal gönderebiliyor. Optik okuyucu ve lightpen, bir noktada ışık bulunup bulunmadığına göre 1 veya 0 sinyali gönderen cihazlar. Elektrikli piyano klavyesi de, tıpkı normal klavye gibi bir sinyal üretici. Ses dalgalarını elektrik dizilerine çeviren bir mikrofon da bunun gibi. En basit output cihazı ise ekran. Ekran, gelen elektrik sinyallerini çeşitli renklerde mikroskopik ışıklı noktalara çeviren bir alet. Printer ise, yine benzer 01 sinyallerini kafa motorunun darbelerine dönüştüren bir output cihazı. Bir fabrikanın üç yüz kapısını kontrol eden veya bir robotun manivelalarını hareket ettiren bir motor; yüzlerce ampulü yakıp söndüren bir ışıklı tabela sistemi; gelen sinyalleri elektronik dalgalara çeviren bir radyo servisi veya ses dalgalarına çeviren bir hoparlör de output cihazları. Bazı cihazlar da hem input, hem de output yapma imkânına sahip. Teyp ve disk birimleri, manyetik bir ortama kayıtlı sinyal dizilerini okuyup bilgisayara iletebiliyor, hem de bilgisayardan gelen sinyalleri manyetik ortama kaydedebiliyor. Bir modem aracılığıyla telefon cihazı da, bilgisayar sinyalleri ile telefon sinyallerini birbirine dönüştürebiliyor. COMMODORE-64'ün, dışardan gelen sinyalleri almak ve dışarı sinyal göndermek için, sekizi dışardan görebildiğiniz, biri de içeriden klavyeye bağlı 9 kapısı bulunuyor. Bu kapılardan sinyal alma/sinyal verme işlemlerini ise VIC (Video Interface Chip), SID (Sound Interface Device), CIA 1 ve CIA 2 (Complex Interface Adaptor) isimli dört çip yürütüyor. Bunların tek işi, belleğin belli bir noktasına mikroişlemcinin yerleştirdiği verileri kapıya iletmek ve kapıdan gelen dizileri, mikroişlemci istediğini yapsın diye belleğin belli noktalarına koymak.

PROGRAMLAMA VE PROGRAM DİLLERİ

Geldik işin püf noktasına. Bilgisayarın bir işe yarayabilmesi için, bir kapıdan gelen kodlu sinyaller dizisini, belli kurallar uyarınca, birtakım başka kodlara çevirip öbür kapıya vermesi gerekir. İşte program denilen şey, bu çevirme işleminin kurallarını mikroişlemciye bildiren kodlar dizisi; bir çeşit tercüme rehberi. Örneğin klavye kapısından 01001010 kodunu getirirse, belleğin uygun bir yerine 10110101110101000111101011101 kodunu koy ki VIC bunu ekran kapısına göndersin; veya başka bir yere 01111 koy da printer işlesin” anlamına gelen bir kod. Doğal olarak, programın, mikroişlemcinin anlayabileceği bir dilde olması gerekiyor. Mikroişlemcinin ise sadece makine dilinden anladığını gördük. Makine dili de, adı üstünde, insan kafasına pek uygun olmayan bir dil. Ama başka bir kurallar sistemine göre yazılmış bir programı makine diline tercüme eden programlar da mümkün. Bu programlara compiler (derleyici) veya interpreter (yorumlayıcı) adı veriliyor. Tabii işin ideali, bilgisayarı normal konuşma diliyle, örneğin Türkçe programlayabilmek. Fakat insan dilleri bilgisayar için çok karmaşık ve muğlak olduğundan, makine dili ile insan dili arası ortalama diller geliştirilmiş. BASIC, Pascal, Cobol, Fortran, Logo, Lisp, Forth, C bunlardan bazıları. COMMODORE-64'ün ROM'unda, BASIC programları hemen makine diline çeviren, böylece mikroişlemcinin BASIC'ten anlamasını sağlayan bir yorumlayıcı var. Ama bu yorumlayıcıyı devreden çıkarıp doğrudan doğruya makine dilinde yazmak veya kaset ve diskette bulunan başka programlama dillerinin derleyicilerini yükleyip bu dilleri kullanmak da mümkün. Hatta derleyicisini yazmak koşuluyla kendiniz de bir programlama dili icat edebilirsiniz.

Bilgisayarınızdan yararlanmak için programlama bilmeniz tabii ki şart değil. Kasetlerde, disketlerde, kartuşlarda usta programcılarca yazılmış binlerce program var; bunları kullanabilmek için LOAD ve RUN kodlarını bilmeniz yeterli. İşin özeti, bir input bir de output cihazı ve birinin sinyallerini öbürünün verilerine çeviren iyi bir programla, COMMODORE-64'ün yapamayacağı şey yok. Dünyada bazı insanlar, birkaç düğmeden gelen kodları (input), Moskova'yı bombalayacak füzeleri kontrol eden sinyallere (output) çeviren programları yazıyorlar. Biz, iyisi mi, joystick'ten gelecek kodlarla (input) ekranda Moskova'yı temsil eden ışıklı noktaların sinyallerini (output) kontrol eden programlarla yetinelim.

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