Home » Archimedes archive » Acorn User » AU 1994-03.adf » !GraphDemo_GraphDemo » aFreeBarl!
aFreeBarl!
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 » Archimedes archive » Acorn User » AU 1994-03.adf » !GraphDemo_GraphDemo |
Filename: | aFreeBarl! |
Read OK: | ✔ |
File size: | 1DB9 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM > REVOLUTION 20REM 30REM (C) 1994 ArmOric for Arm'S Tech 40REM 50REM THIS PROGRAM SHADES ANY REVOLUTION OBJECT 60REM 70REM * WITH COLORS FOR : 80REM - THE OBJECT (BI-COLOR !!) 90REM - A VERY FAR LIGHT ( RAYS ARE // ) 100REM - AN AMBIENT LIGHTING 110REM (automatic gain for maximum contrast) 120REM * WITHOUT ANY SHADOWS 130REM * USING 140REM - PATTERNING IN A 16 COLORS MODE 150REM - ORDERED DITHERING 160REM ( less colour-accurate than error diffusing ones, 170REM but nicer for low-res. 180REM Complexity is same as simple dithering ) 190REM - A PROCEDURAL MODEL FOR THE OBJECT 200REM (see at end to create your one...) 210 220 230REM *************** LIST OF PARAMETERS ***************** 240 250MD =12 : REM OR AN OTHER 16 COLORS ONE... 260MD2=15 : REM ANY ONE THAT TEST DOUBLE MEMORY 270 280R=48 : REM SCALES THE IMAGE : 290 : REM HEIGHT WILL BE 2*R LINES 300 : REM WIDTH WILL BE 4*R PIXELS 310 320RO1=50:GO1=10:BO1= 0: REM OBJECT COLOR PROPORTIONS 321RO2=50:GO2=50:BO2=50: REM OBJECT COLOR PROPORTIONS 330 340RA= 20:GA= 0:BA= 0: REM AMBIENT LIGHT COLOR } PROPORTION 350RL= 50:GL= 50:BL= 30: REM CYLINDER LIGHT COLOR } 360 370LAM=100 : REM DIFFUSING } PROPORTION 380RFL=150 : REM MIRRORING } 390 400SP=1.2 : REM DIFFUSE SPREADING . < 1 410T=60 : REM SHINY SPREADING 1 < . < 50 420MI=.0:MA=1 : REM SHINY THRESHOLDS 0 <.<.< 1 430 440DITHR=TRUE : REM FOR ORDERED DITHERING / NONE 450 460REM **************** END OF PARAMETERS ***************** 470 480MODE MD2:MODE MD:OFF 490ORIGIN 640,512 500 510PROCass 520 530MOUSE ON 129 540X=2:Y=2:E=1 550A=TIME 560REPEAT 570 MOUSE DX,DY,T 580 X+=(DX/100-X)/10:Y+=(DY/512*PI/2-Y)/10 590 Z=256*COS(Y) 600 A%=Z*SIN(X):B%=-256*SIN(Y):C%=Z*COS(X) 610 POINT TO A%+A%,-B%-B% 620 VDU 19,2,25,(C%>0),(C%>0),(C%>0) 630 VDU 19,0,24,255,0,0:CALL AFF 640 VDU 19,0,24,0,0,0:WAIT 650 PRINT TAB(1,29)TIME-A:A=TIME 660 SYS "OS_Byte",&71,E 670 E=3-E:SYS "OS_Byte",&70,E 680UNTIL 0 690 700END 710: 720DEF PROCshade 730 740IF RO1>GO1 THEN N=RO1 ELSE N=GO1 750IF BO1>N THEN N=BO1 760RO1=RO1/N:GO1=GO1/N:BO1=BO1/N 770 780IF RO2>GO2 THEN N=RO2 ELSE N=GO2 790IF BO2>N THEN N=BO2 800RO2=RO2/N:GO2=GO2/N:BO2=BO2/N 810 820IF RO1>RO2 THEN RO=RO1 ELSE RO=RO2 821IF GO1>GO2 THEN GO=GO1 ELSE GO=GO2 822IF BO1>BO2 THEN BO=BO1 ELSE BO=BO2 840 850N=1/(LAM+RFL) 860LAM=LAM*N:RFL=RFL*N 870 880N=(RA+RL)*LAM*RO+RFL*RL 890M=(GA+GL)*LAM*GO+RFL*GL:IF M>N THEN N=M 900M=(BA+BL)*LAM*BO+RFL*BL:IF M>N THEN N=M 910N=255/N 920RL=RL*N:RA=RA*N 930GL=GL*N:GA=GA*N 940BL=BL*N:BA=BA*N 950 960LVL=-1:NC=1 970FOR I=0 TO 256 980 IF I<>0 THEN J=(I/256)^T ELSE J=0 990 IF J<MI THEN J=MI 1000 IF J>MA THEN J=MA 1010 J=(J-MI)/(MA-MI) 1020 J=(3*J*J-2*J*J*J) 1030 IF J<0 THEN J=0 ELSE IF J>1 THEN J=1 1040 IF I=0 THEN K=0 ELSE K=(I/256)^SP 1050 IF K>1 THEN K=1 1060 L=K*LAM+J*RFL 1070 CSTBL?I=L*255 1080 CSTBL?-I=0 1090 WHILE L>=LVL 1100 RS=(RA+RL*K)*LAM*RO1+J*RL*RFL 1110 GS=(GA+GL*K)*LAM*GO1+J*GL*RFL 1120 BS=(BA+BL*K)*LAM*BO1+J*BL*RFL 1130 COLOUR NC,RS,GS,BS 1140 RS=(RA+RL*K)*LAM*RO2+J*RL*RFL 1150 GS=(GA+GL*K)*LAM*GO2+J*GL*RFL 1160 BS=(BA+BL*K)*LAM*BO2+J*BL*RFL 1170 COLOUR NC+8,RS,GS,BS 1180 NC+=1:LVL=(LAM+RFL)*NC/7 1190 ENDWHILE 1200NEXT I 1210 1220C=COLTBL:A=1 1230FOR I=0 TO 15 1240 N=A-(A<>7) 1250 C?(2*I)=A*17 1260 C?(2*I+1)=A*16+N 1270 C?(64+2*I)=A*17 1280 C?(64+2*I+1)=N*16+A 1290 A=N 1300NEXT I 1310C!30=&77777777:C!(64+30)=&77777777 1320 1330ENDPROC 1340: 1350DEF PROCass 1360 1370DIM COD% 300*1024 1380 1390XECR=0 1400FOR I=0 TO 2 STEP 2 1410P%=COD% 1420[ OPT I 1430.FCLS LDR R0,ECR 1440 SUB 11,R0,#(R+15) AND (1023-15) 1450 MOV R3,#0:MOV R4,#0:MOV R5,#0:MOV R6,#0 1460 MOV R7,#0:MOV R8,#0:MOV R9,#0:MOV 10,#0 1470 MOV R1,#2*R 1480.YCLS MOV R2,#2*((R+15)AND(1023-15)) 1490 MOV R0,R11 1500.XCLS STMIA R0!,{R3-10} 1510 SUBS R2,R2,#32:BNE XCLS 1520 ADD 11,11,#XECR 1530 SUBS R1,R1,#1:BNE YCLS 1540 1550 MOV PC,R14 1560 1570.ECR DCD 149:DCD 149:DCD 6:DCD 7:DCD 149:DCD -1 1580.aBAL DCD BAL 1590.aCSTBL DCD CSTBL 1600.aCOLTBL DCD COLTBL 1610.RET14 DCD 0 1620 1630.AROND DCD &0E4A2C68 ; NIBBLE PATTERN 1640 ; FOR ORDERED DITHERING 1650 1660.AFF STR R14,RET14 1670 1680 LDR R14,AROND 1690 1700 MOV R8,R0 1710 MOV R9,R1 1720 MOV 10,R2 ; 8,9,10 = LIGHT SOURCE 1730 LDR R6,aCOLTBL 1740 LDR R12,ECR ; R12 = ECR 1750 LDR R11,aBAL ; R11 = DATA PTR 1760 LDR R7,aCSTBL ; R7 = pCos^q 1770 MOV R0,#R*2 ; R0 = Y LOOP 1780.YLOP LDMIA R11!,{R1,R3} ; R1 = X LOOP 1790 MUL R3,R9,R3 1800 STMFD R13!,{R12} 1810 BIC R2,R1,#255:MOV R2,R1,LSL#2 1820 MOV R14,R14,ROR#4 1830 MOV R5,R14,ROR R2 1840 SUB R12,R12,R1,LSR#9 1850 SUB R1,R1,#256 1860.XLOP 1870 LDMIA R11!,{R2} 1880 MOV R4,R2,ASR#16 1890 MOV R2,R2,LSL#16:MOV R2,R2,ASR#16 1900 MLA R2,R8,R2,R3 1910 MLA R2,10,R4,R2 ; OUTER PROD. -> COS 1920 LDRB R2,[R7,R2,ASR#8] 1930 ADD R4,R2,R5,LSR#28:MOV R5,R5,ROR#28 1940 LDRB R2,[R6,R4,LSR#3] 1950 ORR R2,R2,R1 1960 STRB R2,[R12],#1 1970 SUBS R1,R1,#256:BPL XLOP 1980 1990 LDMFD R13!,{R12} 2000 ADD R12,R12,#XECR 2010 EOR R6,R6,#64 2020 SUBS R0,R0,#1:BNE YLOP 2030 2040 LDR R0,ECR:LDR R1,ECR+4 2050 STR R1,ECR:STR R0,ECR+4 2060 LDR PC,RET14 2070 2080.aREF DCD REF 2090 2100.CERC ; R0 = @ STO 2110 ; R1 = Radius*2 2120 ; R2 = Facteur*256 2130 ; R3 = Step*256 2140 2150 STR R1,[R0],#8 2160 2170 MOV R4,#R<<256 2180 RSB R4,R4,#128 ; R4 = POSITION 2190 LDR R5,aREF ; R5 = REF MIDDLE 2200 2210.CERCL ADD R4,R4,R3 2220 MOV R9,R4,ASR#8 2230 LDR R9,[R5,R9,LSL#2] 2240 MOV R8,R9,LSL#16:MOV R8,R8,ASR#16 2250 MOV R9,R9,ASR#16 2260 MUL R6,R8,R2:MOV R6,R6,LSR#16 2270 MUL R7,R9,R2:MOV R7,R7,LSR#16 2280 ADD R6,R6,R7,LSL#16 2290 STR R6,[R0],#4 2300 SUBS R1,R1,#1:BNE CERCL 2310 2320 MOV PC,R14 2330] 2340 SYS "OS_ReadVduVariables",ECR,ECR 2350 !ECR+=ECR!8*(.5-R)+ECR!12/2 2360 XECR=ECR!8:ECR!4=!ECR+ECR!12 2370 P%=(P%+127)AND (-128) 2380 COLTBL=P%:P%+=128 2390 CSTBL=P%+256:P%+=256+257+3 2400 REF=P%:P%+=4*R*2 2410 BAL=P% 2420NEXT I 2430 2440IF DITHR=FALSE THEN !AROND=&88888888 2450 2460R2=R*R:RF=REF 2470FOR I=-R+.5 TO R-.5 2480 RF!0=255*I/R 2490 RF!4=255*SQR(1-I*I/R2) 2500 RF?2=RF?4:RF?3=RF?5 2510 RF+=4 2520NEXT I 2530 2540PROCshade 2550 2560A%=BAL 2570OP=0 2580SYS "Hourglass_On" 2590FOR Y=-R+.5 TO R-.5 2600 SYS "Hourglass_Percentage",(Y/R+1)*50 2610 PROCmodel 2620 L=INT(ABS(L)) 2630 IF L=0 THEN L=1 2640 IF L>R THEN L=R 2650 N=256/SQR(1+V*V) 2660 !A%=2*L*256:A%!4=-V*N:IF P THEN !A%+=8*17 2670 A%+=8 2680 NK=-L+L/4 2690 FOR K=-L+.5 TO L-.5:X=K/L 2700 Z=SQR(1-X*X) 2710 IF NOT(P) AND K>NK THEN NK+=L/4:SWAP X,Z:X=X*SGN(Z):Z=ABS(Z) 2720 !A%=X*N:A%!2=Z*N 2730 A%+=4 2740 NEXT K 2750NEXT Y 2760SYS "Hourglass_Off" 2770 2780ENDPROC 2790: 2800DEF PROCmodel 2810 2820 REM **** BEGIN MODIFIABLE **** 2830 2840 P=(ABS(ABS(Y/R)-3/4)<1/10)+(ABS(Y/R)<1/10) 2850 L=R*(1-(Y/R)^2/3)-P*R/16 2860 V=L-OP 2870 OP=L 2880 2890 REM **** END MODIFIABLE **** 2900 2910ENDPROC 2920: 2930REM TO CHANGE THE OBJECT MODIFY PROCmodel : 2940REM 2950REM IN THIS BLOCK YOU MUST PROVIDE : 2960REM * L : THE RADIUS VALUE FOR Y 2970REM ( MUST BE 0 < . < R ) 2980REM * V : IT'S DERIVATIVE / Y 2990REM ( SIGN AND AMPLITUDE MUST BE CORRECT! ) 3000REM WITH Y BEEING : -R < Y < R 3010REM ( R IS THE SCALE PARAMETER ...) 3020REM 3030REM WARNING: USE LOCAL VAR IF NOT SURE ... 3040REM
� > REVOLUTION � &� (C) 1994 ArmOric for Arm'S Tech (� 2/� THIS PROGRAM SHADES ANY REVOLUTION OBJECT <� F� * WITH COLORS FOR : P$� - THE OBJECT (BI-COLOR !!) Z,� - A VERY FAR LIGHT ( RAYS ARE // ) d� - AN AMBIENT LIGHTING n0� (automatic gain for maximum contrast) x� * WITHOUT ANY SHADOWS �� * USING �*� - PATTERNING IN A 16 COLORS MODE �� - ORDERED DITHERING �?� ( less colour-accurate than error diffusing ones, �'� but nicer for low-res. �9� Complexity is same as simple dithering ) �-� - A PROCEDURAL MODEL FOR THE OBJECT �0� (see at end to create your one...) � � �:� *************** LIST OF PARAMETERS ***************** � �8MD =12 : � OR AN OTHER 16 COLORS ONE... ;MD2=15 : � ANY ONE THAT TEST DOUBLE MEMORY .R=48 : � SCALES THE IMAGE : "5 : � HEIGHT WILL BE 2*R LINES ,6 : � WIDTH WILL BE 4*R PIXELS 6 @6RO1=50:GO1=10:BO1= 0: � OBJECT COLOR PROPORTIONS A6RO2=50:GO2=50:BO2=50: � OBJECT COLOR PROPORTIONS J T=RA= 20:GA= 0:BA= 0: � AMBIENT LIGHT COLOR } PROPORTION ^2RL= 50:GL= 50:BL= 30: � CYLINDER LIGHT COLOR } h r4LAM=100 : � DIFFUSING } PROPORTION |(RFL=150 : � MIRRORING } � �6SP=1.2 : � DIFFUSE SPREADING . < 1 �8T=60 : � SHINY SPREADING 1 < . < 50 �7MI=.0:MA=1 : � SHINY THRESHOLDS 0 <.<.< 1 � �6DITHR=� : � FOR ORDERED DITHERING / NONE � �:� **************** END OF PARAMETERS ***************** � �� MD2:� MD:� �ȑ 640,512 � ��ass ȗ � 129 X=2:Y=2:E=1 &A=� 0� : ȗ DX,DY,T D* X+=(DX/100-X)/10:Y+=(DY/512*�/2-Y)/10 N Z=256*�(Y) X% A%=Z*�(X):B%=-256*�(Y):C%=Z*�(X) b Ȓ � A%+A%,-B%-B% l# � 19,2,25,(C%>0),(C%>0),(C%>0) v � 19,0,24,255,0,0:� AFF � � 19,0,24,0,0,0:Ȗ � � �1,29)�-A:A=� � ș "OS_Byte",&71,E � E=3-E:ș "OS_Byte",&70,E �� 0 � �� �: �� �shade � �� RO1>GO1 � N=RO1 � N=GO1 �� BO1>N � N=BO1 �!RO1=RO1/N:GO1=GO1/N:BO1=BO1/N � RO2>GO2 � N=RO2 � N=GO2 � BO2>N � N=BO2 !RO2=RO2/N:GO2=GO2/N:BO2=BO2/N * 4� RO1>RO2 � RO=RO1 � RO=RO2 5� GO1>GO2 � GO=GO1 � GO=GO2 6� BO1>BO2 � BO=BO1 � BO=BO2 H RN=1/(LAM+RFL) \LAM=LAM*N:RFL=RFL*N f pN=(RA+RL)*LAM*RO+RFL*RL z'M=(GA+GL)*LAM*GO+RFL*GL:� M>N � N=M �'M=(BA+BL)*LAM*BO+RFL*BL:� M>N � N=M �N=255/N �RL=RL*N:RA=RA*N �GL=GL*N:GA=GA*N �BL=BL*N:BA=BA*N � �LVL=-1:NC=1 �� I=0 � 256 � � I<>0 � J=(I/256)^T � J=0 � � J<MI � J=MI � � J>MA � J=MA � J=(J-MI)/(MA-MI) � J=(3*J*J-2*J*J*J) � J<0 � J=0 � � J>1 � J=1 � I=0 � K=0 � K=(I/256)^SP � K>1 � K=1 $ L=K*LAM+J*RFL . CSTBL?I=L*255 8 CSTBL?-I=0 B ȕ L>=LVL L$ RS=(RA+RL*K)*LAM*RO1+J*RL*RFL V$ GS=(GA+GL*K)*LAM*GO1+J*GL*RFL `$ BS=(BA+BL*K)*LAM*BO1+J*BL*RFL j � NC,RS,GS,BS t$ RS=(RA+RL*K)*LAM*RO2+J*RL*RFL ~$ GS=(GA+GL*K)*LAM*GO2+J*GL*RFL �$ BS=(BA+BL*K)*LAM*BO2+J*BL*RFL � � NC+8,RS,GS,BS � NC+=1:LVL=(LAM+RFL)*NC/7 � � �� I � �C=COLTBL:A=1 �� I=0 � 15 � N=A-(A<>7) � C?(2*I)=A*17 � C?(2*I+1)=A*16+N � C?(64+2*I)=A*17 C?(64+2*I+1)=N*16+A A=N � I &C!30=&77777777:C!(64+30)=&77777777 ( 2� <: F � �ass P Z� COD% 300*1024 d n XECR=0 x� I=0 � 2 � 2 �P%=COD% �[ OPT I �.FCLS LDR R0,ECR �+ SUB 11,R0,#(R+15) � (1023-15) �5 MOV R3,#0:MOV R4,#0:MOV R5,#0:MOV R6,#0 �5 MOV R7,#0:MOV R8,#0:MOV R9,#0:MOV 10,#0 � MOV R1,#2*R �*.YCLS MOV R2,#2*((R+15)�(1023-15)) � MOV R0,R11 �.XCLS STMIA R0!,{R3-10} �$ SUBS R2,R2,#32:BNE XCLS � ADD 11,11,#XECR �# SUBS R1,R1,#1:BNE YCLS MOV PC,R14 "8.ECR DCD 149:DCD 149:DCD 6:DCD 7:DCD 149:DCD -1 ,.aBAL DCD BAL 6.aCSTBL DCD CSTBL @.aCOLTBL DCD COLTBL J.RET14 DCD 0 T ^2.AROND DCD &0E4A2C68 ; NIBBLE PATTERN h6 ; � �DERED DITHERING r |.AFF STR R14,RET14 � � LDR R14,AROND � � MOV R8,R0 � MOV R9,R1 �9 MOV 10,R2 ; 8,9,10 = LIGHT SOURCE � LDR R6,aCOLTBL �0 LDR R12,ECR ; R12 = ECR �2 LDR R11,aBAL ; R11 = � PTR �3 LDR R7,aCSTBL ; R7 = pCos^q �3 MOV R0,#R*2 ; R0 = Y LOOP �3.YLOP LDMIA R11!,{R1,R3} ; R1 = X LOOP � MUL R3,R9,R3 STMFD R13!,{R12} , BIC R2,R1,#255:MOV R2,R1,LSL#2 MOV R14,R14,ROR#4 & MOV R5,R14,ROR R2 0" SUB R12,R12,R1,LSR#9 : SUB R1,R1,#256 D .XLOP N LDMIA R11!,{R2} X MOV R4,R2,ASR#16 b/ MOV R2,R2,LSL#16:MOV R2,R2,ASR#16 l MLA R2,R8,R2,R3 v4 MLA R2,10,R4,R2 ; OUTER PROD. -> � �# LDRB R2,[R7,R2,ASR#8] �2 ADD R4,R2,R5,LSR#28:MOV R5,R5,ROR#28 �# LDRB R2,[R6,R4,LSR#3] � �R R2,R2,R1 � STRB R2,[R12],#1 �% SUBS R1,R1,#256:BPL XLOP � � LDMFD R13!,{R12} � ADD R12,R12,#XECR � � R6,R6,#64 �# SUBS R0,R0,#1:BNE YLOP � �% LDR R0,ECR:LDR R1,ECR+4 % STR R1,ECR:STR R0,ECR+4 LDR PC,RET14 .aREF DCD REF * 4.CERC ; R0 = @ STO > ; R1 = Radius*2 H ; R2 = Facteur*256 R ; R3 = Step*256 \ f STR R1,[R0],#8 p z MOV R4,#R<<256 �1 RSB R4,R4,#128 ; R4 = POSITION �3 LDR R5,aREF ; R5 = REF MIDDLE � �.CERCL ADD R4,R4,R3 � MOV R9,R4,ASR#8 �" LDR R9,[R5,R9,LSL#2] �/ MOV R8,R9,LSL#16:MOV R8,R8,ASR#16 � MOV R9,R9,ASR#16 �+ MUL R6,R8,R2:MOV R6,R6,LSR#16 �+ MUL R7,R9,R2:MOV R7,R7,LSR#16 �! ADD R6,R6,R7,LSL#16 � STR R6,[R0],#4 �$ SUBS R1,R1,#1:BNE CERCL MOV PC,R14 ] $% ș "OS_ReadVduVariables",ECR,ECR .! !ECR+=ECR!8*(.5-R)+ECR!12/2 8" XECR=ECR!8:ECR!4=!ECR+ECR!12 B P%=(P%+127)� (-128) L COLTBL=P%:P%+=128 V CSTBL=P%+256:P%+=256+257+3 ` REF=P%:P%+=4*R*2 j BAL=P% t� I ~ � � DITHR=� � !AROND=&88888888 � �R2=R*R:RF=REF �� I=-R+.5 � R-.5 � RF!0=255*I/R � RF!4=255*�(1-I*I/R2) � RF?2=RF?4:RF?3=RF?5 � RF+=4 �� I � � �shade � A%=BAL OP=0 ș "Hourglass_On" � Y=-R+.5 � R-.5 (* ș "Hourglass_Percentage",(Y/R+1)*50 2 �model < L=�(�(L)) F � L=0 � L=1 P � L>R � L=R Z N=256/�(1+V*V) d+ !A%=2*L*256:A%!4=-V*N:� P � !A%+=8*17 n A%+=8 x NK=-L+L/4 � � K=-L+.5 � L-.5:X=K/L � Z=�(1-X*X) �5 � �(P) � K>NK � NK+=L/4:Ȕ X,Z:X=X*�(Z):Z=�(Z) � !A%=X*N:A%!2=Z*N � A%+=4 � � K �� Y �ș "Hourglass_Off" � �� �: �� �model � ! � **** BEGIN MODIFIABLE **** * P=(�(�(Y/R)-3/4)<1/10)+(�(Y/R)<1/10) " L=R*(1-(Y/R)^2/3)-P*R/16 , V=L-OP 6 OP=L @ J � **** END MODIFIABLE **** T ^� h: r-� TO CHANGE THE OBJECT MODIFY PROCmodel : |� �&� IN THIS BLOCK YOU MUST PROVIDE : �#� * L : THE RADIUS VALUE FOR Y �$� ( MUST BE 0 < . < R ) � � * V : IT'S DERIVATIVE / Y �6� ( SIGN AND AMPLITUDE MUST BE CORRECT! ) � � WITH Y BEEING : -R < Y < R �%� ( R IS THE SCALE PARAMETER ...) �� �,� WARNING: USE LOCAL VAR IF NOT SURE ... �� �
00000000 0d 00 0a 12 f4 20 3e 20 52 45 56 4f 4c 55 54 49 |..... > REVOLUTI| 00000010 4f 4e 0d 00 14 05 f4 0d 00 1e 26 f4 20 20 28 43 |ON........&. (C| 00000020 29 20 31 39 39 34 20 41 72 6d 4f 72 69 63 20 66 |) 1994 ArmOric f| 00000030 6f 72 20 41 72 6d 27 53 20 54 65 63 68 0d 00 28 |or Arm'S Tech..(| 00000040 05 f4 0d 00 32 2f f4 20 54 48 49 53 20 50 52 4f |....2/. THIS PRO| 00000050 47 52 41 4d 20 53 48 41 44 45 53 20 41 4e 59 20 |GRAM SHADES ANY | 00000060 52 45 56 4f 4c 55 54 49 4f 4e 20 4f 42 4a 45 43 |REVOLUTION OBJEC| 00000070 54 0d 00 3c 05 f4 0d 00 46 1a f4 20 20 2a 20 57 |T..<....F.. * W| 00000080 49 54 48 20 43 4f 4c 4f 52 53 20 46 4f 52 20 3a |ITH COLORS FOR :| 00000090 0d 00 50 24 f4 20 20 20 20 20 2d 20 54 48 45 20 |..P$. - THE | 000000a0 4f 42 4a 45 43 54 20 28 42 49 2d 43 4f 4c 4f 52 |OBJECT (BI-COLOR| 000000b0 20 21 21 29 0d 00 5a 2c f4 20 20 20 20 20 2d 20 | !!)..Z,. - | 000000c0 41 20 56 45 52 59 20 46 41 52 20 4c 49 47 48 54 |A VERY FAR LIGHT| 000000d0 20 28 20 52 41 59 53 20 41 52 45 20 2f 2f 20 29 | ( RAYS ARE // )| 000000e0 0d 00 64 1f f4 20 20 20 20 20 2d 20 41 4e 20 41 |..d.. - AN A| 000000f0 4d 42 49 45 4e 54 20 4c 49 47 48 54 49 4e 47 0d |MBIENT LIGHTING.| 00000100 00 6e 30 f4 20 20 20 20 20 20 28 61 75 74 6f 6d |.n0. (autom| 00000110 61 74 69 63 20 67 61 69 6e 20 66 6f 72 20 6d 61 |atic gain for ma| 00000120 78 69 6d 75 6d 20 63 6f 6e 74 72 61 73 74 29 0d |ximum contrast).| 00000130 00 78 1c f4 20 20 2a 20 57 49 54 48 4f 55 54 20 |.x.. * WITHOUT | 00000140 41 4e 59 20 53 48 41 44 4f 57 53 0d 00 82 0e f4 |ANY SHADOWS.....| 00000150 20 20 2a 20 55 53 49 4e 47 0d 00 8c 2a f4 20 20 | * USING...*. | 00000160 20 20 20 2d 20 50 41 54 54 45 52 4e 49 4e 47 20 | - PATTERNING | 00000170 49 4e 20 41 20 31 36 20 43 4f 4c 4f 52 53 20 4d |IN A 16 COLORS M| 00000180 4f 44 45 0d 00 96 1d f4 20 20 20 20 20 2d 20 4f |ODE..... - O| 00000190 52 44 45 52 45 44 20 44 49 54 48 45 52 49 4e 47 |RDERED DITHERING| 000001a0 0d 00 a0 3f f4 20 20 20 20 20 20 20 20 20 28 20 |...?. ( | 000001b0 6c 65 73 73 20 63 6f 6c 6f 75 72 2d 61 63 63 75 |less colour-accu| 000001c0 72 61 74 65 20 74 68 61 6e 20 65 72 72 6f 72 20 |rate than error | 000001d0 64 69 66 66 75 73 69 6e 67 20 6f 6e 65 73 2c 0d |diffusing ones,.| 000001e0 00 aa 27 f4 20 20 20 20 20 20 20 20 20 20 20 20 |..'. | 000001f0 62 75 74 20 6e 69 63 65 72 20 66 6f 72 20 6c 6f |but nicer for lo| 00000200 77 2d 72 65 73 2e 0d 00 b4 39 f4 20 20 20 20 20 |w-res....9. | 00000210 20 20 20 20 20 20 20 43 6f 6d 70 6c 65 78 69 74 | Complexit| 00000220 79 20 69 73 20 73 61 6d 65 20 61 73 20 73 69 6d |y is same as sim| 00000230 70 6c 65 20 64 69 74 68 65 72 69 6e 67 20 29 0d |ple dithering ).| 00000240 00 be 2d f4 20 20 20 20 20 2d 20 41 20 50 52 4f |..-. - A PRO| 00000250 43 45 44 55 52 41 4c 20 4d 4f 44 45 4c 20 46 4f |CEDURAL MODEL FO| 00000260 52 20 54 48 45 20 4f 42 4a 45 43 54 0d 00 c8 30 |R THE OBJECT...0| 00000270 f4 20 20 20 20 20 20 20 20 20 28 73 65 65 20 61 |. (see a| 00000280 74 20 65 6e 64 20 74 6f 20 63 72 65 61 74 65 20 |t end to create | 00000290 79 6f 75 72 20 6f 6e 65 2e 2e 2e 29 0d 00 d2 04 |your one...)....| 000002a0 0d 00 dc 04 0d 00 e6 3a f4 20 2a 2a 2a 2a 2a 2a |.......:. ******| 000002b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4c 49 53 54 20 4f |********* LIST O| 000002c0 46 20 50 41 52 41 4d 45 54 45 52 53 20 2a 2a 2a |F PARAMETERS ***| 000002d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 |**************..| 000002e0 f0 04 0d 00 fa 38 4d 44 20 3d 31 32 20 20 20 20 |.....8MD =12 | 000002f0 20 20 20 20 20 20 20 20 20 20 3a 20 f4 20 4f 52 | : . OR| 00000300 20 41 4e 20 4f 54 48 45 52 20 31 36 20 43 4f 4c | AN OTHER 16 COL| 00000310 4f 52 53 20 4f 4e 45 2e 2e 2e 0d 01 04 3b 4d 44 |ORS ONE......;MD| 00000320 32 3d 31 35 20 20 20 20 20 20 20 20 20 20 20 20 |2=15 | 00000330 20 20 3a 20 f4 20 41 4e 59 20 4f 4e 45 20 54 48 | : . ANY ONE TH| 00000340 41 54 20 54 45 53 54 20 44 4f 55 42 4c 45 20 4d |AT TEST DOUBLE M| 00000350 45 4d 4f 52 59 0d 01 0e 04 0d 01 18 2e 52 3d 34 |EMORY........R=4| 00000360 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |8 | 00000370 20 3a 20 f4 20 53 43 41 4c 45 53 20 54 48 45 20 | : . SCALES THE | 00000380 49 4d 41 47 45 20 3a 0d 01 22 35 20 20 20 20 20 |IMAGE :.."5 | 00000390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | :| 000003a0 20 f4 20 20 48 45 49 47 48 54 20 57 49 4c 4c 20 | . HEIGHT WILL | 000003b0 42 45 20 32 2a 52 20 4c 49 4e 45 53 0d 01 2c 36 |BE 2*R LINES..,6| 000003c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000003d0 20 20 20 20 3a 20 f4 20 20 57 49 44 54 48 20 20 | : . WIDTH | 000003e0 57 49 4c 4c 20 42 45 20 34 2a 52 20 50 49 58 45 |WILL BE 4*R PIXE| 000003f0 4c 53 0d 01 36 04 0d 01 40 36 52 4f 31 3d 35 30 |LS..6...@6RO1=50| 00000400 3a 47 4f 31 3d 31 30 3a 42 4f 31 3d 20 30 3a 20 |:GO1=10:BO1= 0: | 00000410 f4 20 20 4f 42 4a 45 43 54 20 20 43 4f 4c 4f 52 |. OBJECT COLOR| 00000420 20 50 52 4f 50 4f 52 54 49 4f 4e 53 0d 01 41 36 | PROPORTIONS..A6| 00000430 52 4f 32 3d 35 30 3a 47 4f 32 3d 35 30 3a 42 4f |RO2=50:GO2=50:BO| 00000440 32 3d 35 30 3a 20 f4 20 20 4f 42 4a 45 43 54 20 |2=50: . OBJECT | 00000450 20 43 4f 4c 4f 52 20 50 52 4f 50 4f 52 54 49 4f | COLOR PROPORTIO| 00000460 4e 53 0d 01 4a 04 0d 01 54 3d 52 41 3d 20 32 30 |NS..J...T=RA= 20| 00000470 3a 47 41 3d 20 20 30 3a 42 41 3d 20 20 30 3a 20 |:GA= 0:BA= 0: | 00000480 f4 20 20 41 4d 42 49 45 4e 54 20 4c 49 47 48 54 |. AMBIENT LIGHT| 00000490 20 43 4f 4c 4f 52 20 7d 20 50 52 4f 50 4f 52 54 | COLOR } PROPORT| 000004a0 49 4f 4e 0d 01 5e 32 52 4c 3d 20 35 30 3a 47 4c |ION..^2RL= 50:GL| 000004b0 3d 20 35 30 3a 42 4c 3d 20 33 30 3a 20 f4 20 43 |= 50:BL= 30: . C| 000004c0 59 4c 49 4e 44 45 52 20 4c 49 47 48 54 20 43 4f |YLINDER LIGHT CO| 000004d0 4c 4f 52 20 7d 0d 01 68 04 0d 01 72 34 4c 41 4d |LOR }..h...r4LAM| 000004e0 3d 31 30 30 20 20 20 20 20 20 20 20 20 20 20 20 |=100 | 000004f0 20 3a 20 f4 20 44 49 46 46 55 53 49 4e 47 20 20 | : . DIFFUSING | 00000500 7d 20 20 50 52 4f 50 4f 52 54 49 4f 4e 0d 01 7c |} PROPORTION..|| 00000510 28 52 46 4c 3d 31 35 30 20 20 20 20 20 20 20 20 |(RFL=150 | 00000520 20 20 20 20 20 3a 20 f4 20 4d 49 52 52 4f 52 49 | : . MIRRORI| 00000530 4e 47 20 20 7d 0d 01 86 04 0d 01 90 36 53 50 3d |NG }.......6SP=| 00000540 31 2e 32 20 20 20 20 20 20 20 20 20 20 20 20 20 |1.2 | 00000550 20 3a 20 f4 20 20 44 49 46 46 55 53 45 20 53 50 | : . DIFFUSE SP| 00000560 52 45 41 44 49 4e 47 20 20 20 2e 20 3c 20 31 0d |READING . < 1.| 00000570 01 9a 38 54 3d 36 30 20 20 20 20 20 20 20 20 20 |..8T=60 | 00000580 20 20 20 20 20 20 20 3a 20 f4 20 20 53 48 49 4e | : . SHIN| 00000590 59 20 53 50 52 45 41 44 49 4e 47 20 20 31 20 3c |Y SPREADING 1 <| 000005a0 20 2e 20 3c 20 35 30 0d 01 a4 37 4d 49 3d 2e 30 | . < 50...7MI=.0| 000005b0 3a 4d 41 3d 31 20 20 20 20 20 20 20 20 20 20 3a |:MA=1 :| 000005c0 20 f4 20 20 53 48 49 4e 59 20 54 48 52 45 53 48 | . SHINY THRESH| 000005d0 4f 4c 44 53 20 30 20 3c 2e 3c 2e 3c 20 31 0d 01 |OLDS 0 <.<.< 1..| 000005e0 ae 04 0d 01 b8 36 44 49 54 48 52 3d b9 20 20 20 |.....6DITHR=. | 000005f0 20 20 20 20 20 20 20 3a 20 f4 20 20 46 4f 52 20 | : . FOR | 00000600 4f 52 44 45 52 45 44 20 44 49 54 48 45 52 49 4e |ORDERED DITHERIN| 00000610 47 20 2f 20 4e 4f 4e 45 0d 01 c2 04 0d 01 cc 3a |G / NONE.......:| 00000620 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 00000630 2a 2a 20 45 4e 44 20 4f 46 20 50 41 52 41 4d 45 |** END OF PARAME| 00000640 54 45 52 53 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |TERS ***********| 00000650 2a 2a 2a 2a 2a 2a 0d 01 d6 04 0d 01 e0 10 eb 20 |******......... | 00000660 4d 44 32 3a eb 20 4d 44 3a 87 0d 01 ea 0e c8 91 |MD2:. MD:.......| 00000670 20 36 34 30 2c 35 31 32 0d 01 f4 04 0d 01 fe 08 | 640,512........| 00000680 f2 61 73 73 0d 02 08 04 0d 02 12 0c c8 97 20 ee |.ass.......... .| 00000690 20 31 32 39 0d 02 1c 0f 58 3d 32 3a 59 3d 32 3a | 129....X=2:Y=2:| 000006a0 45 3d 31 0d 02 26 07 41 3d 91 0d 02 30 05 f5 0d |E=1..&.A=...0...| 000006b0 02 3a 0f 20 c8 97 20 44 58 2c 44 59 2c 54 0d 02 |.:. .. DX,DY,T..| 000006c0 44 2a 20 58 2b 3d 28 44 58 2f 31 30 30 2d 58 29 |D* X+=(DX/100-X)| 000006d0 2f 31 30 3a 59 2b 3d 28 44 59 2f 35 31 32 2a af |/10:Y+=(DY/512*.| 000006e0 2f 32 2d 59 29 2f 31 30 0d 02 4e 0f 20 5a 3d 32 |/2-Y)/10..N. Z=2| 000006f0 35 36 2a 9b 28 59 29 0d 02 58 25 20 41 25 3d 5a |56*.(Y)..X% A%=Z| 00000700 2a b5 28 58 29 3a 42 25 3d 2d 32 35 36 2a b5 28 |*.(X):B%=-256*.(| 00000710 59 29 3a 43 25 3d 5a 2a 9b 28 58 29 0d 02 62 16 |Y):C%=Z*.(X)..b.| 00000720 20 c8 92 20 b8 20 41 25 2b 41 25 2c 2d 42 25 2d | .. . A%+A%,-B%-| 00000730 42 25 0d 02 6c 23 20 ef 20 31 39 2c 32 2c 32 35 |B%..l# . 19,2,25| 00000740 2c 28 43 25 3e 30 29 2c 28 43 25 3e 30 29 2c 28 |,(C%>0),(C%>0),(| 00000750 43 25 3e 30 29 0d 02 76 1c 20 ef 20 31 39 2c 30 |C%>0)..v. . 19,0| 00000760 2c 32 34 2c 32 35 35 2c 30 2c 30 3a d6 20 41 46 |,24,255,0,0:. AF| 00000770 46 0d 02 80 17 20 ef 20 31 39 2c 30 2c 32 34 2c |F.... . 19,0,24,| 00000780 30 2c 30 2c 30 3a c8 96 0d 02 8a 14 20 f1 20 8a |0,0,0:...... . .| 00000790 31 2c 32 39 29 91 2d 41 3a 41 3d 91 0d 02 94 17 |1,29).-A:A=.....| 000007a0 20 c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 26 37 | .. "OS_Byte",&7| 000007b0 31 2c 45 0d 02 9e 1d 20 45 3d 33 2d 45 3a c8 99 |1,E.... E=3-E:..| 000007c0 20 22 4f 53 5f 42 79 74 65 22 2c 26 37 30 2c 45 | "OS_Byte",&70,E| 000007d0 0d 02 a8 07 fd 20 30 0d 02 b2 04 0d 02 bc 05 e0 |..... 0.........| 000007e0 0d 02 c6 05 3a 0d 02 d0 0c dd 20 f2 73 68 61 64 |....:..... .shad| 000007f0 65 0d 02 da 04 0d 02 e4 1d e7 20 52 4f 31 3e 47 |e......... RO1>G| 00000800 4f 31 20 8c 20 4e 3d 52 4f 31 20 8b 20 4e 3d 47 |O1 . N=RO1 . N=G| 00000810 4f 31 0d 02 ee 13 e7 20 42 4f 31 3e 4e 20 8c 20 |O1..... BO1>N . | 00000820 4e 3d 42 4f 31 0d 02 f8 21 52 4f 31 3d 52 4f 31 |N=BO1...!RO1=RO1| 00000830 2f 4e 3a 47 4f 31 3d 47 4f 31 2f 4e 3a 42 4f 31 |/N:GO1=GO1/N:BO1| 00000840 3d 42 4f 31 2f 4e 0d 03 02 04 0d 03 0c 1d e7 20 |=BO1/N......... | 00000850 52 4f 32 3e 47 4f 32 20 8c 20 4e 3d 52 4f 32 20 |RO2>GO2 . N=RO2 | 00000860 8b 20 4e 3d 47 4f 32 0d 03 16 13 e7 20 42 4f 32 |. N=GO2..... BO2| 00000870 3e 4e 20 8c 20 4e 3d 42 4f 32 0d 03 20 21 52 4f |>N . N=BO2.. !RO| 00000880 32 3d 52 4f 32 2f 4e 3a 47 4f 32 3d 47 4f 32 2f |2=RO2/N:GO2=GO2/| 00000890 4e 3a 42 4f 32 3d 42 4f 32 2f 4e 0d 03 2a 04 0d |N:BO2=BO2/N..*..| 000008a0 03 34 1f e7 20 52 4f 31 3e 52 4f 32 20 8c 20 52 |.4.. RO1>RO2 . R| 000008b0 4f 3d 52 4f 31 20 8b 20 52 4f 3d 52 4f 32 0d 03 |O=RO1 . RO=RO2..| 000008c0 35 1f e7 20 47 4f 31 3e 47 4f 32 20 8c 20 47 4f |5.. GO1>GO2 . GO| 000008d0 3d 47 4f 31 20 8b 20 47 4f 3d 47 4f 32 0d 03 36 |=GO1 . GO=GO2..6| 000008e0 1f e7 20 42 4f 31 3e 42 4f 32 20 8c 20 42 4f 3d |.. BO1>BO2 . BO=| 000008f0 42 4f 31 20 8b 20 42 4f 3d 42 4f 32 0d 03 48 04 |BO1 . BO=BO2..H.| 00000900 0d 03 52 11 4e 3d 31 2f 28 4c 41 4d 2b 52 46 4c |..R.N=1/(LAM+RFL| 00000910 29 0d 03 5c 17 4c 41 4d 3d 4c 41 4d 2a 4e 3a 52 |)..\.LAM=LAM*N:R| 00000920 46 4c 3d 52 46 4c 2a 4e 0d 03 66 04 0d 03 70 1b |FL=RFL*N..f...p.| 00000930 4e 3d 28 52 41 2b 52 4c 29 2a 4c 41 4d 2a 52 4f |N=(RA+RL)*LAM*RO| 00000940 2b 52 46 4c 2a 52 4c 0d 03 7a 27 4d 3d 28 47 41 |+RFL*RL..z'M=(GA| 00000950 2b 47 4c 29 2a 4c 41 4d 2a 47 4f 2b 52 46 4c 2a |+GL)*LAM*GO+RFL*| 00000960 47 4c 3a e7 20 4d 3e 4e 20 8c 20 4e 3d 4d 0d 03 |GL:. M>N . N=M..| 00000970 84 27 4d 3d 28 42 41 2b 42 4c 29 2a 4c 41 4d 2a |.'M=(BA+BL)*LAM*| 00000980 42 4f 2b 52 46 4c 2a 42 4c 3a e7 20 4d 3e 4e 20 |BO+RFL*BL:. M>N | 00000990 8c 20 4e 3d 4d 0d 03 8e 0b 4e 3d 32 35 35 2f 4e |. N=M....N=255/N| 000009a0 0d 03 98 13 52 4c 3d 52 4c 2a 4e 3a 52 41 3d 52 |....RL=RL*N:RA=R| 000009b0 41 2a 4e 0d 03 a2 13 47 4c 3d 47 4c 2a 4e 3a 47 |A*N....GL=GL*N:G| 000009c0 41 3d 47 41 2a 4e 0d 03 ac 13 42 4c 3d 42 4c 2a |A=GA*N....BL=BL*| 000009d0 4e 3a 42 41 3d 42 41 2a 4e 0d 03 b6 0e 20 20 20 |N:BA=BA*N.... | 000009e0 20 20 20 20 20 20 20 0d 03 c0 0f 4c 56 4c 3d 2d | ....LVL=-| 000009f0 31 3a 4e 43 3d 31 0d 03 ca 0f e3 20 49 3d 30 20 |1:NC=1..... I=0 | 00000a00 b8 20 32 35 36 0d 03 d4 1f 20 e7 20 49 3c 3e 30 |. 256.... . I<>0| 00000a10 20 8c 20 4a 3d 28 49 2f 32 35 36 29 5e 54 20 8b | . J=(I/256)^T .| 00000a20 20 4a 3d 30 0d 03 de 12 20 e7 20 4a 3c 4d 49 20 | J=0.... . J<MI | 00000a30 8c 20 4a 3d 4d 49 0d 03 e8 12 20 e7 20 4a 3e 4d |. J=MI.... . J>M| 00000a40 41 20 8c 20 4a 3d 4d 41 0d 03 f2 15 20 4a 3d 28 |A . J=MA.... J=(| 00000a50 4a 2d 4d 49 29 2f 28 4d 41 2d 4d 49 29 0d 03 fc |J-MI)/(MA-MI)...| 00000a60 16 20 4a 3d 28 33 2a 4a 2a 4a 2d 32 2a 4a 2a 4a |. J=(3*J*J-2*J*J| 00000a70 2a 4a 29 0d 04 06 1e 20 e7 20 4a 3c 30 20 8c 20 |*J).... . J<0 . | 00000a80 4a 3d 30 20 8b 20 e7 20 4a 3e 31 20 8c 20 4a 3d |J=0 . . J>1 . J=| 00000a90 31 0d 04 10 1f 20 e7 20 49 3d 30 20 8c 20 4b 3d |1.... . I=0 . K=| 00000aa0 30 20 8b 20 4b 3d 28 49 2f 32 35 36 29 5e 53 50 |0 . K=(I/256)^SP| 00000ab0 0d 04 1a 10 20 e7 20 4b 3e 31 20 8c 20 4b 3d 31 |.... . K>1 . K=1| 00000ac0 0d 04 24 12 20 4c 3d 4b 2a 4c 41 4d 2b 4a 2a 52 |..$. L=K*LAM+J*R| 00000ad0 46 4c 0d 04 2e 12 20 43 53 54 42 4c 3f 49 3d 4c |FL.... CSTBL?I=L| 00000ae0 2a 32 35 35 0d 04 38 0f 20 43 53 54 42 4c 3f 2d |*255..8. CSTBL?-| 00000af0 49 3d 30 0d 04 42 0e 20 c8 95 20 4c 3e 3d 4c 56 |I=0..B. .. L>=LV| 00000b00 4c 0d 04 4c 24 20 20 20 52 53 3d 28 52 41 2b 52 |L..L$ RS=(RA+R| 00000b10 4c 2a 4b 29 2a 4c 41 4d 2a 52 4f 31 2b 4a 2a 52 |L*K)*LAM*RO1+J*R| 00000b20 4c 2a 52 46 4c 0d 04 56 24 20 20 20 47 53 3d 28 |L*RFL..V$ GS=(| 00000b30 47 41 2b 47 4c 2a 4b 29 2a 4c 41 4d 2a 47 4f 31 |GA+GL*K)*LAM*GO1| 00000b40 2b 4a 2a 47 4c 2a 52 46 4c 0d 04 60 24 20 20 20 |+J*GL*RFL..`$ | 00000b50 42 53 3d 28 42 41 2b 42 4c 2a 4b 29 2a 4c 41 4d |BS=(BA+BL*K)*LAM| 00000b60 2a 42 4f 31 2b 4a 2a 42 4c 2a 52 46 4c 0d 04 6a |*BO1+J*BL*RFL..j| 00000b70 14 20 20 20 fb 20 4e 43 2c 52 53 2c 47 53 2c 42 |. . NC,RS,GS,B| 00000b80 53 0d 04 74 24 20 20 20 52 53 3d 28 52 41 2b 52 |S..t$ RS=(RA+R| 00000b90 4c 2a 4b 29 2a 4c 41 4d 2a 52 4f 32 2b 4a 2a 52 |L*K)*LAM*RO2+J*R| 00000ba0 4c 2a 52 46 4c 0d 04 7e 24 20 20 20 47 53 3d 28 |L*RFL..~$ GS=(| 00000bb0 47 41 2b 47 4c 2a 4b 29 2a 4c 41 4d 2a 47 4f 32 |GA+GL*K)*LAM*GO2| 00000bc0 2b 4a 2a 47 4c 2a 52 46 4c 0d 04 88 24 20 20 20 |+J*GL*RFL...$ | 00000bd0 42 53 3d 28 42 41 2b 42 4c 2a 4b 29 2a 4c 41 4d |BS=(BA+BL*K)*LAM| 00000be0 2a 42 4f 32 2b 4a 2a 42 4c 2a 52 46 4c 0d 04 92 |*BO2+J*BL*RFL...| 00000bf0 16 20 20 20 fb 20 4e 43 2b 38 2c 52 53 2c 47 53 |. . NC+8,RS,GS| 00000c00 2c 42 53 0d 04 9c 1f 20 20 20 4e 43 2b 3d 31 3a |,BS.... NC+=1:| 00000c10 4c 56 4c 3d 28 4c 41 4d 2b 52 46 4c 29 2a 4e 43 |LVL=(LAM+RFL)*NC| 00000c20 2f 37 0d 04 a6 06 20 ce 0d 04 b0 07 ed 20 49 0d |/7.... ...... I.| 00000c30 04 ba 04 0d 04 c4 10 43 3d 43 4f 4c 54 42 4c 3a |.......C=COLTBL:| 00000c40 41 3d 31 0d 04 ce 0e e3 20 49 3d 30 20 b8 20 31 |A=1..... I=0 . 1| 00000c50 35 0d 04 d8 0f 20 4e 3d 41 2d 28 41 3c 3e 37 29 |5.... N=A-(A<>7)| 00000c60 0d 04 e2 11 20 43 3f 28 32 2a 49 29 3d 41 2a 31 |.... C?(2*I)=A*1| 00000c70 37 0d 04 ec 15 20 43 3f 28 32 2a 49 2b 31 29 3d |7.... C?(2*I+1)=| 00000c80 41 2a 31 36 2b 4e 0d 04 f6 14 20 43 3f 28 36 34 |A*16+N.... C?(64| 00000c90 2b 32 2a 49 29 3d 41 2a 31 37 0d 05 00 18 20 43 |+2*I)=A*17.... C| 00000ca0 3f 28 36 34 2b 32 2a 49 2b 31 29 3d 4e 2a 31 36 |?(64+2*I+1)=N*16| 00000cb0 2b 41 0d 05 0a 08 20 41 3d 4e 0d 05 14 07 ed 20 |+A.... A=N..... | 00000cc0 49 0d 05 1e 26 43 21 33 30 3d 26 37 37 37 37 37 |I...&C!30=&77777| 00000cd0 37 37 37 3a 43 21 28 36 34 2b 33 30 29 3d 26 37 |777:C!(64+30)=&7| 00000ce0 37 37 37 37 37 37 37 0d 05 28 04 0d 05 32 05 e1 |7777777..(...2..| 00000cf0 0d 05 3c 05 3a 0d 05 46 0a dd 20 f2 61 73 73 0d |..<.:..F.. .ass.| 00000d00 05 50 04 0d 05 5a 13 de 20 43 4f 44 25 20 33 30 |.P...Z.. COD% 30| 00000d10 30 2a 31 30 32 34 0d 05 64 04 0d 05 6e 0a 58 45 |0*1024..d...n.XE| 00000d20 43 52 3d 30 0d 05 78 11 e3 20 49 3d 30 20 b8 20 |CR=0..x.. I=0 . | 00000d30 32 20 88 20 32 0d 05 82 0b 50 25 3d 43 4f 44 25 |2 . 2....P%=COD%| 00000d40 0d 05 8c 13 5b 20 20 20 20 20 20 20 20 4f 50 54 |....[ OPT| 00000d50 20 20 49 0d 05 96 18 2e 46 43 4c 53 20 20 20 20 | I.....FCLS | 00000d60 20 4c 44 52 20 52 30 2c 45 43 52 0d 05 a0 2b 20 | LDR R0,ECR...+ | 00000d70 20 20 20 20 20 20 20 20 20 53 55 42 20 31 31 2c | SUB 11,| 00000d80 52 30 2c 23 28 52 2b 31 35 29 20 80 20 28 31 30 |R0,#(R+15) . (10| 00000d90 32 33 2d 31 35 29 0d 05 aa 35 20 20 20 20 20 20 |23-15)...5 | 00000da0 20 20 20 20 4d 4f 56 20 52 33 2c 23 30 3a 4d 4f | MOV R3,#0:MO| 00000db0 56 20 52 34 2c 23 30 3a 4d 4f 56 20 52 35 2c 23 |V R4,#0:MOV R5,#| 00000dc0 30 3a 4d 4f 56 20 52 36 2c 23 30 0d 05 b4 35 20 |0:MOV R6,#0...5 | 00000dd0 20 20 20 20 20 20 20 20 20 4d 4f 56 20 52 37 2c | MOV R7,| 00000de0 23 30 3a 4d 4f 56 20 52 38 2c 23 30 3a 4d 4f 56 |#0:MOV R8,#0:MOV| 00000df0 20 52 39 2c 23 30 3a 4d 4f 56 20 31 30 2c 23 30 | R9,#0:MOV 10,#0| 00000e00 0d 05 be 19 20 20 20 20 20 20 20 20 20 20 4d 4f |.... MO| 00000e10 56 20 52 31 2c 23 32 2a 52 0d 05 c8 2a 2e 59 43 |V R1,#2*R...*.YC| 00000e20 4c 53 20 20 20 20 20 4d 4f 56 20 52 32 2c 23 32 |LS MOV R2,#2| 00000e30 2a 28 28 52 2b 31 35 29 80 28 31 30 32 33 2d 31 |*((R+15).(1023-1| 00000e40 35 29 29 0d 05 d2 18 20 20 20 20 20 20 20 20 20 |5)).... | 00000e50 20 4d 4f 56 20 52 30 2c 52 31 31 0d 05 dc 1f 2e | MOV R0,R11.....| 00000e60 58 43 4c 53 20 20 20 20 20 53 54 4d 49 41 20 52 |XCLS STMIA R| 00000e70 30 21 2c 7b 52 33 2d 31 30 7d 0d 05 e6 24 20 20 |0!,{R3-10}...$ | 00000e80 20 20 20 20 20 20 20 53 55 42 53 20 52 32 2c 52 | SUBS R2,R| 00000e90 32 2c 23 33 32 3a 42 4e 45 20 58 43 4c 53 0d 05 |2,#32:BNE XCLS..| 00000ea0 f0 1d 20 20 20 20 20 20 20 20 20 20 41 44 44 20 |.. ADD | 00000eb0 31 31 2c 31 31 2c 23 58 45 43 52 0d 05 fa 23 20 |11,11,#XECR...# | 00000ec0 20 20 20 20 20 20 20 20 53 55 42 53 20 52 31 2c | SUBS R1,| 00000ed0 52 31 2c 23 31 3a 42 4e 45 20 59 43 4c 53 0d 06 |R1,#1:BNE YCLS..| 00000ee0 04 0d 20 20 20 20 20 20 20 20 20 0d 06 0e 17 20 |.. .... | 00000ef0 20 20 20 20 20 20 20 20 4d 4f 56 20 50 43 2c 52 | MOV PC,R| 00000f00 31 34 0d 06 18 04 0d 06 22 38 2e 45 43 52 20 20 |14......"8.ECR | 00000f10 20 20 20 20 44 43 44 20 31 34 39 3a 44 43 44 20 | DCD 149:DCD | 00000f20 31 34 39 3a 44 43 44 20 36 3a 44 43 44 20 37 3a |149:DCD 6:DCD 7:| 00000f30 44 43 44 20 31 34 39 3a 44 43 44 20 2d 31 0d 06 |DCD 149:DCD -1..| 00000f40 2c 15 2e 61 42 41 4c 20 20 20 20 20 44 43 44 20 |,..aBAL DCD | 00000f50 42 41 4c 0d 06 36 17 2e 61 43 53 54 42 4c 20 20 |BAL..6..aCSTBL | 00000f60 20 44 43 44 20 43 53 54 42 4c 0d 06 40 18 2e 61 | DCD CSTBL..@..a| 00000f70 43 4f 4c 54 42 4c 20 20 44 43 44 20 43 4f 4c 54 |COLTBL DCD COLT| 00000f80 42 4c 0d 06 4a 13 2e 52 45 54 31 34 20 20 20 20 |BL..J..RET14 | 00000f90 44 43 44 20 30 0d 06 54 04 0d 06 5e 32 2e 41 52 |DCD 0..T...^2.AR| 00000fa0 4f 4e 44 20 20 20 20 44 43 44 20 26 30 45 34 41 |OND DCD &0E4A| 00000fb0 32 43 36 38 20 20 20 20 20 20 20 3b 20 4e 49 42 |2C68 ; NIB| 00000fc0 42 4c 45 20 50 41 54 54 45 52 4e 0d 06 68 36 20 |BLE PATTERN..h6 | 00000fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 e3 | ; .| 00000ff0 20 84 44 45 52 45 44 20 44 49 54 48 45 52 49 4e | .DERED DITHERIN| 00001000 47 0d 06 72 04 0d 06 7c 1b 2e 41 46 46 20 20 20 |G..r...|..AFF | 00001010 20 20 20 53 54 52 20 52 31 34 2c 52 45 54 31 34 | STR R14,RET14| 00001020 0d 06 86 04 0d 06 90 1b 20 20 20 20 20 20 20 20 |........ | 00001030 20 20 4c 44 52 20 52 31 34 2c 41 52 4f 4e 44 0d | LDR R14,AROND.| 00001040 06 9a 04 0d 06 a4 17 20 20 20 20 20 20 20 20 20 |....... | 00001050 20 4d 4f 56 20 52 38 2c 52 30 0d 06 ae 17 20 20 | MOV R8,R0.... | 00001060 20 20 20 20 20 20 20 20 4d 4f 56 20 52 39 2c 52 | MOV R9,R| 00001070 31 0d 06 b8 39 20 20 20 20 20 20 20 20 20 20 4d |1...9 M| 00001080 4f 56 20 31 30 2c 52 32 20 20 20 20 20 20 20 20 |OV 10,R2 | 00001090 20 20 20 3b 20 38 2c 39 2c 31 30 20 3d 20 4c 49 | ; 8,9,10 = LI| 000010a0 47 48 54 20 53 4f 55 52 43 45 0d 06 c2 1c 20 20 |GHT SOURCE.... | 000010b0 20 20 20 20 20 20 20 20 4c 44 52 20 52 36 2c 61 | LDR R6,a| 000010c0 43 4f 4c 54 42 4c 0d 06 cc 30 20 20 20 20 20 20 |COLTBL...0 | 000010d0 20 20 20 20 4c 44 52 20 52 31 32 2c 45 43 52 20 | LDR R12,ECR | 000010e0 20 20 20 20 20 20 20 20 3b 20 52 31 32 20 20 20 | ; R12 | 000010f0 20 3d 20 45 43 52 0d 06 d6 32 20 20 20 20 20 20 | = ECR...2 | 00001100 20 20 20 20 4c 44 52 20 52 31 31 2c 61 42 41 4c | LDR R11,aBAL| 00001110 20 20 20 20 20 20 20 20 3b 20 52 31 31 20 20 20 | ; R11 | 00001120 20 3d 20 dc 20 50 54 52 0d 06 e0 33 20 20 20 20 | = . PTR...3 | 00001130 20 20 20 20 20 20 4c 44 52 20 52 37 2c 61 43 53 | LDR R7,aCS| 00001140 54 42 4c 20 20 20 20 20 20 20 3b 20 52 37 20 20 |TBL ; R7 | 00001150 20 20 20 3d 20 70 43 6f 73 5e 71 0d 06 ea 33 20 | = pCos^q...3 | 00001160 20 20 20 20 20 20 20 20 20 4d 4f 56 20 52 30 2c | MOV R0,| 00001170 23 52 2a 32 20 20 20 20 20 20 20 20 20 3b 20 52 |#R*2 ; R| 00001180 30 20 20 20 20 20 3d 20 59 20 4c 4f 4f 50 0d 06 |0 = Y LOOP..| 00001190 f4 33 2e 59 4c 4f 50 20 20 20 20 20 4c 44 4d 49 |.3.YLOP LDMI| 000011a0 41 20 52 31 31 21 2c 7b 52 31 2c 52 33 7d 20 20 |A R11!,{R1,R3} | 000011b0 3b 20 52 31 20 20 20 20 20 3d 20 58 20 4c 4f 4f |; R1 = X LOO| 000011c0 50 0d 06 fe 1a 20 20 20 20 20 20 20 20 20 20 4d |P.... M| 000011d0 55 4c 20 52 33 2c 52 39 2c 52 33 0d 07 08 1e 20 |UL R3,R9,R3.... | 000011e0 20 20 20 20 20 20 20 20 20 53 54 4d 46 44 20 52 | STMFD R| 000011f0 31 33 21 2c 7b 52 31 32 7d 0d 07 12 2c 20 20 20 |13!,{R12}..., | 00001200 20 20 20 20 20 20 20 42 49 43 20 52 32 2c 52 31 | BIC R2,R1| 00001210 2c 23 32 35 35 3a 4d 4f 56 20 52 32 2c 52 31 2c |,#255:MOV R2,R1,| 00001220 4c 53 4c 23 32 0d 07 1c 1f 20 20 20 20 20 20 20 |LSL#2.... | 00001230 20 20 20 4d 4f 56 20 52 31 34 2c 52 31 34 2c 52 | MOV R14,R14,R| 00001240 4f 52 23 34 0d 07 26 1f 20 20 20 20 20 20 20 20 |OR#4..&. | 00001250 20 20 4d 4f 56 20 52 35 2c 52 31 34 2c 52 4f 52 | MOV R5,R14,ROR| 00001260 20 52 32 0d 07 30 22 20 20 20 20 20 20 20 20 20 | R2..0" | 00001270 20 53 55 42 20 52 31 32 2c 52 31 32 2c 52 31 2c | SUB R12,R12,R1,| 00001280 4c 53 52 23 39 0d 07 3a 1c 20 20 20 20 20 20 20 |LSR#9..:. | 00001290 20 20 20 53 55 42 20 52 31 2c 52 31 2c 23 32 35 | SUB R1,R1,#25| 000012a0 36 0d 07 44 09 2e 58 4c 4f 50 0d 07 4e 1d 20 20 |6..D..XLOP..N. | 000012b0 20 20 20 20 20 20 20 20 4c 44 4d 49 41 20 52 31 | LDMIA R1| 000012c0 31 21 2c 7b 52 32 7d 0d 07 58 1e 20 20 20 20 20 |1!,{R2}..X. | 000012d0 20 20 20 20 20 4d 4f 56 20 52 34 2c 52 32 2c 41 | MOV R4,R2,A| 000012e0 53 52 23 31 36 0d 07 62 2f 20 20 20 20 20 20 20 |SR#16..b/ | 000012f0 20 20 20 4d 4f 56 20 52 32 2c 52 32 2c 4c 53 4c | MOV R2,R2,LSL| 00001300 23 31 36 3a 4d 4f 56 20 52 32 2c 52 32 2c 41 53 |#16:MOV R2,R2,AS| 00001310 52 23 31 36 0d 07 6c 1d 20 20 20 20 20 20 20 20 |R#16..l. | 00001320 20 20 4d 4c 41 20 52 32 2c 52 38 2c 52 32 2c 52 | MLA R2,R8,R2,R| 00001330 33 0d 07 76 34 20 20 20 20 20 20 20 20 20 20 4d |3..v4 M| 00001340 4c 41 20 52 32 2c 31 30 2c 52 34 2c 52 32 20 20 |LA R2,10,R4,R2 | 00001350 20 20 20 3b 20 4f 55 54 45 52 20 50 52 4f 44 2e | ; OUTER PROD.| 00001360 20 2d 3e 20 9b 0d 07 80 23 20 20 20 20 20 20 20 | -> ....# | 00001370 20 20 20 4c 44 52 42 20 52 32 2c 5b 52 37 2c 52 | LDRB R2,[R7,R| 00001380 32 2c 41 53 52 23 38 5d 0d 07 8a 32 20 20 20 20 |2,ASR#8]...2 | 00001390 20 20 20 20 20 20 41 44 44 20 52 34 2c 52 32 2c | ADD R4,R2,| 000013a0 52 35 2c 4c 53 52 23 32 38 3a 4d 4f 56 20 52 35 |R5,LSR#28:MOV R5| 000013b0 2c 52 35 2c 52 4f 52 23 32 38 0d 07 94 23 20 20 |,R5,ROR#28...# | 000013c0 20 20 20 20 20 20 20 20 4c 44 52 42 20 52 32 2c | LDRB R2,| 000013d0 5b 52 36 2c 52 34 2c 4c 53 52 23 33 5d 0d 07 9e |[R6,R4,LSR#3]...| 000013e0 19 20 20 20 20 20 20 20 20 20 20 84 52 20 52 32 |. .R R2| 000013f0 2c 52 32 2c 52 31 0d 07 a8 1e 20 20 20 20 20 20 |,R2,R1.... | 00001400 20 20 20 20 53 54 52 42 20 52 32 2c 5b 52 31 32 | STRB R2,[R12| 00001410 5d 2c 23 31 0d 07 b2 25 20 20 20 20 20 20 20 20 |],#1...% | 00001420 20 53 55 42 53 20 52 31 2c 52 31 2c 23 32 35 36 | SUBS R1,R1,#256| 00001430 3a 42 50 4c 20 58 4c 4f 50 0d 07 bc 0d 20 20 20 |:BPL XLOP.... | 00001440 20 20 20 20 20 20 0d 07 c6 1e 20 20 20 20 20 20 | .... | 00001450 20 20 20 20 4c 44 4d 46 44 20 52 31 33 21 2c 7b | LDMFD R13!,{| 00001460 52 31 32 7d 0d 07 d0 1f 20 20 20 20 20 20 20 20 |R12}.... | 00001470 20 20 41 44 44 20 52 31 32 2c 52 31 32 2c 23 58 | ADD R12,R12,#X| 00001480 45 43 52 0d 07 da 19 20 20 20 20 20 20 20 20 20 |ECR.... | 00001490 20 82 20 52 36 2c 52 36 2c 23 36 34 0d 07 e4 23 | . R6,R6,#64...#| 000014a0 20 20 20 20 20 20 20 20 20 53 55 42 53 20 52 30 | SUBS R0| 000014b0 2c 52 30 2c 23 31 3a 42 4e 45 20 59 4c 4f 50 0d |,R0,#1:BNE YLOP.| 000014c0 07 ee 0d 20 20 20 20 20 20 20 20 20 0d 07 f8 25 |... ...%| 000014d0 20 20 20 20 20 20 20 20 20 20 4c 44 52 20 52 30 | LDR R0| 000014e0 2c 45 43 52 3a 4c 44 52 20 52 31 2c 45 43 52 2b |,ECR:LDR R1,ECR+| 000014f0 34 0d 08 02 25 20 20 20 20 20 20 20 20 20 20 53 |4...% S| 00001500 54 52 20 52 31 2c 45 43 52 3a 53 54 52 20 52 30 |TR R1,ECR:STR R0| 00001510 2c 45 43 52 2b 34 0d 08 0c 19 20 20 20 20 20 20 |,ECR+4.... | 00001520 20 20 20 4c 44 52 20 50 43 2c 52 45 54 31 34 0d | LDR PC,RET14.| 00001530 08 16 0d 20 20 20 20 20 20 20 20 20 0d 08 20 15 |... .. .| 00001540 2e 61 52 45 46 20 20 20 20 20 44 43 44 20 52 45 |.aREF DCD RE| 00001550 46 0d 08 2a 0d 20 20 20 20 20 20 20 20 20 0d 08 |F..*. ..| 00001560 34 1a 2e 43 45 52 43 20 20 20 20 20 3b 20 52 30 |4..CERC ; R0| 00001570 20 3d 20 40 20 53 54 4f 0d 08 3e 1d 20 20 20 20 | = @ STO..>. | 00001580 20 20 20 20 20 20 3b 20 52 31 20 3d 20 52 61 64 | ; R1 = Rad| 00001590 69 75 73 2a 32 0d 08 48 20 20 20 20 20 20 20 20 |ius*2..H | 000015a0 20 20 20 3b 20 52 32 20 3d 20 46 61 63 74 65 75 | ; R2 = Facteu| 000015b0 72 2a 32 35 36 0d 08 52 1d 20 20 20 20 20 20 20 |r*256..R. | 000015c0 20 20 20 3b 20 52 33 20 3d 20 53 74 65 70 2a 32 | ; R3 = Step*2| 000015d0 35 36 0d 08 5c 0e 20 20 20 20 20 20 20 20 20 20 |56..\. | 000015e0 0d 08 66 1c 20 20 20 20 20 20 20 20 20 20 53 54 |..f. ST| 000015f0 52 20 52 31 2c 5b 52 30 5d 2c 23 38 0d 08 70 0e |R R1,[R0],#8..p.| 00001600 20 20 20 20 20 20 20 20 20 20 0d 08 7a 1c 20 20 | ..z. | 00001610 20 20 20 20 20 20 20 20 4d 4f 56 20 52 34 2c 23 | MOV R4,#| 00001620 52 3c 3c 32 35 36 0d 08 84 31 20 20 20 20 20 20 |R<<256...1 | 00001630 20 20 20 20 52 53 42 20 52 34 2c 52 34 2c 23 31 | RSB R4,R4,#1| 00001640 32 38 20 20 20 20 20 20 3b 20 52 34 20 3d 20 50 |28 ; R4 = P| 00001650 4f 53 49 54 49 4f 4e 0d 08 8e 33 20 20 20 20 20 |OSITION...3 | 00001660 20 20 20 20 20 4c 44 52 20 52 35 2c 61 52 45 46 | LDR R5,aREF| 00001670 20 20 20 20 20 20 20 20 20 3b 20 52 35 20 3d 20 | ; R5 = | 00001680 52 45 46 20 4d 49 44 44 4c 45 0d 08 98 0e 20 20 |REF MIDDLE.... | 00001690 20 20 20 20 20 20 20 20 0d 08 a2 1a 2e 43 45 52 | .....CER| 000016a0 43 4c 20 20 20 20 41 44 44 20 52 34 2c 52 34 2c |CL ADD R4,R4,| 000016b0 52 33 0d 08 ac 1d 20 20 20 20 20 20 20 20 20 20 |R3.... | 000016c0 4d 4f 56 20 52 39 2c 52 34 2c 41 53 52 23 38 0d |MOV R9,R4,ASR#8.| 000016d0 08 b6 22 20 20 20 20 20 20 20 20 20 20 4c 44 52 |.." LDR| 000016e0 20 52 39 2c 5b 52 35 2c 52 39 2c 4c 53 4c 23 32 | R9,[R5,R9,LSL#2| 000016f0 5d 0d 08 c0 2f 20 20 20 20 20 20 20 20 20 20 4d |].../ M| 00001700 4f 56 20 52 38 2c 52 39 2c 4c 53 4c 23 31 36 3a |OV R8,R9,LSL#16:| 00001710 4d 4f 56 20 52 38 2c 52 38 2c 41 53 52 23 31 36 |MOV R8,R8,ASR#16| 00001720 0d 08 ca 1e 20 20 20 20 20 20 20 20 20 20 4d 4f |.... MO| 00001730 56 20 52 39 2c 52 39 2c 41 53 52 23 31 36 0d 08 |V R9,R9,ASR#16..| 00001740 d4 2b 20 20 20 20 20 20 20 20 20 20 4d 55 4c 20 |.+ MUL | 00001750 52 36 2c 52 38 2c 52 32 3a 4d 4f 56 20 52 36 2c |R6,R8,R2:MOV R6,| 00001760 52 36 2c 4c 53 52 23 31 36 0d 08 de 2b 20 20 20 |R6,LSR#16...+ | 00001770 20 20 20 20 20 20 20 4d 55 4c 20 52 37 2c 52 39 | MUL R7,R9| 00001780 2c 52 32 3a 4d 4f 56 20 52 37 2c 52 37 2c 4c 53 |,R2:MOV R7,R7,LS| 00001790 52 23 31 36 0d 08 e8 21 20 20 20 20 20 20 20 20 |R#16...! | 000017a0 20 20 41 44 44 20 52 36 2c 52 36 2c 52 37 2c 4c | ADD R6,R6,R7,L| 000017b0 53 4c 23 31 36 0d 08 f2 1c 20 20 20 20 20 20 20 |SL#16.... | 000017c0 20 20 20 53 54 52 20 52 36 2c 5b 52 30 5d 2c 23 | STR R6,[R0],#| 000017d0 34 0d 08 fc 24 20 20 20 20 20 20 20 20 20 53 55 |4...$ SU| 000017e0 42 53 20 52 31 2c 52 31 2c 23 31 3a 42 4e 45 20 |BS R1,R1,#1:BNE | 000017f0 43 45 52 43 4c 0d 09 06 0e 20 20 20 20 20 20 20 |CERCL.... | 00001800 20 20 20 0d 09 10 17 20 20 20 20 20 20 20 20 20 | .... | 00001810 4d 4f 56 20 50 43 2c 52 31 34 0d 09 1a 05 5d 0d |MOV PC,R14....].| 00001820 09 24 25 20 c8 99 20 22 4f 53 5f 52 65 61 64 56 |.$% .. "OS_ReadV| 00001830 64 75 56 61 72 69 61 62 6c 65 73 22 2c 45 43 52 |duVariables",ECR| 00001840 2c 45 43 52 0d 09 2e 21 20 20 21 45 43 52 2b 3d |,ECR...! !ECR+=| 00001850 45 43 52 21 38 2a 28 2e 35 2d 52 29 2b 45 43 52 |ECR!8*(.5-R)+ECR| 00001860 21 31 32 2f 32 0d 09 38 22 20 20 58 45 43 52 3d |!12/2..8" XECR=| 00001870 45 43 52 21 38 3a 45 43 52 21 34 3d 21 45 43 52 |ECR!8:ECR!4=!ECR| 00001880 2b 45 43 52 21 31 32 0d 09 42 18 20 50 25 3d 28 |+ECR!12..B. P%=(| 00001890 50 25 2b 31 32 37 29 80 20 28 2d 31 32 38 29 0d |P%+127). (-128).| 000018a0 09 4c 16 20 43 4f 4c 54 42 4c 3d 50 25 3a 50 25 |.L. COLTBL=P%:P%| 000018b0 2b 3d 31 32 38 0d 09 56 1f 20 43 53 54 42 4c 3d |+=128..V. CSTBL=| 000018c0 50 25 2b 32 35 36 3a 50 25 2b 3d 32 35 36 2b 32 |P%+256:P%+=256+2| 000018d0 35 37 2b 33 0d 09 60 15 20 52 45 46 3d 50 25 3a |57+3..`. REF=P%:| 000018e0 50 25 2b 3d 34 2a 52 2a 32 0d 09 6a 0b 20 42 41 |P%+=4*R*2..j. BA| 000018f0 4c 3d 50 25 0d 09 74 07 ed 20 49 0d 09 7e 0e 20 |L=P%..t.. I..~. | 00001900 20 20 20 20 20 20 20 20 20 0d 09 88 20 e7 20 44 | ... . D| 00001910 49 54 48 52 3d a3 20 8c 20 21 41 52 4f 4e 44 3d |ITHR=. . !AROND=| 00001920 26 38 38 38 38 38 38 38 38 0d 09 92 0e 20 20 20 |&88888888.... | 00001930 20 20 20 20 20 20 20 0d 09 9c 11 52 32 3d 52 2a | ....R2=R*| 00001940 52 3a 52 46 3d 52 45 46 0d 09 a6 14 e3 20 49 3d |R:RF=REF..... I=| 00001950 2d 52 2b 2e 35 20 b8 20 52 2d 2e 35 0d 09 b0 11 |-R+.5 . R-.5....| 00001960 20 52 46 21 30 3d 32 35 35 2a 49 2f 52 0d 09 ba | RF!0=255*I/R...| 00001970 19 20 52 46 21 34 3d 32 35 35 2a b6 28 31 2d 49 |. RF!4=255*.(1-I| 00001980 2a 49 2f 52 32 29 0d 09 c4 18 20 52 46 3f 32 3d |*I/R2).... RF?2=| 00001990 52 46 3f 34 3a 52 46 3f 33 3d 52 46 3f 35 0d 09 |RF?4:RF?3=RF?5..| 000019a0 ce 0a 20 52 46 2b 3d 34 0d 09 d8 07 ed 20 49 0d |.. RF+=4..... I.| 000019b0 09 e2 04 0d 09 ec 0a f2 73 68 61 64 65 0d 09 f6 |........shade...| 000019c0 0e 20 20 20 20 20 20 20 20 20 20 0d 0a 00 0a 41 |. ....A| 000019d0 25 3d 42 41 4c 0d 0a 0a 08 4f 50 3d 30 0d 0a 14 |%=BAL....OP=0...| 000019e0 15 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f |... "Hourglass_O| 000019f0 6e 22 0d 0a 1e 14 e3 20 59 3d 2d 52 2b 2e 35 20 |n"..... Y=-R+.5 | 00001a00 b8 20 52 2d 2e 35 0d 0a 28 2a 20 20 c8 99 20 22 |. R-.5..(* .. "| 00001a10 48 6f 75 72 67 6c 61 73 73 5f 50 65 72 63 65 6e |Hourglass_Percen| 00001a20 74 61 67 65 22 2c 28 59 2f 52 2b 31 29 2a 35 30 |tage",(Y/R+1)*50| 00001a30 0d 0a 32 0c 20 20 f2 6d 6f 64 65 6c 0d 0a 3c 0f |..2. .model..<.| 00001a40 20 20 4c 3d a8 28 94 28 4c 29 29 0d 0a 46 11 20 | L=.(.(L))..F. | 00001a50 20 e7 20 4c 3d 30 20 8c 20 4c 3d 31 0d 0a 50 11 | . L=0 . L=1..P.| 00001a60 20 20 e7 20 4c 3e 52 20 8c 20 4c 3d 52 0d 0a 5a | . L>R . L=R..Z| 00001a70 14 20 20 4e 3d 32 35 36 2f b6 28 31 2b 56 2a 56 |. N=256/.(1+V*V| 00001a80 29 0d 0a 64 2b 20 20 21 41 25 3d 32 2a 4c 2a 32 |)..d+ !A%=2*L*2| 00001a90 35 36 3a 41 25 21 34 3d 2d 56 2a 4e 3a e7 20 50 |56:A%!4=-V*N:. P| 00001aa0 20 8c 20 21 41 25 2b 3d 38 2a 31 37 0d 0a 6e 0b | . !A%+=8*17..n.| 00001ab0 20 20 41 25 2b 3d 38 0d 0a 78 0f 20 20 4e 4b 3d | A%+=8..x. NK=| 00001ac0 2d 4c 2b 4c 2f 34 0d 0a 82 1c 20 20 e3 20 4b 3d |-L+L/4.... . K=| 00001ad0 2d 4c 2b 2e 35 20 b8 20 4c 2d 2e 35 3a 58 3d 4b |-L+.5 . L-.5:X=K| 00001ae0 2f 4c 0d 0a 8c 11 20 20 20 5a 3d b6 28 31 2d 58 |/L.... Z=.(1-X| 00001af0 2a 58 29 0d 0a 96 35 20 20 20 e7 20 ac 28 50 29 |*X)...5 . .(P)| 00001b00 20 80 20 4b 3e 4e 4b 20 8c 20 4e 4b 2b 3d 4c 2f | . K>NK . NK+=L/| 00001b10 34 3a c8 94 20 58 2c 5a 3a 58 3d 58 2a b4 28 5a |4:.. X,Z:X=X*.(Z| 00001b20 29 3a 5a 3d 94 28 5a 29 0d 0a a0 17 20 20 20 21 |):Z=.(Z).... !| 00001b30 41 25 3d 58 2a 4e 3a 41 25 21 32 3d 5a 2a 4e 0d |A%=X*N:A%!2=Z*N.| 00001b40 0a aa 0c 20 20 20 41 25 2b 3d 34 0d 0a b4 09 20 |... A%+=4.... | 00001b50 20 ed 20 4b 0d 0a be 07 ed 20 59 0d 0a c8 16 c8 | . K..... Y.....| 00001b60 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 66 66 |. "Hourglass_Off| 00001b70 22 0d 0a d2 04 0d 0a dc 05 e1 0d 0a e6 05 3a 0d |".............:.| 00001b80 0a f0 0c dd 20 f2 6d 6f 64 65 6c 0d 0a fa 04 0d |.... .model.....| 00001b90 0b 04 21 20 f4 20 2a 2a 2a 2a 20 42 45 47 49 4e |..! . **** BEGIN| 00001ba0 20 4d 4f 44 49 46 49 41 42 4c 45 20 2a 2a 2a 2a | MODIFIABLE ****| 00001bb0 0d 0b 0e 05 20 0d 0b 18 2a 20 20 50 3d 28 94 28 |.... ...* P=(.(| 00001bc0 94 28 59 2f 52 29 2d 33 2f 34 29 3c 31 2f 31 30 |.(Y/R)-3/4)<1/10| 00001bd0 29 2b 28 94 28 59 2f 52 29 3c 31 2f 31 30 29 0d |)+(.(Y/R)<1/10).| 00001be0 0b 22 1e 20 20 4c 3d 52 2a 28 31 2d 28 59 2f 52 |.". L=R*(1-(Y/R| 00001bf0 29 5e 32 2f 33 29 2d 50 2a 52 2f 31 36 0d 0b 2c |)^2/3)-P*R/16..,| 00001c00 0c 20 20 56 3d 4c 2d 4f 50 0d 0b 36 0a 20 20 4f |. V=L-OP..6. O| 00001c10 50 3d 4c 0d 0b 40 06 20 20 0d 0b 4a 1f 20 f4 20 |P=L..@. ..J. . | 00001c20 2a 2a 2a 2a 20 45 4e 44 20 4d 4f 44 49 46 49 41 |**** END MODIFIA| 00001c30 42 4c 45 20 2a 2a 2a 2a 0d 0b 54 05 20 0d 0b 5e |BLE ****..T. ..^| 00001c40 05 e1 0d 0b 68 05 3a 0d 0b 72 2d f4 20 54 4f 20 |....h.:..r-. TO | 00001c50 43 48 41 4e 47 45 20 54 48 45 20 4f 42 4a 45 43 |CHANGE THE OBJEC| 00001c60 54 20 4d 4f 44 49 46 59 20 50 52 4f 43 6d 6f 64 |T MODIFY PROCmod| 00001c70 65 6c 20 3a 0d 0b 7c 05 f4 0d 0b 86 26 f4 20 49 |el :..|.....&. I| 00001c80 4e 20 54 48 49 53 20 42 4c 4f 43 4b 20 59 4f 55 |N THIS BLOCK YOU| 00001c90 20 4d 55 53 54 20 50 52 4f 56 49 44 45 20 3a 0d | MUST PROVIDE :.| 00001ca0 0b 90 23 f4 20 20 2a 20 4c 20 3a 20 54 48 45 20 |..#. * L : THE | 00001cb0 52 41 44 49 55 53 20 56 41 4c 55 45 20 46 4f 52 |RADIUS VALUE FOR| 00001cc0 20 59 0d 0b 9a 24 f4 20 20 20 20 20 20 20 20 20 | Y...$. | 00001cd0 20 28 20 4d 55 53 54 20 42 45 20 30 20 3c 20 2e | ( MUST BE 0 < .| 00001ce0 20 3c 20 52 20 29 0d 0b a4 20 f4 20 20 2a 20 56 | < R )... . * V| 00001cf0 20 3a 20 49 54 27 53 20 44 45 52 49 56 41 54 49 | : IT'S DERIVATI| 00001d00 56 45 20 2f 20 59 0d 0b ae 36 f4 20 20 20 20 20 |VE / Y...6. | 00001d10 20 20 20 20 20 28 20 53 49 47 4e 20 41 4e 44 20 | ( SIGN AND | 00001d20 41 4d 50 4c 49 54 55 44 45 20 4d 55 53 54 20 42 |AMPLITUDE MUST B| 00001d30 45 20 43 4f 52 52 45 43 54 21 20 29 0d 0b b8 20 |E CORRECT! )... | 00001d40 f4 20 57 49 54 48 20 59 20 42 45 45 49 4e 47 20 |. WITH Y BEEING | 00001d50 3a 20 2d 52 20 3c 20 59 20 3c 20 52 0d 0b c2 25 |: -R < Y < R...%| 00001d60 f4 20 28 20 52 20 49 53 20 54 48 45 20 53 43 41 |. ( R IS THE SCA| 00001d70 4c 45 20 50 41 52 41 4d 45 54 45 52 20 2e 2e 2e |LE PARAMETER ...| 00001d80 29 0d 0b cc 05 f4 0d 0b d6 2c f4 20 57 41 52 4e |)........,. WARN| 00001d90 49 4e 47 3a 20 55 53 45 20 4c 4f 43 41 4c 20 56 |ING: USE LOCAL V| 00001da0 41 52 20 49 46 20 4e 4f 54 20 53 55 52 45 20 2e |AR IF NOT SURE .| 00001db0 2e 2e 0d 0b e0 05 f4 0d ff |.........| 00001db9