-
Notifications
You must be signed in to change notification settings - Fork 0
/
scrollattr.asm
64 lines (57 loc) · 1.2 KB
/
scrollattr.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
SECTION asm_lib
PUBLIC SCROLLALEFT
PUBLIC SCROLLARIGHT
PUBLIC SCROLLAUP
PUBLIC SCROLLADOWN
EXTERN SCRLNEWATTR
INCLUDE "../../z88dk-zxspectrum-equates.asm"
.SCROLLALEFT LD HL,ATTRS ; From 40 Best Machine Code Routines 5: Scroll Routines Scroll Attributes Left
LD A,(SCRLNEWATTR)
LD C,24
.NXTLNLP1 LD B,31
.NXTCHRLP2 INC HL
LD E,(HL)
DEC HL
LD (HL),E
INC HL
DJNZ NXTCHRLP2
LD (HL),A
INC HL
DEC C
JR NZ,NXTLNLP1
RET
.SCROLLARIGHT LD HL,$5AFF ; From 40 Best Machine Code Routines 5: Scroll Routines Scroll Attributes Right
LD A,(SCRLNEWATTR)
LD C,24
.NXTLNLP3 LD B,31
.NXTCHRLP4 DEC HL
LD E,(HL)
INC HL
LD (HL),E
DEC HL
DJNZ NXTCHRLP4
LD (HL),A
DEC HL
DEC C
JR NZ,NXTLNLP3
RET
.SCROLLAUP LD HL,ATTRS + $20 ; From 40 Best Machine Code Routines 5: Scroll Routines Scroll Attributes Up
LD DE,ATTRS
LD BC,$2E0
LDIR
LD A,(SCRLNEWATTR)
LD B,32
.NXTCHRLP5 LD (DE),A
INC DE
DJNZ NXTCHRLP5
RET
.SCROLLADOWN LD HL,$5ADF ; From 40 Best Machine Code Routines 5: Scroll Routines Scroll Attributes DOWN
LD DE,$5AFF
LD BC,$2E0
LDDR
LD A,(SCRLNEWATTR)
LD B,32
.NXTCHRLP6 LD (DE),A
DEC DE
DJNZ NXTCHRLP6
RET