1; 2; Amstrad CPC library 3; 4; ****************************************************** 5; ** Librería de rutinas para Amstrad CPC ** 6; ** Raúl Simarro, Artaburu 2009 ** 7; ****************************************************** 8; 9; 10; $Id: cpc_PutMaskSp0.asm $ 11; 12 13 SECTION code_clib 14 PUBLIC cpc_PutMaskSp0 15 16 PUBLIC ancho_m0 17 PUBLIC suma_siguiente_linea_m0 18 19 20.cpc_PutMaskSp0 21 ld ixh,a ;ALTO, SE PUEDE TRABAJAR CON HX DIRECTAMENTE 22 ld b,7 23 .loop_alto_2m 24.ancho_m0 25 ld c,4 26 ex de,hl 27 .loop_ancho_2m 28 29 LD A,(DE) ;leo el byte del fondo 30 AND (HL) ;lo enmascaro 31 INC HL 32 OR (HL) ;lo enmascaro 33 LD (DE),A ;actualizo el fondo 34 INC DE 35 INC HL 36 37 38 dec c 39 jp nz,loop_ancho_2m 40 dec ixh 41 ret z 42 ex de,hl 43 44.salto_lineam 45.suma_siguiente_linea_m0 46 LD C,$ff ;&07f6 ;salto linea menos ancho 47 ADD HL,BC 48 jp nc,loop_alto_2m ;sig_linea_2zz ;si no desborda va a la siguiente linea 49 ld bc,$c050 50 51 add HL,BC 52 ld b,7 ;sólo se daría una de cada 8 veces en un sprite 53 jp loop_alto_2m 54 55