SIDECAR

Her şey bir yana, SIDECAR bir-

Amiga'nın yanında yer alan genişleme yuvasına (expansion port) bağlanan bir hardware ürünü bu. Kapladığı hacim, 25 cm. Sidecar, bir mandal kapaklı 5.25 inch'lik disket sürücüye, güç kaynağına ve üç adet IBM PC uyumlu fullsize genişleme yuvasına sahiptir. Böyle bir cihazın geliştirilmesinin ardında yatan bir düşünce de, Sidecar'ın önüne Amiga'nın mouse-portlarının da yerleştirilebilmesi olanağının sağlanmasıdır. Monitör ve Amiga güç kaynağı girişleri Sidecar'dan geçen kablolarla bağlandığı için, bu dizaynı gerçekleştirirken Amiga Mouse portlarının Sidecar'ın önüne yerleştirilebilmesi ve bütün sistemin yalnızca tek bir güç kaynağıyla bağlanabilmesi düşünülmüştür. Sözkonusu ünite 4.77 MHz standart IBM-PC saat hızında çalışan 8088'i içermekte ve IBM PC'yle yazılım benzerliği taşıyan TRANSFORMER'dan ayrılmaktadır. Doğal olarak, iki önemli parametreden de vazgeçemeyeceği, tam uyumluluk ve hızı aynı anda sağlayamayacağı için Transformer daha yavaştır ve alanı daha sınırlıdır. Sidecar, üç adet IBM uyumlu genişleme yuvasına sahip olduğundan, Amiga-Sidecar sistemine 20 MB hard disk eklemek mümkündür. 20 MB hard disk hem Amiga hem de PC modunda kullanılabilir. Ayrıca Sidecar kullanılarak LAN ve mini/mainframe'lere Amiga'nın akıllı terminal olarak bağlanması uygulamaları da gerçekleştirilebilir. Sidecar'ın aşağıda veriliyor. Üniteyle birlikte alınabilen sisteme dahil ek kartlar, kullanıcının Amiga'nın multi-tasking demolarına benzer demolar gerçekleştirebilmesini mümkün kılmaktadır.

! Özellikler:

-Tam IBM-PC yazılım uyumluluğu - PC alfanümerik monokrom adaptör uyumluluğu -PC renkli/grafik adaptör uyumluluğu - Üç full-size genişleme yuvası -Ana board'da 640

KByte'a kadar çıkabilen standart 256 KByte ana bellek - UPD756 disk kontrol entegresi -5.25 inch 360KB disket sürücü ek sürücü - İçten 20MB hard-disk ekleme imkanı - Amiga Paralel ve RS-232 seri portları için giriş -İç zamanlama, interrupt kontrolörü ve 16KByte'lık BIOS ROM -DMA kontrolörü -Amiga'ya hızlı giriş için dual port RAM - 8087 yardımcı işlemci birimi ekleme imkanı - Amiga RAM'ini, Sidecar'da yer alan özel bir konnektör aracılığıyla genişletme olanağı

Geçen sayımızda, bilgisayar dilleri hakkında genel bir girişten sonra, Fortran, Cobol, Algol gibi dillerin gelişimini anlatmıştık. Bu bölümde ise “modern bilgisayar dilleri” olarak tanımlanan Basic, C, Modula, Ada gibi dillerin niteliklerini kısaca vermeye çalışacağız.

Fortran, Cobol veya Algol gibi “klasik” dillerinin, ilk bakışta görülebileceğinden çok daha fazla, ortak yanları vardır. Örneğin hepsiyle yalnızca sayısal veriler kullanılabilir, bu da ellili yılların hardware olanaksızlıklarının bir yansıması. O zamanlar, hesaplama süresi ve bellek alanı son derece kısıtlıydı ve kimse, bu son derece pahalı alet kapasitesini karmaşık sayısal hesap işlemlerinin dışında kullanmayı düşünmüyordu. Bunun sonucu ise altmışlı ve yetmişli yıllarda, Fortran gibi yalnızca sayısal temele dayalı dillerin her şeye rağmen diğer -sayısal olmayan- alanlara da uygulanmaya çalışılması oldu. Dil zaten elimizdeydi; işlem kapasitesi artırıldı, ardından neredeyse tüm kelime işlem programları Fortran'da yazılır oldu: Her harf tek tek sayı değeri olarak kodlandı ve bir sayısal veri alanına yerleştirildi. Ama bu arada da çok önemli bir adım atıldı: 1965'te Dartmouth College'de Basic geliştirildi. Basic, sayısal veri türlerinin yanısıra, String'leri yani karakter zincirlerini ve bu amaçla kullanılan bazı operatörleri içeriyordu. Aslında sayısal verilerin ve metinlerin işlenmesi olanağı (o zamanlar), düşünülebilen bilgisayar kullanımlarının tümüne yakınını kapsıyordu. Fakat modern dillerin sağladığı avantaj bu alanları da aştı. Örneğin, bu diller istenen sayıda kendine özgü veri tanımlanmasını mümkün kılıyordu. Farklı türde birden fazla değişkenin biraraya getirilmesiyle oluşturulan “bağlı değişken”'ler vardı; son olarak da zincirleme listeler veya arama ağaçları gibi karmaşık veri yapıları kolayca kurulabiliyordu. Bu olanakları tam ve tutarlı olarak geliştirebilen ilk dil, geçen sayıda kısaca tanıttığımız Pascal'dı. Şimdi tanıtmaya çalıştığımız diller ise, Pascal'ın takipçileri.

Modüler Programlama

Modula

Tüm modern programlama dillerinin temeli, program gelişmesinin modüler hale getirilmesidir. Bununla istenen, sorunları sonsuz bir israfla (her sorun için yeniden yazılması gereken) büyük hacimli programlarla çözmek yerine, sorunun bölümlerini olabildiğince genel bir biçimde bağımsız parça programlarla, yani modüllerle çözmektir. Software'in elde geliştirilmesinin sağladığı açıktır: Bir sorunun bir kısmı yalnızca bir kez çözülür; aynı kısım programlama sırasında bir kez daha karşımıza geldiğinde, daha önce tamamlanmış olan modül yeniden alınır ve kullanılır. Ayrıca, birden fazla küçük sorunu çözmek, büyük bir sorunu çözmekten daha kolaydır. “Modüle edilmiş programlama”'nın tutarlı bir biçimde kullanılmasıyla, programlar uzun vadede çok daha rasyonel bir biçimde geliştirilebilecektir.

Fakat modüle edilmiş program çalışmasının bazı koşulları vardır: Tek tek her modülün “dışarıya” yönelik iyi tanımlanmış “bağlantı yerleri” olması zorunludur. Bu sayede, modülleri gereklere göre seçmek ve yerleştirmek mümkün olabilecektir. Fakat diğer yandan, modüllerin “iç yaşantısı” herhangi bir şeyle “dışarıdan” etkilenmemelidir. Bu nedenle Basic, bu tür programlamaya hiç uygun değildir: Alt programların kendilerine özgü adları yoktur, satır numaralarıyla çağrılırlar (kötü dökümantasyon); parametre aktarımı olanaksızdır, dolayısıyla belirlenmiş bağlantı noktaları yoktur ve son olarak alt programda değiştirilen her değişken, hemen ardında ana programda da değişmektedir. Pascal'ın da yaratıcısı olan Profesör N.Wirth tarafından geliştirilen Modula, Pascal'da kısmen varolan modülasyon olayının tutarlı ve bütünsel bir hale gelmiş olduğu ilk dildi. Her Modula programının kendisi de bir modüldür ve dolayısıyla başka programları alt modüller olarak kullanabilir. Bu bağlamda, dilin kullanıcıya sunduğu standart modüllerle kullanıcının kendisi tarafından yazılan (program) modülleri arasında hiçbir fark yoktur. Her modül kendi içinde tümüyle kapalıdır. Yani, veri türleri, fonksiyonlar veya değişkenler hakkında yapılmış tanımlamalar yalnızca modül içinde geçerlidir. Herhangi bir modüldeki tanımlamaların diğer modüllerde de geçerli kılınması istendiğinde, bunların modülden “ihraç edilmesi” ve diğer modüllere “ithal edilmesi” gerekir. Böylece, Basic alt programlarında sık sık karşılaşılan, istenmeyen yan etkiler tümüyle engellenmiş olur. Tabii ki, her bir modül de kendi içinde tümüyle yapılandırılmış biçimde oluşturulmuştur. Bir Modula programcısı, GOTO komutunu kesin olarak ve çabucak unutmalıdır. Bunun yerine, Pascal'dan alışılmış olan (FOR...TO..., DO...END, REPEAT...UNTIL, WHILE...END) gibi döngü yapıları ve ek olarak, LOOP ve

END arasındaki tüm komutları EXIT'te belirtilmiş olan koşul yerine gelinceye kadar, yerine getiren LOOP...EXIT...END döngüsü vardır. Bu döngü yapıları, C64'ün Commodore 3.5-Basic'inde veya C128'in 7.0-Basic'inde bulunmaktadır. Bu da, yapılandırılmış programlamanın Basic ev bilgisayarları alanında giderek daha çok kullanılacağının bir göstergesi olarak kabul edilebilir. Fakat Modula henüz Commodore bilgisayarlarında kullanılamamaktadır.

(Basic'e göre yaklaşık 50 kat hızlı). C ile programlama, aslında, “yapılandırılmış programlama” ilkesine göre her biri sorunun bir bölümünü çözen fonksiyonların yazılmasından oluşuyor. Toplam sonuç, daha sonra bu fonksiyonların sistemli bir biçimde birleştirilmesiyle sağlanıyor. Bu bağlamda, C, bir yandan Pascal'da büyük bir yakınlık gösterirken, diğer yandan mevcut hardware'in (işlemcinin) daha iyi kullanılmasını yarayacak ek komutlar ve operatörler sağlar. Ör-

Kısaltmalı Pascal: C

C dilinin gelişmesi, kendisi de C ile yazılmış olan 16 bitlik işletim sistemi Unix'in gelişmesiyle çok yakından ilişkili. Bu dilin adının C olmasının nedeni, aslında son derece basit. Digital Equipment mikro bilgisayarları için programcı desteği olarak 1970 yılında özel diller geliştirilmişti. Bunlara alfabe sırasına uygun olarak A ve B adları verilmişti. B dili, 1971'de, o zamanlar Assembler ile yazılmış durumda olan Unix sistemini kolayca başka bir bilgisayara aktarabilmek için kullanıldı. O sıralarda Bell Laboratuvarları'nda programcı olarak çalışmakta olan Dennis Ritchie, bu dilin yeteneklerini keşfetti, onu daha da geliştirdi ve inceltti. Ortaya çıkan ürünü de C olarak adlandırdı. Unix, kısa süre sonra, 1973'te, C ile

yazıldı. Dolayısıyla, bir yüksek dille yazılmış bir işletim sistemi oldu. Bunun gerçekleşmesini sağlayan şey, C'nin, o dönemde erişilebilecek en inceltilmiş programları oluşturabilecek yapılandırılmış bir dil olmasıydı. C ile yazılmış programlar bir yandan son derece derli toplu (bellekte çok az yer kaplıyor) diğer yandan da çok hızlı. Örneğin, değişkenlerin değerlerinin yükseltilmesi ve indirilmesine yarayan Assembler programlamasına dayalı özel komutlar gibi. Ayrıca yüksek programlama dilleri arasında, değişkenleri sicil değişkeni olarak deklare edebilme yeteneğine sahip olan tek dildir. Bunun anlamı, bu tür değişkenlerin olanaklar elverdiği ölçüde, iç işlemci sicillerinde tutulabilmesidir. Bu da, normal olarak kullanılan bellek değişkenlerinde olduğundan çok daha hızlı bir erişim sağlar. Bu noktada, dilin gelişmesinde, yalnızca, mütevazi üç siciliyle (A,X,Y) pek büyük olanaklar sağlayamayan 6502 işlemcisine güvenilmediği anlaşılmaktadır. Aslında, biraz daha hızlı bir erişim sağlayabilen Zero-Page de ek bir sicil olarak kullanılabilir. Diğer yandan, C'nin, 64 bitlik süper işlemciler için tasarlanmamış olduğunu belirtelim. Büyük makinelerde kullanılan bu tür işlemciler kural olarak çok fazla sayıda sicil içeriyorlar ve böyle bir makine için yapılmış iyi bir Fortran derleyici, bu sicilleri doğal olarak programın optimize edilmesi için kullanıyor. Dolayısıyla, C, kural olarak 16 ve 32 bitlik makineler için uygun. 8 bitlik işlemcilerde ise C, pratikte yalnızca Z80 ile kullanılabiliyor (CP/M'de). Fakat C64 için de bir C versiyonu hazırlanıyor.

Zirve: Ada

Modern, modüler bilgisayar dillerinin bugüne kadar erişilmiş olan en yüksek gelişme noktasını, şüphesiz Ada oluşturmaktadır. Bu bilgisayar dili, adını, geçen yüzyılda algoritmalar ve hesap makineleriyle ilgilenen ilk kadın olarak bilinen, Kontes Augusta Ada Lovelace'den almakta. Kontesin tanınmasını sağlayan olay, Charles Babbage'nin bulduğu mekanik hesap makinesi için bir “hesap kalkülü” geliştirmesiydi. Bu kalkül, en geniş anlamda bir makinenin ilk algoritması olarak tanımlanabilir. Ada dili, ilk olarak ABD Savunma Bakanlığı'nın isteği üzerine geliştirildi. Aynen C ve Modula'da da olduğu gibi, Ada da Pascal kökenliydi. Yani bu dil de Modula gibi son derece modüler ve yapılandırılmış bir biçimde oluşturulmuş, fakat yetenekleri bakımından Modula'dan çok daha üstün. Modula'da da olduğu gibi, tüm fonksiyonlar, özellikle de giriş-çıkış işlemleri, doğrudan dile dahil değildir. Bu tür fonksiyonlar, “Packages” olarak adlandırılan, özel modüllerde bulunurlar. Bunun en önemli yararı, kullanıcının, standart fonksiyonu beğenmemesi durumunda, hemen her fonksiyonu kendisinin yeniden yazabilmesidir. Tüm bu paketler, ister kullanıcı tarafından yazılmış olsun, ister sistem tarafından önceden hazır bulunsun, kendi açısından bir paket görünümü veren programa dışarıdan “ithal” edilmelidir. Bunu gerçekleştirmek için paket adının verilmesi yeterlidir. Örneğin, metinlerin giriş ve çıkış standart rutinlerin ithal edilmesi için şu rutin kullanılır:

TEXT IO IS PACKAGE
STANDART TEXT 10

Bu girişle, STANDART TEXT IO modülünde içerilen fonksiyonlar, program modülüne TEXT IO adıyla tanıtılır. Standart modül, örneğin verilerin bilgiyazımı veya okunması için WRITE ve READ fonksiyonlarını içerir. USE TEXT IO komutuyla gerektiğinde (programda READ veya WRITE ile karşılaşıldığında), karşılık gelen fonksiyonlar (programın içinde TEXT IO adını almış olan) STANDART TEXT IO modülünden alınır ve programa eklenir. Eğer kullanıcı belirli bir noktada standart fonksiyonları değil de, kendi yazdıklarını kullanmak istiyorsa, kendi modülünü

BENİM TEXT IS PACKAGE
OZEL TEXT 10

olarak bildirmek ve programda

USE BENİM TEXT

ile kendi tarafından yazılmış olan rutine geçirmek yeterlidir. Bu işlem sırasında, Ada'nın fonksiyonları “üste yükleme” yeteneğinden yararlanılır. Bu da aslında, bir ve aynı parolanın (ya da karakterin) amaç bakımından farklı fonksiyonları adlandırmasıdır. “USE” ile gerçekleştirilen değiştirmeden sonra, örneğimizdeki çıkış fonksiyonu gene “WRITE” adını taşır, ama çağrılan standart fonksiyon değil, kullanıcının kendi yazmış olduğu fonksiyondur.

1. $. Ersen 2. A. Ünverdi 3. H. Yıldız 4. C. Demirel 5. F. Yılmaz 6. K. Kaya 7. G. Gültoprak 8. E. Kilören 9. S. Demirsoy 10. Y. Yıldız.

20. M. Öztezel İzmir olduğu fonksiyondur. Doğaldır ki, bu teknik tüm olası alanlara yaygınlaştırılabilir. Böylece, Pascal veya Modula'daki gibi, kendine özgü veri tiplerini tanımlama olanağı ile birlikte, oldukça yüksek bir esneklik düzeyine erişilebilir. Örneğin, gerektiğinde, kompleks sayılar için COMPLEX veri tipi tanımlanabilir ve ELM, ve 6/9 işlem karakterleri “üste yükleme” aracılığıyla bu yeni veri tipinde kullanılabilir. Ada'nın iki kayda değer ek özelliği var: Bunların birincisi, kullanımda büyük kolaylık sağlayan bir olanak, programdaki olağandışı durumları (exceptions) işleyişi kesmeden kontrol altına alabilme. Bu olanak, kural olarak, bir programın içinde ortaya çıkabilecek hata koşullarını (Basic'teki “TRAP” ya da “ON ERROR” gibi) yakalamaya yarar. Derleyici dillerinde bu tür bir hata yakalama ve düzeltme işlemine pek rastlanmıyordu, fakat Amerikan Savunma Bakanlığı'nın gerekleri bu yöntemi zorunlu kıldı. Bu olmadığı takdirde, kritik bir durumda, radar istasyonları bir “DIVISION BY ZERO ERROR” nedeniyle mesaj göndermeyi kesebilirlerdi.

Ada'nın ikinci ek özelliği ise, paralel süreçleri aynı anda yürütebilme yeteneği (Multitasking). Bu yetenek, belirli işlemlerin aynı anda yerine getirilebilmesini sağlıyor (tabii ki, bilgisayarın birden fazla işlemciyle donatılmış olması gerekiyor; aksi takdirde elde edilecek olan bir “sanki-eşzamanlılık”tır). Bu da doğal olarak işletim hızında olağanüstü bir artış sağlar, fakat hardware harcamalarında da önemli bir külfet getirir. Programlama dillerinde, kabaca ayrılacak olursa, temelden farklı iki çizgi vardır. Bunların biri komut-dilleri, diğeri ise fonksiyonel dillerdir. Komut-dillerine, Basic'te dahil olmak üzere, Pascal, Modula, Ada ve C gibi dillerin yanısıra tüm “klasik” programlama dilleri girer. Bu dillerin tümü, yapılarından dolayı az ya da çok, bugün varolan bilgisayarların hardware örgütlenmesine dayalıdır (komut almak-komutu yerine getirmek-program göstergesini bir sonraki komutun üstüne getirmek). Buna karşılık, fonksiyonel diller tek tek özel komutların yerine getirilmesini talep etmez, yapılar, tanımlar ve yeni yapılar oluşturur.

KS

Bu dillerin temsilcileri olarak, örneğin Lisp (listeleri işlemeye yarıyor), Snobol (sembollerle canlandırma yapmakta kullanılıyor) ve üniversiteler dışında hiç tanınmayan bir sürü küçük, özel dil sayılabilir. Bu dil grubunun en çok tanınan temsilcisi, Lisp. Bu dil, acemiler açısından ilk bakışta, açılan ve kapanan bir sürü parantezden ve bazen de bunların arasında bulunan bazı simgelerden oluşuyor. Bunun nedeni, Lisp'in fonksiyonel yapısı. Lisp'te, komutlar yerine, en ilkel elemanlardan son derece karmaşık yapılar oluşturabilen fonksiyonlar var. Başlangıç noktası daima, en küçük Lisp yapısı olan atomdur. Bu klavye üzerinden bir bilgisayara girilebilen her şey, bir atom olabilir. (ATOM ELMA) ile, ELMA adlı bir “NESNE” tanımlanır; bu nesnenin herhangi başka bir veriyle ne içsel bir yapısı, ne de ilişkisi vardır. Diğer verilerle sahip olacağı bu ilişkiler, ancak daha sonra fonksiyonlarla tanımlanır. Lisp'in (List Processing Language) en temel ögesi, listeler oluşturabilme yeteneğidir. Liste, ögelerin düzenlenmiş bir dökümüdür. Bu ögeler en basitinden atomlar olabilir, ama başka listeler ya da fonksiyonlar da sözkonusu olabilir. (SETQ MEYVE (ELMA ARMUT AYVA))

ile, (daha önce atom olarak tanımlanmış olan) elma, armut ve ayva atomlarından oluşan MEYVE listesi tanımlanıyor.

Fonksiyonel Diller

Bu listeleri işlemeyi sürdürebilmek için önceden tanımlanmış bir dizi fonksiyon vardır. Tek tek ögeler ya da listenin tümü yeni listelere dönüştürülebilir; bunun gerçekleşeceği koşullar belirlenebilir vb. Bu sırada son derece karmaşık yapılar ya da düzenli mantık ağları oluşabilir. Böylece belirli ölçüde insan düşüncesinin öncelikle çağrışımcı yolla işleyen mekanizmasına, komutların adım adım işlenmesinden çok daha fazla benzeyen bir işleyiş yaratılır. Bu nedenle Lisp, pratik alanda hemen tüm AI (Artificial Intelligence- Yapay Zeka) projelerine hayranlık uyandırıcı bir başarıyla kullanılmaktadır. Bu dil öncelikle sembolik veri işlemde (sayısal olmayan matematik), simgelerin tanınması ve mantıksal fonksiyonlar alanlarında olumlu sonuçlar vermektedir. C-64, Lisp'i kullanmak için henüz uygun değil, fakat yine liste işlemeye dayanan Logo adlı bir dil C-64'te başarıyla kullanılabilmekte. Liste işlemin sağladığı bu üstünlük, Logo'da henüz Lisp'teki mükemmelliğe erişmiş değil. Fakat bu sadelik, yeni başlayanlar açısından büyük bir öğrenim kolaylığı sağlıyor. Logo, artık tüm dünyada simgesi haline gelmiş olan “kaplumbağa grafiği” ile tanınıyor. Kaplumbağa (turtle), kural olarak, ekranda FORWARD, BACK, RIGHT, LEFT gibi komutlarla her yöne hareket ettirilebilen bir üçgenle simgeleniyor. Kaplumbağa, bu hareket sırasında, ekranda görünen bir çizgi bırakıyor ve oldukça karmaşık grafiklerin basit bir biçimde çizilmesini sağlayabiliyor. Basic'te olduğu gibi, Logo'da da (tabii Lisp'te de) programlamayı kolaylaştıran bir çeviricinin varlığı sözkonusu. Tüm program komutları, doğrudan (direkt modda) verilebiliyor; bu sayede de tüm rutinler bilgisayarla doğrudan bir diyalog içinde denenebiliyor. Böylece, derleyicilerde sözkonusu olduğu gibi, her değişiklikten sonra yeniden bir çeviri gerekli olmuyor. Grafiğin çok kolay oluşturulabilmesi, C-64'te Logo'nun kullanımını destekleyen nedenlerin başında gelmekte. Logo ile ilgilenenler için, ileriki sayılarımızda bu dili daha yakından tanıtan yazılar yayınlayacağız. Doğaldır ki, bilgisayar dillerini anve tanıtabilmek için bu yazı oldukça dar. Burada adı geçen dillerin dışında, her birinin kullanımı üzerine kitaplar doldurulabilecek daha bir sürü programlama dili var. Yazımızın amacı ise, bilgisayar dillerinin gelişim çizgisi üzerine genel bir bilgi vermekle kısıtlı. Özellikle tüm dünyada çok yaygın bir kullanıma sahip olan Commodore 64 için, gelecekte yeni diller de geliştirilecektir. Ayrıca bu konunun bir de, CP/M özelliği ile tüm programlama dillerinin dünyasına açılmayı sağlayan Commodore 128'in açısından görülmesi enteresan olacaktır. Gelecek sayılarımızda bu konuya da eğileceğiz. D

Sayın Teleteknik Yetkilileri, 3. sayınızın (Commodore Dergisi'nin) Işıl Işıl Kalemler adlı bölümünde belirtilen bu kalemleri nasıl temin edebiliriz. Fiyatı ne kadardır. Bir de iki arkadaş Commodore 64'lerimizi birbirine bağlayıp bir C-64 ağı kurabilir miyiz? Açıklarsanız seviniriz. “Amacımız sadece hizmettir” diyen birçok kuruluşlar bile bize yeterli bilgi vermiyor. Siz verirseniz sevinirim. Davut PİRAZ, Zekeriya BİLİCİ, Tarık SEVİM

Sayın Davut Piraz, Zekeriya Bilici ve Tarık Sevim, Işık Kalemi (Light Pen) Teleteknik'te satılmaktadır. Ödemeli veya kendiniz gelerek alabilirsiniz. C-64'ler birbirine bağlanabilir. Yalnız konu, burada anlatılmayacak kadar teknik detay gerektiğinden, yolunuz düştüğü bir zaman uğradığınızda konuyu ayrıntılı konuşabiliriz.

Sayın Yetkili, Öncelikle göndermek inceliğini gösterdiğiniz bayram tebriki için teşekkür ederim. Derginizi ilk sayısından beri takip ediyorum. Ağustos sayısı, yayıncının notu köşesinde sizin de belirttiğiniz gibi, derginizin zamanla daha iyiye gideceğine inanıyorum. Benim derdim makine dili editörü ile. Elimde, yani kasete kaydedilmiş durumda, Amerikan mecmualarından alınma iki tane makine dili editörü bulunuyor. Bu durumda bir üçüncüsünü yazmak doğrusu bana zor geliyor. Bu editörün sizinkinden farkı esas bari ile “check sum”'un hesaplanış tarzı. Sizden ricam, sizin editörünüzün hesap tarzını bildirmeniz. Bu suretle elindeki programları, yalnız bu kısımlarını değiştirerek, derginizdeki makine dili programlarını bilgisayara girmekte kullanabileceğim. Çok fazla bir şey istemediğimi umar, saygılar sunarım.

Ersin BAYER

Sayın Ersin Bayer, Dergide yayınlanan makine dili editörünün (Check Sum) kontrol toplamını nasıl yaptığına ilişkin bilgiyi yayınlanmış program inceleyerek bulabilirsiniz. Bizde bu toplama ilişkin herhangi bir bilgi şimdilik yok. Elimize geçtiğinde dergide yayınlayacağımızı sanıyoruz.

Sayın Commodore Yetkilileri, derginizi ilk sayısından itibaren alıyorum. Gerek içerdiği konular yazılar olsun, gerek basım malzemesi yüzünden çok kaliteli ve faydalı olan bir dergi çıkardığınız için sizi kutlamak isterim. Şu anda piyasada bilgisayar konusunda gerçekten yardımcı olabilecek sizden başka bir dergi yok. Bu mektubu yazmanın esas amacına gelince. Bilemediğim bazı konulardaki sorularımı maddeler halinde sıraladım. Bunlara cevap verirseniz beni çok mutlu edersiniz. Şimdiden teşekkür eder, iyi Commodore'ler dilerim. 1- Simons' Basic yüklendikten sonra hafızada kaç KB boşluk kalıyor? 2- Sprite kullanırken, yarattığımız bir sprite'ın örneğin 100.000 noktasına gitmesini istiyoruz. Bu koordinattaki nokta ile sprite'ın 504 noktasından hangisi çakışıyor? (Öyle sanıyorum ki bu sol üst köşedeki noktadır). 3- Basic'te herhangi bir ekran koordinatında nokta olup olmadığını TEST(x,y) ile öğrenebiliyoruz. Ancak bu noktanın rengini bulmak için bir komut yok. Bunun yapılabilmesi için ne önerirsiniz? 4- Kaset kullanırken OPEN 1,1,1, ile açtığınız 1 no.lu dosyaya en fazla ne kadar (kaç karakter) sayısal, alfasayısal bilgi depolayabilirim? 5- Derginize göndermek üzere bir program hazırlıyorum. Ancak printout alabileceğim bir printer yok. Programı kaset halinde göndersem olur mu? (Bu konuda bana yardımcı olabilir misiniz?) 6- Son bir soru daha: Simons' Basic'te 3 sesli yapmak istiyorum. Fakat örneğin 1. ses birer saniye arayla davula vururken 2. sesin de piyano sesiyle nota çalmasını nasıl sağlayabilirim? (Kısaca çoksesli müzik yapmanın yöntemi nedir)

Hakan ÇELİK

Sayın Hakan Çelik, 1. Basic yüklendiğinde verilen mesajda hafızadaki boşluk yazmaktadır. Bu da 30Kb'dan fazladır. 2. Renk bilgisine ilişkin bellekten o noktanın rengini öğrenebilirsiniz, fakat renk her noktada değişmez. Yani renk belleği grafik belleğinden düşük sayıdadır. 3. Kasette dosyalar, belleğin kapasitesiyle sınırlıdır. 4. Kasette gönderebilirsiniz. Turbo'suz gönderirseniz daha iyi olur. 5. Bu konuda dergide birçok program yayınlandı. Onları incelerseniz bu işlemi kolayca yaparsınız.

Sayın Teleteknik Yetkilileri, Yayınladığınız Commodore dergisini ilk sayısından beri beğenerek izlemekteyim. Dergiyi alır almaz tüm yazıları (ilanlar ve reklamlar dahil) büyük bir dikkatle okumaktayım. Bütün yazılar için görüşüm “HARİKA”. Yalnız derginin sayfaları bu kadar şafşatalı olmak zorunda değil. Kağıt kalitesi derginin içeriğini etkilemez. Bunun için “program listeleri için gerekli” diyebilirsiniz -ki daha önce dediniz-. Program ana dergide değil. Program Döküm Eki'nde. Onun da kağıt kalitesi farklı. Benim dediğim “kağıdınızı saman kağıdına çevirip dergiyi ucuzlatın” değil. Sadece bir miktar ucuz kağıtla dergi sayfalarını çoğaltın. Çünkü derginizi okumaya doyamıyorum. Daha doğrusu “Commodore” “delileri” doyamıyoruz. Her neyse... Geçen sayıda “kısa programlar yollayın” diye bir notunuz vardı. Ben size değil kısa kilometrelerce listeli programlar yollayabilirim ama printerim yok. Ne yapayım? Yalnız sonunda canıma tak etti, bir programı daktiloda iyi kötü yazdım. Bu program Simons' Basic ile çalışıyor. İsterseniz yayınlayın. Ben de aynı şekilde yazılmış programlar göndermeyi sürdüreyim. Ayrıca size sormak istediğim sorular var. 1) Belleğe yüklenmiş herhangi bir programı özelliğini bozmadan daha üst veya alt bir bölgeye taşıyabilir miyiz? Örneğin; SYS 2085 adresli bir programı (PINKY) SYS 50000'e taşıyabilir miyiz? 2) Makine dilindeki programların listesini alabilmek için ne yapılabilir (Benim için LOCKY JR. ile yüklenmiş programın listesi olması önemli değil). 3) Benim “disk driver”'ım yok. Bu nedenle dosyalama yapamıyorum. Bunu yapabilen bir program var mı? 4) Herhangi bir disk driver da bazı değişiklikler yapılarak C-64'de 1541 yerine kullanılabilir mi? Sorularıma yanıt verirseniz çok teşekkür ederim. Yanıt vermeseniz de teşekkür ederim. Saygılarımla...

Köksal BAŞAR

Sayın Köksal Başar, Printer'ınız olmadığı için yazdığınız programları birçok kişinin yaptığı gibi kaset üstüne yükleyip bize gönderebilirsiniz. 1. Belleğe yüklenmiş bir programı başka bir bellek bölgesine taşımanız mümkündür. Fakat makine dilindeki JMP, JSR ve indeks işlemlerinin yeni adres için düzenlenmesi gereklidir. 2. Bunun için programın RUN etmesini önlemeniz gerekir. Bu konuyla ilgili birçok yazı dergimizde yayınlandı. Koskranpo II, Kaset Header veya Sezai Kraker'in yazısını okuyun. 3. Disketin herhangi bir yerine ulaşmak kolay olduğundan kasetle oranlanmayacak şekilde kullanışlı dosyalama programları yapılabilir. 4. O disk driver'a ilişkin protokolün bilinmesi gerekir. Eğer RS 232 standart birime sahip bir disk driver kullanıyorsanız, bunu user port yardımı ile C-64'e bağlayabilirsiniz.

Sayın Teleteknik Yetkilileri, Derginizin altıncı sayısının “Yayıncının Notu” köşesini okuduktan sonra kaleme sarıldım. Çünkü size aktaracağım birkaç oyun var. Ama önce size bir ricada bulunacağım. Birincisi, C-128 hakkında bilgi verir misiniz? İkincisi, “Advanced Machine Language Book For The C-64” adlı kitabı (kod no: K0005) ödemeli olarak adresime gönderebilir misiniz? Şimdiden çok teşekkür ederim.

Gelelim oyunumuza: Castle of Terror'un birinci bölümü zor da olsa bitirip şatoya girmiştik. Şatonun içinde zorlanacağımız kesin. Yalnız ufak ayrıntılarla ilgilenmeliyiz. Evet, zavallı yaşlı adamın kızını kurtarıp, dünyaca ünlü zenginlerin hazinesine kavuşup kaçabilecek miyiz? Kalenin adı üstünde “Dehşet”, Bu yüzden sık sık iskeletlerle, ölülerle karşılaşıyoruz. İlk önce silahların bulunduğu odadan balta ile zırhı almalıyız (axe, armour). Daha sonra yemek odasından aşağı inip, kuzeye gidiyoruz. Burada karşımıza iki nöbetçi çıkacak. Bunları “Kill knight” komutu ile öldürmeliyiz. Bunları öldürdükten sonra yemek holüne çıkın. Oradan bir daha yukarı giderseniz, kuleye çıkarak zavallı kıza ulaşırsınız. Aman dikkat, yan taraftaki tabutta bildiğiniz ünlü Drakula var. Onun zayıf noktasını bulup, öldürün. Ayrıca hazineye ulaşmak için kütüphaneye gidip “Press skull” komutunu verin. Daha sonra “Get book” ile bir kitap alın. İşte batıya gitmenizi engelleyen şövalye donacak, siz de seçilmiş zenginlerin hazinesine kavuşun. Sıra kaybolmadan kaçmaya geldi. Üzerinizdeki ağırlıkları bırakıp, zıplayın (jump). Karşınıza köy çıkacaktır. Tam karşınızda ise meyhane var. Burada yılmadan “Help” komutunu verin. Genelde “No comes to help you” mesajını alırsınız. Siz, gene “Help” yazmaya devam edin, yaşlı adam sizin sesinizi duyunca gelip kurtaracaktır. Mutlu sona erişen siz olacaksınız. Bu oyunun grafikleri (bence) dört yıldız, sesi beş yıldız, zorluğu beş yıldız almalıdır. Ama takdir hakkı sizin (Ukalalık ettiysem özür).

Barış TARIMCIOĞLU Halit Ziya Sk. No: 20/14 Çankaya/ANKARA

Sayın Commodore Dergisi İlgilileri, 6. sayıda International Basketball ve International Tennis oyunlarını açıklamaya çalışmışsınız, fakat fazla anlaşılmıyor ve çok kısa açıklamalarda bulunmuşsunuz. Ben de diğer Commodore sahibi olan arkadaşlarıma açıklık kazandırmak için bazı şeyleri aşağıda veriyorum. Eminim artık arkadaşlar da bu oyunları sıkılmadan, zevkle ve hoşça oynayacaklardır. Saygılarımla...

International Basketball Oyun 9 zorluk derecesinde oynanabildiği gibi 3 ayrı sahada da oynanabilmektedir. “F” fonksiyon tuşları ile oyunun zorluk derecesini, tek veya çift kişi ile oynanacağını, oyuncuların formalarının renklerini ve hangi sahada oynanacağını belirtiyorsunuz. 3 çeşit saha var demiştik; bunlardan 1. Olympic saha, 2. Yeni kurallara göre olan saha, 3. Eski kurallara göre olan saha. Oyunun oynanması ise; oyun hava atışı ile başlıyor ve ateş tuşu ile riband'a kalkıyoruz. Bizim hareket ettireceğimiz oyuncu bizim takımın renginin biraz değişik bir renginde oluyor. Eğer top elimizde değil ise “ateş” tuşuna basıp çekerek oyuncumuzu zıplatıyoruz; böylece riband'a çıkabiliyor veya top çelebiliyoruz. Eğer top elimizde ise; 1. pas verebiliyoruz, 2. şut atabiliyoruz. Pas vermek için ateşe basıp çekeceğiz. Şut atmak için ise önce şut mesafesine gireceğiz, daha sonra ateşe biraz fazla basıp elimizi ateşten çekeceğiz. Oyunun kuralları aynen tatbik edilmiş. Yani oyunda karşı sahaya geçtikten sonra tekrar sahamıza (top bizim takımdayken) dönemeyiz. Topu 10 saniye içinde bizim sahadan çıkarmalıyız ve 30 saniye içinde şut atmamız gerekiyor. Takım faulleri, yandan başlama gibi her kural geçerli. 3'erden 6 kişi ile oynanıyor. Oyun bitince oyuncular sahaya diziliyor. Ekranın sol tarafı bizim, sağ tarafı ise bilgisayarın. Oyunu kim kazandıysa güzel bayandan kupayı o takımın kaptanı alıyor.

International Tennis

Oyun 4 zorluk derecesinde tek veya çift kişi ile oynanıyor. Basketball'da olduğu gibi ayarlamalar “F” fonksiyon tuşları ile oluyor. Oyuna top bizdeyken başlıyoruz ve topu servis kullanırken daima belirtilen çizginin biraz gerisinden atıyoruz ki “FOOT” hatası (yani ayağımızı çizgiye bastınız hatası) vermesin. Topu atarken ateşe basarak topu havaya atıyoruz ve top başımızın üstünü geçer geçmez ateşe bir daha basıyoruz ve topu şutluyoruz. Eğer topa erken vurursak fileye takılıyor veya geç vurursak hatalı oluyor. İki defa hatalı oldu mu, puan kaybediyoruz. Oyun içinde topu istediğimiz yere göndermek için;

* ateş ve duvardan taraf * ateş ve aşağı * ateş ve fileden taraf * ateş ve duvardan taraf

—- yukarı atış için aşağı atış için pike çekmek için — topu havalandırma için

Sadece ateşe basarak ise topa gelişigüzel vuruyoruz. Oyunun puanlaması 0-15-30-40-45 şeklinde. Oyun 3 dereceden oluşuyor. 2 devreyi alan kazanıyor. 1 devrede ilk 6 sayısını tamamlayan taraf o devreyi alıyor. Oyun bitince kazanan ve kaybeden ortada el sıkışıyor ve kaybeden gidiyor. Kazanan ise kazandığını belirten sevinç hareketleri yapıyor.

İlhan DEVELİOĞLU Mustafa Kemal Paşa Bulvarı Türkay Sk. Yıldız Apt. A Blok 1/2 No: 7 38010 KAYSERİ

Sayın Commodore Yayıncıları, Ben 6. sayıda yayınladığınız istek üzerine çözebildiğim birkaç oyunu açıklayacağım. Geçen sayıda yayınladığınız R.M.S. adlı oyunda daldığımız zaman yapılacak işleri söylediniz. Mesela ışıklandırmayı nasıl yapacağımızı yazmadınız. Ben bunları açıklamaya çalışacağım.

(CRSR— | tuşu ışıklandırmayı, (R) Robot arm'ı indirip kaldırmayı, (SPACE) kancanın ağzını açıp kapamayı, (1,2,3,4) tuşları TS1'de bulunan eşyaları ışığı indirmek için, (H) tuşu ise yukarıya telefonla S.O.S gönderip yukarıya çıkmanızı sağlar.

Benim yapamadığım fotoğraf çekme, The Sun gazetesi muhabirine korseyi nasıl TS1 çıkarıp göstereceğimi, TS1'de bulunan dört bölmeyi doldurduğum zaman bulduğum diğer eşyaları nereye yerleştireceğimi ve bu eşyaları nasıl laboratuvara götürebileceğimi bilmiyorum. Bana bu konularda yardımcı olursanız sevineceğim.

Size açıklamaya çalışacağım diğer oyun ise ZORRO'nun mezara indikten sonraki bölümü.

ZORRO mezara indikten sonra sol tarafta para kesesi var. ZORRO'nun yapacağı iş bu paraları toplayarak çıkış yolunu bulmak. Çıkış yolu ise ayakkabı, at nalı ve kupanın yanında bulunan kemik merdivendedir. Paraları doğru olarak toplamanın yolu ise, bir para kesesini aldığınız zaman kolay yolda diğer ekrana geçmektir. Mesela ilk gördüğümüz para kesesini alıp yürüyerek bir sol ekrana geçeriz, oradaki parayı alıp bir aşağı ekrana geçeriz. Eğer paraları doğru olarak toplamışsanız alt alta bulunan ayakkabı, nal ve kupanın yanında bulunduğu merdivenden yukarıya çıktığımızda içinde altı tane mahkûm bulunan bir bina ve silahla ateş eden adamlar görüyoruz. Mahkûmları kurtarmak için ZORRO'yu kapının önüne getirip ateş tuşuna basınız. Eğer altı adamı da kurtarırsanız bunlar merdiven şeklinde diziliyorlar ve siz bunların üstüne basarak yukarıya çıkıyorsunuz. Yalnız kurşunlara dikkat edin. Eğer vurulursanız geri mezara iniyorsunuz. Bir sol ekrana geçtiğiniz zaman dikkat ederek sol alt köşeden bir sol ekrana geçiyoruz. Burada sevgilinizin yanına tırmandığınızda elinde oyunun başında size attığı mendil bulunuyor. Sakın yanına çıkayım demeyin yoksa sizi göle atar. Çünkü kendisine çiçek götürmediniz. Geri dönüp anahtarlı odadan çiçek almanız gerekiyor. Ben bundan sonrasını yapamadım. Bundan sonrasını yapabilen olduysa bana yazsın. Sevgiler.

Mert TAŞKIN

Not: Bu yazıları derginizde yayınlanacağını umduğum için oyun tanıtırken kullandığınız stili kullandım.

Teleteknik Elektronik Sanayii ve Ticaret A.Ş. Silahhane Cad. Ralli Apt. No: 59 Daire 3 Teşvikiye-İSTANBUL Eylül 1986, tarihli Commodore derginizde yayınlamış olduğunuz yaz ucuzluğuna dahil Kitap yayınlarınızdan aşağıda yazılı olduğu üzere sipariş vermekteyiz: C-64 Programcının el kitabı k9001 3 adet C-64 Türkçe kullanım kılavuzu k1002 3 adet Easy Script C-64 Kelime İşlem Prog. Kılavuzu k1033 3 adet Bu kitapları ödemeli olarak adresimize yollamanızı ve faturasını da Bülent YÜCE-Yüce İthalat-İhracat- Pazarlama Adliye Karşısı Menzi İşhanı No.9 ADANA Seyhan Vergi Dairesi-YGA 31249'a kesmenizi rica eder, işlerinizde üstün başarılar temenni ederiz.

Sayın Bülent Yüce, Ödemeli olarak istenen siparişleri karşılayamadığımızı üzüntüyle belirtiyoruz. Sipariş bedelini 178055 no.lu posta hesabına yatırıp siparişlerinizi bize iletirseniz hesap pusulası elimize geçer geçmez isteklerinizi karşılayacağımızı bildiririz. Saygılarımla...

Tüm bayilerde