C64 için Püf Noktaları
Hepinize merhaba, Commodore programcıları. Eğer yazımızı dikkatle takip ediyorsanız, 59. 60. sayılarda, döküm ekinde yayınlanması gereken programlarımızın doğru sırada olmadığını farketmişsinizdir. Makine dilinin püf noktaları yazıları, dergi çıkmadan çok önce yazıldığı için aylarda meydana gelen bu ufak(!) hatayı anlayışla ; karşılayacağınıza İnanıyoruz. Geçen sayıda hazır olmayan İntromuzu gerekiyordu, fakat onun yerine iki sayı önce yayınlanması gereken yıldız kaydırma rutini yayınlanmıştı. Programlarda olan bu kaymayı telafi etmek için, bu sayıda İlk İntronuzun kullanılabilir olan halini yayınlıyoruz.
Şimdiye kadar, intorlarda hep intterrupt'rutinler kullanıyorduk. İnterrupt olmayan kısmı ise: Döngü Jmp Döngü komutuyla sonsuz döngülere sokuyorduk. Bunun yararını, İntro çalışırken devamlı olarak boşluk Tuşu kontrolü yapma ihtiyacı doğduğunda görüyoruz. İnterrupt'ların programınızı serbest bıraktığı.her anda boşluk tuşu edildiği için, her ekran taramasında yüzlerce kez tuş takımı taranır. Herhangi bir insan, bir tuşa bastıktan sonra, parmağını mikrosaniyelerle ölçülebilecek bir süratle geri çekemeyeceğine göre de basılan bir tuşun gözden kaçması olanaksızdır. Bu kadar hikayeden sonra hâlâ uyanıksanız bu işin nasıl yapılacağını anlatayım size. Şimdiye kadar kullandığımız tüm interrupt rutinlerin başında $0314-15, $DO12 gibi adresleri ayarlayan kısmın sonuna koyduğumuz
Sei :
Jsr $EDA3
Jsr $SFDA5
Jsr
Eğer intro'nuzu yalnızca bir gösteri amacıyla düzenlediyseniz, bu aşamadan sonra yapmanız gereken, bir RTS komutuyla BASIC'e dönmektir. Fakat daha profesyonel kulanımlar düşünüyorsanız, bir miktar bilgi daha yüklemeniz gerekecek. Bir program çalışmadan önce kendi intronuzu çalıştırmak istiyorsanız, İki seçeneğiniz var. İntronuzu programın başına veya sonuna ekleyebilirsiniz.
Döngü Lda $DCO1 komutun yerine, boşluk tuşunu kontrol etmeye yarayan şu satırları koyun:
Döngü Lda $DCO1
'Cmp # $EF
Bne Döngü
İntromuzu, başlangıç adresi olan $0900'den İtibaren izleyecek olursanız, $0CB3 civarında bu program parçacığıyla karşılaşırsınız. İyi de boşluk tuşuna basıldığında ne Akla ilk gelen çözüm, bir kullanarak tüm interruptları kapattıktan sonra, İnterrupt vektörlerini ($80314-$0315) SEA31'i gösterecek şekilde ayarladıktan sonra bir CLI vererek intronun çalışmasını bitirmek olabilir. Kulağa hoş gelse de ne yazık ki böyle bir işe kalkıştığınızda, bilgisayarınızı kilitlermekten daha iyi bir sonuç alamazsınız. Bunun sebebi, $DCOD-$DCOE, $D012 ve adreslerinin değerlerini değiştirmiş olmanız. Tüm bu değiştirdiklerinizi tek tek düzeltmek belki bir çözüm olabilir, fakat bu işi bizim için yapacak KERNAL dururken, bütün adreslerle tek tek uğraşmak pek de akıllıca olmaz sanırım. Şimdi belirteceğim üç KERNAL rutinine ardışık olarak sıçrarsanız, bellekte bulunan bütün vektörler normal değerlerini alırlar, sprite'lar kapatılır, vo. Yani C 64'ünüz ilk açılış haline döner, Tabii ki programlarınıza hiç bir şey yapmadan. Bü-// tün bu işleri yapan üç JSR'nin kullanımı şöyledir:
Eğer programın sonuna İntro eklerseniz, program çalışmadan önce, sizin İntro'nuza bir JSSR yapmanız gerekli. İntronun İşi bittikten sonra, hiç bir şeye dokunmadan asıl programı çalıştırabilirsiniz. Fakat burada büyük bir problem söz konusu oluyor. Programların hepsi aynı uzunlukta olmadığı İçin, İntronuzun bellekte yerleşeceği alan her proğram İçin farklı olacaktır. Yer değiştirebilir programlarla intro yazmak imkansız olduğu için her program için | ayrı intro yazmanız gerekir. Bunun yanında hiç de ATA e beklemediğiniz bazı sorunlarla da karşılaşabilirsiniz. (Programın, bitiş adresini kontrol etmesi gibi). Bu kadar problemle karşılaşmaktansa, diğer seçe-
'. MR neğimizi bir kontrol etsek daha İyi olur sanırım, Eğer 19 programın başına İntro eklemeye karar verirsek başka problemlerle karşılaşırız. Her şeyden önce BASIC RAM'i $0800'den başlar ve hemen öncesinde de ($0400-$0800) erkam RAM'i bulunur. Daha da kötüsü, $0000-$0400 arası da sistem vektörlerinin ve değişkenliklerinin bulunduğu RAM'dir. Yani BASIC RAM'inden öncesine program yerleştiremeyiz. Ozaman ne yapacağız peki? Gene İki çözüm var bu duruma. İlk denememizde, BASIC RAM başlangıcını İnfromuzdan sonraya alırız. Fakat ne yazık ki bu çözüm sadece BASİC programların (kısa olanların) başına intro atmak için geçerli olur. İkinci çözüm İse, $0801'den itibaren intronun arkasına da asıl programı yerleştirmek (BASIC'ten SYS İle çalışacak şekilde), boşluk tuşuna basılınca da asıl programı $0801”e taşıyıp çalıştırmaktır. Bu sayede, çalışması bittikten sonra inironuzdan geriye tek bir bayt bile kalmayacaktır. Asıl programı geriye taşıyacak olan rutine, Yer değiştirici (relocator) rutinleri adı verilir. Bu rutinler, belli transferleri yerine getirmek için yapılmışlırdır, ve ROM'ların altını da transfer edebilmektedirler. Bir veri bloğunu birkaç bayt sonrasına taşımak için seçilecek yol, önce lik baytı hedefe taşımak ve sonraki bavtlar için de bu İşlemi degil mi? HAYIR. Bu sistem yalnızca kaynak ve hedef çakışmazsa geçerli olur. Ama bir veri bloğunu yalnızca bir bayt İleri almak İstersek, İlk işlem sonucu ikinci baytın değeri, ilkiyle aynı olur, sonra da bu baytı üçüncüye taşırız, ve verilerin sonuna kadar bu iş böyle devam eder. Sonuçta tüm bloğun aynı değeri alınmasını sağlamış olursunuz. Bundan kaçınmak için bloğu sondan başa doğru trasfer etmeniz -introda kullanacacığınız gibidataları geriye transfer edecekseniz, baştan sona doğru transfer yapmanız şarttır. İntrolardan sonra yapılan transferlerin uzunluğunu programlamalara göre ayarlamaktansa İntronun sonundan itibaren tüm belleği geriye transfer etmek daha kolay olur. Bunu yapmadan önce, Jransfer Sel Ldy # $00: Sty $01 komutlarıyla bütün KERNAL ve BASIC ROM'larını, GİÇ alanlarını kaldırır ve bilgisayarlarımızı 64 K RAM hale getiririz. Bu sayede, transferler sırasında ROM'ları değil de programları Yaşın. İyi de nasıl taşırız? Basit:
Taşı1 Lda TransBaşı, Y
Taşı2 Sta BasicBaşı, Y
Dey
Bne
(TransBaşı—intronun bitiş, programınızın
başlangıç adresi
Basic Başı — $800)
Bu kadarını tabi ki siz de biliyorsunuz. Bu rutin sayesinde bir blokluk bilgiyi $0800'e taşırız. Yeri gelmişken söyleyeyim, $0801'den başlayan proğramları TransBaşı - 1 adresine yükleyin ve Transbaşı adresinin değerini O'layın. Her neyse, transferimize devame delim. Bunun için de programın kendini değiştirmesi metodunu kullanıyoruz gene. İnc Taşı2-42 Inc Taşı1 42 taşınan dataların bloklarını birer arttırdık. Şimdi de bellek sonu konirolü yapılıyor. Bne Taşı Bu kadar basit olduğunu tahmin etmiyordunuz eminim. Sadece transfer bloğunun değerinin sıfır olup olmadığını kontrol ediyoruz. Eğer değeri sıfır olduysa, TransBaşı'dan SFFFF'e kadar transfer tamamlanmış demektir. Y'yi tekrar sıfırlamaya gerek yok, çünkü son İşlemden zaten sıfır olarak çıkmıştı. Eğer tüm bellek transfer edildiyse, yapacak pek bir İşimiz kalmadı demektir. Sadece Lda # $37 Sta $01 komutuyla ROM'lar geri alıp, Clı ile interrupfları açıp, Jsr Jmp SAZAE ile de RUN işlemini yerine getirmek asıl programı hatasız olarak çalıştırmak için yeterli olacaktır. Eğer program kendi sonunu kontrol ediyorsa ($2D veya $AE adresinden) bu değerleri de birkaç Lda ve Sta ile eski haline getirmek sizin için pek zor olmaz herhalde, Transfer label'ıyla başlayan programı, üç JSR'nin arkasında eklediniz mi? Peki neden çalışmadı sizce? Evet doğru bildiniz. Bu rutin, asıl programı $0800 adresinden başlayacak şekilde geri Taşıyor ve bu arada da kendi üzerine de bol bol bay? yazarak sonunu hazırlıyor. Bunu engellemek için programı $0400'de çalışacak şekilde yazıp boş bir alana transfer edin: Trans1 Lda BoşAlan, Y Sta $0400, Y Jmp $0400 Üç JSR'nin arkasına eklemeniz gereken program: cık bu. Buradaki BoşAlan Transfer rutinini koyduğunuz boş alanın adresidir. Bu sayede Transfer, taşı-.
dığı dataları kendi üzerine yazmaz. Şimdi de sıra bu İntroya nasıl program ekleyeceğinizi görmeye geldi. İlk olarak intronuzu belleğe yükleyin ve Kayan yazılarla, Ekran harflerini bir monitör program yardımıyla değiştirin. Kayan yazılar $2800 adresinden başlıyor. Ekrandaki yazılar da adresinde. Yalnız DİKKAT!!! Ekran yazılarının ilk dört satırını kullanmayın. Bundan sonra şu komutları BASIC'de verin: Poke 43,1 Poke 44,44 Poke 11264, O Şimdi de asıl program LOAD “isim”, 8 komufuyla yükleyebilirsiniz. Sakın kullanmayın, programı üzerine yüklersiniz. Yükledikten sonra dö: Poke 43,1 Poke 44,8 komutlarını verip, SAVE “yeni isim”, 8, 1 komutuyla proğramınızı diskete kaydedin. Eğer SAVE tunuzdan sonra “OUT OF MEMORY ERROR” hata mesajıyla karşılaşıyorsanız, makine dilinde bir program kaydedici yapıp, kayıttan hemen önce $01'e $36 değerini vermeniz gerekir. Bu değeri $01'e verdiğinizde, yalnızca $A000-$BFFF arasında bulunan ROM ortadan kalkar ve $E000-$FFFF arasındaki KERNAL ROM kullanılabilir. Çok uzun datalarla uğraşmamanız için Program Döküm Eki'ne girecek olan intromuzu kısalttım. Bunu kullanmak için önce programı yükleyin, sonra da boş bir disket yerleştirin drive'ınıza, Daha sonra programı çalıştırın. Program önce kendini açacak, sonra da kullanılabilir halini diske kaydedecektir. Eğer makine dilinde SAVE işlemini nasıl yapacağınızı merak ediyorsanız, bu-İşlemden sonra $2C00 adresine bakarak SAVE rutinini görebilirsiniz. Gelecek aya kadar hoşçakalın.
Yeni bir Abur Cubur yazısında daha birlikteyiz. bu ay sizlerden beklediğim performansı gösterdiniz. Posta kutumuza program paketleri ve köşemizi beğenen arkadaşlarımızın tebrik ve teşekkür mektupları yağdı. Umarım bu şekilde devam eder. Hazır fırsatını bulmuşken adresimizi SON BİR KEZ yayınlıyorum.
Programlarınızı acilen: CELAL HALLAÇ COMMMODORE DERGİSİ SAKIZ SOK. BERKEL AP. 6/4 KADIKÖY-İSTANBUL adresine postalayın. Evet, konuyu fazla uzatmadan hemen sevgili programcıları Abur başbaşa bırakıyorum. Sibel hanımdan aldığm bir mektup beni çok sevindirdi, dört yıldır Commodore 64 kullanan Sibel arkadaşımizin başarısını iki programını yayınlayarak ödüllendiriyor ve yeni programlarını dört gözle bekliyorum. Umarım bu girişim diğer hanımları da yüreklendirir.
SİMETRİ-1 © $0031 Sibel KUZGUN
Bu proğram, erkanın sol yarısının simetriğini sağ yarısına alır. Gerekirse ayrı ayrı kullanılabilmeleri için ya da standard karakter setinin ilk 128'inde istenilen değişikliklerin yapılabilmesi için, yapılan işleri üç ayrı parçaya böldüm. SYS 52224: Karakter setinin ilk 128'ini itibaren yerleştirir. SYS 52296: İlk 128 karakterin simetriklerini alır ve $C400'dan itibaren yerliştirir. Ekrani, $C800'a koyar. Bunu Basic programlama alanını kullanmak için yaptım. SYS 52374: Simetri alma (ekran).
SİMETRİ-2 e $0032
Sibel KUZGUN ADI SİMETRİ-2 Bu program, ekranın üst yarısının simetriğini alt yarı- REN KUZCUN sına alır. Simetri | programından tek farkı budur. Kul- 00020 FNP 1-52224 TO &2440:READ |, lanımıda aynı şekildedir. Gaza SYS 52224: Karakter setinin ilk 128'ini iti- 00040 STS 52206 ; <029> 00050 PRİNT "<CLR>":FOR 1-1 TO İ50:POKE 5 baren yerleştirir. 120011NTCRHDCİ | <009> SYS 52296: İlk 128 karakterin simetriklerini alır ve GET meli $C400'dan itibaren yerleştirir. Ekranı $C800'a koyar. Bu- 00080 SYS 52375 <099> nu Basic programlama alanını kullanmak için yaptım. m 100,8, 92, SYS 52374: Simetri alma (ekran). 00110 DATA 173,14,220,41,254, 2205 65,1 <084> 00120 DATA 41,251,133,1,160,0, 132, 251,169 Tuncay arkadaşımız ise bize “günü gününe yaş . <075> ç . . e ey 00130 DATA 133,252,132, 253, 169, 208, 179, 25 ve “makina dili programı İisteleyicisi” programlarını yollamış. kendisine çok teşekkür ediyorum ve hemen prog- ©0140 251,200, 192,0,208,247, 230, 3 <152> ramın açıklamasına geçiyorum. 00150 DATA 254,165,252,201,196,208,237,16 <246> 00160 DATA 4,133,1,173,14, 220,9, <15B> 00170 DATA 220,234, 160, O; 169, taz, 281, 133,252 00180 DATA 169,7,133,253,169, 196, 133, 254, 162,0 <253> 00190 DATA 208, 230,252 <057> 00200 DATA 198,253, 165, 253,201, 208, 2, 198,254 <247> 00210 DATA 232,224,8,208,231,165,253, Za, 1 05,16 00220 DATA 133,253,144,2,230, 165, 232, O <228> 00230 DATA 208, 212, 179, 262, lar, o <188> 002'40 DATA 169, 200; 136,2, 169, 4,208 : <15a> 00250 DATA 86, 169; 40; 133, 251, 169, 200, Yaz, 252,168 002860 DATA 169, 203, 183, (254,16 <046> 00270 DATA 2,182, 0,177, abı, 24) 105, 128, 145 1253 - 00280 DATA 230,251,;206, 2 230, 230, 253, 208,2 DATA 230,264; 232,224,40, Yaa, "232, 165 1253,56
00300
DATA 233, 80; 133, 253, 176, 2, 198, | 25:
30, 2
DATA, 165; 2; 201, 32, 211, Ba
M.D.P. LIST e $0033 Tuncay GÖKSU
Bu programla hafızadaki makina dili programların listesini döküm ekinde olduğu gibi ekranda görebilir ya da yazıcıya yollayabilirsiniz. Programın bir dezavantajı biraz yavaş oluşu.
Bu ay bilgisayarı en şişman olan Abur Cubur'cu arkadaşımız ise Ersin arkadaşımız. Bize tam 9 adet Abur Cubur yollamış ve onuncu yerine de bir not bırakmış. No- 5 tunu aynen size iletiyorum. Efendim, niye herkes herşeyi tam 10 sayısında yapmak ister? Benden de 9 program, Varsa itirazı olan, Eklesin bir program! Fakat malesef “teknik bir arıza” (kasedinin postada rahatsızlanması) sebebiyle sadece altı tanesini yayınlayabiliyoruz. Benim suçum değil fakat ben yine de hem sizden hem de arkada özür diliyorum. Kendisine çok teşekkür ediyor ve aynı şekilde devam etmesini temenni ediyorum.
PROGRAM ADI
HDP LİST
PRİNT BİT. ADRESLERİCOND
ALIK) R$(CF1O
00):DİM <15â4â>
00020 "<CLR><3DOWN>LUTFEN BEKLE
YIMİZ":FOR TO C:PRİNT
ETsPEEK(H):KeT <249>
00030 200: 2):
41:NEXT
<224>
TO GÖSUB ,200:PR
INT
00050 1:
FOR Dz1 TO V:PRİNT Uç
<247>
00060 PRİNT :FOR
TO 100:NEXT . <078>
00070 PRİNT #<2DOWN>PRG LİSTESİ YAZICIYA
YOLLANSIN MI? ";K$ <098>
00080 GET K$:1F THEN 80 <239>
00082 1F 100 <085>
00084 TE THEN: 80 <255)>
00090 END <092>
OPEN 1,4â:X50:FOR Dz1 TO
Gel TO B <166>
00110
:CLOSE 1:6G0TO 70 -<058>
00200 R-4096 <08B>
00210 THEN GOSUB 29
0;GOT0 225
00220 GOSUÜBR 260 <012>
00225 K-K-YAR:R-INTIR/16) <039>
00230 İF R<1 THEN 250 | <15B)>
00240 GOTO 210 <192>
RETURN <052>
00260 IF Y<-9 THEN RSCD)-
<1B3>
00270 THEN <178>
00280 RETURN <0B4>
00290 IF THEN
“00300 1F Y>9 THEN <012>
00310 RETURN
JOY PORT Il e $0034
Ersin KAYGAN
Bence buradaki en yararlı program bu. Program çalışınca ekran kararıyor ve joystick'inizin PORT II'de olması gerektiğini bildiriyor. Artık joystick'inizi kontrol edebilirsiniz.
JOYSTICK Boşta: .... Yukarı: . Aşağı:
SOLE .
Yukarı 4 sol: .......... Yukarı 4 sağ: .......... Aşağı 4 sol: Aşağı sağ: es
JOYSTICK Yukarı 4 ateş: Gree 17 Aşağı 4 ateş: ......... Sol 4 ateş: .. Sağ 4 ateş: .. > Yuk 4 sol 4 ateş: Yuk 4 sağ 4 ateş: Aşağı 4 sol 4 ateş: Aşağı 4 sağ 4 ateş: ... korkmayın canım, sizler bu rakamlarla uğraşmayacaksınız, program bunları “YUKARI 4 ATEŞ” vb. şekilde belirtecektir. İlgilenen arkadaşlarıma bilgi olsun diye yazdım. Nasıl? Hoşunuza gitti değil mi?
SHINE&FALL © $0035
Ersin KAYGAN
Bu programda 60 tane yıldız ekranda adım adım parlayacak (siyah-koyu gri-gri-açık gri-beyaz-sarı) ve sönecektir. A$ değerine programımızın adını yazarak ve bir açılış tarihi vererek kullanabilirsiniz.
N<1 TO 100: NE
DATA 12, 15,
STEP.
RANDOM MÜZİK © $0036 Ersin KAYGAN
Programımız üç değişik enstrümanla (ki bunlar rastgele seçilmekte) on kere ses çıkarmakta, bunlar ise kısa ritimleri oluşturmaktadır. Bunu kendi programlarınıza ekleyerek çeşitli şekillerde kullanabilirsiniz. Programın sonuna “GO TO” komutu yerine “FOR...NEXT” döngüsünü koyarak çeşitli sesler elde edebilirsiniz.
PROGRAM KORUMA © $0037 Ersin KAYGAN
Programımız, programlarımızı kem gözlerden ve yabancılardan korumaya yarıyor. Programın data kontrolünü kontrol ettikten sonra, bu satırları silin ve satırlardan birine “SYS 49152” yazıp programımızdan sonraki boş satıra kendi BASIC programınızı yazabilirsiniz. Biraz da teknik ayrıntılara girelim. Tahmin ettiğiniz gibi bu program bir interrupt'tır. İnterrupt'ın ne olduğunu sormayın çünkü Vedat HALLAÇ bunu yeterince anlattı. Neyse, program 808 (RUN/STOP tuş kontrolü) ve 775 (koruma) adreslerini 1/60 saniyede açıp kapar. Umarım yararlanırsınız. Bol korumalı günler...
PROGRAM ADI : PROGRAM KORUMA
00010 FOR A- 49152 TÖ 4917B;READ D:5-51D:P
OKE A,D:ıNEXT <055)
00020 1F s<>2433 THEN PRİNT "DATA |
Go
00030 PRİNT "PROGRAM <239>
000â0 DATA 120,159,13,141,20,3,169, 192,
—
00050 DATA 169, 200, 141,7,3,169, 25,
3,76,49, 234,0
TİMER © $0038
Ersin KAYGAN
Hah! Bir saatimiz eksikti... Neyse burada ilk önce saati altı basamaklı bir şekilde giriyoruz. Mesela saat 18'i 12 dakika ve 32 saniye geçiyorsa, soruyu 181232 şeklinde cevaplayın. Saatimiz ekranın sol üst köşesinde çalışmaya başlayacak ve sizi her saat başı minik alarmlarıyla uyaracaktır.
ADI : TİMER
00010 POKE 646, ——
19,64: "<CLROSAATI yazı
O 54
00020 1 THEN PRİNT
1000:NEXT
00030 POKE 648,13:POKE
00040 3, 2
21 |
90050 |
5S AT
—
RİGHTSCTS,
YAŞINIZ KAÇ? © $0039 Tuncay GÖKSU
Bu programla yaşınızı (yıl, ay, gün şeklinde) çabucak öğrenebilirsiniz. Bunun için sadece programı yazıp çalıştırıp sorulara doğru yanıt vermeniz yeterli.
FOR YOU? © $003A Engin KAYGAN
Bu program yarı M.D. (makina dili) yarı basic'tir. Çalıştırıldığında bir data kontrolü yapılmakta ve sonuç bildirilmektedir. Eğer “O.K.” mesajını alırsanız, “SYS 49152” girin. Ekran siyah ve beyaz şeritlerle dolacak ve her tuşa basışınızda kursörünüzün rengi değişecektir. Interrupt'a yeni başlayanların incelemesini tavsiye ederim.
FOR YOU
PROGRAM ADI
00010 FOR Az 40152 TO â8107:READ D:S-
ÖKE A,D:NEXT
00020 1F TREN PRİNT "DATA HATASI
00030 PRİNT
00040 DATA 120,169,13,141,20,3, 169, 192,14
1,21,23,80,96
DATA 169,1, 208,16
0,0, 253,169,0,141,32,208
©0060 DATA 141İ,33,208,160,0,200,208,253,2
38,134,2,76,49,234,0
Evet bu ay da bu kadar. Sanırım siz Abur Cubur'cular bu ay doydunuz. Bu ay diyorum çünkü Abur Cubur'- cular hiç doymaz! Gelecek ziyafette görüşmek üzere, hoşçakalın...
Commodore 64 Oyun Çekimi
TANTİŞM
DAİ Adder” isimli bir canavar, YURİA denilen bir ülkenin kral ve kraliçelerini kaçırır. Bu ülkenin halkı, kral ve kraliçeyi geri getirmek için birisini görevlendirmek ister. Bu kişi, uzun yollar geçecek, barbar, iskelet ve büyük canavarlarla savaşacak bir savaşçı olmalıdır. Bakın şu tesadüfe! Siz de tam o sirada, ÜÇ nızdan birisi ile maceralar yaşamak istersiniz. Bunun üzerine, kral ve kraliçeyi kurtarma görevi size kalır ve siz de bu görevi memnuniyetle (Yoksa tam tersi mi?) kabul edersiniz. Neyse, oyunun hikâyesinden sonra asıl oyunumuza geçelim İsterseniz. Amacımız Death Adder'i öldürmek. Bunun için size üç sebep göstereceğim. Oyunun başındaki ekranda, oyunu, tek ya da İki kişilik ayarlayabiliyorsunuz. İki Joystick'in ateşlerine aynı anda basarsanız iki, tek bir ateşe basarsanız tek kişilik oynarsınız. Bunu ayarladıktan sonra karşımıza başka bir ekran geliyor. Bu ekranda savaşçı seçimimizi yapıyoruz. Burada gördüğünüz, baltalı savaşçının adı Death Adder, Gilius'un erkek kardeşini öldürmüş. Elinde kılıcı olan savaşçının adı da Battler, Adder, Batftler'in annesini öldürmüş. Öteki, kılıçlı kadın ise Plare, Bunun da anne ve babasını öldürmüş Adder. Şimdi anladınız mı neden büyük savaşçılar Death Adder'a kin duyuyorlar? Eğer iki arkadaş oynuyorsanız ikiniz de üç oyuncudan birini seçiyorsunuz. Benim size tavsiyem, birinci oyuncunun Flare'i, ikincinin de Battler'ı seçmesi. Çünkü, Flare çok hızlı tekme atıp kılıç kullanabiliyor. Battler de Gilius'tan daha iyi zıplayıp kılıç kullanabiliyor. Ama siz istediğinizi seçebilirsiniz. Şimdi Joystick hareketlerini ve klavyedeki bazı tuşların görevlerini veriyorum: ATEŞ: Balta, kılıç veya tekme. JOYSTİCK İLERİ 4 ATEŞ: Zıpla-
Mehmet Gürmen ma. (Zıpladıktan sonra, havadayken, ateşe basarak inerseniz, düşmanınızı yukarıda Öldürebilirsiniz.) JOYSTİCK GERİ: Savaşçınızın yüzü hangi tarafa dönükse tam ters tarafa dönüp kılıç veya balta sallama. JOYSTİCK Sağ tarafa doğru koşma. (Koşarken joystick'i o yönde tutmalısınız. Eğer koşarken ateşe basarsanız savaşçınız uçan tekme veya omuz atar) JOYSTİCK SOL-4- SOL: Sol tarafa doğru JOYSTİCK SAĞ/SOL/İLERİ/GE-Rİ: Ekranda ilerleme.
P: devam. F4: Ses efekt açık/kapalı. Oyuna başladığınızda, en sol üst köşeden, kaçıncı bölümde olduğunuzu, en sol alt köşeden, gücünüzü, onun sağında haklarınızı ve oyun du- , rumunu simgeleyen İkonu görebiliriniz. (Oyunun pause'da olup olmadığını, disketin yüklendiğini, oyunun normal devam etliğini gösterir) Oyunda tam üç hakkınız ve her hakta, ÜÇ adet enerji tablonuz var. Ekranın yukarısında ortada ise arılardan topladığınız büyü toplarını görebilirsiniz. Oyunda her hangi bir yerde, “Alt” tuşuna basarsanız SAVAŞÇINIZ, kendine has büyüsünü kullanacaktır, Bir kullanışta topların hepsi gider: Ne kadar çok büyü topu varsa, büyü o kadar etkili olacaktır ve ekrandaki her şeyi yaralayacak veya yok edecektir. Gilius'un şimşek büyüsü, Battler'ın deprem büyüsü, Flare'ın da ateş fırtınası büyüsü var. Oyun sırasında, bazı bölümlerde, siyah çukurlar göreceksiniz. Bu çukurlara düşmezsiniz, fakat içlerinden, bazı düşmanlar çıkar. Bu düşmanı oyunun açıklamasında okuyacaksınız. Bazı düşmanlarınız size, koşarak tekme alıyor. Bunlara, siz de aynı şekilde karşılık verin. Oyunda, her bölümü geçtiğinizde bir haritayla karşılaşacaksınız. Bu harita- 28 dan, nereye gittiğinizi görebilirsiniz. Bunun sağ tarafında da, © bölümle ilgili bilgi vardır. Şimdi isterseniz oyuna başlayalım.
STAGE 1: Sağa doğru ilerleyin. Karşınıza çıkan barbarları öldürün. Sağa devam edin. Bir atın üzerinde oturmuş bir kadın görünce dikkatli olun. Ondan, bu atı alabilirsiniz. Fakat önce, o ekrandaki diğer yaratıkları öldürün. -Sonra atı rahatça:
alıp kadını siz öldürün. Atınızi korumanız sizin için bir avan-
. tajdır. Eğer birisi atınızı alırsa herhangi bir boşlukta, korkudan kaçacaktır. Diğer canavarları da öldürdükten sonra, yeşil, uzun ve balyozlu iki dev görüyorsunuz. Bunlar gerçekten de çok sinir Savaşçınızı yere serdikten sonra bir de sırıtıyorlar. Biz de bu sırıtmaları görüp sinirlerimizi bozmamak için onları teker teker öldürüyoruz. Burada, gelen deve sırtınızı dönün ve bekleyin. Aranızdaki mesafe azalınca, ataşe basip, Joystick'i geri çekin. Bu yöntemle işiniz kolaylaşacaktır.
STASE 2: Bu bölümde, kaplumbağa kasabasına gidiyoruz. Oyuna bir uçurumun kenarında başllyoruz. Sakın ha burada uçuruma fazla yaklaşmayın. “Fazla merak, üç haktan birisini götürür” diye bir atasözü vardır. Bu-atasözü, bize bazı yerlerde gerekecek, Sağa gidin. Gerekirse, önünüze çıkan barbarları öldürün. Büyük bir meydana gelince, karşınızda bir ejderha ve iki savaşçı kadın bulacaksınız. İlk önce kadınları öldürün. Sonra ejderhanın püskürtüğü aleve dikkat ederek onun sahibini safdışı bırakın ve ejderhayı siz sahiplenin. Sağa doğru devam edin. Karşınıza gelen kadın. ve
“adamları öldürün. Biraz sonra tekrar bir meydana geleceksiniz. Burada, ateş topu fırlatan ejderhanın üzerinde bir barbar kadın var. Bundan başka, bir iskelet ve bir savaşçı kız var bu ekranda. İskeletin yanına yürüyerek yaklaşıp biraz beklerseniz, sizi kılıcıyla resmen biçecektir. Bunun için, zıplayarak saldırmayı deneyin. Düşmanlarınızı öldürdükten sonra, ekrana gelen arıların yanına gelip ateşe basınca büyü topları veya gücünüzü arttıracak tavuk budu toplayabilirsiniz. STAGE 3: Bu bölümde, büyük kaplumbağanın üzerindeyiz. Sağa gidince karşımıza ejderhalı bir kadın geliyor. Bu sırada, daha biz ejderhayı alamadan; İki tane de barbar geliyor. Dikkatli olun; bu barbarlar, koşup size atlayabilirler. Ama siz de aynı hareketi onlara yapabi- Sakın burada uçuruma fazla yaklaşmayın; bizim atasözünü hatırlayın. Karşımıza gelen iki barbar kadını da öldürdükten sonra, bu bölümün dev düşmanlarıyla karşılaşıyoruz. Bunlar, ilk bölümdeki, sizi yere serince sırıtan canavarların, kahverengiye dönüşmüş hallerinin ta kendisi. Bunları öldürmek için ilk bölümde kullandığımız taktiği kullanabilirsiniz. Sağa doğru ilerleyince, karşımıza, beş tane savaşçı
(her türden) ve bir tane de, daha önce hiç karşılaşmadığımız, zırh giymiş bir şövalye geliyor. Sanırım bunlar sizi bayağı çok uğraştıracaktır. Fakat bunlar, biraz dikkat edilirse çok basit. Şövalyeyi, havadan zıplayarak veya koşarken tekme/omuz atarak halledebilirsiniz. Diğerlerini de normal şekilde öldürebilirsiniz. İşiniz bittikten sonra, doğal olarak arılar gelecek, Buradan, bu bölümde kaybettiğiniz enerjinizi alabilirsiniz. STAGE 4: Bu bölümde, dev kaplumbağanın sırtından inerek, kaleye gitmek için gereken yoldan gidiyoruz. Oyuna daha başlar başlamaz, karşımıza barbarlar geliyor. Ama tabi ki bizim savaşçımız, hepsinin üstesinden geliyor. (Öyle değil mi?) Sağa doğru ilerlerken göreceksiniz; ortada siyah siyah çukurlar var. Siz bunu daha tam olarak anlayamadan, o çukurların içinden, beyaz İskeletler çıkacak. Bunları öldürmek basit sayılır. Fakat şunu dikkat edin; burası lanetli bir mezarlık, Onun için, iskeletleri öldürdükten sonra, burada biraz (Bir dakika kadar) beklerseniz, iskeletlerin ruhları, o çukurlardan çıkacak ve size tekrar saldıracaklardır. Bunları öldürdükten sonra sağa İlerleyin. Karşınıza iki tane siyah şövalye gelecektir. Bunlar, çok zor sayılmaz. Tek yapacağınız; birisini öldürdükten sonra diğerine, joystick geri--ateş yöntemini uygulamanız.
STAGE Bu bölümde, bizi kaleye götürecek olan kartalın üzerinde uçuyoruz. Oyuna tam başladığınız yerde bir çukur var. Buradan, hemen bir iskelet çıkıyor. Sağ taraftaki çukurlardan da iskeletler çıkıyor. Bu sırada, iskeletlerle dövüşürken dikkatli olun; uçurumun yanındasınız. (Yani bizim şu ünlü atasözünü hatırlayın) Sağa gidince, karşınıza yine bir ejderhalı kadın çıkacak. Bunun ejderhasını almanız, sizin için iyi olacaktır. Sağa gidince, iki tane kahverengi şövalye göreceksiniz. Bunlarla birazcık oynaştıktan sonra, yere serilecekler.
STAGE 6: Nihayet, en sön bölüme, yani en zor bölüme yani, kaleye geldik. Burada, mavi balyozlu adamları ve diğer barbarları öldürünce, işiniz çok zorlaşıyor. Sağa gidin ve iki iskeleti öldürün. (Bebek oyuncağı gibi, değil mi?) Bu sırada, asıl düşmanınız olan Deafh Adderla da karşılaşıyorsunuz. Bunu kolayca öldürebilmek için sadece bir yol var. onun tam karşısına, ekranın öteki tarafına geçin. O size, yerden ateş parçaları atıyor. Tam o ateş atmaya hazırlanırken, ona doğru koşun. Tam ateşi elinden bıraktığı zaman ateşe basın ve bir uçan tekme/omuz atın. O, yere serilir serilmez hemen geri koşun ve yine tam karşısında bekleyin. Yine ateşi atarken koşun ve uçan tekme/omuz atın. Bu işlemi birçok kez tekrarladıktan sonra, Death Adder son keze yere serilecektir. Bundan sonra, Yuria ülkesinin kral ve prensesi, İplerle bağlanmış oldukları yermerika'nın güzel kumsallarında, sıcakta yapılan bazı voleybol karşılaşmaları vardır. Bu maçların iki büyük özellikleri vardır. Birincisi, takımlar iki kişiden oluşur. İkincisi de, Maç, günün sıcak saatlerinde ve denize yakın bir kumsal saha üzerinde oynanır. Over The Net de bu tür voleybolun aynı özelliklerini taşıyan bir voleybol oyunu. Mutlaka hatırlarsınız; geçen senenin başlarında, bu tür bir voleybol oyunu çıkmıştı. Adı Beach Volley'di. Fakat bu oyunu Beach Volley'den ayıran en önemli
OVER THE NET
lerden ve sizi sadece bir yazı bekliyor; “CONGATU-LATIONS”, Oyunda, benim size söylediğim yöntemlerden başka, İstediğiniz yerde büyü kullanabilirsiniz. Oyunu bitirdikten sonraki demoyu İzlerseniz, size karşı savaşmış olan bütün barbar ve canavarları görebilirsiniz. Barbarian türü oyunları se-
“venler İçin müthiş bir oyun. Fakat maalesef, oyunda sonsuz hak alamıyorsunuz. (Ben size yine de bir kolaylık söyleye-
Mehmet Gürmen özellikler, oyunun grafiği ve ses-efektleri. —.
Oyunumuzun GENİAS isimli, yeni bir firma yapmış. Gerçekten de şimdiye kadar İsmi fazla duyurulmamış bir firma. Ama yakın zamanda bu tür oyunlarda lider olabilir. İsterseniz artık oyunumuza geçelim. Oyunun başında, altı tane kutu seçenek var:
1- SEA CUP: Bunu seçerseniz, voleybol turnuvasına katılırsınız. Zaten oyunun asıl amacı da voleybol kupasını almak. İlk önce, yim. Oyunun normalde bitiremediyseniz, trainer versiyonunu alın. Bir de, bu oyun için olmasa da size bir sonsuz hak formülü veriyorum. C-64'te Midnight Resistance'ta skor tablosuna “SİAMESE” yazarsanız sonsuz haklarınız olur.
Oyunun Değerlendirmesi: VIRGIN GAME/AMIGA 512K
Grafik 7 Ses-Efekt 7 Oynanabilirlik: 8 Genel 8 bilgisayar size, şampiyonada kaç takımın yer alacağını sorar. Bir, iki veya üç takım şampiyonaya katılabilir. Kupayı alabilmeniz için, sırasıyla Rimini, Miami, Ibiza, Fiji ve Seychelles sahillerindeki maçları kazanmanız gerekir. Eğer durumunuz çok kötüleşir ve hiç puan alamazsanız elenirsiniz. Şampiyonaya, arkadaşınız ve siz birlikte bir takımda katılabilirsiniz. Bunun için gereken şey, üzerinde computer yazan kutulara basarak onları joystick resmi yapmak. Bu oyuncu joystickle oynar. Fakat iki tane grubu oynamaya ayarlayamazsınız. Bu şekilde ayarlayınca, maçta iki kişiden başkası oynayamıyor çünkü böyle bir şeyin gerçekleşebilmesi için, bilgisayarınızın dört tane joystick girişi olması lazım. Bu da ancak özel bir arabirim sayesinde mümkün. Bunlardan başka, değişik takımlar seçmek için soldaki iki kişilik takımlara basmanız gerekiyor. Bu takımlardaki oyuncuların ismini değiştirmek için de
- İsim hanesini seçmeniz gerekli. Bunlardan sonra şampiyonaya başlarsınız.
2- SİNGLE GAME: Bu seçenekle normal karşılaşmalar yapabilirsiniz. Fakat, bir turnuva yapamazsınız, sadece iki takım karşı karşıya maç yapar. Burada da takım seçme, oyuncu ismini değiştirme özellikleri var.
3- DEMO: Bu seçenekle bilgisayarın demo maçını görebilirsiniz. 4- POİNT ON CHANGE: Bunu gerçekten de tam olarak anlayamadım. Sanırım şampiyonada işe yarıyor.
ama siz bunu “Yes” ya da
“No” yaparsanız bir şey olmaz. Siz, ne olduğunu bulursanız kutlarım.
5- SETS NUMBER: Maçtaki set sayılarını ayarlarsınız. Oyun, bir, üç veya beş set olarak oynanabiliyor.
6- 4 PLAYER INTERFACE: Bunu da “Standart” veya “Genias” yaparsanız bir şey farketmiyor. Çünkü bu seçeneği kullanabilmek için özel bir arabirime ihtiyaç var. Şimdi de oyun ekranından ve bazı hareketlerden bahsetmek istiyorum: Ekranın ortasında bir skor tablosu var. Bunun en üstünde skorları, onun altında kaç seti kazandığınızı, onun altında da hangi takımın servisi kullandığını görebilirsiniz. Sizin skorunuz, altında mayonuzun rengini taşıyandır. Topu en fazla üç kere vurarak öteki sahaya geçirmelisiniz (normal bir voleybol kuralı). Karşı takımdan atılan topa ilk siz vurursanız, takımınıza sayı ka-
Davide Dardari zandırmak size kalacaktır. Arkadaşınız ikinci vuruşu havaya doğru yapacaktır ve size de o topa smaç vurmak kalacaktır. Smaç atmak biraz zor olduğundan, en iyisi siz bırakın, topu bilgisayar karşılasın. Burada siz sadece bilgisayara top atacaksınız, o da güzel bir smaçla size bir puan kazandıracaktır. Smaç yapmak biraz zor dedim. Smaç için: Top havaya atıldıktan birbuçuk saniye sonra elinizi “JOYSTİCK SAĞ ÜST ÇAPRAZ ATEŞ”te basılı tutmanız, tam topla karşılaşınca da joystick'i karşı sahaya doğru olmak şartıyla istediğiniz yöne çekmek gerekir. Mesela siz sahanın sol tarafındaysanız, joystick sağ alt ve-
- ya üst çapraz olabilir. Bunu çok deneyip, yine de başaramıyorsanız, Joystick ileri + ateş ile zıplayın ve joystick'i otomatik ateşe alın. Tek çare bu. Eğer sizin smaç atmanız için havaya atılan bir topa smaç değil de normal vurursanız, hiçbir şey değişmez. Servis atarken smaç yapmak için de demin söylediğim metodu SAĞ ÜST ÇAPRAZ + ATEŞ'te basılı tutup topla karşılaşınca karşı sahaya çekmek) kullanın. Karşı takım size smaç atmak için paslaşıyorsa da, top yükseldikten bir-iki saniye sonra zıplayın, topu keseceksinizdir. Normal bir şekilde servis kullanmak için de, Joystick + karşı sahada bir yön yapmanız gerekir. Grafik olarak, şimdiye kadar piyasaya çıkmış en güzel voleybol oyunu diyebilirim. Özellikle sahil voleybolunu sevenler kaçırmasınlar!!!
Oyunun Değerlendirilmesi:
Grafik 9 Ses/Efekt 9 Oynanabilirlik: 8 Genel 9 uzun zamandan beri böyle bir oyun görmemiştim. Bundan iki yıl önce birincisini severek oynuyordum. İkincisi birincisini aratmayacak kadar güzel. Hemen oyunumuza geçelim. Oyunumuz klasik bir futbol oyunu. Ama sakın KICK OFF gibi bir futbol oyunu zannetmeyin. Amerikan futbolunun değişik bir versiyonu denebilir. Yıl 2195 günün en popüler sporu, büyük bir izleyici kitlesine sahip. İşte böyle bir sporda kim mücadele etmek istemez. Oldukça sıkı bir ligi de mevcut, SPEEDBALL'da da amacımız topu kaleye sokabilmek. Ama bu düşünüldüğü kadar kolay değil. Maç süresince işimizi zorlaştıran bir çok öğe mevcut. Bir de bunların aksini yapan öğeler de var tabii. Mesela kredimizi çoğaltan paralar, oyuncularımızın giysilerini geliştiren yeni parçalar da var. Hazır laf buraya gelmişken oyunun başında karşılaştığımız giysi odasından bahsedelim.
GYM ROOM
Aslında oyunu biraz da stratejik açıdan düşünmek gerekiyor. Oyunun bir kısmında bu bölümde geçiyor. Her zamanki gibi mantıklı düşünenler her zaman kazanıyor. Bu bölümde takımımızdaki oyuncularımıza yeni giysi ya da eskimiş giysilerinin yerine yeni giysi parçaları alabilirsiniz. Ayrıca futbol menajerlik oyunlarındaki gibi lig hakkında fikstüre bakabilirsiniz. Bu fikstürde ligin son durumu, takımların gidişatı ve kendi durumunuz hakkında bilgi alabilirsiniz. Ekranın sol altında bulunan tuşlar sayesinde işlemler gerçekleştirebilirsiniz. — (BUY) tuşu seçtiğiniz giysi parçasını almanıza yarar, (FİX) tuşu FİKSTÜRÜ görmemize yarar, (ESC) tuşu GYM ROOM'dan çıkmanıza yarar. Şimdi oyunumuza geçelim. Oyunumuzda amacın sadece gol atmak olduğunu söylemiştim. Bunların hepsi bir yana bu oyunda günümüzün popüler spor oyunlarında bulunan kurallar ve faul denilen kaideler yok. Bu sebeple rakip takımın oyuncuları bize tekme atarak topu bizden alabilir. Biz de aynı işlemi yapabiliriz. Biraz da benden bazı tiyolar. Oyunu aldığımda en çok zorlandığım kısım kaleye gol atmak olmuştu. Attığım tüm şutlar hep kalenin üstüne çarpıyordu. Daha sonra bunun ateş tuşuna basmamdan kaynaklandığının farkına vardım. İşte problem buymuş. Eğer ateş tuşuna kısa süreli basarsanız topu yerden yani göğüs hizasında atarsınız. Ateş tuşuna uzun süreli basarsanız topu havadan atarsınız. Oyunun programını ve grafikleri meşhur BITMAP BROTHERS yapmış. Kurulduğu günden bu yana hep kaliteli oyunlar yapan BİTMAP BROT-
FUTURE BASKETBALL
Mehmet Gürmen
HERS bildiğiniz gibi daha önce XENON ve geçen ay açıkladığımız CADAVER'i yapmıştı. Neşeli, şamata bir oyun almak istiyoruz SPEEDBALL 2 tam size göre bir oyun, zaman kaybetmeden en kısa sürede sahip olun. Başarılar. Oyunun Değerlendirmesi: BITMAP BROS./AMIGA 512K 1D
Grafik 8 Ses 9 Oynanabilirlik 8 Kurgu 8 Genel 8 Yıl 2013! Basketbol çok gelişmiş, insanlar robotlaşmış ve kabalaşmışlar. Basketbol maçlarında faul diye bir kural kalmamış. İsterseniz oyuncuyu öldürün; yine de faul olmaz bir vaziyet almış. İşte, Future Basketball da bu yılların, yani geleceğin basketbolunu konu alıyor. Düşünün, basketbol o kadar gelişmiş ki hava atışını bile bir makine yapıyor. Fakat değişmeyen bir tek şey var; seyirciler. Oyunun içinde geçen seçeneklere bir bakalım: Single Game: Bunu seçtikten sonra karşınıza bir menü daha çıkar. Bu menüden oyunun zorluk derecesini ayarlamanız istenir. “Beginner” acemi, “Amateur” amatör, “Advanced” ilerlemiş, “Professional” da profesyonel derecede bir oyun oynamanızı sağlar. Bu menüden sonra da oyunu kaç kişi ile oynayacağınızı ayarlamanız gereken bir menü ile karşılaşırsınız. Bu menüde “Exit”i seçerseniz ana menüye geri dönersiniz. Bundan sonra da oyuna başlarsınız.
Start League: Basketbol ligine başlamanızı sağlar. Bu seçeneği seçtikten sonra karşınıza gelen menüde “Edit League” seçerseniz belirli takım isimlerini değiştirebilirsiniz. “Continue” ile de lige başlarsınız. Exit seçeneği, sizi ana menüye geri gönderir. Continue League: Bununla daha önceki bir lige devam edersiniz.
Game Duration: Buradan, maç süresini ayarlayabilirsiniz. Maç, üç, beş, on, onbeş, yirmi ve otuz dakikalık yarılar olarak oynanabiliyor.
Sound: Bu menüden de oyun sırasında müzik mi yoksa ses efektlerinin mi olacağını ayarlarsınız. (Ses efektleri müthiş)
Oyunu tek kişilik ve acemi şekilde oynuyorsanız, işiniz gerçekten de çok zor. Karşı oyuncudan topu alabilmek için, joystick'i o yöne çekip ateşe basmalısınız. Basket atabilmek için de, joystick'i hiçbir yöne çekmeden elinizi ateşte basılı tutmalısınız. Fakat, zor pozisyonlarda olan oyuncular kolayca basket atamayabilirler. (Örnek olarak potaya arkası dönük bir oyuncuyu verebiliriz.) Bunun için potaya yüzünüzü dönerek basket atmaya çalışın. Çok uzaktan da basket atmaya çalışmayın; girmez.
Ekranın altındaki küçük tabloda, skorları, kalan zamanı ve sahanın küçük bir haritasını görebilirsiniz.
Eğer profesyonel şekilde oynuyorsanız, adamlarınızın hareketi çok hızlı olacaktır. Karşı takımdan top kapmak da kolay olmayacaktır. Oyun sırasında sizin bazı engelleriniz de var, bunlar bombalar. Bombalara çarparsanız topu elinizden kaçırırsınız. Paraları da toplamaya çalışın.
Gerçekten de çok güzel bir oyun, bol basketli günler.
Oyunun Değerlendirmesi:
AMIGA/512 K Ses-Efekt: 8 Grafik: 8 Oynanabilirlik: 7 Genel: 8