home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / prog_disc / volume_8 / issue_01 / arm_progs < prev    next >
ArcFS Archive  |  1995-06-24  |  4.8 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: ArcFS Archive (archive/arcFS).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert ArcFS Archive (archive/arcFS) magic Supported
100% file RISC OS archive (ArcFS format) default
99% file data default
100% TrID Acorn ArcFS Archive default
100% dearkID deark: arcfs default
100% gt2 Kopftext: 'Archive' default (weak)
100% detectItEasy Archive: ArcFS default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 63 68 69 76 65 00 | 6c 00 00 00 54 03 00 00 |Archive.|l...T...|
|00000010| 28 00 00 00 64 00 00 00 | 00 00 00 00 00 00 00 00 |(...d...|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 82 4d 61 6e 64 65 6c 62 | 72 6f 74 00 11 07 00 00 |.Mandelb|rot.....|
|00000070| 43 fb ff ff 08 6c 42 3f | 03 00 9a 20 11 07 00 00 |C....lB?|... ....|
|00000080| 24 00 00 00 82 52 6f 6f | 74 00 00 00 00 00 00 00 |$....Roo|t.......|
|00000090| 92 08 00 00 43 fb ff ff | 72 3e ad 3f 03 00 9d 8a |....C...|r>.?....|
|000000a0| 92 08 00 00 59 07 00 00 | 00 00 00 00 00 00 00 00 |....Y...|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000260| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000270| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000280| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000290| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000002f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000300| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000350| 00 00 00 00 46 69 6c 65 | 44 61 74 61 82 4d 61 6e |....File|Data.Man|
|00000360| 64 65 6c 62 72 6f 74 00 | 11 07 00 00 43 fb ff ff |delbrot.|....C...|
|00000370| 08 6c 42 3f 03 00 9a 20 | 0d 00 0a 11 f4 20 3e 4d |.lB?... |..... >M|
|00000380| 61 6e 64 65 6c 62 72 6f | 74 0d 00 14 07 eb 31 33 |andelbro|t.....13|
|00000390| 0d 00 1e 0f de 20 63 6f | 64 65 20 34 30 39 36 0d |..... co|de 4096.|
|000003a0| 00 28 04 0d 00 32 0d f2 | 61 73 73 65 6d 62 6c 65 |.(...2..|assemble|
|000003b0| 0d 00 3c 04 0d 00 46 2f | 41 25 3d 28 2d 32 2e 35 |..<...F/|A%=(-2.5|
|000003c0| 29 2a 28 32 5e 61 63 63 | 25 29 20 20 20 20 3a f4 |)*(2^acc|%) :.|
|000003d0| 20 58 20 69 73 20 2d 32 | 2e 32 35 20 73 68 69 66 | X is -2|.25 shif|
|000003e0| 74 65 64 0d 00 50 2e 42 | 25 3d 28 2d 31 2e 35 29 |ted..P.B|%=(-1.5)|
|000003f0| 2a 28 32 5e 61 63 63 25 | 29 20 20 20 20 3a f4 20 |*(2^acc%|) :. |
|00000400| 59 20 69 73 20 2d 31 2e | 35 20 73 68 69 66 74 65 |Y is -1.|5 shifte|
|00000410| 64 0d 00 5a 25 73 69 7a | 65 3d 33 20 20 20 20 20 |d..Z%siz|e=3 |
|00000420| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 20 73 69 | | :. si|
|00000430| 7a 65 20 3d 20 33 0d 00 | 64 2d 43 25 3d 28 73 69 |ze = 3..|d-C%=(si|
|00000440| 7a 65 2f 32 35 36 29 2a | 28 32 5e 61 63 63 25 29 |ze/256)*|(2^acc%)|
|00000450| 3a f4 20 73 6f 20 63 61 | 6c 75 6c 61 74 65 20 73 |:. so ca|lulate s|
|00000460| 74 65 70 0d 00 6e 36 44 | 25 3d 31 32 37 20 20 20 |tep..n6D|%=127 |
|00000470| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3a f4 20 | | :. |
|00000480| 77 69 74 68 20 74 68 69 | 73 20 6d 61 6e 79 20 69 |with thi|s many i|
|00000490| 74 65 72 61 74 69 6f 6e | 73 0d 00 78 04 0d 00 82 |teration|s..x....|
|000004a0| 0a d6 20 63 6f 64 65 0d | 00 8c 05 e0 0d 00 96 05 |.. code.|........|
|000004b0| 3a 0d 00 a0 0e dd f2 61 | 73 73 65 6d 62 6c 65 0d |:......a|ssemble.|
|000004c0| 00 aa 2d 61 63 63 25 3d | 31 33 20 3a f4 20 6e 75 |..-acc%=|13 :. nu|
|000004d0| 6d 62 65 72 20 6f 66 20 | 70 6c 61 63 65 73 20 74 |mber of |places t|
|000004e0| 6f 20 73 68 69 66 74 20 | 6c 65 66 74 0d 00 b4 21 |o shift |left...!|
|000004f0| 78 3d 30 3a 79 3d 31 3a | 73 3d 32 3a 6e 78 3d 33 |x=0:y=1:|s=2:nx=3|
|00000500| 3a 6e 79 3d 34 3a 69 3d | 35 3a 6c 3d 36 0d 00 be |:ny=4:i=|5:l=6...|
|00000510| 28 70 78 3d 37 3a 70 79 | 3d 38 3a 6f 78 3d 39 3a |(px=7:py|=8:ox=9:|
|00000520| 6f 79 3d 31 30 3a 70 3d | 31 31 3a 71 3d 31 34 3a |oy=10:p=|11:q=14:|
|00000530| 6f 69 3d 31 33 0d 00 c8 | 04 0d 00 d2 18 73 63 72 |oi=13...|.....scr|
|00000540| 3d 31 32 3a 73 70 3d 31 | 33 3a 6c 69 6e 6b 3d 31 |=12:sp=1|3:link=1|
|00000550| 34 0d 00 dc 14 e3 20 70 | 61 73 73 3d 30 20 b8 20 |4..... p|ass=0 . |
|00000560| 32 20 88 20 32 0d 00 e6 | 0b 50 25 3d 63 6f 64 65 |2 . 2...|.P%=code|
|00000570| 0d 00 f0 0d 5b 4f 50 54 | 20 70 61 73 73 0d 00 fa |....[OPT| pass...|
|00000580| 14 2e 69 6e 70 75 74 20 | 20 45 51 55 44 20 31 34 |..input | EQUD 14|
|00000590| 39 0d 01 04 13 20 20 20 | 20 20 20 20 20 45 51 55 |9.... | EQU|
|000005a0| 44 20 2d 31 0d 01 0e 12 | 2e 6f 75 74 70 75 74 20 |D -1....|.output |
|000005b0| 45 51 55 44 20 30 0d 01 | 18 12 20 20 20 20 20 20 |EQUD 0..|.. |
|000005c0| 20 20 45 51 55 44 20 30 | 0d 01 22 04 0d 01 2c 0b | EQUD 0|.."...,.|
|000005d0| 2e 70 6c 6f 74 69 74 0d | 01 36 16 53 54 4d 46 44 |.plotit.|.6.STMFD|
|000005e0| 20 28 73 70 29 21 2c 7b | 6c 69 6e 6b 7d 0d 01 40 | (sp)!,{|link}..@|
|000005f0| 16 53 54 52 20 73 70 2c | 73 74 61 63 6b 68 6f 6c |.STR sp,|stackhol|
|00000600| 64 65 72 0d 01 4a 04 0d | 01 54 1f 4d 4f 56 20 6f |der..J..|.T.MOV o|
|00000610| 78 2c 52 30 20 3b 69 6e | 70 75 74 20 70 61 72 61 |x,R0 ;in|put para|
|00000620| 6d 65 74 65 72 73 0d 01 | 5e 0d 4d 4f 56 20 6f 79 |meters..|^.MOV oy|
|00000630| 2c 52 31 0d 01 68 0d 4d | 4f 56 20 6f 69 2c 52 33 |,R1..h.M|OV oi,R3|
|00000640| 0d 01 72 04 0d 01 7c 10 | 4d 4f 56 20 6c 2c 23 31 |..r...|.|MOV l,#1|
|00000650| 3c 3c 32 38 0d 01 86 04 | 0d 01 90 10 41 44 52 20 |<<28....|....ADR |
|00000660| 52 30 2c 69 6e 70 75 74 | 0d 01 9a 11 41 44 52 20 |R0,input|....ADR |
|00000670| 52 31 2c 6f 75 74 70 75 | 74 0d 01 a4 1d 53 57 49 |R1,outpu|t....SWI|
|00000680| 20 22 4f 53 5f 52 65 61 | 64 56 64 75 56 61 72 69 | "OS_Rea|dVduVari|
|00000690| 61 62 6c 65 73 22 0d 01 | ae 12 4c 44 52 20 73 63 |ables"..|..LDR sc|
|000006a0| 72 2c 6f 75 74 70 75 74 | 0d 01 b8 04 0d 01 c2 16 |r,output|........|
|000006b0| 41 44 44 20 73 63 72 2c | 73 63 72 2c 23 38 31 39 |ADD scr,|scr,#819|
|000006c0| 32 30 0d 01 cc 04 0d 01 | d6 0f 4d 4f 56 20 70 79 |20......|..MOV py|
|000006d0| 2c 23 32 35 36 0d 01 e0 | 04 0d 01 ea 0a 2e 79 6c |,#256...|......yl|
|000006e0| 6f 6f 70 0d 01 f4 04 0d | 01 fe 0f 4d 4f 56 20 70 |oop.....|...MOV p|
|000006f0| 78 2c 23 33 32 30 0d 02 | 08 1b 4d 55 4c 20 6e 79 |x,#320..|..MUL ny|
|00000700| 2c 73 2c 70 79 3a 41 44 | 44 20 79 2c 6f 79 2c 6e |,s,py:AD|D y,oy,n|
|00000710| 79 0d 02 12 04 0d 02 1c | 0a 2e 78 6c 6f 6f 70 0d |y.......|..xloop.|
|00000720| 02 26 04 0d 02 30 1b 4d | 55 4c 20 6e 78 2c 73 2c |.&...0.M|UL nx,s,|
|00000730| 70 78 3a 41 44 44 20 78 | 2c 6f 78 2c 6e 78 0d 02 |px:ADD x|,ox,nx..|
|00000740| 3a 04 0d 02 44 0c 4d 4f | 56 20 69 2c 6f 69 0d 02 |:...D.MO|V i,oi..|
|00000750| 4e 04 0d 02 58 15 4d 4f | 56 20 70 2c 23 30 3a 4d |N...X.MO|V p,#0:M|
|00000760| 4f 56 20 71 2c 23 30 0d | 02 62 04 0d 02 6c 0a 2e |OV q,#0.|.b...l..|
|00000770| 69 6c 6f 6f 70 0d 02 76 | 0e 4d 55 4c 20 6e 78 2c |iloop..v|.MUL nx,|
|00000780| 70 2c 70 0d 02 80 16 4d | 4f 56 20 6e 78 2c 6e 78 |p,p....M|OV nx,nx|
|00000790| 2c 41 53 52 23 61 63 63 | 25 0d 02 8a 0e 4d 55 4c |,ASR#acc|%....MUL|
|000007a0| 20 6e 79 2c 71 2c 71 0d | 02 94 19 53 55 42 20 6e | ny,q,q.|...SUB n|
|000007b0| 78 2c 6e 78 2c 6e 79 2c | 41 53 52 23 61 63 63 25 |x,nx,ny,|ASR#acc%|
|000007c0| 0d 02 9e 0f 41 44 44 20 | 6e 78 2c 6e 78 2c 78 0d |....ADD |nx,nx,x.|
|000007d0| 02 a8 3d 3b 20 73 3d 70 | 5e 32 2d 71 5e 32 2b 78 |..=; s=p|^2-q^2+x|
|000007e0| 20 20 61 6e 64 20 63 6f | 6d 70 65 6e 73 61 74 65 | and co|mpensate|
|000007f0| 20 66 6f 72 20 73 71 75 | 61 72 69 6e 67 20 61 20 | for squ|aring a |
|00000800| 73 68 69 66 74 65 64 20 | 6e 75 6d 2e 0d 02 b2 11 |shifted |num.....|
|00000810| 42 56 53 20 65 78 69 74 | 69 6c 6f 6f 70 0d 02 bc |BVS exit|iloop...|
|00000820| 04 0d 02 c6 0e 4d 55 4c | 20 6e 79 2c 70 2c 71 0d |.....MUL| ny,p,q.|
|00000830| 02 d0 1a 4d 4f 56 20 6e | 79 2c 6e 79 2c 41 53 52 |...MOV n|y,ny,ASR|
|00000840| 23 28 61 63 63 25 2d 31 | 29 0d 02 da 1b 41 44 44 |#(acc%-1|)....ADD|
|00000850| 20 71 2c 6e 79 2c 79 20 | 20 20 20 20 3b 71 3d 32 | q,ny,y | ;q=2|
|00000860| 70 71 2b 79 0d 02 e4 11 | 42 56 53 20 65 78 69 74 |pq+y....|BVS exit|
|00000870| 69 6c 6f 6f 70 0d 02 ee | 04 0d 02 f8 11 4d 4f 56 |iloop...|.....MOV|
|00000880| 20 70 2c 6e 78 20 3b 70 | 3d 73 0d 03 02 04 0d 03 | p,nx ;p|=s......|
|00000890| 0c 3d 4d 55 4c 20 6e 79 | 2c 70 2c 70 3a 4d 55 4c |.=MUL ny|,p,p:MUL|
|000008a0| 20 6e 78 2c 71 2c 71 3a | 41 44 44 20 6e 78 2c 6e | nx,q,q:|ADD nx,n|
|000008b0| 78 2c 6e 79 3a 43 4d 50 | 20 6e 78 2c 6c 3a 42 47 |x,ny:CMP| nx,l:BG|
|000008c0| 45 20 65 78 69 74 69 6c | 6f 6f 70 0d 03 16 18 3b |E exitil|oop....;|
|000008d0| 20 69 73 20 78 5e 32 2b | 79 5e 32 20 3e 20 72 5e | is x^2+|y^2 > r^|
|000008e0| 32 20 3f 0d 03 20 04 0d | 03 2a 0f 53 55 42 53 20 |2 ?.. ..|.*.SUBS |
|000008f0| 69 2c 69 2c 23 31 0d 03 | 34 3c 42 47 54 20 69 6c |i,i,#1..|4<BGT il|
|00000900| 6f 6f 70 20 20 20 20 20 | 20 20 20 20 3b 64 6f 20 |oop | ;do |
|00000910| 61 67 61 69 6e 20 75 6e | 6c 65 73 73 20 62 6c 61 |again un|less bla|
|00000920| 63 6b 20 6f 72 20 6f 75 | 74 20 6f 66 20 72 61 6e |ck or ou|t of ran|
|00000930| 67 65 0d 03 3e 0e 2e 65 | 78 69 74 69 6c 6f 6f 70 |ge..>..e|xitiloop|
|00000940| 0d 03 48 04 0d 03 52 26 | 53 54 52 42 20 69 2c 5b |..H...R&|STRB i,[|
|00000950| 73 63 72 5d 2c 23 2d 31 | 20 20 20 3b 70 6c 6f 74 |scr],#-1| ;plot|
|00000960| 20 74 68 65 20 70 69 78 | 65 6c 0d 03 5c 04 0d 03 | the pix|el..\...|
|00000970| 66 31 53 55 42 53 20 70 | 78 2c 70 78 2c 23 31 20 |f1SUBS p|x,px,#1 |
|00000980| 20 20 20 20 3b 68 61 76 | 65 20 77 65 20 66 69 6e | ;hav|e we fin|
|00000990| 69 73 68 65 64 20 74 68 | 65 20 72 6f 77 20 3f 0d |ished th|e row ?.|
|000009a0| 03 70 0d 42 47 54 20 78 | 6c 6f 6f 70 0d 03 7a 04 |.p.BGT x|loop..z.|
|000009b0| 0d 03 84 1c 53 57 49 20 | 22 4f 53 5f 52 65 61 64 |....SWI |"OS_Read|
|000009c0| 45 73 63 61 70 65 53 74 | 61 74 65 22 0d 03 8e 0e |EscapeSt|ate"....|
|000009d0| 42 43 53 20 66 69 6e 69 | 73 68 0d 03 98 04 0d 03 |BCS fini|sh......|
|000009e0| a2 35 53 55 42 53 20 70 | 79 2c 70 79 2c 23 31 20 |.5SUBS p|y,py,#1 |
|000009f0| 20 20 20 20 3b 68 61 76 | 65 20 77 65 20 66 69 6e | ;hav|e we fin|
|00000a00| 69 73 68 65 64 20 74 68 | 65 20 70 69 63 74 75 72 |ished th|e pictur|
|00000a10| 65 20 3f 0d 03 ac 0d 42 | 47 54 20 79 6c 6f 6f 70 |e ?....B|GT yloop|
|00000a20| 0d 03 b6 04 0d 03 c0 0b | 2e 66 69 6e 69 73 68 0d |........|.finish.|
|00000a30| 03 ca 16 4c 44 52 20 73 | 70 2c 73 74 61 63 6b 68 |...LDR s|p,stackh|
|00000a40| 6f 6c 64 65 72 0d 03 d4 | 14 4c 44 4d 46 44 20 28 |older...|.LDMFD (|
|00000a50| 73 70 29 21 2c 7b 50 43 | 7d 0d 03 de 04 0d 03 e8 |sp)!,{PC|}.......|
|00000a60| 17 2e 73 74 61 63 6b 68 | 6f 6c 64 65 72 20 45 51 |..stackh|older EQ|
|00000a70| 55 44 20 30 0d 03 f2 04 | 0d 03 fc 0a 5d ed 70 61 |UD 0....|....].pa|
|00000a80| 73 73 0d 04 06 05 e1 0d | ff 46 69 6c 65 44 61 74 |ss......|.FileDat|
|00000a90| 61 82 52 6f 6f 74 00 00 | 00 00 00 00 00 92 08 00 |a.Root..|........|
|00000aa0| 00 43 fb ff ff 72 3e ad | 3f 03 00 9d 8a 0d 00 0a |.C...r>.|?.......|
|00000ab0| 0b f4 20 3e 52 6f 6f 74 | 0d 00 1e 04 0d 00 28 0f |.. >Root|......(.|
|00000ac0| de 20 63 6f 64 65 20 31 | 30 32 34 0d 00 32 3e f1 |. code 1|024..2>.|
|00000ad0| 20 22 43 61 6c 63 75 6c | 61 74 65 73 20 74 68 65 | "Calcul|ates the|
|00000ae0| 20 72 6f 6f 74 20 6f 66 | 20 61 20 33 32 20 62 69 | root of| a 32 bi|
|00000af0| 74 20 6e 75 6d 62 65 72 | 20 69 6e 20 6d 61 63 68 |t number| in mach|
|00000b00| 69 6e 65 20 63 6f 64 65 | 22 0d 00 3c 04 0d 00 46 |ine code|"..<...F|
|00000b10| 0b 61 63 63 25 3d 31 39 | 0d 00 47 47 f4 20 74 68 |.acc%=19|..GG. th|
|00000b20| 69 73 20 6d 61 6e 79 20 | 62 69 74 73 20 66 6f 72 |is many |bits for|
|00000b30| 20 64 65 63 69 6d 61 6c | 20 70 61 72 74 20 28 6c | decimal| part (l|
|00000b40| 65 61 76 65 73 20 33 31 | 2d 61 63 63 25 20 66 6f |eaves 31|-acc% fo|
|00000b50| 72 20 69 6e 74 65 67 65 | 72 20 70 61 72 74 29 0d |r intege|r part).|
|00000b60| 00 50 04 0d 00 5a 04 0d | 00 64 14 e3 20 70 61 73 |.P...Z..|.d.. pas|
|00000b70| 73 3d 30 20 b8 20 32 20 | 88 20 32 0d 00 6e 04 0d |s=0 . 2 |. 2..n..|
|00000b80| 00 78 0b 6c 69 6e 6b 3d | 31 34 0d 00 82 09 73 70 |.x.link=|14....sp|
|00000b90| 3d 31 33 0d 00 8c 04 0d | 00 96 0a 73 74 65 70 3d |=13.....|...step=|
|00000ba0| 39 0d 00 a0 09 64 69 72 | 3d 38 0d 00 aa 0a 72 6f |9....dir|=8....ro|
|00000bb0| 6f 74 3d 37 0d 00 b4 25 | 63 6f 75 6e 74 3d 36 20 |ot=7...%|count=6 |
|00000bc0| 20 20 3a f4 20 69 6e 20 | 63 61 73 65 20 77 65 20 | :. in |case we |
|00000bd0| 67 65 74 20 73 74 75 63 | 6b 0d 00 be 0a 77 6f 72 |get stuc|k....wor|
|00000be0| 6b 3d 35 0d 00 c8 0a 74 | 65 6d 70 3d 34 0d 00 d2 |k=5....t|emp=4...|
|00000bf0| 04 0d 00 dc 09 76 61 6c | 3d 31 0d 00 e6 0b 70 6f |.....val|=1....po|
|00000c00| 77 65 72 3d 30 0d 00 f0 | 0b 50 25 3d 63 6f 64 65 |wer=0...|.P%=code|
|00000c10| 0d 00 fa 0d 5b 4f 50 54 | 20 70 61 73 73 0d 01 04 |....[OPT| pass...|
|00000c20| 0c 2e 67 65 74 72 6f 6f | 74 0d 01 0e 04 0d 01 18 |..getroo|t.......|
|00000c30| 1b 3b 63 61 6c 6c 69 6e | 67 20 70 61 72 61 6d 65 |.;callin|g parame|
|00000c40| 74 65 72 73 20 61 72 65 | 0d 01 22 04 0d 01 2c 04 |ters are|.."...,.|
|00000c50| 0d 01 36 4b 3b 72 31 20 | 2d 20 74 68 65 20 6e 75 |..6K;r1 |- the nu|
|00000c60| 6d 62 65 72 20 74 6f 20 | 77 6f 72 6b 20 6f 75 74 |mber to |work out|
|00000c70| 20 74 68 65 20 73 71 75 | 61 72 65 20 72 6f 6f 74 | the squ|are root|
|00000c80| 20 6f 66 20 28 70 6f 73 | 69 74 69 76 65 20 6f 6e | of (pos|itive on|
|00000c90| 6c 79 20 70 6c 65 61 73 | 65 21 29 0d 01 40 04 0d |ly pleas|e!)..@..|
|00000ca0| 01 4a 39 3b 6f 6e 20 65 | 78 69 74 20 72 30 20 69 |.J9;on e|xit r0 i|
|00000cb0| 73 20 74 68 65 20 73 71 | 75 61 72 65 20 72 6f 6f |s the sq|uare roo|
|00000cc0| 74 20 28 73 68 69 66 74 | 65 64 20 6c 65 66 74 20 |t (shift|ed left |
|00000cd0| 35 20 74 69 6d 65 73 29 | 0d 01 54 04 0d 01 5e 28 |5 times)|..T...^(|
|00000ce0| 4d 4f 56 20 20 20 20 20 | 20 64 69 72 2c 20 20 20 |MOV | dir, |
|00000cf0| 20 20 23 31 20 20 20 20 | 20 20 20 3b 67 6f 69 6e | #1 | ;goin|
|00000d00| 67 20 75 70 0d 01 68 3f | 4d 4f 56 20 20 20 20 20 |g up..h?|MOV |
|00000d10| 20 73 74 65 70 2c 20 20 | 20 20 23 31 30 32 34 20 | step, | #1024 |
|00000d20| 20 20 20 3b 69 6e 69 74 | 69 61 6c 20 73 74 65 70 | ;init|ial step|
|00000d30| 20 6f 66 20 68 61 6c 66 | 20 74 68 65 20 6e 75 6d | of half| the num|
|00000d40| 62 65 72 0d 01 72 18 4d | 4f 56 20 20 20 20 20 20 |ber..r.M|OV |
|00000d50| 72 6f 6f 74 2c 20 20 20 | 20 23 30 0d 01 7c 3b 4d |root, | #0..|;M|
|00000d60| 4f 56 20 20 20 20 20 20 | 63 6f 75 6e 74 2c 20 20 |OV |count, |
|00000d70| 20 23 31 30 30 30 20 20 | 20 20 3b 20 35 30 30 20 | #1000 | ; 500 |
|00000d80| 74 72 69 65 73 20 61 6e | 64 20 74 68 65 6e 20 67 |tries an|d then g|
|00000d90| 69 76 65 20 75 70 0d 01 | 86 04 0d 01 90 0d 2e 72 |ive up..|.......r|
|00000da0| 6f 6f 74 6c 6f 6f 70 0d | 01 9a 04 0d 01 a4 23 4d |ootloop.|......#M|
|00000db0| 55 4c 20 20 20 20 20 20 | 77 6f 72 6b 2c 20 20 20 |UL |work, |
|00000dc0| 20 64 69 72 2c 20 20 20 | 20 20 73 74 65 70 0d 01 | dir, | step..|
|00000dd0| ae 23 41 44 44 20 20 20 | 20 20 20 72 6f 6f 74 2c |.#ADD | root,|
|00000de0| 20 20 20 20 72 6f 6f 74 | 2c 20 20 20 20 77 6f 72 | root|, wor|
|00000df0| 6b 0d 01 b8 04 0d 01 ea | 48 4d 55 4c 20 20 20 20 |k.......|HMUL |
|00000e00| 20 20 77 6f 72 6b 2c 20 | 20 20 20 72 6f 6f 74 2c | work, | root,|
|00000e10| 20 20 20 20 72 6f 6f 74 | 20 20 20 20 20 3b 77 6f | root| ;wo|
|00000e20| 72 6b 20 6f 75 74 20 73 | 71 75 61 72 65 20 6f 66 |rk out s|quare of|
|00000e30| 20 67 75 65 73 73 65 64 | 20 72 6f 6f 74 0d 02 08 | guessed| root...|
|00000e40| 04 0d 02 12 32 43 4d 50 | 20 20 20 20 20 20 77 6f |....2CMP| wo|
|00000e50| 72 6b 2c 20 20 20 20 76 | 61 6c 20 20 20 20 20 20 |rk, v|al |
|00000e60| 3b 61 72 65 20 77 65 20 | 74 6f 6f 20 68 69 67 68 |;are we |too high|
|00000e70| 20 2e 2e 0d 02 1c 33 43 | 4d 50 47 45 20 20 20 20 | .....3C|MPGE |
|00000e80| 64 69 72 2c 20 20 20 20 | 20 23 30 20 20 20 20 20 |dir, | #0 |
|00000e90| 20 20 3b 80 20 69 73 20 | 64 69 72 20 3e 20 30 20 | ;. is |dir > 0 |
|00000ea0| 28 3d 31 29 20 3f 0d 02 | 26 3d 4d 56 4e 47 45 20 |(=1) ?..|&=MVNGE |
|00000eb0| 20 20 20 64 69 72 2c 20 | 20 20 20 20 23 30 20 20 | dir, | #0 |
|00000ec0| 20 20 20 20 20 3b 79 65 | 73 2c 20 73 65 74 20 64 | ;ye|s, set d|
|00000ed0| 69 72 20 74 6f 20 2d 31 | 20 28 2d 31 20 3d 20 ac |ir to -1| (-1 = .|
|00000ee0| 20 30 29 0d 02 30 3b 4d | 4f 56 47 45 20 20 20 20 | 0)..0;M|OVGE |
|00000ef0| 73 74 65 70 2c 20 20 20 | 20 73 74 65 70 2c 20 20 |step, | step, |
|00000f00| 20 20 41 53 52 23 31 20 | 20 20 20 3b 61 6e 64 20 | ASR#1 | ;and |
|00000f10| 68 61 6c 76 65 20 6f 75 | 72 20 73 74 65 70 0d 02 |halve ou|r step..|
|00000f20| 3a 04 0d 02 44 31 43 4d | 50 20 20 20 20 20 20 77 |:...D1CM|P w|
|00000f30| 6f 72 6b 2c 20 20 20 20 | 76 61 6c 20 20 20 20 20 |ork, |val |
|00000f40| 20 3b 61 72 65 20 77 65 | 20 74 6f 6f 20 6c 6f 77 | ;are we| too low|
|00000f50| 20 2e 2e 0d 02 4e 34 43 | 4d 50 4c 54 20 20 20 20 | ....N4C|MPLT |
|00000f60| 64 69 72 2c 20 20 20 20 | 20 23 30 20 20 20 20 20 |dir, | #0 |
|00000f70| 20 20 3b 80 20 69 73 20 | 64 69 72 20 3c 20 30 20 | ;. is |dir < 0 |
|00000f80| 28 3d 2d 31 29 20 3f 0d | 02 58 31 4d 4f 56 4c 54 |(=-1) ?.|.X1MOVLT|
|00000f90| 20 20 20 20 64 69 72 2c | 20 20 20 20 20 23 31 20 | dir,| #1 |
|00000fa0| 20 20 20 20 20 20 3b 79 | 65 73 2c 20 73 65 74 20 | ;y|es, set |
|00000fb0| 64 69 72 20 74 6f 20 31 | 0d 02 62 3b 4d 4f 56 4c |dir to 1|..b;MOVL|
|00000fc0| 54 20 20 20 20 73 74 65 | 70 2c 20 20 20 20 73 74 |T ste|p, st|
|00000fd0| 65 70 2c 20 20 20 20 41 | 53 52 23 31 20 20 20 20 |ep, A|SR#1 |
|00000fe0| 3b 61 6e 64 20 68 61 6c | 76 65 20 6f 75 72 20 73 |;and hal|ve our s|
|00000ff0| 74 65 70 0d 02 6c 04 0d | 02 76 21 53 55 42 53 20 |tep..l..|.v!SUBS |
|00001000| 20 20 20 20 63 6f 75 6e | 74 2c 20 20 20 63 6f 75 | coun|t, cou|
|00001010| 6e 74 2c 20 20 20 23 31 | 0d 02 80 04 0d 02 8a 2b |nt, #1|.......+|
|00001020| 43 4d 50 20 20 20 20 20 | 20 73 74 65 70 2c 20 20 |CMP | step, |
|00001030| 20 20 23 30 20 20 20 20 | 20 20 20 3b 69 73 20 73 | #0 | ;is s|
|00001040| 74 65 70 20 3e 20 30 0d | 02 94 33 43 4d 50 47 54 |tep > 0.|..3CMPGT|
|00001050| 20 20 20 20 63 6f 75 6e | 74 2c 20 20 20 23 30 20 | coun|t, #0 |
|00001060| 20 20 20 20 20 20 3b 20 | 61 6e 64 20 69 73 20 63 | ; |and is c|
|00001070| 6f 75 6e 74 20 3e 20 30 | 20 3f 0d 02 9e 34 42 47 |ount > 0| ?...4BG|
|00001080| 54 20 20 20 20 20 20 72 | 6f 6f 74 6c 6f 6f 70 20 |T r|ootloop |
|00001090| 20 20 20 20 20 20 20 20 | 20 3b 69 66 20 62 6f 74 | | ;if bot|
|000010a0| 68 20 74 68 65 6e 20 6c | 6f 6f 70 2e 2e 2e 0d 02 |h then l|oop.....|
|000010b0| a8 04 0d 02 b2 32 53 54 | 52 20 20 20 20 20 20 72 |.....2ST|R r|
|000010c0| 6f 6f 74 2c 20 20 20 20 | 72 65 73 75 6c 74 20 20 |oot, |result |
|000010d0| 20 3b 20 66 6f 72 20 42 | 41 53 49 43 20 74 65 73 | ; for B|ASIC tes|
|000010e0| 74 69 6e 67 0d 02 bc 04 | 0d 02 c6 31 4d 4f 56 20 |ting....|...1MOV |
|000010f0| 20 20 20 20 20 50 43 2c | 20 20 20 20 20 20 6c 69 | PC,| li|
|00001100| 6e 6b 20 20 20 20 20 3b | 74 65 72 6d 69 6e 61 74 |nk ;|terminat|
|00001110| 65 20 72 6f 75 74 69 6e | 65 0d 02 d0 04 0d 02 da |e routin|e.......|
|00001120| 17 2e 72 65 73 75 6c 74 | 20 20 45 51 55 44 20 20 |..result| EQUD |
|00001130| 20 20 20 30 0d 02 e4 04 | 0d 02 ee 40 3b 6e 6f 74 | 0....|...@;not|
|00001140| 65 20 74 68 65 20 75 73 | 65 20 6f 66 20 64 6f 75 |e the us|e of dou|
|00001150| 62 6c 65 20 43 4d 50 73 | 20 61 73 20 80 73 20 26 |ble CMPs| as .s &|
|00001160| 20 66 69 78 65 64 20 70 | 6f 69 6e 74 20 61 72 69 | fixed p|oint ari|
|00001170| 74 68 6d 61 74 69 63 2e | 0d 02 f8 04 0d 03 02 0a |thmatic.|........|
|00001180| 5d ed 70 61 73 73 0d 03 | 0c 04 0d 03 0d 25 f1 20 |].pass..|.....%. |
|00001190| 22 28 54 69 6d 65 64 20 | 75 73 69 6e 67 20 61 20 |"(Timed |using a |
|000011a0| 42 61 73 69 63 20 6c 6f | 6f 70 29 2e 2e 2e 22 0d |Basic lo|op)...".|
|000011b0| 03 16 14 f1 20 22 54 69 | 6d 65 20 74 61 6b 65 6e |.... "Ti|me taken|
|000011c0| 22 2c 3b 0d 03 20 04 0d | 03 2a 07 d1 3d 30 0d 03 |",;.. ..|.*..=0..|
|000011d0| 34 38 e3 20 5a 25 3d 31 | 20 b8 20 35 30 30 30 3a |48. Z%=1| . 5000:|
|000011e0| 6e 75 6d 3d b3 28 32 5e | 32 31 29 3a 41 25 3d 32 |num=.(2^|21):A%=2|
|000011f0| 3a 42 25 3d 6e 75 6d 3a | d6 20 67 65 74 72 6f 6f |:B%=num:|. getroo|
|00001200| 74 3a ed 20 5a 25 0d 03 | 3e 25 f1 20 a8 28 28 91 |t:. Z%..|>%. .((.|
|00001210| 2f 5a 25 29 2a 31 30 2a | 31 30 30 30 29 3b 22 b5 |/Z%)*10*|1000);".|
|00001220| 73 20 70 65 72 20 72 6f | 6f 74 22 0d 03 48 04 0d |s per ro|ot"..H..|
|00001230| 03 52 41 6e 75 6d 3d b3 | 28 32 5e 32 39 29 20 20 |.RAnum=.|(2^29) |
|00001240| 3a f4 20 77 65 27 72 65 | 20 75 73 69 6e 67 20 61 |:. we're| using a|
|00001250| 63 63 25 20 62 69 74 73 | 20 66 6f 72 20 74 68 65 |cc% bits| for the|
|00001260| 20 66 72 61 63 74 69 6f | 6e 61 6c 20 70 61 72 74 | fractio|nal part|
|00001270| 0d 03 5c 04 0d 03 66 17 | 41 25 3d 32 20 3a f4 20 |..\...f.|A%=2 :. |
|00001280| 73 71 75 61 72 65 20 72 | 6f 6f 74 0d 03 70 1b 42 |square r|oot..p.B|
|00001290| 25 3d 6e 75 6d 20 3a f4 | 20 76 61 6c 75 65 20 74 |%=num :.| value t|
|000012a0| 6f 20 72 6f 6f 74 0d 03 | 7a 04 0d 03 84 0d d6 20 |o root..|z...... |
|000012b0| 67 65 74 72 6f 6f 74 0d | 03 8e 04 0d 03 98 27 f1 |getroot.|......'.|
|000012c0| 20 22 4f 72 69 67 69 6e | 69 61 6c 20 6e 75 6d 62 | "Origin|ial numb|
|000012d0| 65 72 20 20 22 3b 6e 75 | 6d 2f 28 32 5e 61 63 63 |er ";nu|m/(2^acc|
|000012e0| 25 29 0d 03 a2 31 f1 20 | 22 4d 43 20 72 6f 6f 74 |%)...1. |"MC root|
|000012f0| 20 20 20 20 20 20 20 20 | 20 20 20 22 3b 28 21 72 | | ";(!r|
|00001300| 65 73 75 6c 74 29 2f 28 | 32 5e 28 61 63 63 25 2f |esult)/(|2^(acc%/|
|00001310| 32 29 29 0d 03 ac 2a f1 | 20 22 42 41 53 49 43 73 |2))...*.| "BASICs|
|00001320| 20 76 61 6c 75 65 20 20 | 20 20 20 20 22 3b b6 28 | value | ";.(|
|00001330| 6e 75 6d 2f 28 32 5e 61 | 63 63 25 29 29 0d ff |num/(2^a|cc%)).. |
+--------+-------------------------+-------------------------+--------+--------+