ASSEMBLER
Retro bilgisayarRAM'in bu bölümlerini en sayıdan eksik kalan bölümler. Bir grafik var. 3 bitplane (8 renk) 320 pixel. 16 pixellik oluşsun. Yani yan yana 20 kutu var ve siz beşinci kutuyu eki Dolayısıyla siz brush'ı full olarak convert edip içinden 16 pixellik bloklar halinde ekrana taşıma yapacaksınız. (Brush'ın y uzunluğu önemli değil!!!) Şimdi IFF CONVERTER ile 320'ye istediğiniz kadarlık bir y uzunluğu için ve kaydedin. (mesela 320 ye açtığınız ekranda 320 ye 200 olsun... E section code,data ekranınızı açtınız. bsr — press brush main: empi.b bne — main mouse: bist bne bra **..ÇIKIŞ ve CLOSE LIBS VS.... ¡HESAPLAR : :Brush: ;320/8=40, 16 pixeli lazım.. 16/8=2 :40-2=38 => bltaptr ;Ekran: ;320/8=40 :yani 320 pixeli lazım = 320/8=40 ;40-40=0 => bltdptr ;brush'ın blitsize'ı ;16x16'lık basıcam ;[16*64] = 1024 = x ;16/8=2 2/2 = 1 = y
için 1 planı
edilen brush size 320x200
;[320/8]*200 = 8000 = $1f40
;Ekranım için 1 plane uzunluğu
:Göstermek istediğim alan 320x256
;[320/8] 256 = 10240 = $2800
press_brush:
move.l #destination al
movell
loop: move a0,bitaptr.
movell al,bitdptr
move.w #38,bltamod
b
move.w #0,bitdmod t
move.l
move.w #$09f0,bitcon0
move.w #$000,blteonl
move.w |
bsr blit wait |
add |
add #$2800.a1
|
#Ld0
bne loop
rts
İşte olay bu. Yani Low-Resolution. Eğer ekranın boyutlarını 16'ya bölersek ekranımızın 16-16 eder. Dolayısıyla ekranımız 16x16 kutucuktan meydana gelir. İşte buna (20 16) matrisi olur. Bu sayede ekrandaki bir koordinatı ve: A dediğinizde bu 50 ve 4x16 = 64 koordinatını Şimdi bu matrisin istediğimiz koordinatlarına bir grafik taşıyın. (İzde 16x16 boyutlarında bir grafik olsun, iff converter'da raw'a çevirmeyi unutmayın !!!) 4 bitplane olsun. (16 renk) Ana ekranımızda 4 bitplane ve 320x256 olsun. Ayrıca ÖNEMLİ bir hatırlatma !!! 4 bitplane bir grafiği 3 bitplane bir ekrana taşımak isterseniz ne olur? Grafiğiniz 1 plane eksik gözükür. Yani source data < destination ... unutmayın press. brush: move. #brush,a0 movell #destination,a1 destx,d0 sel #Ld0 340/2 anlamında, desty,d0 #40,d0 ;görünen ekranın 1
için 40 ile
add
move
loop: movel a0.bitaptr.
movell al, bitaptr
move.w #0,bltamod
#38,bitdmod
movesw
#$000,bltcon1
bsr
add
add
#Ld0
loop
rts
del 8
del 4
Aynı mantıkla ;
press. brush:
movel #brush,a0
addl
mülü —
add —
#38,bltamod yaparsanız, convert etti
16 lık bölümü seçebilirsiniz. Bu matris işlemleri, oyun yazarken bir map'den iste
ek ay sizlere kısa bitmaplarin e vericem ve full
ir, bunu engellemek i dayı
k belki ama ne yapalım... Belki ilerki aylarda derginin
yanında disket verebilirsek daha iyi olur... Eğer modeminiz var ise Split Seven BBS (0212-5717048) den bana mesaj bırakın yollarım. Evet, sayfam bitiyor. Gelecek ay sizlere ufak ufak maskeleme konusunu anlatmaya başlayacağım. Eğer takıldığınız bir yer varsa sakın bana yazmaya çekinmeyin. Adresim : Vigo/Mystic PK:59 - 81110 - Bostancı - İstanbul
İstanb