Commodore sayı 63, sayfa 49

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 49

Sta — $0400,y

Sta $0420,y; $0400 4 40 (alt satırın başı) kaç satır transfer ya- pılacaksa Inx İny. Cpy #$28 Rne Döngü

Burada X register'ına “Offset” değeri, logonun saklandığı matrisinin başından itibaren kaç karakter atlanacağını belirtir. Logo matrisini 80 karakterlik satırların ortasına yerleştirirsek (40 kolon için düzenlenen matrisinin başına ve sonuna 20 adet boşluk karakteri yerleştirirsek), bu programın kullanacağı matrisi hazırlamış oluruz. Böyle bir matriste yukarıdaki programda bulunan Offset

değerini 0 yaparsak, ekrana logonun sol yarısı, sağa bitişik olarak çıkar. Eğer bu değeri 40 yaparsak da logonun öbür yarısı sola bitişik olarak görünür. Yani yapacağımız böyle bir rutin, logonun iki taraftan da yarısının ekrandan çıkabilecek şekilde sallanmasını sağlayabilir. Neyse, fazla konuyu dağıtmadan rutinin açıklamasına dönelim. İlk Lda-Sta çifti ilk satırın; ikincisi, ikinci satırın ekrana transfer edilmesini sağlar. Y registeri de kırk kere karakter taşınmasını, diğer bir deyişle tek bir satırın transfer edilmesini sağlar. Yani ilk olarak Matris + Offset adresinden itibaren 40 karakter ilk satıra taşınır, sonra Matris + Offset + 80 adresinden itibaren 40 karakter ikinci satıra taşınır, vb. Eğer 5 satırlık bir logo için bu işlemi yapacaksanız, son taşımanız gereken adres, Matris + Offset + 4*80'den başlar. Burada bir satır atlamak için 80 karakter ileri bakmamızın sebebi, matris satırlarının her birinin 80 karakter olmasıdır. Şimdi de size, karakter setine sıkıştırılan (yarım ekrandan bir-iki satır küçük) bir logonun MATRİS'inin nasıl kolayca 80 kolonluk matrise çevrilebileceğini anlatayım: İlk olarak herhangi bir adresten gerekli sayıda satırı ekrana taşıyacak bir program yazın. Bu program şöyle görünmelidir:

Ldy # 40 Döngü Lda Matris,y Sta $0400,y Lda Matris 4 40 ,y Sta $0428,y istediğiniz sayıda satır

için

Dey Bpl Döngü Rts

Bir de bu işin tersini yapacak bir program yazmanız gerekir. Yani, $400'den başlayarak, ilk logonun iki katı satırı istediğiniz adrese taşıyacak bir rutin olmalı bu. Şimdi matrisinizi belleğe yükleyin. Ekranı “Shift + CLR/HOME” tuşlarıyla temizleyin ve logo matrisini ekrana taşıyacak olan programı çalıştırın. Şimdi ekranda bir sürü garip karakter olması gerekir. İlk satıra çıkan ve yirmi kere “SHIFT + INS/DEL” tuşuna basarak boşluk ekleyin. Bunu yapınca, ikinci satırın bir aşağı kayıp yeni satıra yer açması gerekir. Bu işlemi, ikinci logo satırına (üçüncü ekran satırı oldu şimdi) da yapın. Daha sonra her satıra bu işlemi yapın ve ekranda boş bir yer bularak ekranı geri belleğe taşıyacak olan programı çalıştırın. Böylece 80 kolonluk matrisiniz hazır olacaktır. Eh, yolun yarısını geçtik artık. Şimdi de logonun sallanabilmesi için gereken SİNÜS tablosunu nasıl hazırlayacağımızı öğrenelim. Daha önce size sinüs tabloları hazırlamanın yöntemini öğretmiştim, fakat burada gereken sinüs tablosu, makine dilinde yapılacak olan hesapları minimuma indirmek için özel olarak hazırlanmış olmalıdır. Yani iki ayrı tablodan biri 80'lik karakter matrisinin neresinden başlanacağını, öteki de $D016 adresinin ne kadar sağa kayması gerektiğini göstermelidir. Bu işi yapmak için BASIC program yazmamız şart tabii ki. Bu program: 10 PI=3.14159:FOR R=0 TO 255 20 A=16+8*SIN(R/128*PI)+16 30 X=7-(A AND 7):Y=INT(A/8) 49

Klavyeyle gezinmek için ← ve → tuşları.