1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
.globl _cpc_GetSp
_cpc_GetSp::
LD IX,#2
ADD IX,SP
LD E,0 (IX)
LD D,1 (IX)
LD A,3 (IX)
LD L,4 (IX)
LD H,5 (IX)
LD (#loop_alto_2x_GetSp0+1),A
SUB #1
CPL
LD (#salto_lineax_GetSp0+1),A ;comparten los 2 los mismos valores.
LD A,2 (IX)
;JP cpc_GetSp0
cpc_GetSp0::
.DB #0XFD
LD H,A ;ALTO, SE PUEDE TRABAJAR CON HX DIRECTAMENTE
LD B,#7
loop_alto_2x_GetSp0:
LD C,#0
loop_ancho_2x_GetSp0:
LD A,(HL)
LD (DE),A
INC DE
INC HL
DEC C
JP NZ,loop_ancho_2x_GetSp0
.DB #0XFD
DEC H
RET Z
salto_lineax_GetSp0:
LD C,#0XFF ;salto linea menos ancho
ADD HL,BC
JP NC,loop_alto_2x_GetSp0 ;sig_linea_2zz ;si no desborda va a la siguiente linea
LD BC,#0XC050
ADD HL,BC
LD B,#7 ;sólo se daría una de cada 8 veces en un sprite
JP loop_alto_2x_GetSp0
|