Home » Archimedes archive » Acorn User » AU 1995-01.adf » !StarInfo_StarInfo » Bradburne/MCRM_multi

Bradburne/MCRM_multi

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 1995-01.adf » !StarInfo_StarInfo
Filename: Bradburne/MCRM_multi
Read OK:
File size: 1857 bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM>MCRM_Multi
   20 REM By Chris Bradburne
   30
   40 ON ERROR PROCerror
   50
   60 MODE 21
   70 OFF
   80 DIM vars 8
   90 !vars=148
  100 vars!4=-1
  110 SYS "OS_ReadVduVariables",vars,vars
  120
  130 MODE 0
  140 DIM transformations%(3)
  150 transformations%()=0
  160 !vars=!vars+64
  170
  180 DIM code 1024
  190 DIM block 16*1024*4
  200 FOR pass=0 TO 2 STEP 2
  210 P%=code
  220
  230 [OPT pass
  240 STMFD R13!,{R0-R12,R14}
  250 LDR R12,blockstart
  260 MOV R0,#0:MOV R1,#0:MOV R2,#0:MOV R3,#0:MOV R4,#0:MOV R5,#0:MOV R6,#0:MOV R7,#0
  270 MOV R11,#0
  280 .loop0
  290 STMIA R12!,{R0-R7}
  300 STMIA R12!,{R0-R7}
  310 STMIA R12!,{R0-R7}
  320 STMIA R12!,{R0-R7}
  330 STMIA R12!,{R0-R7}
  340 STMIA R12!,{R0-R7}
  350 STMIA R12!,{R0-R7}
  360 STMIA R12!,{R0-R7}
  370 ADD R11,R11,#1
  380 CMP R11,#4*1024/16
  390 BLT loop0
  400 LDR R12,screenstart
  410 LDR R11,blockstart
  420 MOV R10,#0
  430 MOV R9,#0
  440 .loop1
  450 LDRB R0,[R12]
  460 CMP R0,#255
  470 STREQB R0,[R11]
  480 ADD R12,R12,#640
  490 LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
  500 ADD R12,R12,#1
  510 LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
  520 SUB R12,R12,#640
  530 LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
  540 ADD R12,R12,#1
  550 ADD R11,R11,#1
  560 ADD R10,R10,#1
  570 CMP R10,#256
  580 BLT loop1
  590 MOV R10,#0
  600 ADD R12,R12,#(128+640)
  610 ADD R9,R9,#1
  620 CMP R9,#256
  630 BLT loop1
  640 LDMFD R13!,{R0-R12,PC}
  650
  660 .copy0
  670 STMFD R13!,{R0-R12,R14}
  680 LDR R12,copystart
  690 LDR R11,blockstart
  700 MOV R10,#0
  710 .loop2
  720 ]:FOR X%=0 TO 7
  730 [OPT pass
  740 LDMIA R11!,{R0-R7}
  750 STMIA R12!,{R0-R7}
  760 ]:NEXT:[OPT pass
  770 ADD R10,R10,#1
  780 ADD R12,R12,#384
  790 CMP R10,#256
  800 BLT loop2
  810 LDMFD R13!,{R0-R12,PC}
  820
  830 .copy1
  840 STMFD R13!,{R0-R12,R14}
  850 LDR R12,copystart
  860 LDR R11,blockstart
  870 ADD R12,R12,#640*256
  880 SUB R12,R12,#640
  890 MOV R10,#0
  900 MOV R9,#0
  910 .loop4
  920 LDRB R0,[R11]
  930 STRB R0,[R12]
  940 SUB R12,R12,#640
  950 ADD R11,R11,#1
  960 ADD R10,R10,#1
  970 CMP R10,#256
  980 BLT loop4
  990 ADD R12,R12,#640*256
 1000 ADD R12,R12,#1
 1010 MOV R10,#0
 1020 ADD R9,R9,#1
 1030 CMP R9,#256
 1040 BLT loop4
 1050 LDMFD R13!,{R0-R12,PC}
 1060
 1070 .copy5
 1080 STMFD R13!,{R0-R12,R14}
 1090 LDR R12,copystart
 1100 LDR R11,blockstart
 1110 ADD R12,R12,#255
 1120 MOV R9,#0:MOV R10,#0
 1130 .loop7
 1140 LDRB R0,[R11]:STRB R0,[R12]
 1150 SUB R12,R12,#1
 1160ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop7
 1170 ADD R12,R12,#256
 1180 ADD R12,R12,#640
 1190 MOV R10,#0
 1200 ADD R9,R9,#1
 1210 CMP R9,#256
 1220 BLT loop7
 1230 LDMFD R13!,{R0-R12,PC}
 1240
 1250 .copy6
 1260 STMFD R13!,{R0-R12,R14}
 1270 LDR R12,copystart
 1280 LDR R11,blockstart
 1290 MOV R9,#0:MOV R10,#0
 1300 ADD R12,R12,#255
 1310 ADD R12,R12,#640*256
 1320 SUB R12,R12,#640
 1330 .loop8
 1340 LDRB R0,[R11]:STRB R0,[R12]
 1350 SUB R12,R12,#640
 1360 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop8
 1370 ADD R12,R12,#640*256
 1380 SUB R12,R12,#1
 1390 MOV R10,#0
 1400 ADD R9,R9,#1
 1410 CMP R9,#256
 1420 BLT loop8
 1430 LDMFD R13!,{R0-R12,PC}
 1440
 1450 .copy7
 1460 STMFD R13!,{R0-R12,R14}
 1470 LDR R12,copystart
 1480 LDR R11,blockstart
 1490 MOV R9,#0:MOV R10,#0
 1500 .loop9
 1510 LDRB R0,[R11]:STRB R0,[R12]
 1520 ADD R12,R12,#640
 1530 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop9
 1540 SUB R12,R12,#640*256
 1550 ADD R12,R12,#1
 1560 MOV R10,#0:ADD R9,R9,#1:CMP R9,#256
 1570 BLT loop9
 1580 LDMFD R13!,{R0-R12,PC}
 1590
 1600 .copy3
 1610 STMFD R13!,{R0-R12,R14}
 1620 LDR R12,copystart
 1630 LDR R11,blockstart
 1640 ADD R12,R12,#255
 1650 MOV R10,#0:MOV R9,#0
 1660 .loop6
 1670 LDRB R0,[R11]:STRB R0,[R12]
 1680 ADD R12,R12,#640
 1690 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop6
 1700 SUB R12,R12,#640*256
 1710 SUB R12,R12,#1
 1720 MOV R10,#0
 1730 ADD R9,R9,#1:CMP R9,#256
 1740 BLT loop6
 1750 LDMFD R13!,{R0-R12,PC}
 1760
 1770 .copy2
 1780 STMFD R13!,{R0-R12,R14}
 1790 LDR R12,copystart
 1800 LDR R11,blockstart
 1810 ADD R12,R12,#640*256
 1820 SUB R12,R12,#640
 1830 ADD R12,R12,#255
 1840 MOV R10,#0:MOV R9,#0
 1850 .loop5
 1860 LDRB R0,[R11]
 1870 STRB R0,[R12]
 1880 SUB R12,R12,#1
 1890 ADD R11,R11,#1
 1900 ADD R10,R10,#1
 1910 CMP R10,#256
 1920 BLT loop5
 1930 ADD R12,R12,#256
 1940 SUB R12,R12,#640
 1950 MOV R10,#0
 1960 ADD R9,R9,#1
 1970 CMP R9,#256
 1980 BLT loop5
 1990 LDMFD R13!,{R0-R12,PC}
 2000
 2010 .copy4
 2020 STMFD R13!,{R0-R12,R14}
 2030 LDR R12,copystart
 2040 LDR R11,blockstart
 2050 ADD R12,R12,#640*256
 2060 SUB R12,R12,#640
 2070 .loop3
 2080 ]:FOR X%=0 TO 7
 2090 [OPT pass
 2100 LDMIA R11!,{R0-R7}:STMIA R12!,{R0-R7}
 2110 ]:NEXT:[OPT pass
 2120 ADD R10,R10,#1
 2130 SUB R12,R12,#(1280+512)/2
 2140 CMP R10,#256
 2150 BLT loop3
 2160 LDMFD R13!,{R0-R12,PC}
 2170
 2180 .screenstart:EQUD !vars
 2190 .copystart:EQUD !vars
 2200 .blockstart:EQUD block
 2210 ]:NEXT
 2220
 2230 REPEAT
 2240 MODE 0
 2250 RESTORE
 2260 PRINTTAB(15)"MCRM For The Serpinsky Gasket And Relatives."
 2270 RECTANGLE 400,400,200
 2280 RECTANGLE 400,200,200
 2290 RECTANGLE 600,200,200
 2300 FOR X%=0 TO 1280 STEP 160
 2310 RECTANGLE X%,800,128
 2320 NEXT
 2330 FOR X%=0 TO 7
 2340 PRINTTAB(X%*10+4,8);X%
 2350 READ X1,Y1,X2,Y2,X3,Y3
 2360 LINE X1,Y1,X2,Y2
 2370 DRAW X3,Y3
 2380 NEXT
 2390
 2400 PRINTTAB(23,11)"Please input transformations:-"
 2410 INPUTTAB(30,16),transformations%(1)
 2420 INPUTTAB(30,22),transformations%(2)
 2430 INPUTTAB(43,22),transformations%(3)
 2440 transformations%(1)=transformations%(1) AND 7
 2450 transformations%(2)=transformations%(2) AND 7
 2460 transformations%(3)=transformations%(3) AND 7
 2470 PRINTTAB(30,16);transformations%(1);"   "
 2480 PRINTTAB(30,22);transformations%(2);"   "
 2490 PRINTTAB(43,22);transformations%(3);"   "
 2500 PRINTTAB(25,30)"(E)qulateral or (R)ight angled?"
 2510
 2520 OFF
 2530 REPEAT
 2540 N$=GET$
 2550 UNTIL N$="E" OR N$="R"
 2560
 2570 MODE 21
 2580 OFF
 2590 REM TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB( Draw Starting Shape Here TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(
 2600 REM Must be bright white
 2610 GCOL 63 TINT 255
 2620 CIRCLE FILL 640,512,512
 2630 REM ELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSEELSE
 2640
 2650 FOR X%=0 TO 8
 2660 CALL code
 2670 CLS
 2680 !copystart=!vars
 2690 IF N$="E" THEN !copystart=!copystart+128
 2700 PROCcopychoose(transformations%(1))
 2710 !copystart=!vars+(160*1024)
 2720 PROCcopychoose(transformations%(2))
 2730 !copystart=!vars+(160*1024)+256
 2740 PROCcopychoose(transformations%(3))
 2750 NEXT
 2760 N$=GET$
 2770 UNTIL N$="Q"
 2780 END
 2790
 2800 DEFPROCcopychoose(C%)
 2810 CASE C% OF
 2820 WHEN 0:CALL copy0
 2830 WHEN 1:CALL copy1
 2840 WHEN 2:CALL copy2
 2850 WHEN 3:CALL copy3
 2860 WHEN 4:CALL copy4
 2870 WHEN 5:CALL copy5
 2880 WHEN 6:CALL copy6
 2890 WHEN 7:CALL copy7
 2900 ENDCASE
 2910 ENDPROC
 2920
 2930 DATA 16,912,16,816,64,816
 2940 DATA 176,816,272,816,272,864
 2950 DATA 384,912,432,912,432,816
 2960 DATA 496,864,496,912,592,912
 2970 DATA 656,816,656,912,704,912
 2980 DATA 864,816,912,816,912,912
 2990 DATA 976,864,976,816,1072,816
 3000 DATA 1136,912,1232,912,1232,864
 3010
 3020 DEFPROCerror
 3030 MODE 0
 3040 IF ERR=17 THEN END
 3050 REPORT:PRINT" at line ";ERL:END

 �>MCRM_Multi
 � By Chris Bradburne

( � � �error
2
<	 � 21
F �
P
 � vars 8
Z !vars=148
d vars!4=-1
n' ș "OS_ReadVduVariables",vars,vars
x
� � 0
� � transformations%(3)
� transformations%()=0
� !vars=!vars+64
�
� � code 1024
� � block 16*1024*4
� � pass=0 � 2 � 2
� P%=code
�
� [OPT pass
� STMFD R13!,{R0-R12,R14}
� LDR R12,blockstart
T MOV R0,#0:MOV R1,#0:MOV R2,#0:MOV R3,#0:MOV R4,#0:MOV R5,#0:MOV R6,#0:MOV R7,#0
 MOV R11,#0
 .loop0
" STMIA R12!,{R0-R7}
, STMIA R12!,{R0-R7}
6 STMIA R12!,{R0-R7}
@ STMIA R12!,{R0-R7}
J STMIA R12!,{R0-R7}
T STMIA R12!,{R0-R7}
^ STMIA R12!,{R0-R7}
h STMIA R12!,{R0-R7}
r ADD R11,R11,#1
| CMP R11,#4*1024/16
� BLT loop0
� LDR R12,screenstart
� LDR R11,blockstart
� MOV R10,#0
� MOV R9,#0
� .loop1
� LDRB R0,[R12]
� CMP R0,#255
� STREQB R0,[R11]
� ADD R12,R12,#640
�. LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
� ADD R12,R12,#1
�. LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
 SUB R12,R12,#640
. LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
 ADD R12,R12,#1
& ADD R11,R11,#1
0 ADD R10,R10,#1
: CMP R10,#256
D BLT loop1
N MOV R10,#0
X ADD R12,R12,#(128+640)
b ADD R9,R9,#1
l CMP R9,#256
v BLT loop1
� LDMFD R13!,{R0-R12,PC}
�
� .copy0
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
� LDR R11,blockstart
� MOV R10,#0
� .loop2
� ]:� X%=0 � 7
� [OPT pass
� LDMIA R11!,{R0-R7}
� STMIA R12!,{R0-R7}
� ]:�:[OPT pass
 ADD R10,R10,#1
 ADD R12,R12,#384
 CMP R10,#256
  BLT loop2
* LDMFD R13!,{R0-R12,PC}
4
> .copy1
H STMFD R13!,{R0-R12,R14}
R LDR R12,copystart
\ LDR R11,blockstart
f ADD R12,R12,#640*256
p SUB R12,R12,#640
z MOV R10,#0
� MOV R9,#0
� .loop4
� LDRB R0,[R11]
� STRB R0,[R12]
� SUB R12,R12,#640
� ADD R11,R11,#1
� ADD R10,R10,#1
� CMP R10,#256
� BLT loop4
� ADD R12,R12,#640*256
� ADD R12,R12,#1
� MOV R10,#0
� ADD R9,R9,#1
 CMP R9,#256
 BLT loop4
 LDMFD R13!,{R0-R12,PC}
$
. .copy5
8 STMFD R13!,{R0-R12,R14}
B LDR R12,copystart
L LDR R11,blockstart
V ADD R12,R12,#255
` MOV R9,#0:MOV R10,#0
j .loop7
t  LDRB R0,[R11]:STRB R0,[R12]
~ SUB R12,R12,#1
�8ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop7
� ADD R12,R12,#256
� ADD R12,R12,#640
� MOV R10,#0
� ADD R9,R9,#1
� CMP R9,#256
� BLT loop7
� LDMFD R13!,{R0-R12,PC}
�
� .copy6
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
 LDR R11,blockstart

 MOV R9,#0:MOV R10,#0
 ADD R12,R12,#255
 ADD R12,R12,#640*256
( SUB R12,R12,#640
2 .loop8
<  LDRB R0,[R11]:STRB R0,[R12]
F SUB R12,R12,#640
P9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop8
Z ADD R12,R12,#640*256
d SUB R12,R12,#1
n MOV R10,#0
x ADD R9,R9,#1
� CMP R9,#256
� BLT loop8
� LDMFD R13!,{R0-R12,PC}
�
� .copy7
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
� LDR R11,blockstart
� MOV R9,#0:MOV R10,#0
� .loop9
�  LDRB R0,[R11]:STRB R0,[R12]
� ADD R12,R12,#640
�9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop9
 SUB R12,R12,#640*256
 ADD R12,R12,#1
( MOV R10,#0:ADD R9,R9,#1:CMP R9,#256
" BLT loop9
, LDMFD R13!,{R0-R12,PC}
6
@ .copy3
J STMFD R13!,{R0-R12,R14}
T LDR R12,copystart
^ LDR R11,blockstart
h ADD R12,R12,#255
r MOV R10,#0:MOV R9,#0
| .loop6
�  LDRB R0,[R11]:STRB R0,[R12]
� ADD R12,R12,#640
�9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#256:BLT loop6
� SUB R12,R12,#640*256
� SUB R12,R12,#1
� MOV R10,#0
� ADD R9,R9,#1:CMP R9,#256
� BLT loop6
� LDMFD R13!,{R0-R12,PC}
�
� .copy2
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
 LDR R11,blockstart
 ADD R12,R12,#640*256
 SUB R12,R12,#640
& ADD R12,R12,#255
0 MOV R10,#0:MOV R9,#0
: .loop5
D LDRB R0,[R11]
N STRB R0,[R12]
X SUB R12,R12,#1
b ADD R11,R11,#1
l ADD R10,R10,#1
v CMP R10,#256
� BLT loop5
� ADD R12,R12,#256
� SUB R12,R12,#640
� MOV R10,#0
� ADD R9,R9,#1
� CMP R9,#256
� BLT loop5
� LDMFD R13!,{R0-R12,PC}
�
� .copy4
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
� LDR R11,blockstart
 ADD R12,R12,#640*256
 SUB R12,R12,#640
 .loop3
  ]:� X%=0 � 7
* [OPT pass
4* LDMIA R11!,{R0-R7}:STMIA R12!,{R0-R7}
> ]:�:[OPT pass
H ADD R10,R10,#1
R SUB R12,R12,#(1280+512)/2
\ CMP R10,#256
f BLT loop3
p LDMFD R13!,{R0-R12,PC}
z
� .screenstart:EQUD !vars
� .copystart:EQUD !vars
� .blockstart:EQUD block
� ]:�
�
� �
� � 0
� �
�8 �15)"MCRM For The Serpinsky Gasket And Relatives."
� ȓ 400,400,200
� ȓ 400,200,200
� ȓ 600,200,200
� � X%=0 � 1280 � 160
	 ȓ X%,800,128
	 �
	 � X%=0 � 7
	$ �X%*10+4,8);X%
	. � X1,Y1,X2,Y2,X3,Y3
	8 � X1,Y1,X2,Y2
	B � X3,Y3
	L �
	V
	`- �23,11)"Please input transformations:-"
	j! �30,16),transformations%(1)
	t! �30,22),transformations%(2)
	~! �43,22),transformations%(3)
	�0 transformations%(1)=transformations%(1) � 7
	�0 transformations%(2)=transformations%(2) � 7
	�0 transformations%(3)=transformations%(3) � 7
	�' �30,16);transformations%(1);"   "
	�' �30,22);transformations%(2);"   "
	�' �43,22);transformations%(3);"   "
	�. �25,30)"(E)qulateral or (R)ight angled?"
	�
	� �
	� �
	�	 N$=�
	� � N$="E" � N$="R"


	 � 21
 �
5 � ���������� Draw Starting Shape Here ����������
( � Must be bright white
2 � 63 Ȝ 255
< ȏ Ȑ 640,512,512
F5 � ����������������������������������������������
P
Z � X%=0 � 8
d � code
n �
x !copystart=!vars
�) � N$="E" � !copystart=!copystart+128
�% �copychoose(transformations%(1))
�  !copystart=!vars+(160*1024)
�% �copychoose(transformations%(2))
�$ !copystart=!vars+(160*1024)+256
�% �copychoose(transformations%(3))
� �
�	 N$=�
�
 � N$="Q"
� �
�
� ��copychoose(C%)
� Ȏ C% �
 � 0:� copy0
 � 1:� copy1
 � 2:� copy2
" � 3:� copy3
, � 4:� copy4
6 � 5:� copy5
@ � 6:� copy6
J � 7:� copy7
T �
^ �
h
r � 16,912,16,816,64,816
| � 176,816,272,816,272,864
� � 384,912,432,912,432,816
� � 496,864,496,912,592,912
� � 656,816,656,912,704,912
� � 864,816,912,816,912,912
� � 976,864,976,816,1072,816
�! � 1136,912,1232,912,1232,864
�
� ��error
� � 0
� � �=17 � �
� �:�" at line ";�:�
�
00000000  0d 00 0a 11 20 f4 3e 4d  43 52 4d 5f 4d 75 6c 74  |.... .>MCRM_Mult|
00000010  69 0d 00 14 19 20 f4 20  42 79 20 43 68 72 69 73  |i.... . By Chris|
00000020  20 42 72 61 64 62 75 72  6e 65 0d 00 1e 04 0d 00  | Bradburne......|
00000030  28 0f 20 ee 20 85 20 f2  65 72 72 6f 72 0d 00 32  |(. . . .error..2|
00000040  04 0d 00 3c 09 20 eb 20  32 31 0d 00 46 06 20 87  |...<. . 21..F. .|
00000050  0d 00 50 0d 20 de 20 76  61 72 73 20 38 0d 00 5a  |..P. . vars 8..Z|
00000060  0e 20 21 76 61 72 73 3d  31 34 38 0d 00 64 0e 20  |. !vars=148..d. |
00000070  76 61 72 73 21 34 3d 2d  31 0d 00 6e 27 20 c8 99  |vars!4=-1..n' ..|
00000080  20 22 4f 53 5f 52 65 61  64 56 64 75 56 61 72 69  | "OS_ReadVduVari|
00000090  61 62 6c 65 73 22 2c 76  61 72 73 2c 76 61 72 73  |ables",vars,vars|
000000a0  0d 00 78 04 0d 00 82 08  20 eb 20 30 0d 00 8c 1a  |..x..... . 0....|
000000b0  20 de 20 74 72 61 6e 73  66 6f 72 6d 61 74 69 6f  | . transformatio|
000000c0  6e 73 25 28 33 29 0d 00  96 19 20 74 72 61 6e 73  |ns%(3).... trans|
000000d0  66 6f 72 6d 61 74 69 6f  6e 73 25 28 29 3d 30 0d  |formations%()=0.|
000000e0  00 a0 13 20 21 76 61 72  73 3d 21 76 61 72 73 2b  |... !vars=!vars+|
000000f0  36 34 0d 00 aa 04 0d 00  b4 10 20 de 20 63 6f 64  |64........ . cod|
00000100  65 20 31 30 32 34 0d 00  be 16 20 de 20 62 6c 6f  |e 1024.... . blo|
00000110  63 6b 20 31 36 2a 31 30  32 34 2a 34 0d 00 c8 15  |ck 16*1024*4....|
00000120  20 e3 20 70 61 73 73 3d  30 20 b8 20 32 20 88 20  | . pass=0 . 2 . |
00000130  32 0d 00 d2 0c 20 50 25  3d 63 6f 64 65 0d 00 dc  |2.... P%=code...|
00000140  04 0d 00 e6 0e 20 5b 4f  50 54 20 70 61 73 73 0d  |..... [OPT pass.|
00000150  00 f0 1c 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |... STMFD R13!,{|
00000160  52 30 2d 52 31 32 2c 52  31 34 7d 0d 00 fa 17 20  |R0-R12,R14}.... |
00000170  4c 44 52 20 52 31 32 2c  62 6c 6f 63 6b 73 74 61  |LDR R12,blocksta|
00000180  72 74 0d 01 04 54 20 4d  4f 56 20 52 30 2c 23 30  |rt...T MOV R0,#0|
00000190  3a 4d 4f 56 20 52 31 2c  23 30 3a 4d 4f 56 20 52  |:MOV R1,#0:MOV R|
000001a0  32 2c 23 30 3a 4d 4f 56  20 52 33 2c 23 30 3a 4d  |2,#0:MOV R3,#0:M|
000001b0  4f 56 20 52 34 2c 23 30  3a 4d 4f 56 20 52 35 2c  |OV R4,#0:MOV R5,|
000001c0  23 30 3a 4d 4f 56 20 52  36 2c 23 30 3a 4d 4f 56  |#0:MOV R6,#0:MOV|
000001d0  20 52 37 2c 23 30 0d 01  0e 0f 20 4d 4f 56 20 52  | R7,#0.... MOV R|
000001e0  31 31 2c 23 30 0d 01 18  0b 20 2e 6c 6f 6f 70 30  |11,#0.... .loop0|
000001f0  0d 01 22 17 20 53 54 4d  49 41 20 52 31 32 21 2c  |..". STMIA R12!,|
00000200  7b 52 30 2d 52 37 7d 0d  01 2c 17 20 53 54 4d 49  |{R0-R7}..,. STMI|
00000210  41 20 52 31 32 21 2c 7b  52 30 2d 52 37 7d 0d 01  |A R12!,{R0-R7}..|
00000220  36 17 20 53 54 4d 49 41  20 52 31 32 21 2c 7b 52  |6. STMIA R12!,{R|
00000230  30 2d 52 37 7d 0d 01 40  17 20 53 54 4d 49 41 20  |0-R7}..@. STMIA |
00000240  52 31 32 21 2c 7b 52 30  2d 52 37 7d 0d 01 4a 17  |R12!,{R0-R7}..J.|
00000250  20 53 54 4d 49 41 20 52  31 32 21 2c 7b 52 30 2d  | STMIA R12!,{R0-|
00000260  52 37 7d 0d 01 54 17 20  53 54 4d 49 41 20 52 31  |R7}..T. STMIA R1|
00000270  32 21 2c 7b 52 30 2d 52  37 7d 0d 01 5e 17 20 53  |2!,{R0-R7}..^. S|
00000280  54 4d 49 41 20 52 31 32  21 2c 7b 52 30 2d 52 37  |TMIA R12!,{R0-R7|
00000290  7d 0d 01 68 17 20 53 54  4d 49 41 20 52 31 32 21  |}..h. STMIA R12!|
000002a0  2c 7b 52 30 2d 52 37 7d  0d 01 72 13 20 41 44 44  |,{R0-R7}..r. ADD|
000002b0  20 52 31 31 2c 52 31 31  2c 23 31 0d 01 7c 17 20  | R11,R11,#1..|. |
000002c0  43 4d 50 20 52 31 31 2c  23 34 2a 31 30 32 34 2f  |CMP R11,#4*1024/|
000002d0  31 36 0d 01 86 0e 20 42  4c 54 20 6c 6f 6f 70 30  |16.... BLT loop0|
000002e0  0d 01 90 18 20 4c 44 52  20 52 31 32 2c 73 63 72  |.... LDR R12,scr|
000002f0  65 65 6e 73 74 61 72 74  0d 01 9a 17 20 4c 44 52  |eenstart.... LDR|
00000300  20 52 31 31 2c 62 6c 6f  63 6b 73 74 61 72 74 0d  | R11,blockstart.|
00000310  01 a4 0f 20 4d 4f 56 20  52 31 30 2c 23 30 0d 01  |... MOV R10,#0..|
00000320  ae 0e 20 4d 4f 56 20 52  39 2c 23 30 0d 01 b8 0b  |.. MOV R9,#0....|
00000330  20 2e 6c 6f 6f 70 31 0d  01 c2 12 20 4c 44 52 42  | .loop1.... LDRB|
00000340  20 52 30 2c 5b 52 31 32  5d 0d 01 cc 10 20 43 4d  | R0,[R12].... CM|
00000350  50 20 52 30 2c 23 32 35  35 0d 01 d6 14 20 53 54  |P R0,#255.... ST|
00000360  52 45 51 42 20 52 30 2c  5b 52 31 31 5d 0d 01 e0  |REQB R0,[R11]...|
00000370  15 20 41 44 44 20 52 31  32 2c 52 31 32 2c 23 36  |. ADD R12,R12,#6|
00000380  34 30 0d 01 ea 2e 20 4c  44 52 42 20 52 30 2c 5b  |40.... LDRB R0,[|
00000390  52 31 32 5d 3a 43 4d 50  20 52 30 2c 23 32 35 35  |R12]:CMP R0,#255|
000003a0  3a 53 54 52 45 51 42 20  52 30 2c 5b 52 31 31 5d  |:STREQB R0,[R11]|
000003b0  0d 01 f4 13 20 41 44 44  20 52 31 32 2c 52 31 32  |.... ADD R12,R12|
000003c0  2c 23 31 0d 01 fe 2e 20  4c 44 52 42 20 52 30 2c  |,#1.... LDRB R0,|
000003d0  5b 52 31 32 5d 3a 43 4d  50 20 52 30 2c 23 32 35  |[R12]:CMP R0,#25|
000003e0  35 3a 53 54 52 45 51 42  20 52 30 2c 5b 52 31 31  |5:STREQB R0,[R11|
000003f0  5d 0d 02 08 15 20 53 55  42 20 52 31 32 2c 52 31  |].... SUB R12,R1|
00000400  32 2c 23 36 34 30 0d 02  12 2e 20 4c 44 52 42 20  |2,#640.... LDRB |
00000410  52 30 2c 5b 52 31 32 5d  3a 43 4d 50 20 52 30 2c  |R0,[R12]:CMP R0,|
00000420  23 32 35 35 3a 53 54 52  45 51 42 20 52 30 2c 5b  |#255:STREQB R0,[|
00000430  52 31 31 5d 0d 02 1c 13  20 41 44 44 20 52 31 32  |R11].... ADD R12|
00000440  2c 52 31 32 2c 23 31 0d  02 26 13 20 41 44 44 20  |,R12,#1..&. ADD |
00000450  52 31 31 2c 52 31 31 2c  23 31 0d 02 30 13 20 41  |R11,R11,#1..0. A|
00000460  44 44 20 52 31 30 2c 52  31 30 2c 23 31 0d 02 3a  |DD R10,R10,#1..:|
00000470  11 20 43 4d 50 20 52 31  30 2c 23 32 35 36 0d 02  |. CMP R10,#256..|
00000480  44 0e 20 42 4c 54 20 6c  6f 6f 70 31 0d 02 4e 0f  |D. BLT loop1..N.|
00000490  20 4d 4f 56 20 52 31 30  2c 23 30 0d 02 58 1b 20  | MOV R10,#0..X. |
000004a0  41 44 44 20 52 31 32 2c  52 31 32 2c 23 28 31 32  |ADD R12,R12,#(12|
000004b0  38 2b 36 34 30 29 0d 02  62 11 20 41 44 44 20 52  |8+640)..b. ADD R|
000004c0  39 2c 52 39 2c 23 31 0d  02 6c 10 20 43 4d 50 20  |9,R9,#1..l. CMP |
000004d0  52 39 2c 23 32 35 36 0d  02 76 0e 20 42 4c 54 20  |R9,#256..v. BLT |
000004e0  6c 6f 6f 70 31 0d 02 80  1b 20 4c 44 4d 46 44 20  |loop1.... LDMFD |
000004f0  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 50 43 7d  |R13!,{R0-R12,PC}|
00000500  0d 02 8a 04 0d 02 94 0b  20 2e 63 6f 70 79 30 0d  |........ .copy0.|
00000510  02 9e 1c 20 53 54 4d 46  44 20 52 31 33 21 2c 7b  |... STMFD R13!,{|
00000520  52 30 2d 52 31 32 2c 52  31 34 7d 0d 02 a8 16 20  |R0-R12,R14}.... |
00000530  4c 44 52 20 52 31 32 2c  63 6f 70 79 73 74 61 72  |LDR R12,copystar|
00000540  74 0d 02 b2 17 20 4c 44  52 20 52 31 31 2c 62 6c  |t.... LDR R11,bl|
00000550  6f 63 6b 73 74 61 72 74  0d 02 bc 0f 20 4d 4f 56  |ockstart.... MOV|
00000560  20 52 31 30 2c 23 30 0d  02 c6 0b 20 2e 6c 6f 6f  | R10,#0.... .loo|
00000570  70 32 0d 02 d0 11 20 5d  3a e3 20 58 25 3d 30 20  |p2.... ]:. X%=0 |
00000580  b8 20 37 0d 02 da 0e 20  5b 4f 50 54 20 70 61 73  |. 7.... [OPT pas|
00000590  73 0d 02 e4 17 20 4c 44  4d 49 41 20 52 31 31 21  |s.... LDMIA R11!|
000005a0  2c 7b 52 30 2d 52 37 7d  0d 02 ee 17 20 53 54 4d  |,{R0-R7}.... STM|
000005b0  49 41 20 52 31 32 21 2c  7b 52 30 2d 52 37 7d 0d  |IA R12!,{R0-R7}.|
000005c0  02 f8 12 20 5d 3a ed 3a  5b 4f 50 54 20 70 61 73  |... ]:.:[OPT pas|
000005d0  73 0d 03 02 13 20 41 44  44 20 52 31 30 2c 52 31  |s.... ADD R10,R1|
000005e0  30 2c 23 31 0d 03 0c 15  20 41 44 44 20 52 31 32  |0,#1.... ADD R12|
000005f0  2c 52 31 32 2c 23 33 38  34 0d 03 16 11 20 43 4d  |,R12,#384.... CM|
00000600  50 20 52 31 30 2c 23 32  35 36 0d 03 20 0e 20 42  |P R10,#256.. . B|
00000610  4c 54 20 6c 6f 6f 70 32  0d 03 2a 1b 20 4c 44 4d  |LT loop2..*. LDM|
00000620  46 44 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |FD R13!,{R0-R12,|
00000630  50 43 7d 0d 03 34 04 0d  03 3e 0b 20 2e 63 6f 70  |PC}..4...>. .cop|
00000640  79 31 0d 03 48 1c 20 53  54 4d 46 44 20 52 31 33  |y1..H. STMFD R13|
00000650  21 2c 7b 52 30 2d 52 31  32 2c 52 31 34 7d 0d 03  |!,{R0-R12,R14}..|
00000660  52 16 20 4c 44 52 20 52  31 32 2c 63 6f 70 79 73  |R. LDR R12,copys|
00000670  74 61 72 74 0d 03 5c 17  20 4c 44 52 20 52 31 31  |tart..\. LDR R11|
00000680  2c 62 6c 6f 63 6b 73 74  61 72 74 0d 03 66 19 20  |,blockstart..f. |
00000690  41 44 44 20 52 31 32 2c  52 31 32 2c 23 36 34 30  |ADD R12,R12,#640|
000006a0  2a 32 35 36 0d 03 70 15  20 53 55 42 20 52 31 32  |*256..p. SUB R12|
000006b0  2c 52 31 32 2c 23 36 34  30 0d 03 7a 0f 20 4d 4f  |,R12,#640..z. MO|
000006c0  56 20 52 31 30 2c 23 30  0d 03 84 0e 20 4d 4f 56  |V R10,#0.... MOV|
000006d0  20 52 39 2c 23 30 0d 03  8e 0b 20 2e 6c 6f 6f 70  | R9,#0.... .loop|
000006e0  34 0d 03 98 12 20 4c 44  52 42 20 52 30 2c 5b 52  |4.... LDRB R0,[R|
000006f0  31 31 5d 0d 03 a2 12 20  53 54 52 42 20 52 30 2c  |11].... STRB R0,|
00000700  5b 52 31 32 5d 0d 03 ac  15 20 53 55 42 20 52 31  |[R12].... SUB R1|
00000710  32 2c 52 31 32 2c 23 36  34 30 0d 03 b6 13 20 41  |2,R12,#640.... A|
00000720  44 44 20 52 31 31 2c 52  31 31 2c 23 31 0d 03 c0  |DD R11,R11,#1...|
00000730  13 20 41 44 44 20 52 31  30 2c 52 31 30 2c 23 31  |. ADD R10,R10,#1|
00000740  0d 03 ca 11 20 43 4d 50  20 52 31 30 2c 23 32 35  |.... CMP R10,#25|
00000750  36 0d 03 d4 0e 20 42 4c  54 20 6c 6f 6f 70 34 0d  |6.... BLT loop4.|
00000760  03 de 19 20 41 44 44 20  52 31 32 2c 52 31 32 2c  |... ADD R12,R12,|
00000770  23 36 34 30 2a 32 35 36  0d 03 e8 13 20 41 44 44  |#640*256.... ADD|
00000780  20 52 31 32 2c 52 31 32  2c 23 31 0d 03 f2 0f 20  | R12,R12,#1.... |
00000790  4d 4f 56 20 52 31 30 2c  23 30 0d 03 fc 11 20 41  |MOV R10,#0.... A|
000007a0  44 44 20 52 39 2c 52 39  2c 23 31 0d 04 06 10 20  |DD R9,R9,#1.... |
000007b0  43 4d 50 20 52 39 2c 23  32 35 36 0d 04 10 0e 20  |CMP R9,#256.... |
000007c0  42 4c 54 20 6c 6f 6f 70  34 0d 04 1a 1b 20 4c 44  |BLT loop4.... LD|
000007d0  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
000007e0  2c 50 43 7d 0d 04 24 04  0d 04 2e 0b 20 2e 63 6f  |,PC}..$..... .co|
000007f0  70 79 35 0d 04 38 1c 20  53 54 4d 46 44 20 52 31  |py5..8. STMFD R1|
00000800  33 21 2c 7b 52 30 2d 52  31 32 2c 52 31 34 7d 0d  |3!,{R0-R12,R14}.|
00000810  04 42 16 20 4c 44 52 20  52 31 32 2c 63 6f 70 79  |.B. LDR R12,copy|
00000820  73 74 61 72 74 0d 04 4c  17 20 4c 44 52 20 52 31  |start..L. LDR R1|
00000830  31 2c 62 6c 6f 63 6b 73  74 61 72 74 0d 04 56 15  |1,blockstart..V.|
00000840  20 41 44 44 20 52 31 32  2c 52 31 32 2c 23 32 35  | ADD R12,R12,#25|
00000850  35 0d 04 60 19 20 4d 4f  56 20 52 39 2c 23 30 3a  |5..`. MOV R9,#0:|
00000860  4d 4f 56 20 52 31 30 2c  23 30 0d 04 6a 0b 20 2e  |MOV R10,#0..j. .|
00000870  6c 6f 6f 70 37 0d 04 74  20 20 4c 44 52 42 20 52  |loop7..t  LDRB R|
00000880  30 2c 5b 52 31 31 5d 3a  53 54 52 42 20 52 30 2c  |0,[R11]:STRB R0,|
00000890  5b 52 31 32 5d 0d 04 7e  13 20 53 55 42 20 52 31  |[R12]..~. SUB R1|
000008a0  32 2c 52 31 32 2c 23 31  0d 04 88 38 41 44 44 20  |2,R12,#1...8ADD |
000008b0  52 31 31 2c 52 31 31 2c  23 31 3a 41 44 44 20 52  |R11,R11,#1:ADD R|
000008c0  31 30 2c 52 31 30 2c 23  31 3a 43 4d 50 20 52 31  |10,R10,#1:CMP R1|
000008d0  30 2c 23 32 35 36 3a 42  4c 54 20 6c 6f 6f 70 37  |0,#256:BLT loop7|
000008e0  0d 04 92 15 20 41 44 44  20 52 31 32 2c 52 31 32  |.... ADD R12,R12|
000008f0  2c 23 32 35 36 0d 04 9c  15 20 41 44 44 20 52 31  |,#256.... ADD R1|
00000900  32 2c 52 31 32 2c 23 36  34 30 0d 04 a6 0f 20 4d  |2,R12,#640.... M|
00000910  4f 56 20 52 31 30 2c 23  30 0d 04 b0 11 20 41 44  |OV R10,#0.... AD|
00000920  44 20 52 39 2c 52 39 2c  23 31 0d 04 ba 10 20 43  |D R9,R9,#1.... C|
00000930  4d 50 20 52 39 2c 23 32  35 36 0d 04 c4 0e 20 42  |MP R9,#256.... B|
00000940  4c 54 20 6c 6f 6f 70 37  0d 04 ce 1b 20 4c 44 4d  |LT loop7.... LDM|
00000950  46 44 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |FD R13!,{R0-R12,|
00000960  50 43 7d 0d 04 d8 04 0d  04 e2 0b 20 2e 63 6f 70  |PC}........ .cop|
00000970  79 36 0d 04 ec 1c 20 53  54 4d 46 44 20 52 31 33  |y6.... STMFD R13|
00000980  21 2c 7b 52 30 2d 52 31  32 2c 52 31 34 7d 0d 04  |!,{R0-R12,R14}..|
00000990  f6 16 20 4c 44 52 20 52  31 32 2c 63 6f 70 79 73  |.. LDR R12,copys|
000009a0  74 61 72 74 0d 05 00 17  20 4c 44 52 20 52 31 31  |tart.... LDR R11|
000009b0  2c 62 6c 6f 63 6b 73 74  61 72 74 0d 05 0a 19 20  |,blockstart.... |
000009c0  4d 4f 56 20 52 39 2c 23  30 3a 4d 4f 56 20 52 31  |MOV R9,#0:MOV R1|
000009d0  30 2c 23 30 0d 05 14 15  20 41 44 44 20 52 31 32  |0,#0.... ADD R12|
000009e0  2c 52 31 32 2c 23 32 35  35 0d 05 1e 19 20 41 44  |,R12,#255.... AD|
000009f0  44 20 52 31 32 2c 52 31  32 2c 23 36 34 30 2a 32  |D R12,R12,#640*2|
00000a00  35 36 0d 05 28 15 20 53  55 42 20 52 31 32 2c 52  |56..(. SUB R12,R|
00000a10  31 32 2c 23 36 34 30 0d  05 32 0b 20 2e 6c 6f 6f  |12,#640..2. .loo|
00000a20  70 38 0d 05 3c 20 20 4c  44 52 42 20 52 30 2c 5b  |p8..<  LDRB R0,[|
00000a30  52 31 31 5d 3a 53 54 52  42 20 52 30 2c 5b 52 31  |R11]:STRB R0,[R1|
00000a40  32 5d 0d 05 46 15 20 53  55 42 20 52 31 32 2c 52  |2]..F. SUB R12,R|
00000a50  31 32 2c 23 36 34 30 0d  05 50 39 20 41 44 44 20  |12,#640..P9 ADD |
00000a60  52 31 31 2c 52 31 31 2c  23 31 3a 41 44 44 20 52  |R11,R11,#1:ADD R|
00000a70  31 30 2c 52 31 30 2c 23  31 3a 43 4d 50 20 52 31  |10,R10,#1:CMP R1|
00000a80  30 2c 23 32 35 36 3a 42  4c 54 20 6c 6f 6f 70 38  |0,#256:BLT loop8|
00000a90  0d 05 5a 19 20 41 44 44  20 52 31 32 2c 52 31 32  |..Z. ADD R12,R12|
00000aa0  2c 23 36 34 30 2a 32 35  36 0d 05 64 13 20 53 55  |,#640*256..d. SU|
00000ab0  42 20 52 31 32 2c 52 31  32 2c 23 31 0d 05 6e 0f  |B R12,R12,#1..n.|
00000ac0  20 4d 4f 56 20 52 31 30  2c 23 30 0d 05 78 11 20  | MOV R10,#0..x. |
00000ad0  41 44 44 20 52 39 2c 52  39 2c 23 31 0d 05 82 10  |ADD R9,R9,#1....|
00000ae0  20 43 4d 50 20 52 39 2c  23 32 35 36 0d 05 8c 0e  | CMP R9,#256....|
00000af0  20 42 4c 54 20 6c 6f 6f  70 38 0d 05 96 1b 20 4c  | BLT loop8.... L|
00000b00  44 4d 46 44 20 52 31 33  21 2c 7b 52 30 2d 52 31  |DMFD R13!,{R0-R1|
00000b10  32 2c 50 43 7d 0d 05 a0  04 0d 05 aa 0b 20 2e 63  |2,PC}........ .c|
00000b20  6f 70 79 37 0d 05 b4 1c  20 53 54 4d 46 44 20 52  |opy7.... STMFD R|
00000b30  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00000b40  0d 05 be 16 20 4c 44 52  20 52 31 32 2c 63 6f 70  |.... LDR R12,cop|
00000b50  79 73 74 61 72 74 0d 05  c8 17 20 4c 44 52 20 52  |ystart.... LDR R|
00000b60  31 31 2c 62 6c 6f 63 6b  73 74 61 72 74 0d 05 d2  |11,blockstart...|
00000b70  19 20 4d 4f 56 20 52 39  2c 23 30 3a 4d 4f 56 20  |. MOV R9,#0:MOV |
00000b80  52 31 30 2c 23 30 0d 05  dc 0b 20 2e 6c 6f 6f 70  |R10,#0.... .loop|
00000b90  39 0d 05 e6 20 20 4c 44  52 42 20 52 30 2c 5b 52  |9...  LDRB R0,[R|
00000ba0  31 31 5d 3a 53 54 52 42  20 52 30 2c 5b 52 31 32  |11]:STRB R0,[R12|
00000bb0  5d 0d 05 f0 15 20 41 44  44 20 52 31 32 2c 52 31  |].... ADD R12,R1|
00000bc0  32 2c 23 36 34 30 0d 05  fa 39 20 41 44 44 20 52  |2,#640...9 ADD R|
00000bd0  31 31 2c 52 31 31 2c 23  31 3a 41 44 44 20 52 31  |11,R11,#1:ADD R1|
00000be0  30 2c 52 31 30 2c 23 31  3a 43 4d 50 20 52 31 30  |0,R10,#1:CMP R10|
00000bf0  2c 23 32 35 36 3a 42 4c  54 20 6c 6f 6f 70 39 0d  |,#256:BLT loop9.|
00000c00  06 04 19 20 53 55 42 20  52 31 32 2c 52 31 32 2c  |... SUB R12,R12,|
00000c10  23 36 34 30 2a 32 35 36  0d 06 0e 13 20 41 44 44  |#640*256.... ADD|
00000c20  20 52 31 32 2c 52 31 32  2c 23 31 0d 06 18 28 20  | R12,R12,#1...( |
00000c30  4d 4f 56 20 52 31 30 2c  23 30 3a 41 44 44 20 52  |MOV R10,#0:ADD R|
00000c40  39 2c 52 39 2c 23 31 3a  43 4d 50 20 52 39 2c 23  |9,R9,#1:CMP R9,#|
00000c50  32 35 36 0d 06 22 0e 20  42 4c 54 20 6c 6f 6f 70  |256..". BLT loop|
00000c60  39 0d 06 2c 1b 20 4c 44  4d 46 44 20 52 31 33 21  |9..,. LDMFD R13!|
00000c70  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 0d 06 36 04  |,{R0-R12,PC}..6.|
00000c80  0d 06 40 0b 20 2e 63 6f  70 79 33 0d 06 4a 1c 20  |..@. .copy3..J. |
00000c90  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |STMFD R13!,{R0-R|
00000ca0  31 32 2c 52 31 34 7d 0d  06 54 16 20 4c 44 52 20  |12,R14}..T. LDR |
00000cb0  52 31 32 2c 63 6f 70 79  73 74 61 72 74 0d 06 5e  |R12,copystart..^|
00000cc0  17 20 4c 44 52 20 52 31  31 2c 62 6c 6f 63 6b 73  |. LDR R11,blocks|
00000cd0  74 61 72 74 0d 06 68 15  20 41 44 44 20 52 31 32  |tart..h. ADD R12|
00000ce0  2c 52 31 32 2c 23 32 35  35 0d 06 72 19 20 4d 4f  |,R12,#255..r. MO|
00000cf0  56 20 52 31 30 2c 23 30  3a 4d 4f 56 20 52 39 2c  |V R10,#0:MOV R9,|
00000d00  23 30 0d 06 7c 0b 20 2e  6c 6f 6f 70 36 0d 06 86  |#0..|. .loop6...|
00000d10  20 20 4c 44 52 42 20 52  30 2c 5b 52 31 31 5d 3a  |  LDRB R0,[R11]:|
00000d20  53 54 52 42 20 52 30 2c  5b 52 31 32 5d 0d 06 90  |STRB R0,[R12]...|
00000d30  15 20 41 44 44 20 52 31  32 2c 52 31 32 2c 23 36  |. ADD R12,R12,#6|
00000d40  34 30 0d 06 9a 39 20 41  44 44 20 52 31 31 2c 52  |40...9 ADD R11,R|
00000d50  31 31 2c 23 31 3a 41 44  44 20 52 31 30 2c 52 31  |11,#1:ADD R10,R1|
00000d60  30 2c 23 31 3a 43 4d 50  20 52 31 30 2c 23 32 35  |0,#1:CMP R10,#25|
00000d70  36 3a 42 4c 54 20 6c 6f  6f 70 36 0d 06 a4 19 20  |6:BLT loop6.... |
00000d80  53 55 42 20 52 31 32 2c  52 31 32 2c 23 36 34 30  |SUB R12,R12,#640|
00000d90  2a 32 35 36 0d 06 ae 13  20 53 55 42 20 52 31 32  |*256.... SUB R12|
00000da0  2c 52 31 32 2c 23 31 0d  06 b8 0f 20 4d 4f 56 20  |,R12,#1.... MOV |
00000db0  52 31 30 2c 23 30 0d 06  c2 1d 20 41 44 44 20 52  |R10,#0.... ADD R|
00000dc0  39 2c 52 39 2c 23 31 3a  43 4d 50 20 52 39 2c 23  |9,R9,#1:CMP R9,#|
00000dd0  32 35 36 0d 06 cc 0e 20  42 4c 54 20 6c 6f 6f 70  |256.... BLT loop|
00000de0  36 0d 06 d6 1b 20 4c 44  4d 46 44 20 52 31 33 21  |6.... LDMFD R13!|
00000df0  2c 7b 52 30 2d 52 31 32  2c 50 43 7d 0d 06 e0 04  |,{R0-R12,PC}....|
00000e00  0d 06 ea 0b 20 2e 63 6f  70 79 32 0d 06 f4 1c 20  |.... .copy2.... |
00000e10  53 54 4d 46 44 20 52 31  33 21 2c 7b 52 30 2d 52  |STMFD R13!,{R0-R|
00000e20  31 32 2c 52 31 34 7d 0d  06 fe 16 20 4c 44 52 20  |12,R14}.... LDR |
00000e30  52 31 32 2c 63 6f 70 79  73 74 61 72 74 0d 07 08  |R12,copystart...|
00000e40  17 20 4c 44 52 20 52 31  31 2c 62 6c 6f 63 6b 73  |. LDR R11,blocks|
00000e50  74 61 72 74 0d 07 12 19  20 41 44 44 20 52 31 32  |tart.... ADD R12|
00000e60  2c 52 31 32 2c 23 36 34  30 2a 32 35 36 0d 07 1c  |,R12,#640*256...|
00000e70  15 20 53 55 42 20 52 31  32 2c 52 31 32 2c 23 36  |. SUB R12,R12,#6|
00000e80  34 30 0d 07 26 15 20 41  44 44 20 52 31 32 2c 52  |40..&. ADD R12,R|
00000e90  31 32 2c 23 32 35 35 0d  07 30 19 20 4d 4f 56 20  |12,#255..0. MOV |
00000ea0  52 31 30 2c 23 30 3a 4d  4f 56 20 52 39 2c 23 30  |R10,#0:MOV R9,#0|
00000eb0  0d 07 3a 0b 20 2e 6c 6f  6f 70 35 0d 07 44 12 20  |..:. .loop5..D. |
00000ec0  4c 44 52 42 20 52 30 2c  5b 52 31 31 5d 0d 07 4e  |LDRB R0,[R11]..N|
00000ed0  12 20 53 54 52 42 20 52  30 2c 5b 52 31 32 5d 0d  |. STRB R0,[R12].|
00000ee0  07 58 13 20 53 55 42 20  52 31 32 2c 52 31 32 2c  |.X. SUB R12,R12,|
00000ef0  23 31 0d 07 62 13 20 41  44 44 20 52 31 31 2c 52  |#1..b. ADD R11,R|
00000f00  31 31 2c 23 31 0d 07 6c  13 20 41 44 44 20 52 31  |11,#1..l. ADD R1|
00000f10  30 2c 52 31 30 2c 23 31  0d 07 76 11 20 43 4d 50  |0,R10,#1..v. CMP|
00000f20  20 52 31 30 2c 23 32 35  36 0d 07 80 0e 20 42 4c  | R10,#256.... BL|
00000f30  54 20 6c 6f 6f 70 35 0d  07 8a 15 20 41 44 44 20  |T loop5.... ADD |
00000f40  52 31 32 2c 52 31 32 2c  23 32 35 36 0d 07 94 15  |R12,R12,#256....|
00000f50  20 53 55 42 20 52 31 32  2c 52 31 32 2c 23 36 34  | SUB R12,R12,#64|
00000f60  30 0d 07 9e 0f 20 4d 4f  56 20 52 31 30 2c 23 30  |0.... MOV R10,#0|
00000f70  0d 07 a8 11 20 41 44 44  20 52 39 2c 52 39 2c 23  |.... ADD R9,R9,#|
00000f80  31 0d 07 b2 10 20 43 4d  50 20 52 39 2c 23 32 35  |1.... CMP R9,#25|
00000f90  36 0d 07 bc 0e 20 42 4c  54 20 6c 6f 6f 70 35 0d  |6.... BLT loop5.|
00000fa0  07 c6 1b 20 4c 44 4d 46  44 20 52 31 33 21 2c 7b  |... LDMFD R13!,{|
00000fb0  52 30 2d 52 31 32 2c 50  43 7d 0d 07 d0 04 0d 07  |R0-R12,PC}......|
00000fc0  da 0b 20 2e 63 6f 70 79  34 0d 07 e4 1c 20 53 54  |.. .copy4.... ST|
00000fd0  4d 46 44 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |MFD R13!,{R0-R12|
00000fe0  2c 52 31 34 7d 0d 07 ee  16 20 4c 44 52 20 52 31  |,R14}.... LDR R1|
00000ff0  32 2c 63 6f 70 79 73 74  61 72 74 0d 07 f8 17 20  |2,copystart.... |
00001000  4c 44 52 20 52 31 31 2c  62 6c 6f 63 6b 73 74 61  |LDR R11,blocksta|
00001010  72 74 0d 08 02 19 20 41  44 44 20 52 31 32 2c 52  |rt.... ADD R12,R|
00001020  31 32 2c 23 36 34 30 2a  32 35 36 0d 08 0c 15 20  |12,#640*256.... |
00001030  53 55 42 20 52 31 32 2c  52 31 32 2c 23 36 34 30  |SUB R12,R12,#640|
00001040  0d 08 16 0b 20 2e 6c 6f  6f 70 33 0d 08 20 11 20  |.... .loop3.. . |
00001050  5d 3a e3 20 58 25 3d 30  20 b8 20 37 0d 08 2a 0e  |]:. X%=0 . 7..*.|
00001060  20 5b 4f 50 54 20 70 61  73 73 0d 08 34 2a 20 4c  | [OPT pass..4* L|
00001070  44 4d 49 41 20 52 31 31  21 2c 7b 52 30 2d 52 37  |DMIA R11!,{R0-R7|
00001080  7d 3a 53 54 4d 49 41 20  52 31 32 21 2c 7b 52 30  |}:STMIA R12!,{R0|
00001090  2d 52 37 7d 0d 08 3e 12  20 5d 3a ed 3a 5b 4f 50  |-R7}..>. ]:.:[OP|
000010a0  54 20 70 61 73 73 0d 08  48 13 20 41 44 44 20 52  |T pass..H. ADD R|
000010b0  31 30 2c 52 31 30 2c 23  31 0d 08 52 1e 20 53 55  |10,R10,#1..R. SU|
000010c0  42 20 52 31 32 2c 52 31  32 2c 23 28 31 32 38 30  |B R12,R12,#(1280|
000010d0  2b 35 31 32 29 2f 32 0d  08 5c 11 20 43 4d 50 20  |+512)/2..\. CMP |
000010e0  52 31 30 2c 23 32 35 36  0d 08 66 0e 20 42 4c 54  |R10,#256..f. BLT|
000010f0  20 6c 6f 6f 70 33 0d 08  70 1b 20 4c 44 4d 46 44  | loop3..p. LDMFD|
00001100  20 52 31 33 21 2c 7b 52  30 2d 52 31 32 2c 50 43  | R13!,{R0-R12,PC|
00001110  7d 0d 08 7a 04 0d 08 84  1c 20 2e 73 63 72 65 65  |}..z..... .scree|
00001120  6e 73 74 61 72 74 3a 45  51 55 44 20 21 76 61 72  |nstart:EQUD !var|
00001130  73 0d 08 8e 1a 20 2e 63  6f 70 79 73 74 61 72 74  |s.... .copystart|
00001140  3a 45 51 55 44 20 21 76  61 72 73 0d 08 98 1b 20  |:EQUD !vars.... |
00001150  2e 62 6c 6f 63 6b 73 74  61 72 74 3a 45 51 55 44  |.blockstart:EQUD|
00001160  20 62 6c 6f 63 6b 0d 08  a2 08 20 5d 3a ed 0d 08  | block.... ]:...|
00001170  ac 04 0d 08 b6 06 20 f5  0d 08 c0 08 20 eb 20 30  |...... ..... . 0|
00001180  0d 08 ca 06 20 f7 0d 08  d4 38 20 f1 8a 31 35 29  |.... ....8 ..15)|
00001190  22 4d 43 52 4d 20 46 6f  72 20 54 68 65 20 53 65  |"MCRM For The Se|
000011a0  72 70 69 6e 73 6b 79 20  47 61 73 6b 65 74 20 41  |rpinsky Gasket A|
000011b0  6e 64 20 52 65 6c 61 74  69 76 65 73 2e 22 0d 08  |nd Relatives."..|
000011c0  de 13 20 c8 93 20 34 30  30 2c 34 30 30 2c 32 30  |.. .. 400,400,20|
000011d0  30 0d 08 e8 13 20 c8 93  20 34 30 30 2c 32 30 30  |0.... .. 400,200|
000011e0  2c 32 30 30 0d 08 f2 13  20 c8 93 20 36 30 30 2c  |,200.... .. 600,|
000011f0  32 30 30 2c 32 30 30 0d  08 fc 18 20 e3 20 58 25  |200,200.... . X%|
00001200  3d 30 20 b8 20 31 32 38  30 20 88 20 31 36 30 0d  |=0 . 1280 . 160.|
00001210  09 06 12 20 c8 93 20 58  25 2c 38 30 30 2c 31 32  |... .. X%,800,12|
00001220  38 0d 09 10 06 20 ed 0d  09 1a 0f 20 e3 20 58 25  |8.... ..... . X%|
00001230  3d 30 20 b8 20 37 0d 09  24 14 20 f1 8a 58 25 2a  |=0 . 7..$. ..X%*|
00001240  31 30 2b 34 2c 38 29 3b  58 25 0d 09 2e 18 20 f3  |10+4,8);X%.... .|
00001250  20 58 31 2c 59 31 2c 58  32 2c 59 32 2c 58 33 2c  | X1,Y1,X2,Y2,X3,|
00001260  59 33 0d 09 38 12 20 86  20 58 31 2c 59 31 2c 58  |Y3..8. . X1,Y1,X|
00001270  32 2c 59 32 0d 09 42 0c  20 df 20 58 33 2c 59 33  |2,Y2..B. . X3,Y3|
00001280  0d 09 4c 06 20 ed 0d 09  56 04 0d 09 60 2d 20 f1  |..L. ...V...`- .|
00001290  8a 32 33 2c 31 31 29 22  50 6c 65 61 73 65 20 69  |.23,11)"Please i|
000012a0  6e 70 75 74 20 74 72 61  6e 73 66 6f 72 6d 61 74  |nput transformat|
000012b0  69 6f 6e 73 3a 2d 22 0d  09 6a 21 20 e8 8a 33 30  |ions:-"..j! ..30|
000012c0  2c 31 36 29 2c 74 72 61  6e 73 66 6f 72 6d 61 74  |,16),transformat|
000012d0  69 6f 6e 73 25 28 31 29  0d 09 74 21 20 e8 8a 33  |ions%(1)..t! ..3|
000012e0  30 2c 32 32 29 2c 74 72  61 6e 73 66 6f 72 6d 61  |0,22),transforma|
000012f0  74 69 6f 6e 73 25 28 32  29 0d 09 7e 21 20 e8 8a  |tions%(2)..~! ..|
00001300  34 33 2c 32 32 29 2c 74  72 61 6e 73 66 6f 72 6d  |43,22),transform|
00001310  61 74 69 6f 6e 73 25 28  33 29 0d 09 88 30 20 74  |ations%(3)...0 t|
00001320  72 61 6e 73 66 6f 72 6d  61 74 69 6f 6e 73 25 28  |ransformations%(|
00001330  31 29 3d 74 72 61 6e 73  66 6f 72 6d 61 74 69 6f  |1)=transformatio|
00001340  6e 73 25 28 31 29 20 80  20 37 0d 09 92 30 20 74  |ns%(1) . 7...0 t|
00001350  72 61 6e 73 66 6f 72 6d  61 74 69 6f 6e 73 25 28  |ransformations%(|
00001360  32 29 3d 74 72 61 6e 73  66 6f 72 6d 61 74 69 6f  |2)=transformatio|
00001370  6e 73 25 28 32 29 20 80  20 37 0d 09 9c 30 20 74  |ns%(2) . 7...0 t|
00001380  72 61 6e 73 66 6f 72 6d  61 74 69 6f 6e 73 25 28  |ransformations%(|
00001390  33 29 3d 74 72 61 6e 73  66 6f 72 6d 61 74 69 6f  |3)=transformatio|
000013a0  6e 73 25 28 33 29 20 80  20 37 0d 09 a6 27 20 f1  |ns%(3) . 7...' .|
000013b0  8a 33 30 2c 31 36 29 3b  74 72 61 6e 73 66 6f 72  |.30,16);transfor|
000013c0  6d 61 74 69 6f 6e 73 25  28 31 29 3b 22 20 20 20  |mations%(1);"   |
000013d0  22 0d 09 b0 27 20 f1 8a  33 30 2c 32 32 29 3b 74  |"...' ..30,22);t|
000013e0  72 61 6e 73 66 6f 72 6d  61 74 69 6f 6e 73 25 28  |ransformations%(|
000013f0  32 29 3b 22 20 20 20 22  0d 09 ba 27 20 f1 8a 34  |2);"   "...' ..4|
00001400  33 2c 32 32 29 3b 74 72  61 6e 73 66 6f 72 6d 61  |3,22);transforma|
00001410  74 69 6f 6e 73 25 28 33  29 3b 22 20 20 20 22 0d  |tions%(3);"   ".|
00001420  09 c4 2e 20 f1 8a 32 35  2c 33 30 29 22 28 45 29  |... ..25,30)"(E)|
00001430  71 75 6c 61 74 65 72 61  6c 20 6f 72 20 28 52 29  |qulateral or (R)|
00001440  69 67 68 74 20 61 6e 67  6c 65 64 3f 22 0d 09 ce  |ight angled?"...|
00001450  04 0d 09 d8 06 20 87 0d  09 e2 06 20 f5 0d 09 ec  |..... ..... ....|
00001460  09 20 4e 24 3d be 0d 09  f6 16 20 fd 20 4e 24 3d  |. N$=..... . N$=|
00001470  22 45 22 20 84 20 4e 24  3d 22 52 22 0d 0a 00 04  |"E" . N$="R"....|
00001480  0d 0a 0a 09 20 eb 20 32  31 0d 0a 14 06 20 87 0d  |.... . 21.... ..|
00001490  0a 1e 35 20 f4 20 8a 8a  8a 8a 8a 8a 8a 8a 8a 8a  |..5 . ..........|
000014a0  20 44 72 61 77 20 53 74  61 72 74 69 6e 67 20 53  | Draw Starting S|
000014b0  68 61 70 65 20 48 65 72  65 20 8a 8a 8a 8a 8a 8a  |hape Here ......|
000014c0  8a 8a 8a 8a 0d 0a 28 1b  20 f4 20 4d 75 73 74 20  |......(. . Must |
000014d0  62 65 20 62 72 69 67 68  74 20 77 68 69 74 65 0d  |be bright white.|
000014e0  0a 32 10 20 e6 20 36 33  20 c8 9c 20 32 35 35 0d  |.2. . 63 .. 255.|
000014f0  0a 3c 16 20 c8 8f 20 c8  90 20 36 34 30 2c 35 31  |.<. .. .. 640,51|
00001500  32 2c 35 31 32 0d 0a 46  35 20 f4 20 8b 8b 8b 8b  |2,512..F5 . ....|
00001510  8b 8b 8b 8b 8b 8b 8b 8b  8b 8b 8b 8b 8b 8b 8b 8b  |................|
*
00001530  8b 8b 8b 8b 8b 8b 8b 8b  8b 8b 0d 0a 50 04 0d 0a  |............P...|
00001540  5a 0f 20 e3 20 58 25 3d  30 20 b8 20 38 0d 0a 64  |Z. . X%=0 . 8..d|
00001550  0b 20 d6 20 63 6f 64 65  0d 0a 6e 06 20 db 0d 0a  |. . code..n. ...|
00001560  78 15 20 21 63 6f 70 79  73 74 61 72 74 3d 21 76  |x. !copystart=!v|
00001570  61 72 73 0d 0a 82 29 20  e7 20 4e 24 3d 22 45 22  |ars...) . N$="E"|
00001580  20 8c 20 21 63 6f 70 79  73 74 61 72 74 3d 21 63  | . !copystart=!c|
00001590  6f 70 79 73 74 61 72 74  2b 31 32 38 0d 0a 8c 25  |opystart+128...%|
000015a0  20 f2 63 6f 70 79 63 68  6f 6f 73 65 28 74 72 61  | .copychoose(tra|
000015b0  6e 73 66 6f 72 6d 61 74  69 6f 6e 73 25 28 31 29  |nsformations%(1)|
000015c0  29 0d 0a 96 20 20 21 63  6f 70 79 73 74 61 72 74  |)...  !copystart|
000015d0  3d 21 76 61 72 73 2b 28  31 36 30 2a 31 30 32 34  |=!vars+(160*1024|
000015e0  29 0d 0a a0 25 20 f2 63  6f 70 79 63 68 6f 6f 73  |)...% .copychoos|
000015f0  65 28 74 72 61 6e 73 66  6f 72 6d 61 74 69 6f 6e  |e(transformation|
00001600  73 25 28 32 29 29 0d 0a  aa 24 20 21 63 6f 70 79  |s%(2))...$ !copy|
00001610  73 74 61 72 74 3d 21 76  61 72 73 2b 28 31 36 30  |start=!vars+(160|
00001620  2a 31 30 32 34 29 2b 32  35 36 0d 0a b4 25 20 f2  |*1024)+256...% .|
00001630  63 6f 70 79 63 68 6f 6f  73 65 28 74 72 61 6e 73  |copychoose(trans|
00001640  66 6f 72 6d 61 74 69 6f  6e 73 25 28 33 29 29 0d  |formations%(3)).|
00001650  0a be 06 20 ed 0d 0a c8  09 20 4e 24 3d be 0d 0a  |... ..... N$=...|
00001660  d2 0d 20 fd 20 4e 24 3d  22 51 22 0d 0a dc 06 20  |.. . N$="Q".... |
00001670  e0 0d 0a e6 04 0d 0a f0  15 20 dd f2 63 6f 70 79  |......... ..copy|
00001680  63 68 6f 6f 73 65 28 43  25 29 0d 0a fa 0c 20 c8  |choose(C%).... .|
00001690  8e 20 43 25 20 ca 0d 0b  04 10 20 c9 20 30 3a d6  |. C% ..... . 0:.|
000016a0  20 63 6f 70 79 30 0d 0b  0e 10 20 c9 20 31 3a d6  | copy0.... . 1:.|
000016b0  20 63 6f 70 79 31 0d 0b  18 10 20 c9 20 32 3a d6  | copy1.... . 2:.|
000016c0  20 63 6f 70 79 32 0d 0b  22 10 20 c9 20 33 3a d6  | copy2..". . 3:.|
000016d0  20 63 6f 70 79 33 0d 0b  2c 10 20 c9 20 34 3a d6  | copy3..,. . 4:.|
000016e0  20 63 6f 70 79 34 0d 0b  36 10 20 c9 20 35 3a d6  | copy4..6. . 5:.|
000016f0  20 63 6f 70 79 35 0d 0b  40 10 20 c9 20 36 3a d6  | copy5..@. . 6:.|
00001700  20 63 6f 70 79 36 0d 0b  4a 10 20 c9 20 37 3a d6  | copy6..J. . 7:.|
00001710  20 63 6f 70 79 37 0d 0b  54 06 20 cb 0d 0b 5e 06  | copy7..T. ...^.|
00001720  20 e1 0d 0b 68 04 0d 0b  72 1b 20 dc 20 31 36 2c  | ...h...r. . 16,|
00001730  39 31 32 2c 31 36 2c 38  31 36 2c 36 34 2c 38 31  |912,16,816,64,81|
00001740  36 0d 0b 7c 1e 20 dc 20  31 37 36 2c 38 31 36 2c  |6..|. . 176,816,|
00001750  32 37 32 2c 38 31 36 2c  32 37 32 2c 38 36 34 0d  |272,816,272,864.|
00001760  0b 86 1e 20 dc 20 33 38  34 2c 39 31 32 2c 34 33  |... . 384,912,43|
00001770  32 2c 39 31 32 2c 34 33  32 2c 38 31 36 0d 0b 90  |2,912,432,816...|
00001780  1e 20 dc 20 34 39 36 2c  38 36 34 2c 34 39 36 2c  |. . 496,864,496,|
00001790  39 31 32 2c 35 39 32 2c  39 31 32 0d 0b 9a 1e 20  |912,592,912.... |
000017a0  dc 20 36 35 36 2c 38 31  36 2c 36 35 36 2c 39 31  |. 656,816,656,91|
000017b0  32 2c 37 30 34 2c 39 31  32 0d 0b a4 1e 20 dc 20  |2,704,912.... . |
000017c0  38 36 34 2c 38 31 36 2c  39 31 32 2c 38 31 36 2c  |864,816,912,816,|
000017d0  39 31 32 2c 39 31 32 0d  0b ae 1f 20 dc 20 39 37  |912,912.... . 97|
000017e0  36 2c 38 36 34 2c 39 37  36 2c 38 31 36 2c 31 30  |6,864,976,816,10|
000017f0  37 32 2c 38 31 36 0d 0b  b8 21 20 dc 20 31 31 33  |72,816...! . 113|
00001800  36 2c 39 31 32 2c 31 32  33 32 2c 39 31 32 2c 31  |6,912,1232,912,1|
00001810  32 33 32 2c 38 36 34 0d  0b c2 04 0d 0b cc 0c 20  |232,864........ |
00001820  dd f2 65 72 72 6f 72 0d  0b d6 08 20 eb 20 30 0d  |..error.... . 0.|
00001830  0b e0 0f 20 e7 20 9f 3d  31 37 20 8c 20 e0 0d 0b  |... . .=17 . ...|
00001840  ea 17 20 f6 3a f1 22 20  61 74 20 6c 69 6e 65 20  |.. .:." at line |
00001850  22 3b 9e 3a e0 0d ff                              |";.:...|
00001857