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