home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / demos / baah / Articles / SpeedWar / FastBox256 next >
Unknown  |  1996-07-21  |  8.4 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 4f f4 3d 3d 3d | 3d 20 41 53 4d 20 43 4f |...O.===|= ASM CO|
|00000010| 44 45 20 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |DE =====|========|
|00000020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00000050| 00 14 0d de 63 20 31 30 | 32 34 2a 34 0d 00 1e 0c |....c 10|24*4....|
|00000060| e3 6f 3d 30 b8 32 88 32 | 0d 00 28 08 50 25 3d 63 |.o=0.2.2|..(.P%=c|
|00000070| 0d 00 32 0a 5b 6f 70 74 | 20 6f 0d 00 3c 51 3b 20 |..2.[opt| o..<Q; |
|00000080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 00 46 51 3b |--------|---..FQ;|
|000000d0| 20 2d 2d 2d 20 20 20 20 | 20 20 20 20 20 20 20 20 | --- | |
|000000e0| 20 20 20 20 20 20 20 20 | 20 52 6f 75 74 69 6e 65 | | Routine|
|000000f0| 20 64 72 61 77 69 6e 67 | 20 61 20 38 20 62 70 70 | drawing| a 8 bpp|
|00000100| 20 62 6f 78 20 20 20 20 | 20 20 20 20 20 20 20 20 | box | |
|00000110| 20 20 20 20 20 20 20 20 | 20 2d 2d 2d 0d 00 50 51 | | ---..PQ|
|00000120| 3b 20 2d 2d 2d 20 20 20 | 20 20 20 20 20 20 20 20 |; --- | |
|00000130| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 28 43 | | (C|
|00000140| 29 20 41 6c 61 69 6e 20 | 42 52 4f 42 45 43 4b 45 |) Alain |BROBECKE|
|00000150| 52 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |R | |
|00000160| 20 20 20 4d 61 79 20 39 | 36 20 2d 2d 2d 0d 00 5a | May 9|6 ---..Z|
|00000170| 51 3b 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |Q; -----|--------|
|00000180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 00 |--------|------..|
|000001c0| 64 4c 3b 20 2a 20 54 68 | 69 73 20 72 6f 75 74 69 |dL; * Th|is routi|
|000001d0| 6e 65 20 64 72 61 77 73 | 20 74 68 65 20 62 6f 78 |ne draws| the box|
|000001e0| 20 62 65 74 77 65 65 6e | 20 28 78 31 3b 79 31 29 | between| (x1;y1)|
|000001f0| 20 61 6e 64 20 28 78 32 | 3b 79 32 29 20 6f 6e 20 | and (x2|;y2) on |
|00000200| 74 68 65 20 6d 6f 64 65 | 31 33 0d 00 6e 2c 3b 20 |the mode|13..n,; |
|00000210| 73 63 72 65 65 6e 20 77 | 69 74 68 20 74 68 65 20 |screen w|ith the |
|00000220| 67 69 76 65 6e 20 66 69 | 6c 6c 69 6e 67 20 70 61 |given fi|lling pa|
|00000230| 74 74 65 72 6e 2e 0d 00 | 78 4c 3b 20 2a 20 72 31 |ttern...|xL; * r1|
|00000240| 33 20 69 73 20 73 61 76 | 65 64 20 6a 75 73 74 20 |3 is sav|ed just |
|00000250| 61 66 74 65 72 20 74 68 | 65 20 67 65 6e 65 72 61 |after th|e genera|
|00000260| 74 65 64 20 63 6f 64 65 | 2c 20 73 6f 20 77 65 20 |ted code|, so we |
|00000270| 63 61 6e 20 75 73 65 20 | 69 74 20 66 6f 72 20 74 |can use |it for t|
|00000280| 68 65 0d 00 82 4b 3b 20 | 6c 64 6d 69 61 2d 73 74 |he...K; |ldmia-st|
|00000290| 6d 69 61 20 63 6f 70 79 | 2e 20 42 75 74 20 77 65 |mia copy|. But we|
|000002a0| 20 68 61 76 65 20 74 6f | 20 67 65 6e 65 72 61 74 | have to| generat|
|000002b0| 65 20 74 68 65 20 69 6e | 73 74 72 75 63 74 69 6f |e the in|structio|
|000002c0| 6e 73 20 77 68 69 63 68 | 20 77 69 6c 6c 0d 00 8c |ns which| will...|
|000002d0| 27 3b 20 72 65 73 74 6f | 72 65 20 69 74 20 61 74 |'; resto|re it at|
|000002e0| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 72 6f 75 74 | the end| of rout|
|000002f0| 69 6e 65 2e 0d 00 96 4d | 3b 20 2a 20 54 68 65 20 |ine....M|; * The |
|00000300| 6c 61 73 74 20 66 69 6c | 6c 69 6e 67 20 69 6e 73 |last fil|ling ins|
|00000310| 74 72 75 63 74 69 6f 6e | 20 28 73 74 72 2c 20 73 |truction| (str, s|
|00000320| 74 72 42 20 6f 72 20 61 | 64 64 2c 20 74 6f 20 6d |trB or a|dd, to m|
|00000330| 6f 64 69 66 79 20 74 68 | 65 20 61 64 72 65 73 73 |odify th|e adress|
|00000340| 29 0d 00 a0 42 3b 20 69 | 73 20 67 65 6e 65 72 61 |)...B; i|s genera|
|00000350| 74 65 64 20 77 69 74 68 | 20 74 68 65 20 73 74 6d |ted with| the stm|
|00000360| 69 61 20 75 73 65 64 20 | 66 6f 72 20 74 68 65 20 |ia used |for the |
|00000370| 65 6e 64 63 6f 64 65 20 | 67 65 6e 65 72 61 74 69 |endcode |generati|
|00000380| 6f 6e 2e 0d 00 aa 4f 3b | 20 2a 20 4d 6f 73 74 20 |on....O;| * Most |
|00000390| 74 69 6d 65 73 20 28 3e | 37 35 25 29 20 77 65 20 |times (>|75%) we |
|000003a0| 77 6f 6e 27 20 74 20 6e | 65 65 64 20 61 6e 20 61 |won' t n|eed an a|
|000003b0| 64 64 20 74 6f 20 6d 6f | 64 69 66 79 20 6f 66 66 |dd to mo|dify off|
|000003c0| 73 65 74 73 2c 20 73 6f | 20 49 20 63 68 6f 6f 73 |sets, so| I choos|
|000003d0| 65 64 0d 00 b4 45 3b 20 | 74 6f 20 62 72 61 6e 63 |ed...E; |to branc|
|000003e0| 68 20 69 6e 20 73 75 63 | 68 20 63 61 73 65 73 20 |h in suc|h cases |
|000003f0| 69 6e 73 74 65 61 64 20 | 6f 66 20 63 61 73 65 73 |instead |of cases|
|00000400| 20 77 68 65 6e 20 77 65 | 20 68 61 76 65 20 61 20 | when we| have a |
|00000410| 73 74 72 28 42 29 2e 0d | 00 be 50 3b 20 2a 20 54 |str(B)..|..P; * T|
|00000420| 68 65 72 65 20 61 72 65 | 20 6d 61 6e 79 20 6f 74 |here are| many ot|
|00000430| 68 65 72 20 74 72 69 63 | 6b 73 20 28 66 6f 72 20 |her tric|ks (for |
|00000440| 74 68 65 20 67 65 6e 65 | 72 61 74 69 6f 6e 20 6f |the gene|ration o|
|00000450| 66 20 27 62 47 45 27 2e | 2e 29 20 62 75 74 20 49 |f 'bGE'.|.) but I|
|00000460| 20 77 6f 6e 27 20 74 0d | 00 c8 32 3b 20 65 78 70 | won' t.|..2; exp|
|00000470| 6c 61 69 6e 20 74 68 65 | 6d 20 73 69 6e 63 65 20 |lain the|m since |
|00000480| 63 6f 64 65 20 69 73 20 | 77 69 64 65 6c 79 20 63 |code is |widely c|
|00000490| 6f 6d 6d 65 6e 74 65 64 | 2e 0d 00 d2 05 3b 0d 00 |ommented|.....;..|
|000004a0| dc 17 3b 20 50 61 72 61 | 6d 65 74 65 72 73 20 61 |..; Para|meters a|
|000004b0| 72 65 2e 2e 2e 0d 00 e6 | 1d 3b 20 20 20 20 20 72 |re......|.; r|
|000004c0| 30 20 3d 20 73 63 72 65 | 65 6e 20 61 64 72 65 73 |0 = scre|en adres|
|000004d0| 73 2e 0d 00 f0 1f 3b 20 | 20 20 20 20 72 31 20 3d |s.....; | r1 =|
|000004e0| 20 66 69 6c 6c 69 6e 67 | 20 70 61 74 74 65 72 6e | filling| pattern|
|000004f0| 2e 0d 00 fa 1e 3b 20 20 | 20 20 20 72 32 20 3d 20 |.....; | r2 = |
|00000500| 78 31 2e 20 20 20 20 31 | 2d 2d 2d 2d 2d 2d 2b 0d |x1. 1|------+.|
|00000510| 01 04 1e 3b 20 20 20 20 | 20 72 33 20 3d 20 79 31 |...; | r3 = y1|
|00000520| 2e 20 20 20 20 7c 20 20 | 20 20 20 20 7c 0d 01 0e |. | | |...|
|00000530| 1e 3b 20 20 20 20 20 72 | 34 20 3d 20 78 32 2e 20 |.; r|4 = x2. |
|00000540| 20 20 20 7c 20 20 20 20 | 20 20 7c 0d 01 18 1e 3b | | | |....;|
|00000550| 20 20 20 20 20 72 35 20 | 3d 20 79 32 2e 20 20 20 | r5 |= y2. |
|00000560| 20 2b 2d 2d 2d 2d 2d 2d | 32 0d 01 22 0f 2e 66 61 | +------|2.."..fa|
|00000570| 73 74 62 6f 78 32 35 36 | 0d 01 2c 46 20 20 63 6d |stbox256|..,F cm|
|00000580| 70 20 20 20 20 20 20 20 | 72 32 2c 23 33 32 30 20 |p |r2,#320 |
|00000590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005a0| 3b 20 41 74 20 66 69 72 | 73 74 20 63 68 65 63 6b |; At fir|st check|
|000005b0| 20 69 66 20 74 68 65 20 | 62 6f 78 20 69 73 0d 01 | if the |box is..|
|000005c0| 36 4b 20 20 63 6d 70 4c | 54 20 20 20 20 20 72 33 |6K cmpL|T r3|
|000005d0| 2c 23 32 35 36 20 20 20 | 20 20 20 20 20 20 20 20 |,#256 | |
|000005e0| 20 20 20 20 20 20 3b 20 | 20 20 63 6f 6d 70 6c 65 | ; | comple|
|000005f0| 74 6c 79 20 6f 75 74 20 | 6f 66 20 73 63 72 65 65 |tly out |of scree|
|00000600| 6e 2c 20 61 6e 64 20 69 | 6e 0d 01 40 3e 20 20 6d |n, and i|n..@> m|
|00000610| 6f 76 47 45 20 20 20 20 | 20 70 63 2c 72 31 34 20 |ovGE | pc,r14 |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000630| 20 3b 20 20 20 73 75 63 | 68 20 63 61 73 65 20 77 | ; suc|h case w|
|00000640| 65 20 71 75 69 74 2e 0d | 01 4a 15 20 20 63 6d 70 |e quit..|.J. cmp|
|00000650| 20 20 20 20 20 20 20 72 | 34 2c 23 30 0d 01 54 15 | r|4,#0..T.|
|00000660| 20 20 63 6d 70 47 45 20 | 20 20 20 20 72 35 2c 23 | cmpGE | r5,#|
|00000670| 30 0d 01 5e 16 20 20 6d | 6f 76 4c 54 20 20 20 20 |0..^. m|ovLT |
|00000680| 20 70 63 2c 72 31 34 0d | 01 68 3a 20 20 73 74 6d | pc,r14.|.h: stm|
|00000690| 66 64 20 20 20 20 20 72 | 31 33 21 2c 7b 72 30 2d |fd r|13!,{r0-|
|000006a0| 72 31 32 2c 72 31 34 7d | 20 20 20 20 20 20 20 3b |r12,r14}| ;|
|000006b0| 20 42 65 20 63 6c 65 61 | 6e 20 6f 72 20 64 69 65 | Be clea|n or die|
|000006c0| 2e 0d 01 72 3f 20 20 63 | 6d 70 20 20 20 20 20 20 |...r? c|mp |
|000006d0| 20 72 32 2c 23 30 20 20 | 20 20 20 20 20 20 20 20 | r2,#0 | |
|000006e0| 20 20 20 20 20 20 20 20 | 20 3b 20 50 65 72 66 6f | | ; Perfo|
|000006f0| 72 6d 20 74 68 65 20 63 | 6c 69 70 70 69 6e 67 2e |rm the c|lipping.|
|00000700| 0d 01 7c 15 20 20 6d 6f | 76 4c 54 20 20 20 20 20 |..|. mo|vLT |
|00000710| 72 32 2c 23 30 0d 01 86 | 15 20 20 63 6d 70 20 20 |r2,#0...|. cmp |
|00000720| 20 20 20 20 20 72 33 2c | 23 30 0d 01 90 15 20 20 | r3,|#0.... |
|00000730| 6d 6f 76 4c 54 20 20 20 | 20 20 72 33 2c 23 30 0d |movLT | r3,#0.|
|00000740| 01 9a 17 20 20 63 6d 70 | 20 20 20 20 20 20 20 72 |... cmp| r|
|00000750| 34 2c 23 33 32 30 0d 01 | a4 17 20 20 6d 6f 76 47 |4,#320..|.. movG|
|00000760| 45 20 20 20 20 20 72 34 | 2c 23 32 35 35 0d 01 ae |E r4|,#255...|
|00000770| 20 20 20 61 64 64 47 45 | 20 20 20 20 20 72 34 2c | addGE| r4,|
|00000780| 72 34 2c 23 28 33 31 39 | 2d 32 35 35 29 0d 01 b8 |r4,#(319|-255)...|
|00000790| 17 20 20 63 6d 70 20 20 | 20 20 20 20 20 72 35 2c |. cmp | r5,|
|000007a0| 23 32 35 36 0d 01 c2 17 | 20 20 6d 6f 76 47 45 20 |#256....| movGE |
|000007b0| 20 20 20 20 72 35 2c 23 | 32 35 35 0d 01 cc 37 20 | r5,#|255...7 |
|000007c0| 20 73 75 62 53 20 20 20 | 20 20 20 72 31 34 2c 72 | subS | r14,r|
|000007d0| 35 2c 72 33 20 20 20 20 | 20 20 20 20 20 20 20 20 |5,r3 | |
|000007e0| 20 20 20 3b 20 72 31 34 | 3d 64 79 3d 79 32 2d 79 | ; r14|=dy=y2-y|
|000007f0| 31 2e 0d 01 d6 36 20 20 | 73 75 62 47 45 53 20 20 |1....6 |subGES |
|00000800| 20 20 72 35 2c 72 34 2c | 72 32 20 20 20 20 20 20 | r5,r4,|r2 |
|00000810| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 35 3d 64 | | ; r5=d|
|00000820| 78 3d 78 32 2d 78 31 2e | 0d 01 e0 3f 20 20 6c 64 |x=x2-x1.|...? ld|
|00000830| 6d 4d 49 66 64 20 20 20 | 72 31 33 21 2c 7b 72 30 |mMIfd |r13!,{r0|
|00000840| 2d 72 31 32 2c 70 63 7d | 20 20 20 20 20 20 20 20 |-r12,pc}| |
|00000850| 3b 20 51 75 69 74 20 69 | 66 20 64 79 3c 30 20 6f |; Quit i|f dy<0 o|
|00000860| 72 20 64 78 3c 30 2e 0d | 01 ea 32 20 20 61 64 64 |r dx<0..|..2 add|
|00000870| 20 20 20 20 20 20 20 72 | 33 2c 72 33 2c 72 33 2c | r|3,r3,r3,|
|00000880| 6c 73 6c 20 23 32 20 20 | 20 20 20 20 20 20 20 3b |lsl #2 | ;|
|00000890| 20 72 33 3d 79 31 2a 35 | 2e 0d 01 f4 3b 20 20 61 | r3=y1*5|....; a|
|000008a0| 64 64 20 20 20 20 20 20 | 20 72 30 2c 72 30 2c 72 |dd | r0,r0,r|
|000008b0| 33 2c 6c 73 6c 20 23 36 | 20 20 20 20 20 20 20 20 |3,lsl #6| |
|000008c0| 20 3b 20 72 30 3d 73 63 | 72 65 65 6e 2b 79 31 2a | ; r0=sc|reen+y1*|
|000008d0| 33 32 30 2e 0d 01 fe 3e | 20 20 61 64 64 20 20 20 |320....>| add |
|000008e0| 20 20 20 20 72 30 2c 72 | 30 2c 72 32 20 20 20 20 | r0,r|0,r2 |
|000008f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 72 30 | | ; r0|
|00000900| 3d 73 63 72 65 65 6e 2b | 79 31 2a 33 32 30 2b 78 |=screen+|y1*320+x|
|00000910| 31 2e 0d 02 08 32 20 20 | 6d 6f 76 20 20 20 20 20 |1....2 |mov |
|00000920| 20 20 72 33 2c 72 32 2c | 6c 73 72 20 23 32 20 20 | r3,r2,|lsr #2 |
|00000930| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 33 3d 78 | | ; r3=x|
|00000940| 31 2f 34 2e 0d 02 12 40 | 20 20 72 73 62 53 20 20 |1/4....@| rsbS |
|00000950| 20 20 20 20 72 33 2c 72 | 33 2c 72 34 2c 6c 73 72 | r3,r|3,r4,lsr|
|00000960| 20 23 32 20 20 20 20 20 | 20 20 20 20 3b 20 72 33 | #2 | ; r3|
|00000970| 3d 78 32 2f 34 2d 78 31 | 2f 34 3d 6e 62 5f 6c 6f |=x2/4-x1|/4=nb_lo|
|00000980| 6e 67 73 2e 0d 02 1c 50 | 20 20 61 64 72 20 20 20 |ngs....P| adr |
|00000990| 20 20 20 20 72 37 2c 5f | 73 6d 61 6c 6c 5f 61 64 | r7,_|small_ad|
|000009a0| 72 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 72 37 |r | ; r7|
|000009b0| 20 70 6f 69 6e 74 73 20 | 6f 6e 20 61 64 72 65 73 | points |on adres|
|000009c0| 73 65 73 20 66 6f 72 20 | 73 6d 61 6c 6c 20 62 6f |ses for |small bo|
|000009d0| 78 65 73 2e 0d 02 26 52 | 20 20 6c 64 72 45 51 20 |xes...&R| ldrEQ |
|000009e0| 20 20 20 20 70 63 2c 5b | 72 37 2c 72 35 2c 6c 73 | pc,[|r7,r5,ls|
|000009f0| 6c 20 23 32 5d 20 20 20 | 20 20 20 20 3b 20 6e 62 |l #2] | ; nb|
|00000a00| 5f 6c 6f 6e 67 73 3d 30 | 2c 20 74 68 65 6e 20 65 |_longs=0|, then e|
|00000a10| 78 65 63 75 74 65 20 73 | 6d 61 6c 6c 20 62 6f 78 |xecute s|mall box|
|00000a20| 20 72 6f 75 74 2e 0d 02 | 30 52 20 20 72 73 62 20 | rout...|0R rsb |
|00000a30| 20 20 20 20 20 20 72 35 | 2c 72 35 2c 23 32 35 35 | r5|,r5,#255|
|00000a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000a50| 72 35 3d 33 31 39 2d 64 | 78 3d 6e 62 20 6f 66 20 |r5=319-d|x=nb of |
|00000a60| 62 79 74 65 73 20 74 6f | 20 70 61 73 73 20 65 61 |bytes to| pass ea|
|00000a70| 63 68 20 6c 69 6e 65 2e | 0d 02 3a 20 20 20 61 64 |ch line.|..: ad|
|00000a80| 64 20 20 20 20 20 20 20 | 72 35 2c 72 35 2c 23 28 |d |r5,r5,#(|
|00000a90| 33 31 39 2d 32 35 35 29 | 0d 02 44 3d 20 20 61 64 |319-255)|..D= ad|
|00000aa0| 72 20 20 20 20 20 20 20 | 72 36 2c 5f 63 6f 64 65 |r |r6,_code|
|00000ab0| 2b 34 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |+4 | |
|00000ac0| 3b 20 47 65 6e 65 72 61 | 74 65 20 63 6f 64 65 20 |; Genera|te code |
|00000ad0| 68 65 72 65 2e 0d 02 4e | 3c 20 20 6c 64 6d 64 62 |here...N|< ldmdb|
|00000ae0| 20 20 20 20 20 72 37 21 | 2c 7b 72 38 2d 72 31 31 | r7!|,{r8-r11|
|00000af0| 7d 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 4c |} | ; L|
|00000b00| 6f 61 64 20 73 6f 6d 65 | 20 6f 70 63 6f 64 65 73 |oad some| opcodes|
|00000b10| 2e 0d 02 58 39 3b 20 48 | 65 72 65 20 77 65 20 62 |...X9; H|ere we b|
|00000b20| 65 67 69 6e 20 74 6f 20 | 63 61 72 65 20 61 62 6f |egin to |care abo|
|00000b30| 75 74 20 66 69 72 73 74 | 20 6c 6f 6e 67 77 6f 72 |ut first| longwor|
|00000b40| 64 20 66 69 6c 6c 69 6e | 67 2e 0d 02 62 37 20 20 |d fillin|g...b7 |
|00000b50| 61 6e 64 53 20 20 20 20 | 20 20 72 32 2c 72 32 2c |andS | r2,r2,|
|00000b60| 23 25 31 31 20 20 20 20 | 20 20 20 20 20 20 20 20 |#%11 | |
|00000b70| 20 20 3b 20 72 32 3d 78 | 31 20 6d 6f 64 28 33 29 | ; r2=x|1 mod(3)|
|00000b80| 2e 0d 02 6c 4d 20 20 62 | 45 51 20 20 20 20 20 20 |...lM b|EQ |
|00000b90| 20 5f 66 69 72 73 74 5f | 6c 6f 6e 67 5f 66 75 6c | _first_|long_ful|
|00000ba0| 6c 20 20 20 20 20 20 20 | 20 3b 20 49 66 20 78 31 |l | ; If x1|
|00000bb0| 20 6d 6f 64 28 33 29 3d | 30 2c 20 66 69 72 73 74 | mod(3)=|0, first|
|00000bc0| 20 6c 6f 6e 67 20 69 73 | 20 66 75 6c 6c 2e 0d 02 | long is| full...|
|00000bd0| 76 4c 20 20 73 75 62 4e | 45 20 20 20 20 20 72 33 |vL subN|E r3|
|00000be0| 2c 72 33 2c 23 31 20 20 | 20 20 20 20 20 20 20 20 |,r3,#1 | |
|00000bf0| 20 20 20 20 20 20 3b 20 | 45 6c 73 65 20 66 69 72 | ; |Else fir|
|00000c00| 73 74 20 6c 6f 6e 67 20 | 6d 75 73 74 6e 27 20 74 |st long |mustn' t|
|00000c10| 20 62 65 20 64 72 61 77 | 6e 2e 0d 02 80 3d 20 20 | be draw|n....= |
|00000c20| 74 73 74 20 20 20 20 20 | 20 20 72 32 2c 23 25 30 |tst | r2,#%0|
|00000c30| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1 | |
|00000c40| 20 20 3b 20 44 6f 77 6e | 20 62 69 74 20 6f 66 20 | ; Down| bit of |
|00000c50| 78 31 20 73 65 74 3f 0d | 02 8a 49 20 20 73 74 72 |x1 set?.|..I str|
|00000c60| 4e 45 20 20 20 20 20 72 | 38 2c 5b 72 36 5d 2c 23 |NE r|8,[r6],#|
|00000c70| 34 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |4 | ;|
|00000c80| 20 54 68 65 6e 20 77 65 | 20 68 61 76 65 20 61 6e | Then we| have an|
|00000c90| 20 6f 64 64 20 6e 62 20 | 6f 66 20 73 74 72 42 2e | odd nb |of strB.|
|00000ca0| 0d 02 94 46 20 20 74 73 | 74 20 20 20 20 20 20 20 |...F ts|t |
|00000cb0| 72 32 2c 72 32 2c 6c 73 | 6c 20 23 31 20 20 20 20 |r2,r2,ls|l #1 |
|00000cc0| 20 20 20 20 20 20 20 20 | 3b 20 62 69 74 31 20 61 | |; bit1 a|
|00000cd0| 6e 64 20 62 69 74 30 20 | 6f 66 20 78 31 20 63 6c |nd bit0 |of x1 cl|
|00000ce0| 65 61 72 65 64 3f 0d 02 | 9e 4b 20 20 73 74 72 45 |eared?..|.K strE|
|00000cf0| 51 20 20 20 20 20 72 38 | 2c 5b 72 36 5d 2c 23 34 |Q r8|,[r6],#4|
|00000d00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00000d10| 54 68 65 6e 20 78 31 20 | 6d 6f 64 28 33 29 3d 31 |Then x1 |mod(3)=1|
|00000d20| 20 6f 72 20 32 2c 20 73 | 6f 20 77 65 20 6d 75 73 | or 2, s|o we mus|
|00000d30| 74 0d 02 a8 43 20 20 73 | 74 72 45 51 20 20 20 20 |t...C s|trEQ |
|00000d40| 20 72 38 2c 5b 72 36 5d | 2c 23 34 20 20 20 20 20 | r8,[r6]|,#4 |
|00000d50| 20 20 20 20 20 20 20 20 | 20 3b 20 20 20 67 65 6e | | ; gen|
|00000d60| 65 72 61 74 65 20 74 77 | 6f 20 73 74 72 42 20 6d |erate tw|o strB m|
|00000d70| 6f 72 65 2e 0d 02 b2 15 | 2e 5f 66 69 72 73 74 5f |ore.....|._first_|
|00000d80| 6c 6f 6e 67 5f 66 75 6c | 6c 0d 02 bc 37 20 20 61 |long_ful|l...7 a|
|00000d90| 6e 64 20 20 20 20 20 20 | 20 72 34 2c 72 34 2c 23 |nd | r4,r4,#|
|00000da0| 25 31 31 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |%11 | |
|00000db0| 20 3b 20 72 34 3d 78 32 | 20 6d 6f 64 28 33 29 2e | ; r4=x2| mod(3).|
|00000dc0| 0d 02 c6 48 20 20 61 6e | 64 20 20 20 20 20 20 20 |...H an|d |
|00000dd0| 72 32 2c 72 34 2c 72 34 | 2c 6c 73 72 20 23 31 20 |r2,r4,r4|,lsr #1 |
|00000de0| 20 20 20 20 20 20 20 20 | 3b 20 72 32 3d 62 69 74 | |; r2=bit|
|00000df0| 31 20 61 6e 64 20 62 69 | 74 30 20 6f 66 20 78 32 |1 and bi|t0 of x2|
|00000e00| 20 6d 6f 64 28 33 29 2e | 0d 02 d0 4e 20 20 61 64 | mod(3).|...N ad|
|00000e10| 64 53 20 20 20 20 20 20 | 72 33 2c 72 33 2c 72 32 |dS |r3,r3,r2|
|00000e20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000e30| 3b 20 49 66 20 78 32 20 | 6d 6f 64 28 33 29 3d 25 |; If x2 |mod(3)=%|
|00000e40| 31 31 2c 20 6c 61 73 74 | 20 6c 6f 6e 67 20 69 73 |11, last| long is|
|00000e50| 20 66 75 6c 6c 2e 0d 02 | da 48 20 20 62 45 51 20 | full...|.H bEQ |
|00000e60| 20 20 20 20 20 20 5f 6c | 61 73 74 5f 6c 6f 6e 67 | _l|ast_long|
|00000e70| 77 6f 72 64 20 20 20 20 | 20 20 20 20 20 20 3b 20 |word | ; |
|00000e80| 49 66 20 6e 62 5f 6c 6f | 6e 67 73 3d 30 20 67 6f |If nb_lo|ngs=0 go|
|00000e90| 20 74 6f 20 6c 61 73 74 | 20 6c 6f 6e 67 2e 0d 02 | to last| long...|
|00000ea0| e4 13 2e 5f 6f 6e 65 5f | 73 74 6d 69 61 5f 6d 61 |..._one_|stmia_ma|
|00000eb0| 78 0d 02 ee 42 20 20 73 | 75 62 53 20 20 20 20 20 |x...B s|ubS |
|00000ec0| 20 72 33 2c 72 33 2c 23 | 31 33 20 20 20 20 20 20 | r3,r3,#|13 |
|00000ed0| 20 20 20 20 20 20 20 20 | 20 3b 20 4d 6f 72 65 20 | | ; More |
|00000ee0| 74 68 61 6e 20 31 33 20 | 6c 6f 6e 67 73 20 6c 65 |than 13 |longs le|
|00000ef0| 66 74 3f 0d 02 f8 47 20 | 20 73 74 72 47 45 20 20 |ft?...G | strGE |
|00000f00| 20 20 20 72 39 2c 5b 72 | 36 5d 2c 23 34 20 20 20 | r9,[r|6],#4 |
|00000f10| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 59 65 73 | | ; Yes|
|00000f20| 2c 20 74 68 65 6e 20 73 | 61 76 65 20 6f 6e 65 20 |, then s|ave one |
|00000f30| 73 74 6d 69 61 20 6d 61 | 78 2e 0d 03 02 40 20 20 |stmia ma|x....@ |
|00000f40| 62 47 54 20 20 20 20 20 | 20 20 5f 6f 6e 65 5f 73 |bGT | _one_s|
|00000f50| 74 6d 69 61 5f 6d 61 78 | 20 20 20 20 20 20 20 20 |tmia_max| |
|00000f60| 20 20 3b 20 72 33 3e 30 | 3f 20 54 68 65 6e 20 74 | ; r3>0|? Then t|
|00000f70| 65 73 74 20 61 67 61 69 | 6e 2e 0d 03 0c 4f 20 20 |est agai|n....O |
|00000f80| 6c 64 72 4d 49 20 20 20 | 20 20 72 39 2c 5b 72 37 |ldrMI | r9,[r7|
|00000f90| 2c 72 33 2c 6c 73 6c 20 | 23 32 5d 20 20 20 20 20 |,r3,lsl |#2] |
|00000fa0| 20 20 3b 20 49 66 20 72 | 33 3c 30 20 74 68 65 6e | ; If r|3<0 then|
|00000fb0| 20 6c 6f 61 64 20 6f 70 | 63 6f 64 65 20 6f 66 20 | load op|code of |
|00000fc0| 6c 61 73 74 20 6c 6f 6e | 67 0d 03 16 49 20 20 73 |last lon|g...I s|
|00000fd0| 74 72 4d 49 20 20 20 20 | 20 72 39 2c 5b 72 36 5d |trMI | r9,[r6]|
|00000fe0| 2c 23 34 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,#4 | |
|00000ff0| 20 3b 20 20 20 66 69 6c | 6c 20 69 6e 73 74 72 75 | ; fil|l instru|
|00001000| 63 74 69 6f 6e 20 61 6e | 64 20 73 61 76 65 20 69 |ction an|d save i|
|00001010| 74 2e 0d 03 20 13 2e 5f | 6c 61 73 74 5f 6c 6f 6e |t... .._|last_lon|
|00001020| 67 77 6f 72 64 0d 03 2a | 38 20 20 74 65 71 20 20 |gword..*|8 teq |
|00001030| 20 20 20 20 20 72 34 2c | 23 25 31 31 20 20 20 20 | r4,|#%11 |
|00001040| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 78 | | ; x|
|00001050| 32 20 6d 6f 64 28 33 29 | 3d 25 31 31 3f 0d 03 34 |2 mod(3)|=%11?..4|
|00001060| 41 20 20 62 45 51 20 20 | 20 20 20 20 20 5f 6c 61 |A bEQ | _la|
|00001070| 73 74 5f 6c 6f 6e 67 5f | 66 75 6c 6c 20 20 20 20 |st_long_|full |
|00001080| 20 20 20 20 20 3b 20 54 | 68 65 6e 20 6c 61 73 74 | ; T|hen last|
|00001090| 20 6c 6f 6e 67 20 69 73 | 20 66 75 6c 6c 2e 0d 03 | long is| full...|
|000010a0| 3e 39 20 20 74 73 74 20 | 20 20 20 20 20 20 72 34 |>9 tst | r4|
|000010b0| 2c 23 25 30 31 20 20 20 | 20 20 20 20 20 20 20 20 |,#%01 | |
|000010c0| 20 20 20 20 20 20 3b 20 | 44 6f 77 6e 20 62 69 74 | ; |Down bit|
|000010d0| 20 63 6c 65 61 72 3f 0d | 03 48 49 20 20 73 74 72 | clear?.|.HI str|
|000010e0| 45 51 20 20 20 20 20 72 | 38 2c 5b 72 36 5d 2c 23 |EQ r|8,[r6],#|
|000010f0| 34 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |4 | ;|
|00001100| 20 54 68 65 6e 20 77 65 | 20 68 61 76 65 20 61 6e | Then we| have an|
|00001110| 20 6f 64 64 20 6e 62 20 | 6f 66 20 73 74 72 42 2e | odd nb |of strB.|
|00001120| 0d 03 52 3b 20 20 74 65 | 71 20 20 20 20 20 20 20 |..R; te|q |
|00001130| 72 34 2c 72 34 2c 6c 73 | 6c 20 23 31 20 20 20 20 |r4,r4,ls|l #1 |
|00001140| 20 20 20 20 20 20 20 20 | 3b 20 62 69 74 31 20 65 | |; bit1 e|
|00001150| 6f 72 20 62 69 74 30 3c | 3e 30 3f 0d 03 5c 4b 20 |or bit0<|>0?..\K |
|00001160| 20 73 74 72 4e 45 20 20 | 20 20 20 72 38 2c 5b 72 | strNE | r8,[r|
|00001170| 36 5d 2c 23 34 20 20 20 | 20 20 20 20 20 20 20 20 |6],#4 | |
|00001180| 20 20 20 3b 20 54 68 65 | 6e 20 78 32 20 6d 6f 64 | ; The|n x2 mod|
|00001190| 28 33 29 3d 31 20 6f 72 | 20 32 2c 20 74 68 65 6e |(3)=1 or| 2, then|
|000011a0| 20 74 68 65 72 65 0d 03 | 66 3e 20 20 73 74 72 4e | there..|f> strN|
|000011b0| 45 20 20 20 20 20 72 38 | 2c 5b 72 36 5d 2c 23 34 |E r8|,[r6],#4|
|000011c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|000011d0| 20 20 61 72 65 20 74 77 | 6f 20 73 74 72 42 20 6d | are tw|o strB m|
|000011e0| 6f 72 65 2e 0d 03 70 14 | 2e 5f 6c 61 73 74 5f 6c |ore...p.|._last_l|
|000011f0| 6f 6e 67 5f 66 75 6c 6c | 0d 03 7a 46 20 20 6c 64 |ong_full|..zF ld|
|00001200| 72 20 20 20 20 20 20 20 | 72 38 2c 5b 72 36 2c 23 |r |r8,[r6,#|
|00001210| 2d 34 5d 21 20 20 20 20 | 20 20 20 20 20 20 20 20 |-4]! | |
|00001220| 3b 20 4c 6f 61 64 20 6c | 61 73 74 20 73 61 76 65 |; Load l|ast save|
|00001230| 64 20 69 6e 73 74 72 75 | 63 74 69 6f 6e 2e 0d 03 |d instru|ction...|
|00001240| 84 3e 20 20 74 73 74 20 | 20 20 20 20 20 20 72 38 |.> tst | r8|
|00001250| 2c 23 31 3c 3c 32 36 20 | 20 20 20 20 20 20 20 20 |,#1<<26 | |
|00001260| 20 20 20 20 20 20 3b 20 | 49 73 20 69 74 20 61 20 | ; |Is it a |
|00001270| 73 74 72 20 6f 72 20 73 | 74 72 42 3f 0d 03 8e 46 |str or s|trB?...F|
|00001280| 20 20 62 45 51 20 20 20 | 20 20 20 20 5f 67 65 6e | bEQ | _gen|
|00001290| 65 72 61 74 65 5f 61 64 | 64 20 20 20 20 20 20 20 |erate_ad|d |
|000012a0| 20 20 20 20 3b 20 4e 6f | 2c 20 74 68 65 6e 20 77 | ; No|, then w|
|000012b0| 65 27 20 6c 6c 20 6e 65 | 65 64 20 61 6e 20 61 64 |e' ll ne|ed an ad|
|000012c0| 64 2e 0d 03 98 4c 20 20 | 61 64 64 20 20 20 20 20 |d....L |add |
|000012d0| 20 20 72 38 2c 72 38 2c | 72 35 20 20 20 20 20 20 | r8,r8,|r5 |
|000012e0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 59 65 73 2c | | ; Yes,|
|000012f0| 20 74 68 65 6e 20 61 64 | 64 20 74 6f 20 33 31 39 | then ad|d to 319|
|00001300| 2d 64 78 20 74 6f 20 6f | 66 66 73 65 74 2e 0d 03 |-dx to o|ffset...|
|00001310| a2 16 2e 5f 67 65 6e 65 | 72 61 74 65 5f 65 6e 64 |..._gene|rate_end|
|00001320| 63 6f 64 65 0d 03 ac 53 | 20 20 61 64 72 20 20 20 |code...S| adr |
|00001330| 20 20 20 20 72 39 2c 5f | 63 6f 64 65 2d 33 2a 34 | r9,_|code-3*4|
|00001340| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 42 65 | | ; Be|
|00001350| 77 61 72 65 20 74 68 65 | 20 70 69 70 65 6c 69 6e |ware the| pipelin|
|00001360| 65 20 61 6e 64 20 6c 61 | 73 74 20 69 6e 73 74 72 |e and la|st instr|
|00001370| 75 63 74 69 6f 6e 2e 0d | 03 b6 40 20 20 73 75 62 |uction..|..@ sub|
|00001380| 20 20 20 20 20 20 20 72 | 39 2c 72 39 2c 72 36 20 | r|9,r9,r6 |
|00001390| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000013a0| 20 72 39 3d 6f 66 66 73 | 65 74 20 66 6f 72 20 74 | r9=offs|et for t|
|000013b0| 68 65 20 62 47 45 2e 0d | 03 c0 48 20 20 6d 6f 76 |he bGE..|..H mov|
|000013c0| 20 20 20 20 20 20 20 72 | 39 2c 72 39 2c 61 73 72 | r|9,r9,asr|
|000013d0| 20 23 32 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | #2 | ;|
|000013e0| 20 72 39 3d 6f 66 66 73 | 65 74 2f 34 2e 20 28 68 | r9=offs|et/4. (h|
|000013f0| 69 67 68 65 72 20 62 79 | 74 65 3d 26 66 66 29 0d |igher by|te=&ff).|
|00001400| 03 ca 44 20 20 65 6f 72 | 20 20 20 20 20 20 20 72 |..D eor| r|
|00001410| 39 2c 72 39 2c 23 26 35 | 35 3c 3c 32 34 20 20 20 |9,r9,#&5|5<<24 |
|00001420| 20 20 20 20 20 20 20 3b | 20 72 39 3d 26 41 41 78 | ;| r9=&AAx|
|00001430| 78 78 78 78 78 3d 27 62 | 47 45 20 6f 66 66 73 65 |xxxxx='b|GE offse|
|00001440| 74 27 2e 0d 03 d4 46 20 | 20 73 74 6d 69 61 20 20 |t'....F | stmia |
|00001450| 20 20 20 72 36 21 2c 7b | 72 38 2d 72 31 31 2c 72 | r6!,{|r8-r11,r|
|00001460| 31 33 7d 20 20 20 20 20 | 20 20 20 3b 20 53 61 76 |13} | ; Sav|
|00001470| 65 20 69 6e 73 74 72 75 | 63 74 69 6f 6e 73 20 61 |e instru|ctions a|
|00001480| 6e 64 20 73 74 61 63 6b | 2e 0d 03 de 49 20 20 6d |nd stack|....I m|
|00001490| 6f 76 20 20 20 20 20 20 | 20 72 32 2c 72 31 20 20 |ov | r2,r1 |
|000014a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000014b0| 20 3b 20 50 75 74 20 70 | 61 74 74 65 72 6e 20 69 | ; Put p|attern i|
|000014c0| 6e 20 6f 74 68 65 72 20 | 6c 6f 6e 67 77 6f 72 64 |n other |longword|
|000014d0| 73 2e 0d 03 e8 15 20 20 | 6d 6f 76 20 20 20 20 20 |s..... |mov |
|000014e0| 20 20 72 33 2c 72 31 0d | 03 f2 15 20 20 6d 6f 76 | r3,r1.|... mov|
|000014f0| 20 20 20 20 20 20 20 72 | 34 2c 72 31 0d 03 fc 15 | r|4,r1....|
|00001500| 20 20 6d 6f 76 20 20 20 | 20 20 20 20 72 35 2c 72 | mov | r5,r|
|00001510| 31 0d 04 06 15 20 20 6d | 6f 76 20 20 20 20 20 20 |1.... m|ov |
|00001520| 20 72 36 2c 72 31 0d 04 | 10 15 20 20 6d 6f 76 20 | r6,r1..|.. mov |
|00001530| 20 20 20 20 20 20 72 37 | 2c 72 31 0d 04 1a 15 20 | r7|,r1.... |
|00001540| 20 6d 6f 76 20 20 20 20 | 20 20 20 72 38 2c 72 31 | mov | r8,r1|
|00001550| 0d 04 24 15 20 20 6d 6f | 76 20 20 20 20 20 20 20 |..$. mo|v |
|00001560| 72 39 2c 72 31 0d 04 2e | 16 20 20 6d 6f 76 20 20 |r9,r1...|. mov |
|00001570| 20 20 20 20 20 72 31 30 | 2c 72 31 0d 04 38 16 20 | r10|,r1..8. |
|00001580| 20 6d 6f 76 20 20 20 20 | 20 20 20 72 31 31 2c 72 | mov | r11,r|
|00001590| 31 0d 04 42 16 20 20 6d | 6f 76 20 20 20 20 20 20 |1..B. m|ov |
|000015a0| 20 72 31 32 2c 72 31 0d | 04 4c 16 20 20 6d 6f 76 | r12,r1.|.L. mov|
|000015b0| 20 20 20 20 20 20 20 72 | 31 33 2c 72 31 0d 04 56 | r|13,r1..V|
|000015c0| 0a 2e 5f 63 6f 64 65 0d | 04 60 41 20 20 73 75 62 |.._code.|.`A sub|
|000015d0| 53 20 20 20 20 20 20 72 | 31 34 2c 72 31 34 2c 23 |S r|14,r14,#|
|000015e0| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |1 | ;|
|000015f0| 20 4f 6e 65 20 6c 69 6e | 65 20 77 69 6c 6c 20 62 | One lin|e will b|
|00001600| 65 20 64 72 61 77 6e 2e | 0d 04 6a 43 20 20 64 63 |e drawn.|..jC dc|
|00001610| 64 20 30 3a 64 63 64 20 | 30 3a 64 63 64 20 30 20 |d 0:dcd |0:dcd 0 |
|00001620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001630| 3b 20 53 70 61 63 65 20 | 66 6f 72 20 63 6f 64 65 |; Space |for code|
|00001640| 20 61 6e 64 20 73 74 61 | 63 6b 2e 0d 04 74 29 20 | and sta|ck...t) |
|00001650| 20 64 63 64 20 30 3a 64 | 63 64 20 30 3a 64 63 64 | dcd 0:d|cd 0:dcd|
|00001660| 20 30 3a 64 63 64 20 30 | 3a 64 63 64 20 30 3a 64 | 0:dcd 0|:dcd 0:d|
|00001670| 63 64 20 30 0d 04 7e 17 | 20 20 64 63 64 20 30 3a |cd 0..~.| dcd 0:|
|00001680| 64 63 64 20 30 3a 64 63 | 64 20 30 0d 04 88 1d 20 |dcd 0:dc|d 0.... |
|00001690| 20 64 63 64 20 30 3a 64 | 63 64 20 30 3a 64 63 64 | dcd 0:d|cd 0:dcd|
|000016a0| 20 30 3a 64 63 64 20 30 | 0d 04 92 06 20 20 0d 04 | 0:dcd 0|.... ..|
|000016b0| 9c 12 2e 5f 67 65 6e 65 | 72 61 74 65 5f 61 64 64 |..._gene|rate_add|
|000016c0| 0d 04 a6 39 20 20 63 6d | 70 20 20 20 20 20 20 20 |...9 cm|p |
|000016d0| 72 35 2c 23 30 20 20 20 | 20 20 20 20 20 20 20 20 |r5,#0 | |
|000016e0| 20 20 20 20 20 20 20 20 | 3b 20 4f 66 66 73 65 74 | |; Offset|
|000016f0| 20 69 73 20 6e 75 6c 6c | 3f 0d 04 b0 37 20 20 62 | is null|?...7 b|
|00001700| 45 51 20 20 20 20 20 20 | 20 5f 67 65 6e 65 72 61 |EQ | _genera|
|00001710| 74 65 5f 65 6e 64 63 6f | 64 65 20 20 20 20 20 20 |te_endco|de |
|00001720| 20 3b 20 54 68 65 6e 20 | 67 6f 20 6f 6e 2e 2e 2e | ; Then |go on...|
|00001730| 0d 04 ba 4b 20 20 61 64 | 64 20 20 20 20 20 20 20 |...K ad|d |
|00001740| 72 36 2c 72 36 2c 23 34 | 20 20 20 20 20 20 20 20 |r6,r6,#4| |
|00001750| 20 20 20 20 20 20 20 20 | 3b 20 44 6f 6e 27 20 74 | |; Don' t|
|00001760| 20 6d 6f 64 69 66 79 20 | 6c 6f 61 64 65 64 20 69 | modify |loaded i|
|00001770| 6e 73 74 72 75 63 74 69 | 6f 6e 2e 0d 04 c4 46 20 |nstructi|on....F |
|00001780| 20 6d 6f 76 20 20 20 20 | 20 20 20 72 38 2c 23 26 | mov | r8,#&|
|00001790| 65 32 3c 3c 32 34 20 20 | 20 20 20 20 20 20 20 20 |e2<<24 | |
|000017a0| 20 20 20 3b 20 72 38 3d | 6f 70 63 6f 64 65 20 6f | ; r8=|opcode o|
|000017b0| 66 20 27 61 64 64 20 72 | 30 2c 72 30 2c 23 30 27 |f 'add r|0,r0,#0'|
|000017c0| 2e 0d 04 ce 1d 20 20 61 | 64 64 20 20 20 20 20 20 |..... a|dd |
|000017d0| 20 72 38 2c 72 38 2c 23 | 26 38 3c 3c 32 30 0d 04 | r8,r8,#|&8<<20..|
|000017e0| d8 41 20 20 63 6d 70 20 | 20 20 20 20 20 20 72 35 |.A cmp | r5|
|000017f0| 2c 23 32 35 35 20 20 20 | 20 20 20 20 20 20 20 20 |,#255 | |
|00001800| 20 20 20 20 20 20 3b 20 | 4f 66 66 73 65 74 20 62 | ; |Offset b|
|00001810| 69 67 67 65 72 20 74 68 | 61 6e 20 32 35 35 3f 0d |igger th|an 255?.|
|00001820| 04 e2 4b 20 20 61 64 64 | 47 45 20 20 20 20 20 72 |..K add|GE r|
|00001830| 32 2c 72 38 2c 23 32 35 | 35 20 20 20 20 20 20 20 |2,r8,#25|5 |
|00001840| 20 20 20 20 20 20 20 3b | 20 54 68 65 6e 20 67 65 | ;| Then ge|
|00001850| 6e 65 72 61 74 65 20 61 | 6e 20 27 61 64 64 20 72 |nerate a|n 'add r|
|00001860| 30 2c 72 30 2c 23 32 35 | 35 27 0d 04 ec 1a 20 20 |0,r0,#25|5'.... |
|00001870| 73 74 72 47 45 20 20 20 | 20 20 72 32 2c 5b 72 36 |strGE | r2,[r6|
|00001880| 5d 2c 23 34 0d 04 f6 48 | 20 20 73 75 62 47 45 20 |],#4...H| subGE |
|00001890| 20 20 20 20 72 35 2c 72 | 35 2c 23 32 35 35 20 20 | r5,r|5,#255 |
|000018a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 20 20 | | ; |
|000018b0| 61 6e 64 20 73 75 62 73 | 74 72 61 63 74 20 32 35 |and subs|tract 25|
|000018c0| 35 20 74 6f 20 6f 66 66 | 73 65 74 2e 0d 05 00 41 |5 to off|set....A|
|000018d0| 20 20 61 64 64 20 20 20 | 20 20 20 20 72 38 2c 72 | add | r8,r|
|000018e0| 38 2c 72 35 20 20 20 20 | 20 20 20 20 20 20 20 20 |8,r5 | |
|000018f0| 20 20 20 20 3b 20 72 38 | 3d 27 61 64 64 20 72 30 | ; r8|='add r0|
|00001900| 2c 72 30 2c 23 6f 66 66 | 73 65 74 27 2e 0d 05 0a |,r0,#off|set'....|
|00001910| 21 20 20 62 20 20 20 20 | 20 20 20 20 20 5f 67 65 |! b | _ge|
|00001920| 6e 65 72 61 74 65 5f 65 | 6e 64 63 6f 64 65 0d 05 |nerate_e|ndcode..|
|00001930| 14 04 0d 05 1e 4a 20 20 | 73 74 72 20 20 20 20 20 |.....J |str |
|00001940| 20 20 72 31 2c 5b 72 30 | 5d 2c 23 34 20 20 20 20 | r1,[r0|],#4 |
|00001950| 20 20 20 20 20 20 20 20 | 20 20 3b 20 4f 70 63 6f | | ; Opco|
|00001960| 64 65 73 20 66 6f 72 20 | 6c 61 73 74 73 20 6c 6f |des for |lasts lo|
|00001970| 6e 67 73 20 66 69 6c 6c | 69 6e 67 2e 0d 05 28 1b |ngs fill|ing...(.|
|00001980| 20 20 73 74 6d 69 61 20 | 20 20 20 20 72 30 21 2c | stmia | r0!,|
|00001990| 7b 72 31 2d 72 32 7d 0d | 05 32 1b 20 20 73 74 6d |{r1-r2}.|.2. stm|
|000019a0| 69 61 20 20 20 20 20 72 | 30 21 2c 7b 72 31 2d 72 |ia r|0!,{r1-r|
|000019b0| 33 7d 0d 05 3c 1b 20 20 | 73 74 6d 69 61 20 20 20 |3}..<. |stmia |
|000019c0| 20 20 72 30 21 2c 7b 72 | 31 2d 72 34 7d 0d 05 46 | r0!,{r|1-r4}..F|
|000019d0| 1b 20 20 73 74 6d 69 61 | 20 20 20 20 20 72 30 21 |. stmia| r0!|
|000019e0| 2c 7b 72 31 2d 72 35 7d | 0d 05 50 1b 20 20 73 74 |,{r1-r5}|..P. st|
|000019f0| 6d 69 61 20 20 20 20 20 | 72 30 21 2c 7b 72 31 2d |mia |r0!,{r1-|
|00001a00| 72 36 7d 0d 05 5a 1b 20 | 20 73 74 6d 69 61 20 20 |r6}..Z. | stmia |
|00001a10| 20 20 20 72 30 21 2c 7b | 72 31 2d 72 37 7d 0d 05 | r0!,{|r1-r7}..|
|00001a20| 64 1b 20 20 73 74 6d 69 | 61 20 20 20 20 20 72 30 |d. stmi|a r0|
|00001a30| 21 2c 7b 72 31 2d 72 38 | 7d 0d 05 6e 1b 20 20 73 |!,{r1-r8|}..n. s|
|00001a40| 74 6d 69 61 20 20 20 20 | 20 72 30 21 2c 7b 72 31 |tmia | r0!,{r1|
|00001a50| 2d 72 39 7d 0d 05 78 1c | 20 20 73 74 6d 69 61 20 |-r9}..x.| stmia |
|00001a60| 20 20 20 20 72 30 21 2c | 7b 72 31 2d 72 31 30 7d | r0!,|{r1-r10}|
|00001a70| 0d 05 82 1c 20 20 73 74 | 6d 69 61 20 20 20 20 20 |.... st|mia |
|00001a80| 72 30 21 2c 7b 72 31 2d | 72 31 31 7d 0d 05 8c 1c |r0!,{r1-|r11}....|
|00001a90| 20 20 73 74 6d 69 61 20 | 20 20 20 20 72 30 21 2c | stmia | r0!,|
|00001aa0| 7b 72 31 2d 72 31 32 7d | 0d 05 96 0f 20 20 2e 5f |{r1-r12}|.... ._|
|00001ab0| 6f 70 63 6f 64 65 73 0d | 05 a0 43 20 20 73 74 72 |opcodes.|..C str|
|00001ac0| 42 20 20 20 20 20 20 72 | 31 2c 5b 72 30 5d 2c 23 |B r|1,[r0],#|
|00001ad0| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b |1 | ;|
|00001ae0| 20 42 79 74 65 20 66 69 | 6c 6c 69 6e 67 20 69 6e | Byte fi|lling in|
|00001af0| 73 74 72 75 63 74 69 6f | 6e 2e 0d 05 aa 46 20 20 |structio|n....F |
|00001b00| 73 74 6d 69 61 20 20 20 | 20 20 72 30 21 2c 7b 72 |stmia | r0!,{r|
|00001b10| 31 2d 72 31 33 7d 20 20 | 20 20 20 20 20 20 20 20 |1-r13} | |
|00001b20| 20 20 3b 20 4d 61 78 69 | 6d 75 6d 20 66 69 6c 6c | ; Maxi|mum fill|
|00001b30| 69 6e 67 20 69 6e 73 74 | 72 75 63 74 69 6f 6e 2e |ing inst|ruction.|
|00001b40| 0d 05 b4 4c 20 20 6c 64 | 72 20 20 20 20 20 20 20 |...L ld|r |
|00001b50| 72 31 33 2c 5b 70 63 2c | 23 30 5d 20 20 20 20 20 |r13,[pc,|#0] |
|00001b60| 20 20 20 20 20 20 20 20 | 3b 20 4c 6f 61 64 20 73 | |; Load s|
|00001b70| 74 61 63 6b 20 77 68 69 | 63 68 20 69 73 20 38 20 |tack whi|ch is 8 |
|00001b80| 62 79 74 65 73 20 61 66 | 74 65 72 2e 0d 05 be 33 |bytes af|ter....3|
|00001b90| 20 20 6c 64 6d 66 64 20 | 20 20 20 20 72 31 33 21 | ldmfd | r13!|
|00001ba0| 2c 7b 72 30 2d 72 31 32 | 2c 70 63 7d 20 20 20 20 |,{r0-r12|,pc} |
|00001bb0| 20 20 20 20 3b 20 41 6e | 64 20 71 75 69 74 2e 0d | ; An|d quit..|
|00001bc0| 05 c8 0f 2e 5f 73 6d 61 | 6c 6c 5f 61 64 72 0d 05 |...._sma|ll_adr..|
|00001bd0| d2 51 20 20 64 63 64 20 | 20 20 20 20 20 20 5f 73 |.Q dcd | _s|
|00001be0| 6d 61 6c 6c 31 20 20 20 | 20 20 20 20 20 20 20 20 |mall1 | |
|00001bf0| 20 20 20 20 20 20 3b 20 | 41 64 72 65 73 73 65 73 | ; |Adresses|
|00001c00| 20 66 6f 72 20 74 68 65 | 20 72 6f 75 74 69 6e 65 | for the| routine|
|00001c10| 73 20 63 6f 72 72 65 73 | 70 6f 6e 64 69 6e 67 0d |s corres|ponding.|
|00001c20| 05 dc 4c 20 20 64 63 64 | 20 20 20 20 20 20 20 5f |..L dcd| _|
|00001c30| 73 6d 61 6c 6c 32 20 20 | 20 20 20 20 20 20 20 20 |small2 | |
|00001c40| 20 20 20 20 20 20 20 3b | 20 20 20 74 6f 20 78 31 | ;| to x1|
|00001c50| 2d 78 32 20 62 65 69 6e | 67 20 69 6e 20 73 61 6d |-x2 bein|g in sam|
|00001c60| 65 20 6c 6f 6e 67 77 6f | 72 64 2e 0d 05 e6 17 20 |e longwo|rd..... |
|00001c70| 20 64 63 64 20 20 20 20 | 20 20 20 5f 73 6d 61 6c | dcd | _smal|
|00001c80| 6c 33 0d 05 f0 17 20 20 | 64 63 64 20 20 20 20 20 |l3.... |dcd |
|00001c90| 20 20 5f 73 6d 61 6c 6c | 34 0d 05 fa 04 0d 06 04 | _small|4.......|
|00001ca0| 2b 3b 20 48 65 72 65 20 | 61 72 65 20 74 68 65 20 |+; Here |are the |
|00001cb0| 72 6f 75 74 69 6e 65 20 | 66 6f 72 20 73 6d 61 6c |routine |for smal|
|00001cc0| 6c 20 62 6f 78 65 73 2e | 0d 06 0e 0c 2e 5f 73 6d |l boxes.|....._sm|
|00001cd0| 61 6c 6c 31 0d 06 18 1c | 20 20 73 74 72 42 20 20 |all1....| strB |
|00001ce0| 20 20 20 20 72 31 2c 5b | 72 30 5d 2c 23 33 32 30 | r1,[|r0],#320|
|00001cf0| 0d 06 22 1a 20 20 73 75 | 62 53 20 20 20 20 20 20 |..". su|bS |
|00001d00| 72 31 34 2c 72 31 34 2c | 23 31 0d 06 2c 17 20 20 |r14,r14,|#1..,. |
|00001d10| 62 47 45 20 20 20 20 20 | 20 20 5f 73 6d 61 6c 6c |bGE | _small|
|00001d20| 31 0d 06 36 20 20 20 6c | 64 6d 66 64 20 20 20 20 |1..6 l|dmfd |
|00001d30| 20 72 31 33 21 2c 7b 72 | 30 2d 72 31 32 2c 70 63 | r13!,{r|0-r12,pc|
|00001d40| 7d 0d 06 40 04 0d 06 4a | 0c 2e 5f 73 6d 61 6c 6c |}..@...J|.._small|
|00001d50| 32 0d 06 54 1a 20 20 73 | 74 72 42 20 20 20 20 20 |2..T. s|trB |
|00001d60| 20 72 31 2c 5b 72 30 5d | 2c 23 31 0d 06 5e 1c 20 | r1,[r0]|,#1..^. |
|00001d70| 20 73 74 72 42 20 20 20 | 20 20 20 72 31 2c 5b 72 | strB | r1,[r|
|00001d80| 30 5d 2c 23 33 31 39 0d | 06 68 1a 20 20 73 75 62 |0],#319.|.h. sub|
|00001d90| 53 20 20 20 20 20 20 72 | 31 34 2c 72 31 34 2c 23 |S r|14,r14,#|
|00001da0| 31 0d 06 72 17 20 20 62 | 47 45 20 20 20 20 20 20 |1..r. b|GE |
|00001db0| 20 5f 73 6d 61 6c 6c 32 | 0d 06 7c 20 20 20 6c 64 | _small2|..| ld|
|00001dc0| 6d 66 64 20 20 20 20 20 | 72 31 33 21 2c 7b 72 30 |mfd |r13!,{r0|
|00001dd0| 2d 72 31 32 2c 70 63 7d | 0d 06 86 04 0d 06 90 0c |-r12,pc}|........|
|00001de0| 2e 5f 73 6d 61 6c 6c 33 | 0d 06 9a 1a 20 20 73 74 |._small3|.... st|
|00001df0| 72 42 20 20 20 20 20 20 | 72 31 2c 5b 72 30 5d 2c |rB |r1,[r0],|
|00001e00| 23 31 0d 06 a4 1a 20 20 | 73 74 72 42 20 20 20 20 |#1.... |strB |
|00001e10| 20 20 72 31 2c 5b 72 30 | 5d 2c 23 31 0d 06 ae 1c | r1,[r0|],#1....|
|00001e20| 20 20 73 74 72 42 20 20 | 20 20 20 20 72 31 2c 5b | strB | r1,[|
|00001e30| 72 30 5d 2c 23 33 31 38 | 0d 06 b8 1a 20 20 73 75 |r0],#318|.... su|
|00001e40| 62 53 20 20 20 20 20 20 | 72 31 34 2c 72 31 34 2c |bS |r14,r14,|
|00001e50| 23 31 0d 06 c2 17 20 20 | 62 47 45 20 20 20 20 20 |#1.... |bGE |
|00001e60| 20 20 5f 73 6d 61 6c 6c | 33 0d 06 cc 20 20 20 6c | _small|3... l|
|00001e70| 64 6d 66 64 20 20 20 20 | 20 72 31 33 21 2c 7b 72 |dmfd | r13!,{r|
|00001e80| 30 2d 72 31 32 2c 70 63 | 7d 0d 06 d6 06 20 20 0d |0-r12,pc|}.... .|
|00001e90| 06 e0 0c 2e 5f 73 6d 61 | 6c 6c 34 0d 06 ea 1c 20 |...._sma|ll4.... |
|00001ea0| 20 73 74 72 20 20 20 20 | 20 20 20 72 31 2c 5b 72 | str | r1,[r|
|00001eb0| 30 5d 2c 23 33 32 30 0d | 06 f4 1a 20 20 73 75 62 |0],#320.|... sub|
|00001ec0| 53 20 20 20 20 20 20 72 | 31 34 2c 72 31 34 2c 23 |S r|14,r14,#|
|00001ed0| 31 0d 06 fe 17 20 20 62 | 47 45 20 20 20 20 20 20 |1.... b|GE |
|00001ee0| 20 5f 73 6d 61 6c 6c 34 | 0d 07 08 20 20 20 6c 64 | _small4|... ld|
|00001ef0| 6d 66 64 20 20 20 20 20 | 72 31 33 21 2c 7b 72 30 |mfd |r13!,{r0|
|00001f00| 2d 72 31 32 2c 70 63 7d | 0d 07 12 05 5d 0d 07 1c |-r12,pc}|....]...|
|00001f10| 06 ed 6f 0d 07 26 4f f4 | 3d 3d 3d 3d 20 42 41 53 |..o..&O.|==== BAS|
|00001f20| 49 43 20 43 4f 44 45 20 | 3d 3d 3d 3d 3d 3d 3d 3d |IC CODE |========|
|00001f30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001f60| 3d 3d 0d 07 30 0d eb 31 | 33 3a 87 3a c8 97 ee 0d |==..0..1|3:.:....|
|00001f70| 07 3a 37 de 76 20 38 3a | 21 76 3d 31 34 38 3a 76 |.:7.v 8:|!v=148:v|
|00001f80| 21 34 3d 2d 31 3a c8 99 | 22 4f 53 5f 52 65 61 64 |!4=-1:..|"OS_Read|
|00001f90| 56 64 75 56 61 72 69 61 | 62 6c 65 73 22 2c 76 2c |VduVaria|bles",v,|
|00001fa0| 76 3a 76 3d 21 76 0d 07 | 44 05 f5 0d 07 4e 0c 20 |v:v=!v..|D....N. |
|00001fb0| c8 96 3a c8 96 3a db 0d | 07 58 21 20 f1 22 50 72 |..:..:..|.X! ."Pr|
|00001fc0| 65 73 73 20 4d 6f 75 73 | 65 20 74 6f 20 62 65 67 |ess Mous|e to beg|
|00001fd0| 69 6e 20 74 65 73 74 22 | 0d 07 62 0c 20 c8 97 78 |in test"|..b. ..x|
|00001fe0| 2c 79 2c 7a 0d 07 6c 12 | 20 c8 93 20 c8 90 20 30 |,y,z..l.| .. .. 0|
|00001ff0| 2c 30 2c 78 2c 79 0d 07 | 76 09 fd 7a 3c 3e 30 0d |,0,x,y..|v..z<>0.|
|00002000| 07 80 1d f4 20 54 65 73 | 74 69 6e 67 20 52 65 63 |.... Tes|ting Rec|
|00002010| 74 61 6e 67 6c 65 20 46 | 69 6c 6c 2e 0d 07 8a 07 |tangle F|ill.....|
|00002020| d1 3d 30 0d 07 94 0d e3 | 69 3d 30 b8 32 30 34 37 |.=0.....|i=0.2047|
|00002030| 0d 07 9e 12 20 c8 93 20 | c8 90 20 30 2c 30 2c 78 |.... .. |.. 0,0,x|
|00002040| 2c 79 0d 07 a8 05 ed 0d | 07 b2 08 74 31 3d 91 0d |,y......|...t1=..|
|00002050| 07 bc 19 f4 20 54 45 73 | 74 69 6e 67 20 6d 79 20 |.... TEs|ting my |
|00002060| 52 6f 75 74 69 6e 65 2e | 0d 07 c6 07 d1 3d 30 0d |Routine.|.....=0.|
|00002070| 07 d0 08 41 25 3d 76 0d | 07 da 10 42 25 3d 26 31 |...A%=v.|...B%=&1|
|00002080| 31 31 31 31 31 31 31 0d | 07 e4 08 43 25 3d 30 0d |1111111.|...C%=0.|
|00002090| 07 ee 12 44 25 3d 28 31 | 30 32 33 2d 79 29 3e 3e |...D%=(1|023-y)>>|
|000020a0| 32 0d 07 f8 0b 45 25 3d | 78 3e 3e 32 0d 08 02 0a |2....E%=|x>>2....|
|000020b0| 46 25 3d 32 35 35 0d 08 | 0c 0d e3 69 3d 30 b8 32 |F%=255..|...i=0.2|
|000020c0| 30 34 37 0d 08 16 10 20 | d6 66 61 73 74 62 6f 78 |047.... |.fastbox|
|000020d0| 32 35 36 0d 08 20 05 ed | 0d 08 2a 08 74 32 3d 91 |256.. ..|..*.t2=.|
|000020e0| 0d 08 34 12 f4 20 54 68 | 65 20 72 65 73 75 6c 74 |..4.. Th|e result|
|000020f0| 73 2e 0d 08 3e 06 eb 30 | 0d 08 48 24 f1 22 54 6f |s...>..0|..H$."To|
|00002100| 20 64 72 61 77 20 32 30 | 34 38 20 73 75 63 68 20 | draw 20|48 such |
|00002110| 72 65 63 74 61 6e 67 6c | 65 73 3a 22 0d 08 52 33 |rectangl|es:"..R3|
|00002120| f1 22 20 20 42 61 73 69 | 63 20 52 45 43 54 41 4e |." Basi|c RECTAN|
|00002130| 47 4c 45 20 46 49 4c 4c | 20 74 61 6b 65 73 20 22 |GLE FILL| takes "|
|00002140| 3b 74 31 2f 31 30 30 3b | 22 20 73 65 63 2e 22 0d |;t1/100;|" sec.".|
|00002150| 08 5c 29 f1 22 20 20 4d | 79 20 72 6f 75 74 69 6e |.\)." M|y routin|
|00002160| 65 20 74 61 6b 65 73 20 | 22 3b 74 32 2f 31 30 30 |e takes |";t2/100|
|00002170| 3b 22 20 73 65 63 2e 22 | 0d 08 66 2d f1 22 20 20 |;" sec."|..f-." |
|00002180| 4d 79 20 72 6f 75 74 20 | 69 73 20 22 20 74 31 2f |My rout |is " t1/|
|00002190| 74 32 20 22 20 74 69 6d | 65 73 20 66 61 73 74 65 |t2 " tim|es faste|
|000021a0| 72 2e 2e 2e 22 0d 08 70 | 05 e0 0d ff |r..."..p|.... |
+--------+-------------------------+-------------------------+--------+--------+