;********************************************************************* ;* 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 r1,r37,r35 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 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 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