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

Bradburne/MCRM_lores

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_lores
Read OK:
File size: 184D bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM>MCRM_Norm
   20 REM By Chris Bradburne
   30
   40 ON ERROR PROCerror
   50
   60 MODE 13
   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+32
  170
  180 DIM code 2048
  190 DIM block 16*1024
  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,#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,#320
  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,#320
  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,#128
  580 BLT loop1
  590 MOV R10,#0
  600 ADD R12,R12,#(64+320)
  610 ADD R9,R9,#1
  620 CMP R9,#128
  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 3
  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,#192
  790 CMP R10,#128
  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,#320*128
  880 SUB R12,R12,#320
  890 MOV R10,#0
  900 MOV R9,#0
  910 .loop4
  920 LDRB R0,[R11]
  930 STRB R0,[R12]
  940 SUB R12,R12,#320
  950 ADD R11,R11,#1
  960 ADD R10,R10,#1
  970 CMP R10,#128
  980 BLT loop4
  990 ADD R12,R12,#320*128
 1000 ADD R12,R12,#1
 1010 MOV R10,#0
 1020 ADD R9,R9,#1
 1030 CMP R9,#128
 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,#127
 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,#128:BLT loop7
 1170 ADD R12,R12,#128
 1180 ADD R12,R12,#320
 1190 MOV R10,#0
 1200 ADD R9,R9,#1
 1210 CMP R9,#128
 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,#127
 1310 ADD R12,R12,#320*128
 1320 SUB R12,R12,#320
 1330 .loop8
 1340 LDRB R0,[R11]:STRB R0,[R12]
 1350 SUB R12,R12,#320
 1360 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop8
 1370 ADD R12,R12,#320*128
 1380 SUB R12,R12,#1
 1390 MOV R10,#0
 1400 ADD R9,R9,#1
 1410 CMP R9,#128
 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,#320
 1530 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop9
 1540 SUB R12,R12,#320*128
 1550 ADD R12,R12,#1
 1560 MOV R10,#0:ADD R9,R9,#1:CMP R9,#128
 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,#127
 1650 MOV R10,#0:MOV R9,#0
 1660 .loop6
 1670 LDRB R0,[R11]:STRB R0,[R12]
 1680 ADD R12,R12,#320
 1690 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop6
 1700 SUB R12,R12,#320*128
 1710 SUB R12,R12,#1
 1720 MOV R10,#0
 1730 ADD R9,R9,#1:CMP R9,#128
 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,#320*128
 1820 SUB R12,R12,#320
 1830 ADD R12,R12,#127
 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,#128
 1920 BLT loop5
 1930 ADD R12,R12,#128
 1940 SUB R12,R12,#320
 1950 MOV R10,#0
 1960 ADD R9,R9,#1
 1970 CMP R9,#128
 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,#320*128
 2060 SUB R12,R12,#320
 2070 .loop3
 2080 ]:FOR X%=0 TO 3
 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,#(640+256)/2
 2140 CMP R10,#128
 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 13
 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 7
 2660 CALL code
 2670 CLS
 2680 !copystart=!vars
 2690 IF N$="E" THEN !copystart=!copystart+64
 2700 PROCcopychoose(transformations%(1))
 2710 !copystart=!vars+(40*1024)
 2720 PROCcopychoose(transformations%(2))
 2730 !copystart=!vars+(40*1024)+128
 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_Norm
 � By Chris Bradburne

( � � �error
2
<	 � 13
F �
P
 � vars 8
Z !vars=148
d vars!4=-1
n' ș "OS_ReadVduVariables",vars,vars
x
� � 0
� � transformations%(3)
� transformations%()=0
� !vars=!vars+32
�
� � code 2048
� � block 16*1024
� � 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,#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,#320
�. 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,#320
. LDRB R0,[R12]:CMP R0,#255:STREQB R0,[R11]
 ADD R12,R12,#1
& ADD R11,R11,#1
0 ADD R10,R10,#1
: CMP R10,#128
D BLT loop1
N MOV R10,#0
X ADD R12,R12,#(64+320)
b ADD R9,R9,#1
l CMP R9,#128
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 � 3
� [OPT pass
� LDMIA R11!,{R0-R7}
� STMIA R12!,{R0-R7}
� ]:�:[OPT pass
 ADD R10,R10,#1
 ADD R12,R12,#192
 CMP R10,#128
  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,#320*128
p SUB R12,R12,#320
z MOV R10,#0
� MOV R9,#0
� .loop4
� LDRB R0,[R11]
� STRB R0,[R12]
� SUB R12,R12,#320
� ADD R11,R11,#1
� ADD R10,R10,#1
� CMP R10,#128
� BLT loop4
� ADD R12,R12,#320*128
� ADD R12,R12,#1
� MOV R10,#0
� ADD R9,R9,#1
 CMP R9,#128
 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,#127
` 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,#128:BLT loop7
� ADD R12,R12,#128
� ADD R12,R12,#320
� MOV R10,#0
� ADD R9,R9,#1
� CMP R9,#128
� 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,#127
 ADD R12,R12,#320*128
( SUB R12,R12,#320
2 .loop8
<  LDRB R0,[R11]:STRB R0,[R12]
F SUB R12,R12,#320
P9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop8
Z ADD R12,R12,#320*128
d SUB R12,R12,#1
n MOV R10,#0
x ADD R9,R9,#1
� CMP R9,#128
� 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,#320
�9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop9
 SUB R12,R12,#320*128
 ADD R12,R12,#1
( MOV R10,#0:ADD R9,R9,#1:CMP R9,#128
" 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,#127
r MOV R10,#0:MOV R9,#0
| .loop6
�  LDRB R0,[R11]:STRB R0,[R12]
� ADD R12,R12,#320
�9 ADD R11,R11,#1:ADD R10,R10,#1:CMP R10,#128:BLT loop6
� SUB R12,R12,#320*128
� SUB R12,R12,#1
� MOV R10,#0
� ADD R9,R9,#1:CMP R9,#128
� BLT loop6
� LDMFD R13!,{R0-R12,PC}
�
� .copy2
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
 LDR R11,blockstart
 ADD R12,R12,#320*128
 SUB R12,R12,#320
& ADD R12,R12,#127
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,#128
� BLT loop5
� ADD R12,R12,#128
� SUB R12,R12,#320
� MOV R10,#0
� ADD R9,R9,#1
� CMP R9,#128
� BLT loop5
� LDMFD R13!,{R0-R12,PC}
�
� .copy4
� STMFD R13!,{R0-R12,R14}
� LDR R12,copystart
� LDR R11,blockstart
 ADD R12,R12,#320*128
 SUB R12,R12,#320
 .loop3
  ]:� X%=0 � 3
* [OPT pass
4* LDMIA R11!,{R0-R7}:STMIA R12!,{R0-R7}
> ]:�:[OPT pass
H ADD R10,R10,#1
R SUB R12,R12,#(640+256)/2
\ CMP R10,#128
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"


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