home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 1
/
ARM_CLUB_CD.iso
/
contents
/
sillies
/
silly1
/
!Rippler
/
s
/
asmrip
next >
Wrap
Text File
|
1990-03-17
|
1KB
|
74 lines
a1 RN 0
a2 RN 1
a3 RN 2
a4 RN 3
v1 RN 4
v2 RN 5
v3 RN 6
v4 RN 7
v5 RN 8
v6 RN 9
sl RN 10
fp RN 11
ip RN 12
sp RN 13
lr RN 14
pc RN 15
AREA |C$$code|, CODE, READONLY
|x$codeseg|
EXPORT asm_ripple
asm_ripple
STMFD sp!, {v1-v6, lr}
MOV lr, a4, ASR #16 ; lr = rip
MOV a4, a4, LSL #16
MOV a4, a4, LSR #16
SUB a4, a4, #1 ; a4 = SIZE - 1
MOV v1, #0 ; v1 = i
next_line
ADD v2, v1, lr ; v2 = off
CMP v2, a4
BLS wave_line
copy_line
ADD v3, v1, v1, ASL #2
ADD v3, a1, v3, ASL #6 ; v3 = src
B do_line
wave_line
LDR v2, [a3, v2, ASL #2]
ADD v2, v2, v1
CMP v2, #255
BLS src_line
MOV v2, #&44
ADD v2, v2, v2, ASL #8
ADD v2, v2, v2, ASL #16
MOV v3, v2
MOV v4, v2
MOV v5, v2
GBLA x
x SETA 20
WHILE x > 0
STMIA a2!, {v2-v5}
x SETA x - 1
WEND
B end_line
src_line
ADD v3, v2, v2, ASL #2
ADD v3, a1, v3, ASL #6
do_line
x SETA 20
WHILE x > 0
LDMIA v3!, {v2,v4-v6}
STMIA a2!, {v2,v4-v6}
x SETA x - 1
WEND
end_line
ADD v1, v1, #1
CMP v1, #256
BNE next_line
LDMFD sp!, {v1-v6, pc}^
END