home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / demos / baah / Ray_SA / RayMode13 < prev    next >
Unknown  |  1997-02-15  |  7.5 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 0f c8 9b 22 53 | 65 74 4d 6f 64 65 22 0d |......"S|etMode".|
|00000010| 00 14 04 0d 00 1e 41 6e | 25 3d 31 32 20 20 20 20 |......An|%=12 |
|00000020| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000030| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 20 53 68 | | :. Sh|
|00000040| 69 66 74 20 66 6f 72 20 | 66 69 78 65 64 20 70 6f |ift for |fixed po|
|00000050| 69 6e 74 2e 0d 00 28 4f | f4 3d 3d 3d 3d 20 41 53 |int...(O|.==== AS|
|00000060| 4d 20 43 4f 44 45 20 3d | 3d 3d 3d 3d 3d 3d 3d 3d |M CODE =|========|
|00000070| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 0d 00 32 0f de | 63 6f 64 65 25 20 31 30 |===..2..|code% 10|
|000000b0| 32 34 0d 00 3c 1e e3 6f | 25 3d 30 b8 32 88 32 3a |24..<..o|%=0.2.2:|
|000000c0| 50 25 3d 63 6f 64 65 25 | 3a 5b 6f 70 74 20 6f 25 |P%=code%|:[opt o%|
|000000d0| 0d 00 46 51 3b 20 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..FQ; --|--------|
|000000e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000120| 2d 0d 00 50 51 3b 20 2d | 2d 2d 20 20 20 20 20 20 |-..PQ; -|-- |
|00000130| 20 20 20 20 20 20 20 20 | 20 20 20 52 6f 75 74 69 | | Routi|
|00000140| 6e 65 20 64 72 61 77 69 | 6e 67 20 61 20 72 61 79 |ne drawi|ng a ray|
|00000150| 74 72 61 63 65 64 20 73 | 70 68 65 72 65 2e 20 20 |traced s|phere. |
|00000160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2d | | -|
|00000170| 2d 2d 0d 00 5a 51 3b 20 | 2d 2d 2d 20 20 20 20 20 |--..ZQ; |--- |
|00000180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 41 6c 61 | | Ala|
|00000190| 69 6e 20 42 52 4f 42 45 | 43 4b 45 52 20 28 62 61 |in BROBE|CKER (ba|
|000001a0| 61 68 2f 41 72 6d 27 73 | 54 65 61 63 6b 29 20 20 |ah/Arm's|Teack) |
|000001b0| 20 20 20 20 20 20 20 20 | 20 4e 6f 76 20 39 35 20 | | Nov 95 |
|000001c0| 2d 2d 2d 0d 00 64 51 3b | 20 2d 2d 2d 2d 2d 2d 2d |---..dQ;| -------|
|000001d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000210| 2d 2d 2d 2d 0d 00 6e 33 | 3b 20 20 20 20 20 20 20 |----..n3|; |
|00000220| 20 20 20 20 72 30 3d 61 | 64 72 65 73 73 20 77 68 | r0=a|dress wh|
|00000230| 65 72 65 20 74 6f 20 67 | 65 6e 65 72 61 74 65 20 |ere to g|enerate |
|00000240| 73 70 68 65 72 65 2e 0d | 00 78 28 3b 20 20 20 20 |sphere..|.x(; |
|00000250| 20 20 20 20 20 20 20 72 | 31 3d 72 61 64 69 75 73 | r|1=radius|
|00000260| 20 6f 66 20 74 68 65 20 | 73 70 68 65 72 65 2e 0d | of the |sphere..|
|00000270| 00 82 33 3b 20 20 20 20 | 20 20 20 20 20 20 20 72 |..3; | r|
|00000280| 32 3d 61 64 72 65 73 73 | 20 6f 66 20 61 20 62 75 |2=adress| of a bu|
|00000290| 66 66 65 72 20 63 6f 6e | 74 61 69 6e 69 6e 67 2e |ffer con|taining.|
|000002a0| 2e 2e 0d 00 8c 26 3b 20 | 20 20 20 20 20 20 20 20 |.....&; | |
|000002b0| 20 20 20 20 20 20 20 20 | 20 31 20 6c 6f 6e 67 20 | | 1 long |
|000002c0| 2d 20 6c 79 3c 3c 6e 2e | 0d 00 96 26 3b 20 20 20 |- ly<<n.|...&; |
|000002d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 31 | | 1|
|000002e0| 20 6c 6f 6e 67 20 2d 20 | 6c 78 3c 3c 6e 2e 0d 00 | long - |lx<<n...|
|000002f0| a0 26 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.&; | |
|00000300| 20 20 20 20 20 31 20 6c | 6f 6e 67 20 2d 20 6c 7a | 1 l|ong - lz|
|00000310| 3c 3c 6e 2e 0d 00 aa 1e | 3b 20 20 20 20 20 20 20 |<<n.....|; |
|00000320| 20 20 20 20 48 65 72 65 | 20 77 65 20 70 6f 69 6e | Here| we poin|
|00000330| 74 2e 0d 00 b4 3f 3b 20 | 20 20 20 20 20 20 20 20 |t....?; | |
|00000340| 20 20 20 20 20 20 20 20 | 20 31 20 6c 6f 6e 67 20 | | 1 long |
|00000350| 2d 20 28 6e 62 5f 63 6f | 6c 73 2d 31 29 2a 6c 61 |- (nb_co|ls-1)*la|
|00000360| 6d 62 65 72 74 69 61 6e | 5f 63 6f 65 66 3c 3c 6e |mbertian|_coef<<n|
|00000370| 2e 0d 00 be 3d 3b 20 20 | 20 20 20 20 20 20 20 20 |....=; | |
|00000380| 20 20 20 20 20 20 20 20 | 31 20 6c 6f 6e 67 20 2d | |1 long -|
|00000390| 20 28 6e 62 5f 63 6f 6c | 73 2d 31 29 2a 73 70 65 | (nb_col|s-1)*spe|
|000003a0| 63 75 6c 61 72 5f 63 6f | 65 66 3c 3c 6e 2e 0d 00 |cular_co|ef<<n...|
|000003b0| c8 2b 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.+; | |
|000003c0| 20 20 20 20 20 31 20 6c | 6f 6e 67 20 2d 20 62 61 | 1 l|ong - ba|
|000003d0| 73 65 20 63 6f 6c 6f 72 | 2e 0d 00 d2 15 2e 72 61 |se color|......ra|
|000003e0| 79 74 72 61 63 65 64 5f | 73 70 68 65 72 65 0d 00 |ytraced_|sphere..|
|000003f0| dc 21 20 20 73 74 6d 66 | 64 20 20 20 20 20 72 31 |.! stmf|d r1|
|00000400| 33 21 2c 7b 72 30 2d 72 | 31 32 2c 72 31 34 7d 0d |3!,{r0-r|12,r14}.|
|00000410| 00 e6 1e 20 20 73 74 72 | 20 20 20 20 20 20 20 72 |... str| r|
|00000420| 31 33 2c 6f 6c 64 5f 73 | 74 65 61 63 6b 0d 00 f0 |13,old_s|teack...|
|00000430| 1d 20 20 6d 6f 76 20 20 | 20 20 20 20 20 72 31 34 |. mov | r14|
|00000440| 2c 72 31 2c 6c 73 6c 20 | 23 31 0d 00 fa 33 20 20 |,r1,lsl |#1...3 |
|00000450| 73 75 62 20 20 20 20 20 | 20 20 72 31 34 2c 72 31 |sub | r14,r1|
|00000460| 34 2c 23 31 20 20 20 20 | 20 20 20 20 20 20 20 20 |4,#1 | |
|00000470| 20 20 3b 20 72 31 34 3d | 32 72 2d 31 2e 0d 01 04 | ; r14=|2r-1....|
|00000480| 40 20 20 6d 75 6c 20 20 | 20 20 20 20 20 72 33 2c |@ mul | r3,|
|00000490| 72 31 34 2c 72 31 34 20 | 20 20 20 20 20 20 20 20 |r14,r14 | |
|000004a0| 20 20 20 20 20 3b 20 72 | 33 3d 28 32 72 2d 31 29 | ; r|3=(2r-1)|
|000004b0| 5e 32 3d 34 2a 64 69 73 | 74 6d 61 78 2e 0d 01 0e |^2=4*dis|tmax....|
|000004c0| 37 20 20 6d 6f 76 20 20 | 20 20 20 20 20 72 34 2c |7 mov | r4,|
|000004d0| 23 31 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#1 | |
|000004e0| 20 20 20 20 20 3b 20 72 | 34 3d 79 20 63 6f 75 6e | ; r|4=y coun|
|000004f0| 74 65 72 2e 0d 01 18 0e | 2e 72 73 5f 79 5f 6c 6f |ter.....|.rs_y_lo|
|00000500| 6f 70 0d 01 22 32 20 20 | 73 75 62 20 20 20 20 20 |op.."2 |sub |
|00000510| 20 20 72 31 34 2c 72 34 | 2c 72 31 20 20 20 20 20 | r14,r4|,r1 |
|00000520| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 31 34 3d | | ; r14=|
|00000530| 79 2d 72 2e 0d 01 2c 35 | 20 20 6d 75 6c 20 20 20 |y-r...,5| mul |
|00000540| 20 20 20 20 72 35 2c 72 | 31 34 2c 72 31 34 20 20 | r5,r|14,r14 |
|00000550| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 20 72 35 | | ; r5|
|00000560| 3d 28 79 2d 72 29 5e 32 | 2e 0d 01 36 37 20 20 6d |=(y-r)^2|...67 m|
|00000570| 6f 76 53 20 20 20 20 20 | 20 72 31 33 2c 72 31 34 |ovS | r13,r14|
|00000580| 2c 6c 73 6c 20 23 6e 25 | 20 20 20 20 20 20 20 20 |,lsl #n%| |
|00000590| 20 3b 20 72 31 33 3d 28 | 79 2d 72 29 3c 3c 6e 2e | ; r13=(|y-r)<<n.|
|000005a0| 0d 01 40 3a 20 20 72 73 | 62 4d 49 20 20 20 20 20 |..@: rs|bMI |
|000005b0| 72 31 33 2c 72 31 33 2c | 23 30 20 20 20 20 20 20 |r13,r13,|#0 |
|000005c0| 20 20 20 20 20 20 20 20 | 3b 20 72 31 33 3d 61 62 | |; r13=ab|
|000005d0| 73 28 79 2d 72 29 3c 3c | 6e 2e 0d 01 4a 47 20 20 |s(y-r)<<|n...JG |
|000005e0| a4 75 64 69 76 33 32 28 | 36 2c 31 33 2c 31 29 20 |.udiv32(|6,13,1) |
|000005f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000600| 20 3b 20 72 36 3d 28 61 | 62 73 28 79 2d 72 29 2f | ; r6=(a|bs(y-r)/|
|00000610| 72 29 3c 3c 6e 3d 61 62 | 73 28 6e 79 29 3c 3c 6e |r)<<n=ab|s(ny)<<n|
|00000620| 2e 0d 01 54 38 20 20 6d | 75 6c 20 20 20 20 20 20 |...T8 m|ul |
|00000630| 20 72 37 2c 72 36 2c 72 | 36 20 20 20 20 20 20 20 | r7,r6,r|6 |
|00000640| 20 20 20 20 20 20 20 20 | 20 3b 20 72 37 3d 28 6e | | ; r7=(n|
|00000650| 79 5e 32 29 3c 3c 32 6e | 2e 0d 01 5e 35 20 20 6c |y^2)<<2n|...^5 l|
|00000660| 64 72 20 20 20 20 20 20 | 20 72 31 33 2c 5b 72 32 |dr | r13,[r2|
|00000670| 2c 23 2d 31 32 5d 20 20 | 20 20 20 20 20 20 20 20 |,#-12] | |
|00000680| 20 3b 20 4c 6f 61 64 20 | 6c 79 3c 3c 6e 2e 0d 01 | ; Load |ly<<n...|
|00000690| 68 37 20 20 6d 75 6c 20 | 20 20 20 20 20 20 72 36 |h7 mul | r6|
|000006a0| 2c 72 31 33 2c 72 36 20 | 20 20 20 20 20 20 20 20 |,r13,r6 | |
|000006b0| 20 20 20 20 20 20 3b 20 | 72 36 3d 6e 79 2a 6c 79 | ; |r6=ny*ly|
|000006c0| 3c 3c 32 6e 2e 0d 01 72 | 3a 20 20 63 6d 70 20 20 |<<2n...r|: cmp |
|000006d0| 20 20 20 20 20 72 31 34 | 2c 23 30 20 20 20 20 20 | r14|,#0 |
|000006e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 79 | | ; y|
|000006f0| 2d 72 20 69 73 20 6e 65 | 67 61 74 69 76 65 3f 0d |-r is ne|gative?.|
|00000700| 01 7c 33 20 20 72 73 62 | 4d 49 20 20 20 20 20 72 |.|3 rsb|MI r|
|00000710| 36 2c 72 36 2c 23 30 20 | 20 20 20 20 20 20 20 20 |6,r6,#0 | |
|00000720| 20 20 20 20 20 20 20 3b | 20 72 36 3d 6e 79 3c 3c | ;| r6=ny<<|
|00000730| 6e 2e 0d 01 86 37 20 20 | 6d 6f 76 20 20 20 20 20 |n....7 |mov |
|00000740| 20 20 72 38 2c 23 31 20 | 20 20 20 20 20 20 20 20 | r8,#1 | |
|00000750| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 38 3d 78 | | ; r8=x|
|00000760| 5f 63 6f 75 6e 74 65 72 | 2e 0d 01 90 0e 2e 72 73 |_counter|......rs|
|00000770| 5f 78 5f 6c 6f 6f 70 0d | 01 9a 32 20 20 73 75 62 |_x_loop.|..2 sub|
|00000780| 20 20 20 20 20 20 20 72 | 31 34 2c 72 38 2c 72 31 | r|14,r8,r1|
|00000790| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|000007a0| 20 72 31 34 3d 78 2d 72 | 2e 0d 01 a4 43 20 20 6d | r14=x-r|....C m|
|000007b0| 6c 61 20 20 20 20 20 20 | 20 72 31 33 2c 72 31 34 |la | r13,r14|
|000007c0| 2c 72 31 34 2c 72 35 20 | 20 20 20 20 20 20 20 20 |,r14,r5 | |
|000007d0| 20 3b 20 72 31 33 3d 28 | 78 2d 72 29 5e 32 2b 28 | ; r13=(|x-r)^2+(|
|000007e0| 79 2d 72 29 5e 32 3d 64 | 69 73 74 2e 0d 01 ae 46 |y-r)^2=d|ist....F|
|000007f0| 20 20 63 6d 70 20 20 20 | 20 20 20 20 72 33 2c 72 | cmp | r3,r|
|00000800| 31 33 2c 6c 73 6c 20 23 | 32 20 20 20 20 20 20 20 |13,lsl #|2 |
|00000810| 20 20 20 20 3b 20 34 2a | 64 69 73 74 6d 61 78 20 | ; 4*|distmax |
|00000820| 6c 6f 77 65 72 20 74 68 | 61 6e 20 34 2a 64 69 73 |lower th|an 4*dis|
|00000830| 74 3f 0d 01 b8 46 20 20 | 62 4d 49 20 20 20 20 20 |t?...F |bMI |
|00000840| 20 20 72 73 5f 65 6e 64 | 5f 70 69 78 65 6c 20 20 | rs_end|_pixel |
|00000850| 20 20 20 20 20 20 20 20 | 20 20 3b 20 54 68 65 6e | | ; Then|
|00000860| 20 70 6f 69 6e 74 20 69 | 73 20 6f 75 74 20 6f 66 | point i|s out of|
|00000870| 20 73 70 68 65 72 65 2e | 0d 01 c2 37 20 20 6d 6f | sphere.|...7 mo|
|00000880| 76 53 20 20 20 20 20 20 | 72 31 33 2c 72 31 34 2c |vS |r13,r14,|
|00000890| 6c 73 6c 20 23 6e 25 20 | 20 20 20 20 20 20 20 20 |lsl #n% | |
|000008a0| 3b 20 72 31 33 3d 28 78 | 2d 72 29 3c 3c 6e 2e 0d |; r13=(x|-r)<<n..|
|000008b0| 01 cc 3a 20 20 72 73 62 | 4d 49 20 20 20 20 20 72 |..: rsb|MI r|
|000008c0| 31 33 2c 72 31 33 2c 23 | 30 20 20 20 20 20 20 20 |13,r13,#|0 |
|000008d0| 20 20 20 20 20 20 20 3b | 20 72 31 33 3d 61 62 73 | ;| r13=abs|
|000008e0| 28 78 2d 72 29 3c 3c 6e | 2e 0d 01 d6 47 20 20 a4 |(x-r)<<n|....G .|
|000008f0| 75 64 69 76 33 32 28 39 | 2c 31 33 2c 31 29 20 20 |udiv32(9|,13,1) |
|00000900| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000910| 3b 20 72 39 3d 28 61 62 | 73 28 78 2d 72 29 2f 72 |; r9=(ab|s(x-r)/r|
|00000920| 29 3c 3c 4e 3d 61 62 73 | 28 6e 78 29 3c 3c 6e 2e |)<<N=abs|(nx)<<n.|
|00000930| 0d 01 e0 3e 20 20 6d 6c | 61 20 20 20 20 20 20 20 |...> ml|a |
|00000940| 72 31 33 2c 72 39 2c 72 | 39 2c 72 37 20 20 20 20 |r13,r9,r|9,r7 |
|00000950| 20 20 20 20 20 20 20 20 | 3b 20 72 31 33 3d 28 6e | |; r13=(n|
|00000960| 78 5e 32 2b 6e 79 5e 32 | 29 3c 3c 32 6e 2e 0d 01 |x^2+ny^2|)<<2n...|
|00000970| ea 3a 20 20 63 6d 70 20 | 20 20 20 20 20 20 72 31 |.: cmp | r1|
|00000980| 34 2c 23 30 20 20 20 20 | 20 20 20 20 20 20 20 20 |4,#0 | |
|00000990| 20 20 20 20 20 20 3b 20 | 78 2d 72 20 69 73 20 6e | ; |x-r is n|
|000009a0| 65 67 61 74 69 76 65 3f | 0d 01 f4 33 20 20 72 73 |egative?|...3 rs|
|000009b0| 62 4d 49 20 20 20 20 20 | 72 39 2c 72 39 2c 23 30 |bMI |r9,r9,#0|
|000009c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000009d0| 3b 20 72 39 3d 6e 78 3c | 3c 6e 2e 0d 01 fe 40 20 |; r9=nx<|<n....@ |
|000009e0| 20 72 73 62 20 20 20 20 | 20 20 20 72 31 33 2c 72 | rsb | r13,r|
|000009f0| 31 33 2c 23 31 3c 3c 28 | 32 2a 6e 25 29 20 20 20 |13,#1<<(|2*n%) |
|00000a00| 20 20 20 3b 20 72 31 33 | 3d 28 31 2d 6e 78 5e 32 | ; r13|=(1-nx^2|
|00000a10| 2b 6e 79 5e 32 29 3c 3c | 32 6e 2e 0d 02 08 48 20 |+ny^2)<<|2n....H |
|00000a20| 20 a4 73 71 72 74 33 32 | 28 31 30 2c 31 33 2c 31 | .sqrt32|(10,13,1|
|00000a30| 34 29 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |4) | |
|00000a40| 20 20 3b 20 72 31 30 3d | 73 71 72 74 28 31 2d 6e | ; r10=|sqrt(1-n|
|00000a50| 78 5e 32 2b 6e 79 5e 32 | 29 3c 3c 4e 3d 6e 7a 3c |x^2+ny^2|)<<N=nz<|
|00000a60| 3c 6e 2e 0d 02 12 39 20 | 20 6c 64 6d 64 62 20 20 |<n....9 | ldmdb |
|00000a70| 20 20 20 72 32 2c 7b 72 | 31 31 2c 72 31 34 7d 20 | r2,{r|11,r14} |
|00000a80| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 4c 6f 61 | | ; Loa|
|00000a90| 64 20 6c 78 20 61 6e 64 | 20 6c 7a 2e 0d 02 1c 40 |d lx and| lz....@|
|00000aa0| 20 20 6d 6c 61 20 20 20 | 20 20 20 20 72 31 31 2c | mla | r11,|
|00000ab0| 72 39 2c 72 31 31 2c 72 | 36 20 20 20 20 20 20 20 |r9,r11,r|6 |
|00000ac0| 20 20 20 20 3b 20 72 31 | 31 3d 28 6e 78 2a 6c 78 | ; r1|1=(nx*lx|
|00000ad0| 2b 6e 79 2a 6c 79 29 3c | 3c 32 6e 2e 0d 02 26 46 |+ny*ly)<|<2n...&F|
|00000ae0| 20 20 6d 6c 61 20 20 20 | 20 20 20 20 72 31 31 2c | mla | r11,|
|00000af0| 72 31 34 2c 72 31 30 2c | 72 31 31 20 20 20 20 20 |r14,r10,|r11 |
|00000b00| 20 20 20 20 3b 20 72 31 | 31 3d 28 6e 78 2a 6c 78 | ; r1|1=(nx*lx|
|00000b10| 2b 6e 79 2a 6c 79 2b 6e | 7a 2a 6c 7a 29 3c 3c 32 |+ny*ly+n|z*lz)<<2|
|00000b20| 6e 2e 0d 02 30 3c 20 20 | 6d 6f 76 53 20 20 20 20 |n...0< |movS |
|00000b30| 20 20 72 31 31 2c 72 31 | 31 2c 61 73 72 20 23 6e | r11,r1|1,asr #n|
|00000b40| 25 20 20 20 20 20 20 20 | 20 20 3b 20 72 31 31 3d |% | ; r11=|
|00000b50| 63 6f 73 6c 61 6d 62 65 | 72 74 3c 3c 6e 2e 0d 02 |coslambe|rt<<n...|
|00000b60| 3a 50 20 20 6c 64 6d 69 | 61 20 20 20 20 20 72 32 |:P ldmi|a r2|
|00000b70| 2c 7b 72 39 2c 72 31 32 | 2c 72 31 33 7d 20 20 20 |,{r9,r12|,r13} |
|00000b80| 20 20 20 20 20 20 3b 20 | 4c 6f 61 64 20 63 6f 65 | ; |Load coe|
|00000b90| 66 6c 61 6d 62 65 72 74 | 2c 63 6f 65 66 73 70 65 |flambert|,coefspe|
|00000ba0| 63 2c 20 62 61 73 65 20 | 63 6f 6c 6f 72 2e 0d 02 |c, base |color...|
|00000bb0| 44 4b 20 20 62 4d 49 20 | 20 20 20 20 20 20 72 73 |DK bMI | rs|
|00000bc0| 5f 65 6e 64 5f 70 69 78 | 65 6c 2d 34 20 20 20 20 |_end_pix|el-4 |
|00000bd0| 20 20 20 20 20 20 3b 20 | 49 66 20 63 6f 73 6c 61 | ; |If cosla|
|00000be0| 6d 62 65 72 74 3c 30 20 | 64 6f 6e 27 20 74 20 63 |mbert<0 |don' t c|
|00000bf0| 61 6c 63 75 6c 61 74 65 | 2e 0d 02 4e 42 20 20 6d |alculate|...NB m|
|00000c00| 75 6c 20 20 20 20 20 20 | 20 72 31 30 2c 72 31 31 |ul | r10,r11|
|00000c10| 2c 72 31 30 20 20 20 20 | 20 20 20 20 20 20 20 20 |,r10 | |
|00000c20| 20 3b 20 72 31 30 3d 28 | 6e 7a 2a 63 6f 73 6c 61 | ; r10=(|nz*cosla|
|00000c30| 6d 62 65 72 74 29 3c 3c | 32 6e 2e 0d 02 58 46 20 |mbert)<<|2n...XF |
|00000c40| 20 72 73 62 53 20 20 20 | 20 20 20 72 31 30 2c 72 | rsbS | r10,r|
|00000c50| 31 34 2c 72 31 30 2c 61 | 73 72 20 23 28 6e 25 2d |14,r10,a|sr #(n%-|
|00000c60| 31 29 20 3b 20 72 31 30 | 3d 28 32 2a 6e 7a 2a 63 |1) ; r10|=(2*nz*c|
|00000c70| 6f 73 6c 61 6d 62 65 72 | 74 2d 6c 7a 29 3c 3c 6e |oslamber|t-lz)<<n|
|00000c80| 2e 0d 02 62 44 20 20 6d | 6f 76 4d 49 20 20 20 20 |...bD m|ovMI |
|00000c90| 20 72 31 30 2c 23 30 20 | 20 20 20 20 20 20 20 20 | r10,#0 | |
|00000ca0| 20 20 20 20 20 20 20 20 | 20 3b 20 49 66 20 63 6f | | ; If co|
|00000cb0| 73 73 70 65 63 3c 30 2c | 20 73 65 74 20 69 74 20 |sspec<0,| set it |
|00000cc0| 74 6f 20 30 2e 0d 02 6c | 3c 20 20 6d 75 6c 20 20 |to 0...l|< mul |
|00000cd0| 20 20 20 20 20 72 31 34 | 2c 72 31 30 2c 72 31 30 | r14|,r10,r10|
|00000ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3b 20 72 | | ; r|
|00000cf0| 31 34 3d 63 6f 73 73 70 | 65 63 5e 32 3c 3c 32 6e |14=cossp|ec^2<<2n|
|00000d00| 2e 0d 02 76 3b 20 20 6d | 6f 76 20 20 20 20 20 20 |...v; m|ov |
|00000d10| 20 72 31 34 2c 72 31 34 | 2c 61 73 72 20 23 6e 25 | r14,r14|,asr #n%|
|00000d20| 20 20 20 20 20 20 20 20 | 20 3b 20 72 31 34 3d 63 | | ; r14=c|
|00000d30| 6f 73 73 70 65 63 5e 32 | 3c 3c 6e 2e 0d 02 80 3c |osspec^2|<<n....<|
|00000d40| 20 20 6d 75 6c 20 20 20 | 20 20 20 20 72 31 30 2c | mul | r10,|
|00000d50| 72 31 34 2c 72 31 34 20 | 20 20 20 20 20 20 20 20 |r14,r14 | |
|00000d60| 20 20 20 20 3b 20 72 31 | 30 3d 63 6f 73 73 70 65 | ; r1|0=cosspe|
|00000d70| 63 5e 34 3c 3c 32 6e 2e | 0d 02 8a 3b 20 20 6d 6f |c^4<<2n.|...; mo|
|00000d80| 76 20 20 20 20 20 20 20 | 72 31 30 2c 72 31 30 2c |v |r10,r10,|
|00000d90| 61 73 72 20 23 6e 25 20 | 20 20 20 20 20 20 20 20 |asr #n% | |
|00000da0| 3b 20 72 31 30 3d 63 6f | 73 73 70 65 63 5e 34 3c |; r10=co|sspec^4<|
|00000db0| 3c 6e 2e 0d 02 94 3c 20 | 20 6d 75 6c 20 20 20 20 |<n....< | mul |
|00000dc0| 20 20 20 72 31 34 2c 72 | 31 30 2c 72 31 30 20 20 | r14,r|10,r10 |
|00000dd0| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 72 31 34 | | ; r14|
|00000de0| 3d 63 6f 73 73 70 65 63 | 5e 38 3c 3c 32 6e 2e 0d |=cosspec|^8<<2n..|
|00000df0| 02 9e 3b 20 20 6d 6f 76 | 20 20 20 20 20 20 20 72 |..; mov| r|
|00000e00| 31 30 2c 72 31 34 2c 61 | 73 72 20 23 6e 25 20 20 |10,r14,a|sr #n% |
|00000e10| 20 20 20 20 20 20 20 3b | 20 72 31 30 3d 63 6f 73 | ;| r10=cos|
|00000e20| 73 70 65 63 5e 38 3c 3c | 6e 2e 0d 02 a8 48 20 20 |spec^8<<|n....H |
|00000e30| 6d 75 6c 20 20 20 20 20 | 20 20 72 39 2c 72 31 31 |mul | r9,r11|
|00000e40| 2c 72 39 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,r9 | |
|00000e50| 20 20 3b 20 72 39 3d 63 | 6f 65 66 6c 61 6d 62 65 | ; r9=c|oeflambe|
|00000e60| 72 74 2a 63 6f 73 6c 61 | 6d 62 65 72 74 3c 3c 32 |rt*cosla|mbert<<2|
|00000e70| 6e 2e 0d 02 b2 4f 20 20 | 6d 6c 61 20 20 20 20 20 |n....O |mla |
|00000e80| 20 20 72 39 2c 72 31 30 | 2c 72 31 32 2c 72 39 20 | r9,r10|,r12,r9 |
|00000e90| 20 20 20 20 20 20 20 20 | 20 20 3b 20 72 39 3d 28 | | ; r9=(|
|00000ea0| 6c 61 6d 62 2a 63 6f 73 | 6c 61 6d 62 2b 73 70 65 |lamb*cos|lamb+spe|
|00000eb0| 63 2a 63 6f 73 73 70 65 | 63 5e 38 29 3c 3c 32 6e |c*cosspe|c^8)<<2n|
|00000ec0| 2e 0d 02 bc 42 20 20 61 | 64 64 20 20 20 20 20 20 |....B a|dd |
|00000ed0| 20 72 31 33 2c 72 31 33 | 2c 72 39 2c 6c 73 72 20 | r13,r13|,r9,lsr |
|00000ee0| 23 28 32 2a 6e 25 29 20 | 20 3b 20 72 31 34 3d 62 |#(2*n%) | ; r14=b|
|00000ef0| 61 73 65 2b 69 6e 74 28 | 69 6e 74 65 6e 73 69 74 |ase+int(|intensit|
|00000f00| 79 29 2e 0d 02 c6 35 20 | 20 73 74 72 42 20 20 20 |y)....5 | strB |
|00000f10| 20 20 20 72 31 33 2c 5b | 72 30 2c 72 38 5d 20 20 | r13,[|r0,r8] |
|00000f20| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 53 61 76 | | ; Sav|
|00000f30| 65 20 63 6f 6c 6f 72 2e | 0d 02 d0 11 2e 72 73 5f |e color.|.....rs_|
|00000f40| 65 6e 64 5f 70 69 78 65 | 6c 0d 02 da 3e 20 20 61 |end_pixe|l...> a|
|00000f50| 64 64 20 20 20 20 20 20 | 20 72 38 2c 72 38 2c 23 |dd | r8,r8,#|
|00000f60| 31 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |1 | |
|00000f70| 20 3b 20 4f 6e 65 20 70 | 69 78 65 6c 20 70 65 72 | ; One p|ixel per|
|00000f80| 66 6f 72 6d 65 64 2e 0d | 02 e4 36 20 20 63 6d 70 |formed..|..6 cmp|
|00000f90| 20 20 20 20 20 20 20 72 | 38 2c 72 31 2c 6c 73 6c | r|8,r1,lsl|
|00000fa0| 20 23 31 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | #1 | ;|
|00000fb0| 20 46 6c 61 67 73 3d 78 | 2d 32 2a 72 2e 0d 02 ee | Flags=x|-2*r....|
|00000fc0| 19 20 20 62 4d 49 20 20 | 20 20 20 20 20 72 73 5f |. bMI | rs_|
|00000fd0| 78 5f 6c 6f 6f 70 0d 02 | f8 34 20 20 61 64 64 20 |x_loop..|.4 add |
|00000fe0| 20 20 20 20 20 20 72 30 | 2c 72 30 2c 23 33 32 30 | r0|,r0,#320|
|00000ff0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001000| 4e 65 78 74 20 6c 69 6e | 65 2e 0d 03 02 3d 20 20 |Next lin|e....= |
|00001010| 61 64 64 20 20 20 20 20 | 20 20 72 34 2c 72 34 2c |add | r4,r4,|
|00001020| 23 31 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |#1 | |
|00001030| 20 20 3b 20 4f 6e 65 20 | 6c 69 6e 65 20 70 65 72 | ; One |line per|
|00001040| 66 6f 72 6d 65 64 2e 0d | 03 0c 36 20 20 63 6d 70 |formed..|..6 cmp|
|00001050| 20 20 20 20 20 20 20 72 | 34 2c 72 31 2c 6c 73 6c | r|4,r1,lsl|
|00001060| 20 23 31 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | #1 | ;|
|00001070| 20 46 6c 61 67 73 3d 79 | 2d 32 2a 72 2e 0d 03 16 | Flags=y|-2*r....|
|00001080| 19 20 20 62 4d 49 20 20 | 20 20 20 20 20 72 73 5f |. bMI | rs_|
|00001090| 79 5f 6c 6f 6f 70 0d 03 | 20 1e 20 20 6c 64 72 20 |y_loop..| . ldr |
|000010a0| 20 20 20 20 20 20 72 31 | 33 2c 6f 6c 64 5f 73 74 | r1|3,old_st|
|000010b0| 65 61 63 6b 0d 03 2a 20 | 20 20 6c 64 6d 66 64 20 |eack..* | ldmfd |
|000010c0| 20 20 20 20 72 31 33 21 | 2c 7b 72 30 2d 72 31 32 | r13!|,{r0-r12|
|000010d0| 2c 70 63 7d 0d 03 34 04 | 0d 03 3e 15 2e 6f 6c 64 |,pc}..4.|..>..old|
|000010e0| 5f 73 74 65 61 63 6b 20 | 64 63 64 20 30 0d 03 48 |_steack |dcd 0..H|
|000010f0| 07 5d 3a ed 0d 03 52 4f | f4 3d 3d 3d 3d 20 42 41 |.]:...RO|.==== BA|
|00001100| 53 49 43 20 43 4f 44 45 | 20 3d 3d 3d 3d 3d 3d 3d |SIC CODE| =======|
|00001110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001140| 3d 3d 3d 0d 03 5c 04 0d | 03 66 1b f2 73 65 74 4d |===..\..|.f..setM|
|00001150| 6f 64 65 28 33 32 30 2c | 32 35 36 2c 32 35 36 29 |ode(320,|256,256)|
|00001160| 3a 87 0d 03 70 0b e3 49 | 3d 31 b8 38 34 0d 03 7a |:...p..I|=1.84..z|
|00001170| 0b 20 50 3d 49 2f 38 34 | 0d 03 84 1e 20 fb 49 2c |. P=I/84|.... .I,|
|00001180| 32 35 35 2a 50 2c 32 35 | 35 2a 50 2a 50 2c 32 35 |255*P,25|5*P*P,25|
|00001190| 35 2a b6 28 50 29 0d 03 | 8e 21 20 fb 38 34 2b 49 |5*.(P)..|.! .84+I|
|000011a0| 2c 32 35 35 2a 50 2a 50 | 2c 32 35 35 2a b6 28 50 |,255*P*P|,255*.(P|
|000011b0| 29 2c 32 35 35 2a 50 0d | 03 98 22 20 fb 31 36 38 |),255*P.|.." .168|
|000011c0| 2b 49 2c 32 35 35 2a 50 | 2c 32 35 35 2a b6 28 50 |+I,255*P|,255*.(P|
|000011d0| 29 2c 32 35 35 2a 50 2a | 50 0d 03 a2 06 ed 49 0d |),255*P*|P.....I.|
|000011e0| 03 ac 37 de 76 25 20 38 | 3a 21 76 25 3d 31 34 38 |..7.v% 8|:!v%=148|
|000011f0| 3a 76 25 21 34 3d 2d 31 | 3a c8 99 22 4f 53 5f 52 |:v%!4=-1|:.."OS_R|
|00001200| 65 61 64 56 64 75 56 61 | 72 69 61 62 6c 65 73 22 |eadVduVa|riables"|
|00001210| 2c 76 25 2c 76 25 0d 03 | b6 04 0d 03 c0 35 f4 53 |,v%,v%..|.....5.S|
|00001220| 70 68 65 72 65 73 20 64 | 61 74 61 73 2e 20 28 4c |pheres d|atas. (L|
|00001230| 61 6d 62 65 72 74 26 53 | 70 65 63 20 63 6f 65 66 |ambert&S|pec coef|
|00001240| 73 2c 20 62 61 73 65 20 | 63 6f 6c 6f 72 73 29 0d |s, base |colors).|
|00001250| 03 ca 13 de 73 25 20 33 | 2a 28 32 2a 34 2b 36 2a |....s% 3|*(2*4+6*|
|00001260| 34 29 0d 03 d4 31 73 25 | 21 32 30 3d 31 2f 34 2a |4)...1s%|!20=1/4*|
|00001270| 32 5e 6e 25 2a 38 33 3a | 73 25 21 32 34 3d 32 5e |2^n%*83:|s%!24=2^|
|00001280| 6e 25 2a 38 33 2d 73 25 | 21 32 30 3a 73 25 21 32 |n%*83-s%|!20:s%!2|
|00001290| 38 3d 31 0d 03 de 32 73 | 25 21 35 32 3d 31 2f 32 |8=1...2s|%!52=1/2|
|000012a0| 2a 32 5e 6e 25 2a 38 33 | 3a 73 25 21 35 36 3d 32 |*2^n%*83|:s%!56=2|
|000012b0| 5e 6e 25 2a 38 33 2d 73 | 25 21 35 32 3a 73 25 21 |^n%*83-s|%!52:s%!|
|000012c0| 36 30 3d 38 35 0d 03 e8 | 33 73 25 21 38 34 3d 33 |60=85...|3s%!84=3|
|000012d0| 2f 34 2a 32 5e 6e 25 2a | 38 33 3a 73 25 21 38 38 |/4*2^n%*|83:s%!88|
|000012e0| 3d 32 5e 6e 25 2a 38 33 | 2d 73 25 21 38 34 3a 73 |=2^n%*83|-s%!84:s|
|000012f0| 25 21 39 32 3d 31 36 39 | 0d 03 f2 2c 73 63 72 25 |%!92=169|...,scr%|
|00001300| 3d 32 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |=2 | |
|00001310| 20 20 20 20 3a f4 53 63 | 72 65 65 6e 42 61 6e 6b | :.Sc|reenBank|
|00001320| 20 6e 62 2e 0d 03 fc 32 | 61 30 3d 30 3a 61 32 3d | nb....2|a0=0:a2=|
|00001330| 30 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0 | |
|00001340| 3a f4 41 6e 67 6c 65 73 | 20 66 6f 72 20 72 6f 74 |:.Angles| for rot|
|00001350| 61 74 69 6f 6e 2e 0d 04 | 06 2d 61 33 3d 30 20 20 |ation...|.-a3=0 |
|00001360| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001370| 20 20 3a f4 46 6f 72 20 | 6c 69 67 68 74 20 6d 76 | :.For |light mv|
|00001380| 74 73 2e 0d 04 10 33 61 | 34 3d 30 20 20 20 20 20 |ts....3a|4=0 |
|00001390| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3a | | :|
|000013a0| f4 41 6e 67 6c 65 20 66 | 6f 72 20 62 61 6c 6c 73 |.Angle f|or balls|
|000013b0| 20 6d 76 74 73 2e 0d 04 | 1a 2e 72 25 3d 33 32 20 | mvts...|..r%=32 |
|000013c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000013d0| 20 20 3a f4 52 61 64 69 | 75 73 20 6f 66 20 62 61 | :.Radi|us of ba|
|000013e0| 6c 6c 73 2e 0d 04 24 2c | 75 64 3d 31 32 38 20 20 |lls...$,|ud=128 |
|000013f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001400| 3a f4 55 73 65 72 20 64 | 69 73 74 61 6e 63 65 2e |:.User d|istance.|
|00001410| 0d 04 2e 36 70 3d 32 2a | af 2f 33 20 20 20 20 20 |...6p=2*|./3 |
|00001420| 20 20 20 20 20 20 20 20 | 20 20 20 3a f4 55 73 65 | | :.Use|
|00001430| 64 20 66 6f 72 20 62 61 | 6c 6c 73 20 70 6f 73 69 |d for ba|lls posi|
|00001440| 74 69 6f 6e 73 2e 0d 04 | 38 05 f5 0d 04 42 28 20 |tions...|8....B( |
|00001450| c8 96 3a c8 99 22 4f 53 | 5f 42 79 74 65 22 2c 26 |..:.."OS|_Byte",&|
|00001460| 37 31 2c 73 63 72 25 3a | 73 63 72 25 3d 33 2d 73 |71,scr%:|scr%=3-s|
|00001470| 63 72 25 0d 04 4c 1b 20 | c8 99 22 4f 53 5f 42 79 |cr%..L. |.."OS_By|
|00001480| 74 65 22 2c 26 37 30 2c | 73 63 72 25 3a db 0d 04 |te",&70,|scr%:...|
|00001490| 56 1c 20 77 25 3d 21 76 | 25 2b 28 73 63 72 25 2d |V. w%=!v|%+(scr%-|
|000014a0| 31 29 2a 33 32 30 2a 32 | 35 36 0d 04 60 15 20 f4 |1)*320*2|56..`. .|
|000014b0| 4d 6f 64 69 66 79 20 61 | 6e 67 6c 65 73 2e 20 0d |Modify a|ngles. .|
|000014c0| 04 6a 33 20 61 30 2b 3d | 30 2e 30 31 3a 61 32 2b |.j3 a0+=|0.01:a2+|
|000014d0| 3d 30 2e 30 32 3a 61 31 | 3d af 2f 34 2a b5 61 32 |=0.02:a1|=./4*.a2|
|000014e0| 3a 61 33 2b 3d 30 2e 30 | 33 3a 61 34 2b 3d 30 2e |:a3+=0.0|3:a4+=0.|
|000014f0| 30 35 0d 04 74 26 20 f4 | 43 6f 65 66 73 20 64 65 |05..t& .|Coefs de|
|00001500| 20 6c 61 20 6d 61 74 72 | 69 63 65 20 64 65 20 72 | la matr|ice de r|
|00001510| 6f 74 61 74 69 6f 6e 2e | 0d 04 7e 38 20 41 3d 9b |otation.|..~8 A=.|
|00001520| 61 31 3a 45 3d 9b 61 30 | 3a 46 3d b5 61 30 3a 47 |a1:E=.a0|:F=.a0:G|
|00001530| 3d b5 61 31 3a 42 3d 46 | 2a 47 3a 43 3d 2d 45 2a |=.a1:B=F|*G:C=-E*|
|00001540| 47 3a 48 3d 2d 41 2a 46 | 3a 49 3d 41 2a 45 20 20 |G:H=-A*F|:I=A*E |
|00001550| 0d 04 88 1b 20 f4 4c 69 | 67 68 74 73 6f 75 72 63 |.... .Li|ghtsourc|
|00001560| 65 20 70 6f 73 69 74 69 | 6f 6e 2e 0d 04 92 26 20 |e positi|on....& |
|00001570| 74 31 3d 38 30 2a b5 61 | 33 3a 6c 78 3d 42 2a 74 |t1=80*.a|3:lx=B*t|
|00001580| 31 3a 6c 79 3d 45 2a 74 | 31 3a 6c 7a 3d 48 2a 74 |1:ly=E*t|1:lz=H*t|
|00001590| 31 0d 04 9c 42 20 f4 43 | 61 6c 63 75 6c 61 74 65 |1...B .C|alculate|
|000015a0| 20 62 61 6c 6c 73 20 70 | 6f 73 69 74 69 6f 6e 73 | balls p|ositions|
|000015b0| 20 61 6e 64 20 6c 69 67 | 68 74 73 2c 20 61 6e 64 | and lig|hts, and|
|000015c0| 20 70 75 74 20 74 68 65 | 6d 20 69 6e 20 74 61 62 | put the|m in tab|
|000015d0| 6c 65 2e 0d 04 a6 0a 20 | 61 25 3d 73 25 0d 04 b0 |le..... |a%=s%...|
|000015e0| 0c 20 e3 69 25 3d 30 b8 | 32 0d 04 ba 30 20 20 74 |. .i%=0.|2...0 t|
|000015f0| 31 3d 36 30 2a 9b 61 34 | 3a 74 32 3d 36 30 2a b5 |1=60*.a4|:t2=60*.|
|00001600| 61 34 20 3a f4 59 20 72 | 6f 74 61 74 69 6f 6e 20 |a4 :.Y r|otation |
|00001610| 66 6f 72 20 62 61 6c 6c | 2e 0d 04 c4 33 20 20 61 |for ball|....3 a|
|00001620| 34 2b 3d 70 20 20 20 20 | 20 20 20 20 20 20 20 20 |4+=p | |
|00001630| 20 20 20 20 20 3a f4 41 | 6e 67 6c 65 73 20 66 6f | :.A|ngles fo|
|00001640| 72 20 6e 65 78 74 20 62 | 61 6c 6c 2e 0d 04 ce 2e |r next b|all.....|
|00001650| 20 20 78 3d 41 2a 74 31 | 2b 43 2a 74 32 3a 79 3d | x=A*t1|+C*t2:y=|
|00001660| 46 2a 74 32 3a 7a 3d 47 | 2a 74 31 2b 49 2a 74 32 |F*t2:z=G|*t1+I*t2|
|00001670| 20 3a f4 52 6f 74 61 74 | 65 2e 0d 04 d8 32 20 20 | :.Rotat|e....2 |
|00001680| 64 78 3d 6c 78 2d 78 3a | 64 79 3d 6c 79 2d 79 3a |dx=lx-x:|dy=ly-y:|
|00001690| 64 7a 3d 7a 2d 6c 7a 20 | 3a f4 4c 69 67 68 74 2d |dz=z-lz |:.Light-|
|000016a0| 62 61 6c 6c 20 76 65 63 | 74 6f 72 2e 0d 04 e2 34 |ball vec|tor....4|
|000016b0| 20 20 74 31 3d 32 5e 6e | 25 2f b6 28 64 78 5e 32 | t1=2^n|%/.(dx^2|
|000016c0| 2b 64 79 5e 32 2b 64 7a | 5e 32 29 20 3a f4 46 6f |+dy^2+dz|^2) :.Fo|
|000016d0| 72 20 6e 6f 72 6d 61 6c | 69 73 61 74 69 6f 6e 2e |r normal|isation.|
|000016e0| 0d 04 ec 39 20 20 61 25 | 21 38 3d 64 79 2a 74 31 |...9 a%|!8=dy*t1|
|000016f0| 3a 61 25 21 31 32 3d 64 | 78 2a 74 31 3a 61 25 21 |:a%!12=d|x*t1:a%!|
|00001700| 31 36 3d 64 7a 2a 74 31 | 20 3a f4 53 61 76 65 20 |16=dz*t1| :.Save |
|00001710| 6c 79 2c 6c 78 2c 6c 7a | 2e 0d 04 f6 2e 20 20 74 |ly,lx,lz|..... t|
|00001720| 31 3d 75 64 2f 28 7a 2b | 75 64 29 20 20 20 20 20 |1=ud/(z+|ud) |
|00001730| 20 20 20 20 20 3a f4 46 | 6f 72 20 70 65 72 73 70 | :.F|or persp|
|00001740| 65 63 74 69 76 65 2e 0d | 05 00 25 20 20 42 25 3d |ective..|..% B%=|
|00001750| 72 25 2a 74 31 3a 21 61 | 25 3d 42 25 20 20 20 20 |r%*t1:!a|%=B% |
|00001760| 20 20 20 3a f4 52 61 64 | 69 75 73 2e 0d 05 0a 40 | :.Rad|ius....@|
|00001770| 20 20 61 25 21 34 3d 77 | 25 2b a8 28 78 2a 74 31 | a%!4=w|%+.(x*t1|
|00001780| 2b 31 36 30 29 2d 42 25 | 2b 28 a8 28 79 2a 74 31 |+160)-B%|+(.(y*t1|
|00001790| 2b 31 32 38 29 2d 42 25 | 29 2a 33 32 30 20 3a f4 |+128)-B%|)*320 :.|
|000017a0| 44 72 61 77 20 61 64 72 | 65 73 73 2e 0d 05 14 0c |Draw adr|ess.....|
|000017b0| 20 20 61 25 2b 3d 33 32 | 0d 05 1e 06 20 ed 0d 05 | a%+=32|.... ...|
|000017c0| 28 2f 20 f4 44 72 61 77 | 20 73 6f 72 74 65 64 20 |(/ .Draw| sorted |
|000017d0| 62 61 6c 6c 73 2e 20 28 | 4d 69 6e 69 6d 75 6d 20 |balls. (|Minimum |
|000017e0| 72 61 64 69 75 73 20 66 | 69 72 73 74 29 0d 05 32 |radius f|irst)..2|
|000017f0| 0c 20 e3 69 25 3d 30 b8 | 32 0d 05 3c 15 20 20 43 |. .i%=0.|2..<. C|
|00001800| 25 3d 73 25 2b 32 30 3a | 42 25 3d 21 73 25 0d 05 |%=s%+20:|B%=!s%..|
|00001810| 46 21 20 20 e7 73 25 21 | 33 32 3c 42 25 8c 43 25 |F! .s%!|32<B%.C%|
|00001820| 3d 73 25 2b 35 32 3a 42 | 25 3d 73 25 21 33 32 0d |=s%+52:B|%=s%!32.|
|00001830| 05 50 21 20 20 e7 73 25 | 21 36 34 3c 42 25 8c 43 |.P! .s%|!64<B%.C|
|00001840| 25 3d 73 25 2b 38 34 3a | 42 25 3d 73 25 21 36 34 |%=s%+84:|B%=s%!64|
|00001850| 0d 05 5a 32 20 20 43 25 | 21 2d 32 30 3d 32 35 35 |..Z2 C%|!-20=255|
|00001860| 20 20 20 20 20 20 20 20 | 20 20 20 20 3a f4 4b 69 | | :.Ki|
|00001870| 6c 6c 20 63 75 72 72 65 | 6e 74 20 72 61 64 69 75 |ll curre|nt radiu|
|00001880| 73 2e 0d 05 64 2a 20 20 | 41 25 3d 43 25 21 2d 31 |s...d* |A%=C%!-1|
|00001890| 36 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a f4 |6 | :.|
|000018a0| 44 72 61 77 20 61 64 72 | 65 73 73 2e 0d 05 6e 17 |Draw adr|ess...n.|
|000018b0| 20 20 d6 72 61 79 74 72 | 61 63 65 64 5f 73 70 68 | .raytr|aced_sph|
|000018c0| 65 72 65 0d 05 78 07 20 | ed 20 0d 05 82 06 fd 30 |ere..x. |. .....0|
|000018d0| 0d 05 8c 05 e0 0d 05 96 | 04 0d 05 a0 4f f4 3d 3d |........|....O.==|
|000018e0| 3d 3d 20 41 53 4d 20 4d | 41 43 52 4f 53 20 3d 3d |== ASM M|ACROS ==|
|000018f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001900| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001910| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001920| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 05 aa 12 f4 20 6d 30 |========|..... m0|
|00001930| 3d 73 71 72 74 28 6d 31 | 29 2e 0d 05 b4 16 dd a4 |=sqrt(m1|).......|
|00001940| 73 71 72 74 33 32 28 6d | 30 2c 6d 31 2c 6d 32 29 |sqrt32(m|0,m1,m2)|
|00001950| 0d 05 be 0b 5b 6f 70 74 | 20 6f 25 0d 05 c8 47 20 |....[opt| o%...G |
|00001960| 20 6d 6f 76 20 20 20 20 | 20 20 20 6d 30 2c 23 30 | mov | m0,#0|
|00001970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001980| 20 20 20 3b 20 54 68 69 | 73 20 69 73 20 72 69 70 | ; Thi|s is rip|
|00001990| 70 65 64 20 66 72 6f 6d | 20 4a 61 6e 2f 42 41 53 |ped from| Jan/BAS|
|000019a0| 53 2e 0d 05 d2 2c 20 20 | 6d 6f 76 20 20 20 20 20 |S...., |mov |
|000019b0| 20 20 6d 32 2c 23 31 3c | 3c 33 30 20 20 20 20 20 | m2,#1<|<30 |
|000019c0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 20 7c 0d 05 | | ; |..|
|000019d0| dc 2c 20 20 63 6d 70 20 | 20 20 20 20 20 20 6d 31 |., cmp | m1|
|000019e0| 2c 6d 32 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,m2 | |
|000019f0| 20 20 20 20 20 20 3b 20 | 20 7c 0d 05 e6 2c 20 20 | ; | |..., |
|00001a00| 73 75 62 48 53 20 20 20 | 20 20 6d 31 2c 6d 31 2c |subHS | m1,m1,|
|00001a10| 6d 32 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |m2 | |
|00001a20| 20 20 3b 20 20 7c 0d 05 | f0 2c 20 20 61 64 63 20 | ; |..|., adc |
|00001a30| 20 20 20 20 20 20 6d 30 | 2c 6d 30 2c 6d 30 20 20 | m0|,m0,m0 |
|00001a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 | | ; |
|00001a50| 20 7c 0d 05 fa 18 5d 3a | e3 63 25 3d 32 b8 33 30 | |....]:|.c%=2.30|
|00001a60| 88 32 3a 5b 6f 70 74 20 | 6f 25 0d 06 04 2c 20 20 |.2:[opt |o%..., |
|00001a70| 61 64 64 20 20 20 20 20 | 20 20 6d 32 2c 6d 30 2c |add | m2,m0,|
|00001a80| 23 31 3c 3c 33 30 20 20 | 20 20 20 20 20 20 20 20 |#1<<30 | |
|00001a90| 20 20 3b 20 20 7c 0d 06 | 0e 2c 20 20 63 6d 70 20 | ; |..|., cmp |
|00001aa0| 20 20 20 20 20 20 6d 31 | 2c 6d 32 2c 72 6f 72 20 | m1|,m2,ror |
|00001ab0| 23 63 25 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |#c% | ; |
|00001ac0| 20 7c 0d 06 18 2c 20 20 | 73 75 62 48 53 20 20 20 | |..., |subHS |
|00001ad0| 20 20 6d 31 2c 6d 31 2c | 6d 32 2c 72 6f 72 20 23 | m1,m1,|m2,ror #|
|00001ae0| 63 25 20 20 20 20 20 20 | 20 20 3b 20 20 7c 0d 06 |c% | ; |..|
|00001af0| 22 3d 20 20 61 64 63 20 | 20 20 20 20 20 20 6d 30 |"= adc | m0|
|00001b00| 2c 6d 30 2c 6d 30 20 20 | 20 20 20 20 20 20 20 20 |,m0,m0 | |
|00001b10| 20 20 20 20 20 20 3b 20 | 45 6e 64 20 6f 66 20 72 | ; |End of r|
|00001b20| 69 70 70 65 64 20 63 6f | 64 65 2e 0d 06 2c 0f 5d |ipped co|de...,.]|
|00001b30| 3a ed 3a 5b 6f 70 74 20 | 6f 25 0d 06 36 39 20 20 |:.:[opt |o%..69 |
|00001b40| 63 6d 70 20 20 20 20 20 | 20 20 6d 31 2c 6d 30 20 |cmp | m1,m0 |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001b60| 20 20 3b 20 46 6c 61 67 | 73 3d 76 61 6c 2d 72 6f | ; Flag|s=val-ro|
|00001b70| 6f 74 2e 0d 06 40 43 20 | 20 61 64 64 50 4c 20 20 |ot...@C | addPL |
|00001b80| 20 20 20 6d 30 2c 6d 30 | 2c 23 31 20 20 20 20 20 | m0,m0|,#1 |
|00001b90| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 52 6f 75 | | ; Rou|
|00001ba0| 6e 64 20 74 6f 20 6e 65 | 61 72 65 73 74 20 69 6e |nd to ne|arest in|
|00001bb0| 74 65 67 65 72 2e 0d 06 | 4a 09 5d 3a 3d 22 22 0d |teger...|J.]:="".|
|00001bc0| 06 54 04 0d 06 5e 0f f4 | 20 6d 30 3d 6d 31 2f 6d |.T...^..| m0=m1/m|
|00001bd0| 32 2e 0d 06 68 16 dd a4 | 75 64 69 76 33 32 28 6d |2...h...|udiv32(m|
|00001be0| 30 2c 6d 31 2c 6d 32 29 | 0d 06 72 0b 5b 6f 70 74 |0,m1,m2)|..r.[opt|
|00001bf0| 20 6f 25 0d 06 7c 47 20 | 20 6d 6f 76 20 20 20 20 | o%..|G | mov |
|00001c00| 20 20 20 6d 30 2c 23 30 | 20 20 20 20 20 20 20 20 | m0,#0| |
|00001c10| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 6d 30 20 | | ; m0 |
|00001c20| 77 69 6c 6c 20 63 6f 6e | 74 61 69 6e 20 74 68 65 |will con|tain the|
|00001c30| 20 71 75 6f 74 69 65 6e | 74 2e 0d 06 86 19 5d 3a | quotien|t.....]:|
|00001c40| e3 63 25 3d 31 35 b8 30 | 88 2d 31 3a 5b 6f 70 74 |.c%=15.0|.-1:[opt|
|00001c50| 20 6f 25 0d 06 90 43 20 | 20 63 6d 70 20 20 20 20 | o%...C | cmp |
|00001c60| 20 20 20 6d 31 2c 6d 32 | 2c 6c 73 6c 20 23 63 25 | m1,m2|,lsl #c%|
|00001c70| 20 20 20 20 20 20 20 20 | 20 20 20 3b 20 49 73 20 | | ; Is |
|00001c80| 6d 31 20 62 69 67 67 65 | 72 20 74 68 61 6e 20 6d |m1 bigge|r than m|
|00001c90| 32 2a 32 5e 4e 3f 0d 06 | 9a 4e 20 20 61 64 64 47 |2*2^N?..|.N addG|
|00001ca0| 45 20 20 20 20 20 6d 30 | 2c 6d 30 2c 23 31 3c 3c |E m0|,m0,#1<<|
|00001cb0| 63 25 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 20 |c% | ; |
|00001cc0| 59 65 73 2c 20 74 68 65 | 6e 20 61 64 64 20 31 2a |Yes, the|n add 1*|
|00001cd0| 32 5e 4e 20 74 6f 20 74 | 68 65 20 71 75 6f 74 69 |2^N to t|he quoti|
|00001ce0| 65 6e 74 2c 0d 06 a4 4d | 20 20 73 75 62 47 45 20 |ent,...M| subGE |
|00001cf0| 20 20 20 20 6d 31 2c 6d | 31 2c 6d 32 2c 6c 73 6c | m1,m|1,m2,lsl|
|00001d00| 20 23 63 25 20 20 20 20 | 20 20 20 20 3b 20 20 20 | #c% | ; |
|00001d10| 61 6e 64 20 73 75 62 73 | 74 72 61 63 74 20 6d 32 |and subs|tract m2|
|00001d20| 2a 32 5e 4e 20 74 6f 20 | 74 68 65 20 72 65 73 74 |*2^N to |the rest|
|00001d30| 2e 0d 06 ae 0f 5d 3a ed | 3a 5b 6f 70 74 20 6f 25 |.....]:.|:[opt o%|
|00001d40| 0d 06 b8 42 20 20 63 6d | 70 20 20 20 20 20 20 20 |...B cm|p |
|00001d50| 6d 31 2c 6d 32 2c 6c 73 | 72 20 23 31 20 20 20 20 |m1,m2,ls|r #1 |
|00001d60| 20 20 20 20 20 20 20 20 | 3b 20 46 6c 61 67 73 3d | |; Flags=|
|00001d70| 72 65 73 74 2d 30 2e 35 | 2a 64 69 76 69 64 65 6e |rest-0.5|*dividen|
|00001d80| 64 2e 0d 06 c2 43 20 20 | 61 64 64 50 4c 20 20 20 |d....C |addPL |
|00001d90| 20 20 6d 30 2c 6d 30 2c | 23 31 20 20 20 20 20 20 | m0,m0,|#1 |
|00001da0| 20 20 20 20 20 20 20 20 | 20 20 3b 20 52 6f 75 6e | | ; Roun|
|00001db0| 64 20 74 6f 20 6e 65 61 | 72 65 73 74 20 69 6e 74 |d to nea|rest int|
|00001dc0| 65 67 65 72 2e 0d 06 cc | 09 5d 3a 3d 22 22 0d ff |eger....|.]:=""..|
+--------+-------------------------+-------------------------+--------+--------+