C64 için Püf Noktaları

SHIFT tuşunun incelikleri: SHIFT ve SHIFT LOCK tuşlarının kullanımı uzmanlar için çok basit olmakla birlikte yeni başlayanlara karışık gelebilir. Söyleyeceklerimiz anlaşılmalarını çok daha kolay hale getirecek. İlk önce klavyenizdeki en üst sıra tuşlara bir göz atın -1'den 9'a kadar rakamların olduğu sıraya-. Hepsinin üzerinde, 1 rakamının üzerindeki ünlem işareti ya da 4 rakamının üzerindeki dolar işareti gibi ikinci bir işaret olduğuna dikkat edin. Herkes bu ikinci işaretlerin tuşun shift edildiği zamanki fonksiyonunu gösterdiğini bilir, ama pek çok kimse aslında SHIFT tuşunun nasıl çalıştığını bilmiyor. SHIFT tuşu başka bir tuşa da basılana kadar bir iş yapmaz. Onu kullanmanın uygun yolu, ona basıp o basılı durumdayken diğer tuşa basmaktır.

İki tuşa da aynı anda basmak için hiçbir neden yok ama bazı yeni kullanıcılar öyle yapmaya çalışıyor. Bunlar çokluk iki tuşa aynı anda basmaya kalkışırken önce diğer tuşa basıyorlar. Bu hata olasılığı nedeniyle önerim, iki tuşa aynı anda basmaya kalkışmamaktır. Önce SHIFT tuşuna basın. SHIFT tuşu ile birlikte değişen tuşların diğer örnekleri RUN/STOP, INST/DEL ve CLR/HOME tuşlarıdır. Shift edilmedikleri zaman bilgisayarı durdurur, bir karakteri siler ve kursoru yerine götürürler. Shift'le birlikte bir programı çalıştırır, bir karakteri yerleştirir ve ekranı boşaltırlar. Birçok alfabetik tuşların ön yüzlerinde iki değişik grafik karakter bulunur. Sağdaki karakter tuş shift edildiğinde yazılacaktır, tabi klavyenin grafik modunda olması koşulu ile. (Soldaki COMMODORE tuşuna basılarak elde edilir.) SHIFT LOCK tuşu bir aç-kapa düğmesinden başka bir şey değildir. Ona bir kere basmak SHIFT tuşuna sürekli olarak basma etkisini yapar. İkinci kez basıldığında da SHIFT tuşunu kaldırır. Bu tuşu kullanacak olursanız RETURN dahil tüm tuşları shift ettiğini unutmayın. Shift edilmiş RETURN tuşunun shift edilmemişinden çok daha farklı olduğunu aklınızdan çıkarmayın. Her halükârda sağ ve sol SHIFT tuşları aynı işleve sahiptir. Ama bilgisayar hangisine basıldığını ayırt edebilecektir ve ara sıra programcılar bu durumdan yararlanır. Bu nedenle zaman zaman sağ ya da sol tuşu kullanmanızı gerektiren bir programla karşılaşabilirsiniz.

COMMODORE, CTRL ve ALT TUŞLARI İLE İLGİLİ BİLMEK İSTEDİĞİNİZ HER ŞEY COMMODORE tuşunun üzerinde COMMODORE logosu bulunur ve klavyenin sol alt köşesindedir. CTRL tuşu (128'de adı CONTROL'dur) sayı sırasının altındaki sıranın sol ucundadır. Yalnızca 128'de bulunan ALT tuşu sayı sırasının üstündeki ayrı bir tuş grubundadır. Basıldıklarında diğer tuşların etkilerini değiştirmeleri anlamında aynı SHIFT tuşu gibi çalışırlar. Yine SHIFT tuşunda olduğu gibi diğer tuştan önce basılmalıdırlar. Tüm tuşlarda olduğu gibi bu tuşların etkileri de program tarafından kontrol edilebilir. COMMODORE tuşu temel olarak klavye grafikleri ve sayı sırasındaki renk tuşlarıyla kullanılır. Nasıl SHIFT tuşu, tuşun sağ tarafındaki karakteri yazıyorsa o da sol taraftaki karakteri yazar. En üst sıradaki sayı tuşlarının üstüne dikkat edin. Her tuş iki renkte yazılmıştır. COMMODORE basılı tutulurken bu tuşlardan birine basılırsa kursor alttaki renge geçer. Yukarıda sözü edilmeyen tüm tuşlar üzerinde COMMODORE tuşunun etkisi SHIFT ile aynıdır. CTRL ve CONTROL tuşları sayı tuşlarını COMMODORE gibi etkiler, yalnız üst taraftaki renklere göre yazar. (4-8 arasında) 9 ya da 0 ile kullanıldığında RVS moduna geçirir ya da RVS moddan çıkartır. A-Z arasındaki alfabetik tuşlarda, CTRL harfin alfabedeki pozisyonuna eşdeğer bir CHR$ kodu çıkartır. A 1 olur, B 2 olur, vs. ALT, Commodore bilgisayarlarında çok nadir kullanılır. Eğer karşınıza çıkacak olursa ilk önce ona, sonra da diğer tuşa basmayı unutmayın.

ESC TUŞU Yalnızca 128'de bulunan ESC tuşu yukarıda sözünü ettiğimiz diğer tuşlardan farklı çalışır. Diğer tuşlarla birlikte kullanıldığında ona önce basılır sonra da bırakılır. Diğer tuş ya da tuşlara da sonradan basılır. Öbür tuş basılırken ESC basılı tutulmaz. Escape de denilen ESC kendi karakter kodunu gönderir, CHR$(27). Bu kod özellikle printer'larla sık kullanılır. Printer'ı onu izleyecek özel kodlara hazırlar. Başka bir kullanımı da ekran düzenleme komutlarıdır.

DOSYALARIN YERİNİ DEĞİŞTİRMEK Bu program formatlanmış bir disketteki iki programın yerlerini değiştirmeye yarar. Bu, özellikle bir programı directory'deki ilk program olarak koyarak LOAD komutuyla dosya adı olarak bir (*) ile kolayca yüklenmesini sağlayacaktır.

©0100 PRİNT *<CLR><RVSON> DOSYALARIN YERİ
DEGİSTİRMEK * cız7>
00110 OPEN 15.86.15
00120 PRİNT *<DOWN> DISKETİ DOSYALARLA YE
c160>
00130 PRİNT YERLERİNİ
00140 PRİNT TABCLO) İCİN G
<e20>
* 00150 PRİNT “YER İLK DOSYANI
N ADINI GİR NS <034>
00160 THEN
©0170 <154>
00180 “ins <esa>
00190 <120>
©0200 PRİNT "YER DEĞİSTİRECEK İKİNCİ DOSY
ANIN ADINI AS co7za>
IF Asu: THEN END <069>
"AZ <106>
#0230 “as <180>
90240 1
s <023>
64 MAKİNA DİLİ SAVE EDİCİSİ

Verdiğimiz program her tür bellek alanını diskte save etmekte kullanılabilir. Onu makina dilinde yararlı bulabilirsiniz. Bu programı kullanmak için makina dilinizi, sprite'ınızı hafızaya verin ve başlangıç ve bitiş adreslerini not edin. Save etmek için bir dosya adı seçin ve programı çalıştırın. Dosya adı, başlangıç adresi ve bitiş adresi için prompt'lara cevap verirken iki adres arasındaki tüm hafıza alanı baştan sona kaydedilmiş olacak. Eğer diskette aynı ad altında başka bir dosya varsa, yenisi save edilmeden önce o iptal edilecektir.

PROGRAM ADI 1 MAKİNA DİLİ

©0100 PRİNT MAKİNA DİLİ
isı" <236>
D-8 REM SURUCU NUMARASI <003>
00120 PRİNT BİR YERİN
1 DÜZENLEYİP.
00130 INPUT *CSSPACE
“BASLANCIC ADRESİ
00140 OPEN 15
00150 S3) (54) -LENCA
<ızs>
<217>
00160 700
65463
©0170 781.D1POKE T7O2.1
15Y5 65466
00100
700.253
00180
65496
<000>
cısa>
<ece>
<219>
OPEN

64 ARAMA YARDIMCISI (UTILITY) Uzun programlar yazarken listelerde belli değişkenleri bulmak ya da altrutin çağrıları için çok zaman harcamak zorunda kalabilirsiniz. Verdiğimiz program her tür değişken, dizi (string) ya da BASIC keyword bulmakta her tür BASIC 64 programında yararlı olacaktır. Aranan şeyi içeren her satır ekranda gösterilecek ve yazıcıya CMD komutuyla havale edilebilecektir. Yardımcıyı kullanmak için verdiğimiz programı çalıştırmanız yeter. Sonra da araştırma yapmak istediğiniz BASIC programını yükleyin ve ara komutunu şu formatta girin:

SYS49152,searchitem

Bu programdaki herhangi bir şey olabilir ve arzu ederseniz BASIC komutları kısaltılabilir. Özellikle onları aramıyorsanız, parantez kullanmaktan kaçının. Yardımcının yararı, özellikle uzun programlarda ortaya çıkıyor. Örneğin 1056 satırlık bir program üzerinde çalışırken bir altrutinin başlangıç satır numarasını değiştirmek zorunda kaldığınızı düşünelim. Bu yardımcı olmazsa 1055 satır boyunca bu altrutinin nerede çağrıldığını anlamak için dolaşmanız gerekebilirdi. Bunun yerine altrutinin eski satır numarasını searchitem (aranan item) olarak kullanarak araştır komutunu vermeniz yeterli olacaktır. Bu yardımcıyı kullanmak eğer makina dilini direkt olarak save ederseniz daha da kolay hale gelir. Sonra onu gerektiğinde yeniden yükleyebilirsiniz. Başlangıç adresi 49152, bitiş adresi de 49354'tür.

64 BASIC LINKER YARDIMCISI Bir BASIC programının bir başkasını yükleyip çalıştırabilmesi yararlı olabilir ama sorunlar da çıkabilir. Bir programın içinden sadece LOAD komutunu kullanırsanız başınız derde girebilir. Her şeyden önce program modunda bir LOAD yüklenmiş programın değişkenlerini başlatmaz. İlk programda kullanılmış olan her değişken ikinci program çalışmaya başladıktan sonra değerini koruyacaktır. Birçok program bir program başlatıldığında değişkenlerin sıfırlanmasına güvendiğinden birçok sorun çıkabilir burada. Değişkenlerinin değerinin korunması yükleyen programın yüklenenden daha uzun olmasını gerektirir. Eğer bu koşul yerine getirilmezse yüklenen program düzgün çalışmayacaktır. Verdiğimiz program bir BASIC programının değişkenleri ve program uzunluklarını dert etmeden bir başka BASIC programını yükleyebilmesini ve çalıştırmasını sağlayan bir makina dili rutini oluşturmaktadır. Makina dili hafızaya poke edildikten sonra BASIC programınız bir başkasını SYS49152“programname”,8 emriyle yükleyip çalıştırabilecektir.

PROGRAM ADI 1 ARAMA
60010 PRİNT *<CUR)GA ARAMA"
©0020 PRİNT *CUP)CALISIYOR.
49
©0020 IF THEN PRİNT “DATALAR
DA HATA
©0040 PRİNT BULMAK İCİN
GİRİN" <ae7>
©0041 DATA 160.000.200.177.122.133.205.1
sa ci20>
DATA
00043 DATA
33
©0044 DATA 252.169.001.123.251.160.002.1
77 <250>
©0045 DATA 251.141.203.192.200.177.251.1
a1 <aa7>
©0046 DATA 204.192.200.177.251.240.B27.2
05
©0047 DATA
sa
DATA 000.232.200.169.206.192.240.0
20
00048 DATA 209.251.240.245.172,205.192.0
76
©0050 DATA
22
©0051 DATA 281.144.002.230.252.160.001.1
77
DATA
23
©0053 DATA
18
00054
70
00055 DATA
74
00056 DATA 203.1092.032.205,169,169.032.1
64
00057 DATA 073.041.127.032.071.171.201.0
34 cisa>
©0050 DATA 208.006,165.015.079.255.133.0
18 <255>
©0059 DATA 200.240.004.177.095.200.011.1
65
DATA 096.133.252.165.0095,193.251.0
76 (163>
©0061 DATA
19
BoOGA DATA 026.015.040.215.086.233.187.1
70 <065>
00063 DATA 132.073.160.255.202.240.000.2
60 <165>
60064 DATA
00 <233>
00065 DATA 185.150.160.040.186.032.071.1
zı
00066 DATA 208.245.096
PROGRAM ADI 1 64 LİNKER
00010 PRİNT *<CUR)GA LİNKER"
1
00030 YENİDEN YERLESTİRİLED
ILIR
00040 1 <816>
60050 PRİNT J
«0 TO KİPOKE
<casa>
60060 IF THEN PRİNT “DATA SAT
IRLARINDA HATA VARI*1STOP
60070 “CUP
>BIR BASIC PROGRAMINA DİĞERİNİ YÜKL
ETMEK."
60080 PRİNT *SYS'Yİ
ADI *
<079>
©0081 DATA 032.253.174.169.000.123.010.0
se
DATA 212.225,165.010.166.043.164.0
44
00083 DATA 032.213.285.176.033.032.066.1
66
©0084 032.103.255.041.191.240.005.1
62 <081>
00085 DATA 029.076.035.164.124.045.134.0
a7 <201>
00096 DATA 132.046.132.040.169.000.032.1
aa
00087 DATA
a8
00088 DATA 224 <160>

Yapmanız gereken bundan ibaret. Yalnız drive sayısını sona eklemeyi unutmayın-programın başka bir drive'dan yüklemesini istiyorsanız, örnekteki 8 yerine onun sayısını koyun. Makina dili tamamıyla yeniden yerleştirilmeye uygundur; bu nedenle başka bir başlangıç adresine yerleştirmek istiyorsanız, satır 30'daki SA değerini değiştirin. Ayrıca makina dilinin kendisini save ederek onu kullanmanız gereken her zaman hafızaya poke etmekten kurtulabilirsiniz. Gösterilen başlangıç adresiyle 49152-49208 arasındaki hafızayı işgal etmektedir.

İstanbul'dan Ali Duyar arkadaşımızın kolaylıkları: 1- SYS 64767 ile kısa reset yapabilirsiniz. Simon's Basic vb. gibi programlardan bu komutla basic'e dönebilir sys 64738 ile tekrar programa girebilirsiniz. 2- Over Moscow'da çalıştırdıktan sonra beklerseniz, aşamaları izleyebilir, oyuna istediğiniz aşamadan girebilirsiniz. 3- Makina dili programların ekranı silerek load etmesini istiyorsanız programı 0400 adresinden başlayarak save edin. MULTI ICE 3 kullanıcılar için: 1- Normal basic'te hızlı kayıt için save”İsim,s,w”,8,1'i kullanabilirsiniz. 2- Seçim ekranında bazı komutlara şöyle ulaşabilirsiniz: T veya D kopye, X poke, V sprite, K sprite öldürme, M monitor, U utility menü, P parametre, normal reset. 3- Multi ice ile kaydedilmiş programları yükledikten sonra reset ve freeze yapar, old ile programı çağırırsanız basic listesi olan makina dili programlarının basic listesini görebilirsiniz. 4- £ Sterlin işareti ile save — (yukarı ok) işareti ile auto run'lı load yapılabilir. 5- Amiga için poke 2064,0 reset basic'ten poke 2062,0 dondurma