Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_15_03.adf » !AcornAns_AcornAns » Flocking/C/s/n2

Flocking/C/s/n2

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_15_03.adf » !AcornAns_AcornAns
Filename: Flocking/C/s/n2
Read OK:
File size: 0988 bytes
Load address: 0000
Exec address: 0000
File contents
	^	0
x	#	4
y	#	4
xn	#	4
yn	#	4
vx	#	4
vy	#	4
mv	#	4
dm	#	4
im	#	4
ax	#	4
ay	#	4
avx	#	4
avy	#	4
ac	#	4
pad	#	8

i	RN	a1
j	RN	a2
bi	RN	a3
bj	RN	a4
rn	RN	r4
rrl2	RN	r5
rboid	RN	r6
rx	RN	r6
ry	RN	r7
d	RN	r8
s0	RN	r8
s1	RN	r9
s2	RN	r10
s3	RN	r11
s4	RN	r12
rvx	RN	r13
rvy	RN	r14
bidm	RN	r13
bjdm	RN	r14
rax	RN	s0
ray	RN	s1
ravx	RN	s2
ravy	RN	s3
rac	RN	s4

	IMPORT	n
	IMPORT	boid
	IMPORT	rl2

vbls	DCD	n, rl2, boid
n2sp	DCD	0
arboid	DCD	0

; n2loop
; a leaf APCS function
;
; C prototype:
; void n2loop(void);
;
	EXPORT	n2loop

n2nsta	DCB	"n2loop", 0
	ALIGN
n2nend	DCD	&ff000000 + n2nend - n2nsta

n2loop

	STMFD	sp!, {r4-r9, sl, fp, lr}
	STR	sp, n2sp
	ADR	r4, vbls
	LDMIA	r4, {r4-r6}
	LDR	rn, [rn]
	LDR	rboid, [rboid]
	STR	rboid, arboid
	LDR	rrl2, [rrl2]
	SUB	i, rn, #1
	MOV	bi, rboid
n2_l1
	SUB	j, rn, i
	LDR	rboid, arboid
	ADD	bj, rboid, j, ASL #6
	SUB	j, rn, j
n2_l2
	LDR	s1, [bi, #x]
	LDR	s2, [bj, #x]
	SUBS	s1, s1, s2
	MOV	rx, s1
	RSBMI	s1, s1, #0
	MOV	s2, s1, LSR #3
	MOV	s1, s2, LSR #16
	BIC	s2, s2, s1, LSL #16
	MUL	s3, s2, s2
	ADD	s2, s2, s1, LSL #15
	MUL	s1, s2, s1
	MOVS	s3, s3, LSR #16
	ADC	s3, s3, s1, LSL #1
	LDR	bidm, [bi, #dm]
	LDR	bjdm, [bj, #dm]
	CMP	s3, bidm
	CMPGE	s3, bjdm
	CMPGE	s3, rrl2
	BGE	n2_nextj

	LDR	s1, [bi, #y]
	LDR	s2, [bj, #y]
	SUBS	s1, s1, s2
	MOV	ry, s1
	RSBMI	s1, s1, #0
	MOV	s2, s1, LSR #3
	MOV	s1, s2, LSR #16
	BIC	s2, s2, s1, LSL #16
	MUL	d, s2, s2
	ADD	s2, s2, s1, LSL #15
	MUL	s1, s2, s1
	MOVS	d, d, LSR #16
	ADC	d, d, s1, LSL #1
	ADD	d, d, s3
	CMP	d, bidm
	CMPGE	d, bjdm
	CMPGE	d, rrl2
	BGE	n2_nextj

	ASSERT	d<s3
	ASSERT	im=dm+4
	SUB	s3, rn, j
	CMP	d, bidm
	ADDLT	s4, bi, #dm
	STMLTIA	s4, {d, s3}
	SUB	s3, rn, i
	SUB	s3, s3, #1
	CMP	d, bjdm
	ADDLT	s4, bj, #dm
	STMLTIA	s4, {d, s3}
	CMP	d, rrl2
	BGE	n2_nextj
	ASSERT	rvx<rvy
	ASSERT	vy=vx+4
	ADD	s1, bj, #vx
	LDMIA	s1, {rvx, rvy}
	ADD	rax, bi, #ax
	LDMIA	rax, {rax, ray, ravx, ravy, rac}
	SUB	rax, rax, rx
	SUB	ray, ray, ry
	ADD	ravx, ravx, rvx
	ADD	ravy, ravy, rvy
	ADD	rac, rac, #1
	ADD	rvx, bi, #ax
	STMIA	rvx, {rax, ray, ravx, ravy, rac}
	ADD	s1, bi, #vx
	LDMIA	s1, {rvx, rvy}
	ADD	rax, bj, #ax
	LDMIA	rax, {rax, ray, ravx, ravy, rac}
	ADD	rax, rax, rx
	ADD	ray, ray, ry
	ADD	ravx, ravx, rvx
	ADD	ravy, ravy, rvy
	ADD	rac, rac, #1
	ADD	rvx, bj, #ax
	STMIA	rvx, {rax, ray, ravx, ravy, rac}
n2_nextj
	ADD	bj, bj, #64
	SUBS	j, j, #1
	BNE	n2_l2
	ADD	bi, bi, #64
	SUBS	i, i, #1
	BNE	n2_l1

	LDR	sp, n2sp
n2_exit	LDMFD	sp!, {r4-r9, sl, fp, pc}^



	END
00000000  0a 09 5e 09 30 0a 78 09  23 09 34 0a 79 09 23 09  |..^.0.x.#.4.y.#.|
00000010  34 0a 78 6e 09 23 09 34  0a 79 6e 09 23 09 34 0a  |4.xn.#.4.yn.#.4.|
00000020  76 78 09 23 09 34 0a 76  79 09 23 09 34 0a 6d 76  |vx.#.4.vy.#.4.mv|
00000030  09 23 09 34 0a 64 6d 09  23 09 34 0a 69 6d 09 23  |.#.4.dm.#.4.im.#|
00000040  09 34 0a 61 78 09 23 09  34 0a 61 79 09 23 09 34  |.4.ax.#.4.ay.#.4|
00000050  0a 61 76 78 09 23 09 34  0a 61 76 79 09 23 09 34  |.avx.#.4.avy.#.4|
00000060  0a 61 63 09 23 09 34 0a  70 61 64 09 23 09 38 0a  |.ac.#.4.pad.#.8.|
00000070  0a 69 09 52 4e 09 61 31  0a 6a 09 52 4e 09 61 32  |.i.RN.a1.j.RN.a2|
00000080  0a 62 69 09 52 4e 09 61  33 0a 62 6a 09 52 4e 09  |.bi.RN.a3.bj.RN.|
00000090  61 34 0a 72 6e 09 52 4e  09 72 34 0a 72 72 6c 32  |a4.rn.RN.r4.rrl2|
000000a0  09 52 4e 09 72 35 0a 72  62 6f 69 64 09 52 4e 09  |.RN.r5.rboid.RN.|
000000b0  72 36 0a 72 78 09 52 4e  09 72 36 0a 72 79 09 52  |r6.rx.RN.r6.ry.R|
000000c0  4e 09 72 37 0a 64 09 52  4e 09 72 38 0a 73 30 09  |N.r7.d.RN.r8.s0.|
000000d0  52 4e 09 72 38 0a 73 31  09 52 4e 09 72 39 0a 73  |RN.r8.s1.RN.r9.s|
000000e0  32 09 52 4e 09 72 31 30  0a 73 33 09 52 4e 09 72  |2.RN.r10.s3.RN.r|
000000f0  31 31 0a 73 34 09 52 4e  09 72 31 32 0a 72 76 78  |11.s4.RN.r12.rvx|
00000100  09 52 4e 09 72 31 33 0a  72 76 79 09 52 4e 09 72  |.RN.r13.rvy.RN.r|
00000110  31 34 0a 62 69 64 6d 09  52 4e 09 72 31 33 0a 62  |14.bidm.RN.r13.b|
00000120  6a 64 6d 09 52 4e 09 72  31 34 0a 72 61 78 09 52  |jdm.RN.r14.rax.R|
00000130  4e 09 73 30 0a 72 61 79  09 52 4e 09 73 31 0a 72  |N.s0.ray.RN.s1.r|
00000140  61 76 78 09 52 4e 09 73  32 0a 72 61 76 79 09 52  |avx.RN.s2.ravy.R|
00000150  4e 09 73 33 0a 72 61 63  09 52 4e 09 73 34 0a 0a  |N.s3.rac.RN.s4..|
00000160  09 49 4d 50 4f 52 54 09  6e 0a 09 49 4d 50 4f 52  |.IMPORT.n..IMPOR|
00000170  54 09 62 6f 69 64 0a 09  49 4d 50 4f 52 54 09 72  |T.boid..IMPORT.r|
00000180  6c 32 0a 0a 76 62 6c 73  09 44 43 44 09 6e 2c 20  |l2..vbls.DCD.n, |
00000190  72 6c 32 2c 20 62 6f 69  64 0a 6e 32 73 70 09 44  |rl2, boid.n2sp.D|
000001a0  43 44 09 30 0a 61 72 62  6f 69 64 09 44 43 44 09  |CD.0.arboid.DCD.|
000001b0  30 0a 0a 3b 20 6e 32 6c  6f 6f 70 0a 3b 20 61 20  |0..; n2loop.; a |
000001c0  6c 65 61 66 20 41 50 43  53 20 66 75 6e 63 74 69  |leaf APCS functi|
000001d0  6f 6e 0a 3b 0a 3b 20 43  20 70 72 6f 74 6f 74 79  |on.;.; C prototy|
000001e0  70 65 3a 0a 3b 20 76 6f  69 64 20 6e 32 6c 6f 6f  |pe:.; void n2loo|
000001f0  70 28 76 6f 69 64 29 3b  0a 3b 0a 09 45 58 50 4f  |p(void);.;..EXPO|
00000200  52 54 09 6e 32 6c 6f 6f  70 0a 0a 6e 32 6e 73 74  |RT.n2loop..n2nst|
00000210  61 09 44 43 42 09 22 6e  32 6c 6f 6f 70 22 2c 20  |a.DCB."n2loop", |
00000220  30 0a 09 41 4c 49 47 4e  0a 6e 32 6e 65 6e 64 09  |0..ALIGN.n2nend.|
00000230  44 43 44 09 26 66 66 30  30 30 30 30 30 20 2b 20  |DCD.&ff000000 + |
00000240  6e 32 6e 65 6e 64 20 2d  20 6e 32 6e 73 74 61 0a  |n2nend - n2nsta.|
00000250  0a 6e 32 6c 6f 6f 70 0a  0a 09 53 54 4d 46 44 09  |.n2loop...STMFD.|
00000260  73 70 21 2c 20 7b 72 34  2d 72 39 2c 20 73 6c 2c  |sp!, {r4-r9, sl,|
00000270  20 66 70 2c 20 6c 72 7d  0a 09 53 54 52 09 73 70  | fp, lr}..STR.sp|
00000280  2c 20 6e 32 73 70 0a 09  41 44 52 09 72 34 2c 20  |, n2sp..ADR.r4, |
00000290  76 62 6c 73 0a 09 4c 44  4d 49 41 09 72 34 2c 20  |vbls..LDMIA.r4, |
000002a0  7b 72 34 2d 72 36 7d 0a  09 4c 44 52 09 72 6e 2c  |{r4-r6}..LDR.rn,|
000002b0  20 5b 72 6e 5d 0a 09 4c  44 52 09 72 62 6f 69 64  | [rn]..LDR.rboid|
000002c0  2c 20 5b 72 62 6f 69 64  5d 0a 09 53 54 52 09 72  |, [rboid]..STR.r|
000002d0  62 6f 69 64 2c 20 61 72  62 6f 69 64 0a 09 4c 44  |boid, arboid..LD|
000002e0  52 09 72 72 6c 32 2c 20  5b 72 72 6c 32 5d 0a 09  |R.rrl2, [rrl2]..|
000002f0  53 55 42 09 69 2c 20 72  6e 2c 20 23 31 0a 09 4d  |SUB.i, rn, #1..M|
00000300  4f 56 09 62 69 2c 20 72  62 6f 69 64 0a 6e 32 5f  |OV.bi, rboid.n2_|
00000310  6c 31 0a 09 53 55 42 09  6a 2c 20 72 6e 2c 20 69  |l1..SUB.j, rn, i|
00000320  0a 09 4c 44 52 09 72 62  6f 69 64 2c 20 61 72 62  |..LDR.rboid, arb|
00000330  6f 69 64 0a 09 41 44 44  09 62 6a 2c 20 72 62 6f  |oid..ADD.bj, rbo|
00000340  69 64 2c 20 6a 2c 20 41  53 4c 20 23 36 0a 09 53  |id, j, ASL #6..S|
00000350  55 42 09 6a 2c 20 72 6e  2c 20 6a 0a 6e 32 5f 6c  |UB.j, rn, j.n2_l|
00000360  32 0a 09 4c 44 52 09 73  31 2c 20 5b 62 69 2c 20  |2..LDR.s1, [bi, |
00000370  23 78 5d 0a 09 4c 44 52  09 73 32 2c 20 5b 62 6a  |#x]..LDR.s2, [bj|
00000380  2c 20 23 78 5d 0a 09 53  55 42 53 09 73 31 2c 20  |, #x]..SUBS.s1, |
00000390  73 31 2c 20 73 32 0a 09  4d 4f 56 09 72 78 2c 20  |s1, s2..MOV.rx, |
000003a0  73 31 0a 09 52 53 42 4d  49 09 73 31 2c 20 73 31  |s1..RSBMI.s1, s1|
000003b0  2c 20 23 30 0a 09 4d 4f  56 09 73 32 2c 20 73 31  |, #0..MOV.s2, s1|
000003c0  2c 20 4c 53 52 20 23 33  0a 09 4d 4f 56 09 73 31  |, LSR #3..MOV.s1|
000003d0  2c 20 73 32 2c 20 4c 53  52 20 23 31 36 0a 09 42  |, s2, LSR #16..B|
000003e0  49 43 09 73 32 2c 20 73  32 2c 20 73 31 2c 20 4c  |IC.s2, s2, s1, L|
000003f0  53 4c 20 23 31 36 0a 09  4d 55 4c 09 73 33 2c 20  |SL #16..MUL.s3, |
00000400  73 32 2c 20 73 32 0a 09  41 44 44 09 73 32 2c 20  |s2, s2..ADD.s2, |
00000410  73 32 2c 20 73 31 2c 20  4c 53 4c 20 23 31 35 0a  |s2, s1, LSL #15.|
00000420  09 4d 55 4c 09 73 31 2c  20 73 32 2c 20 73 31 0a  |.MUL.s1, s2, s1.|
00000430  09 4d 4f 56 53 09 73 33  2c 20 73 33 2c 20 4c 53  |.MOVS.s3, s3, LS|
00000440  52 20 23 31 36 0a 09 41  44 43 09 73 33 2c 20 73  |R #16..ADC.s3, s|
00000450  33 2c 20 73 31 2c 20 4c  53 4c 20 23 31 0a 09 4c  |3, s1, LSL #1..L|
00000460  44 52 09 62 69 64 6d 2c  20 5b 62 69 2c 20 23 64  |DR.bidm, [bi, #d|
00000470  6d 5d 0a 09 4c 44 52 09  62 6a 64 6d 2c 20 5b 62  |m]..LDR.bjdm, [b|
00000480  6a 2c 20 23 64 6d 5d 0a  09 43 4d 50 09 73 33 2c  |j, #dm]..CMP.s3,|
00000490  20 62 69 64 6d 0a 09 43  4d 50 47 45 09 73 33 2c  | bidm..CMPGE.s3,|
000004a0  20 62 6a 64 6d 0a 09 43  4d 50 47 45 09 73 33 2c  | bjdm..CMPGE.s3,|
000004b0  20 72 72 6c 32 0a 09 42  47 45 09 6e 32 5f 6e 65  | rrl2..BGE.n2_ne|
000004c0  78 74 6a 0a 0a 09 4c 44  52 09 73 31 2c 20 5b 62  |xtj...LDR.s1, [b|
000004d0  69 2c 20 23 79 5d 0a 09  4c 44 52 09 73 32 2c 20  |i, #y]..LDR.s2, |
000004e0  5b 62 6a 2c 20 23 79 5d  0a 09 53 55 42 53 09 73  |[bj, #y]..SUBS.s|
000004f0  31 2c 20 73 31 2c 20 73  32 0a 09 4d 4f 56 09 72  |1, s1, s2..MOV.r|
00000500  79 2c 20 73 31 0a 09 52  53 42 4d 49 09 73 31 2c  |y, s1..RSBMI.s1,|
00000510  20 73 31 2c 20 23 30 0a  09 4d 4f 56 09 73 32 2c  | s1, #0..MOV.s2,|
00000520  20 73 31 2c 20 4c 53 52  20 23 33 0a 09 4d 4f 56  | s1, LSR #3..MOV|
00000530  09 73 31 2c 20 73 32 2c  20 4c 53 52 20 23 31 36  |.s1, s2, LSR #16|
00000540  0a 09 42 49 43 09 73 32  2c 20 73 32 2c 20 73 31  |..BIC.s2, s2, s1|
00000550  2c 20 4c 53 4c 20 23 31  36 0a 09 4d 55 4c 09 64  |, LSL #16..MUL.d|
00000560  2c 20 73 32 2c 20 73 32  0a 09 41 44 44 09 73 32  |, s2, s2..ADD.s2|
00000570  2c 20 73 32 2c 20 73 31  2c 20 4c 53 4c 20 23 31  |, s2, s1, LSL #1|
00000580  35 0a 09 4d 55 4c 09 73  31 2c 20 73 32 2c 20 73  |5..MUL.s1, s2, s|
00000590  31 0a 09 4d 4f 56 53 09  64 2c 20 64 2c 20 4c 53  |1..MOVS.d, d, LS|
000005a0  52 20 23 31 36 0a 09 41  44 43 09 64 2c 20 64 2c  |R #16..ADC.d, d,|
000005b0  20 73 31 2c 20 4c 53 4c  20 23 31 0a 09 41 44 44  | s1, LSL #1..ADD|
000005c0  09 64 2c 20 64 2c 20 73  33 0a 09 43 4d 50 09 64  |.d, d, s3..CMP.d|
000005d0  2c 20 62 69 64 6d 0a 09  43 4d 50 47 45 09 64 2c  |, bidm..CMPGE.d,|
000005e0  20 62 6a 64 6d 0a 09 43  4d 50 47 45 09 64 2c 20  | bjdm..CMPGE.d, |
000005f0  72 72 6c 32 0a 09 42 47  45 09 6e 32 5f 6e 65 78  |rrl2..BGE.n2_nex|
00000600  74 6a 0a 0a 09 41 53 53  45 52 54 09 64 3c 73 33  |tj...ASSERT.d<s3|
00000610  0a 09 41 53 53 45 52 54  09 69 6d 3d 64 6d 2b 34  |..ASSERT.im=dm+4|
00000620  0a 09 53 55 42 09 73 33  2c 20 72 6e 2c 20 6a 0a  |..SUB.s3, rn, j.|
00000630  09 43 4d 50 09 64 2c 20  62 69 64 6d 0a 09 41 44  |.CMP.d, bidm..AD|
00000640  44 4c 54 09 73 34 2c 20  62 69 2c 20 23 64 6d 0a  |DLT.s4, bi, #dm.|
00000650  09 53 54 4d 4c 54 49 41  09 73 34 2c 20 7b 64 2c  |.STMLTIA.s4, {d,|
00000660  20 73 33 7d 0a 09 53 55  42 09 73 33 2c 20 72 6e  | s3}..SUB.s3, rn|
00000670  2c 20 69 0a 09 53 55 42  09 73 33 2c 20 73 33 2c  |, i..SUB.s3, s3,|
00000680  20 23 31 0a 09 43 4d 50  09 64 2c 20 62 6a 64 6d  | #1..CMP.d, bjdm|
00000690  0a 09 41 44 44 4c 54 09  73 34 2c 20 62 6a 2c 20  |..ADDLT.s4, bj, |
000006a0  23 64 6d 0a 09 53 54 4d  4c 54 49 41 09 73 34 2c  |#dm..STMLTIA.s4,|
000006b0  20 7b 64 2c 20 73 33 7d  0a 09 43 4d 50 09 64 2c  | {d, s3}..CMP.d,|
000006c0  20 72 72 6c 32 0a 09 42  47 45 09 6e 32 5f 6e 65  | rrl2..BGE.n2_ne|
000006d0  78 74 6a 0a 09 41 53 53  45 52 54 09 72 76 78 3c  |xtj..ASSERT.rvx<|
000006e0  72 76 79 0a 09 41 53 53  45 52 54 09 76 79 3d 76  |rvy..ASSERT.vy=v|
000006f0  78 2b 34 0a 09 41 44 44  09 73 31 2c 20 62 6a 2c  |x+4..ADD.s1, bj,|
00000700  20 23 76 78 0a 09 4c 44  4d 49 41 09 73 31 2c 20  | #vx..LDMIA.s1, |
00000710  7b 72 76 78 2c 20 72 76  79 7d 0a 09 41 44 44 09  |{rvx, rvy}..ADD.|
00000720  72 61 78 2c 20 62 69 2c  20 23 61 78 0a 09 4c 44  |rax, bi, #ax..LD|
00000730  4d 49 41 09 72 61 78 2c  20 7b 72 61 78 2c 20 72  |MIA.rax, {rax, r|
00000740  61 79 2c 20 72 61 76 78  2c 20 72 61 76 79 2c 20  |ay, ravx, ravy, |
00000750  72 61 63 7d 0a 09 53 55  42 09 72 61 78 2c 20 72  |rac}..SUB.rax, r|
00000760  61 78 2c 20 72 78 0a 09  53 55 42 09 72 61 79 2c  |ax, rx..SUB.ray,|
00000770  20 72 61 79 2c 20 72 79  0a 09 41 44 44 09 72 61  | ray, ry..ADD.ra|
00000780  76 78 2c 20 72 61 76 78  2c 20 72 76 78 0a 09 41  |vx, ravx, rvx..A|
00000790  44 44 09 72 61 76 79 2c  20 72 61 76 79 2c 20 72  |DD.ravy, ravy, r|
000007a0  76 79 0a 09 41 44 44 09  72 61 63 2c 20 72 61 63  |vy..ADD.rac, rac|
000007b0  2c 20 23 31 0a 09 41 44  44 09 72 76 78 2c 20 62  |, #1..ADD.rvx, b|
000007c0  69 2c 20 23 61 78 0a 09  53 54 4d 49 41 09 72 76  |i, #ax..STMIA.rv|
000007d0  78 2c 20 7b 72 61 78 2c  20 72 61 79 2c 20 72 61  |x, {rax, ray, ra|
000007e0  76 78 2c 20 72 61 76 79  2c 20 72 61 63 7d 0a 09  |vx, ravy, rac}..|
000007f0  41 44 44 09 73 31 2c 20  62 69 2c 20 23 76 78 0a  |ADD.s1, bi, #vx.|
00000800  09 4c 44 4d 49 41 09 73  31 2c 20 7b 72 76 78 2c  |.LDMIA.s1, {rvx,|
00000810  20 72 76 79 7d 0a 09 41  44 44 09 72 61 78 2c 20  | rvy}..ADD.rax, |
00000820  62 6a 2c 20 23 61 78 0a  09 4c 44 4d 49 41 09 72  |bj, #ax..LDMIA.r|
00000830  61 78 2c 20 7b 72 61 78  2c 20 72 61 79 2c 20 72  |ax, {rax, ray, r|
00000840  61 76 78 2c 20 72 61 76  79 2c 20 72 61 63 7d 0a  |avx, ravy, rac}.|
00000850  09 41 44 44 09 72 61 78  2c 20 72 61 78 2c 20 72  |.ADD.rax, rax, r|
00000860  78 0a 09 41 44 44 09 72  61 79 2c 20 72 61 79 2c  |x..ADD.ray, ray,|
00000870  20 72 79 0a 09 41 44 44  09 72 61 76 78 2c 20 72  | ry..ADD.ravx, r|
00000880  61 76 78 2c 20 72 76 78  0a 09 41 44 44 09 72 61  |avx, rvx..ADD.ra|
00000890  76 79 2c 20 72 61 76 79  2c 20 72 76 79 0a 09 41  |vy, ravy, rvy..A|
000008a0  44 44 09 72 61 63 2c 20  72 61 63 2c 20 23 31 0a  |DD.rac, rac, #1.|
000008b0  09 41 44 44 09 72 76 78  2c 20 62 6a 2c 20 23 61  |.ADD.rvx, bj, #a|
000008c0  78 0a 09 53 54 4d 49 41  09 72 76 78 2c 20 7b 72  |x..STMIA.rvx, {r|
000008d0  61 78 2c 20 72 61 79 2c  20 72 61 76 78 2c 20 72  |ax, ray, ravx, r|
000008e0  61 76 79 2c 20 72 61 63  7d 0a 6e 32 5f 6e 65 78  |avy, rac}.n2_nex|
000008f0  74 6a 0a 09 41 44 44 09  62 6a 2c 20 62 6a 2c 20  |tj..ADD.bj, bj, |
00000900  23 36 34 0a 09 53 55 42  53 09 6a 2c 20 6a 2c 20  |#64..SUBS.j, j, |
00000910  23 31 0a 09 42 4e 45 09  6e 32 5f 6c 32 0a 09 41  |#1..BNE.n2_l2..A|
00000920  44 44 09 62 69 2c 20 62  69 2c 20 23 36 34 0a 09  |DD.bi, bi, #64..|
00000930  53 55 42 53 09 69 2c 20  69 2c 20 23 31 0a 09 42  |SUBS.i, i, #1..B|
00000940  4e 45 09 6e 32 5f 6c 31  0a 0a 09 4c 44 52 09 73  |NE.n2_l1...LDR.s|
00000950  70 2c 20 6e 32 73 70 0a  6e 32 5f 65 78 69 74 09  |p, n2sp.n2_exit.|
00000960  4c 44 4d 46 44 09 73 70  21 2c 20 7b 72 34 2d 72  |LDMFD.sp!, {r4-r|
00000970  39 2c 20 73 6c 2c 20 66  70 2c 20 70 63 7d 5e 0a  |9, sl, fp, pc}^.|
00000980  0a 0a 0a 09 45 4e 44 0a                           |....END.|
00000988