Bu sayfadaki yazılar
Sayfanın metni
Sayfa 14
Şu anda yine devamlı ilk 5 dergi içinde olan bir başka dergi de SCRIPT adını taşıyor. Bir şok yaşamaya hazır mısınız? Bu dergi, bir Türk grubu tarafından hazırlanıyor!. Hepinizin tanıdığını tahmin ettiğim Cligue adlı Türk grubun yarattığı bu dergi, şu anda tüm dünyada en çok okunan dergilerden biri. Bu dergi şu anda ilk 3 savaşı veriyor, bazen ilk 3 içinde yer alırken, bazen 5 numaraya kadar düşebiliyor. Bu hiç önemli değil, tüm dünyanın okuduğu ilk 5 dergiden birinin bir Türk dergisi olması bence çok önemli bir olay. En azından, Türkler de bu bilgisayar dünyasına isimlerini kanıtladılar. Derginin tüm programlaması Walking Stress kod-isimli Türk programcı tarafından yapılırken, tüm müzikleri Babyface adlı Türk müzisyen tarafından yapılıyor. Dergiyi baştan aşağı yazan ve tüm editörlüğünü üstlenen kişi ise Remix adlı grup üyesi. Script de aynı Brutal Recall gibi içindeki yüzlerce block yazı ile dikkat çekmiştir. Hatta, Script, dünyada ilk kez kendi içinde demo çıkaran dergi olmuştur. Herhangi bir yazı okur gibi, demonun bulunduğu başlığı seçiyorsunuz ve demoyu seyrediyorsunuz. Sonra istediğiniz an derginin menüsüne geri dönüyorsunuz. En çok yazı taşıma konusunda Brutal Recall ilk kez 1000 block'tan da fazla yazı taşıyarak bir rekor kırdı. 1000 block sınırını geçen ve içinde en çok okunacak şey barındıran ikinci dergi ise Script oldu. 1000 block yazı demek, hafızası sırf yazıyla dolu olan 4 adet C-64'den daha da fazla hafıza demektir. Brutal Recall'ın editörü olan TCH adlı kişi, Script'i bir numaralı dergi olarak kabul ediyor ve votesheet doldururken oyunu Script olarak kullanıyor. Yani bir numaralı derginin editörüne göre Script dünyanın bir numaralı dergisi. Bu gibi olaylar biz Türk'leri bayağı sevindiriyor, öyle değil mi? Tüm bunlar yanında, her konuda değil de, bazı konuları içeren dergiler vardır. Mesela, Deelite adlı dergi sadece bilgisayar müzisyenlerine yönelikken, Gamers Guide adlı dergi, kırıcı gruplara yöneliktir. Solid Sound adlı dergi sadece gerçek müzik (yani bilgisayar değil, normal müzik) hakkında yazı yazarken, Addybook adlı dergi, sadece bilgisayar yazışmalarına yöneliktir. Böylece, bilgisayar grupları kendi dünyalarının yanında, kendi iletişim araçlarını da kurarak tam anlamıyla kendilerine bambaşka bir boyut açmışlar. Bilgisayar grupları arasındaki bu gibi olaylar, onları rekabete yöneltti, daha kaliteli programlar yapmaya itiyor ve sonuçta mükemmel programcılar, müzisyenler, grafikerler çıkıyor, bizler de bu kişiler tarafından mükemmel oyunları oynuyoruz. (Bakınız: Zack, Nibbly Plural, Square Out) Hemen hemen hepinizin disk-mag olayını ilk kez duyduğuna eminim. Bunun sebebi, daha önce belirttiğim gibi tüm bu olayların bilgisayar grupları arasında geçtiğidir. Bu kişiler, oyun oynamayan ve 64'lerinin bir oyun makinesi olmadığını düşünen kişilerdir ve kendilerini oyun oynayan tabakadan soyutlamışlardır. Eeee, biz ne diyelim? Darısı hepimizin başına. Gerçekten aranızda bu aleti sadece ve sadece oyun oynamak için kullanan varsa kendine yazık ediyor... Her neyse, başka konulara taşmadan ben de yazıyı burada bitireyim en iyisi... Bunun gibi 64'ün ilginç kullanım alanlarını anlatmaya devam edeceğim. Siz her zaman yaptığınız gibi Commodore Dergisi'ni okumaya devam edin...
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 15
Atölye'de ele alınan acayip yazılardan sıkılmayan herkese selam. “Umarım geçen sayıda yayınlanmış olan grafik paketçiğini hepiniz yazmış ve demek isterdim, ama ne yazık ki bazı teknik arızalar dolayısıyla (ne demekse) döküm ekinde yayınlanması gereken program bu aya atıldı. Link hatlarında arızalar olmazsa bu ay yayınlanmasını bekliyoruz. Aslında tek başına pek de işe yaramayan bu program, hem BASIC'den parametrelerin nasıl okunacağı konusunda, hem de ROM'ların ne şekillerde kullanılabileceği konusunda bazı fikirler vermek amacını güdüyordu. Aynı yazıda, bazı arkadaşlar tarafından “Hesaplanması neredeyse imkânsız” olarak nitelendirilen, VIC video matrisinin ve karakter datalarının yerini belirleyen adresinin değerinin nasıl hesaplanacağını da göstermiştim. VIC'in $0000-$3FFF arasını değil de $C000-$EFFF arasını, veya $4000-$7FFF arasını kullanmasını sağlayacak $DD00 adresinin kullanılışını da (en azından bu amaca hizmet edecek kadar) geçen ay anlatmıştım. Eğer C64'ünüzü grafik alanlarında kullanmaya niyetliyseniz, bu iki adresin kullanılmasını oldukça iyi şekilde öğrenmelisiniz. Çünkü, normal karakter setinin görüntüsü yüzünden kullanamadığınız $1000-$1FFF arasını, ikinci BANK'e geçerek kolayca $5000-$5FFF arası olarak kullanabilirsiniz. Aslında FLI-Graph sisteminin de yaratılabilmesini sağlayan başlıca özelliklerden biri de budur ($D011 ile uygulanan akıl durdurucu hileleri işin içine katmazsanız). Bu kadar laf kalabalığından sonra bu ayın konusunu açıklamaya geldi sıra: Bu ay FLI-GRAPH üzerine 64 sprite'lik multiplexer yapmanın yolunu anlatmayı düşünmüyorum, çünkü böyle bir şeyin yapılabilmesi imkânsız. Biz en iyisi daha basit konulara dönelim. Geçen ay söz verdiğim grafik ekranına nokta koyma, yavaşlığın sebepleri ve
Vedat Hallaç bu yavaşlıktan ne gibi yollarla kurtulabileceğimiz konusu gibi... Bu ayın konusuna girmeden önce geçen ayki bilgilerimizi kısaca bir tazeleyelim isterseniz. Rutinimiz beş ayrı komut ekliyordu BASIC'e. Bu komutlar sırasıyla şu adreslerde bulunuyordu: SYS 49152: Grafik ekranını açma. SYS 49155: Normal ekrana geri dönme. SYS 49158: Ekranı temizleme. SYS 49161,R1,R2,R3: Grafik ekranının renklerini belirleme. R1, R2, R3 sayıları ile 0-15 arası renkleri seçebilirsiniz. SYS 49161,X,Y,RN: X,Y koordinatlarına R1,R2,R3 renklerinden biri ile nokta koyma veya 0 ile buradaki noktayı silme. İlk dört rutini geçen sayıdaki yazıda detaylı olarak ele almıştık. Sadece grafik ekranıyla ilgili bilgilerinizi tazelemeye yetecek kadar yer olmadığını düşünerek nokta koyma ve silme işini bu aya ertelemiştik. Şimdi grafik ekranını multi-color modda kullanmanız için gereken tüm bilgileri ve formülleri vereceğim: Her şeyden önce grafik ekranının bellekte nasıl durduğunu göreceğiz. Bunun için de “card” veya “kart” kavramını size tekrar hatırlatmam gerekecek. 'Kart', ekrandaki 8x8'lik alanların her birine verilen addır. Bu alanlar hep 8'in tam katı olan koordinatlardan başlar. Grafik alanını bu şekilde kartlara ayırmamızın sebebi, her kartın, içindeki noktaların hepsinin rengini belli kurallar çerçevesinde kısıtlamasıdır. Yani ekrandaki her 8x8'lik alana birbirinden bağımsız renkler verebilirsiniz. Şekil 1'e bakarsanız ekranın sol üst köşesinde yer alan kartlardan birkaçını görebilirsiniz. Grafik ekranı 320 x 200 boyutunda olduğunu da göz önüne alarak tam 40*25 = 1000 adet kartımız olduğunu görebiliriz. Dikkatli arkadaşlarınız bu kartların sayısının karakter ekranına basılabilecek karakter sayısıyla aynı olduğunu fark etmişlerdir. Evet, bu bir tesadüf değil. Çok renkli grafik ekranı kullandığınızda hizmetinize sunulan üç renkten biri renk RAM'i olan $D800'daki 1000 baytta, diğer ikisi de o an aktif olan video matrisinde yer alan 1000 baytta saklanır. AMICA PAINT gibi programlar on altı rengin bu koşulları yok etmeden kullanılmasını sağlarken, PAINT MAGIC gibi bazı programlar kullanıcıyı seçilmiş üç renkle sınırlarlar. İsterseniz şimdi de bu kartların hangi baytlardan oluştuğunu ve çok renkli modda renklerin neye göre verildiğini görelim. Grafik ekranları, sadece $0000, $2000, $4000 gibi 8K'lık alanların en başında yer alabilirler. Bu alanın ilk baytı, grafik ekranın sol üst köşesine ait sekiz noktanın değerini içerir. Bir bayt sekiz bitten oluştuğuna göre bu bayta vereceğimiz değere göre bu noktaların ayrı ayrı veya hep birlikte seçilmelerini ayarlayabiliriz. Bir bayttaki değerin noktaların açık veya kapalı olmasını nasıl sağladığını şekil 2'de görebilirsiniz. Şekilde de belirtildiği gibi her noktanın bir “ağırlığı” vardır. Baytta tutulan sayı ise görünen bitlerin ağırlıklarının toplamından başka bir şey değildir. Tabii ki bu ağırlıklar kafadan atılmış değerler değildirler. En sağdaki noktaya 0. nokta, en soldaki noktaya da 7. nokta dersek, ağırlık = 2^nokta no formülünden nokta ağırlıklarını hesaplayabiliriz. Grafik ekranının başlangıcından bir sonraki adreste tutulan bayt, kartın ikinci piksel satırının değerini tutar. Böylece grafik adresinin ilk sekiz baytının değerleriyle oynayarak sol üst köşedeki kartın noktalarını açıp kapayabiliriz. Dokuzuncu bayt ise, çoğunuzun tahmin edeceğinin aksine, bu sol üstün bir altındaki kartın değil, bir sağındaki kartın en üst sekiz noktasının değerlerini ayarlamaya yarar. Sol üst kartın bir altındaki karta ait noktalarla oynamak içinse grafik adresinin başlangıcından 320 sonraki baytla oynanması gerekir. Grafik başlangıcını $2000 (8192) kabul edersek, şekil 3'e bakarak hangi baytın hangi kartı etkilediğini toplu olarak görebiliriz. Aslında şu ana kadar pek fark etmediniz ama koordinatı verilen bir noktanın adresini ve bu adrese yazılması gereken baytı bulabilecek kadar bilgi birikimimiz oldu şu anda. Haydi hep birlikte adresin bulunması için gereken formülü çıkartalım. Bunun için ilk olarak Y koordinatıyla ilgili özel birkaç durumu inceleyip genel bir Y koordinatı formülüne varmaya çalışalım: 1. Y koordinatı 0 ile 7 arasındaysa, adres başlangıçtan 0..7 bayt ileride yer alıyor. 2. Y koordinatı 8 ile 15 arasındaysa, adres başlangıçtan 320..327 bayt ileride yer alıyor. 3. Y koordinatı 16 ile 23 arasındaysa, adres başlangıçtan 640..647 bayt ileride yer alıyor. Demek ki Y koordinatının 8'de birinin tam sayı kısmı kaç kere 320 bayt ilerleyeceğimizi belirliyor: adresY = 320*INT(Y/8)