Plazma sayı 5, sayfa 66

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 66

SPR6POS (170,W) : Sprite 6 dikey-yatay start pozisyon data

SPR6CTL (172,W) : Sprite 6 dikey bitiş pozisyonu ve kontrol register'ı

SPRG6DATA (174,W) : Sprite 6 image data register'ı A SPR6DATB (176,W) : Sprite 6 image data register'ı B SPR7POS (178,W) : Sprite 7 dikey-yatay start pozisyon data

SPRT7CTL (17A,W) : Sprite 7 dikey bitiş pozisyonu ve kontrol register'ı

SPRT7DATA (17C,W) : Sprite 7 image data register'ı A SPRT7DATB (17E,W) : Sprite 7 image data register'ı B COLOR0000 (180,W) : Renk değeri 00

COLOR01 (182,W) : Renk değeri 01

COLOR31 (1BE,W) : Renk değeri 31

Bu register'lara şimdilik sadece göz atmanız yeterli. Birçok konuda size fikir verecektir. İleride blitter, copper, ses ve görüntü alanları ile ilgili bu register'lara çokça ihtiyaç duyacağız.

Örnek Program 1 — ASCII2Hex Converter

Aşağıdaki örnek kod A0'da adresini verdiğiniz 8 karakterlik ifadeyi okuyup D0'da hexadecimal değerini döndürür. Açıklamalar kodun içindedir.

start: ;try adresini A0'a koy #tohex isimli altrutini cagir

lea try(pc),;a0 İsr tohex rts

Ascii -> Hex Cevirici

; ; ; A0: string baslangic adresi ; Sonuc: DO (longword) ; Degisen register'lar: DO/D1/D2/A0O ; tohex: ;DO 0, Dİ - O, D2 - O dl moveg #0,d2

ŞA0'in gosterdigi yerden #1 byte'i DO'a oku move.b (a0) 4,dO0

;hexit altrutinini cagir bsr.s .hexit

;D2'nin degerini 1 arttir olmadiysa loop'a git

addag #1,d2 cmp #8,d2 bne.s .loop

;sonucu D1'den DO'a kopyala ;ve programdan cik

move.l d1,;dO0 rts .hexit: ;DO'daki deger 'a' ($61)'den kucukse ;nolowercase'e git, deger a-f degildir şaksi halde 'a'-10 ($51) cikart ;boylece deger 'a' ise $0A kalir ;ve out'a dallan cmp.b #'a',d0 .nolowercase sub.b #'a'-ı0,d0 bra.s .nolowercase: ;DO'daki deger 'A' ($41)'den kucukse ;nouppercase'e git, deger A-F degildir şaksi halde 'A'-I10 ($31) cikart ;boylece deger 'A' ise $0A kalir ;ve out'a dallan cmp.b #'A',dO blt.s .nouppercase sub.b #'A'-10,dO0 bra.s «OUt .nouppercase: ;DO'daki deger '0'-'9' arasi ($30-$39 ;7'0' cikart ve byte degerini elde et sub.b ;sonucu tutacak olan Dİ registerini 74 bit sola kaydir (1 nibble, yarim byte) ;ve elde edilen DO'daki deger ile OR'la ;sonuc yine Dl1l'de durur dsl adl ör.b d0,d1 vts try: de.b "3a06DECO"

Örnek Program 2 — Copper Bar

Aşağıdaki kod örnek bir copper listesidir. Henüz bu konulara girmemiş olmamıza rağmen hardware register'ları ile ilgili olduğundan burada yer verdim (biraz da ilginizi çekmek için), önümüzdeki sayıda copper ve görüntü alanları (display fields) hakkında daha detaylı bilgi bulabilirsiniz. Şimdilik sadece yazıp inceleyiniz.

; Ornek Copper List

;

#bazi hardware register ofsetleri

bplcon0 - $100 bplconl - $102 bpllmod - $108 diwstrt - $08E diwstop - $090 dd£strt - $092 ddfstop - $094 color00 - $180 color0l - $182 coplle - $080 copjmpl - $088 dmacon — $096 bpllpth - $0EO

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