Amiga Dünyası sayı 30, sayfa 31

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 31

Merhaba; işte yine güzel geçen bir yaz tatili bitti. Kış da geldi sayılır. Eh, 30. sayıya da ulaştığımıza göre artık Assembler öğrenmiş sayabiliriz kendimizi. Fakat hala çok pratik yapmamız lazım. Bu yüzden de bu köşeyi artık sırf ilgi çeken enteresan source'lara ayırmak istiyorum. Gelişmiş Assembler köşesini de kaldırdım ve bu köşeyle birleştirdim. Daha önceki sayılarda belirtmiş olduğum tüm kitaplardan faydalanarak vermiş olduğum tüm source'ları gayet rahat anlayabilirsiniz. Bu kitaplardaki bilgileri tekrar burada yazmayacağım. Aşağıda gerekli kitapların listesini bir defa daha bulabilirsiniz: * Amiga Hardware Reference Manual * Amiga ROM Kernel Reference Manuals: - Includes and AutoDocs - Libraries and Devices - Exec * Mapping the Amiga * Inside Disk-drives * Inside the Amiga Her ay bir ya da iki source vermeye çalışacağım. Bunlardan biri demo ağırlıklı olacak; ikincisi sistem rutinlerini DOĞRU olarak kullanan ufak utility programları olacak. Zaman zaman da, benim ilgimi çeken bir source vermeyi düşünüyorum. Bu source'lardan bazıları datalara ihtiyaç duyacaklar. Bu dataları data satırları olarak yayınlamaya kalkışırsam bütün dergiyi kaplayacağından ve kimsenin bunları girmeye kalkışmayacağından aynen dergiden şutlanırım. Bu yüzden data file gereken source'ların datalarını ve source'ların kendilerini direkt benden temin edebilirsiniz. Bunun için boş bir disketi 1000 TL'lik posta puluyla beraber aşağıdaki adrese gönderin. Çekeceğim diskette şimdiye kadar yayınlanmış tüm source'ları doğru olarak bulabilirsiniz. İşte adresim: Cem GENCER, PK 46, 81110 Bostancı-İstanbul. Gelelim ilk rutinimize; bu herkesin yakından tanıdığı 3 boyutlu gibi gözüken bir yıldız rutini. Birçok demo ve intro'da da arka fon olarak karşımıza çıktı. İkinci source'umuz gayet kısa; yaklaşık 50 satır.

Bu source'u eski Almanca dergilerimi karıştırırken buldum. Disk driver'ınızın motorunu değişik şekillerde ve hızlarda hareket ettirerek müzik çalıyor. Disket sürücüsüne hiçbir zararı yok. Sadece programı çalıştıracağınız zaman disket sürücüsüne ya bozuk (çizilmiş) bir disket takın ya da hiç disket takmayın. Programı biraz kurcalarsanız, sizin istediğiniz bir melodiyi de ekleyebilirsiniz. Şimdilik bu kadar; hoşçakalın ...

3D YILDIZ RUTİNİ

; Written by Cem GENCER dg movem.l d0-d7/a0-a6,-(sp) bsr.S ClearBitplanes move.l 4,26 jsr -132(a6) lea $Aff000,a6 lea CopList(pe),a0 move.l a0,$80(a6) clr.w $88(a6) move.w — #$20,$96(a6) bsr.S PrepareStarMovement MainLoop cmp.b bne MainLoop bsr.S MoveStars btst #6,$bfe00O1 bne.S MainLoop move.l 4,a5 move.l 156(a5),A1 move.l 38(A1),$80(a6) move.w — #$8020,$96(a6) move.l jsr -138(a6) Mmovem.l (sp)t,d0-d7/a0-a6 rts ClearBitPlanes lea BitPlane,a0 move.w — #$5dbf,d0 ClearLoop cir.b (a0)4 dbf d0,Clearloop rts PrepareStarMovement move.w — #$a00,d6 move.l #$fEfOOO,mmd1 lea . PosControl(pec),a2 lea Retter,al

PrepareLoop bsr.L move.l move.l sub.w bne.S lea rts

MoveStars move.w MoveLoop move.l move.l belr belir belr GoOn bsr.L bsr.L move.l move.l move.l bec.S bset NotSetl İsr.w bec.S bset NotSet2 İsr.w bec.S bset NotSet3 sub.w bne.S Tts

RestoreAdder lea add.l add.l move.l move.l Loopl move.l Loop2 cir.b cir.b çlr.b dbra move.l Loop3 sub.l cir.b cir.b

GetANewStar #BitPlane,(a1,d6.W) #6,4(a1,d6.W) #820,d6 PrepareLoop CMPundColor(pe),a4

#$a00,d6

O(a1,d6.W),a0 4(a1,d6.W),d0 d0,$1f40(a0) d0,$3e80(a0) DoMove ComputeAddress a0,0(a1,d6.W) d0,4(a1,d6.W) 8(a2,d6.W),d4 #1,d4 NotSetl d0,(a0)

NotSet2 d0,$1f40(a0)

NotSet3 d0,$3e80(a0)

#$20,d6 MoveLoop

BitPlane,a0 #$1f40/2,a0 #20,a0 #78,d0

di,d2

-(a0) $1£40(a0) $1f40*2(a0) d2,Loop2 di,d2

#40,20 (20) $1f40(a0) $1f40*2(a0)

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