Home » Archimedes archive » Acorn User » AU 1994-03.adf » !GraphDemo_GraphDemo » !Revolutif/!RunImage

!Revolutif/!RunImage

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: !Revolutif/!RunImage
Read OK:
File size: 14FC bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > REVOLUTIF
   20REM
   30REM  (C) 1994 ArmOric for Arm'S Tech
   40REM   Contact me: elisei@dingo.imag.fr
   50REM
   60REM THIS PROGRAM SHADES ANY REVOLUTION OBJECT
   70REM
   80REM  * WITH COLORS FOR :
   90REM     - THE OBJECT
  100REM     - A VERY FAR LIGHT ( RAYS ARE // )
  110REM     - AN AMBIENT LIGHTING
  120REM      (automatic gain for maximum contrast)
  130REM  * WITHOUT ANY SHADOWS
  140REM  * USING
  150REM     - PATTERNING IN A 16 COLORS MODE
  160REM     - ORDERED DITHERING
  170REM         ( less colour-accurate than error diffusing ones,
  180REM            but nicer for low-res.
  190REM            Complexity is same as simple dithering )
  200REM     - A PROCEDURAL MODEL FOR THE OBJECT
  210REM         (see at end to create your one...)
  220
  230
  240REM *************** LIST OF PARAMETERS *****************
  250
  260DITHR=TRUE          : REM  FOR ORDERED DITHERING / NONE
  270MD   =12            : REM  640 LARGE, 16 COLORS ONE
  280MD2  =15            : REM ANY THAT CHECKS DOUBLE MEMORY
  290
  300REM **************** END OF PARAMETERS *****************
  310
  320MODE MD2
  330IF MODE<>MD2 ERROR EXT 1,"Sorry, I need Mode "+STR$MD2:END
  340MODE MD:OFF:ORIGIN 640,512
  360
  370R=64:PROCass
  380
  390READ NOBJ
  400FOR NO=1 TO NOBJ
  410 READ A$:PROCobj(A$)
  430 MOUSE ON 129
  440 X=2:Y=2:E=1
  450 REPEAT
  460  MOUSE DX,DY,T
  470  X+=(DX/100-X)/10:Y+=(DY/512*PI/2-Y)/10
  480  Z=256*COS(Y)
  490  A%=Z*SIN(X):B%=-256*SIN(Y):C%=Z*COS(X)
  500  POINT TO A%+A%,-B%-B%
  510  VDU 19,2,25,(C%>0),(C%>0),(C%>0)
  520  CALL AFF:WAIT
  530  SYS "OS_Byte",&71,E:E=3-E
  540 UNTIL T<>0
  550NEXT NO
  560
  570MODE MD
  580SYS "OS_Exit"
  590
  600END
  610:
  620DEF PROCass
  630
  640DIM COD% 60*1024
  650
  660XECR=0
  670FOR I=0 TO 2 STEP 2
  680P%=COD%
  690[        OPT  I
  700.FCLS     LDR R0,ECR
  710          SUB 11,R0,#(R+15) AND (1023-15)
  720          MOV R3,#0:MOV R4,#0:MOV R5,#0:MOV R6,#0
  730          MOV R7,#0:MOV R8,#0:MOV R9,#0:MOV 10,#0
  740          MOV R1,#2*R
  750.YCLS     MOV R2,#2*((R+15)AND(1023-15))
  760          MOV R0,R11
  770.XCLS     STMIA R0!,{R3-10}
  780         SUBS R2,R2,#32:BNE XCLS
  790          ADD 11,11,#XECR
  800         SUBS R1,R1,#1:BNE YCLS
  810         
  820         MOV PC,R14
  830
  840.ECR      DCD 149:DCD 149:DCD 6:DCD 7:DCD 149:DCD -1
  850.aBAL     DCD BAL
  860.aCSTBL   DCD CSTBL
  870.aCOLTBL  DCD COLTBL
  880.RET14    DCD 0
  890
  900.AROND    DCD &0E4A2C68       ; NIBBLE PATTERN
  910                              ; FOR ORDERED DITHERING
  920
  930.AFF      STR R14,RET14
  940
  950          LDR R14,AROND
  960
  970          MOV R8,R0
  980          MOV R9,R1
  990          MOV 10,R2           ; 8,9,10 = LIGHT SOURCE
 1000          LDR R6,aCOLTBL
 1010          LDR R12,ECR         ; R12    = ECR
 1020          LDR R11,aBAL        ; R11    = DATA PTR
 1030          LDR R7,aCSTBL       ; R7     = pCos^q
 1040          MOV R0,#R*2         ; R0     = Y LOOP
 1050.YLOP     LDMIA R11!,{R1,R3}  ; R1     = X LOOP
 1060          MUL R3,R9,R3
 1070          STMFD R13!,{R12}
 1080          MOV R2,R1,LSL#1
 1090          MOV R14,R14,ROR#4
 1100          MOV R5,R14,ROR R2
 1110          SUB R12,R12,R1,LSR#1
 1120.XLOP
 1130          LDMIA R11!,{R2}
 1140          MOV R4,R2,ASR#16
 1150          MOV R2,R2,LSL#16:MOV R2,R2,ASR#16
 1160          MLA R2,R8,R2,R3
 1170          MLA R2,10,R4,R2     ; OUTER PROD. -> COS
 1180          LDRB R2,[R7,R2,ASR#8]
 1190          ADD R4,R2,R5,LSR#28:MOV R5,R5,ROR#28
 1200          LDRB R2,[R6,R4,LSR#3]
 1210          STRB R2,[R12],#1
 1220         SUBS R1,R1,#1:BNE XLOP
 1230         
 1240          LDMFD R13!,{R12}
 1250          ADD R12,R12,#XECR
 1260          EOR R6,R6,#64
 1270         SUBS R0,R0,#1:BNE YLOP
 1280         
 1290          LDR R0,ECR:LDR R1,ECR+4
 1300          STR R1,ECR:STR R0,ECR+4
 1310         LDR PC,RET14
 1320         
 1330.aREF     DCD REF
 1340         
 1350.CERC     ; R0 = @ STO
 1360          ; R1 = Radius*2
 1370          ; R2 = Facteur*256
 1380          ; R3 = Step*256
 1390          
 1400          STR R1,[R0],#8
 1410          
 1420          MOV R4,#R<<256
 1430          RSB R4,R4,#128      ; R4 = POSITION
 1440          LDR R5,aREF         ; R5 = REF MIDDLE
 1450          
 1460.CERCL    ADD R4,R4,R3
 1470          MOV R9,R4,ASR#8
 1480          LDR R9,[R5,R9,LSL#2]
 1490          MOV R8,R9,LSL#16:MOV R8,R8,ASR#16
 1500          MOV R9,R9,ASR#16
 1510          MUL R6,R8,R2:MOV R6,R6,LSR#16
 1520          MUL R7,R9,R2:MOV R7,R7,LSR#16
 1530          ADD R6,R6,R7,LSL#16
 1540          STR R6,[R0],#4
 1550         SUBS R1,R1,#1:BNE CERCL
 1560          
 1570         MOV PC,R14
 1580]
 1590 SYS "OS_ReadVduVariables",ECR,ECR
 1600  !ECR+=ECR!8*(.5-R)+ECR!12/2
 1610  XECR=ECR!8:ECR!4=!ECR+ECR!12
 1620 REF=P%:P%+=4*R*2
 1630 P%=(P%+127)AND (-128)
 1640 COLTBL=P%:P%+=128+48
 1650 CSTBL=P%+256:P%+=256+257+3
 1660 BAL=P%
 1670NEXT I
 1680
 1690C=COLTBL:A=1
 1700FOR I=0 TO 15
 1710 N=A-(A<>15)
 1720 C?(2*I)=A*17
 1730 C?(2*I+1)=A*16+N
 1740 C?(64+2*I)=A*17
 1750 C?(64+2*I+1)=N*16+A
 1760 A=N
 1770NEXT I
 1780C!30=-1:C!(64+30)=-1
 1790          
 1800IF DITHR=FALSE THEN !AROND=&88888888
 1810          
 1820R2=R*R:RF=REF
 1830FOR I=-R+.5 TO R-.5
 1840 RF!0=255*I/R
 1850 RF!4=255*SQR(1-I*I/R2)
 1860 RF?2=RF?4:RF?3=RF?5
 1870 RF+=4
 1880NEXT I
 1890          
 1900ENDPROC
 1910:
 1920DEF PROCobj(A$)
 1921 MOUSE OFF
 1930 A=COLTBL+128
 1940 A%=OPENIN("<Revolutif$Dir>."+A$):L=EXT#A%:CLOSE#A%
 1950 OSCLI "LOAD <Revolutif$Dir>."+A$+" "+STR$~A
 1960 IF ?A<>0 THEN
 1970  A%=BAL:?A=0     : REM EXPAND PURE REVOLUTION OBJECT
 1980  FOR I=1 TO 128
 1990   B%=!A%:C%=A%!8:D%=A%!12:A%=USR(CERC)
 2020  NEXT I
 2030 ENDIF
 2040 COLOUR 15,0
 2050 FOR I=2 TO 1 STEP -1
 2060  SYS "OS_Byte",&70,I:CLS
 2070  PRINT TAB(40-LEN(A$)/2,2)A$
 2080  PRINTTAB(25,30)"(C) 94 ArmOric for Arm'S Tech"
 2090 NEXT I
 2100 IF !ECR>ECR!4 THEN SWAP ECR!4,!ECR
 2110 FOR I=0 TO 15
 2120  COLOUR I,?A,A?1,A?2:A+=3
 2130 NEXT I
 2140ENDPROC
 2150
 2160DATA 6,VASE,JOYSTICK,BELL,TUBE,CHOCOLATE,SCREW

� > REVOLUTIF
�
&�  (C) 1994 ArmOric for Arm'S Tech
((�   Contact me: elisei@dingo.imag.fr
2�
</� THIS PROGRAM SHADES ANY REVOLUTION OBJECT
F�
P�  * WITH COLORS FOR :
Z�     - THE OBJECT
d,�     - A VERY FAR LIGHT ( RAYS ARE // )
n�     - AN AMBIENT LIGHTING
x0�      (automatic gain for maximum contrast)
��  * 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 *****************
�
6DITHR=�          : �  FOR ORDERED DITHERING / NONE
5MD   =12            : �  640 LARGE, 16 COLORS ONE
9MD2  =15            : � ANY THAT CHECKS DOUBLE MEMORY
"
,:� **************** END OF PARAMETERS *****************
6
@	� MD2
J/� �<>MD2 � � 1,"Sorry, I need Mode "+�MD2:�
T� MD:�:ȑ 640,512
h
r
R=64:�ass
|
�
� NOBJ
�� NO=1 � NOBJ
� � A$:�obj(A$)
�
 ȗ � 129
� X=2:Y=2:E=1
� �
�  ȗ DX,DY,T
�+  X+=(DX/100-X)/10:Y+=(DY/512*�/2-Y)/10
�  Z=256*�(Y)
�&  A%=Z*�(X):B%=-256*�(Y):C%=Z*�(X)
�  Ȓ � A%+A%,-B%-B%
�$  � 19,2,25,(C%>0),(C%>0),(C%>0)
  � AFF:Ȗ
  ș "OS_Byte",&71,E:E=3-E
 � T<>0
&� NO
0
:� MD
Dș "OS_Exit"
N
X�
b:
l
� �ass
v
�� COD% 60*1024
�
�
XECR=0
�� 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
*
         
4         MOV PC,R14
>
H8.ECR      DCD 149:DCD 149:DCD 6:DCD 7:DCD 149:DCD -1
R.aBAL     DCD BAL
\.aCSTBL   DCD CSTBL
f.aCOLTBL  DCD COLTBL
p.RET14    DCD 0
z
�2.AROND    DCD &0E4A2C68       ; NIBBLE PATTERN
�6                              ; � �DERED DITHERING
�
�.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}
8          MOV R2,R1,LSL#1
B          MOV R14,R14,ROR#4
L          MOV R5,R14,ROR R2
V"          SUB R12,R12,R1,LSR#1
`	.XLOP
j          LDMIA R11!,{R2}
t          MOV R4,R2,ASR#16
~/          MOV R2,R2,LSL#16:MOV R2,R2,ASR#16
�          MLA R2,R8,R2,R3
�4          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]
�          STRB R2,[R12],#1
�#         SUBS R1,R1,#1:BNE 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
(
         
2.aREF     DCD REF
<
         
F.CERC     ; R0 = @ STO
P          ; R1 = Radius*2
Z           ; R2 = Facteur*256
d          ; R3 = Step*256
n          
x          STR R1,[R0],#8
�          
�          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
,]
6% ș "OS_ReadVduVariables",ECR,ECR
@!  !ECR+=ECR!8*(.5-R)+ECR!12/2
J"  XECR=ECR!8:ECR!4=!ECR+ECR!12
T REF=P%:P%+=4*R*2
^ P%=(P%+127)� (-128)
h COLTBL=P%:P%+=128+48
r CSTBL=P%+256:P%+=256+257+3
| BAL=P%
�� I
�
�C=COLTBL:A=1
�� I=0 � 15
� N=A-(A<>15)
� 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=-1:C!(64+30)=-1
�          
 � DITHR=� � !AROND=&88888888
          
R2=R*R:RF=REF
&� I=-R+.5 � R-.5
0 RF!0=255*I/R
: RF!4=255*�(1-I*I/R2)
D RF?2=RF?4:RF?3=RF?5
N
 RF+=4
X� I
b          
l�
v:
�� �obj(A$)
�	 ȗ �
� A=COLTBL+128
�, A%=�("<Revolutif$Dir>."+A$):L=�#A%:�#A%
�) � "LOAD <Revolutif$Dir>."+A$+" "+�~A
� � ?A<>0 �
�7  A%=BAL:?A=0     : � EXPAND PURE REVOLUTION OBJECT
�  � I=1 � 128
�)   B%=!A%:C%=A%!8:D%=A%!12:A%=�(CERC)
�	  � I
� �
� � 15,0
 � I=2 � 1 � -1
  ș "OS_Byte",&70,I:�
  � �40-�(A$)/2,2)A$
 -  �25,30)"(C) 94 ArmOric for Arm'S Tech"
* � I
4! � !ECR>ECR!4 � Ȕ ECR!4,!ECR
> � I=0 � 15
H  � I,?A,A?1,A?2:A+=3
R � I
\�
f
p/� 6,VASE,JOYSTICK,BELL,TUBE,CHOCOLATE,SCREW
�
00000000  0d 00 0a 11 f4 20 3e 20  52 45 56 4f 4c 55 54 49  |..... > REVOLUTI|
00000010  46 0d 00 14 05 f4 0d 00  1e 26 f4 20 20 28 43 29  |F........&.  (C)|
00000020  20 31 39 39 34 20 41 72  6d 4f 72 69 63 20 66 6f  | 1994 ArmOric fo|
00000030  72 20 41 72 6d 27 53 20  54 65 63 68 0d 00 28 28  |r Arm'S Tech..((|
00000040  f4 20 20 20 43 6f 6e 74  61 63 74 20 6d 65 3a 20  |.   Contact me: |
00000050  65 6c 69 73 65 69 40 64  69 6e 67 6f 2e 69 6d 61  |elisei@dingo.ima|
00000060  67 2e 66 72 0d 00 32 05  f4 0d 00 3c 2f f4 20 54  |g.fr..2....</. T|
00000070  48 49 53 20 50 52 4f 47  52 41 4d 20 53 48 41 44  |HIS PROGRAM SHAD|
00000080  45 53 20 41 4e 59 20 52  45 56 4f 4c 55 54 49 4f  |ES ANY REVOLUTIO|
00000090  4e 20 4f 42 4a 45 43 54  0d 00 46 05 f4 0d 00 50  |N OBJECT..F....P|
000000a0  1a f4 20 20 2a 20 57 49  54 48 20 43 4f 4c 4f 52  |..  * WITH COLOR|
000000b0  53 20 46 4f 52 20 3a 0d  00 5a 16 f4 20 20 20 20  |S FOR :..Z..    |
000000c0  20 2d 20 54 48 45 20 4f  42 4a 45 43 54 0d 00 64  | - THE OBJECT..d|
000000d0  2c f4 20 20 20 20 20 2d  20 41 20 56 45 52 59 20  |,.     - A VERY |
000000e0  46 41 52 20 4c 49 47 48  54 20 28 20 52 41 59 53  |FAR LIGHT ( RAYS|
000000f0  20 41 52 45 20 2f 2f 20  29 0d 00 6e 1f f4 20 20  | ARE // )..n..  |
00000100  20 20 20 2d 20 41 4e 20  41 4d 42 49 45 4e 54 20  |   - AN AMBIENT |
00000110  4c 49 47 48 54 49 4e 47  0d 00 78 30 f4 20 20 20  |LIGHTING..x0.   |
00000120  20 20 20 28 61 75 74 6f  6d 61 74 69 63 20 67 61  |   (automatic ga|
00000130  69 6e 20 66 6f 72 20 6d  61 78 69 6d 75 6d 20 63  |in for maximum c|
00000140  6f 6e 74 72 61 73 74 29  0d 00 82 1c f4 20 20 2a  |ontrast).....  *|
00000150  20 57 49 54 48 4f 55 54  20 41 4e 59 20 53 48 41  | WITHOUT ANY SHA|
00000160  44 4f 57 53 0d 00 8c 0e  f4 20 20 2a 20 55 53 49  |DOWS.....  * USI|
00000170  4e 47 0d 00 96 2a f4 20  20 20 20 20 2d 20 50 41  |NG...*.     - PA|
00000180  54 54 45 52 4e 49 4e 47  20 49 4e 20 41 20 31 36  |TTERNING IN A 16|
00000190  20 43 4f 4c 4f 52 53 20  4d 4f 44 45 0d 00 a0 1d  | COLORS MODE....|
000001a0  f4 20 20 20 20 20 2d 20  4f 52 44 45 52 45 44 20  |.     - ORDERED |
000001b0  44 49 54 48 45 52 49 4e  47 0d 00 aa 3f f4 20 20  |DITHERING...?.  |
000001c0  20 20 20 20 20 20 20 28  20 6c 65 73 73 20 63 6f  |       ( less co|
000001d0  6c 6f 75 72 2d 61 63 63  75 72 61 74 65 20 74 68  |lour-accurate th|
000001e0  61 6e 20 65 72 72 6f 72  20 64 69 66 66 75 73 69  |an error diffusi|
000001f0  6e 67 20 6f 6e 65 73 2c  0d 00 b4 27 f4 20 20 20  |ng ones,...'.   |
00000200  20 20 20 20 20 20 20 20  20 62 75 74 20 6e 69 63  |         but nic|
00000210  65 72 20 66 6f 72 20 6c  6f 77 2d 72 65 73 2e 0d  |er for low-res..|
00000220  00 be 39 f4 20 20 20 20  20 20 20 20 20 20 20 20  |..9.            |
00000230  43 6f 6d 70 6c 65 78 69  74 79 20 69 73 20 73 61  |Complexity is sa|
00000240  6d 65 20 61 73 20 73 69  6d 70 6c 65 20 64 69 74  |me as simple dit|
00000250  68 65 72 69 6e 67 20 29  0d 00 c8 2d f4 20 20 20  |hering )...-.   |
00000260  20 20 2d 20 41 20 50 52  4f 43 45 44 55 52 41 4c  |  - A PROCEDURAL|
00000270  20 4d 4f 44 45 4c 20 46  4f 52 20 54 48 45 20 4f  | MODEL FOR THE O|
00000280  42 4a 45 43 54 0d 00 d2  30 f4 20 20 20 20 20 20  |BJECT...0.      |
00000290  20 20 20 28 73 65 65 20  61 74 20 65 6e 64 20 74  |   (see at end t|
000002a0  6f 20 63 72 65 61 74 65  20 79 6f 75 72 20 6f 6e  |o create your on|
000002b0  65 2e 2e 2e 29 0d 00 dc  04 0d 00 e6 04 0d 00 f0  |e...)...........|
000002c0  3a f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |:. *************|
000002d0  2a 2a 20 4c 49 53 54 20  4f 46 20 50 41 52 41 4d  |** LIST OF PARAM|
000002e0  45 54 45 52 53 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |ETERS **********|
000002f0  2a 2a 2a 2a 2a 2a 2a 0d  00 fa 04 0d 01 04 36 44  |*******.......6D|
00000300  49 54 48 52 3d b9 20 20  20 20 20 20 20 20 20 20  |ITHR=.          |
00000310  3a 20 f4 20 20 46 4f 52  20 4f 52 44 45 52 45 44  |: .  FOR ORDERED|
00000320  20 44 49 54 48 45 52 49  4e 47 20 2f 20 4e 4f 4e  | DITHERING / NON|
00000330  45 0d 01 0e 35 4d 44 20  20 20 3d 31 32 20 20 20  |E...5MD   =12   |
00000340  20 20 20 20 20 20 20 20  20 3a 20 f4 20 20 36 34  |         : .  64|
00000350  30 20 4c 41 52 47 45 2c  20 31 36 20 43 4f 4c 4f  |0 LARGE, 16 COLO|
00000360  52 53 20 4f 4e 45 0d 01  18 39 4d 44 32 20 20 3d  |RS ONE...9MD2  =|
00000370  31 35 20 20 20 20 20 20  20 20 20 20 20 20 3a 20  |15            : |
00000380  f4 20 41 4e 59 20 54 48  41 54 20 43 48 45 43 4b  |. ANY THAT CHECK|
00000390  53 20 44 4f 55 42 4c 45  20 4d 45 4d 4f 52 59 0d  |S DOUBLE MEMORY.|
000003a0  01 22 04 0d 01 2c 3a f4  20 2a 2a 2a 2a 2a 2a 2a  |."...,:. *******|
000003b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 20 45 4e 44 20 4f 46  |********* END OF|
000003c0  20 50 41 52 41 4d 45 54  45 52 53 20 2a 2a 2a 2a  | PARAMETERS ****|
000003d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 01 36  |*************..6|
000003e0  04 0d 01 40 09 eb 20 4d  44 32 0d 01 4a 2f e7 20  |...@.. MD2..J/. |
000003f0  eb 3c 3e 4d 44 32 20 85  20 a2 20 31 2c 22 53 6f  |.<>MD2 . . 1,"So|
00000400  72 72 79 2c 20 49 20 6e  65 65 64 20 4d 6f 64 65  |rry, I need Mode|
00000410  20 22 2b c3 4d 44 32 3a  e0 0d 01 54 15 eb 20 4d  | "+.MD2:...T.. M|
00000420  44 3a 87 3a c8 91 20 36  34 30 2c 35 31 32 0d 01  |D:.:.. 640,512..|
00000430  68 04 0d 01 72 0d 52 3d  36 34 3a f2 61 73 73 0d  |h...r.R=64:.ass.|
00000440  01 7c 04 0d 01 86 0a f3  20 4e 4f 42 4a 0d 01 90  |.|...... NOBJ...|
00000450  11 e3 20 4e 4f 3d 31 20  b8 20 4e 4f 42 4a 0d 01  |.. NO=1 . NOBJ..|
00000460  9a 12 20 f3 20 41 24 3a  f2 6f 62 6a 28 41 24 29  |.. . A$:.obj(A$)|
00000470  0d 01 ae 0d 20 c8 97 20  ee 20 31 32 39 0d 01 b8  |.... .. . 129...|
00000480  10 20 58 3d 32 3a 59 3d  32 3a 45 3d 31 0d 01 c2  |. X=2:Y=2:E=1...|
00000490  06 20 f5 0d 01 cc 10 20  20 c8 97 20 44 58 2c 44  |. .....  .. DX,D|
000004a0  59 2c 54 0d 01 d6 2b 20  20 58 2b 3d 28 44 58 2f  |Y,T...+  X+=(DX/|
000004b0  31 30 30 2d 58 29 2f 31  30 3a 59 2b 3d 28 44 59  |100-X)/10:Y+=(DY|
000004c0  2f 35 31 32 2a af 2f 32  2d 59 29 2f 31 30 0d 01  |/512*./2-Y)/10..|
000004d0  e0 10 20 20 5a 3d 32 35  36 2a 9b 28 59 29 0d 01  |..  Z=256*.(Y)..|
000004e0  ea 26 20 20 41 25 3d 5a  2a b5 28 58 29 3a 42 25  |.&  A%=Z*.(X):B%|
000004f0  3d 2d 32 35 36 2a b5 28  59 29 3a 43 25 3d 5a 2a  |=-256*.(Y):C%=Z*|
00000500  9b 28 58 29 0d 01 f4 17  20 20 c8 92 20 b8 20 41  |.(X)....  .. . A|
00000510  25 2b 41 25 2c 2d 42 25  2d 42 25 0d 01 fe 24 20  |%+A%,-B%-B%...$ |
00000520  20 ef 20 31 39 2c 32 2c  32 35 2c 28 43 25 3e 30  | . 19,2,25,(C%>0|
00000530  29 2c 28 43 25 3e 30 29  2c 28 43 25 3e 30 29 0d  |),(C%>0),(C%>0).|
00000540  02 08 0e 20 20 d6 20 41  46 46 3a c8 96 0d 02 12  |...  . AFF:.....|
00000550  1e 20 20 c8 99 20 22 4f  53 5f 42 79 74 65 22 2c  |.  .. "OS_Byte",|
00000560  26 37 31 2c 45 3a 45 3d  33 2d 45 0d 02 1c 0b 20  |&71,E:E=3-E.... |
00000570  fd 20 54 3c 3e 30 0d 02  26 08 ed 20 4e 4f 0d 02  |. T<>0..&.. NO..|
00000580  30 04 0d 02 3a 08 eb 20  4d 44 0d 02 44 10 c8 99  |0...:.. MD..D...|
00000590  20 22 4f 53 5f 45 78 69  74 22 0d 02 4e 04 0d 02  | "OS_Exit"..N...|
000005a0  58 05 e0 0d 02 62 05 3a  0d 02 6c 0a dd 20 f2 61  |X....b.:..l.. .a|
000005b0  73 73 0d 02 76 04 0d 02  80 12 de 20 43 4f 44 25  |ss..v...... COD%|
000005c0  20 36 30 2a 31 30 32 34  0d 02 8a 04 0d 02 94 0a  | 60*1024........|
000005d0  58 45 43 52 3d 30 0d 02  9e 11 e3 20 49 3d 30 20  |XECR=0..... I=0 |
000005e0  b8 20 32 20 88 20 32 0d  02 a8 0b 50 25 3d 43 4f  |. 2 . 2....P%=CO|
000005f0  44 25 0d 02 b2 13 5b 20  20 20 20 20 20 20 20 4f  |D%....[        O|
00000600  50 54 20 20 49 0d 02 bc  18 2e 46 43 4c 53 20 20  |PT  I.....FCLS  |
00000610  20 20 20 4c 44 52 20 52  30 2c 45 43 52 0d 02 c6  |   LDR R0,ECR...|
00000620  2b 20 20 20 20 20 20 20  20 20 20 53 55 42 20 31  |+          SUB 1|
00000630  31 2c 52 30 2c 23 28 52  2b 31 35 29 20 80 20 28  |1,R0,#(R+15) . (|
00000640  31 30 32 33 2d 31 35 29  0d 02 d0 35 20 20 20 20  |1023-15)...5    |
00000650  20 20 20 20 20 20 4d 4f  56 20 52 33 2c 23 30 3a  |      MOV R3,#0:|
00000660  4d 4f 56 20 52 34 2c 23  30 3a 4d 4f 56 20 52 35  |MOV R4,#0:MOV R5|
00000670  2c 23 30 3a 4d 4f 56 20  52 36 2c 23 30 0d 02 da  |,#0:MOV R6,#0...|
00000680  35 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 52  |5          MOV R|
00000690  37 2c 23 30 3a 4d 4f 56  20 52 38 2c 23 30 3a 4d  |7,#0:MOV R8,#0:M|
000006a0  4f 56 20 52 39 2c 23 30  3a 4d 4f 56 20 31 30 2c  |OV R9,#0:MOV 10,|
000006b0  23 30 0d 02 e4 19 20 20  20 20 20 20 20 20 20 20  |#0....          |
000006c0  4d 4f 56 20 52 31 2c 23  32 2a 52 0d 02 ee 2a 2e  |MOV R1,#2*R...*.|
000006d0  59 43 4c 53 20 20 20 20  20 4d 4f 56 20 52 32 2c  |YCLS     MOV R2,|
000006e0  23 32 2a 28 28 52 2b 31  35 29 80 28 31 30 32 33  |#2*((R+15).(1023|
000006f0  2d 31 35 29 29 0d 02 f8  18 20 20 20 20 20 20 20  |-15))....       |
00000700  20 20 20 4d 4f 56 20 52  30 2c 52 31 31 0d 03 02  |   MOV R0,R11...|
00000710  1f 2e 58 43 4c 53 20 20  20 20 20 53 54 4d 49 41  |..XCLS     STMIA|
00000720  20 52 30 21 2c 7b 52 33  2d 31 30 7d 0d 03 0c 24  | R0!,{R3-10}...$|
00000730  20 20 20 20 20 20 20 20  20 53 55 42 53 20 52 32  |         SUBS R2|
00000740  2c 52 32 2c 23 33 32 3a  42 4e 45 20 58 43 4c 53  |,R2,#32:BNE XCLS|
00000750  0d 03 16 1d 20 20 20 20  20 20 20 20 20 20 41 44  |....          AD|
00000760  44 20 31 31 2c 31 31 2c  23 58 45 43 52 0d 03 20  |D 11,11,#XECR.. |
00000770  23 20 20 20 20 20 20 20  20 20 53 55 42 53 20 52  |#         SUBS R|
00000780  31 2c 52 31 2c 23 31 3a  42 4e 45 20 59 43 4c 53  |1,R1,#1:BNE YCLS|
00000790  0d 03 2a 0d 20 20 20 20  20 20 20 20 20 0d 03 34  |..*.         ..4|
000007a0  17 20 20 20 20 20 20 20  20 20 4d 4f 56 20 50 43  |.         MOV PC|
000007b0  2c 52 31 34 0d 03 3e 04  0d 03 48 38 2e 45 43 52  |,R14..>...H8.ECR|
000007c0  20 20 20 20 20 20 44 43  44 20 31 34 39 3a 44 43  |      DCD 149:DC|
000007d0  44 20 31 34 39 3a 44 43  44 20 36 3a 44 43 44 20  |D 149:DCD 6:DCD |
000007e0  37 3a 44 43 44 20 31 34  39 3a 44 43 44 20 2d 31  |7:DCD 149:DCD -1|
000007f0  0d 03 52 15 2e 61 42 41  4c 20 20 20 20 20 44 43  |..R..aBAL     DC|
00000800  44 20 42 41 4c 0d 03 5c  17 2e 61 43 53 54 42 4c  |D BAL..\..aCSTBL|
00000810  20 20 20 44 43 44 20 43  53 54 42 4c 0d 03 66 18  |   DCD CSTBL..f.|
00000820  2e 61 43 4f 4c 54 42 4c  20 20 44 43 44 20 43 4f  |.aCOLTBL  DCD CO|
00000830  4c 54 42 4c 0d 03 70 13  2e 52 45 54 31 34 20 20  |LTBL..p..RET14  |
00000840  20 20 44 43 44 20 30 0d  03 7a 04 0d 03 84 32 2e  |  DCD 0..z....2.|
00000850  41 52 4f 4e 44 20 20 20  20 44 43 44 20 26 30 45  |AROND    DCD &0E|
00000860  34 41 32 43 36 38 20 20  20 20 20 20 20 3b 20 4e  |4A2C68       ; N|
00000870  49 42 42 4c 45 20 50 41  54 54 45 52 4e 0d 03 8e  |IBBLE PATTERN...|
00000880  36 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |6               |
00000890  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3b  |               ;|
000008a0  20 e3 20 84 44 45 52 45  44 20 44 49 54 48 45 52  | . .DERED DITHER|
000008b0  49 4e 47 0d 03 98 04 0d  03 a2 1b 2e 41 46 46 20  |ING.........AFF |
000008c0  20 20 20 20 20 53 54 52  20 52 31 34 2c 52 45 54  |     STR R14,RET|
000008d0  31 34 0d 03 ac 04 0d 03  b6 1b 20 20 20 20 20 20  |14........      |
000008e0  20 20 20 20 4c 44 52 20  52 31 34 2c 41 52 4f 4e  |    LDR R14,ARON|
000008f0  44 0d 03 c0 04 0d 03 ca  17 20 20 20 20 20 20 20  |D........       |
00000900  20 20 20 4d 4f 56 20 52  38 2c 52 30 0d 03 d4 17  |   MOV R8,R0....|
00000910  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 52 39  |          MOV R9|
00000920  2c 52 31 0d 03 de 39 20  20 20 20 20 20 20 20 20  |,R1...9         |
00000930  20 4d 4f 56 20 31 30 2c  52 32 20 20 20 20 20 20  | MOV 10,R2      |
00000940  20 20 20 20 20 3b 20 38  2c 39 2c 31 30 20 3d 20  |     ; 8,9,10 = |
00000950  4c 49 47 48 54 20 53 4f  55 52 43 45 0d 03 e8 1c  |LIGHT SOURCE....|
00000960  20 20 20 20 20 20 20 20  20 20 4c 44 52 20 52 36  |          LDR R6|
00000970  2c 61 43 4f 4c 54 42 4c  0d 03 f2 30 20 20 20 20  |,aCOLTBL...0    |
00000980  20 20 20 20 20 20 4c 44  52 20 52 31 32 2c 45 43  |      LDR R12,EC|
00000990  52 20 20 20 20 20 20 20  20 20 3b 20 52 31 32 20  |R         ; R12 |
000009a0  20 20 20 3d 20 45 43 52  0d 03 fc 32 20 20 20 20  |   = ECR...2    |
000009b0  20 20 20 20 20 20 4c 44  52 20 52 31 31 2c 61 42  |      LDR R11,aB|
000009c0  41 4c 20 20 20 20 20 20  20 20 3b 20 52 31 31 20  |AL        ; R11 |
000009d0  20 20 20 3d 20 dc 20 50  54 52 0d 04 06 33 20 20  |   = . PTR...3  |
000009e0  20 20 20 20 20 20 20 20  4c 44 52 20 52 37 2c 61  |        LDR R7,a|
000009f0  43 53 54 42 4c 20 20 20  20 20 20 20 3b 20 52 37  |CSTBL       ; R7|
00000a00  20 20 20 20 20 3d 20 70  43 6f 73 5e 71 0d 04 10  |     = pCos^q...|
00000a10  33 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 52  |3          MOV R|
00000a20  30 2c 23 52 2a 32 20 20  20 20 20 20 20 20 20 3b  |0,#R*2         ;|
00000a30  20 52 30 20 20 20 20 20  3d 20 59 20 4c 4f 4f 50  | R0     = Y LOOP|
00000a40  0d 04 1a 33 2e 59 4c 4f  50 20 20 20 20 20 4c 44  |...3.YLOP     LD|
00000a50  4d 49 41 20 52 31 31 21  2c 7b 52 31 2c 52 33 7d  |MIA R11!,{R1,R3}|
00000a60  20 20 3b 20 52 31 20 20  20 20 20 3d 20 58 20 4c  |  ; R1     = X L|
00000a70  4f 4f 50 0d 04 24 1a 20  20 20 20 20 20 20 20 20  |OOP..$.         |
00000a80  20 4d 55 4c 20 52 33 2c  52 39 2c 52 33 0d 04 2e  | MUL R3,R9,R3...|
00000a90  1e 20 20 20 20 20 20 20  20 20 20 53 54 4d 46 44  |.          STMFD|
00000aa0  20 52 31 33 21 2c 7b 52  31 32 7d 0d 04 38 1d 20  | R13!,{R12}..8. |
00000ab0  20 20 20 20 20 20 20 20  20 4d 4f 56 20 52 32 2c  |         MOV R2,|
00000ac0  52 31 2c 4c 53 4c 23 31  0d 04 42 1f 20 20 20 20  |R1,LSL#1..B.    |
00000ad0  20 20 20 20 20 20 4d 4f  56 20 52 31 34 2c 52 31  |      MOV R14,R1|
00000ae0  34 2c 52 4f 52 23 34 0d  04 4c 1f 20 20 20 20 20  |4,ROR#4..L.     |
00000af0  20 20 20 20 20 4d 4f 56  20 52 35 2c 52 31 34 2c  |     MOV R5,R14,|
00000b00  52 4f 52 20 52 32 0d 04  56 22 20 20 20 20 20 20  |ROR R2..V"      |
00000b10  20 20 20 20 53 55 42 20  52 31 32 2c 52 31 32 2c  |    SUB R12,R12,|
00000b20  52 31 2c 4c 53 52 23 31  0d 04 60 09 2e 58 4c 4f  |R1,LSR#1..`..XLO|
00000b30  50 0d 04 6a 1d 20 20 20  20 20 20 20 20 20 20 4c  |P..j.          L|
00000b40  44 4d 49 41 20 52 31 31  21 2c 7b 52 32 7d 0d 04  |DMIA R11!,{R2}..|
00000b50  74 1e 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |t.          MOV |
00000b60  52 34 2c 52 32 2c 41 53  52 23 31 36 0d 04 7e 2f  |R4,R2,ASR#16..~/|
00000b70  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 52 32  |          MOV R2|
00000b80  2c 52 32 2c 4c 53 4c 23  31 36 3a 4d 4f 56 20 52  |,R2,LSL#16:MOV R|
00000b90  32 2c 52 32 2c 41 53 52  23 31 36 0d 04 88 1d 20  |2,R2,ASR#16.... |
00000ba0  20 20 20 20 20 20 20 20  20 4d 4c 41 20 52 32 2c  |         MLA R2,|
00000bb0  52 38 2c 52 32 2c 52 33  0d 04 92 34 20 20 20 20  |R8,R2,R3...4    |
00000bc0  20 20 20 20 20 20 4d 4c  41 20 52 32 2c 31 30 2c  |      MLA R2,10,|
00000bd0  52 34 2c 52 32 20 20 20  20 20 3b 20 4f 55 54 45  |R4,R2     ; OUTE|
00000be0  52 20 50 52 4f 44 2e 20  2d 3e 20 9b 0d 04 9c 23  |R PROD. -> ....#|
00000bf0  20 20 20 20 20 20 20 20  20 20 4c 44 52 42 20 52  |          LDRB R|
00000c00  32 2c 5b 52 37 2c 52 32  2c 41 53 52 23 38 5d 0d  |2,[R7,R2,ASR#8].|
00000c10  04 a6 32 20 20 20 20 20  20 20 20 20 20 41 44 44  |..2          ADD|
00000c20  20 52 34 2c 52 32 2c 52  35 2c 4c 53 52 23 32 38  | R4,R2,R5,LSR#28|
00000c30  3a 4d 4f 56 20 52 35 2c  52 35 2c 52 4f 52 23 32  |:MOV R5,R5,ROR#2|
00000c40  38 0d 04 b0 23 20 20 20  20 20 20 20 20 20 20 4c  |8...#          L|
00000c50  44 52 42 20 52 32 2c 5b  52 36 2c 52 34 2c 4c 53  |DRB R2,[R6,R4,LS|
00000c60  52 23 33 5d 0d 04 ba 1e  20 20 20 20 20 20 20 20  |R#3]....        |
00000c70  20 20 53 54 52 42 20 52  32 2c 5b 52 31 32 5d 2c  |  STRB R2,[R12],|
00000c80  23 31 0d 04 c4 23 20 20  20 20 20 20 20 20 20 53  |#1...#         S|
00000c90  55 42 53 20 52 31 2c 52  31 2c 23 31 3a 42 4e 45  |UBS R1,R1,#1:BNE|
00000ca0  20 58 4c 4f 50 0d 04 ce  0d 20 20 20 20 20 20 20  | XLOP....       |
00000cb0  20 20 0d 04 d8 1e 20 20  20 20 20 20 20 20 20 20  |  ....          |
00000cc0  4c 44 4d 46 44 20 52 31  33 21 2c 7b 52 31 32 7d  |LDMFD R13!,{R12}|
00000cd0  0d 04 e2 1f 20 20 20 20  20 20 20 20 20 20 41 44  |....          AD|
00000ce0  44 20 52 31 32 2c 52 31  32 2c 23 58 45 43 52 0d  |D R12,R12,#XECR.|
00000cf0  04 ec 19 20 20 20 20 20  20 20 20 20 20 82 20 52  |...          . R|
00000d00  36 2c 52 36 2c 23 36 34  0d 04 f6 23 20 20 20 20  |6,R6,#64...#    |
00000d10  20 20 20 20 20 53 55 42  53 20 52 30 2c 52 30 2c  |     SUBS R0,R0,|
00000d20  23 31 3a 42 4e 45 20 59  4c 4f 50 0d 05 00 0d 20  |#1:BNE YLOP.... |
00000d30  20 20 20 20 20 20 20 20  0d 05 0a 25 20 20 20 20  |        ...%    |
00000d40  20 20 20 20 20 20 4c 44  52 20 52 30 2c 45 43 52  |      LDR R0,ECR|
00000d50  3a 4c 44 52 20 52 31 2c  45 43 52 2b 34 0d 05 14  |:LDR R1,ECR+4...|
00000d60  25 20 20 20 20 20 20 20  20 20 20 53 54 52 20 52  |%          STR R|
00000d70  31 2c 45 43 52 3a 53 54  52 20 52 30 2c 45 43 52  |1,ECR:STR R0,ECR|
00000d80  2b 34 0d 05 1e 19 20 20  20 20 20 20 20 20 20 4c  |+4....         L|
00000d90  44 52 20 50 43 2c 52 45  54 31 34 0d 05 28 0d 20  |DR PC,RET14..(. |
00000da0  20 20 20 20 20 20 20 20  0d 05 32 15 2e 61 52 45  |        ..2..aRE|
00000db0  46 20 20 20 20 20 44 43  44 20 52 45 46 0d 05 3c  |F     DCD REF..<|
00000dc0  0d 20 20 20 20 20 20 20  20 20 0d 05 46 1a 2e 43  |.         ..F..C|
00000dd0  45 52 43 20 20 20 20 20  3b 20 52 30 20 3d 20 40  |ERC     ; R0 = @|
00000de0  20 53 54 4f 0d 05 50 1d  20 20 20 20 20 20 20 20  | STO..P.        |
00000df0  20 20 3b 20 52 31 20 3d  20 52 61 64 69 75 73 2a  |  ; R1 = Radius*|
00000e00  32 0d 05 5a 20 20 20 20  20 20 20 20 20 20 20 3b  |2..Z           ;|
00000e10  20 52 32 20 3d 20 46 61  63 74 65 75 72 2a 32 35  | R2 = Facteur*25|
00000e20  36 0d 05 64 1d 20 20 20  20 20 20 20 20 20 20 3b  |6..d.          ;|
00000e30  20 52 33 20 3d 20 53 74  65 70 2a 32 35 36 0d 05  | R3 = Step*256..|
00000e40  6e 0e 20 20 20 20 20 20  20 20 20 20 0d 05 78 1c  |n.          ..x.|
00000e50  20 20 20 20 20 20 20 20  20 20 53 54 52 20 52 31  |          STR R1|
00000e60  2c 5b 52 30 5d 2c 23 38  0d 05 82 0e 20 20 20 20  |,[R0],#8....    |
00000e70  20 20 20 20 20 20 0d 05  8c 1c 20 20 20 20 20 20  |      ....      |
00000e80  20 20 20 20 4d 4f 56 20  52 34 2c 23 52 3c 3c 32  |    MOV R4,#R<<2|
00000e90  35 36 0d 05 96 31 20 20  20 20 20 20 20 20 20 20  |56...1          |
00000ea0  52 53 42 20 52 34 2c 52  34 2c 23 31 32 38 20 20  |RSB R4,R4,#128  |
00000eb0  20 20 20 20 3b 20 52 34  20 3d 20 50 4f 53 49 54  |    ; R4 = POSIT|
00000ec0  49 4f 4e 0d 05 a0 33 20  20 20 20 20 20 20 20 20  |ION...3         |
00000ed0  20 4c 44 52 20 52 35 2c  61 52 45 46 20 20 20 20  | LDR R5,aREF    |
00000ee0  20 20 20 20 20 3b 20 52  35 20 3d 20 52 45 46 20  |     ; R5 = REF |
00000ef0  4d 49 44 44 4c 45 0d 05  aa 0e 20 20 20 20 20 20  |MIDDLE....      |
00000f00  20 20 20 20 0d 05 b4 1a  2e 43 45 52 43 4c 20 20  |    .....CERCL  |
00000f10  20 20 41 44 44 20 52 34  2c 52 34 2c 52 33 0d 05  |  ADD R4,R4,R3..|
00000f20  be 1d 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |..          MOV |
00000f30  52 39 2c 52 34 2c 41 53  52 23 38 0d 05 c8 22 20  |R9,R4,ASR#8..." |
00000f40  20 20 20 20 20 20 20 20  20 4c 44 52 20 52 39 2c  |         LDR R9,|
00000f50  5b 52 35 2c 52 39 2c 4c  53 4c 23 32 5d 0d 05 d2  |[R5,R9,LSL#2]...|
00000f60  2f 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 52  |/          MOV R|
00000f70  38 2c 52 39 2c 4c 53 4c  23 31 36 3a 4d 4f 56 20  |8,R9,LSL#16:MOV |
00000f80  52 38 2c 52 38 2c 41 53  52 23 31 36 0d 05 dc 1e  |R8,R8,ASR#16....|
00000f90  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 52 39  |          MOV R9|
00000fa0  2c 52 39 2c 41 53 52 23  31 36 0d 05 e6 2b 20 20  |,R9,ASR#16...+  |
00000fb0  20 20 20 20 20 20 20 20  4d 55 4c 20 52 36 2c 52  |        MUL R6,R|
00000fc0  38 2c 52 32 3a 4d 4f 56  20 52 36 2c 52 36 2c 4c  |8,R2:MOV R6,R6,L|
00000fd0  53 52 23 31 36 0d 05 f0  2b 20 20 20 20 20 20 20  |SR#16...+       |
00000fe0  20 20 20 4d 55 4c 20 52  37 2c 52 39 2c 52 32 3a  |   MUL R7,R9,R2:|
00000ff0  4d 4f 56 20 52 37 2c 52  37 2c 4c 53 52 23 31 36  |MOV R7,R7,LSR#16|
00001000  0d 05 fa 21 20 20 20 20  20 20 20 20 20 20 41 44  |...!          AD|
00001010  44 20 52 36 2c 52 36 2c  52 37 2c 4c 53 4c 23 31  |D R6,R6,R7,LSL#1|
00001020  36 0d 06 04 1c 20 20 20  20 20 20 20 20 20 20 53  |6....          S|
00001030  54 52 20 52 36 2c 5b 52  30 5d 2c 23 34 0d 06 0e  |TR R6,[R0],#4...|
00001040  24 20 20 20 20 20 20 20  20 20 53 55 42 53 20 52  |$         SUBS R|
00001050  31 2c 52 31 2c 23 31 3a  42 4e 45 20 43 45 52 43  |1,R1,#1:BNE CERC|
00001060  4c 0d 06 18 0e 20 20 20  20 20 20 20 20 20 20 0d  |L....          .|
00001070  06 22 17 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |.".         MOV |
00001080  50 43 2c 52 31 34 0d 06  2c 05 5d 0d 06 36 25 20  |PC,R14..,.]..6% |
00001090  c8 99 20 22 4f 53 5f 52  65 61 64 56 64 75 56 61  |.. "OS_ReadVduVa|
000010a0  72 69 61 62 6c 65 73 22  2c 45 43 52 2c 45 43 52  |riables",ECR,ECR|
000010b0  0d 06 40 21 20 20 21 45  43 52 2b 3d 45 43 52 21  |..@!  !ECR+=ECR!|
000010c0  38 2a 28 2e 35 2d 52 29  2b 45 43 52 21 31 32 2f  |8*(.5-R)+ECR!12/|
000010d0  32 0d 06 4a 22 20 20 58  45 43 52 3d 45 43 52 21  |2..J"  XECR=ECR!|
000010e0  38 3a 45 43 52 21 34 3d  21 45 43 52 2b 45 43 52  |8:ECR!4=!ECR+ECR|
000010f0  21 31 32 0d 06 54 15 20  52 45 46 3d 50 25 3a 50  |!12..T. REF=P%:P|
00001100  25 2b 3d 34 2a 52 2a 32  0d 06 5e 18 20 50 25 3d  |%+=4*R*2..^. P%=|
00001110  28 50 25 2b 31 32 37 29  80 20 28 2d 31 32 38 29  |(P%+127). (-128)|
00001120  0d 06 68 19 20 43 4f 4c  54 42 4c 3d 50 25 3a 50  |..h. COLTBL=P%:P|
00001130  25 2b 3d 31 32 38 2b 34  38 0d 06 72 1f 20 43 53  |%+=128+48..r. CS|
00001140  54 42 4c 3d 50 25 2b 32  35 36 3a 50 25 2b 3d 32  |TBL=P%+256:P%+=2|
00001150  35 36 2b 32 35 37 2b 33  0d 06 7c 0b 20 42 41 4c  |56+257+3..|. BAL|
00001160  3d 50 25 0d 06 86 07 ed  20 49 0d 06 90 04 0d 06  |=P%..... I......|
00001170  9a 10 43 3d 43 4f 4c 54  42 4c 3a 41 3d 31 0d 06  |..C=COLTBL:A=1..|
00001180  a4 0e e3 20 49 3d 30 20  b8 20 31 35 0d 06 ae 10  |... I=0 . 15....|
00001190  20 4e 3d 41 2d 28 41 3c  3e 31 35 29 0d 06 b8 11  | N=A-(A<>15)....|
000011a0  20 43 3f 28 32 2a 49 29  3d 41 2a 31 37 0d 06 c2  | C?(2*I)=A*17...|
000011b0  15 20 43 3f 28 32 2a 49  2b 31 29 3d 41 2a 31 36  |. C?(2*I+1)=A*16|
000011c0  2b 4e 0d 06 cc 14 20 43  3f 28 36 34 2b 32 2a 49  |+N.... C?(64+2*I|
000011d0  29 3d 41 2a 31 37 0d 06  d6 18 20 43 3f 28 36 34  |)=A*17.... C?(64|
000011e0  2b 32 2a 49 2b 31 29 3d  4e 2a 31 36 2b 41 0d 06  |+2*I+1)=N*16+A..|
000011f0  e0 08 20 41 3d 4e 0d 06  ea 07 ed 20 49 0d 06 f4  |.. A=N..... I...|
00001200  18 43 21 33 30 3d 2d 31  3a 43 21 28 36 34 2b 33  |.C!30=-1:C!(64+3|
00001210  30 29 3d 2d 31 0d 06 fe  0e 20 20 20 20 20 20 20  |0)=-1....       |
00001220  20 20 20 0d 07 08 20 e7  20 44 49 54 48 52 3d a3  |   ... . DITHR=.|
00001230  20 8c 20 21 41 52 4f 4e  44 3d 26 38 38 38 38 38  | . !AROND=&88888|
00001240  38 38 38 0d 07 12 0e 20  20 20 20 20 20 20 20 20  |888....         |
00001250  20 0d 07 1c 11 52 32 3d  52 2a 52 3a 52 46 3d 52  | ....R2=R*R:RF=R|
00001260  45 46 0d 07 26 14 e3 20  49 3d 2d 52 2b 2e 35 20  |EF..&.. I=-R+.5 |
00001270  b8 20 52 2d 2e 35 0d 07  30 11 20 52 46 21 30 3d  |. R-.5..0. RF!0=|
00001280  32 35 35 2a 49 2f 52 0d  07 3a 19 20 52 46 21 34  |255*I/R..:. RF!4|
00001290  3d 32 35 35 2a b6 28 31  2d 49 2a 49 2f 52 32 29  |=255*.(1-I*I/R2)|
000012a0  0d 07 44 18 20 52 46 3f  32 3d 52 46 3f 34 3a 52  |..D. RF?2=RF?4:R|
000012b0  46 3f 33 3d 52 46 3f 35  0d 07 4e 0a 20 52 46 2b  |F?3=RF?5..N. RF+|
000012c0  3d 34 0d 07 58 07 ed 20  49 0d 07 62 0e 20 20 20  |=4..X.. I..b.   |
000012d0  20 20 20 20 20 20 20 0d  07 6c 05 e1 0d 07 76 05  |       ..l....v.|
000012e0  3a 0d 07 80 0e dd 20 f2  6f 62 6a 28 41 24 29 0d  |:..... .obj(A$).|
000012f0  07 81 09 20 c8 97 20 87  0d 07 8a 11 20 41 3d 43  |... .. ..... A=C|
00001300  4f 4c 54 42 4c 2b 31 32  38 0d 07 94 2c 20 41 25  |OLTBL+128..., A%|
00001310  3d 8e 28 22 3c 52 65 76  6f 6c 75 74 69 66 24 44  |=.("<Revolutif$D|
00001320  69 72 3e 2e 22 2b 41 24  29 3a 4c 3d a2 23 41 25  |ir>."+A$):L=.#A%|
00001330  3a d9 23 41 25 0d 07 9e  29 20 ff 20 22 4c 4f 41  |:.#A%...) . "LOA|
00001340  44 20 3c 52 65 76 6f 6c  75 74 69 66 24 44 69 72  |D <Revolutif$Dir|
00001350  3e 2e 22 2b 41 24 2b 22  20 22 2b c3 7e 41 0d 07  |>."+A$+" "+.~A..|
00001360  a8 0e 20 e7 20 3f 41 3c  3e 30 20 8c 0d 07 b2 37  |.. . ?A<>0 ....7|
00001370  20 20 41 25 3d 42 41 4c  3a 3f 41 3d 30 20 20 20  |  A%=BAL:?A=0   |
00001380  20 20 3a 20 f4 20 45 58  50 41 4e 44 20 50 55 52  |  : . EXPAND PUR|
00001390  45 20 52 45 56 4f 4c 55  54 49 4f 4e 20 4f 42 4a  |E REVOLUTION OBJ|
000013a0  45 43 54 0d 07 bc 11 20  20 e3 20 49 3d 31 20 b8  |ECT....  . I=1 .|
000013b0  20 31 32 38 0d 07 c6 29  20 20 20 42 25 3d 21 41  | 128...)   B%=!A|
000013c0  25 3a 43 25 3d 41 25 21  38 3a 44 25 3d 41 25 21  |%:C%=A%!8:D%=A%!|
000013d0  31 32 3a 41 25 3d ba 28  43 45 52 43 29 0d 07 e4  |12:A%=.(CERC)...|
000013e0  09 20 20 ed 20 49 0d 07  ee 06 20 cd 0d 07 f8 0b  |.  . I.... .....|
000013f0  20 fb 20 31 35 2c 30 0d  08 02 13 20 e3 20 49 3d  | . 15,0.... . I=|
00001400  32 20 b8 20 31 20 88 20  2d 31 0d 08 0c 1a 20 20  |2 . 1 . -1....  |
00001410  c8 99 20 22 4f 53 5f 42  79 74 65 22 2c 26 37 30  |.. "OS_Byte",&70|
00001420  2c 49 3a db 0d 08 16 18  20 20 f1 20 8a 34 30 2d  |,I:.....  . .40-|
00001430  a9 28 41 24 29 2f 32 2c  32 29 41 24 0d 08 20 2d  |.(A$)/2,2)A$.. -|
00001440  20 20 f1 8a 32 35 2c 33  30 29 22 28 43 29 20 39  |  ..25,30)"(C) 9|
00001450  34 20 41 72 6d 4f 72 69  63 20 66 6f 72 20 41 72  |4 ArmOric for Ar|
00001460  6d 27 53 20 54 65 63 68  22 0d 08 2a 08 20 ed 20  |m'S Tech"..*. . |
00001470  49 0d 08 34 21 20 e7 20  21 45 43 52 3e 45 43 52  |I..4! . !ECR>ECR|
00001480  21 34 20 8c 20 c8 94 20  45 43 52 21 34 2c 21 45  |!4 . .. ECR!4,!E|
00001490  43 52 0d 08 3e 0f 20 e3  20 49 3d 30 20 b8 20 31  |CR..>. . I=0 . 1|
000014a0  35 0d 08 48 19 20 20 fb  20 49 2c 3f 41 2c 41 3f  |5..H.  . I,?A,A?|
000014b0  31 2c 41 3f 32 3a 41 2b  3d 33 0d 08 52 08 20 ed  |1,A?2:A+=3..R. .|
000014c0  20 49 0d 08 5c 05 e1 0d  08 66 04 0d 08 70 2f dc  | I..\....f...p/.|
000014d0  20 36 2c 56 41 53 45 2c  4a 4f 59 53 54 49 43 4b  | 6,VASE,JOYSTICK|
000014e0  2c 42 45 4c 4c 2c 54 55  42 45 2c 43 48 4f 43 4f  |,BELL,TUBE,CHOCO|
000014f0  4c 41 54 45 2c 53 43 52  45 57 0d ff              |LATE,SCREW..|
000014fc