1 Ağustos 1987 Tarihli Commodore Gazetesi Sayfa 62

1 Ağustos 1987 tarihli Commodore Gazetesi Sayfa 62
Metin içeriği (otomatik olarak oluşturulmuştur)

içinde bulunan noktalar aynı renk grubunu kullanmak zorundadırlar. Çalışma sistemimizi, modüler tut- mak için ufak ufak ve belli bir işi ya- pan makine dili altprogramlar yaza- cağız. Daha sonra bunları BASIC'- ten çağıracağız. İlk altprogramımızın yapacağı işlem, bilgisayarı yüksek çö- zünürlüklü grafiğe geçirmek. Tabii, grafiğimiz demin yukarıda belirledi- ğimiz hafıza bölgesinde yeralmak zo- runda. Yapacağımız işlemi önce BASIC'te formüle edelim: 100 V— 53248:REM VIC ÇİPİNİN BAŞLANGIÇ ADRESİ 110 VI — V 4 17:REM GRAFİK MO- DUNA GEÇME REGİSTERİ 120 V2 — V 4 24:REM EKRAN HA- FIZASININ BAŞLANGICI BURADAN BELİRLENİ- YÖR. 130 CIA — 56576:REM($DDO00)16K'- LIK BÖLGEYİ SEÇMEK İÇİN 140 POKE VI,59 150 POKE V2,8 160 POKE CIA,0 170 END Bu örneğimizi, makine diline çevir- meden önce, programımızın belleğin hangi bölgesine yerleşeceğine karar vermemiz gerekmektedir. $C000'dan $C3FF”'e kadar olan bölge, grafik ek- ranımızın renk bilgileriyle dolu ola- cağı için, biz de hemen bu bölgenin arkasını yani $C400 adresinden itiba- ren olan bölgeyi kullanacağız. As- sembler kullanacak olursak: 10 0- — ,EO VIC-53248 110- . EÇ VI -53265 120 - — .EO V2 —53272 130 - — .EÇ CIA-$DDOO 140 - — ,BA $C400 150- — LDA # 59 160 - STA VI 1710- LDA#8 180 - — STA V2 190 - LDA #0 200 - STACIA 2110- RR Yazdığımız programı denemeden önce, bir de bunun tersi işlemi yapan programı yazalım. Bunu, deminki programın hemen arkasına ekleye- lim. Yani, şu satırları da girmemiz ge- rekecek: 200 - .NORMAL DURUMA DÖNÜ 210 - OFF LDA # 27 220 > STA VI 230 - LDA # 21 62 240 - STA V2 250 - LDA #3 260 - STA CIA 270 - RTS Dikkat ettiyseniz>&on yazdığımız bölümün çağrı adresini belirlemek için başına “OFF” etiketi koyduk. İlk bölümün başlangıcını da aynı şekil- de belirleyelim. Bunun için, 150'nci satırı şu şekilde değiştirelim: 150—ON LDA # 59 Kaynak programımızı assembler”- dan geçirdikten sonra, bir disassemb- ler ile inceleyelim. Şöyle bir görüntü ile karşılaşırız: C400 A9 38 LDA # $3B C402 8D 11 DO STA $DOİL C405 A9 08 LDA iş $08 C407 8D 18 DO STA $D018 CA0A A9 00 LDA : $00 C40C 8D 00 DD STA $DDOO C40F 60 RTS Sembol tablomuzu, sort edilmiş (alfabetik sıraya dizilmiş) biçimde görmek için /!! komutunu verdiği- mizde: CIA - $DDOO OFF - $C410 ON - $C400 VIC — $DO00O VI -$DOl1 V2-$D018 ile karşılaşırız. Yazdığımız altprog- ramları denemeden önce, grafik mo- duna geçme (ON) ve normal moda dönme (OFF) işlemlerinin adresieri- ni ondalık sisteme çevirelim. Bu işlem için, süper assembler'in, < — fonk- siyonunu kullanabiliriz. ON etiketi için $C400 — 50176, OFF etiketi için $C410 — 50192 rakamlarını elde ede- riz. Yarattığımız altprogramların iş- levlerini ne derece yerine getirdiğini konirol etmek için, direkt moda aşa- C410 A9 1B LDA # $1B ğıdaki satırı girelim: G S SYSS0176:POKE198,0: WATİ d3 198,1:SYS50192 C417 8D 18 DO0 STA $DO18 ö C4LA A9 03 LDA # $03 Yapılan işlem, önce grafik modu- C41C 80 00 DD STA $DDOO na geçip bir tuşa basılmasını bekle- C41F 60 RTS # mek ve tekrar normal moda dönmek. Commodore -— —

Bu sayıdan diğer sayfalar: