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
.