CG4 için üf Noktaları

Burak Kiper arkadaşımız, lisansüstü akademik çalışmalarının kendisini çok meşgul etmesi nedeniyle dergimizde artık yazı yazamayacak. Bu nedenle C-64 İçin İpuçları köşemizin yazımını üstlenmiş bulunuyorum. Sizlerin de yardımıyla Burak arkadaşımızı aratmamaya çalışacağım. Gelelim bu sayıdaki ipuçlarımıza. Bu sayıda birçok programın içinde kullanabileceğiniz küçük rutinlerden bir bölüm hazırladım size. Tabii ki oyunlar için kolaylıklar köşemiz de sürüyor. Haydi Commodore başına...

C-64 DOS WEDGE KOMUT ÖZETİ

Birçok yeni C-64 kullanıcısı disket sürücüsü ile birlikte verilen demo diskindeki DOS Wedge'in yararlarının farkında değil. Bu çok pratik yardımcının komutlarının özetini aşağıda veriyoruz. DOS komutlarının ayrıntılı bir açıklaması için disket sürücüsü el kitabınıza bakabilirsiniz. Burada verilen komutların tümünün eski el kitaplarında bulunmadığını unutmayın. @-Mevcut disket statüsünü verir. @$-Hafızadaki programı bozmadan ekranda directory dökümünü çıkartır. (Not: Directory'yi durdurup başlatmak için space bara basın.) @I-Sürücüyü başlatır. @UI-Dos için yazılımın yeniden ayarlanması. @V-Diski onaylar, doğrular (validate eder). @(Sürücü sayısı olduğu yerde, 8-15 arası)- İki ya da daha fazla sürücü varsa bu komutla sürücüler arasında DOS Wedge komutunun gidip gelmesini sağlayabilirsiniz. Örneğin @$ 9 komutu 9 nolu sürücüyü gösterecektir. @N0:DİSK NAME, ID-Bir diski formatlar. (Uyarı: Bu komut bir disketteki tüm dataları yok eder.) @C0:NEW FILENAME = 0:OLD FILENAME- Eski bir dosyanın kopyasını aynı diskette yeni bir dosya adı altında çıkartır. @R0:NEW NAME = 0:OLD NAME- Disketteki bir dosyayı yeniden adlandırır. @S0:FILENAME-Disketten bir dosyayı çıkartır. @LFILENAME-Bir Basic programı yükler. @/FILENAME-Bir Basic programını yükler ve çalıştırır. @&FILENAME-Bir programı hafızaya tam save edildiği noktada yükler. (DOS 5.1 gibi ikilik dosyalar için) Dikkat: Son üç komut ilk sütundaki ilk karakteri yazıp return'e basarak bir directory dökümünde kullanılabilir; Wedge yalnızca tırnak işaretleri arasındaki dosya adını görecek ve satırdaki diğer karakterleri göz ardı edecektir. @>FILENAME-Bir programı diskette save eder. @-Wedge programını durdurur. @ yerine > işaretinin kullanılabileceğine dikkat edin. Ayrıca bir programda DOS Wedge komutlarını kullanmak ayrı bir syntax gerektirir.

Önce @ yazın ve sonra komutu tırnak işaretleri içine alın. Örneğin, @"I" 8 sürücüyü başlatacaktır.

64 PENCERELERİ

Programcılar ilk baştan beri C-64 için pencere yardımcıları yazmakla meşguller. Şimdi elimizde makine dili için bir pencere sistemi var. Bu kısa, kolay ve programlarınızla koordine edilmesi kolay bir yardımcı. İki pencere oluşturan ve bunların nasıl oluşturulduklarını gösteren bir demonstrasyon programımız da var. Program hafızada yeniden yerleştirilmeye uygun olmakla birlikte hata yeri 49152. Ondan sonra SYS 49452 ekran hafızasını kopyalayacak, SYS 49263 bir pencere oluşturacak ve SYS 49335 ekran hafızasını yenileyecek. 64 Pencere sistemini harekete geçirdikten sonra aşağıdaki yerleri ekrandaki renk ve pozisyon pencerelerine değerlerine göre poke edin: Sol taraf: Poke 2541, (0-38) Sağ taraf: Poke 2542, (1-39) Taban: Poke 2543, (1-25) Karakter Rengi: Poke 2544, (0-15)

PROGRAM ADİ 1 PENCERELER
©0000 REM C-B4 PENCERELER
00010 TO
A.DINEXT
IF THEN PRİNT
A HATA
00030 POKE 231.S1POKE 233.101
POKE 254,14
00040 SYS 49263
©0038 PRİNT SAVE 1
<150>
<ce05>
<212>
<038>
<a20>
©0060 PRİNT
00878 PRİNT İCİN"
©0090 PRİNT
00080 PRİNT TUSA <167>
00160 GET THEN 100
60110 POKE 253.81
SYS 49262
©0120 PRİNT EKR.RESTORE E
TE"
00130 PRİNT
<173>
<055>
DATA 26.162.4.124.106.169
DATA
cıze>

64 MEMORY SAVER

C-64'te bellek alanlarını diskete save etmek için gereken Binary Save komutu yok diye üzülmeyin. Bu sorunu Basic kodunda yazılacak altı satır ile çözebilirsiniz. Memory Saver ile belleğin makine dili rutini içeren bölümünü diskete hızlı yükleyen bir makine dili dosyası olarak yükleyebilirsiniz. Örnek olarak 49152 ve 49252 sayılı yerler arasında bulunan ve SYS 49152 ile harekete geçirilen bir yardımcınız olduğunu düşünelim. Önce yardımcıyı yükleyip çalıştırın, sonra da 64 Memory Saver'ı çalıştırın. Başlangıç adresi olarak 49152 ve bitiş adresi olarak 49252'yi ve dosya adı olarak da örneğin “49152 UTILITY” girin. Yardımcıyı diskette 64 Memory Saver ile save ettikten sonra LOAD"49152 UTILITY",8,1 ile yükleyebilir ve SYS 49152 ile çalıştırabilirsiniz.

©0000 REM C-64 BELLEK SAVEEDİCİSİ
©0610 INPUT "BASLANDIC
©0026 INPUT ADRESİN
60036 INPUT
.8
00040 POKE 173.8/2561POKE
173)
60030 POKE 782.E/2S6
00060 POKE 65406
<143>
<uz>
<a08>

JOYSTICK-KONTROLLÜ KURSOR

C-64 kursorunu kursor tuşları dışında bir şeyle hareket ettirebilmek istiyorsanız C-64 kursor joystiği tam size göre. SYS 49152 ile harekete geçirilen bu programda 2. porta bağlanan bir Joystick kursoru her yere hareket ettirebilmenizi sağlayacak. Bu programın başka program işlemlerine hiçbir şekilde müdahale etmemesi hoşunuza gidecek. Run-stop/restore komutuyla durdurulabilir ve kursor hızı POKE 49174, X, girilerek ayarlanabilir. X burada 3(en hızlı) ile 15(en yavaş) arasında bir değerdir.

PROGRAM ADI: JOYSTICK CURSOR

©0006 REM CURSOR-JOYSTİCK
©0010 FOR TO 492491: READ T
IF THEN PRİNT "DATALARDA
HATA
00030 SYS 491S21PRINT “CURSÖR JOYSTİCK AK
TİVE EDİLDİ"
60040 DATA 120.169.13.141.20,3.168.182.1
92,173.0.220.201.123.200.5.169
00090 DATA 157.141.118.2,76.49.224.4

DİSKET SÜRÜCÜSÜNÜN IŞIK GÖSTERGESİ

Bu C-64 büyüsüyle programlarınıza renk katın. 1541 ya da 1571 disket sürücünüzün ışığının yavaş yavaş yanıp sönmesini sağlar. Bunun için önce SYS 49152 komutunu vermeniz gerekir. Onu run-stop/restore tuşuyla durdurup disket sürücünüzü kapatana kadar sürücüye ulaşmanızı da engeller.

<156>
60030
<168>
<165>
60050
<183>
60060
İş
88
<a23>
60000 DATA 170.232.224 .45.200.204,168.05.
— <016>
60080 DATA 204 .255.96.169.254,170,32
.202.824.1.200.248.32.21
00100 DATA 24
©0110 DATA
26.200.248.104,170.96

RESTORE TUŞUNU KONTROL ETMEK

C-64'te tüm tuşlara basılıp basılmadığını kontrol etmek bir ya da daha fazla Peek komutu kullanılarak kolayca mümkün olabilir ama bu restore tuşu için mümkün değil. Restore Tuşu Kontrol Rutinini kullanarak run-stop/restore kombinasyonunu etkilemeden bu işi yapabilirsiniz. Program etkinliğe geçmek için RS-232 portunu monitör eder ve diskete ulaşmayı normal tutabilmek için 673'e bir 0 poke eder. Yalnız bu rutini programlarınızda kullanırken RS-232 erişimlerinden (access) uzak durmayı unutmayın.

PROGRAM ADI © RESTORE TUSÜ ©0080 REM RESTORE KONTROLU 60010 PRİNT & 73.1 60026 PRINT GÖRMEK İCİN RES TUSUNA 60030 IF THEN POKE 673.11 60TO 68646 GOTO 26 60030 PRİNT *<CTRL-DEBTTİRMEKİCİN RESTORE TUSUNA TEKRAR 60060 IF THEN POKE 673.01 End #0876 GOTO 66

<a26>
cıza>

64 KLAVYE BUFFER GENİŞLETİCİSİ

C-64 Klavye Buffer'ı dinamik bir klavye olarak kullanılacağı zaman gerçekten kısıtlamalar getirmektedir. On karakterlik bir kapasitesi var. Genişletici ona yeni bir bellek yeri vererek buffer'ın kapasitesini 245 karaktere çıkartan kesilme (interrupt) dinamikli bir yardımcıdır. Programı yazıp çalıştırdıktan sonra onu aynı default buffer'ı gibi kullanabilir ve programlayabilirsiniz. 255 karakterlik kapasitesiyle bu programı klavye rutinlerinizde kullanmak isteyeceğinize hiç kuşku yok.

PROGRAM ADI: KLAVYE

REM KLAVYE BÜFFER
60010 1.5
C.PEEKCC) AND <B-1)
60020 POKE
POKE A*3.BIPOKE A.BIPOKE
41918
©0030 POKE C.PEEKCC) OR it
POKE C-9.S6:POKE 1.53
58
<035>
<250>
çe20>
<118>
00088 PRİNT KLAVY
E BUFFER DEMOSU"
60080 FOR Te48152 TO 484071POKE
196.255
<059>

FLAŞLI 64 DİSKET YÜKLEYİCİ

Bunları direkt modda ya da programlarınızda kullanarak program yüklemeyi daha az sıkıcı hale getirebilirsiniz. Programı yazıp çalıştırdıktan sonra disket sürücüsünün bir dosya yüklediği her seferinde ekran kenarında hızla 16 renk yanıp sönecek ve hareket edecek. Bu kesilme (interrupt) ile çalışan program başka programlardan etkilenmez. RUN-STOP/RESTORE tuşuna basarak onu durdurabilir ve POKE 1,53 ile yeniden çalıştırabilirsiniz.

PROGRAM ADI © FLAŞLI LOADER

80800 REM C-64 FLASLI LOADER
60010 1.5
C.PEEKCC) AND Ci
POKE
POKE A*3.BIPOKE
41918
60020 POKE OR 11
POKE C-8.S6:POKE 1.53
60040 FOR T-678 TO G79481READ DIPOKE T.D1
NEXT
©0050 DATA
00060 POKE 60947.76:POKE 60948.
<148>
<035>
<015>
<133>

OYUNLAR İÇİN KOLAYLIKLAR