*----------------------------------------------------------- * Autor : Mc Leod * Descripcion : Rutina de sprites *----------------------------------------------------------- * X es la posición donde queremos poner el Sprite (0 izquierda) (múltiplo de 4) * Y es la posición donde queremos poner el sprite (0 arriba) * XX es el tamaño horizontal del Sprite (múltiplo de 4) * YY es el tamaño vertical del Sprite * SPRITE es la dirección de memoria del Sprite * * ENTRADA: X (D1), Y (D2), TamX (D3), TamY (D4), SPRITE (D5) PonSprite move.l #131072,a0 ; a0 <- comienzo de la pantalla movea.l d5,a1 ; a1 <- comienzo de la definicion del sprite lsr.l #1,d1 ; X dividido entre 2 andi.b #$fe,d1 ; y nos aseguramos de que sea par lsr #2,d3 ; TamX dividido entre 4 subq #1,d3 ; restamos 1 a TamX porque asi lo necesitan los DBRA subq #1,d4 ; y lo mismo con TamY. add.l d1,a0 ; sumamos X a comienzo de pantalla lsl #7,d2 ; un scan de la pantalla tiene 128 bytes adda.l d2,a0 ; a0 apunta a la coordenada X,Y move.l d3,d5 ; d5 es backup de d3 move.l a0,d6 ; d6 es backup de a0 PonScan move.l d5,d3 move.l d6,a0 Pon4pixels ;o pon 8, si estamos en modo 4 move.w (a1)+,(a0)+ dbra d3,Pon4pixels addi.l #128,d6 dbra d4,PonScan moveq #0,d0 rts end PonSprite