1 Şubat 1989 Tarihli Commodore Gazetesi Sayfa 52

1 Şubat 1989 tarihli Commodore Gazetesi Sayfa 52
Metin içeriği (otomatik olarak oluşturulmuştur)

FÜCR iİsi!RERO AiPÜÖKE S54ddü L Ş SEYlİ? ACALS PRİMT “SCLRLÜTFEN BIİR TUSA BASIN” SLGĞ5 7 GOAZE BAzİĞ1d0ZE <195> SGORĞAİ GET ASGİFK A45"" THEN 38 sdiaa; 00640 PRIMT “SC0ÜLRİ"FAŞS ÖOl1F74>7 Adü5ü AB-PEEK İf d'*ötEmR <ede> Adüsü FÜR İsEA TÜ F <l1a3>; ABATA ADSABYİ Çesa; GOASA HİSTINTİADSESG'İLÜSAN-HIKESE <ATE> BAA0 PÖKE ESİ ; ;LÖ:PÖKE Sö2.HI <isge; ColdAa 53vY5 E*43Aâös <ea5; i K İ <B38 ; ACLIŞU FuAR HYiT sELalER -t SeğAa>; ASA TF EY AND Etİ) TREN PRİNT "4"3 0es; göşrda TF CEN CAND 2137 >6 THEN PRIİMT V. dŞ ŞU z G DEe HESİP-İ g5e GATTE PRINT EREXT İ <OS5E > dadls€ Eki <1s2> Secma DATA SS ;-5İ,1SE,1,160,0,1v”ç,eSi,is Si5m53-169-55,123,1-96 <ard; karakter-ROM'un temel adresi olan 53248 yüklenir. 30. satırda daha önce görüldüğü gibi klavye sorulur ve elde edilen A$ değişkeni ASC 11 koduna çevrilir. 40. ve 50. satırlarda küçük bir program hilesi kullanılmıştır. ASC JI kodlarının ekran gösterim kodlarına çevrilmesinde öncelikle 40Ü, satırda ekran silinir ve A$ yazısal dizisi ek- ranın sol üst köşesine yazılır. Bilin- diği gibi ekran belleğinde A$'ın içe- riği ekran gösterim kodu şeklinde bu- lunur. Böylelikle uygun adres okun- duğunda istenen değer kolaylıkla el- de edilebilir. Bu okuma işlemi 50. sa- tırdaki PEEK (1024) komutu ile ger- çekleştirilir. Ayrıca 50. satırın başka bir görevi daha vardır: A$'daki işaretle karak- ter ROM'undaki başlangıç adresi he- saplanır. (Ekran gösterim kodu sekiz ile çarpılır ve karakter ROM'unun te- mel adresine eklenir.) Daha sonra 60 ile 170. satırlar ara- sında tam & defa tekrarlanan bir dön- gü bulunur. Bu döngünün görevi ka- rakterin her bir satırını okumak ve ekrana vermektir. AD değişkeni her seferinde o anda okunan satırın de- ğerini almaktadır. 70. satırda hesap- lanan bu değeri 80. ve 90. satırlar ma- kine dili programa bildirmek için ha- zırlık yaparlar. 100, satırda SYS ko- mutu ile program işleme sokulur. 110. satırda 253 no'lu adresde bulu- 52 nan karakter satır değeri BY değişke- nine yüklenir. Bundan sonra 120 ve 160. satırlar arasında yeni bir döngü- ye girilir. 130. ve 140. satırlar BY değişkenin- de bulunan sayıyı yorumlama göre- vine sahiptirler. İşaretin üzerinde bu- lunan her nokta bir yıldıza (*) karşı- lık gelmektedir. Buna karşılık işaret- teki her boşluk için ekranda bir nok- ta gösterilmektedir. Her bir karakter satırda sekiz adet nokta bulunduğunu biliyoruz. Şimdi her bir noktaya bir sayı verelim. Sol- dan itibaren ilk nokta 128, ikinci 64, üçüncü 32, dördüncü 16, beşinci 8, altıncı 4, yedinci 2 ve en sağdaki | ol- sun. Herhalde bunların üstel sayılar ol- duğunu farketmişsinizdir. Zira 2 - 128, 2 — 64,2 — 32 — |'dir. Eğer bir satırda birdan faz- la nokta varsa bunlara karşı gelen de- Berler teker teker toplanır. Örnek ola- rak bir satırda en soldaki ve en sağ- daki noktalar varsa bu satır 129 de- gerliğini alır (soldaki için 128 4 sağ- daki için 1). K 130. ve 140, satırlarda yer alan <BYANDI2 1J> komutu BY sa- yısına karşılık gelen noktaları belir- ler. 130, satırda bulunan IF sorusu ile BY değişkeninde kayıtlı olan sayı iki- nin herhang ibir üssü olduğu belirle- nirse ekranda bir < * > işareti beli- rir. Aksi taktirde 140. satırda boş yer- lere bir nokta konulur. 170. satır cursoru bir sonrakı satı- rın başlangıcına getirir ve son satır oluşana dek sekiz defa kullanılır. Böylelikle program tamamlanmış olur. Aslında Videocontroller'de olup bitenler tamamen aynıdır. Eğer program BDE ile yazıp çalıştırırsanız C-64'ün herbir karakterinin nasıl ya- pıldığını görebilirsiniz. Yalnız Basic- Demo'nun Videocontoller'dan defa- larca yavaş çalıştığını unutmayın. Son olarak işaretlerin monitör üze- rinde nasıl oluştuğuna kısaca değine- ceğiz. Videocontroller'ın ürettiği sin- yal monitörde üçe ayrılır: Resim bil- gilerini taşıyan sinyal (monokromlar- da BAS, renklilerde FBAS) ve yatay ile dikey yönlerde katod ışığını etki- leyen sinyaller. Bu bilgi pek fazla de- gildir ama konumuz için daha fazla- sı gereksizdir.

Bu sayıdan diğer sayfalar: