1; 2; Amstrad CPC library 3; ****************************************************** 4; ** Librería de rutinas para Amstrad CPC ** 5; ** Raúl Simarro, Artaburu 2009 ** 6; ****************************************************** 7; 8; $Id: cpc_GetScrAddress0.asm $ 9; 10 11 SECTION code_clib 12 PUBLIC cpc_GetScrAddress0 13 14 15.cpc_GetScrAddress0 16; coordinates are in (A,L) 17 18;LD A,H 19LD (inc_ancho+1),A 20LD A,L 21SRL A 22SRL A 23SRL A 24; A indica el bloque a multiplicar x &50 25LD D,A ;D 26SLA A 27SLA A 28SLA A 29SUB L 30NEG 31; A indica el desplazamiento a multiplicar x &800 32LD E,A ;E 33LD L,D 34LD H,0 35ADD HL,HL 36LD BC,BLOQUES 37ADD HL,BC 38;HL APUNTA AL BLOQUE BUSCADO 39LD C,(HL) 40INC HL 41LD H,(HL) 42LD L,C 43;HL TIENE EL VALOR DEL BLOQUE DE 8 BUSCADO 44 45 46PUSH HL 47LD D,0 48LD HL,SUB_BLOQUES 49ADD HL,DE 50LD A,(HL) 51POP HL 52 53ADD H 54LD H,A 55.inc_ancho 56LD E,0 57;LD D,0 58ADD HL,DE 59 60RET 61 62 63.BLOQUES 64defw $C000,$C050,$C0A0,$C0F0,$C140,$C190,$C1E0,$C230,$C280,$C2D0,$C320,$C370,$C3C0,$C410,$C460,$C4B0,$C500,$C550,$C5A0,$C5F0,$C640,$C690,$C6E0,$C730,$C780 65.SUB_BLOQUES 66defb $00,$08,$10,$18,$20,$28,$30,$38 67