Home » Archimedes archive » Acorn User » AU 1997-08 B.adf » Regulars » starinfo/Tunnel/Jeffs/!RayTun/!RunImage
starinfo/Tunnel/Jeffs/!RayTun/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Acorn User » AU 1997-08 B.adf » Regulars |
Filename: | starinfo/Tunnel/Jeffs/!RayTun/!RunImage |
Read OK: | ✔ |
File size: | 0925 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM Ray Cast Tunnel (RWJ 05/97) for Acorn User tunnel challenge 20REM 30REM Create table for 1/4 of cylinder 40REM 1/4 copied *4, no overlapping. 50REM Tried to get an roughly equal mapping for x & z 60REM Preprocess X,Y to 4 screen addresses 70 80MODE 49:OFF 90DIM IN% 8,OUT% 4 100adr%=FNscreen_start 110 120REM Draw 1/4 of circle 130R1%=110*4:R2%=20*4 140GCOL0,63 TINT 192:CIRCLEFILL 0,0,R1% 150GCOL0,0 TINT 0:CIRCLEFILL 0,0,R2% 160 170REM Count pixels 180count%=0 190FOR Y%=R1% TO 0 STEP-4:FOR X%=0 TO R1% STEP 4 200 IF POINT(X%,Y%)=63 count%+=1 210NEXT:NEXT 220 230REM Generate table of: 4 screen adresses + x&z of inside of cylinder 240REM z, or depth is relative to 1/(distance of pixel from centre) 250REM x is relative to angle 260 270PRINTTAB(0,4);"Please wait, generating lookup table...." 280PRINTTAB(2,12);"Use mouse to control movement." 290 300DIM pix% count%*24 310count%-=1:c%=0:ptr%=pix% 320GCOL0,0 330FOR Y%=R1% TO 0 STEP-4:FOR X%=0 TO R1% STEP 4 340 IF POINT(X%,Y%)=63 THEN 350 PLOT 69,X%,Y% 360 370 PROCpoke_adr(X%DIV4,Y%DIV4) 380 390 d=SQR(X%^2+Y%^2) 400 ptr%!20=R1%/d*160 410 IF Y%>X% THEN 420 ptr%!16=DEG(ACS(Y%/d))*255/90 430 ELSE 440 ptr%!16=DEG(ASN(X%/d))*255/90 450 ENDIF 460 c%+=1:ptr%+=24 470 480 ENDIF 490NEXT:NEXT 500 510CLS 520*SLOAD <Raytun$Dir>.SPRITES 530*SCHOOSE MAP 540PLOT 237,0,960-128 550 560PROCcode 570REPEAT 580MOUSE x,y,z:!yo+=(x-640)DIV80:!xo+=(y-512)DIV64 590REM !xo+=2:REM Speed into screen 600REM !yo+=1:REM Rotational velocity 610WAIT:CALL start 620UNTIL INKEY-99 630END 640 650REM ******************************************************* 660 670DEF PROCpoke_adr(X%,Y%) 680!ptr%=adr%+(Y%+120)*640+X%+160 690ptr%!4=adr%+((X%*-1)+119)*640+Y%+160 700ptr%!8=adr%+((Y%*-1)+119)*640+(X%*-1)+159 710ptr%!12=adr%+(X%+120)*640+(Y%*-1)+159 720ENDPROC 730 740DEF FNscreen_start 750!IN%=148:IN%!4=-1 760SYS &31,IN%,OUT% 770=!OUT% 780 790DEF PROCcode 800DIM code% 1000 810FOR pass%=0 TO 2 STEP 2 820P%=code% 830[OPT pass% 840 850.pix:EQUD pix% 860.dots:EQUD count% 870.xo:EQUD0 880.yo:EQUD0 890.screen:EQUD adr% 900 910.start 920STMFD r13!,{r0-r12,r14} 930LDR r0,pix:LDR r1,dots:LDR r8,screen:LDR r9,xo:LDR r10,yo:MOV r11,#320 940.loop 950LDMIA r0!,{r2-r7} 960ADD r6,r6,r10:MOV r6,r6,ASR#2:ANDS r6,r6,#63 970ADD r7,r7,r9:MOV r7,r7,ASR#2:ANDS r7,r7,#63:MLA r6,r11,r6,r7 980LDRB r6,[r8,r6] 990STRB r6,[r2]:STRB r6,[r2,#320] 1000STRB r6,[r3]:STRB r6,[r3,#320] 1010STRB r6,[r4]:STRB r6,[r4,#320] 1020STRB r6,[r5]:STRB r6,[r5,#320] 1030SUBS r1,r1,#1:BNE loop 1040LDMFD r13!,{r0-r12,r15} 1050] 1060NEXT 1070ENDPROC
D� Ray Cast Tunnel (RWJ 05/97) for Acorn User tunnel challenge � (� Create table for 1/4 of cylinder (&� 1/4 copied *4, no overlapping. 27� Tried to get an roughly equal mapping for x & z <,� Preprocess X,Y to 4 screen addresses F P � 49:� Z� IN% 8,OUT% 4 dadr%=�screen_start n x� Draw 1/4 of circle �R1%=110*4:R2%=20*4 ��0,63 Ȝ 192:ȏȐ 0,0,R1% ��0,0 Ȝ 0:ȏȐ 0,0,R2% � �� Count pixels �count%=0 �%� Y%=R1% � 0 �-4:� X%=0 � R1% � 4 � � �X%,Y%)=63 count%+=1 ��:� � �G� Generate table of: 4 screen adresses + x&z of inside of cylinder �C� z, or depth is relative to 1/(distance of pixel from centre) �� x is relative to angle 5�0,4);"Please wait, generating lookup table...." ,�2,12);"Use mouse to control movement." " ,� pix% count%*24 6count%-=1:c%=0:ptr%=pix% @�0,0 J%� Y%=R1% � 0 �-4:� X%=0 � R1% � 4 T � �X%,Y%)=63 � ^ � 69,X%,Y% h r �poke_adr(X%�4,Y%�4) | � d=�(X%^2+Y%^2) � ptr%!20=R1%/d*160 � � Y%>X% � � ptr%!16=�(�(Y%/d))*255/90 � � � ptr%!16=�(�(X%/d))*255/90 � � � c%+=1:ptr%+=24 � � � ��:� � �� *SLOAD <Raytun$Dir>.SPRITES *SCHOOSE MAP � 237,0,960-128 & 0 �code :� D,ȗ x,y,z:!yo+=(x-640)�80:!xo+=(y-512)�64 N#� !xo+=2:REM Speed into screen X%� !yo+=1:REM Rotational velocity bȖ:� start l � �-99 v� � �>� ******************************************************* � �� �poke_adr(X%,Y%) �"!ptr%=adr%+(Y%+120)*640+X%+160 �(ptr%!4=adr%+((X%*-1)+119)*640+Y%+160 �-ptr%!8=adr%+((Y%*-1)+119)*640+(X%*-1)+159 �)ptr%!12=adr%+(X%+120)*640+(Y%*-1)+159 �� � �� �screen_start �!IN%=148:IN%!4=-1 �ș &31,IN%,OUT% =!OUT% � �code � code% 1000 *� pass%=0 � 2 � 2 4P%=code% >[OPT pass% H R.pix:EQUD pix% \.dots:EQUD count% f .xo:EQUD0 p .yo:EQUD0 z.screen:EQUD adr% � � .start �STMFD r13!,{r0-r12,r14} �JLDR r0,pix:LDR r1,dots:LDR r8,screen:LDR r9,xo:LDR r10,yo:MOV r11,#320 � .loop �LDMIA r0!,{r2-r7} �.ADD r6,r6,r10:MOV r6,r6,ASR#2:�S r6,r6,#63 �>ADD r7,r7,r9:MOV r7,r7,ASR#2:�S r7,r7,#63:MLA r6,r11,r6,r7 �LDRB r6,[r8,r6] �"STRB r6,[r2]:STRB r6,[r2,#320] �"STRB r6,[r3]:STRB r6,[r3,#320] �"STRB r6,[r4]:STRB r6,[r4,#320] �"STRB r6,[r5]:STRB r6,[r5,#320] SUBS r1,r1,#1:BNE loop LDMFD r13!,{r0-r12,r15} ] $� .� �
00000000 0d 00 0a 44 f4 20 20 20 52 61 79 20 43 61 73 74 |...D. Ray Cast| 00000010 20 54 75 6e 6e 65 6c 20 28 52 57 4a 20 30 35 2f | Tunnel (RWJ 05/| 00000020 39 37 29 20 20 66 6f 72 20 41 63 6f 72 6e 20 55 |97) for Acorn U| 00000030 73 65 72 20 74 75 6e 6e 65 6c 20 63 68 61 6c 6c |ser tunnel chall| 00000040 65 6e 67 65 0d 00 14 05 f4 0d 00 1e 28 f4 20 20 |enge........(. | 00000050 20 43 72 65 61 74 65 20 74 61 62 6c 65 20 66 6f | Create table fo| 00000060 72 20 31 2f 34 20 6f 66 20 63 79 6c 69 6e 64 65 |r 1/4 of cylinde| 00000070 72 0d 00 28 26 f4 20 20 20 31 2f 34 20 63 6f 70 |r..(&. 1/4 cop| 00000080 69 65 64 20 2a 34 2c 20 6e 6f 20 6f 76 65 72 6c |ied *4, no overl| 00000090 61 70 70 69 6e 67 2e 0d 00 32 37 f4 20 20 20 54 |apping...27. T| 000000a0 72 69 65 64 20 74 6f 20 67 65 74 20 61 6e 20 72 |ried to get an r| 000000b0 6f 75 67 68 6c 79 20 65 71 75 61 6c 20 6d 61 70 |oughly equal map| 000000c0 70 69 6e 67 20 66 6f 72 20 78 20 26 20 7a 0d 00 |ping for x & z..| 000000d0 3c 2c f4 20 20 20 50 72 65 70 72 6f 63 65 73 73 |<,. Preprocess| 000000e0 20 58 2c 59 20 74 6f 20 34 20 73 63 72 65 65 6e | X,Y to 4 screen| 000000f0 20 61 64 64 72 65 73 73 65 73 0d 00 46 04 0d 00 | addresses..F...| 00000100 50 0a eb 20 34 39 3a 87 0d 00 5a 12 de 20 49 4e |P.. 49:...Z.. IN| 00000110 25 20 38 2c 4f 55 54 25 20 34 0d 00 64 16 61 64 |% 8,OUT% 4..d.ad| 00000120 72 25 3d a4 73 63 72 65 65 6e 5f 73 74 61 72 74 |r%=.screen_start| 00000130 0d 00 6e 04 0d 00 78 19 f4 20 20 44 72 61 77 20 |..n...x.. Draw | 00000140 31 2f 34 20 6f 66 20 63 69 72 63 6c 65 0d 00 82 |1/4 of circle...| 00000150 16 52 31 25 3d 31 31 30 2a 34 3a 52 32 25 3d 32 |.R1%=110*4:R2%=2| 00000160 30 2a 34 0d 00 8c 1d e6 30 2c 36 33 20 c8 9c 20 |0*4.....0,63 .. | 00000170 31 39 32 3a c8 8f c8 90 20 30 2c 30 2c 52 31 25 |192:.... 0,0,R1%| 00000180 0d 00 96 1a e6 30 2c 30 20 c8 9c 20 30 3a c8 8f |.....0,0 .. 0:..| 00000190 c8 90 20 30 2c 30 2c 52 32 25 0d 00 a0 04 0d 00 |.. 0,0,R2%......| 000001a0 aa 13 f4 20 20 43 6f 75 6e 74 20 70 69 78 65 6c |... Count pixel| 000001b0 73 0d 00 b4 0c 63 6f 75 6e 74 25 3d 30 0d 00 be |s....count%=0...| 000001c0 25 e3 20 59 25 3d 52 31 25 20 b8 20 30 20 88 2d |%. Y%=R1% . 0 .-| 000001d0 34 3a e3 20 58 25 3d 30 20 b8 20 52 31 25 20 88 |4:. X%=0 . R1% .| 000001e0 20 34 0d 00 c8 1b 20 e7 20 b0 58 25 2c 59 25 29 | 4.... . .X%,Y%)| 000001f0 3d 36 33 20 63 6f 75 6e 74 25 2b 3d 31 0d 00 d2 |=63 count%+=1...| 00000200 07 ed 3a ed 0d 00 dc 04 0d 00 e6 47 f4 20 20 47 |..:........G. G| 00000210 65 6e 65 72 61 74 65 20 74 61 62 6c 65 20 6f 66 |enerate table of| 00000220 3a 20 34 20 73 63 72 65 65 6e 20 61 64 72 65 73 |: 4 screen adres| 00000230 73 65 73 20 2b 20 78 26 7a 20 6f 66 20 69 6e 73 |ses + x&z of ins| 00000240 69 64 65 20 6f 66 20 63 79 6c 69 6e 64 65 72 0d |ide of cylinder.| 00000250 00 f0 43 f4 20 20 7a 2c 20 6f 72 20 64 65 70 74 |..C. z, or dept| 00000260 68 20 69 73 20 72 65 6c 61 74 69 76 65 20 74 6f |h is relative to| 00000270 20 31 2f 28 64 69 73 74 61 6e 63 65 20 6f 66 20 | 1/(distance of | 00000280 70 69 78 65 6c 20 66 72 6f 6d 20 63 65 6e 74 72 |pixel from centr| 00000290 65 29 0d 00 fa 1d f4 20 20 78 20 69 73 20 72 65 |e)..... x is re| 000002a0 6c 61 74 69 76 65 20 74 6f 20 61 6e 67 6c 65 0d |lative to angle.| 000002b0 01 04 04 0d 01 0e 35 f1 8a 30 2c 34 29 3b 22 50 |......5..0,4);"P| 000002c0 6c 65 61 73 65 20 77 61 69 74 2c 20 67 65 6e 65 |lease wait, gene| 000002d0 72 61 74 69 6e 67 20 6c 6f 6f 6b 75 70 20 74 61 |rating lookup ta| 000002e0 62 6c 65 2e 2e 2e 2e 22 0d 01 18 2c f1 8a 32 2c |ble...."...,..2,| 000002f0 31 32 29 3b 22 55 73 65 20 6d 6f 75 73 65 20 74 |12);"Use mouse t| 00000300 6f 20 63 6f 6e 74 72 6f 6c 20 6d 6f 76 65 6d 65 |o control moveme| 00000310 6e 74 2e 22 0d 01 22 04 0d 01 2c 14 de 20 70 69 |nt.".."...,.. pi| 00000320 78 25 20 63 6f 75 6e 74 25 2a 32 34 0d 01 36 1c |x% count%*24..6.| 00000330 63 6f 75 6e 74 25 2d 3d 31 3a 63 25 3d 30 3a 70 |count%-=1:c%=0:p| 00000340 74 72 25 3d 70 69 78 25 0d 01 40 08 e6 30 2c 30 |tr%=pix%..@..0,0| 00000350 0d 01 4a 25 e3 20 59 25 3d 52 31 25 20 b8 20 30 |..J%. Y%=R1% . 0| 00000360 20 88 2d 34 3a e3 20 58 25 3d 30 20 b8 20 52 31 | .-4:. X%=0 . R1| 00000370 25 20 88 20 34 0d 01 54 13 20 e7 20 b0 58 25 2c |% . 4..T. . .X%,| 00000380 59 25 29 3d 36 33 20 8c 0d 01 5e 10 20 20 f0 20 |Y%)=63 ...^. . | 00000390 36 39 2c 58 25 2c 59 25 0d 01 68 04 0d 01 72 1a |69,X%,Y%..h...r.| 000003a0 20 20 f2 70 6f 6b 65 5f 61 64 72 28 58 25 81 34 | .poke_adr(X%.4| 000003b0 2c 59 25 81 34 29 0d 01 7c 04 0d 01 86 14 20 20 |,Y%.4)..|..... | 000003c0 64 3d b6 28 58 25 5e 32 2b 59 25 5e 32 29 0d 01 |d=.(X%^2+Y%^2)..| 000003d0 90 17 20 20 70 74 72 25 21 32 30 3d 52 31 25 2f |.. ptr%!20=R1%/| 000003e0 64 2a 31 36 30 0d 01 9a 0f 20 20 e7 20 59 25 3e |d*160.... . Y%>| 000003f0 58 25 20 8c 0d 01 a4 20 20 20 20 70 74 72 25 21 |X% .... ptr%!| 00000400 31 36 3d 9d 28 95 28 59 25 2f 64 29 29 2a 32 35 |16=.(.(Y%/d))*25| 00000410 35 2f 39 30 0d 01 ae 07 20 20 cc 0d 01 b8 20 20 |5/90.... .... | 00000420 20 20 70 74 72 25 21 31 36 3d 9d 28 98 28 58 25 | ptr%!16=.(.(X%| 00000430 2f 64 29 29 2a 32 35 35 2f 39 30 0d 01 c2 07 20 |/d))*255/90.... | 00000440 20 cd 0d 01 cc 14 20 20 63 25 2b 3d 31 3a 70 74 | ..... c%+=1:pt| 00000450 72 25 2b 3d 32 34 0d 01 d6 04 0d 01 e0 06 20 cd |r%+=24........ .| 00000460 0d 01 ea 07 ed 3a ed 0d 01 f4 04 0d 01 fe 05 db |.....:..........| 00000470 0d 02 08 1f 2a 53 4c 4f 41 44 20 3c 52 61 79 74 |....*SLOAD <Rayt| 00000480 75 6e 24 44 69 72 3e 2e 53 50 52 49 54 45 53 0d |un$Dir>.SPRITES.| 00000490 02 12 10 2a 53 43 48 4f 4f 53 45 20 4d 41 50 0d |...*SCHOOSE MAP.| 000004a0 02 1c 13 f0 20 32 33 37 2c 30 2c 39 36 30 2d 31 |.... 237,0,960-1| 000004b0 32 38 0d 02 26 04 0d 02 30 09 f2 63 6f 64 65 0d |28..&...0..code.| 000004c0 02 3a 05 f5 0d 02 44 2c c8 97 20 78 2c 79 2c 7a |.:....D,.. x,y,z| 000004d0 3a 21 79 6f 2b 3d 28 78 2d 36 34 30 29 81 38 30 |:!yo+=(x-640).80| 000004e0 3a 21 78 6f 2b 3d 28 79 2d 35 31 32 29 81 36 34 |:!xo+=(y-512).64| 000004f0 0d 02 4e 23 f4 20 21 78 6f 2b 3d 32 3a 52 45 4d |..N#. !xo+=2:REM| 00000500 20 20 53 70 65 65 64 20 69 6e 74 6f 20 73 63 72 | Speed into scr| 00000510 65 65 6e 0d 02 58 25 f4 20 21 79 6f 2b 3d 31 3a |een..X%. !yo+=1:| 00000520 52 45 4d 20 20 52 6f 74 61 74 69 6f 6e 61 6c 20 |REM Rotational | 00000530 76 65 6c 6f 63 69 74 79 0d 02 62 0e c8 96 3a d6 |velocity..b...:.| 00000540 20 73 74 61 72 74 0d 02 6c 0a fd 20 a6 2d 39 39 | start..l.. .-99| 00000550 0d 02 76 05 e0 0d 02 80 04 0d 02 8a 3e f4 20 20 |..v.........>. | 00000560 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000590 2a 2a 2a 2a 2a 2a 2a 0d 02 94 04 0d 02 9e 16 dd |*******.........| 000005a0 20 f2 70 6f 6b 65 5f 61 64 72 28 58 25 2c 59 25 | .poke_adr(X%,Y%| 000005b0 29 0d 02 a8 22 21 70 74 72 25 3d 61 64 72 25 2b |)..."!ptr%=adr%+| 000005c0 28 59 25 2b 31 32 30 29 2a 36 34 30 2b 58 25 2b |(Y%+120)*640+X%+| 000005d0 31 36 30 0d 02 b2 28 70 74 72 25 21 34 3d 61 64 |160...(ptr%!4=ad| 000005e0 72 25 2b 28 28 58 25 2a 2d 31 29 2b 31 31 39 29 |r%+((X%*-1)+119)| 000005f0 2a 36 34 30 2b 59 25 2b 31 36 30 0d 02 bc 2d 70 |*640+Y%+160...-p| 00000600 74 72 25 21 38 3d 61 64 72 25 2b 28 28 59 25 2a |tr%!8=adr%+((Y%*| 00000610 2d 31 29 2b 31 31 39 29 2a 36 34 30 2b 28 58 25 |-1)+119)*640+(X%| 00000620 2a 2d 31 29 2b 31 35 39 0d 02 c6 29 70 74 72 25 |*-1)+159...)ptr%| 00000630 21 31 32 3d 61 64 72 25 2b 28 58 25 2b 31 32 30 |!12=adr%+(X%+120| 00000640 29 2a 36 34 30 2b 28 59 25 2a 2d 31 29 2b 31 35 |)*640+(Y%*-1)+15| 00000650 39 0d 02 d0 05 e1 0d 02 da 04 0d 02 e4 13 dd 20 |9.............. | 00000660 a4 73 63 72 65 65 6e 5f 73 74 61 72 74 0d 02 ee |.screen_start...| 00000670 15 21 49 4e 25 3d 31 34 38 3a 49 4e 25 21 34 3d |.!IN%=148:IN%!4=| 00000680 2d 31 0d 02 f8 13 c8 99 20 26 33 31 2c 49 4e 25 |-1...... &31,IN%| 00000690 2c 4f 55 54 25 0d 03 02 0a 3d 21 4f 55 54 25 0d |,OUT%....=!OUT%.| 000006a0 03 0c 04 0d 03 16 0b dd 20 f2 63 6f 64 65 0d 03 |........ .code..| 000006b0 20 10 de 20 63 6f 64 65 25 20 31 30 30 30 0d 03 | .. code% 1000..| 000006c0 2a 15 e3 20 70 61 73 73 25 3d 30 20 b8 20 32 20 |*.. pass%=0 . 2 | 000006d0 88 20 32 0d 03 34 0c 50 25 3d 63 6f 64 65 25 0d |. 2..4.P%=code%.| 000006e0 03 3e 0e 5b 4f 50 54 20 70 61 73 73 25 0d 03 48 |.>.[OPT pass%..H| 000006f0 04 0d 03 52 12 2e 70 69 78 3a 45 51 55 44 20 70 |...R..pix:EQUD p| 00000700 69 78 25 0d 03 5c 15 2e 64 6f 74 73 3a 45 51 55 |ix%..\..dots:EQU| 00000710 44 20 63 6f 75 6e 74 25 0d 03 66 0d 2e 78 6f 3a |D count%..f..xo:| 00000720 45 51 55 44 30 0d 03 70 0d 2e 79 6f 3a 45 51 55 |EQUD0..p..yo:EQU| 00000730 44 30 0d 03 7a 15 2e 73 63 72 65 65 6e 3a 45 51 |D0..z..screen:EQ| 00000740 55 44 20 61 64 72 25 0d 03 84 04 0d 03 8e 0a 2e |UD adr%.........| 00000750 73 74 61 72 74 0d 03 98 1b 53 54 4d 46 44 20 72 |start....STMFD r| 00000760 31 33 21 2c 7b 72 30 2d 72 31 32 2c 72 31 34 7d |13!,{r0-r12,r14}| 00000770 0d 03 a2 4a 4c 44 52 20 72 30 2c 70 69 78 3a 4c |...JLDR r0,pix:L| 00000780 44 52 20 72 31 2c 64 6f 74 73 3a 4c 44 52 20 72 |DR r1,dots:LDR r| 00000790 38 2c 73 63 72 65 65 6e 3a 4c 44 52 20 72 39 2c |8,screen:LDR r9,| 000007a0 78 6f 3a 4c 44 52 20 72 31 30 2c 79 6f 3a 4d 4f |xo:LDR r10,yo:MO| 000007b0 56 20 72 31 31 2c 23 33 32 30 0d 03 ac 09 2e 6c |V r11,#320.....l| 000007c0 6f 6f 70 0d 03 b6 15 4c 44 4d 49 41 20 72 30 21 |oop....LDMIA r0!| 000007d0 2c 7b 72 32 2d 72 37 7d 0d 03 c0 2e 41 44 44 20 |,{r2-r7}....ADD | 000007e0 72 36 2c 72 36 2c 72 31 30 3a 4d 4f 56 20 72 36 |r6,r6,r10:MOV r6| 000007f0 2c 72 36 2c 41 53 52 23 32 3a 80 53 20 72 36 2c |,r6,ASR#2:.S r6,| 00000800 72 36 2c 23 36 33 0d 03 ca 3e 41 44 44 20 72 37 |r6,#63...>ADD r7| 00000810 2c 72 37 2c 72 39 3a 4d 4f 56 20 72 37 2c 72 37 |,r7,r9:MOV r7,r7| 00000820 2c 41 53 52 23 32 3a 80 53 20 72 37 2c 72 37 2c |,ASR#2:.S r7,r7,| 00000830 23 36 33 3a 4d 4c 41 20 72 36 2c 72 31 31 2c 72 |#63:MLA r6,r11,r| 00000840 36 2c 72 37 0d 03 d4 13 4c 44 52 42 20 72 36 2c |6,r7....LDRB r6,| 00000850 5b 72 38 2c 72 36 5d 0d 03 de 22 53 54 52 42 20 |[r8,r6]..."STRB | 00000860 72 36 2c 5b 72 32 5d 3a 53 54 52 42 20 72 36 2c |r6,[r2]:STRB r6,| 00000870 5b 72 32 2c 23 33 32 30 5d 0d 03 e8 22 53 54 52 |[r2,#320]..."STR| 00000880 42 20 72 36 2c 5b 72 33 5d 3a 53 54 52 42 20 72 |B r6,[r3]:STRB r| 00000890 36 2c 5b 72 33 2c 23 33 32 30 5d 0d 03 f2 22 53 |6,[r3,#320]..."S| 000008a0 54 52 42 20 72 36 2c 5b 72 34 5d 3a 53 54 52 42 |TRB r6,[r4]:STRB| 000008b0 20 72 36 2c 5b 72 34 2c 23 33 32 30 5d 0d 03 fc | r6,[r4,#320]...| 000008c0 22 53 54 52 42 20 72 36 2c 5b 72 35 5d 3a 53 54 |"STRB r6,[r5]:ST| 000008d0 52 42 20 72 36 2c 5b 72 35 2c 23 33 32 30 5d 0d |RB r6,[r5,#320].| 000008e0 04 06 1a 53 55 42 53 20 72 31 2c 72 31 2c 23 31 |...SUBS r1,r1,#1| 000008f0 3a 42 4e 45 20 6c 6f 6f 70 0d 04 10 1b 4c 44 4d |:BNE loop....LDM| 00000900 46 44 20 72 31 33 21 2c 7b 72 30 2d 72 31 32 2c |FD r13!,{r0-r12,| 00000910 72 31 35 7d 0d 04 1a 05 5d 0d 04 24 05 ed 0d 04 |r15}....]..$....| 00000920 2e 05 e1 0d ff |.....| 00000925