-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprchr16.asm
86 lines (82 loc) · 1.03 KB
/
prchr16.asm
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
SECTION asm_lib
PUBLIC PRCHR16
PUBLIC INCY
EXTERN OURPIXADD
;INCLUDE "../../z88dk-zxspectrum-equates.asm"
.PRCHR16 PUSH IX ; Original from Eg*Bert that XORs onto screen
LD B,(IX+1)
LD C,(IX+0)
LD H,(IX+5)
LD L,(IX+4)
PUSH HL
POP IX
CALL OURPIXADD
PUSH AF
LD D,16
AND A
JR Z,WBOUND
.LINE POP AF
PUSH AF
LD B,A
LD A,(IX+0)
LD C,(IX+1)
LD E,0
.SCROLL SRL A
RR C
RR E
DJNZ SCROLL
XOR (HL)
LD (HL),A
INC HL
LD A,C
.ONE XOR (HL)
LD (HL),A
INC HL
LD A,E
.TWO XOR (HL)
LD (HL),A
DEC HL
DEC HL
INC IX
INC IX
CALL INCY
DEC D
JR NZ,LINE
POP AF
POP IX
RET
.WBOUND LD B,D
.XBOUND LD A,(IX+0)
XOR (HL)
LD (HL),A
INC HL
LD A,(IX+1)
XOR (HL)
LD (HL),A
DEC HL
CALL INCY
INC IX
INC IX
DJNZ XBOUND
POP AF
POP IX
RET
;
.INCY INC H
LD A,H
AND 7
RET NZ
LD A,H
SUB 8
LD H,A
LD A,L
ADD A,32
LD L,A
RET NC
LD A,H
ADD A,8
LD H,A
XOR 88
RET NZ
LD H,$40
RET