Bu sayfadaki yazılar
Sayfanın metni
Sayfa 66
BURAK KİPER
Karakter Seti Tanımlaması
C64'ün enteresan özelliklerinden birisi karakter setinin RAM'e alınmasına izin vermesidir. Bu özellik sayesinde istediğiniz karakterleri tanımlayabilirsiniz. Bilgisayar ekranında gördüğümüz her karakter 8*8'lik bir alana tanımlanmıştır. Bu alanda 64 tane nokta bulunuyor. Ekranda görünen noktalara açık, görünmeyenlere kapalı diyeceğiz. Ekranda bir karakterin görünmesini sağlayan açık noktalar oluyor. Her nokta bir bit olduğundan sekiz nokta bir byte tarafından temsil ediliyor. Bir karakterin tanımlanmasında 64 tane nokta (bit) kullanıldığından her karakter bilgisayarımızın hafızasında 8 byte'lık yer tutuyor. Program Döküm Eki'ndeki PROGRAM1A istediğiniz karakterdeki nokta durumunu gösteriyor. Bunu yaparken de istediğiniz karakter ekran büyütülmüş olarak geliyor. Ancak bu programı çalıştırmadan evvel saklayın ve PROGRAM1B'yi yazın. 1B'yi çalıştırdıktan sonra programımızı yükleyip çalıştırabilirsiniz. Program sizden görmek istediğiniz karakteri klavyeden girmenizi ister. Girdiğiniz karakterin ASCII kodu 120. satırdaki B değişkenine yüklenir. 140. satır büyük/küçük veya büyük/grafik karakter setini kontrol eder. Eğer incelenen karakterde nokta açıksa bir asterisk, kapalıysa bir nokta ekrana yazılır. İstediğimiz karakterlerin yapısını gördüğünüze göre artık kendi karakter setimizi oluşturabiliriz. Bunun için ilk olarak karakter setini ROM'dan RAM'e taşımalıyız. Daha sonra sıra işletim sistemine yeni karakter setinin nerede olduğunu söylemeye geliyor. Tabii bu sırada ekran hafızasını da kaydıracağız. Aşağıdaki ufak programı çalıştırmadan evvel 1B'yi yükleyip çalıştırın.
100 FOR 1— 13*4096 TO 14*4096-1 110 POKE | 120 POKE 53272,24:POKE 56576,148:POKE648,196
Program Döküm Eki'ndeki PROGRAM5 yeni karakter setini tanımlamanızı sağlayacak. Program sizden yeniden tanımlanmasını istediğiniz karakteri girmenizi isteyecek. İstediğiniz karakteri seçtikten sonra onu tanımlamaya başlayabilirsiniz. Açık olmasını istediğiniz noktalar için asterisk (*), kapalı olmasını istediğiniz noktalar için de nokta (.) kullanın. Bütün karakterlerin tanımlanması bittiğinde istenilen karakter yerine SON yazın. Kolay Veri Girişi. Kolay veri girmek için kursoru ekranın istediğiniz yerine götürmek çok faydalı olur. Bir satırda kursoru istediğiniz yere getirmek için TAB komutunu kullanabilirsiniz. Ama kursoru ekranın belirli bir yerine götürecek bir komuta sahip değiliz. Hafızanın sıfırıncı sayfasında iki adres kursorun bulunduğu satırı ve kolonu saklar. Bu hafıza adreslerini PEEK komutu ile okuyarak kursorun ekranın neresinde olduğunu öğrenebiliriz:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 67
10 PRİNT “KURSORUN YERİ SATIR”
Kursoru istediğimiz yere yerleştirebilmek için bu iki adrese gerekli değerleri POKE etmek yeterli olmaz. Aşağıdaki ufak program, kursoru istediğiniz yere getirecek:
10 INPUT “SATIR”; 20 INPUT “KOLON"';K 30 POKE 214,8 40 POKE 211,K 50 SYS 58640 60 PRİNT “DENEME”;
SYS58640 komutu 214 ve 211 adreslerindeki değerlere göre kursoru ekrana yerleştiriyor. Bu iki adres ve SYS58640 komutu ile programlarımızı güzelleştirebiliriz. Mesela ekranın üst veya alt bölümünü mesaj satırı olarak ayırabilir, buradan gerektikçe kullanıcıya mesaj verip tekrar kursoru eski yerine döndürebilirsiniz. Bu tür uygulamaya bir örnek görelim:
10 R- PEEK(214) 20 C- 30 POKE 214,0 40 POKE 211,10 50 SYS 58640 60 PRİNT “LUTFEN DİSKETİ TAKIN” 70 POKE 214,R 80 POKE 211,C 90 SYS 58640
En üstteki satırın numarası 0, en alttaki satırın numarası 24'tür. En soldaki kolon 0, en sağdaki kolon 39'dur.
Yanıp Sönen Kursor
GET komutunu kullandığınızda kursorun ortadan kaybolduğunu görürsünüz. Buna karşın INPUT komutu kullanıldığında kursor yanıp sönmeye devam eder. GET komutu kullanıldığında da kursorun yanıp sönmesi bazı hallerde iyi olur. 204 numaralı adres kursorun durumunu belirler. Eğer bu adresin değeri sıfırdan farklıysa kursoru göremezsiniz. Adresin değeri sıfırsa kursor yanıp söner. GET komutu ile 204 numaralı adresin kullanımını birleştirerek kursoru görünür yapalım:
10 POKE 204,0 20 GET THEN 20 30 POKE 204,1 40 PRİNT AS
Bazen kursor açıldıktan hemen sonra kapatılabilir. Bu durumda ekranda beyaz bir kare görürsünüz. Bunu engellemek için programımıza bir satır daha ekleyelim:
25 IF PEEK (207) THEN 25: MID$() MID$ fonksiyonunu kullanarak belirli bir karakter grubunu istediğiniz yerinden ayırabilirsiniz. Mesela,
10 AS-“DENEMEYAZI” 20 30 PRİNT B$
Bunun sonucunda ekrana MEY yazacak. MID$ kullanarak bir karakter grubunun belirli bir yerinde değişiklik yapmak mümkün değil. Mesela,
10 “DENEMEYAZI” 20 30 PRİNT A$
Bu program çalıştığında 20 numaralı satırda SYNTAX ERROR verir. Ancak bu tür kullanıma izin verecek bir programı Program Döküm Eki'nde bulabilirsiniz (PROGRAM6). İlk olarak Program6'yı yükleyip çalıştırdığınızda 20 numaralı satırın bilgisayar tarafından kabul edildiğini göreceksiniz. Sonuç:
DENE123AZI olur.
Program6'nın etkisini denemek için deneyebileceğiniz bir program şu şekilde olabilir.
10 DİM AS(10)
1-1 TO 10 60 70 NEXT 80 FOR TO 10 90 PRİNT 100 NEXT
Tabii bu programı çalıştırmadan evvel Program6'yı yükleyip çalıştırmayı unutmayın.
OYUNLAR İÇİN KOLAYLIKLAR
Star Quake: Oyunda başarılı olabilmek için teleport şifrelerini bilmeniz gerekir. Kullanacağınız şifreler: chasm, astra, sigma, hylis, cappa, semur, malis, meter, xenon, cosin, plasm, optic, polar ve z.a.p.
Rambo: Her iki porta da joystick takın. İleri iterken diğerini geri çekin. Böylece düşman savunmasından etkilenmeden ilerleyebilirsiniz.
Barbarian (AMIGA) Oyunu yükledikten sonra ana klavyedeki tuşları kullana-