home *** CD-ROM | disk | FTP | other *** search
-
-
- ô>SCROLL3
- ë13
-
- (max=100
- 2+Þexit(max),exitbottom(max),exittop(max)
- <!Þexitright(max),exitleft(max)
- AÞexit2(max),exit3(max)
- PT%=&30000:code=&70000
- ZWSC=0:oldX=1:Y=2:XST=3:temp=4:SCEND=5:R=10:I=6:A=7:B=8:X=9:pixcnt=11:count=12:SC2=12
- dtable=12
- nãP=0 ¸ 2 ⇦2:P%=code:[OPT P
- x.initialise
- ŵMOV R2,#T%
- ……MOV R0,#0:.L:MOV R3,R0,ASR#16:MUL R1,R3,R3:TST R1,#&E0000000:MOV R1,R1,ASR#13:MOV R1,R1,LSL#16:MOVNE R1,#&C0000000:STR R1,[R2,R0,LSR#14]
- „ADDS R0,R0,#&10000
- BNE L:MOVS PC,R14
- ª.mandelbrot
- ´
- \do pass1
- ¾MOV table,#T%
- È.rowloop
- ÒMOV X,oldX
- ÜMOV pixcnt,#80:.dopixel
- æMOV R,X:MOV I,Y
- ð]:ãI%=1 ¸ max:òiter(I%):í
- úãI%=1 ¸ max:òexit(I%):í
- [OPT P
- .donerow
- $ADD Y,Y,XST,ASL#2:ADD SC,SC,#960
- "CMP SC,SCEND:BMI rowloop
- ,MOVS PC,R14
- 6
- .pass2
- @$ADD Y,Y,XST,ASL#1:ADD SC,SC,#640
- JMOV table,#T%
- T
- .rowloop2
- ^MOV X,oldX
- hMOV pixcnt,#160:.dopixel2
- r%LDRB I,[SC]:TST I,#128:BNE skipit
- |1LDRB R,[SC,#-640]:€ R,R,#127:CMP R,I:BNE doit
- ŷ0LDRB R,[SC,#640]:€ R,R,#127:CMP R,I:BNE doit
- ‘/LDRB R,[SC,#-2]:€ R,R,#127:CMP R,I:BNE doit
- Œ0LDRB R,[SC,#2]:€ R,R,#127:CMP R,I:BEQ skipit
- ¤ .doit
- ®MOV R,X:MOV I,Y
- ¸]:ãI%=1 ¸ max:òiter2(I%):í
- ÂãI%=1 ¸ max:òexit2(I%):í
- Ì
- [OPT P
- Ö.skipit
- àEADD SC,SC,#2:ADD X,X,XST,ASL#1:SUBS pixcnt,pixcnt,#1:BNE dopixel2
- ê
- .donerow2
- ô$ADD Y,Y,XST,ASL#1:ADD SC,SC,#320
- þCMP SC,SCEND:BMI rowloop2
- MOVS PC,R14
- .pass3
- ADD Y,Y,XST:ADD SC,SC,#320
- &MOV table,#T%
- 0
- .rowloop3
- :MOV X,oldX
- DMOV pixcnt,#320:.dopixel3
- N&LDRB I,[SC]:TST I,#128:BNE skipit2
- X2LDRB R,[SC,#-320]:€ R,R,#127:CMP R,I:BNE doit2
- b1LDRB R,[SC,#320]:€ R,R,#127:CMP R,I:BNE doit2
- l0LDRB R,[SC,#-1]:€ R,R,#127:CMP R,I:BNE doit2
- v1LDRB R,[SC,#1]:€ R,R,#127:CMP R,I:BEQ skipit2
- €
- .doit2
- ⇩MOV R,X:MOV I,Y
- “]:ãI%=1 ¸ max:òiter3(I%):í
- fiãI%=1 ¸ max:òexit3(I%):í
- ¨
- [OPT P
- ².skipit2
- ¼?ADD SC,SC,#1:ADD X,X,XST:SUBS pixcnt,pixcnt,#1:BNE dopixel3
- Æ
- .donerow3
- ÐADD Y,Y,XST
- ÚCMP SC,SCEND:BMI rowloop3
- äMOVS PC,R14
- î.clearup
- ø4MOV 10,#127:☓R 10,10,10,ASL#8:☓R 10,10,10,ASL#16
- .clearloop
- 8LDMIA (SC),{1-4}:€ 1,1,10:€ 2,2,10:€ 3,3,10:€ 4,4,10
- 0STMIA (SC)!,{1-4}:CMP SC,SCEND:BMI clearloop
- MOV PC,R14
- *.temp2 EQUD 0
- 4
- .scrollup
- >STR oldX,temp2:MOV 1,SCEND
- HADD SC2,SC,#320:.L9
- R*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- \*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- f*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- p*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- z*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- ☓*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- ‰*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- —*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- ¢*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- ¬*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}
- ¶CMP SC2,1:BMI L9
- ÀLDR X,temp2
- ÊMOV table,#T%
- Ô%ADD Y,Y,XST,ASL#8:MOV pixcnt,#320
- Þ.dopixelbottom
- èQMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òiterbottom(I%):í:ãI%=1 ¸ max:òexitbottom(I%):í
- ò
- [OPT P
- ü.donerowbottom MOVS PC,R14
- .temp3 EQUD 0
- .scrolldown
- STR oldX,temp3:MOV 1,SC
- $ADD SC,SC,#81920
- .SUB SC2,SC,#320:.L10
- 8*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- B*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- L*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- V*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- `*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- j*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- t*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- ~*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- ⇦*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- ‹*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11}
- †CMP SC2,1:BNE L10
- ¦SUB SC,SC,#320
- °LDR X,temp3
- ºMOV table,#T%
- ÄSUB Y,Y,XST:MOV pixcnt,#320
- Î.dopixeltop
- ØKMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òitertop(I%):í:ãI%=1 ¸ max:òexittop(I%):í
- â
- [OPT P
- ì.donerowtop MOVS PC,R14
- ö.temp4 EQUD 0