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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
.globl _cpc_PutSprite
_cpc_PutSprite::
;*************************************
; SPRITE ROUTINE WITHOUT TRANSPARENCY
; Supplied by Tim Riemann
; from a German forum
; DE = source address of the sprite
; (includes header with 1B width [64byte maximum!], 1B height)
; HL = destination address
;*************************************
POP AF
POP HL ;DESTINATION ADDRESS
POP DE ;SPRITE DATA
PUSH AF
;EX DE,HL
LD A,#64
SUB (HL)
ADD A
LD (width1+1),A
XOR A
SUB (HL)
LD (width2+1),A
INC HL
LD A,(HL)
INC HL
width0:
;ex de,hl
width1:
JR width1 ;cada LDI es un byte
LDI ;se hace el salto al byte correspondiente (64-ancho)
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
LDI
width2:
LD BC,#0X700
EX DE,HL
ADD HL,BC
JP NC,width3
LD BC,#0XC050
ADD HL,BC
width3:
EX DE,HL
DEC A
JP NZ, width1
RET
|