O BLİTERATOI
“Dikkat dikkat herkes sığınaklara girsin. Dünyamız uzaylı yaratıklarca tehdit ediliyor. Onları yok edecek lazer topumuzun 5 önemli parçasını ele geçirdiler. Bu parçaları onlara kullandırmamalıyız. Aksi halde hepimiz yok olacağız.” İşte bu konuşmadan sonra görevinizin ne olduğunu anlamışsınızdır. Uzaylılar gemileriyle dünyayı istila etmeden önce bu 5 parçayı etkisiz hale getirmelisiniz. Ama hemen karamsarlığa kapılıp uzaylıların gemisine nasıl binerim diye düşünmeyin. Çünkü sizi o gemiye ışınlayacak makineyi insanoğlu icat etti. Siz sadece dünyayı kurtarmak için gerekli olan 5 nesneyi imha ettikten sonra gemiyi terk edeceksiniz. İşte göreviniz bu kadar basit(!).. Evet gelelim şimdi oyunun kontrolüne. Eğer space tuşuna basarsanız puanınızı, enerjinizi, silahlarınızı ve dünyanın kurtulması için imha ettiğiniz parçaları görebilirsiniz. Gemiye ışınlandığınız anda sadece tabanca var. Ama gemi haritasından görebileceğiniz gibi tüfek, bazuka ve lazer tabancası almanız mümkün. Ama öncelikle haritada gösterilmiş dünya için gerekli 5 parçayı imha etmeye bakın. Zaten silahlar ve mermiler bu 5 parçanın yolu üzerinde.. Her parçayı yok ettiğinizde ve enerji dolum odasına geldiğinizde oyun durumunuzu kaydetmek isteyip istemediğiniz sorulur. “Y” harfine basıp kaldığınız yeri ölseniz bile “HELP” tuşu ile kaldığınız yerden başlayabilirsiniz. Oyun kumanda bakımından kolaylık altındaki kumanda yardımıyla her hareketi yapmanız (aşağı, yukarı, hareket, ışınlama odasına gitme, zıplama, yuvarlanma, ateş etme ve eşya toplama) ayrıca bulunduğunuz yerden silahınızı istediğiniz yöne çevirip düşmanlarınızı vurup, puanınızı yükseltmeye bakın. 5 parçayı yok edip dünyayı kurtardığınızda kendinizi kurtarmak için gemiden ayrılma süreniz puanınızdan hesaplanıyor. 5 parçayı imha ettiğinizde puanınız yaklaşık 6000'dir. 10 dakika içinden 10 dakikanız kaldığını gösterir. Eğer bu 10 dakika içinde gemiden ayrılmazsanız ölürsünüz. Ama hemen arkasından ekrana çıkan yazıda kurtardığınız ama ne yazık ki kendinizi kurtaramadığınız yazılıyor. Oyunumuz grafik ve ses açısından yalnız değil bazı duvarlar. Gemide ilerlerken karşınıza çıkan lazer ışınları, top arabası gibi nesneleri yerden yuvarlanarak rahatça geçebilirsiniz. Diğer yabancı yaratıklarda ise sadece silahınızı kullanın. Diğer açıklamalarsa YET. Gerçekten çok güzel bir oyun, kolay kolay bırakamayacağınız kadar da sürükleyici. Bu oyunu kaçırmazsanız iyi olur. Kimbilir belki ilerde aynı görev size de düşebilir.
SARKAN
Bu Po aa
t |
TUTT
A a,
A Technically good, but unplayable.
: Düşman ocken iv: Uçan Robot - : Enerji topu : Hava topu D 1 : Dİ : tek 5 biri
top arabası | bazuka mermisi ile : Enerji dolum odası ni LEZİZ : z H Yi ir B * * GELİ E a. eml
HDK
TABLO
©: Bil de > 5 BA
başında dan E: mavi oku
4: işlen Ven
ozer |
: Boğa a'dan 7
Bu sayımızda yayınladığımız ve makina dili editörü ile yazdığınız bu monitor programı dışarıdan para ile satın alacağınız veya bir kitaptan yazabileceğiniz monitorlar kadar iş görebilecek bir programdır. 4K uzunluğunda olup 49152-53247 desimal ($C000 - $CFFF hex.) adreslerine yerleşmektedir. Hafızanın en üstüne yerleşmesinin sebebi, üzerinde çalışacağınız BASIC yada MAKİNA KODU ile yazılmış programlardan uzak kalması içindir. Bununla birlikte, daha ileride açıklanacağı gibi eğer istenirse herhangi bir adrese de taşınabilir. Programın $C000 adresine yerleşmesi sebebiyle herhangi bir Basic Pointer'i değiştirmek gerekmemektedir. Program kendini korumak için önce Pointer'in kendi adresine taşıp taşmadığını kontrol etmekte ve gerekirse Pointer'i daha aşağı bir adrese indirmektedir.
64'ler Mon. programının ayrıntılarına girmeden önce nasıl yazılıp yükleneceğini açıklayacağım. Önce Makina Dili Editörünü yükle ve çalıştır. Program adını 64'ler Mon. şeklinde yaz ve RETURN tuşuna bas. Başlangıç adresi olarak C000 yaz ve RETURN tuşuna bas. Bitiş adresini D000 yaz ve RETURN tuşuna bas. Programı yazdıktan sonra kaydet (Save)
Kaydettiğin programı tekrar yüklemek için:
| — Load"'64'ler Mon.”,8,1 Disket için
Mon.”,1,1 Kaset için
yaz ve RETURN tuşuna bas. Program yüklendikten sonra SYS 49152 yaz ve RETURN tuşuna bas. Ekranda 64'ler Mon. Y mesajı ve bir takım rakamlar göreceksin. Artık monitor çalışmaya hazırdır. 64'ler Mon programı yüklenip SYS 49152 yazıldığında normal ekran yazılım kolaylıklarının yanısıra iki özel fonk-
siyona daha kavuşuruz:
F1: Cursor'ın bulunduğu yerden satır sonuna doğru ekranı siler. F3: Cursor'un bulunduğu yerden başlamak üzere ekranın altına doğru ekranı siler. Komutlar tek bir (alfabetik harf komut karakteri) ve onu takip eden özel değişkenleriyle girilir. Her komutun çeşitli şekilleri ileride ayrıntılı şekilde anlatılmıştır. Kısaltmalar şöyledir: $sss dört rakamlı başlangıç adresi, eeee dört rakamlı bitiş adresi, dddd dört rakamlı gideceği adres, dd iki rakamlı DEVICE değeri (örnek 08 -disk drive-).
ver)
bb iki rakamlı bayt değeri
Herhangi bir komutta kullanılan yukarıdaki sayıların hepsi hexadesimal kabul edilmişlerdir ve $ işareti gerekmemektedir. Fakat desimal sayılarda başına ve sonunda birer nokta konularak da verilebilir. (Örneğin: D 2000 ile D. 8192. birbirlerine eşdeğerdir). Bütün komutlardaki biçim boşlukları da dahil olmak üzere dikkatle korunmalıdır. Her komutu alfabetik olarak ele alıp, çeşitli olanaklarını göstermeye çalışacağım. A ssss - Assembler'i başlatma modu. Program kendiliğinden ekrana > ssss yazıp size her satır için opcode ve operand yazmanıza olanak vermek üzere READY duruma geçer. Hiçbir şey yazılmadan bir satır program Assembly durumundan çıkar. Operand'ı hex veya Desimal girebilmemiz için önüne karakterin ASCII değerinden girersek bir apostrof ('), ekran değerinden girersek bir ünlem (!) koymak yeterli olacaktır. Bir dallanma komutunun (branch instruction) operand'ı işe yukarıdaki bu iki seçeneğin birisiyle belirtilebilir. Bu girilen değer ya tek bayt'lık bir dallanma parçasıdır veya iki bayt'lık kesin (absolut) varış adresidir. Çok kullanışlı komutlardan bir tanesi de 255'e kadar diledi-.
b
ğiniz sayıda NOP veya BRK komutunu, komutun ken-
disinden sonra sadece sayısını belirtmekle girebilirsiniz.
Örneğin NOP 07 yazarak ardarda yedi NOP girebilirsi-
niz.
.A 1800
1800 LDX #03
1802 LDA ##!M
1804 STA. 1024., X
1807 LDA
1809 JSR FFD2
180C NOP 04
1810 DEX
1811 BNE 1802
1813 BEO 01
1815 BRK
1816 RTS
1817
V V V V
C ssss eeee dddd - Bu komut hafızanın ssss-eeee arasında kalan bölümünü dddd adresinden başlamak üzere daha yukarıya doğru karşılaştırarak farklı değerleri içeren adreslerin dökümünü yapar. Stop tuşuyla durur. D - En son referansı verilmiş adresten başlıyarak
Disassembling'e devam eder. D ssss - ssss adresinden başlıyarak hafıza sonuna kadar Disassembling'e devam eder. D ssss eeee - 'ssss' den eeee'ye kadar olan bölümü Disassembling eder. Disassembling sırasında, her satır tek tek görünüp herhangi bir tuşa örneğin SHIFT tuşuna basılıncaya kadar beklemede kalır. STOP tuşuna basılarak Disassembling sona erdirilir. Disassembling süresince JSR, JMP, Absolute ve Zero Page referanslarında, dallanma komutlarında varış adresi takip edilmek istenirse F tuşuna basılması yeterlidir. Eğer komut hafızadaki bir adresten referans almaktaysa örneğin LDA 3D78,X - F tuşu sadece O adresteki değeri verir fakat o adreste herhangi bir JSR, JMP veya dallanma komutu varsa onun akışını izler. R tuşuna basarak bir önceki Follow (izle) komutunun başlangıcına dönebilirsiniz. Follow döngüsü içiçe onaltı kez tekrarlanabilir. Eğer monitor programı geniş NOP yada BRK komut bloklarıyla karşılaşırsa (üç'ten fazla olmak kaydıyla) onların hepsini tek bir satırda birleştirir. Örneğin: .> 201D - 203F NOP E ssss - Komutu size ssss adresinden başlamak üzere hafızaya ASCII kodundan metin yazma olanağı sağlar. ASCII metin ve kontrol karakterleri klavyeden girilir. Ins. Del. tuşu son karakteri siler ve yerine boş bir bayt koyar. Bu konumdan stop tuşuna basarak çıkabilirsiniz. O zaman program size bir sonraki karakterin adresini verir. Böylece sonradan ek yapmak isterseniz hangi adresten başlıyacağını bilirsiniz. F ssss eeee bb bb - Bu komut verilen adres aralığında nitelikleri belirlenmiş 1-7 arası bayt'ın bütün “occurance” larını bulur. Bayt değeri yerine * * yazmakla es geçilebilir. Bayt'lar önüne bir (') apostrof yazarak karakterin ASCII değerinden de girilebilir. F ssss eeee bb bb bb - bb bb bb: Bul komutu bu şekliyle verilen aralığı tarıyarak bayt'ların occurance'larını ikinci aralıktaki bayt'ların occurance'larıyla değiştirir. Birinci komutta olduğu gibi * * ile es geçilmiş bayt'ın hafızadaki esas değeri değişmeden kalır. Not: Bütün MATCH'lerin adresleri ekrana dökülür. Birden fazla occurance varsa BUL komutu STOP tuşuyla zamanından önce kesilebilir. Örneğin: F 1000 17FF A9 18 20 * * 18 - ** ** * 19 Bu komut 18. sayfadaki bütün A9 18 dizilimleri bularak (yani LDA N JSR dizilimi) onları aynı sırayı koruyarak fakat A9 40 şeklinde (yani LDA N JMP biçimiyle) 19. sayfaya yerleştirir. G ssss - ssss adresinden makina kodunu çalıştırmaya başlar. G - Program Counter belirdiği adresten makina kodunu çalıştırmaya başlar. 64'ler mon.'a geçildiğinde IRQ, NMI vektörlerini, program counter'ı, Stack Pointer'ı, Accumulator'u, X, Y, ve Status'u muhafaza eder. G komutuna girildiğinde bütün bu yukardaki register'ları yerlerine koyar, ve belirtilen adresten Makina kodunu başlatır. Otomatik olarak da 64'ler mon. NMIV'i kendini gösterecek şekilde ve RESTORE'a basıldığında programı yarıda keserek tekrar 64'ler mon.'a döner. GN ssss ve GN: İkisi de yukardaki komut gibidir. Ne var ki bir makina kodu işlemesi sırasında BRK ile karşılaşıldığında bilgisayar kendiliğinden 64'ler mon.'a döner. Böylece bir programın hatalarını Check ederken rutin aralarına BRK yerleştirerek işinizi kolaylaştırabilirsiniz. H - Ondalıklı sayı n'nin heksadesimal değerini verir. Örneğin: .H 326 0146 | bb ssss eeee - Hafızanın ssss eeee adresleri arasında kalan değerleri bb değeri kadar arttırır. Heksadesimal bir değeri FF kadar arttırmak elbette bir eksiltme etkisi yapar. J ssss ya da J yada JN ssss JN - G gibidir. Farkı RTS ile biten subroutine içeren Stack'a 64'ler mon.'a dönmesi için bir return adresi yerleştirir. K - VIC chip'ini reset ederek tekrar orjinal değerlerini almasını sağlar. Ayrıca SID chip'inin tüm ses kanal anahtarlarını kapalı (off) duruma getirir. Görüldüğü gibi çok kullanışlı bir komuttur. Bir programı BRK yada RESTORE komutuyla kırdığınızda ve tanımlanabilir karakterler, HI-RES, ekran ve ses kaybolduğunda bu komutu kullanabilirsiniz. L - Herhangi bir programı teypten yükler. L “TEST” -(” ”) içinde adı yazılan programı teypten yükler. L “TEST 2” dd - Adı yazılan programı 01 durumunda teypten, dd- 08 durumunda da disketten yükler. L “TEST 3” dd ssss - öteleme (yeniden yerleştirilmiş yükleme) Adı yazılan programı normalde varış adresi ne olursa olsun ssss adresinden başlamak üzere yükler. M ssss - Hafızanın 8 bayt'ını ssss adresinden itibaren ekrana çıkarır: M ssss eeee - ssss'den eeee'ye kadar olan bayt'ları ekrana döker. Döküm herhangi bir tuşa basılarak yavaşlatılabilir. RUN/STOP'a basarak durdurulabilir. Bayt'ların ASCII karşılıkları ekranın sağ tarafına dökülür. Karşılığı olmayanlar ise bir nokta şeklinde belirir. Herhangi bir bayt normal ekran yazım yollarıyla değeri değiştirilerek, istenen değişiklik yapılabilir. N ssss eeee dddd - Yeniden yerleştirme. Dışardan ne kadar karışık görünürse görünsün büyük kolaylıklar getiren kullanımı rahat bir komuttur. Bu komut size bir programı yeni bir adrese yerleştirme olanağı verir ve hafızanın başka bir bölgesinde tüm referansları değiştirerek yeniden uygulama olanağı sağlar. Program tüm JSR, JMP, Absolute, Zero Page ve Branch (dallanma) referanslarını yeniden yerleştirir. Hatta bir dallanma referansı hafıza sınırı dışına taşarsa yada bir Zero Page referansı Absolute adres olursa, program bu durumu belirtir. Değişen her referans önce ekrana yansıyacak ve siz herhangi bir tuşa basıncaya kadar bekliyecektir. Yeniden yerleştirilen programın taranması sırasında rutin (döngü) geçersiz hale gelen bir opcode'a rastlarsa o bayt'ın adresini ve değerini verip sizin bir tuşa basmanızı bekler. Böyle yapmasının nedenine gelince program bazı dataları özgün referans kabul edip, istemiyerek data listesinde değişiklik yapabilir.
Komutun değişkenliklerine gelince ilk ssss - eeee adres aralığını ikinci ssss - eeee aralığına taşımak istediğinizde, önce ikinci dilimdekilere dddd başlamak üzere yukarıya taşır, sonra ilk dilimi ikinci aralığa yerleştirir.
Komutun kullanılımını göstermek için 64'ler mon.'u hafızanın başka bir bölümüne Normal durumda 64'ler mon. $C000 - $CFFF daha ilerde anlatacağımız TAŞIMA komutu ile önce doğru bölüme yerleştirmemiz gerekir. T C000 CFFF 6000 64'ler mon.'un son üç sayfası 3 x 256 bayt, sadece DATA'dan oluştuğundan sadece ilk on üç sayfayı taşıyacağınız bölmeye yerleştirmek kafidir. N 6000 6D00 C000 CFFF 6000 Bu komut yeni programın 13 sayfasını tarıyarak eski programın referanslarını gerektiği gibi değiştirmektedir. Bir başka örnek bu komutun normal kullanımını iyice açıklamaya yardımcı olacaktır. adresleri arasında bir programınız olduğunu ve $1300 adresine 16 bayt yerleştirmek istediğimizi düşünelim. Bu son 256 bayt'ın hafızada daha ileriye kaydırılması demektir. Bunu şöyle yapabiliriz; N 1000 13FF 1300 13FF 1310 T 1300 13FF 1310 y Değiştirmek istediği her referansı ekrana dökmesi, hafızanın herhangi bir bölgesindeki referanslara bakmak için 64'ler mon.'u kullanabileceğinizi gösterir. Örneğin 0 ve 1 deki herhangi bir referansı bulmak için aşağıdaki komutu yazmak yetecektir: N ssss eeee 0000 0001 0000. O - Güvenlik nedeniyle, kontrol 64'ler mon.'a geçtiğinde yada herhangi bir komut onunla birlikte uygulandığında, 64'ler mon. kendiliğinden KERNAL ROM'a bağlanıp INTERRUPT vektörünü, normal INTERRUPT ROUTINE'ine RESET eder. Bununla birlikte, herhangi bir nedenden dolayı, örneğin 64'ler mon.'un içinden çalışan bir müzik programı istenmezse O komutuyla korumayı sağlıyabilirsiniz. Aç-Kapa (On, Off) anahtarı gibi çalışır. P sayacının belirteceği adresten başlamak üzere bir programı işleme koyar. P ssss - Bir programı ssss adresinden itibaren işleme koyar. Bu komut bir makina kodu programı, 64'ler mon.'dan yavaşlatılmış işleyişini izlemenize olanak verir. Her komut uygulandıkça, önce komutun kendisi ve çeşitli registerlerin o andaki durumları ekrana dökülür. Ve bir tuşa yada SHIFT tuşuna basılıncaya kadar bekler. SHIFT tuşuna bastığınızda program normal hızıyla çalışmaya başlar. Bu komut rutinlerinizdeki hataları ayıklamak için çok iyi bir yol gibi görünmekle birlikte, ayrıca da yeni başlayan biri içinde komutların çeşitli register, bilhassa STATUS REGISTER üzerine etkilerini incelemesine olanak tanıdığı için çok kullanışlıdır. Ayrıca programın işleyişi için hangi tuşlara basmanız gerektiğini de göstermektedir. Eğer bir dallanma komutu
(branch instruction) ekrana dökmekteyse R tuşuna basarken, bu uzun beklemeli LOOP'lar nedeniyle zaman kaybetmenizi önler. İşlem rutini bir JSR komutuyla karşılaştığında çeşitli seçenekler vardır. Subroutine adresi KERNAL ROM'da ise ($F000 - $FFFF) routine kendiliğinden işleme girer; Tabii siz ayrıntılarıyla incelemek için bir tuşa basmadıysanız. Eğer subroutine adresi KERNAL sınırları dışındaysa, program sizin routine'in her komutunun işlemesini istediğinizi varsayar. Eğer bu komutların hızlı akışını sağlamak isterseniz D tuşuna basmanız gerekmektedir. Register'lerin dökümü ve DISASSEMBLING işlemi (programın yürüyüşünü) çok yavaşlatırsa yada printing sırasında iki program birbiriyle karıştırırsa S tuşuna basarak kurtulabilirsiniz. Bu durumda bile program bir tuşa yada SHIFT tuşuna basmanızı bekleyecektir. SHIFT tuşuna basarak akışı hızlandırsanız bile yine de normal makina kodu hızından 500 kez daha yavaş olarak çalışacaktır. Tekrar S tuşuna basarak komutların dökümünü başlatabilirsiniz. C ssss eeee ssss eeee dddd - Bu komut tek bir fark dışında N komutuyla tamı tamına aynı işi yapar. Normal olarak yeniden yerleştirme rutin bulduğu tüm geçersiz opcode'ların dökümünü yapar. Bununla birlikte, bu rutini sadece hafızanın bir bölümündeki referansları bulmak için kullanıyorsanız ve programınızda geniş aralıklarla DATA blokları varsa, tüm geçersiz bayt'ların tek tek bulunması ve ekrana dökümü çok zaman alır. Oysa C komutu sadece bulunduğu referansları yazar. R - Bu komut, Accumulator'un, X register'in, Y register'in, Stack Pointer'in, Program Counter'in, Status Register'in, IRQ vektörünün ve NMI vektörünün bulunduğu durumları ekrana döker. Ayrıca Status Register hangi FLAG'in açılmış olduğunu göstermek için genişletilmiş olarak ekrana dökülür. Dökümü yapılan değerlerin hepsi normal ekran yazım yollarıyla değiştirilebilirler ve yeni değerler G, J yada P komutları kullanıldığında işleme girer. S “Dosya Adı” dd ssss eeee yada S “Dosya Adı” dd ssss eeee bk Bu bir bölümünü diskete yada teybe kaydetmenize olanak sağlar. Bölüm sonu adresi (eeee) kaydedilecek son bayt'tan bir fazla yazılmalıdır. İkinci kayıt seçeneği ise sıfırdan farklı durumlarda kullanabilmeniz içindir. İkinci adres BASIC içinde geçerlidir. T ssss eeee dddd - Hafızanın ssss - eeee adresleri arasında kalan bölümünü dddd'den başlamak üzere başka bir adrese taşır. U b... -Birden dörde kadar rakamlı hexadesimal sayıyı ondalıklı sayıya çevirir. V yada V “Dosya Adı” yada V “Dosya Adı” dd yada V “Dosya Adı” dd ssss - Bir programı VERIFY eder. Load'daki seçenekler gibidir. W bb ssss eeee - Hafızanın bu adresleri arasında bildireceğiniz bir bayt'ı yazar (hafızaya doldurur). X - BASIC'e geri döndürür. 1 - Bu komut sırasıyla DISASSEMBLING ettiğiniz programı yada hafızayı ekran yerine PRINTER'daki kağıda döker. Komut kapatma düğmesi gibi (On-Off) çalışır. İkinci kez bastığınızda normal hale yani ekrana döküm yapmaya başlar. Bu rutin PRINTER DEVICE sayısının dört ve ikinci adresinin de bir olduğunu varsayar. PROGRAM : MON Bununla birlikte, sizin PRINTER'iniz bu komutlara uymuyorsa $CCE6 adresindeki LDX #04 ve $CCF7 adresindeki LDY #01 komutlarını PRINTER'ınızın DEVICE sayısına ve ikinci adresine uygun olarak değiştirmeniz gerekir. Örneğin: 1520 PRINTER/PLOTTER kullanıyorsanız LDX #06 ve LDY #00 şeklinde bir değişiklik
08 48 BA 48 98 dö AZ OE dü
A0 EZ 20 BÜ Üs AD 50 Co
BD 16 OZ AE 5D CO GE öz
03 E4 38 BO ÖD E? ZF BO
yapmalısınız. Coz0 : Ol CA 85 37 BE S3 Bö 38
2028 : Be 34 AZ OZ BE 56 ÖZ 20 AD
iş Tecrübeli programcılar için de birkaç söz ederek yazımızı bitirelim. 64'ler mon., BASIC ROM'dan tamamiyle bağımsız olduğu için BASIC ROM'u gözardı edebilirsiniz ama BASIC ROM iptal edildikten sonra da 64'ler mon.'dan çıkış yapmaya kalkmayın. 64'ler mon. tüm komutları için ZERO PAGE adreslerini yoğun bir şekilde kullanmaktadır, bu nedenle sayacağımız aşağıdaki adresler programlarınızda tarafınızdan kullanılmaması gerekmektedir:
AZ 1F 68 AB â8 AR
68 20 C5 Ci 68 85 ZA 68 Bo
38 ES 1F 8D 50 OZ E? öf
00 BD Si OZ BA Bö 20 50
69 Ci 20 ZE AP 15 85 EZ
BE DO 24 40 CO A? ZA DA
85 19 A9 00 BE 1A AZ SA
rekmektedir: A5 SA CF? OZ DO FF AD 75 Ş19-Ş20, Ş26-Ş2A, ŞAB-ŞAA, — CÜZÜ BD DO Fd AS FO Fİ 09? ŞBO-ŞB1 ve Ş0240-Ş0256 Co78 20 ZE Fi C9 OZ DO EŞ Ağ IF İyi çalışmalar, bol programlı günler 00 BE 85 A? BE AB Dr. Ali Özçelik ga YA 20 EF CE 78 AZ Ol 78 Doso BD Ca 9D BF 02 CA 10 ©B F7 A5 BER CF OZ Bö iZ 9
09 Od AA Bö Câ AF 17
1D 9D 76 OZ CA DO FA Bö 9ü
BR 58 20 BB CO dü 7F Dü 74
/20 ES FO C2 2E Fo EF
Not: Assembler dilinde satırın amacı, yapılacak işlemi (komut) belirtmek ve bu komutun yerine gelmesi için gerekli DATA ve ADRES'i belirtmektir. Komut kısmına “operatör” DATA veya adres kısmına ise
“'operand”” denir. CoCo : F7 C? 20 FO FE 78 AZ 48 E0
Device 1- kaset CoCce : A0 EB BC 90 OZ BE SBF OZ GA
Device 24 Modem CoDO : 58 C9 43 90 OA CD CO CE 90
Device 3—- Ekran : BO OS E9 3D AA DO ÖZ AZ BE
Device Printer COBO : 04 DD OD CD DO 24 Ge BE ZF
Device 8-11— Disk (veri) COEB : BA AA BD CE öD 5SC SF
Divice 15— Disk (komut) * COFO : CO AB ED ÖR CE AA 29 BE
CoOFB : 6D 5D 48 98 48 BA 10 â3
C4 20 EA Ül 40 Z2ü
» BE Ci CA 10 D4 EB Ba 17 0?
Cii0 * AA A? O? BS JA AC OZ A? BÜ
C118 : 18 Dİ 19 DO 68 CE 27
: Bö 10 Fe BA 20 37 Ci E& “50
€128 : AŞ JA CP? DO 90 AF S5
C130 3F 20 SF CE 4€ 7F Tü 60 Gü
Ci38 : 19. 00 78 AE FE Ca AC FF
: 24 BB 10 Od AE SA ÖZ 28
CidB : AC 55 OZ SE 18 03 Bü 19 EF
C150 1-035 AE 52 02 AC 53 02 BE CA
: 14 OZ BC 15 OZ Ad 03
: 29 (AS BD 8D 00 DÜ AS ZA
AB 18 05 AC 19 05 EL FF
FE DO 05 FF Ca
BE 5d OE BE 55 05 Ez
14 8D 02 AD 15 OZ AB
C1B8 BD 53 OZ 7B AZ 47 A0 FE 55
BE 18 05 BC 19 OZ AZ FF Bİ
BE 07 DC EB SE 05 DC 20
Sa OZ 30
1C1DO
İC1EB
İCEZB
Case
CACE
İZEEÖ
CREB
CZ00
OD
BD
ÖE
Çele)
A5
OZ
DC
FC
DC
B4
DC
ES
A4
60
iA
19
OZ
OC
c3
Do
197
50
Öğ
20
3 BA
Fo
AS
KANİ
40
ZE
Ü6
G0
9D
E8
ÇO
20
AC
DO
68
â4E
E4
48
48
00
68
06
5:3
AF?
AA
20
8D
AF
58
29
85
197
A8
5
AD
8D
60
Bİ
20
iD
A5
60
BD
Oz
KALI
A0
KALI
88
FA
SD
19
E8
b)
Fo
Da
Fo
Sü
EB
DÜ
ES
GÜ
EE
ÖD
D8
08
8D
B5
Fo
Oz
Si
KAKA
iş
27
DO
iş
A0
Si
20
FE
08
OZ
DO
68 ZO
DO
20
B7
DD
8D
OD
BE
60
DÜ
27
Za
38
10
AB
95
LA
-
OZ
DO
oz
B&D
AD
AS
EŞ
05
19
ÖZ
60
BD
OB
20
Eb
iA
20
EB
AA
E5
30
15
70
1E
DA
Ü6
01
05
46
80
6D
ip
79
1B
96
EF
SA
Fo
3F
20
FA
ES
İCZFO İz400 lc41o ic418 C4zo İcazo 0448 10450 (0458 10460 ic478 ic48o jc478 İc4Do 16508 10520 İc530 10538 İc5s4o lics4g İcsso icC558
İz400 lc41o ic418 C4zo İcazo 0448 10450 (0458 10460 ic478 ic48o jc478
Jc4Cco
15
20
F4
56
C4
ED
&D
Ci
Fs
D4
04
OZ
OZ
O7
Bo
DO
Üs
20
i0
ki
AF
CE
A9?
04
04
10
68
Fo
ZE
57
EŞ
40
Bâ
e”
20
E8
2020
08
DO
FO
20
20
50
AZ
4Ü
15
Co
85
40
8D
8D
8D
20
AZ
40
BD
Oz
20
Eli
05
00
FF
Fo
A9
OE
2
c9
A0
F?
A0
Ce
Cz
AŞ?
BA
FO
DD
Fo
DO
6D
DO
ŞE
1.7
EA
Fs
30
2F
DO
AA
20
61
OB
88
OO
DD
04
BÜ
56
AO
DD
OZ
85
AZ
85
06
Çele)
85
01
EA
ÖZ
48
Ül
20
Ab
AM
EŞ
SO
AŞ
Ad
Bi
BO
65
BO
2F
AŞ
OZ
zo
F7
Dz
Co
ED
AE
E&
AS
F8
F7
40
29
OZ
FO
EZ
04
20
ca
D4
Oz
DD
FD
DO
Cb
OZ
F4
CZ
AĞ
20
Bi
Bi
1B
20
85
BE
DO
DO
Di
AZ
20
zle)
iF.
BE
C9
4D EŞ
AŞ OO
48
18
B5
20
20
00 20
B5 B?
ES“ CE
rağ ra
9D 40
85 BA
EB9 AS
BA
Bo 13
08 A2
61 Ü4
BF DO
AZ SE
A0 AB
Co A0
Fo
90 05
5D Cz
A9 OO
8D 12
AD
A? ÖE
20 AC
04 AÖO
AD Sa
30 04
AZ 04
A0 OO
OZ 20
6D CZ
20 6D
99
85 10
E4 C4
20 20
20 A0
45 09
20 A4
2D 20
27'C2
CA Ab
io F?
FO
95
FD
Fo
DO
Fo
OZ
Fo
20
OB
20
Öl
20
SE
A0
20
95
OC
40
8D
D4
DD
8D
ES
33
AO
40
FO:
DD
EĞ
CZ
OO
20
20
CÜ
DO
A9
i6
45
Dİ
ı1F
CC
A2
KABI
AZ
Fo
04
ES
Fo
AF
BE
So
AA
F3
20
20
2F
ED
AF
09
Bö
A0
AZ
45
FO
BÜ
OB
C3
AA
9g
60
E5
GE
CA
DO
Fo
30
Bg
20
20
ZA
Ek 20 Tm
ONNO
AA m m TMM
L
20 45 CZ A9 08 BE BE BE
6D CE-20 10 CE 20 003. on DO
BE 10 FS AZ AS FO Ol 94 Bö BE BR 40
“60 20 DE Ci BO OD 28 40 DÜ eğ
FO Fe A7 S5 AB 20 74 EO DÜ
Co DU OZ 20074 DO G7
C59E bo 14 AS 20 FO FE FA
AZ OZ 68 95 19 CA 10
KERE GA 1D 05 09 do
DO FS A5 20 10
SÖKE
20 DE CC G9 OLUFO
DE CA ağ CE Es 420 AS
19 3B FS CE
ÖZ Üs CO
EB EO 04 DO Fö As FF 85
1B 85 16 Cad 15 DO OR A5
1D B5 19 AS 1E Bö 1A 40
ge İF AĞ Ol Bi 19
45 CB Bİ lâ
197 BD 85
üş 40 Fo
AĞ OO AZ
li1A ZO OB
46 Fo Fe
CC 41
15
co dö 98
DA SO BÜ
ORA DO 5E dü Bö
Cb Z0 AB >
1: Ol Bi 19 s0
Co70 2D 20-45 As BB El ÜS
"5 Fen mz
Co7B : 04 dü 25 197 ka
Doğü ÖZ 48 AŞ CE? BO 2D
AB AZ 03 S5
iE 20 AB ÜS Bİ
(BE z
a5 1D DO ÖZ
: DO OZ Ce 1E Ce
1B DO Os A5 1Ü Fü
Zedd Ol
Ce
GA Bİ
AB
ca Do Fa
AM Gö 68 BF
AŞ AF 20141
ge eu ge” eti an .. a s6 sx gü ge az an
en” ee sa gü en s7 en
ye ae ze a8 “se Jan su en ge
C&DU * Bö Da,
CebB : DO 18
20 FF EŞ CA Di
CORE: EŞ A4 DE AT
1 DE 90
CoFB : BS ÜR dü 46
48 Ba dB
C708 3 ZO
© ri
3
zo a0 cü Dü an fi
dü ZF Co 00 FO FS
183 65 19 Bö
69 00 Bö 16 BA
Ez va da |
Bİ 17 G0 G8 10 FE
CoBE
CaoBğ
CALO
CA18
CAZO
CAZB
CAZB
CAd8
CABO
ÇASC
CASE
CAZO
CABO
DAPE
CABO
CABB
CACO
ÇADO
CADE
CAES
CAFO
CB10
CB18
be Vek (ae a m sü a8 ee) 06 an vk Vak Yan ga S8 an ax sz an .. — <- .. iz “ “ an UR “eu ani vu (ce ERİ Se” cemi Ga su “ge Ge an se se
EZ
88
OZ
10
dü
DO
243
Bo
AZ
1€
AS
DD
B4
A
ÖD
CZ
1F
bo 2
DO
DE
Cb
CE
40
ba
BD
AF
97
ÖĞ
Fo
19
85
A5
19
Fo
DD
OO
Be
OZ
10
Fo
2F
dö
CE
6D
51
Si
06
dB
20
20
dü
85
15
26
19
AS
60
05
DO
20
18
ZA
vere)
DD
CE
DE
AŞ
ZF
FO
4Ü
BL?
85
BA
CA
9D
20
60
GÜ
OZ
Fü
Es
SO
do
Ca
OO
Fo
AS
AZ
20
28
DO
İZİNİ
DD
Fo
Dİ
BE
10
85
Bi
aş vE
iGO
ÖZ
A5
ZA
OZ
*
KAR
20
iAÂ
C3
DO
CA
Ö7
CD
Fo
20
ZO
BÜ
Fo
13
BÜ
E4
CA
DO
ET
85
20
10
20
ZA
CA
CC
AO
CE
Fo
zo
DO
ZF
DD
20
F3
20.
85
BD
ÖE
18
DD,
E8
45
20
ce 2
âü
DD
Dö
Fa
OZ
20
59
20
Cz
ES
Cd
(39
A
Ea
Fo
19
20
DO
10
B5
AD
85
31
iğ
AS
KA
AŞ
SE
Cz
DD
A?
19
Ab
B5
27
AO
B4
DD
CA
20
OE
ÖF
SE
ib
Kizi
ÜR
4B
DE
40
bA
EŞ
AB
7D
On
DÜ
04
25
Fa
26
Dö
E4
EB
ıB
4B
AZ
14
EL
D7
BE
FE
AE
18
3D
A7
SE
BB
FC
DE
SE
öc
DB
ÜBEB
CEZO
CB78
CEBE
CBAC
CRAB
CERBO
CEBE
CBCÜ
CBCE
ÜBRDO
CBDE
CBEO
CÜBEB
Va
CCs8
CC78
Cüsü
CCAB
CCBO
CCDE
DCEO
ÜCEB
CCFO
CÜF8
DOO
dedı
ve Cen Can” ea (ee sa Ven “aa ee Bu Ver sa at sa aa se cen se gt se Var ge Cas se
(6 #e gu vü ge sa Se se Be ga S7 sa OE za RE ga Ge sa pu mü ön S0 ge #8 az a8 se ga er za
FO
FO
1b
BA
EĞ
DE
O4
CÜ
BO
BO
iB
ES
45
OO
197
A5
KALI
ES
Cd
BE
AO
DD
60
A5
DO
NASI
ÇA
E4
Oil
45
BÜ
AS
B4
di
ED
ZO
bü
BÜ
i0
30
BO
45
AŞ
15
a2
EO
âÜ0
Öd
15
iz
71
19
18
C8
08
05
CE
65
dü
AA
DO
1D
1E
20
AA
OO
B5
bÜ
LA
61)
Cd
AB
YA
AŞ
04
SAK
BÜ
a5
20
27
10
AD
45
EF
AS
AS
20
Oi
Ö1
AT?
24
45
17
Ü5
45
20
40
EC
20
28
dö
&7
Oi
20
20
C5
AS
60
20
Bİ
CE
38
E&
BA
dü
DO
AŞ
FD
Üğ
Bo
AŞ
DO
ÖE
ES
48
OZ
30
ED
AĞ
AB
BE
DO
iÖ
FG
Bi
45
AÖO
Bö
20 7
19
ED
AZ
Ci
BA
Bü
dâ
CÜ
İd
EB
74
45
47
ZO
47
197
Fo
DE
hd)
OO
1E
Cd
Ba
Oi
DO
07
zo
AZ
CÜ
17
Ol
A9
Öl
BO
Öl
Co
A5
C5
19
20
04
ÜC
BO
55
ED
De
20
iş
20
BE
Biz
20
20
*
DO
sis
20
1E
ge
1D
1D
co
19
DO
A4
20
iğ
Eğ
ca 3
Oil
71
40
1E
1D
56
4Ü
CA
ARA
19
10
BY
4A
5D
91
FE
EZ
Sar
Do
AO
Fü
CO
A5
2
gi
DO
90
03
1D
20
78
Dİ
Gü
38
EC
5D
A8
AD
Fo
BO
DO
28
Oi
ES
Bö
19 56
E5
A5
47
Bo
DO
68
B5
E&
Oz
B4
29
AZ
Hes)
Fz
AŞ
BO
te
ZO
CÜ
dA
AT?
LF
Fb
Eö
1D
1D
Câ
ÇE
OF
Od
20
E4
41
BR cDao | cosa CDAB Ge CD CDDE
cDao | cosa CDAB Ge
CECB
be VE DO
ve #8 sa Cen sz .. a
a «. gr sü RE sü Sn ax su su
aa gz ar st az sz
an Rt an sü ge az m
an za şa st gu sr ax ge en et sn Sü an gn ga aa ..
an sa ze #8 ga ar
Ber 20
21
2D 2
3D 3
df
58
75
Şi
AA
Bö
Ci
DO
51
5b
BA
KA)
A4
AE
BA
Di
Lİ
35
45
60
6D
7D
Bü
A5
BO
BÜ
c8
DE
ama
YE
Dö
Dez
55
65
za
Bi
BE
SA
AB
B4
BE
Câa
D8
A9
DO
ce
DE
Faber
OF
ey
Öğ
6D
61
CB
E7
3
48
AC
15
Eğ
Ab
var
CF
Ta
F4
A0
Him
E7
AZ
OC
KE
Öz
GE
GEL”
ZU
CF Ga
yar
CFAB
CF BE
CFCE
CFDE
CEFE
EŞE
Fb
HD
A0
AF
EE
FE 5
AC
A0
AC 3D
AF
ŞA
ŞE ZE
g4 97 91 DE Gİ
A1 Dü dör Si 77 S1
6D
55 95 BEİ 67 Ba
or 55 95 8
32 Ol BC 95 SB BE
Ba
16 la ZA BE BL 55
45 65 76 AL ZE
84 67 la
15 55 55 Bo 33 78
BE
e Ol
ZA
©7
B4
95
85
bö
©
Sf
Çok uzun zaman önce Craggamc or halkı huzur içinde hayatın sürdürüyordu. Ama bu günler ülkeye kötü kalpli birb yücününgelmesiyle' yerini kara) lık bir geleceğe bıraktı. | Çünkü ülkenin güzel kraliçes Heroine kötü kalpli büyücü tara fından kaçırılmış ve şatosuna hapsedilmiştir. Bunu! üzerine Kral Hera hemen hareke te geçer ve yalnız başına Krali, € yi kurtarmaya Cragğam şatosuna doğru yola çıkar. |
İşte oyunumuzun mitolojiden alınan konusu bu kadar. Şimdi kendinizi kral Heroine'in yerine koyup hemen silahlarınızı kapın (pardon Joystick'inizi demek istedim). Oyun yüklendiğinde kimi yerlerde joystick'i sağa veya sola iterek cevap verebilirsiniz.
girebiliriz. 1— AT THE CITY'S GATE Bu aşamada karşınıza 4 mızra. lı asker çıkıyor. Bu askerleri b yara almadan öldürmeye çalış: Askerleri öldürdüğünüzde ilacını bulacal sınız. Bu şişe içindeki ilacın rinden geçtiğinizde ilacı alm: olursunuz!:. İlacı Fl tuşuna sarak içtiğinizde ise karşınız ki asker, canavar vVv düşmanlarınız ilacın etkisi, hemen ölürler. Ama ilacı bu aş mada kullanmavın 2 asa
AMIGA EXTRA
saklayın. 1— BETWEEN THE CITY'S WALLS Bu bölümde asma köprüden karşıya geçmeniz gerekiyor. Ama köprünün altından çıkan kazıklar ve karşıdan gelen asker sizi zora sokuyor. Siz sadece alttan çıkan kazıkları geçin ve asker önünüze çıktığında bir önceki aşamada Magic Zapper ilacını içmek için 1'e basın askerin öldüğünü göreceksiniz. Şimdi kazıkları dikkatlice izleyerek karşıya ulaşmaya çalışın. 2— IN THE CITY Bu aşamada önce karşınıza 2 ballı adam ve yerde yuvarlanan varil çıkıyor. Burada varillerin üstünden atlayarak adamları öldürün. Adamlar ölünce yerde power shields (koruma kalkanı) bulacaksınız. İlacı aldığınızda karşınıza dev bir adam çıkıyor. Adamın devamlı beline vurun. Adam sizden alacağı kılıç darbesiyle diz çökecektir. Bu sırada seri vuruşlar yaparak adamın başını kesin. Artık 4. bölüme geçebilirsiniz. 4— IN THE HEART OF THE FOREST Bu bölümde üzerinize doğru zıplayarak gelen 2 şişman adamı öldürünce yerden power shields'ınızı alın şimdi karşınıza 2 dev ejderha çıkacak. Bu iki ejderhaya devamlı kuyruklarına vurun. Ejderhalar enerjileri bittikten sonra donacaklardır. 5— IN THE LAND OF THE DEAD Durun! Durun! Mezardan çıkan etleri görüp uluyan kurtların sesini duyunca hemen korkup kaçmayın. Önce soğukkanlı olun bir yandan üzerinize gelen sislerin üzerinden atlayın bir yandan da mezardan çıkan cesetleri eğilerek kılıcınızla yok edin. Böylelikle buradan kolaylıkla kurtulabilirsiniz. 6— THE FOYER OF THE CASTLE GRAGGAMOOR İşte şatosuna ulaştık. Bu katta geçmeniz gereken tuzak ve tek kollu adam var. Bu 2 tuzak hiç belli olmuyor. Ancak bu tuzağa düştükten sonra onların yerini öğrenebilirsiniz. 1. tuzağı geçtikten sonra tek kollu adamla dövüşüp onu öldürün ve sonra 2. tuzağı geçip şatonun bir üst katına çıkın. 7— DESCEND THE STAIRS Bu katta karşınıza önce 8 dev sinek çıkıyor. Bu sineği öldürün ve yerde duran Magic Zapper ilacını alın. Şimdi karşınıza çok güçlü silahları olan bir adam çıkacak. Biraz önce aldığınız ilacı hemen için ve ölen adamdan kurtularak 8. bölüme ulaşın. 8— IN A PASSAGE DEEP Bu bölümde önce üzerinize doğru gelen lavlardan zıplayarak kurtulun. Biraz sonra yukardan beton bloklar inmeye başlayacak. Burada çok dikkatli olun. Çünkü yerden lavlar gelmeye devam ediyor. Biraz daha ilerleyince bu sefer yerden mızraklar çıkıyor. Burada can vermek istemiyorsanız çok dikkatli olun. Bu mızrakları da geçerken lav dolu bir çukur ve üzerinde hareket eden üç beton blok göreceksiniz. Çok iyi zamanlama yaparak bu üç bloktan karşı yakaya geçin. Şimdi de üzerinize asit damlacıkları damlıyor. Nihayet bunları da geçince bir ejderha başı göreceksiniz. Bu durumda diz çökerek ejderhanın ağzına vurun ejderha başı geri gidecek ve merdivenler ortaya çıkacaktır. İşte 9. bölüme geçtiniz. 9— IN THE CATACOMBS Bu aşamada önce üstünüze gelen 4 sineği öldürün. Sonra ortada dönen dev bir tırtıl göreceksiniz. Koruma kalkanını alıp tırtılı geçin. Yerde bir ilaç bulacaksınız. Bu ilacı alınca dev bir kuşa biniyorsunuz. Kuşa bindikten sonra geriye giderek tırtılı kuşa yedirmeye çalışın, dev kuş tırtılı yedikten sonra zıplama kabiliyetine ulaşıyor. Şimdi durmadan ilerleyin bir ara arkanızdan ve önden birer duvar çıkacak ve içi suyla dolacaktır. Bu durumda joystick'i yukarıya iterek kuşu zıplatın ve boğulmaktan kurtulun. Biraz sonra sular alçalacak ve duvarlar yok olacaktır. Şimdide üzerinize ateş topları geliyor. Bu ateş toplarını da kılıcınızla yok ederek 10. bölüme geçin. 10— THE FOYER OF THE CASTLE GRAGGAMOR Bu bölüm 6. aşamanın aynısı. 11— AT THE TOWER İşte son bölüme ulaştık. Artık büyücüyle hesaplaşmanın sırası geldi. Burada karşınıza önce 8 sinek çıkıyor bu 8 sineği hemen yok edin. Arkasından şişman bir yaratık size devamlı ateş edecek. Bu ateşin üstünden atlayarak yaratığın devamlı eline vurun. Enerjisi bittiğinde yok olduğunu göreceksiniz. Ve işte ülkeye
kötülük sokan büyücüyle karşı karşıyasınız. Hemen koruma kalkanınızı alıp büyücüye seri vuruşlar yapın. Oyunun sonunu zevkle izleyeceğinizden eminim. Eğer büyücüyü öldürmek zor geldiyse RETURN TUŞU'na basmanız onu öldürecektir. Artık Kraliçe Heroine'i kurtardınız. Bundan sonra alkışlar arasında kral Hero ve kraliçe Heroine halkı selamlayacak ve oyun bitecektir... 4 disketlik bu oyun oynamaya değer bir kalitede kaçırmamanızı tavsiye ederim. SERKAN AKDAĞ
Wizball 1987'nin en karışık ve en güzel oyunlarından. Ocean tarafından yazılan Wizball'ın programcıları Jonathan Hare ile Chris Yates. Wizball'da göreviniz yeterli dereceye ulaşıp diğer bölüme geçmek. Wizball'ın background'u diğer uzay oyunlarına benziyor. Siz oyunda tuhaf tuhaf sıçrayan, topsuratlı Wiz'i kontrol ediyorsunuz. Oyun iki kişiyle oynanıyor. Ekranın üzerinde skoru ve en yüksek skor var. Altta da level sayısı. Toplam 24 level var. Wiz değişik uzaklıklara şaşırtıcı bir yaylım ateşi yollayabiliyor. Oyun 2 kişinin 1 kişiye karşı savaşı olabiliyor. Ekranda silahlarınızı değiştirebileceğiniz iconlar da mevcut. Bazen ekrandan bazı objeler düşüyor. Eğer siyah obje düşüyorsa hemen yanına veya yan ekrana geçin, çünkü siyah obje yere değince her taraf siyahlaşıyor. Ve oyun başlıbaşına bir “Impossible Mission” 3 oluyor. Oyundaki başka bir amacınız da ekranın altındaki kazanımsı maddeleri (oyunda ilerledikçe anlayacaksınız) değişik renklerle doldurmak. Grafikler epey güzel, Martin Galway da iyi müzik hazırlamış. Oynayabilirlik çok iyi. Parallax'i sevdiyseniz, bundan hoşlanacaksınız. Zevkle tavsiye ederim. Osman Topçu