Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ;
- ;
- ; create pulse circle
- ; version 0.0001
- ; un tri qui n'a pas l'air buggé
- ; tres peu rapide et sans stoquage des index, pas besoin dans ce que je vais faire
- ; ca consiste a prendre le min d'une table et de le swaper avec le premier element et recommencer
- ; note, le tri utilisé pendant l'init donc pas besoin de vitesse
- ;
- ; effet qui va etre incorporé a la routine de sprite
- ; code de type meduse
- ; avec cliping haut bas
- ; et tri de chaque cercle de point suivant cet ordre
- ; pour chaque decalage, classement de l'offset le plus petit au plus grand
- ; un pointeur pour chaque point
- ; un code legerement differnt dans le code gerne de point:
- ; instead of
- ; or d0,dep(a0)
- ; on a :
- ; lea dep(a2),a0
- ; or d0,(a0)
- ; move a0,(a1)+ ; offset pour effacement sachant que le debut de l'ecran est a 0 pile poil
- ; il faut une version du cercle avec or.W une autre avec or.l et add.l d0,d0 pour 3 type de couleur
- ; 01 10 11
- ; et faire ainsi des grand cercle sombre par exemple jusqu'a plus clair au centre
- ; épissétout
- ;
- ; dans chaque partie
- ; routine qui lit les offset dans l'ordre de grandeur de celle ci
- ; du plus petit eu plus grand
- testcode:
- jmp patatra
- lea listepouri,a0
- move.w #19,d0 ; 16 element pas 16-1
- jsr orderlist
- nop
- lea listepouri,a0
- illegal
- ;listepouri dc.w 15,13,12,12,14,1,4,3,7,9,10,20,70,63,6,6
- listepouri dc.w 100,90,80,10,60,60,50,50,40,40,30,30,30,10,5,4,2,1,0
- orderlist
- ; a0 = adresse liste
- ; d0 = nombre d'element
- move.w d0,-(sp)
- move.l a0,a1
- move.w d0,d1
- beq.s .nothing
- subq #1,d1
- moveq #0,d2
- moveq #0,d4
- move.W #$7FFF,d3 ; d3 la valeur minimum qui au premier passage sera changé
- .loop
- move.w (a0)+,d2
- cmp.w d3,d2
- bgt.s .1
- move.w d2,d3 ; d3<d2 loeq d3=d2; on cherche le minimum
- move.w d4,d5
- .1
- addq.l #1,d4
- dbf d1,.loop
- move.l a1,a0
- add d5,d5 d5 = indice ou se trouve d3
- add d5,a0
- move.w (a1),d6 ; valeur a l'indice 0
- move.w d3,(a1)+ ; prochain swap avec le deuxieme element, pas le premier
- move.w d6,(a0)
- subq #1,d0
- bmi.s .exit ; ???? bmi ? beq ?
- move.l a1,a0
- move.w d0,d1
- beq.s .exit ;
- subq #1,d1
- moveq #0,d4
- move.w #$7fff,d3
- bra.s .loop
- .exit
- move.w (sp)+,d0 ; retabli la valeur nombre d'element du tableau
- ; les valeurs sont dans l'ordre dans le tableau
- ; note c'est pas le meilleurs algo de tri et ca stoque pas les indice parce qu'on en a pas besoin dans le programme que je vais faire
- move.l a1,a0 ; et de plus, nombre tres petit d'element a chaque fois
- .nothing
- addq.w #2,sp
- ; comment indiquer au programme ke y'a ketch element
- ; je ne sais pas encore
- rts
- patatra
- opcoderandom
- dc.w $41ea,0 ; lea 0(a2),a0
- dc.w $8150 ; or.w d0,(a0)
- dc.w $32c8 ; move.w a0,(a1)+
- OPERATORSKIP
- c set 0
- rept 30 ; valeur enorme et tres sufisante
- dc.w $6006+c
- c set c+8
- endr
- CoperatorLEA equ $41eA lea d16(a2),a0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement