	
;*********************************************************************
;* macros
;*********************************************************************	
	
	.macro	cladr2d(cc,dest,address,x,y,width)
		fead.cc	y,width
		nop.cc
		mul.cc	hold
		add.cc	hold,last,x
		lsl.cc	hold,last,1
		add.cc	dest,last,address ;dest = address + (x + (y * width))*2
	.endmacro
	
;*********************************************************************
;* defines
;*********************************************************************		
	
	.def	screenWidth	720
	.def	screenHeight	450
	
	.def	syncAddress	$d3000000
	
;*********************************************************************
;* start
;*********************************************************************		
	
	org	hcoreStartPc

	;prolog
	
	nop
	nop
	nop
	nop

	;gssr	hold,0			;get core number
	;cmpeq	last,0
	;br.tc	notCoreZero
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	
	gssr	r38,1		;total core count
	gssr	r39,0		;y start is core number
	
	move	r40,0
	
	;
	
	;r0 = x
	;r1 = y
	;r2 = width
	;r3 = height
	;r4 = src data
	;r5 = dst data
	;r6 = width - 1
	;r31 = tx
	;r32 = ty
	;r33 = tx
	;r34 = ty
	;r35 = sinadr
	;r36 = w
	;r37 = w2
	;r38 = line add
	;r39 = ystart
	;r40 = sync cnt
	
	;store sync code
	
	move	hold,syncAddress
	moveh	hold,last,>>syncAddress
	add	r0,last,r39		;syncAddress + core num
	nop
	stw	r40,r0,0		;store sync num
	
	
	;
	
	
	move	r36,100
	move	r37,100
	
	
	

	
	;
	
loop	
	
	;
	
	move	r2,screenWidth
	move	r3,screenHeight
	sub	r6,r2,1
	
	move	hold,sin1024Pi2p5
	moveh	hold,last,>>sin1024Pi2p5
	add	r35,last,0		;r35 = sin1024Pi2p5
	
	move	hold,testPic
	moveh	hold,last,>>testPic
	add	r4,last,0		;r4 = src data

	move	hold,frame
	moveh	hold,last,>>frame
	add	r5,last,0		;r5 = dst data
	
	;
	
	move	r0,$7ff		;1023*2
	add	r36,r36,12	;w++
	add	r37,r37,16	;w2++
	and	r36,r36,r0
	and	r37,r37,r0

	;get sin cos
	
	add	r0,r36,r35
	add	r50,last,512
	add	r1,r37,r35
	add	r51,last,512
	
	
	ld	r31,r0,0
	ld	r32,r50,0
	ld	r33,r1,0
	ld	r34,r51,0
	
	; rqld	r0,0		;sin(w)
	; rqld	r0,512		;cos(w)
	; rqld	r1,0		;sin(w2)
	; rqld	r1,512		;cos(w2)
	
	; ld	r31
	; ld	r32
	; ld	r33
	; ld	r34
	
	asr	r31,r31,24
	asr	r32,r32,24
	asr	r33,r33,24
	asr	r34,r34,24
	
	;
	
	lsr	hold,r2,1	;	   width / 2
	add	r17,last,r31	;offsetX =           + tx
	
	lsr	hold,r3,1	;	   height / 2
	add	r18,last,r32	;offsetY =           + ty
	
	lsr	hold,r2,1	;	    width / 2
	add	r19,last,r33	;offset2X =           + tx2
	
	lsr	hold,r3,1	;	    height / 2
	add	r20,last,r34	;offset2Y =           + ty2

	;
	
	move	r1,r39	;y = 0
yLoop	
	;
	
	move	r0,0	;x = 0
	
	;
xLoop
	;get data

	.execm	cladr2d(ev,hold,r4,r0,r1,r2)	;a = b + (c + (d * e))*2 if cc
	ld	r16,last,0
	;rqld	last,0			;
	
	
	
	;process data
	
	;r16 = argb in
	;r17 = offsetX
	;r18 = offsetY
	;r19 = offsetX2
	;r20 = offsetY2
	
	;move	r17,419
	;move	r18,338
	;move	r19,306
	;move	r20,109
	
	sub	r21,r0,r17	;r21 = x - offsetX
	sub	r22,r1,r18	;r22 = y - offsetX
	sub	r23,r0,r19	;r23 = x - offsetX
	sub	r24,r1,r20	;r24 = y - offsetX
	
	fead	r21,r21
	fead	r22,r22
	mul_fead	r21,r23,r23	;r21 ^2
	mul_fead	r22,r24,r24	;r22 ^2
	mul	r23			;r23 ^2
	mul	r24			;r24 ^2
	
	add	r21,r21,r22
	add	hold,r23,r24
	asr	r127,last,2
	nop
	sub	hold,r21,r127
	asr	r21,last,6		;r21 = t
	
	;load
	
	;ld	r16			;value
	move	r25,$ff
	
	;
	
	lsr	r22,r16,16		;r
	lsr	r23,r16,8		;g
	and	r24,r16,r25		;b
	and	r22,r22,r25
	and	r23,r23,r25
	
	fead	r22,r21			;r g b * t
	fead	r23,r21
	mul_fead	r22,r24,r21
	mul	r23
	mul	r24
	
	asr	r22,r22,8		;r g b >> 8
	asr	r23,r23,8
	asr	r24,r24,8
	
	move	r26,0
	
	;<0 = neg
	
	cmplos	r22,0
	sub.ts	hold,r26,r22
	lsl.ts	r22,last,3
	cmplos	r23,0
	sub.ts	r23,r26,r23
	cmplos	r24,0
	sub.ts	r24,r26,r24
	
	cmple	r22,r25
	move.tc	r22,r25
	cmple	r23,r25
	move.tc	r23,r25
	cmple	r24,r25
	move.tc	r24,r25
	
	;to rgb
	
	lsl	r22,r22,16	;00RR 0000
	lsl	hold,r23,8	;0000 GG00
	or	hold,last,r24	;0000 GGBB
	or	r16,last,r22	;00RR GGBB
	
	;store data
	
	.execm	cladr2d(ev,r127,r5,r0,r1,r2)	;a = b + (c + (d * e))*2 if cc
	nop
	st	r16,r127,0
	
	;

	cmplo	r0,r2
	br.ts	xLoop
	add	r0,r0,1		;delay slot
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	
	;
	add	r1,r1,r38		;delay slot	y=y + total core count
	nop
	
	
	cmplo	r1,r3
	br.ts	yLoop
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	nop			;delay slot
	
	;sync
	
	gssr	r38,1		;total core count
	gssr	r39,0		;y start is core number
	
	add	r40,r40,1	;next one
	move	hold,syncAddress
	moveh	hold,last,>>syncAddress
	add	r2,last,0
	nop
	add	r0,r2,r39		;syncAddress + core num
	nop
	stw	r40,r0,0		;store sync num
	
	;r38 = total count
	
syncAgain	
	
	move	r0,0
	sub	r1,r38,1
	
syncLoop	

	add	hold,r2,r0		;syncaddress[corenum]
	;rqldw	last,0
	;ldw	r4
	ldw	r4,last,0
	nop
	cmpeq	r4,r40
	br.tc	syncAgain
	nop
	nop
	nop
	nop


	cmpeq	r1,r0	
	br.tc	syncLoop
	add	r0,r0,1
	nop
	nop
	nop
	
	;
		
	br	loop
	nop
	nop
	nop
	nop
	
	;epilog

notCoreZero	
	br	notCoreZero
	nop
	nop
	nop
	nop
	
	
sin1024Pi2p5	

	.data   $00000000,$00C90F87,$01921D1F,$025B26D7,$03242ABE,$03ED26E6,$04B6195D,$057F0034,$0647D97C,$0710A344,$07D95B9E,$08A2009A,$096A9049,$0A3308BC,$0AFB6805,$0BC3AC35,$0C8BD35E,$0D53DB92,$0E1BC2E3,$0EE38765,$0FAB272B,$1072A047,$1139F0CE,$120116D4,$12C8106E,$138EDBB0,$145576B1,$151BDF85,$15E21444,$16A81304,$176DD9DE,$183366E8,$18F8B83C,$19BDCBF2,$1A82A025,$1B4732EF,$1C0B826A,$1CCF8CB2,$1D934FE5,$1E56CA1D,$1F19F97B,$1FDCDC1A,$209F701C,$2161B39F,$2223A4C5,$22E541AE,$23A6887E,$24677757,$25280C5D,$25E845B5,$26A82185,$27679DF3,$2826B928,$28E5714A,$29A3C484,$2A61B101,$2B1F34EB,$2BDC4E6F,$2C98FBBA,$2D553AFB,$2E110A61,$2ECC681E,$2F875262,$3041C760,$30FBC54D,$31B54A5D,$326E54C7,$3326E2C2,$33DEF287,$3496824F,$354D9056,$36041AD8,$36BA2013,$376F9E45,$382493AF,$38D8FE92,$398CDD32,$3A402DD1,$3AF2EEB6,$3BA51E28,$3C56BA6F,$3D07C1D5,$3DB832A5,$3E680B2C,$3F1749B7,$3FC5EC97,$4073F21C,$4121589A,$41CE1E64,$427A41D0,$4325C135,$43D09AEC,$447ACD50,$452456BC,$45CD358F,$46756827,$471CECE6,$47C3C22E,$4869E664,$490F57EE,$49B41533,$4A581C9D,$4AFB6C97,$4B9E038F,$4C3FDFF3,$4CE10033,$4D8162C3,$4E210617,$4EBFE8A4,$4F5E08E2,$4FFB654C,$5097FC5D,$5133CC93,$51CED46E,$5269126E,$53028517,$539B2AEF,$5433027D,$54CA0A4A,$556040E2,$55F5A4D1,$568A34A9,$571DEEF9,$57B0D255,$5842DD54,$58D40E8C,$59646497,$59F3DE11,$5A827999,$5B1035CE,$5B9D1153,$5C290ACC,$5CB420DF,$5D3E5236,$5DC79D7B,$5E50015C,$5ED77C89,$5F5E0DB2,$5FE3B38C,$60686CCE,$60EC382F,$616F146B,$61F1003E,$6271FA68,$62F201AB,$637114CB,$63EF328F,$646C59BE,$64E88925,$6563BF91,$65DDFBD2,$66573CBA,$66CF811F,$6746C7D7,$67BD0FBC,$683257AA,$68A69E80,$6919E31F,$698C246B,$69FD614A,$6A6D98A3,$6ADCC963,$6B4AF278,$6BB812D0,$6C24295F,$6C8F351B,$6CF934FB,$6D6227F9,$6DCA0D13,$6E30E349,$6E96A99C,$6EFB5F11,$6F5F02B1,$6FC19384,$70231099,$708378FE,$70E2CBC5,$71410804,$719E2CD1,$71FA3948,$72552C84,$72AF05A6,$7307C3CF,$735F6625,$73B5EBD0,$740B53FA,$745F9DD0,$74B2C883,$7504D344,$7555BD4B,$75A585CE,$75F42C0A,$7641AF3C,$768E0EA5,$76D94988,$77235F2C,$776C4EDA,$77B417DF,$77FAB988,$78403328,$78848413,$78C7ABA1,$7909A92C,$794A7C11,$798A23B0,$79C89F6D,$7A05EEAC,$7A4210D7,$7A7D055A,$7AB6CBA3,$7AEF6323,$7B26CB4E,$7B5D039D,$7B920B88,$7BC5E28F,$7BF8882F,$7C29FBED,$7C5A3D4F,$7C894BDD,$7CB72723,$7CE3CEB1,$7D0F4217,$7D3980EB,$7D628AC5,$7D8A5F3F,$7DB0FDF7,$7DD6668E,$7DFA98A7,$7E1D93E9,$7E3F57FE,$7E5FE492,$7E7F3956,$7E9D55FB,$7EBA3A38,$7ED5E5C5,$7EF0585F,$7F0991C3,$7F2191B3,$7F3857F5,$7F4DE450,$7F62368E,$7F754E7F,$7F872BF2,$7F97CEBC,$7FA736B3,$7FB563B2,$7FC25595,$7FCE0C3D,$7FD8878D,$7FE1C76A,$7FE9CBBF,$7FF09477,$7FF62181,$7FFA72D0,$7FFD8859,$7FFF6215,$7FFFFFFF,$7FFF6215,$7FFD8859,$7FFA72D0,$7FF62181,$7FF09477,$7FE9CBBF,$7FE1C76A,$7FD8878D,$7FCE0C3D,$7FC25595,$7FB563B2,$7FA736B3,$7F97CEBC,$7F872BF2,$7F754E7F,$7F62368E,$7F4DE450,$7F3857F5,$7F2191B3,$7F0991C3,$7EF0585F,$7ED5E5C5,$7EBA3A38,$7E9D55FB,$7E7F3956,$7E5FE492,$7E3F57FE,$7E1D93E9,$7DFA98A7,$7DD6668E,$7DB0FDF7,$7D8A5F3F,$7D628AC5,$7D3980EB,$7D0F4217,$7CE3CEB1,$7CB72723,$7C894BDD,$7C5A3D4F,$7C29FBED,$7BF8882F,$7BC5E28F,$7B920B88,$7B5D039D,$7B26CB4E,$7AEF6323,$7AB6CBA3,$7A7D055A,$7A4210D7,$7A05EEAC,$79C89F6D,$798A23B0,$794A7C11,$7909A92C,$78C7ABA1,$78848413,$78403328,$77FAB988,$77B417DF,$776C4EDA,$77235F2C,$76D94988,$768E0EA5,$7641AF3C,$75F42C0A,$75A585CE,$7555BD4B,$7504D344,$74B2C883,$745F9DD0,$740B53FA,$73B5EBD0,$735F6625,$7307C3CF,$72AF05A6,$72552C84,$71FA3948,$719E2CD1,$71410804,$70E2CBC5,$708378FE,$70231099,$6FC19384,$6F5F02B1,$6EFB5F11,$6E96A99C,$6E30E349,$6DCA0D13,$6D6227F9,$6CF934FB,$6C8F351B,$6C24295F,$6BB812D0,$6B4AF278,$6ADCC963,$6A6D98A3,$69FD614A,$698C246B,$6919E31F,$68A69E80,$683257AA,$67BD0FBC,$6746C7D7,$66CF811F,$66573CBA,$65DDFBD2,$6563BF91,$64E88925,$646C59BE,$63EF328F,$637114CB,$62F201AB,$6271FA68,$61F1003E,$616F146B,$60EC382F,$60686CCE,$5FE3B38C,$5F5E0DB2,$5ED77C89,$5E50015C,$5DC79D7B,$5D3E5236,$5CB420DF,$5C290ACC,$5B9D1153,$5B1035CE,$5A827999,$59F3DE11,$59646497,$58D40E8C,$5842DD54,$57B0D255,$571DEEF9,$568A34A9,$55F5A4D1,$556040E2,$54CA0A4A,$5433027D,$539B2AEF,$53028517,$5269126E,$51CED46E,$5133CC93,$5097FC5D,$4FFB654C,$4F5E08E2,$4EBFE8A4,$4E210617,$4D8162C3,$4CE10033,$4C3FDFF3,$4B9E038F,$4AFB6C97,$4A581C9D,$49B41533,$490F57EE,$4869E664,$47C3C22E,$471CECE6,$46756827,$45CD358F,$452456BC,$447ACD50,$43D09AEC,$4325C135,$427A41D0,$41CE1E64,$4121589A,$4073F21C,$3FC5EC97,$3F1749B7,$3E680B2C,$3DB832A5,$3D07C1D5,$3C56BA6F,$3BA51E28,$3AF2EEB6,$3A402DD1,$398CDD32,$38D8FE92,$382493AF,$376F9E45,$36BA2013,$36041AD8,$354D9056,$3496824F,$33DEF287,$3326E2C2,$326E54C7,$31B54A5D,$30FBC54D,$3041C760,$2F875262,$2ECC681E,$2E110A61,$2D553AFB,$2C98FBBA,$2BDC4E6F,$2B1F34EB,$2A61B101,$29A3C484,$28E5714A,$2826B928,$27679DF3,$26A82185,$25E845B5,$25280C5D,$24677757,$23A6887E,$22E541AE,$2223A4C5,$2161B39F,$209F701C,$1FDCDC1A,$1F19F97B,$1E56CA1D,$1D934FE5,$1CCF8CB2,$1C0B826A,$1B4732EF,$1A82A025,$19BDCBF2,$18F8B83C,$183366E8,$176DD9DE,$16A81304,$15E21444,$151BDF85,$145576B1,$138EDBB0,$12C8106E,$120116D4,$1139F0CE,$1072A047,$0FAB272B,$0EE38765,$0E1BC2E3,$0D53DB92,$0C8BD35E,$0BC3AC35,$0AFB6805,$0A3308BC,$096A9049,$08A2009A,$07D95B9E,$0710A344,$0647D97C,$057F0034,$04B6195D,$03ED26E6,$03242ABE,$025B26D7,$01921D1F,$00C90F87,$00000000,$FF36F079,$FE6DE2E1,$FDA4D929,$FCDBD542,$FC12D91A,$FB49E6A3,$FA80FFCC,$F9B82684,$F8EF5CBC,$F826A462,$F75DFF66,$F6956FB7,$F5CCF744,$F50497FB,$F43C53CB,$F3742CA2,$F2AC246E,$F1E43D1D,$F11C789B,$F054D8D5,$EF8D5FB9,$EEC60F32,$EDFEE92C,$ED37EF92,$EC712450,$EBAA894F,$EAE4207B,$EA1DEBBC,$E957ECFC,$E8922622,$E7CC9918,$E70747C4,$E642340E,$E57D5FDB,$E4B8CD11,$E3F47D96,$E330734E,$E26CB01B,$E1A935E3,$E0E60685,$E02323E6,$DF608FE4,$DE9E4C61,$DDDC5B3B,$DD1ABE52,$DC597782,$DB9888A9,$DAD7F3A3,$DA17BA4B,$D957DE7B,$D898620D,$D7D946D8,$D71A8EB6,$D65C3B7C,$D59E4EFF,$D4E0CB15,$D423B191,$D3670446,$D2AAC505,$D1EEF59F,$D13397E2,$D078AD9E,$CFBE38A0,$CF043AB3,$CE4AB5A3,$CD91AB39,$CCD91D3E,$CC210D79,$CB697DB1,$CAB26FAA,$C9FBE528,$C945DFED,$C89061BB,$C7DB6C51,$C727016E,$C67322CE,$C5BFD22F,$C50D114A,$C45AE1D8,$C3A94591,$C2F83E2B,$C247CD5B,$C197F4D4,$C0E8B649,$C03A1369,$BF8C0DE4,$BEDEA766,$BE31E19C,$BD85BE30,$BCDA3ECB,$BC2F6514,$BB8532B0,$BADBA944,$BA32CA71,$B98A97D9,$B8E3131A,$B83C3DD2,$B796199C,$B6F0A812,$B64BEACD,$B5A7E363,$B5049369,$B461FC71,$B3C0200D,$B31EFFCD,$B27E9D3D,$B1DEF9E9,$B140175C,$B0A1F71E,$B0049AB4,$AF6803A3,$AECC336D,$AE312B92,$AD96ED92,$ACFD7AE9,$AC64D511,$ABCCFD83,$AB35F5B6,$AA9FBF1E,$AA0A5B2F,$A975CB57,$A8E21107,$A84F2DAB,$A7BD22AC,$A72BF174,$A69B9B69,$A60C21EF,$A57D8667,$A4EFCA32,$A462EEAD,$A3D6F534,$A34BDF21,$A2C1ADCA,$A2386285,$A1AFFEA4,$A1288377,$A0A1F24E,$A01C4C74,$9F979332,$9F13C7D1,$9E90EB95,$9E0EFFC2,$9D8E0598,$9D0DFE55,$9C8EEB35,$9C10CD71,$9B93A642,$9B1776DB,$9A9C406F,$9A22042E,$99A8C346,$99307EE1,$98B93829,$9842F044,$97CDA856,$97596180,$96E61CE1,$9673DB95,$96029EB6,$9592675D,$9523369D,$94B50D88,$9447ED30,$93DBD6A1,$9370CAE5,$9306CB05,$929DD807,$9235F2ED,$91CF1CB7,$91695664,$9104A0EF,$90A0FD4F,$903E6C7C,$8FDCEF67,$8F7C8702,$8F1D343B,$8EBEF7FC,$8E61D32F,$8E05C6B8,$8DAAD37C,$8D50FA5A,$8CF83C31,$8CA099DB,$8C4A1430,$8BF4AC06,$8BA06230,$8B4D377D,$8AFB2CBC,$8AAA42B5,$8A5A7A32,$8A0BD3F6,$89BE50C4,$8971F15B,$8926B678,$88DCA0D4,$8893B126,$884BE821,$88054678,$87BFCCD8,$877B7BED,$8738545F,$86F656D4,$86B583EF,$8675DC50,$86376093,$85FA1154,$85BDEF29,$8582FAA6,$8549345D,$85109CDD,$84D934B2,$84A2FC63,$846DF478,$843A1D71,$840777D1,$83D60413,$83A5C2B1,$8376B423,$8348D8DD,$831C314F,$82F0BDE9,$82C67F15,$829D753B,$8275A0C1,$824F0209,$82299972,$82056759,$81E26C17,$81C0A802,$81A01B6E,$8180C6AA,$8162AA05,$8145C5C8,$812A1A3B,$810FA7A1,$80F66E3D,$80DE6E4D,$80C7A80B,$80B21BB0,$809DC972,$808AB181,$8078D40E,$80683144,$8058C94D,$804A9C4E,$803DAA6B,$8031F3C3,$80277873,$801E3896,$80163441,$800F6B89,$8009DE7F,$80058D30,$800277A7,$80009DEB,$80000001,$80009DEB,$800277A7,$80058D30,$8009DE7F,$800F6B89,$80163441,$801E3896,$80277873,$8031F3C3,$803DAA6B,$804A9C4E,$8058C94D,$80683144,$8078D40E,$808AB181,$809DC972,$80B21BB0,$80C7A80B,$80DE6E4D,$80F66E3D,$810FA7A1,$812A1A3B,$8145C5C8,$8162AA05,$8180C6AA,$81A01B6E,$81C0A802,$81E26C17,$82056759,$82299972,$824F0209,$8275A0C1,$829D753B,$82C67F15,$82F0BDE9,$831C314F,$8348D8DD,$8376B423,$83A5C2B1,$83D60413,$840777D1,$843A1D71,$846DF478,$84A2FC63,$84D934B2,$85109CDD,$8549345D,$8582FAA6,$85BDEF29,$85FA1154,$86376093,$8675DC50,$86B583EF,$86F656D4,$8738545F,$877B7BED,$87BFCCD8,$88054678,$884BE821,$8893B126,$88DCA0D4,$8926B678,$8971F15B,$89BE50C4,$8A0BD3F6,$8A5A7A32,$8AAA42B5,$8AFB2CBC,$8B4D377D,$8BA06230,$8BF4AC06,$8C4A1430,$8CA099DB,$8CF83C31,$8D50FA5A,$8DAAD37C,$8E05C6B8,$8E61D32F,$8EBEF7FC,$8F1D343B,$8F7C8702,$8FDCEF67,$903E6C7C,$90A0FD4F,$9104A0EF,$91695664,$91CF1CB7,$9235F2ED,$929DD807,$9306CB05,$9370CAE5,$93DBD6A1,$9447ED30,$94B50D88,$9523369D,$9592675D,$96029EB6,$9673DB95,$96E61CE1,$97596180,$97CDA856,$9842F044,$98B93829,$99307EE1,$99A8C346,$9A22042E,$9A9C406F,$9B1776DB,$9B93A642,$9C10CD71,$9C8EEB35,$9D0DFE55,$9D8E0598,$9E0EFFC2,$9E90EB95,$9F13C7D1,$9F979332,$A01C4C74,$A0A1F24E,$A1288377,$A1AFFEA4,$A2386285,$A2C1ADCA,$A34BDF21,$A3D6F534,$A462EEAD,$A4EFCA32,$A57D8667,$A60C21EF,$A69B9B69,$A72BF174,$A7BD22AC,$A84F2DAB,$A8E21107,$A975CB57,$AA0A5B2F,$AA9FBF1E,$AB35F5B6,$ABCCFD83,$AC64D511,$ACFD7AE9,$AD96ED92,$AE312B92,$AECC336D,$AF6803A3,$B0049AB4,$B0A1F71E,$B140175C,$B1DEF9E9,$B27E9D3D,$B31EFFCD,$B3C0200D,$B461FC71,$B5049369,$B5A7E363,$B64BEACD,$B6F0A812,$B796199C,$B83C3DD2,$B8E3131A,$B98A97D9,$BA32CA71,$BADBA944,$BB8532B0,$BC2F6514,$BCDA3ECB,$BD85BE30,$BE31E19C,$BEDEA766,$BF8C0DE4,$C03A1369,$C0E8B649,$C197F4D4,$C247CD5B,$C2F83E2B,$C3A94591,$C45AE1D8,$C50D114A,$C5BFD22F,$C67322CE,$C727016E,$C7DB6C51,$C89061BB,$C945DFED,$C9FBE528,$CAB26FAA,$CB697DB1,$CC210D79,$CCD91D3E,$CD91AB39,$CE4AB5A3,$CF043AB3,$CFBE38A0,$D078AD9E,$D13397E2,$D1EEF59F,$D2AAC505,$D3670446,$D423B191,$D4E0CB15,$D59E4EFF,$D65C3B7C,$D71A8EB6,$D7D946D8,$D898620D,$D957DE7B,$DA17BA4B,$DAD7F3A3,$DB9888A9,$DC597782,$DD1ABE52,$DDDC5B3B,$DE9E4C61,$DF608FE4,$E02323E6,$E0E60685,$E1A935E3,$E26CB01B,$E330734E,$E3F47D96,$E4B8CD11,$E57D5FDB,$E642340E,$E70747C4,$E7CC9918,$E8922622,$E957ECFC,$EA1DEBBC,$EAE4207B,$EBAA894F,$EC712450,$ED37EF92,$EDFEE92C,$EEC60F32,$EF8D5FB9,$F054D8D5,$F11C789B,$F1E43D1D,$F2AC246E,$F3742CA2,$F43C53CB,$F50497FB,$F5CCF744,$F6956FB7,$F75DFF66,$F826A462,$F8EF5CBC,$F9B82684,$FA80FFCC,$FB49E6A3,$FC12D91A,$FCDBD542,$FDA4D929,$FE6DE2E1,$FF36F079,$00000000,$00C90F87,$01921D1F,$025B26D7,$03242ABE,$03ED26E6,$04B6195D,$057F0034,$0647D97C,$0710A344,$07D95B9E,$08A2009A,$096A9049,$0A3308BC,$0AFB6805,$0BC3AC35,$0C8BD35E,$0D53DB92,$0E1BC2E3,$0EE38765,$0FAB272B,$1072A047,$1139F0CE,$120116D4,$12C8106E,$138EDBB0,$145576B1,$151BDF85,$15E21444,$16A81304,$176DD9DE,$183366E8,$18F8B83C,$19BDCBF2,$1A82A025,$1B4732EF,$1C0B826A,$1CCF8CB2,$1D934FE5,$1E56CA1D,$1F19F97B,$1FDCDC1A,$209F701C,$2161B39F,$2223A4C5,$22E541AE,$23A6887E,$24677757,$25280C5D,$25E845B5,$26A82185,$27679DF3,$2826B928,$28E5714A,$29A3C484,$2A61B101,$2B1F34EB,$2BDC4E6F,$2C98FBBA,$2D553AFB,$2E110A61,$2ECC681E,$2F875262,$3041C760,$30FBC54D,$31B54A5D,$326E54C7,$3326E2C2,$33DEF287,$3496824F,$354D9056,$36041AD8,$36BA2013,$376F9E45,$382493AF,$38D8FE92,$398CDD32,$3A402DD1,$3AF2EEB6,$3BA51E28,$3C56BA6F,$3D07C1D5,$3DB832A5,$3E680B2C,$3F1749B7,$3FC5EC97,$4073F21C,$4121589A,$41CE1E64,$427A41D0,$4325C135,$43D09AEC,$447ACD50,$452456BC,$45CD358F,$46756827,$471CECE6,$47C3C22E,$4869E664,$490F57EE,$49B41533,$4A581C9D,$4AFB6C97,$4B9E038F,$4C3FDFF3,$4CE10033,$4D8162C3,$4E210617,$4EBFE8A4,$4F5E08E2,$4FFB654C,$5097FC5D,$5133CC93,$51CED46E,$5269126E,$53028517,$539B2AEF,$5433027D,$54CA0A4A,$556040E2,$55F5A4D1,$568A34A9,$571DEEF9,$57B0D255,$5842DD54,$58D40E8C,$59646497,$59F3DE11,$5A827999,$5B1035CE,$5B9D1153,$5C290ACC,$5CB420DF,$5D3E5236,$5DC79D7B,$5E50015C,$5ED77C89,$5F5E0DB2,$5FE3B38C,$60686CCE,$60EC382F,$616F146B,$61F1003E,$6271FA68,$62F201AB,$637114CB,$63EF328F,$646C59BE,$64E88925,$6563BF91,$65DDFBD2,$66573CBA,$66CF811F,$6746C7D7,$67BD0FBC,$683257AA,$68A69E80,$6919E31F,$698C246B,$69FD614A,$6A6D98A3,$6ADCC963,$6B4AF278,$6BB812D0,$6C24295F,$6C8F351B,$6CF934FB,$6D6227F9,$6DCA0D13,$6E30E349,$6E96A99C,$6EFB5F11,$6F5F02B1,$6FC19384,$70231099,$708378FE,$70E2CBC5,$71410804,$719E2CD1,$71FA3948,$72552C84,$72AF05A6,$7307C3CF,$735F6625,$73B5EBD0,$740B53FA,$745F9DD0,$74B2C883,$7504D344,$7555BD4B,$75A585CE,$75F42C0A,$7641AF3C,$768E0EA5,$76D94988,$77235F2C,$776C4EDA,$77B417DF,$77FAB988,$78403328,$78848413,$78C7ABA1,$7909A92C,$794A7C11,$798A23B0,$79C89F6D,$7A05EEAC,$7A4210D7,$7A7D055A,$7AB6CBA3,$7AEF6323,$7B26CB4E,$7B5D039D,$7B920B88,$7BC5E28F,$7BF8882F,$7C29FBED,$7C5A3D4F,$7C894BDD,$7CB72723,$7CE3CEB1,$7D0F4217,$7D3980EB,$7D628AC5,$7D8A5F3F,$7DB0FDF7,$7DD6668E,$7DFA98A7,$7E1D93E9,$7E3F57FE,$7E5FE492,$7E7F3956,$7E9D55FB,$7EBA3A38,$7ED5E5C5,$7EF0585F,$7F0991C3,$7F2191B3,$7F3857F5,$7F4DE450,$7F62368E,$7F754E7F,$7F872BF2,$7F97CEBC,$7FA736B3,$7FB563B2,$7FC25595,$7FCE0C3D,$7FD8878D,$7FE1C76A,$7FE9CBBF,$7FF09477,$7FF62181,$7FFA72D0,$7FFD8859,$7FFF6215,$7FFFFFFF   
	
	move	r1,r2   