C64 için Püf Noktaları

Tunç & Sinan

MAKİNE DİLİNİN PÜF NOKTALARI

Bu aydan itibaren sizlerle birlikte olup makine dilinin tüm inceliklerini tanıtmaya çalışacağız. Ancak bu tanıtım daha öncekiler gibi değil. Amacımız sadece assembler komutlarını öğretmek değil, bu dilin programlama mantığını ve basit programlar yazmanızı sağlamak. Evet hazırsanız başlıyoruz. Makine dilinde kullandığınız sayılar hexadecimal yani 16'lık sistemdeki sayılardır. Bu sayılar: 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F şeklindedir. Örneğin $1000'i decimal (onluk) sistemde gösterelim

- 16 x 16 x 16 x 1 = 4096 - 16 x 16 x 2 = 512 - 16 x 5 = 80 - (4'ün 0, 1) x 4 = 4 * 4096 değerine eşittir.

Esasen bu çevirmeleri monitör programları kendi kendine yapabilirler. Commodore 64'ün assembler'ında 3 register mevcuttur. Register'lar bir değeri sakladığınız değişkenlerdir. Bu değişkenler A, X ve Y'dir.

Bu işlemlerden sonra size çok karmaşık gibi görünen bazı temel komutları inceleyelim. LDA VE STA KOMUTLARI: Assembler'da “LDA” komutu en çok kullanılan komutlardan biridir. Anlamı “load accumulator”dür. Bu komutla A register'ine yani accumulator'e herhangi bir değer verebilirsiniz. LDA #$50 - Bu örnekte A'ya 50 değeri verilmiştir. Örnekte “#” kullanılmasının nedeni yüklenen değerin direkt kullanılması içindir. LDA - Eğer buradaki gibi “#” kullanmazsanız makine A'ya yükleyeceği değeri $4000 adresinden alır. Yani $4000'deki değer A'ya yüklenir. Eğer $4000 adresinde #$80 varsa A değeri 80 olacaktır. Unutmadan şunu da ekleyelim; komutlarda kullanacağınız sayılar HEXADECIMAL yani 16'lık sistemdeki sayılardır. Bu sayıları kullandığınız monitör programı yardımıyla kolayca bulabilirsiniz.

STA komutu ise “store A” anlamına gelir. Bu komut BASIC'deki POKE komutuna karşılıktır. LDA ile yüklediğiniz değeri STA ile istediğiniz adrese yerleştirebilirsiniz. LDA #$09 - A'ya #$09 değerini verir. STA $1000 - değerini adresine yerleştirir. Aynı işlemi BASIC'de şu şekilde yapabilirsiniz. POKE 4096,9 - Buradaki 4096, decimal (onluk sistem)'deki değeridir. Umarız ki bu yazılanlar size karmaşık gelmiyordur. Çünkü LDA ve STA komutlarının daha değişik şekillerini incelemeye başlıyoruz. Şimdi de aşağıdaki küçük programa bir göz atalım. LDA #$41 - A = 41 (onluk olarak 65) STA $0400 - $0400 = 41 ($0400 onluk olarak 1024'e eşittir. 1024 değeri ekranın başlangıç adresidir.) Yukarıdaki programda ekranın sol üst köşesine A harfi bastık. Aynı işlemi BASIC'de POKE 1024,65 ile yapabilirsiniz. Sizin de anladığınız gibi BASIC'deki POKE komutu assembler'da LDA ve STA komutuna karşılık gelir. Klavye üzerinde bulunan bütün karakterlerin, hafızada bir sayı değeri vardır. Bu sayı değerlerini kullanım kılavuzunda bulabilirsiniz. Şimdide diğer register'leri kullanarak kısa bir program yazalım:

LDX X — 00
DÖNGÜ: LDA $1000,X -> $1000'deki değeri A'ya
yükle
STA $0400,X -> A'daki değeri S04004- X'e
koy
INX ->X' bir arttır
JMP DÖNGÜ - > (LDA $1000, X'e)
DÖNGÜ'ye git.

Yukarıdaki programda, $1000-$4100'de bulunan değerlerin $0400-$0500 arasına nasıl basılabileceğini gördük. Bu işlem sırasında ekrana $00'dan $FF'e kadar olan değerleri bastık. Yani decimal olarak 255 tane karakter bastık. Bunun sebebi de makine dilinde her sayının karakter olarak bir karşılığı vardır. Eğer ekrana bir mesaj yazdırmak isterseniz $1000 ile $4100 arasına, mesajınızı yazın. Programın içinde kullandığımız LDX #$00 komutu ile hafızada bir sayaç açıyoruz. INX komutuyla (Increment X) X'i bir değer arttırıyoruz. JMP ile ekrana X'in bir değer artmış halini basıyoruz. Yani X, sıfır iken sıfırıncı değeri, X bir iken birinci değeri bastırıyoruz. Bu işlem X, 255 olana kadar devam ediyor. Eğer bu sayının 255'den küçük olmasını isterseniz INX komutundan sonra CPX (Compare X) kullanmamız gerekir. $10 kullanarak X'in $10 olup olmadığı karşılaştırılır. Aynı zamanda JMP komutu yerine BNE (Branch if not Equal) kullanmamız gerekir.

BNE komutu BASIC'de IF komutuna karşılık gelir. X, $10 olana kadar BNE DÖNGÜ yapılır. Yani X'in o andaki değeri kontrol edilir, $10 olup olmadığı kontrol edilir, X $10'dan küçükse BNE yardımıyla LDA X yazan satıra gidilir. Şimdi LDA, STA, LDX, STX komutlarını kullanarak ekranı silme, zemin ve kenar renklerini değiştirmeyi görelim. Ekran iki şekilde silinir. 1- Aynen BASIC'de olduğu gibi (PRINT “CLR HOME”)

LDA #$93-
JSRS D2- ekranın yazım adresi

Yukarıdaki programda A'nın aldığı değer (147), BASIC'de yaptığımız CLRHOME'a eşittir. Yani SHIFT tuşu ile beraber CLEAR HOME tuşuna bastığımızda ekrana çıkan (negatif kalp) işaretin değeri, hafızada $93 değerine karşılık gelir. JSR $FFD2 ise PRINT komutunun assembler karşılığıdır. Commodore 64'ün içinde bulunan (KERNAL ROM) bazı komutlar vardır. Bunlara KERNAL RUTİNLERİ denir. $FFD2'de bu kernal rutinlerinden biridir. Yukarıdaki program ekrana CLRHOME'a karşılık gelen değeri basar. Böylece ekran silinmiş olur. Bildiğiniz gibi BASIC'de ekranın renklerini 53280 ve 53281 adreslerini kullanarak değiştiriyoruz. POKE 53280,0 yazdığımızda ekranın dışı siyah rengi alır. POKE 53281,0 yazdığımızda ekranın iç kısmı da siyah olur. Aynı işlemi assembler'da şöyle yapabiliriz

LDA #$00 -> Az00
STA $DO20 - >A'daki değeri $DO20 adresine yerleştir.
LDX #S00
STX $DO21 ->X'deki değeri $DO21 adresine yerleştir

Aynı işlemi pratik olarak

LDA # $00 - >
STA $DO20 - > A'daki değeri $DO20'ye koy.
STA $DO21 - > A'daki değeri $DO21'e koy.

Sanırım şu ana kadar basit de olsa bir şeyler anlamışsınızdır. Gelecek sayıda INTERRUPT ve TIMING konularını anlatacağım. Görüşmek dileğiyle.

TUZAKLAR VE TİYOLAR

« Bu ayda sizlere beğeneceğinizi umduğum güzel ip uçları yazacağız. Sinan hâlâ vizelerle, finallerle uçup duruyor. Benim ise sınavlarım azalmış durumda. Evet, güzel tiyolarımızı yazmaya başlayalım. İlk tiyolar canlı JUMPING JACKSON'dan. İlk önce kademe password'ları.

ROCKNROLL NOISSES ELVIS

Beşinci kademeyi kolayca geçmek isterseniz size tarif ettiğimiz yolu izleyin. En sağdaki teleporter'a girip sıra ile SARI-KIRMIZI ve MAVİ plakları alın. Bizi saatlerce başından kaldırmayan bir PSYGNOSIS oyunu olan NEVERMIND kademe kodlarına ne dersiniz. Sesinizi duyar gibi oluyorum.

Benden bu kadar şimdi tuşları Sinan'a bırakıyorum. Selam, geçen sayıdan beri bilgisayarınızı kurcalayabildiniz mi bilemiyorum ama ben arasıra da olsa biraz açıp bakabiliyorum. Şu anda hepimiz yazıları erken teslim etmenin getirmiş olduğu karmaşa içindeyiz. Şu anda Tunç yazıyı bana yıkıp çıkmaya hazırlanıyor. Neyse lafı daha fazla uzatmadan tiyolarımıza başlayalım. İlk tiyomuz 'ESCAPE FROM THE PLANET OF ROBOT MONSTERS'tan. Gerçi şimdi vereceğim tiyoyu oyunu açıklarken verecektim ama aceleden unuttuğum için sizi bu satırlara mahkum ediyorum! Bombalarınızı kullanmak için klavyenizin sol alt köşesindeki 'ALT' tuşuna basın. Tabi bombalarınızı bölüm sonundaki canavarlara saklamanın oldukça faydalı olacağını da hatırlatmama gerek yok sanırım. İkinci tiyomuzsa X-OUT'tan. Gemi ve silah almak için girdiğiniz bölümde önce en ucuz gemiyi alın. Bunun ardından en ucuz tekli ateşi alıp, garip bir kıyafet içinde sol üst köşede duran yaratığın yüzüne klikleyin. Artık 500.000 krediniz var. Bununla istediğiniz kadar gemi ve silah alabilirsiniz. Şayet tek tek gemi alıp silahla donatmak için fazla vakit harcamak istemezseniz klavyenizdeki F tuşlarını kullanabilirsiniz. Sırasıyla F4, F2, F3 ve F4 tuşlarına basarak (ucuzdan pahalıya doğru) istediğiniz gemi gruplarını alabilirsiniz. Örneğin her F4 tuşuna bastığınızda otomatikman en ucuz gemiden dört tane alabilirsiniz. Sürekli bastığınız takdirde taşıma kapasiteniz dolana kadar gemi alabilirsiniz. Tabi F tuşlarıyla seçtiğiniz gemilerde sizin istemediğiniz silahlarda bulunabilir. O zaman istemediklerinizi atarak, onların yerine istediğiniz silahları alabilirsiniz. Bence hazır bir gemideki bazı silahları değiştirmek, yeni bir gemiyi silahla donatmaktan daha kolay. Siz ne dersiniz. Bu arada 64'çü arkadaşlarımız bize kızmasınlar bundan sonraki bölümlerde onlar için de ilginç tiyolarımız olacak. 64'le ilgilenen yazar arkadaşlarımızın yardımıyla tabi. Şimdilik bu kadar bol tiyolu sım:

2

Tabii ki 9?

Eğer C-64 kullanıcısıysanız, hele bir de disk drive'ınız varsa mutlaka GEOS (Graphic Environment Operating System — Grafik Ortam İşletim Sistemi) adını duymuşsunuzdur. Bu yazı dizimizde size GEOS'un kullanımını ve GEOS tarafından çalıştırılabilecek programların (Application — uygulama) nasıl yazılabileceğini anlatacağım. Eğer sürekli Commodore Dergisi okuruysanız daha önce de bu konuya değindiğimizi hatırlarsınız. Fakat konumuz açısından hayati önem taşıdığı için bu yazıların kısa bir özetiyle başlayacağım dizimize. (Daha ayrıntılı bilgi için Commodore Dergisi sayı 49'u gözden geçirin.)

Bildiğiniz gibi GEOS, bit-mapped ekran üzerinde menüler, ikonlar, diyalog kutuları gibi yüksek düzeyde kullanım rahatlığı getiren işleri kullanmakta ve programlarında oldukça rahatlık sağlamaktadır. Eğer sizin programlarınızda da bu rahatlığa sahip olmak isterseniz, GEOS'u kullanmanız size büyük bir avantaj ve rahatlık sağlayacaktır. Peki ama bütün bu rahatlığı sağlayan GEOS nedir? GEOS, tıpkı C-64'ünüzün sahip olduğu kernal gibi kendi kernal'ına sahip, bu kernal'da pull-down menu, ikon, normalin dört katı hızlı bir disket işletim sistemi, string I/O rutinleri gibi, program yazarken en çok ihtiyaç duyacağınız rutinleri saklayan bir işletim sistemidir. (49. sayıda kernal daha ayrıntılı biçimde işlenmiştir.) Aslında Desk-Top, yani GEOS'u çalıştırdığınızda karşınıza çıkan ve dosyaları ikon ve menüler yardımıyla kullanmanızı sağlayan program GEOS'a dahil değildir, yalnızca ilerde sizin de yazmayı öğreneceğiniz türden bir uygulama'dır. GEOS yalnızca bu tür uygulama'ları destekleyen bir işletim sistemidir. GEOS kernal'ının içinde iki düzeyde kod çalışmaktadır. Bunlar ana döngü (Main loop) ve interrupt düzeyidir (Interrupt level). Ana döngü, event'leri tarayarak gerekli rutinleri çağıran ve bu arada sizin uygulamalarınızı çalıştıran uzun bir koddur. Interrupt düzeyi kodu ise saniyede 60 kere main kodu keserek donanımı okur. Bu sayede, ana döngü ne ile uğraşırsa uğraşsın, sizin bastığınız tuşun veya oynattığınız joystick'in hatasız olarak okunabilmesi sağlanır. Bunun yanında eğer programınızda interrupt düzeyini kullanmak istiyorsanız yalnızca GEOS'a kendi interrupt düzeyinin arkasına sizinkini eklemesini istediğinizi söylemeniz yeterlidir. Gördüğünüz gibi GEOS gerekli olan bütün yükü kendi üstüne almıştır. Eğer makine dili biliyorsanız, GEOS'la program yazmaktan daha kolay bir iş olmadığını göreceksiniz. Tabii bu arada belirtmem gerekir ki bu iş de dünyanın en kolay işi değil. Özellikle GEOS dosyalarının standartlardan farklı olması yüzünden bazı zorluklar çıkıyor karşımıza. Fakat gelecek ayki yazımızla vereceğimiz “THE ULTIMATE GEOS CONVERTER” programı ile bu problemi halledeceğiz. Bu kadar özetten sonra daha ciddi konulara, yani GEOS kernal rutinlerinin kullanılmasına gelelim: GEOS yaratıcıları her şeyden önce zero page'de kendilerine bazı bölgeler ayırmışlar. Bunun sebebi ise 6502 komutlarının zero page kullanımında daha az yer tutması ve daha az zaman alması. Bununla birlikte, bu bölgeler yardımıyla değerlerin kernal rutinlerine yollanması ve rutinlerin bu bölgelerde hesap yaparak sonuçlarını yine aynı bölgeler yardımıyla göndermesi, programcının belleğin hangi kısmının kullanıldığını hatırlatması konusunda büyük kolaylık sağlar. Bunun sonucunda GEOS'un programcıları $02'den başlayan 30 baytlık bir bölgeyi pseudoregister olarak ayırmışlar. Bu bölge 15 adet çift baytlık değişkenden oluşur. Bu değişkenlerin isimleri, r0, r1, r2, ..., r15'tir. Yazımızda bu pseudoregisterlerin low-baytları veya rNL olarak adlandırılacaklar. (Burada N, register numarasıdır: r0, r0L.. gibi). High baytlar ise rNH olarak isimlendirilecekler.

Bu pseudoregisterler yardımıyla GEOS Kernal rutinleriyle haberleşmeniz mümkün olacağı için bu bölgelere yazımızda sık sık değineceğim. Bu bölgeler GEOS kernal'ının işlem yaptığı tek bölgedir. Bu sayede hiç korkmadan belleğin bize ayrılan kısmını rahatlıkla kullanabiliriz. GEOS Kernal rutinlerine değer yollamanın tek yolu bu pseudoregisterler değildir. Hız gerektiği zamanlar A, X, Y ve hatta carry flag kullanılabilir. Fakat bunlar arasında özellikle sık çağrılan rutinlerde kullanılan in-line çağırımlar en kullanışlısıdır. In-line çağırımlarda rutine gönderilecek değerler doğrudan doğruya jsr komutunun ar-

Ep | A | O m en m a ii O BU |

Durant Harmon Ormond LeConte

Boalt releyriph

Superb

Tilden Purnam Bowditch kasına eklenir. Buna şöyle bir örnek verebiliriz:

İsr i-rectangele ; şu anki sistem motifiyle bir
; dikdörtgen çiz
by O ; üst y koordinatı (0-199)
199 ; alt y koordinatı (0-199)
wo O ; sol kenar (0-319)
wo 319 ; sağ kenar (0-319)

Program jrs komutundan döndüğünde 6 baytı atlar ve buradan işlemeye devam eder. In-line çağırımlarda daha sonra gelen byt sayısına dikkat etmezseniz programınız kilitlenebilir. Yukarıdaki programı çalıştırdığınızda tüm ekranı sistemin son kullandığı 8 x 8 ebatlarındaki motif ile doldurur. Bu tür çağırımların tek zararı normal çağırımlardan daha yavaş olmasıdır. Ama örnek programı incelersek toplam 9 bayt aldığını görürüz. Oysa aynı programı pseudo registerler yardımıyla yapsaydık 27 bayt uzunluğunda olacaktı. Sanırım bu kadar büyük bir bellek tasarrufu için birkaç mikrosaniye feda etmekten çekinmezsiniz. Bu arada ekleyeyim, bundan sonra rutin adlarından önce gelecek bir i- ifadesi bu rutinin bir inline sistemiyle çağrılması gerektiği manasına gelecek. Şimdiye kadarki kısımlarda yalnızca ana döngü ve Interrupt düzeyinden bahsettik. oysa bazan (pek tavsiye etmememe rağmen) ana döngü ve interrupt düzeyini değiştirmeniz gerekebilir. Bu gibi durumlar düzeltmesi çok zor olan senkronizasyon bozulukluklarına yol açabileceği için çoğu programcı bu yolu tercih etmez. Bu kod cinsine non-event kodu denir. Zorluğu ve gereksizliği yüzünden pek tercih edilmeyen bir yoldur. Eğer özel bir donanım eklemek için ana döngüden bağımsız bir interrupt rutuni çalıştırmak istiyorsanız, non-event kodu tercih etmeniz gerekecektir. Bunu yapabilmek için belerli bazı sistem değişkenlerinin değerleriyle oynamanız gerekmektedir. Bu sistem değişkenlerinin isimleri interrupt TopVector, interrupt Bottom Vector, ve application Main'dir. (Şu anda yeterli bilgiye sahip olmadığımız için bu değişkenlerin adreslerini yazmayacağım fakat ileride GEOS'un tüm sabit değerlerini, değişken adreslerini ve rutin adreslerini içeren tablolar yayınlayacağız). Eğer interruptTopVector'ün değeri değiştirilirse sizin kodunuz (tahmin ettiğiniz gibi) GEOS interrupt düzeyinden önce çağrılacaktır. Bu yolu seçtiyseniz önceden bu adreste saklanan InterruptMain adresine bir jump yaparak programınızı terketmelisiniz. Değiştirdiğiniz vektör interrupt Bottom Vector ise programınız normal interrupt düzeyinden sonra çağrılacaktır. GEOS bu vektörün değerinin O'dan farklı olması sayesinde sizin burayı kullandığınızı anlar. Burada dikkat etmeniz gereken en önemli husus ise programınızın sonunda RTS kullanmanız gerektiğidir. Eğer yanılıp da RTI kullanırsanız programınız ve GE-OS kilitlenir. Eğer applicationMain vektörünü değiştirirseniz ana döngü sonunda programınıza atlama yapılır. Burada da RTS ile ana döngüye dönebilirsiniz. Şimdiye kadar öğrendiklerinizle bir uygulama yazmanız mümkün olmasa bile, ileride devam edecek yazımız için çok önemli bir temel oluşturmaktadır. Bu yüzden 49. sayıda yazılanları ve bu yazıyı çok iyi anlamazsanız daha ileride büyük zorluklarla karşılaşırsınız. Gelecek.sayımızda bir uygulama yazmanın temel adımları konusunu işleyeceğiz ve bir de basit GEOS bellek haritası yayınlayacağız. Gelecek ay bu köşede buluşmak üzere...

U günlerde cizgi romanların oyunları MOda oldu sanırım. Şimdi de hepimizin yakından tanıdığı FLASH GOR-DON, KIZILMASKE, MANDRAKE ve ABDULLAH'ın katkılarıyla karşınıza bu oyun çıktı. Oyunun konusu oldukça klasik. Flash Gordon okuyanlarınız Gordon'un Ming adlı düşmanını bilir. Bu kötü kalpli hükümdar Gordon'un klasikleşmiş en eski ve amansız düşmanlarındandır. Ming bizim dünyamızdan oldukça uzakta olan bir dünyada yaşar. Eskiden bu dünyanın tartışmasız hakimiyken, Flash Gordon, Dale ve Doktor Zargof'un bu gezege-

Zi ne gelmesiyle her şeye değişir. Gordon ve arkadaşlarının yardımıya asiller Ming'e karşı zafer kazanırlar ve her toplum bağımsızlığını ilan eder. Ming ise bir başka gezegene sürgüne gönderilir. Günün birinde bir fırsatını bulan Ming, bu gezegenden kaçar ve tekrardan eski gücüne kavuşmak için çalışmalara başlar. Onu durduracak tek güç vardır o da Flash Gordon ve ekibidir. Gordon'un bu macerasında gerçi Dale ve Doktor Zargof yok fakat onların eksikliklerini giderecek kahramanlar mevcut. Oyuna Flash Gordon'un kontrol ederek başlıyoruz.

M.Oğuz Gölge

Oyunun türü dolayısıyle fazla yazılacak bir şey yok, önünüze çıkanı vurarak ilerlerken vu- Tulmaya çalıştırıyorsunuz. Bu nedenle karşınıza çıkan kapılardan nasıl geçeceğinize ve önemli canavarlarla nasıl savaşacağınıza değineceğim. Burada Flash Gordon haricindeki diğer kahramanları karşımıza çıkan engeleri aşmada kullanacağız. Kısaca özetlersek; Kızılmaskey'i ağaç kapıları açmada, Abdullah'ı çelik kapıları açmada, Mandrake'- yi de normalde aşamayacağımız engellerin geçilmesinde kullanacağız. Bu kahramanları aktif duruma getirebilmek için space tuşunu kullanabilirsiniz. Kapılardan girip çıkmak içinse, eğer kapının altında büyük beyaz bir çizgi varsa joistick'i aşağıya çekerek, eğer yoksa joistick'i yukarı çekerek kapılardan girip çıkabilirsiniz. En tehlikeli canavarlar ise, mekanik bir örümcek, bir ejderha ve tabi ki Ming. Örümceği öldürmek için, örümceğe bir kademe yaklaşın ve örümcekle birlikte sıçrayarak onu öldürün. Ejderhayı ise sürekli ağzından vurarak öldürebilirsiniz. Ming'e gelince, onuda örümceği öldürdüğünüz gibi öldürün, fakat sürekli aynı hareketi yapmadığından ve ekran içinde dolaştığından Ming örümcek kadar kolay ölmüyor. Ayrıca odanın ortasındaki çukura dikkat edin Oyunun back-ground grafikleri ve müziği çok güzel Bundan başka oyunun tek parça olması, teyp kullananların da yararlanmasını sağlıyor. Bu tür oyunlardan hoşlananlara tavsiye ederim

Oyunun Değerlendirmesi (Commodore 64)

GRAFİK : 6 SES 6 KURGU : 7 ZORLUK : 7 GENEL :7

SI, Pool of Radiance'den sonra gene çok kaliteli bir FRP ile karşımızda. Pool of Radiance'yi bitirenlerin hafızalarını temizlemek ve bitiremeyenlere oyunun sonunu anlatmak isityorum. Çünkü Curse tamamen Pool fo Radiance'- nin devamı. Phlan'daki blokları teker, teker ele geçirirken, güçlü düşmanınızın gücünü kısıtlamış oluyordunuz. Ve nihayet beklenen an geldi ve kalesine girdiniz. Son derece güçlü adamlardan oluşan ordusunu yenilikten sonra Tyranthraxus size generallik teklif etti. Fakat siz bu teklife kanmadınız ve o an içinde bulunduğu ejderha vücudunu yokettiniz. Ama ruhu vücudunu terketti ve oradaki Pod of Radiance'ye (ışık havuzu) girip kayboldu. Artık Tyranthroxus'u yoketmiş ve Phlan'ı kurtarmıştınız (Pod of Radiance burada bitiyor ve Curse başlıyor.) Ama içinizdeki maceracı ruh bir yere bağlanmanızı engellemişti. İki yıl oradan oraya dolaştıktan sonra bir gün bir kral geldi ve sizden sevgilisiyle kaçan kızını kurtarmasını istedi. Prenses büyük ihtimalle Tilverton'da bulunuyordu. Bu görevi kabul ederken büyük düşmanınızla yeniden karşılaşacağınızı aklınızın ucundan bile geçirmiyordunuz. Yolda giderken birdenbire her şey karardı ve kendinizi Tilverton'da bir handa buldunuz. Hiç bir şey hatırlamıyordunuz ve kolunuzda beş gökmavisi sembol vardı! Bu işaretler derinin altındaydılar ve bazen size kımıldıyorlarmış gibi

geliyorlardı. Kendi aranızda

bir strateji düşündünüz! Büyücüleriniz büyülerini ezberleyecek ve siz yanınızda bulduğunuz platinlerle dükkandan silah ve zırh alacaktınız. Sonra da Tilverton'da bir araştırma yapacaktınız. Burada size ne olduğunu bilen biri mutlaka olmalıydı!. DALELANDS Hakkında Önemli Geografik Bilgiler! Ana harita, yani oyun alanı güneybatıdaki Tilverton'dan başlıyor ve kuzeydoğudaki

Phlan'da bitiyor. Elven Court'- un büyük bölümünü, Moonsea'nın batı kıyılarını ve Elven Court'u çevreleyen bazı ovaları haritada görebilirsiniz. Bu bölge genelde yerleşilmemiş ve vahşi kalmıştır. Bu bölgede şehir ve köyler ve bazen sadece çiftlikler bulunuyor. Haritadaki bütün yerler aşağıda anlatılmıştır. Comyr, Dalelands'ın güney ve batısındaki büyük ve geliş- Miş bir ülkedir. Comyr'in yöneticileri Tilverton'u alarak, güçlerini kuzeye doğru genişlettiler. Ama şimdiye kadar başka bir şehre saldırdıkları görülme- Dagger Falls, Tesh nehrinin yanında, köylülerden oluşan bir topluluktur ve çağlardan beri Dagger Dale'deki en büyük şehir olma özelliğini korumuştur. Dagger Falls'in sakinleri, Zhentil Keep'in genişleyen etki alanının bir gün kendi özgürlüklerini kısıtlayacağından korktukları için yabancılardan hoşlanmazlar. Dalelands, Elven Court'u çevreleyen, korkutucu topraklar üzerinde bulunur. Court'un çevresinde bir çok ova vardır; Shadowdale, Mistledale, Battledale ve Daggerdale. Elven Court, uzun zaman önce, Moonsea çevresinde yaşayan Elf toplumunun merkeziydi. Büyük göç esnasında elfler ormanı terkettiğinde, orası şimdi ormanın en karanlık köşelerinde bile yaşayıp, devamlı çoğalan kötü yaratıkların evi oldu. Bazıları bu yaratıkların bir gün dalelands için büyük tehlike oluşturacaklarına Essambra, Battledale'nin ticaret merkezidir. Bir çok güçlü düşman burada katliam yaptıkları için, burdan bir çok kitlesel göçler oldu. Elf'lerin göçüyle Essembra'nın gücü azalmış oldu. Hilisfor, eskiden Elven Co- Urt'ta yaşayan Elfler ve Moonsea çevresinde yaşayan insanlar arasındaki en önemli ticaret merkeziydi. Elf'lerin çekilmesinden sonra bir diktatör başa geçti ve “Kırmızı Tüyler” adı altında kendi özel ordusunu kurdu. Şimdi bu ordu Yulash'ın yıkıntılarında Zhentil Keep'in birlikleriyle çarpışıyor ve düşmanına karşı avantajlı durumda, Mistdaie, sakin ve köylü bir toplumun üzerinde yaşadığı bir ovadır. En büyük nehrini kestiği noktada bulunan Ashanbenford'dur. Myth Drannor, büyük göçten önce Elven Court'taki bir şehirdir. Daha sonra büyük bir güç tarafından çekilen yaratıklar tarafından işgal edildi ve böylece tehlikeli bir yere dönüştü. Shadowdale, Tilverton'dan başlayıp Voonlar'a giden caddenin, Ashabo nehrini kestiği noktada kurulan şehir ve çevresindeki bölgedir Shadowdale maceracıların severek geldiği bir yerdir ve yanlarında şehir için güç, zenginlik ve koruma getirdiği için şehirler tarafından büyük bir sevinçle karşılanırlar. Ayrıca burası beyaz Elminster'in evidir. Standing Stone, Elflerin insanları Dalelonds'a salmaları için yapılan antlaşmayı hatırlamak için yapılmış bir heykeldir. Teshwave, orta büyüklükte ve bir süre önce Zhentil Keep'- in orduları tarafından işgal edilen bir şehirdir. Şehir sakinlerinin şimdiye kadar sessiz kalmaları, işgalcileri, sakinlerin yeteri kadar korktuklarına inandırmıştır. Tilverton, Comyr ile olan sınırın kuzey batısında bulunan küçük bir şehirdir ve bir süre önce Comyr'in 7. ordusu tarafından işgal edilmiştir. İşgalciler şimdiye kadar bir direnişle karşılaşmamışlardır. ve halk Comyr'in koruması altında olmalarına seviniyor. Voonlar, Zhentil Keep gibi kötünün bir şehridir. Voonlar'- ın orduları bir çok defa Shadowdale'e girmeye çalışmış ve her seferinde geri püskürtülmüşlerdir. Yulash, artık bugün sadece harabe diye tarif edilebilir ve Zhentil Keep ile güneydeki ülkeler arasındaki tek ticaret rotasının üzerindedir. Şu anda şehir Hillsfor'ın Kırmızı Tüylerinin kontrolü altındadır. Bu ordu bir süre önce kanlı bir savaşta

Zhentil Keep'in kuvvetlerini yenmiştir. İki tarafta şimdi yeni bir savaşa hazırlanıyorlar. Zhentil Keep, kötü Zhentrim'in kontrolü altında bulunan bir başkenttir. Şehrin gücü batıya ve güneye doğru genişlemiştir ve bir çokları daha da genişlemesinden korkmaktadırlar. Curse of the Azu-

BLACK TIGER

latformcular joystick başına. Güzel grafikli, güzel Müzikli, güzel konulu bir oyun oynamak ister misiniz? Şimdiden “EVET” dediğinizi duyar gibi oluyorum. Oyunun konusu şöyle; siz vahşi bir kabilenin güçlü reisisiniz. Halkınızı üç ejderha tehdit etmektedir. Halkın huzuru ve morali bozulmuş haldedir. Sizin amacınız ise halkınızı Du ejderhalar ve onların yardımcılarından kurtarıp, barışı tekrar ülkenize getirmek. Oyuna başladığınızda elinizde bir miktar para, bir iki tane anahtar, kötü bir topuz ve yine kötü bir zırh var. Bunun için ilk amacınız güçlü bir topuz ve güçlü bir zırh almak, Bunların alışma geçmeden önce biraz oyunun oynanışın-

M.Oğuz Gölge

«di dan söz edeyim. Oyundaki ikinci amacınız belli yerlerde bulunan rahipleri kurtarmak. onları kurtarmak için en büyük yardımcınız oyundaki oklar. Oyunda ilerlerken göreceğiniz bu oklar size rahiplerin ve bölüm sonu canavarının yerlerini gösteriyor. ayrıca rahiplerin bir özelliği de zırh, anahtar, topuz gibi eşyaları alabileceğiniz ekrana onları kurtardığınızda girebilirsiniz. Oyunda göreceğiniz hazine sandıklarını açmak için gereken anahtarları da buradan alabilirsiniz. Bu sandıkların içinde para ve enerji bulabilirsiniz. Ayrıca bazen öldürdüğünüz adamların yerinde pa- Ta keseleri çıkar bunları almayı ihmal etmeyin. oyunun bazı kademelerinde bonus ekre Bonds'un hikaye kısmına bu ay son verip, oyunun daha detaylı açıklamasını, büyüleri, sınıf ve karakteri, silahları ve daha birçok yararlı bilgiyi bir dahaki sayımızda açıklamaya devam edeceğiz. FRP'lerle ilgili herhangi bir sıkıntınız olursa bize haber verin.

(Devamı Var)

ranları var. Bu bonus ekranlarını Üzerinde “İN” yazan sütun-'

lardan tanıyabilirsiniz. Çoğu bu tip oyunda olduğu gibi bölümler arasındaki ufak değişiklikler ve grafiklerden başka fazla önemli bir şey yok. Bunun için ben size bölüm sonu canavarı ile ilgili birkaç ipucu vereceğim. İlk önce birinci kademedeki büyük kafatasın-:

dan bahsedeyim. Bu bir bölüm sonu canavarı değil. Bunu kolayca geçebilmek için tırmandığınız sütunun sol ucundaki platforma atlayın hemen sola gidin ve kurukafayı peşinizden sürükleyin tekrar sağa gittiğinizde o sütundan rahatça yukarı çıkabilirsiniz. Şimdi birinci bölümün bölüm sonu canavarına bir bakalım. O ekrana girdiğinizde üstüste dikilmiş dört taş göreceksiniz. Bu taşlar hemen bir birlerinden ayrılacak ve size doğru gelecektir. Siz hemen sola doğru gidin ve bir tanesi hariç diğerlerini ekran dışı bırakın. Böylelikle tek düşmanla karşı karşıya kalmış oldunuz. Böyle bir tanesiyle Uğraşmak hepsiyle birden uğraşmaktan daha kolaydır sanırım. Diğerini de aynı şekilde öldürdükten sonra ikinci bölüme geçiyor- SUNUZ. İkinci bölüm canavarı ise ilk ejderha. Bunu öldürmenin en kolay yolu ise şu: Normalde canavar hep yüksekte uçuyor. Sadece siz altına gelince alçalıyor. O yüzden siz ekrana gelir gelmez hemen sağa doğru gidin (genelde canavarlar hep sağdan çıkıyor.) Canavarı görünce canavara yaklaşın alçalınca da ateş ederek geri çekilin. Sizin geçebileceğiniz kadar yükselince hemen altından arkasına geçin tekrar alçalınca ve yükselince yanına giderek fakat dikkat kuyruğuna çarpmadan onu alçalttırın ve tekrar ateş edin. Bunu birkaç kere tekkarlayın. Gidip tekrar geri döndüğünde yine bu anlattıklarımı yapın ve ikinci bölümü bitirin. Üçüncü bölümün son canavarı çift kılıçlı bir şövalye. Bu şövalyeyi geçmek bayağı zor fakat kolaylık olsun diye iki köşeye konulan tümsekler yardımıyla üstünden atlayabilirsiniz. Yalnız dikkat etmeniz geteken nokta kılıçla saldırdığı gibi ateş de etmesi, onlardan kaçmayı unutmayın Dördüncü bölümde bu sefer ejderha var. Onu da aynı şekilde geçebilirsiniz.

Beşinci bölümde yine çift kıliçlı şövalye var. Oyun boyun- Ca en çok burada zorlanacağınız kanısındayım. Çünkü hem bunun enerjisi daha fazde üzerine çıkacağınız tümsek daha ufak olduğundan enerjiniz kolay kolay yet- Miyor Evet, altıncı ve son bölüme geldik buradaki canavar ise üçüncü ejderha. Bunu da daha önce anlattığım şekilde geçebilirsiniz. Oyunun ekran dizilişine gelince sol üstde sıkor, altında haklar, onun da aitında za-

A.M.C.

İ mparatorun karşısında bayılmamak için zor duruyordu. Ama gerçeği söylemeliydi. Ulu imparatorumuz. Üzüntüyle söylüyorum ki tüm savunma birliklerimiz imha edildi Düşman yaratıklar gezegenimizin her yerini işgal ettiler. Öleceğini bilse bu kadar kor- Mazdı. Sinirden fırlayan imparator şatonun tüm sütunlarını kıracakmış gibi bağırdı.- Hayır! Binlerce asırlık gezegeni- Mizi yok edemezler! Tanrıların efsanesi bir çırpıda yıkılamaz!

Hüseyin Yeşilbaş

Bunun bir çaresi olmalı. Kurtuluşun çaresini ben biliyorum galiba. Eğer barışçıl bir gezegeni kurtarmak istiyorsanız hemen bu oyunu alın. Joystick'ğiniz sağlam ise savaşa hazır olun. Güzel grafik ve müzikler sizi bekliyor. Oyunumuz genel açıdan BEAST'e benziyor. BEAST kadar kaliteli olmasa da zaman geçirmek için oyun oynayanlar için uygun bir action oyunu. oyunumuUzda durmadan sağa doğru ilerleyip karşımıza çıkan bütün düşman yoketmeliyiz. Tipik bir blast'em up. Türünün iyi örneklerinden diyebiliriz. Düşman yaratıkları bazen çok hızlı saldırıyorlar. Hareketli yaratıkların yanı sıra birde sabit düşmanlar, insan yiyen bitkiler var. Bu bitkileri zıplayarak geçebilirsiniz. Boşluklara düş-

Man ve en altta enerji (ilk üç tanesi sizin diğer altı tanesi canavarın) var. Sağ tarafta ise en sağda topuzunuzun gücü altında topladığınız sıvı miktarı. Onun solunda anahtar sayısı, altında elinizdeki para miktarı ve en üstte zırhın gücü, Uzun ve zorlu bir savaştan sonra sizi harika bir son ekran ve bir kutlama mesajı görülüyor. Fakat son ekran grafiğinin görülmeye değer olduğunu bir kez daha söyleyeyim Bence oyunun en kötü yanı son ekran canavarının tek düzeliği. Fakat bu bile oyundan pek bir şey almamış,

Oyunun Değerlendirmesi (Commodore 64)

GRAFİK : 7 SES "3 ZORLUK : 7 KURGU : 6 GENEL : 6 memeye bakın. Oyun esnasında gökyüzünden cephane sandığı düşüyor. Eğer bu sandığı vurursanız extra silahlara sahip olabilirsiniz. Hareketli platformları da unutmamak gerekiyor. Yavaş ve emin adımlarla ilerlemenizi tavsiye ederim. en son kademedeki dev uzay gemisi çok iyi canlandırılmış.

Oyunumuzu yapan firma ise Dinamic. ASTRO MARINE CORPS tipik oyunları FREDDY HARDEST ve AFTER THE WAR'a benziyor. Action sevenlerin hoşuna gideceğinden eminim. Oyunu bitirince ikinci disketi istediğini belirtmek isterim Tüm aramalarıma rağmen ikinci disketini bulamadım Ümit ederimki ikinci disketi de ülkemize gelir. Başarılar.

Oyunun Değerlendirmesi DINAMIC/AMISA 512K

GRAFİK : 8 SES 7 ZORLUK : 9 KURGU : 6 GENEL : 7 eavy Metal'ciler hemen heyecanlanmayın! Bu oyun sizin düşündüğünüz gibi Müzikle ilgili bir oyun değil. Bu hem simulasyoncuların hem de arcedecilerin seveceği bir oyun. Ama bu Heavy Metal dinleyicilerinin oyunu sevmeyecekleri anlamına gelmez. Çünkü bizde Heavy Metal dinliyoruz. Sonuç olarak oyunumuz bir tank simulasyonu. Simulasyon dedik ama oyunumuz tam bir simulasyon degil içine biraz da arceda ka- Tışmış. 1- M.B.T.— Main Battle Tank Defence Anti Tank 3- FA.V, Attack Vehicle İlk bölüm hariç diğer iki bölüm tam bir arcade sayılabi-

MODERN LAND COME

Uğur Özyılmazel & Mehmet Oğuz Gölge lir. bu yüzden de oyun için arcade karışmış demek belki bihata oldu galiba. Arcade'in içine simulasyon karışmış demek daha doğru olur. Oyuna gelince ilk ekranda size iki seçenek verilmiş bunlar; Play te game ve Demostration. Demostration'ı seçtiğinizde karşınıza beş seçenek çıkıyor:

1- Defence Anti-Tank (M1 13A2) —Fast Attack Vehicle (XR311) 3- M.B.T. Baatle Tank 4- Command Cenire 5- EXİT İlk üç seçenekte biraz sonra göreceğimiz bölümlerin bir demosunu izleyebilirsiniz. T.A.C.C'da ise savaşın haritada gelişimini izleyebilirsiniz. Ayrıca burada (SPACE) tuşuna basarsanız direk olarak oyuna geçebilirsiniz. Diğer seçenek olan Play the game ile ekrandiki tank hareket eder ve oyuna geçersiniz. Karşınıza çıkan dosyada; New Name (yeni isim), Delete Na- Me (İsim silme) ve Cancel (İptal) seçenekleri çıkar. New Name ile isminizi yaza- Tak dosyaya Save (kayıt) edebilirsiniz. oyunu oynamaya başlamadan önce disketinizin PROTECT'ini (koaçmayı sakın İhmal etmeyin. Daha sonra çıkan ekranda ise hangi bölümü seçeceğiniz belirliyorsunuz. Buradaki seçenekler: (4) - MBT - Main Battle Tank : Simulasyona en çok benzeyen bölüm bu seçenek. Burada tankın içindeyiz ve dışarıda bulunan düşmanlarla (tank, roketatar, uçak ve barikatların arasında saldıran askerlerle) savaşıyoruz. Oyunda bir düşmanı vurabilmek için, yukarıda bulunan hedef göstergesinin solundaki değerle (sayıyla) sağındaki değeri aynı yapıp. hedef göstergenizi joysticik yardımıyla sağa sola iterek, vuracağınız cis- Min üzerine getirip ateş tuşan basmanız gerekir. Sayı değerlerini ayarlamak için joysticik'i yukarı aşağı itmeniz gerekiyor. (Bu sayı, joystick yukarı itilince küçülür, aşağı itilince büyür.) Oyundaki diğer tuşlar ise; 4-4 tuşları: Tankın hizini ayarlamak için kullanılır. (Hız değgerleri 18mhz ile 72mhz arasındadır.) SPACE TUŞU: Hızlı sıfırlar. FA FS - FS tuşları: Silah değişimi için kullanılır. (2) - AD.A.T- Air Defence Anti-Tank: Burada bir uçaksavar ve tanksavarı kullanıyoruz. Amacımız bize ateş eden uçakları ve tankları, bizi vurfırsat vermeden yok etmek. Uçakları vurmak için, hem tanksavarınızı hem de hefe göstergenizi kullanabilirsiniz. Hedef göstergeniz, ekrana uçak çıktığı zaman kendiliğinden otomatik olarak hedefe kilitlenir. Burada sizin yapacağınız. SPACE tuşuna basmak olacaktır. Tanksava- TI ise ateş tuşuna basarak kullanabilirsiniz. (8) - FA.V — Fast Attack Vhicle: Hızla giden bir keşif aracındayız. Amacımız karşı-

SOORE mıza çıkan bütün engelleri yok etmek. Bu aşamayı geç- Mek için, fazla yön değiştirmeden süreki ateş etmeniz gerekir. (Sakın joystick'inizin Autofire düğmesini kullanmayın. Çünkü, bu şekilde daha yavaş ateş ediyorsunuz.) Bu bölümleri bitirdikten sonra, yaptığınız score, program tarafından isminizi yazdığınız yere save (kayıt) edilir. Eğer simulasyon * arcade türü oyunlardan hoşlanıyorsanız bu oyunu kaçırmamanızı tavsiye ederiz. Özellikle grafik bakımından çok iyi olan bu oyunla (ilk bölümlerde kullanılan vektör grafikler çok ilginç) hoşça vakit geçireceğinizi umuyoruz. Oyunun Değerlendirilmesi: Commodore 64 GRAFİK : SES ZORLUK KURGU : GENEL