home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
t
/
tripatron
/
!TripATron
/
Scroll3
< prev
Wrap
Text File
|
1992-01-03
|
8KB
|
58 lines
ô>SCROLL3ë13(max=1002+Þexit(max),exitbottom(max),exittop(max)<!Þexitright(max),exitleft(max)AÞexit2(max),exit3(max)PT%=&30000:code=&70000ZWSC=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=12dtable=12nãP=0 ¸ 2 ⇦2:P%=code:[OPT Px.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,R146
.pass2@$ADD Y,Y,XST,ASL#1:ADD SC,SC,#640JMOV table,#T%T.rowloop2^MOV X,oldXhMOV pixcnt,#160:.dopixel2r%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 rowloop2MOVS PC,R14
.pass3ADD Y,Y,XST:ADD SC,SC,#320&MOV table,#T%0.rowloop3:MOV X,oldXDMOV pixcnt,#320:.dopixel3N&LDRB I,[SC]:TST I,#128:BNE skipit2X2LDRB R,[SC,#-320]:€ R,R,#127:CMP R,I:BNE doit2b1LDRB R,[SC,#320]:€ R,R,#127:CMP R,I:BNE doit2l0LDRB R,[SC,#-1]:€ R,R,#127:CMP R,I:BNE doit2v1LDRB 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.clearloop8LDMIA (SC),{1-4}:€ 1,1,10:€ 2,2,10:€ 3,3,10:€ 4,4,100STMIA (SC)!,{1-4}:CMP SC,SCEND:BMI clearloop MOV PC,R14*.temp2 EQUD 04.scrollup>STR oldX,temp2:MOV 1,SCENDHADD SC2,SC,#320:.L9R*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
.scrollleft
STR oldX,temp4:MOV 1,SCEND
.L11
LDMIA (SC),{4-12}
(]:ãI%=4 ¸ 11
2
[OPT P
<*MOV I%,I%,ASR#8:☓R I%,I%,(I%+1),ASL#24
F]:íI%:[OPT P
PSTMIA (SC)!,{4-11}
ZCMP SC,1:BNE L11
dQSUBS SC,SC,#81920:ADD SC,SC,#320:SUB SC,SC,#1:\set SC to top right hand pixel
nLDR X,temp4
xMADD X,X,XST,ASL#8:ADD X,X,XST,ASL#6:\set X to thing for right hand column
ŵMOV table,#T%
…MOV pixcnt,#256
„.dopixelright
OMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òiterright(I%):í:ãI%=1 ¸ max:òexitright(I%):í
ª
[OPT P
´.donecolright MOVS PC,R14
¾.temp5 EQUD 0
È.scrollright
ÒSTR oldX,temp5:ADD 1,SC,#32
ÜMOV SC,SCEND
æ.L12
ðLDMDB (SC),{4-12}
ú]:ãI%=12 ¸ 5 ⇦ -1
[OPT P*MOV I%,I%,ASL#8:☓R I%,I%,(I%-1),ASR#24]:íI%:[OPT P"STMDB (SC)!,{5-12},CMP SC,1:BNE L126;\special case, as can't allow a read to 'screenstart'-4@LDMDB (SC),{5-12}J]:ãI%=12 ¸ 5 ⇦ -1T
[OPT P^*MOV I%,I%,ASL#8:☓R I%,I%,(I%-1),ASR#24h]:íI%:[OPT PrSTMDB (SC)!,{5-12}|LDR X,temp5ŷMOV table,#T%‘MOV pixcnt,#256Œ.dopixelleft¤MMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òiterleft(I%):í:ãI%=1 ¸ max:òexitleft(I%):í®
[OPT P¸.donecolleft MOVS PC,R14ÂMOV PC,R14Ì]:íÖÖinitialiseàA%=¤screenstartêX=-2:Y=-1.5:S=3/256ô3B%=(X*8192)<<16:C%=(Y*8192)<<16:D%=(S*8192)<<16þF%=A%+81920Ñ=0Ñ=0:Ömandelbrot:T%=’&AÖpass2:K%=’:Öpass2:U%=’:Öpass3:L%=’:Öpass3:V%=’:Öclearup:W%=’0A=¥:çA=56 Öscrollup:C%+=D%DçA=50 Öscrolldown:C%-=D%NçA=52 Öscrollleft:B%+=D%XçA=54 Öscrollright:B%-=D%b'çA=49 S=S/1.3:D%=(S*8192)<<16:å™T\Ll'çA=57 S=S*1.3:D%=(S*8192)<<16:å™T\Lv å™TpL€àøÝòiterbottom(I%)
[OPT P1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]ADDS temp,A,B )BCS exitbottom(I%):BMI exitbottom(I%)*;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,Y4SUB R,A,B:ADD R,R,X>]:áHÝòexitbottom(I%)R
[OPT P\Ŵ.exitbottom(I%):MOV A,#(-I%*(I%<>max)):STRB A,[SC],#1:ADD X,X,XST:SUBS pixcnt,pixcnt,#1:BNE dopixelbottom:B donerowbottom:]:áfÝòitertop(I%)p
[OPT Pz1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]☓ADDS temp,A,B‰#BCS exittop(I%):BMI exittop(I%)—;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,Y¢SUB R,A,B:ADD R,R,X¬]:á¶Ýòexittop(I%)À
[OPT PÊx.exittop(I%):MOV A,#(-I%*(I%<>max)):STRB A,[SC],#1:ADD X,X,XST:SUBS pixcnt,pixcnt,#1:BNE dopixeltop:B donerowtop:]:áÔÝòiterright(I%)Þ
[OPT Pè1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]òADDS temp,A,Bü'BCS exitright(I%):BMI exitright(I%);ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,YSUB R,A,B:ADD R,R,X]:á$Ýòexitright(I%).
[OPT P8€.exitright(I%):MOV A,#(-I%*(I%<>max)):STRB A,[SC],#320:ADD Y,Y,XST:SUBS pixcnt,pixcnt,#1:BNE dopixelright:B donecolright:]:áBÝòiterleft(I%)L
[OPT PV1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]`ADDS temp,A,Bj%BCS exitleft(I%):BMI exitleft(I%)t;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,Y~SUB R,A,B:ADD R,R,X⇦]:á‹Ýòexitleft(I%)†
[OPT P¦}.exitleft(I%):MOV A,#(-I%*(I%<>max)):STRB A,[SC],#320:ADD Y,Y,XST:SUBS pixcnt,pixcnt,#1:BNE dopixelleft:B donecolleft:]:á°ºÝòiter2(I%)Ä
[OPT PÎ1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]ØADDS temp,A,BâBCS exit2(I%):BMI exit2(I%)ì;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,YöSUB R,A,B:ADD R,R,X]:á
Ýòexit2(I%)
[OPT P¹.exit2(I%):MOV A,#(-I%*(I%<>max))€127:STRB A,[SC,#320]:STRB A,[SC,#321]:STRB A,[SC,#1]:☓R A,A,#128:STRB A,[SC],#2:ADD X,X,XST,ASL#1:SUBS pixcnt,pixcnt,#1:BNE dopixel2:B donerow2:]:á(Ýòiter3(I%)2
[OPT P<1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]FADDS temp,A,BPBCS exit3(I%):BMI exit3(I%)Z;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,YdSUB R,A,B:ADD R,R,Xn]:áxÝòexit3(I%)ŵ
[OPT P…|.exit3(I%):MOV A,#((-I%*(I%<>max))€127)+128:STRB A,[SC],#1:ADD X,X,XST:SUBS pixcnt,pixcnt,#1:BNE dopixel3:B donerow3:]:á¦Ýòiter(I%)°
[OPT Pº1LDR A,[table,R,LSR#14]:LDR B,[table,I,LSR#14]ÄADDS temp,A,BÎBCS exit(I%):BMI exit(I%)Ø;ADD I,R,I:LDR I,[table,I,LSR#14]:SUB I,I,temp:ADD I,I,YâSUB R,A,B:ADD R,R,Xì]:áöÝòexit(I%)
[OPT P
Ç.exit(I%):MOV A,#(-I%*(I%<>max))€127:☓R A,A,A,LSL#8:☓R A,A,A,LSL#16:STR A,[SC,#320]:STR A,[SC,#640]:STR A,[SC,#960]:STR A,[SC],#4:ADD X,X,XST,ASL#2:SUBS pixcnt,pixcnt,#1:BNE dopixel:B donerow:]:áô:þݤscreenstartÞ screen% 8!screen%=148screen%!4=-1&+È−"OS_ReadVduVariables",screen%,screen%0=!screen%ÿ