home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: ArcFS Archive
(archive/arcFS).
Confidence | Program | Detection | Match Type | Support
|
---|
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%
| gt2
| Kopftext: 'Archive'
| default (weak)
| |
100%
| detectItEasy
| Archive: ArcFS
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 63 68 69 76 65 00 | dc 11 00 00 34 14 00 00 |Archive.|....4...|
|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 48 65 61 70 47 72 61 | 70 68 00 00 ff ff ff ff |.HeapGra|ph......|
|00000070| 45 dc fd ff 73 79 84 91 | 00 00 00 00 ff ff ff ff |E...sy..|........|
|00000080| 0c 0f 00 80 82 21 48 65 | 61 70 44 69 73 70 00 00 |.....!He|apDisp..|
|00000090| ff ff ff ff 45 dc fd ff | 75 79 84 91 00 00 00 00 |....E...|uy......|
|000000a0| ff ff ff ff 48 09 00 80 | 82 21 48 65 6c 70 00 69 |....H...|.!Help.i|
|000000b0| 73 70 00 00 fd 04 00 00 | 45 ff ff ff a8 04 f4 8d |sp......|E.......|
|000000c0| 03 00 eb 8b fd 04 00 00 | 1d 05 00 00 82 21 52 75 |........|.....!Ru|
|000000d0| 6e 00 00 69 73 70 00 00 | 43 00 00 00 45 eb ff ff |n..isp..|C...E...|
|000000e0| e9 7e df 8d 03 00 cd 11 | 43 00 00 00 3e 0a 00 00 |.~......|C...>...|
|000000f0| 82 63 00 65 6c 70 00 69 | 73 70 00 00 ff ff ff ff |.c.elp.i|sp......|
|00000100| 45 dc fd ff db 79 84 91 | 00 00 00 00 ff ff ff ff |E....y..|........|
|00000110| ac 02 00 80 82 41 64 64 | 42 6c 6f 63 6b 00 00 00 |.....Add|Block...|
|00000120| d1 05 00 00 45 ff ff ff | d6 34 ef 8e 03 00 4c fa |....E...|.4....L.|
|00000130| d1 05 00 00 a5 0a 00 00 | 82 41 64 64 73 52 65 64 |........|.AddsRed|
|00000140| 72 61 77 00 8a 04 00 00 | 45 ff ff ff a0 56 62 8d |raw.....|E....Vb.|
|00000150| 03 00 d3 40 8a 04 00 00 | 9a 10 00 00 82 41 64 64 |...@....|.....Add|
|00000160| 53 74 65 70 00 61 77 00 | 00 01 00 00 45 ff ff ff |Step.aw.|....E...|
|00000170| 86 e5 ec 8c 03 00 8a dc | 00 01 00 00 48 15 00 00 |........|....H...|
|00000180| 82 41 70 70 4d 65 6e 75 | 00 61 77 00 4d 0a 00 00 |.AppMenu|.aw.M...|
|00000190| 45 ff ff ff bf c5 ee 8c | 03 00 1d 3a 4d 0a 00 00 |E.......|...:M...|
|000001a0| 6c 16 00 00 82 43 68 48 | 65 61 70 53 69 7a 65 00 |l....ChH|eapSize.|
|000001b0| 8c 05 00 00 45 ff ff ff | 71 70 56 8e 03 00 7a d3 |....E...|qpV...z.|
|000001c0| 8c 05 00 00 dd 20 00 00 | 82 4d 61 69 6e 00 70 53 |..... ..|.Main.pS|
|000001d0| 69 7a 65 00 6a 02 00 00 | 45 ff ff ff 7b 18 e0 8d |ize.j...|E...{...|
|000001e0| 03 00 92 cd 6a 02 00 00 | 8d 26 00 00 82 4d 6f 76 |....j...|.&...Mov|
|000001f0| 65 42 6c 6f 63 6b 00 00 | f9 04 00 00 45 ff ff ff |eBlock..|....E...|
|00000200| ea 1b 51 8e 03 00 5b d0 | f9 04 00 00 1b 29 00 00 |..Q...[.|.....)..|
|00000210| 82 52 65 64 61 77 00 6f | 63 6b 00 00 d7 05 00 00 |.Redaw.o|ck......|
|00000220| 45 ff ff ff 54 55 56 8e | 03 00 b8 ea d7 05 00 00 |E...TUV.|........|
|00000230| 38 2e 00 00 82 52 65 6d | 6f 76 65 42 6c 6f 63 00 |8....Rem|oveBloc.|
|00000240| a8 03 00 00 45 ff ff ff | 3c af f1 8e 03 00 a0 37 |....E...|<......7|
|00000250| a8 03 00 00 33 34 00 00 | 82 53 63 61 6e 46 69 6c |....34..|.ScanFil|
|00000260| 65 00 63 00 bf 09 00 00 | 45 ff ff ff 4a dd f4 8e |e.c.....|E...J...|
|00000270| 03 00 18 7b bf 09 00 00 | ff 37 00 00 82 53 63 61 |...{....|.7...Sca|
|00000280| 6e 50 69 70 65 46 53 00 | db 04 00 00 45 ff ff ff |nPipeFS.|....E...|
|00000290| 59 20 50 8e 03 00 cb f0 | db 04 00 00 e2 41 00 00 |Y P.....|.....A..|
|000002a0| 82 53 74 61 72 74 41 70 | 70 00 53 00 e9 07 00 00 |.StartAp|p.S.....|
|000002b0| 45 ff ff ff bb ed 75 8d | 03 00 68 d8 e9 07 00 00 |E.....u.|..h.....|
|000002c0| e1 46 00 00 82 53 74 61 | 74 44 69 73 70 6c 00 00 |.F...Sta|tDispl..|
|000002d0| 0c 02 00 00 45 ff ff ff | 0e 43 51 8e 03 00 86 2a |....E...|.CQ....*|
|000002e0| 0c 02 00 00 ee 4e 00 00 | 00 21 52 75 6e 00 00 69 |.....N..|.!Run..i|
|000002f0| 73 70 00 00 43 00 00 00 | 45 eb ff ff e9 7e df 8d |sp..C...|E....~..|
|00000300| 03 00 cd 11 43 00 00 00 | 94 17 00 00 82 44 65 62 |....C...|.....Deb|
|00000310| 75 67 00 73 70 6c 00 00 | ff ff ff ff 45 dc fd ff |ug.spl..|....E...|
|00000320| 49 7c 84 91 00 00 00 00 | ff ff ff ff 84 03 00 80 |I|......|........|
|00000330| 82 21 52 75 6e 00 00 73 | 70 6c 00 00 8f 00 00 00 |.!Run..s|pl......|
|00000340| 45 eb ff ff f0 c3 e0 89 | 03 00 bf e3 8f 00 00 00 |E.......|........|
|00000350| 1e 51 00 00 82 6f 00 62 | 75 67 00 73 70 6c 00 00 |.Q...o.b|ug.spl..|
|00000360| ff ff ff ff 45 dc fd ff | 7a 7c 84 91 00 00 00 00 |....E...|z|......|
|00000370| ff ff ff ff 3c 03 00 80 | 00 21 52 75 6e 00 00 73 |....<...|.!Run..s|
|00000380| 70 6c 00 00 8f 00 00 00 | 45 eb ff ff f0 c3 e0 89 |pl......|E.......|
|00000390| 03 0c bf e3 80 00 00 00 | 3f 44 00 00 82 52 75 6e |........|?D...Run|
|000003a0| 50 72 6f 67 00 6c 00 00 | ec 00 00 00 45 eb ff ff |Prog.l..|....E...|
|000003b0| 3e ea d8 8c 03 00 a6 4d | ec 00 00 00 d1 51 00 00 |>......M|.....Q..|
|000003c0| 00 21 52 75 6e 00 00 69 | 73 70 00 00 43 00 00 00 |.!Run..i|sp..C...|
|000003d0| 45 eb ff ff e9 7e df 8d | 03 00 cd 11 43 00 00 00 |E....~..|....C...|
|000003e0| 94 17 00 00 82 68 00 6e | 50 72 6f 67 00 6c 00 00 |.....h.n|Prog.l..|
|000003f0| ff ff ff ff 45 dc fd ff | b3 7c 84 91 00 00 00 00 |....E...|.|......|
|00000400| ff ff ff ff a0 05 00 80 | 82 41 64 64 42 6c 6f 63 |........|.AddBloc|
|00000410| 6b 00 00 00 a0 00 00 00 | 45 ff ff ff 83 13 5e 8c |k.......|E.....^.|
|00000420| 03 00 7f 6c a0 00 00 00 | e1 52 00 00 82 41 64 64 |...l....|.R...Add|
|00000430| 73 52 65 64 72 61 77 00 | 23 01 00 00 45 ff ff ff |sRedraw.|#...E...|
|00000440| 6c e6 d6 8c 03 00 f1 93 | 23 01 00 00 a5 53 00 00 |l.......|#....S..|
|00000450| 82 41 64 64 53 74 65 70 | 00 61 77 00 8c 00 00 00 |.AddStep|.aw.....|
|00000460| 45 ff ff ff 1e 4f ec 8c | 03 00 b7 78 8c 00 00 00 |E....O..|...x....|
|00000470| ec 54 00 00 82 41 70 70 | 4d 65 6e 75 00 61 77 00 |.T...App|Menu.aw.|
|00000480| ad 00 00 00 45 ff ff ff | a1 81 e9 8c 03 00 62 4b |....E...|......bK|
|00000490| ad 00 00 00 9c 55 00 00 | 82 43 68 48 65 61 70 53 |.....U..|.ChHeapS|
|000004a0| 69 7a 65 00 c3 00 00 00 | 45 ff ff ff ec ad e8 8c |ize.....|E.......|
|000004b0| 03 00 dd 30 c3 00 00 00 | 6d 56 00 00 82 4d 6f 76 |...0....|mV...Mov|
|000004c0| 65 42 6c 6f 63 6b 00 00 | ad 00 00 00 45 ff ff ff |eBlock..|....E...|
|000004d0| 3e 95 5e 8c 03 00 54 3a | ad 00 00 00 54 57 00 00 |>.^...T:|....TW..|
|000004e0| 82 52 65 64 72 61 77 00 | 63 6b 00 00 1b 01 00 00 |.Redraw.|ck......|
|000004f0| 45 ff ff ff a3 5a 5e 8c | 03 00 81 4b 1b 01 00 00 |E....Z^.|...K....|
|00000500| 25 58 00 00 82 52 65 6d | 6f 76 65 42 6c 6f 63 00 |%X...Rem|oveBloc.|
|00000510| 94 00 00 00 45 ff ff ff | a1 8d 60 8c 03 00 e0 2c |....E...|..`....,|
|00000520| 94 00 00 00 64 59 00 00 | 82 53 63 61 6e 46 69 6c |....dY..|.ScanFil|
|00000530| 65 00 63 00 cb 00 00 00 | 45 ff ff ff 36 d3 5f 8c |e.c.....|E...6._.|
|00000540| 03 00 23 f1 cb 00 00 00 | 1c 5a 00 00 82 53 63 61 |..#.....|.Z...Sca|
|00000550| 6e 50 69 70 65 46 53 00 | a8 00 00 00 45 ff ff ff |nPipeFS.|....E...|
|00000560| 20 2e 63 8c 03 00 85 aa | a8 00 00 00 0b 5b 00 00 | .c.....|.....[..|
|00000570| 82 53 74 61 72 74 41 70 | 70 00 53 00 a9 00 00 00 |.StartAp|p.S.....|
|00000580| 45 ff ff ff de 36 5e 8c | 03 00 79 13 a9 00 00 00 |E....6^.|..y.....|
|00000590| d7 5b 00 00 82 53 74 61 | 74 44 69 73 70 6c 00 00 |.[...Sta|tDispl..|
|000005a0| 93 00 00 00 45 ff ff ff | 11 af 72 8d 03 00 da 78 |....E...|..r....x|
|000005b0| 93 00 00 00 a4 5c 00 00 | 82 53 74 72 75 63 74 73 |.....\..|.Structs|
|000005c0| 00 6c 00 00 24 03 00 00 | 45 ff ff ff 22 27 76 8d |.l..$...|E..."'v.|
|000005d0| 03 00 38 c6 24 03 00 00 | 5b 5d 00 00 00 21 52 75 |..8.$...|[]...!Ru|
|000005e0| 6e 00 00 69 73 70 00 00 | 43 00 00 00 45 eb ff ff |n..isp..|C...E...|
|000005f0| e9 7e df 8d 03 00 cd 11 | 43 00 00 00 94 17 00 00 |.~......|C.......|
|00000600| 82 4c 69 63 65 6e 63 65 | 00 70 00 00 70 49 00 00 |.Licence|.p..pI..|
|00000610| 45 ff ff ff 6c b9 de 8d | 03 00 c9 8f 70 49 00 00 |E...l...|....pI..|
|00000620| a3 60 00 00 82 4d 61 6b | 65 66 69 6c 65 00 00 00 |.`...Mak|efile...|
|00000630| e6 18 00 00 45 e1 ff ff | cd e5 f4 8e 03 00 23 3e |....E...|......#>|
|00000640| e6 18 00 00 37 aa 00 00 | 82 4e 6f 72 6d 61 6c 00 |....7...|.Normal.|
|00000650| 00 70 00 00 ff ff ff ff | 45 dc fd ff 8f 7f 84 91 |.p......|E.......|
|00000660| 00 00 00 00 ff ff ff ff | 00 09 00 80 82 21 52 75 |........|.....!Ru|
|00000670| 6e 00 6c 00 00 70 00 00 | 77 00 00 00 45 eb ff ff |n.l..p..|w...E...|
|00000680| 15 43 74 8d 03 00 b1 4c | 77 00 00 00 41 c3 00 00 |.Ct....L|w...A...|
|00000690| 82 21 52 75 6e 49 6d 61 | 67 65 00 00 28 9e 00 00 |.!RunIma|ge..(...|
|000006a0| 45 f8 ff ff b8 e5 f4 8e | 03 00 35 da 28 9e 00 00 |E.......|..5.(...|
|000006b0| dc c3 00 00 82 6c 00 75 | 6e 00 6c 00 00 70 00 00 |.....l.u|n.l..p..|
|000006c0| ff ff ff ff 45 dc fd ff | c1 80 84 91 00 00 00 00 |....E...|........|
|000006d0| ff ff ff ff 9c 06 00 80 | 00 21 52 75 6e 49 6d 61 |........|.!RunIma|
|000006e0| 67 65 00 00 28 9e 00 00 | 45 f8 ff ff b8 e5 f4 8e |ge..(...|E.......|
|000006f0| 03 0c 35 da bc 5d 00 00 | 2f 80 00 00 82 6f 00 75 |..5..]..|/....o.u|
|00000700| 6e 00 6c 00 00 70 00 00 | ff ff ff ff 45 dc fd ff |n.l..p..|....E...|
|00000710| ce 80 84 91 00 00 00 00 | ff ff ff ff b8 08 00 80 |........|........|
|00000720| 82 41 64 64 42 6c 6f 63 | 6b 00 00 00 80 03 00 00 |.AddBloc|k.......|
|00000730| 45 fd ff ff ef 3e ef 8e | 03 00 dc 87 80 03 00 00 |E....>..|........|
|00000740| 28 62 01 00 82 41 64 64 | 73 52 65 64 72 61 77 00 |(b...Add|sRedraw.|
|00000750| 68 03 00 00 45 fd ff ff | 02 46 76 8d 03 00 de e3 |h...E...|.Fv.....|
|00000760| 68 03 00 00 cc 65 01 00 | 82 41 64 64 53 74 65 70 |h....e..|.AddStep|
|00000770| 00 61 77 00 8c 01 00 00 | 45 fd ff ff e1 2c 76 8d |.aw.....|E....,v.|
|00000780| 03 00 53 3a 8c 01 00 00 | 58 69 01 00 82 41 70 70 |..S:....|Xi...App|
|00000790| 4d 65 6e 75 00 61 77 00 | 38 08 00 00 45 fd ff ff |Menu.aw.|8...E...|
|000007a0| 5d 2f 76 8d 03 00 ed 93 | 38 08 00 00 08 6b 01 00 |]/v.....|8....k..|
|000007b0| 82 43 68 48 65 61 70 53 | 69 7a 65 00 9c 03 00 00 |.ChHeapS|ize.....|
|000007c0| 45 fd ff ff 24 77 56 8e | 03 00 63 81 9c 03 00 00 |E...$wV.|..c.....|
|000007d0| 64 73 01 00 82 4d 61 69 | 6e 00 70 53 69 7a 65 00 |ds...Mai|n.pSize.|
|000007e0| 00 04 00 00 45 fd ff ff | 99 1e e0 8d 03 00 08 c6 |....E...|........|
|000007f0| 00 04 00 00 24 77 01 00 | 82 4d 6f 76 65 42 6c 6f |....$w..|.MoveBlo|
|00000800| 63 6b 00 00 d0 03 00 00 | 45 fd ff ff 49 4f 51 8e |ck......|E...IOQ.|
|00000810| 03 00 a6 9c d0 03 00 00 | 48 7b 01 00 82 52 65 64 |........|H{...Red|
|00000820| 61 77 00 6f 63 6b 00 00 | 58 04 00 00 45 fd ff ff |aw.ock..|X...E...|
|00000830| 31 7a 56 8e 03 00 ac c4 | 58 04 00 00 3c 7f 01 00 |1zV.....|X...<...|
|00000840| 82 52 65 6d 6f 76 65 42 | 6c 6f 63 00 98 02 00 00 |.RemoveB|loc.....|
|00000850| 45 fd ff ff 05 b9 f1 8e | 03 00 73 d4 98 02 00 00 |E.......|..s.....|
|00000860| b8 83 01 00 82 53 63 61 | 6e 46 69 6c 65 00 63 00 |.....Sca|nFile.c.|
|00000870| 4c 05 00 00 45 fd ff ff | 7e e4 f4 8e 03 00 03 e5 |L...E...|~.......|
|00000880| 4c 05 00 00 74 86 01 00 | 82 53 63 61 6e 50 69 70 |L...t...|.ScanPip|
|00000890| 65 46 53 00 e8 03 00 00 | 45 fd ff ff 27 4d 51 8e |eFS.....|E...'MQ.|
|000008a0| 03 00 13 74 e8 03 00 00 | e4 8b 01 00 82 53 74 61 |...t....|.....Sta|
|000008b0| 72 74 41 70 70 00 53 00 | 6c 06 00 00 45 fd ff ff |rtApp.S.|l...E...|
|000008c0| d7 40 76 8d 03 00 1b 88 | 6c 06 00 00 f0 8f 01 00 |.@v.....|l.......|
|000008d0| 82 53 74 61 74 44 69 73 | 70 6c 00 00 f8 02 00 00 |.StatDis|pl......|
|000008e0| 45 fd ff ff c3 49 51 8e | 03 00 22 41 f8 02 00 00 |E....IQ.|.."A....|
|000008f0| 80 96 01 00 00 21 52 75 | 6e 49 6d 61 67 65 00 00 |.....!Ru|nImage..|
|00000900| 28 9e 00 00 45 f8 ff ff | b8 e5 f4 8e 03 0c 35 da |(...E...|......5.|
|00000910| bc 5d 00 00 2f 80 00 00 | 82 52 75 6e 50 72 6f 67 |.]../...|.RunProg|
|00000920| 00 65 00 00 54 00 00 00 | 45 eb ff ff 2b 30 e0 8d |.e..T...|E...+0..|
|00000930| 03 00 8f 5f 54 00 00 00 | 9c 99 01 00 00 4d 61 6b |..._T...|.....Mak|
|00000940| 65 66 69 6c 65 00 00 00 | e6 18 00 00 45 e1 ff ff |efile...|....E...|
|00000950| cd e5 f4 8e 03 0c 23 3e | 9c 08 00 00 df 76 00 00 |......#>|.....v..|
|00000960| 82 54 65 6d 70 6c 61 74 | 65 73 00 00 9f 03 00 00 |.Templat|es......|
|00000970| 45 ec ff ff c5 2c 56 8e | 03 00 ee c0 9f 03 00 00 |E....,V.|........|
|00000980| 14 9a 01 00 00 48 65 61 | 70 47 72 61 70 68 00 00 |.....Hea|pGraph..|
|00000990| ff ff ff ff 45 dc fd ff | 73 79 84 91 00 00 00 00 |....E...|sy......|
|000009a0| ff ff ff ff 94 11 00 80 | 82 21 48 65 6c 70 00 61 |........|.!Help.a|
|000009b0| 70 68 00 00 ac 0d 00 00 | 45 ff ff ff 05 46 f4 8e |ph......|E....F..|
|000009c0| 03 00 81 26 ac 0d 00 00 | d7 9d 01 00 82 45 78 61 |...&....|.....Exa|
|000009d0| 6d 70 6c 65 00 68 00 00 | ff ff ff ff 45 dc fd ff |mple.h..|....E...|
|000009e0| 78 84 84 91 00 00 00 00 | ff ff ff ff 84 0c 00 80 |x.......|........|
|000009f0| 82 63 00 65 6c 70 00 61 | 70 68 00 00 ff ff ff ff |.c.elp.a|ph......|
|00000a00| 45 dc fd ff 7e 84 84 91 | 00 00 00 00 ff ff ff ff |E...~...|........|
|00000a10| fc 09 00 80 82 4d 61 69 | 6e 00 00 61 70 68 00 00 |.....Mai|n..aph..|
|00000a20| 7a 07 00 00 45 ff ff ff | 31 4b f1 8e 03 00 81 fa |z...E...|1K......|
|00000a30| 7a 07 00 00 a7 ab 01 00 | 00 45 78 61 6d 70 6c 65 |z.......|.Example|
|00000a40| 00 68 00 00 ff ff ff ff | 45 dc fd ff 78 84 84 91 |.h......|E...x...|
|00000a50| 00 00 00 00 ff ff ff ff | 70 11 00 80 82 44 65 62 |........|p....Deb|
|00000a60| 75 67 00 61 70 68 00 00 | ff ff ff ff 45 dc fd ff |ug.aph..|....E...|
|00000a70| bd 84 84 91 00 00 00 00 | ff ff ff ff d4 0a 00 80 |........|........|
|00000a80| 82 21 52 75 6e 00 00 61 | 70 68 00 00 8f 00 00 00 |.!Run..a|ph......|
|00000a90| 45 eb ff ff f0 c3 e0 89 | 03 00 bf e3 8f 00 00 00 |E.......|........|
|00000aa0| 45 b3 01 00 82 6f 00 62 | 75 67 00 61 70 68 00 00 |E....o.b|ug.aph..|
|00000ab0| ff ff ff ff 45 dc fd ff | ed 84 84 91 00 00 00 00 |....E...|........|
|00000ac0| ff ff ff ff 8c 0a 00 80 | 00 21 52 75 6e 00 00 61 |........|.!Run..a|
|00000ad0| 70 68 00 00 8f 00 00 00 | 45 eb ff ff f0 c3 e0 89 |ph......|E.......|
|00000ae0| 03 0c bf e3 80 00 00 00 | bf 14 01 00 82 52 75 6e |........|.....Run|
|00000af0| 50 72 6f 67 00 68 00 00 | ec 00 00 00 44 eb ff ff |Prog.h..|....D...|
|00000b00| 15 5c 2f 99 03 00 38 2c | ec 00 00 00 f8 b3 01 00 |.\/...8,|........|
|00000b10| 00 45 78 61 6d 70 6c 65 | 00 68 00 00 ff ff ff ff |.Example|.h......|
|00000b20| 45 dc fd ff 78 84 84 91 | 00 00 00 00 ff ff ff ff |E...x...|........|
|00000b30| 70 11 00 80 82 68 00 6e | 50 72 6f 67 00 68 00 00 |p....h.n|Prog.h..|
|00000b40| ff ff ff ff 45 dc fd ff | 27 85 84 91 00 00 00 00 |....E...|'.......|
|00000b50| ff ff ff ff 1c 0b 00 80 | 00 45 78 61 6d 70 6c 65 |........|.Example|
|00000b60| 00 68 00 00 ff ff ff ff | 45 dc fd ff 78 84 84 91 |.h......|E...x...|
|00000b70| 00 00 00 00 ff ff ff ff | 70 11 00 80 82 4d 61 6b |........|p....Mak|
|00000b80| 65 66 69 6c 65 00 00 00 | 47 02 00 00 45 e1 ff ff |efile...|G...E...|
|00000b90| 01 52 f1 8e 03 00 50 55 | 47 02 00 00 08 b5 01 00 |.R....PU|G.......|
|00000ba0| 82 4e 6f 72 6d 61 6c 00 | 00 68 00 00 ff ff ff ff |.Normal.|.h......|
|00000bb0| 45 dc fd ff 59 85 84 91 | 00 00 00 00 ff ff ff ff |E...Y...|........|
|00000bc0| 60 0c 00 80 82 21 52 75 | 6e 00 6c 00 00 68 00 00 |`....!Ru|n.l..h..|
|00000bd0| 77 00 00 00 45 eb ff ff | a2 20 67 8d 03 00 b1 4c |w...E...|. g....L|
|00000be0| 77 00 00 00 73 b7 01 00 | 82 21 52 75 6e 49 6d 61 |w...s...|.!RunIma|
|00000bf0| 67 65 00 00 a0 20 00 00 | 45 f8 ff ff f6 51 f1 8e |ge... ..|E....Q..|
|00000c00| 03 00 e1 41 a0 20 00 00 | 0e b8 01 00 82 6f 00 75 |...A. ..|.....o.u|
|00000c10| 6e 00 6c 00 00 68 00 00 | ff ff ff ff 45 dc fd ff |n.l..h..|....E...|
|00000c20| d3 85 84 91 00 00 00 00 | ff ff ff ff 18 0c 00 80 |........|........|
|00000c30| 82 4d 61 69 6e 00 6c 00 | 00 68 00 00 9c 04 00 00 |.Main.l.|.h......|
|00000c40| 45 fd ff ff 6b 51 f1 8e | 03 00 07 8b 9c 04 00 00 |E...kQ..|........|
|00000c50| d2 d8 01 00 00 21 52 75 | 6e 49 6d 61 67 65 00 00 |.....!Ru|nImage..|
|00000c60| a0 20 00 00 45 f8 ff ff | f6 51 f1 8e 03 0c e1 41 |. ..E...|.Q.....A|
|00000c70| 84 0a 00 00 cb 18 01 00 | 82 52 75 6e 50 72 6f 67 |........|.RunProg|
|00000c80| 00 65 00 00 54 00 00 00 | 44 d7 ff ff 37 e5 29 c9 |.e..T...|D...7.).|
|00000c90| 03 00 4e 31 54 00 00 00 | 92 dd 01 00 00 4d 61 6b |..N1T...|.....Mak|
|00000ca0| 65 66 69 6c 65 00 00 00 | 47 02 00 00 45 e1 ff ff |efile...|G...E...|
|00000cb0| 01 52 f1 8e 03 0c 50 55 | bc 01 00 00 5b 16 01 00 |.R....PU|....[...|
|00000cc0| 00 21 48 65 6c 70 00 61 | 70 68 00 00 ac 0d 00 00 |.!Help.a|ph......|
|00000cd0| 45 ff ff ff 05 46 f4 8e | 03 0c 81 26 0c 08 00 00 |E....F..|...&....|
|00000ce0| ef 07 01 00 82 68 00 6b | 65 66 69 6c 65 00 00 00 |.....h.k|efile...|
|00000cf0| ff ff ff ff 45 dc fd ff | 68 86 84 91 00 00 00 00 |....E...|h.......|
|00000d00| ff ff ff ff f0 0c 00 80 | 82 48 65 61 70 47 72 61 |........|.HeapGra|
|00000d10| 70 68 00 00 bf 09 00 00 | 45 ff ff ff 38 a5 eb 8e |ph......|E...8...|
|00000d20| 03 00 93 64 bf 09 00 00 | 0a de 01 00 00 21 48 65 |...d....|.....!He|
|00000d30| 6c 70 00 61 70 68 00 00 | ac 0d 00 00 45 ff ff ff |lp.aph..|....E...|
|00000d40| 05 46 f4 8e 03 0c 81 26 | 0c 08 00 00 ef 07 01 00 |.F.....&|........|
|00000d50| 82 6f 00 61 70 47 72 61 | 70 68 00 00 ff ff ff ff |.o.apGra|ph......|
|00000d60| 45 dc fd ff b4 86 84 91 | 00 00 00 00 ff ff ff ff |E.......|........|
|00000d70| 5c 0d 00 80 82 48 47 4c | 69 62 00 61 70 68 00 00 |\....HGL|ib.aph..|
|00000d80| 5c 0f 00 00 45 fd ff ff | e0 c8 f4 8e 03 00 30 0d |\...E...|......0.|
|00000d90| 5c 0f 00 00 ed e7 01 00 | 00 21 48 65 6c 70 00 61 |\.......|.!Help.a|
|00000da0| 70 68 00 00 ac 0d 00 00 | 45 ff ff ff 05 46 f4 8e |ph......|E....F..|
|00000db0| 03 0c 81 26 0c 08 00 00 | ef 07 01 00 82 53 6f 75 |...&....|.....Sou|
|00000dc0| 72 63 65 73 00 68 00 00 | ff ff ff ff 45 dc fd ff |rces.h..|....E...|
|00000dd0| f3 86 84 91 00 00 00 00 | ff ff ff ff e8 0e 00 80 |........|........|
|00000de0| 82 63 00 65 6c 70 00 61 | 70 68 00 00 ff ff ff ff |.c.elp.a|ph......|
|00000df0| 45 dc fd ff f7 86 84 91 | 00 00 00 00 ff ff ff ff |E.......|........|
|00000e00| ec 0d 00 80 82 48 65 61 | 70 47 72 61 70 68 00 00 |.....Hea|pGraph..|
|00000e10| 0c 13 00 00 45 ff ff ff | 83 08 70 90 03 00 8e 42 |....E...|..p....B|
|00000e20| 0c 13 00 00 6d f7 01 00 | 00 53 6f 75 72 63 65 73 |....m...|.Sources|
|00000e30| 00 68 00 00 ff ff ff ff | 45 dc fd ff f3 86 84 91 |.h......|E.......|
|00000e40| 00 00 00 00 ff ff ff ff | 70 11 00 80 82 68 00 61 |........|p....h.a|
|00000e50| 70 47 72 61 70 68 00 00 | ff ff ff ff 45 dc fd ff |pGraph..|....E...|
|00000e60| 41 87 84 91 00 00 00 00 | ff ff ff ff 34 0e 00 80 |A.......|....4...|
|00000e70| 00 53 6f 75 72 63 65 73 | 00 68 00 00 ff ff ff ff |.Sources|.h......|
|00000e80| 45 dc fd ff f3 86 84 91 | 00 00 00 00 ff ff ff ff |E.......|........|
|00000e90| 70 11 00 80 82 4d 61 6b | 65 66 69 6c 65 00 00 00 |p....Mak|efile...|
|00000ea0| 40 02 00 00 45 e1 ff ff | 0d c9 f4 8e 03 00 ad e8 |@...E...|........|
|00000eb0| 40 02 00 00 9d 0a 02 00 | 82 6f 00 75 72 63 65 73 |@.......|.o.urces|
|00000ec0| 00 68 00 00 ff ff ff ff | 45 dc fd ff 71 87 84 91 |.h......|E...q...|
|00000ed0| 00 00 00 00 ff ff ff ff | c4 0e 00 80 82 48 65 61 |........|.....Hea|
|00000ee0| 70 47 72 61 70 68 00 00 | 54 0e 00 00 45 fd ff ff |pGraph..|T...E...|
|00000ef0| c2 c8 f4 8e 03 00 81 b8 | 54 0e 00 00 01 0d 02 00 |........|T.......|
|00000f00| 00 4d 61 6b 65 66 69 6c | 65 00 00 00 40 02 00 00 |.Makefil|e...@...|
|00000f10| 45 e1 ff ff 0d c9 f4 8e | 03 0c ad e8 98 01 00 00 |E.......|........|
|00000f20| a3 40 01 00 00 21 48 65 | 6c 70 00 61 70 68 00 00 |.@...!He|lp.aph..|
|00000f30| ac 0d 00 00 45 ff ff ff | 05 46 f4 8e 03 0c 81 26 |....E...|.F.....&|
|00000f40| 0c 08 00 00 ef 07 01 00 | 00 68 00 00 00 00 00 00 |........|.h......|
|00000f50| 00 00 00 00 ff ff ff ff | 45 dc fd ff 68 86 84 91 |........|E...h...|
|00000f60| 33 00 00 00 ff ff ff ff | cc c8 dc bd 82 52 65 61 |3.......|.....Rea|
|00000f70| 64 4d 65 00 6f 63 73 00 | d5 04 00 00 45 ff ff ff |dMe.ocs.|....E...|
|00000f80| 14 62 86 91 33 00 44 2f | d5 04 00 00 24 00 00 00 |.b..3.D/|....$...|
|00000f90| 82 53 74 75 62 73 48 61 | 63 6b 00 00 ff ff ff ff |.StubsHa|ck......|
|00000fa0| 45 dc fd ff 22 89 84 91 | 30 00 00 00 ff ff ff ff |E..."...|0.......|
|00000fb0| b8 11 00 80 82 21 48 65 | 6c 70 00 61 63 6b 00 00 |.....!He|lp.ack..|
|00000fc0| 74 10 00 00 45 ff ff ff | 5a ec f3 8e 03 00 f3 b4 |t...E...|Z.......|
|00000fd0| 74 10 00 00 79 1b 02 00 | 82 68 00 75 62 73 48 61 |t...y...|.h.ubsHa|
|00000fe0| 63 6b 00 00 ff ff ff ff | 45 dc fd ff 5c 89 84 91 |ck......|E...\...|
|00000ff0| 30 00 00 00 ff ff ff ff | e4 0f 00 80 82 53 74 75 |0.......|.....Stu|
|00001000| 62 73 48 61 63 6b 00 00 | e1 12 00 00 45 ff ff ff |bsHack..|....E...|
|00001010| 55 45 f3 8e 03 00 8a 94 | e1 12 00 00 11 2c 02 00 |UE......|.....,..|
|00001020| 00 21 48 65 6c 70 00 61 | 63 6b 00 00 74 10 00 00 |.!Help.a|ck..t...|
|00001030| 45 ff ff ff 5a ec f3 8e | 03 0c f3 b4 00 09 00 00 |E...Z...|........|
|00001040| 97 4a 01 00 82 6f 00 75 | 62 73 48 61 63 6b 00 00 |.J...o.u|bsHack..|
|00001050| ff ff ff ff 45 dc fd ff | 9e 89 84 91 30 00 00 00 |....E...|....0...|
|00001060| ff ff ff ff 50 10 00 80 | 82 53 48 4c 69 62 00 61 |....P...|.SHLib.a|
|00001070| 63 6b 00 00 f4 06 00 00 | 45 fd ff ff ef c1 f4 8e |ck......|E.......|
|00001080| 03 00 93 b0 f4 06 00 00 | 16 3f 02 00 00 21 48 65 |........|.?...!He|
|00001090| 6c 70 00 61 63 6b 00 00 | 74 10 00 00 45 ff ff ff |lp.ack..|t...E...|
|000010a0| 5a ec f3 8e 03 0c f3 b4 | 00 09 00 00 97 4a 01 00 |Z.......|.....J..|
|000010b0| 82 53 6f 75 72 63 65 73 | 00 6b 00 00 ff ff ff ff |.Sources|.k......|
|000010c0| 45 dc fd ff d6 89 84 91 | 30 00 00 00 ff ff ff ff |E.......|0.......|
|000010d0| 94 11 00 80 82 63 00 65 | 6c 70 00 61 63 6b 00 00 |.....c.e|lp.ack..|
|000010e0| ff ff ff ff 45 dc fd ff | dd 89 84 91 30 00 00 00 |....E...|....0...|
|000010f0| ff ff ff ff e0 10 00 80 | 82 53 74 75 62 73 48 61 |........|.StubsHa|
|00001100| 63 6b 00 00 6a 0a 00 00 | 45 ff ff ff 48 f7 ec 8e |ck..j...|E...H...|
|00001110| 03 00 7b 20 6a 0a 00 00 | 2e 46 02 00 00 53 6f 75 |..{ j...|.F...Sou|
|00001120| 72 63 65 73 00 6b 00 00 | ff ff ff ff 45 dc fd ff |rces.k..|....E...|
|00001130| d6 89 84 91 30 00 00 00 | ff ff ff ff 94 11 00 80 |....0...|........|
|00001140| 82 4d 61 6b 65 66 69 6c | 65 00 00 00 42 02 00 00 |.Makefil|e...B...|
|00001150| 45 e1 ff ff 0f c2 f4 8e | 03 00 10 e4 42 02 00 00 |E.......|....B...|
|00001160| bc 50 02 00 82 6f 00 75 | 72 63 65 73 00 6b 00 00 |.P...o.u|rces.k..|
|00001170| ff ff ff ff 45 dc fd ff | 46 8a 84 91 30 00 00 00 |....E...|F...0...|
|00001180| ff ff ff ff 70 11 00 80 | 82 53 74 75 62 73 48 61 |....p...|.StubsHa|
|00001190| 63 6b 00 00 74 05 00 00 | 45 fd ff ff cf c1 f4 8e |ck..t...|E.......|
|000011a0| 03 00 fd 27 74 05 00 00 | 22 53 02 00 00 4d 61 6b |...'t...|"S...Mak|
|000011b0| 65 66 69 6c 65 00 00 00 | 42 02 00 00 45 e1 ff ff |efile...|B...E...|
|000011c0| 0f c2 f4 8e 03 0c 10 e4 | 9c 01 00 00 83 67 01 00 |........|.....g..|
|000011d0| 00 21 48 65 6c 70 00 61 | 63 6b 00 00 74 10 00 00 |.!Help.a|ck..t...|
|000011e0| 45 ff ff ff 5a ec f3 8e | 03 0c f3 b4 00 09 00 00 |E...Z...|........|
|000011f0| 97 4a 01 00 00 53 68 6f | 72 74 48 44 6f 63 73 00 |.J...Sho|rtHDocs.|
|00001200| 76 24 00 00 45 ff ff ff | c8 c4 60 97 03 0c e6 05 |v$..E...|..`.....|
|00001210| d0 13 00 00 24 00 00 00 | 00 00 00 00 00 00 00 00 |....$...|........|
|00001220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001230| 00 00 00 00 00 00 00 00 | 00 00 00 00 66 75 6e 63 |........|....func|
|00001240| 74 69 6f 6e 73 20 28 6d | 61 6c 6c 6f 63 2c 20 72 |tions (m|alloc, r|
|00001250| 65 61 6c 6c 6f 63 2c 20 | 63 61 6c 6c 6f 63 2c 20 |ealloc, |calloc, |
|00001260| 66 72 65 65 29 20 74 6f | 20 79 6f 75 72 20 6f 77 |free) to| your ow|
|00001270| 6e 20 66 75 6e 63 74 69 | 6f 6e 2e 20 54 68 69 73 |n functi|on. This|
|00001280| 0a 63 6f 75 6c 64 20 62 | 65 20 75 73 65 64 20 74 |.could b|e used t|
|00001290| 6f 20 61 64 64 20 68 65 | 61 70 2d 63 68 65 63 6b |o add he|ap-check|
|000012a0| 69 6e 67 20 74 6f 20 74 | 68 65 20 6d 61 6c 6c 6f |ing to t|he mallo|
|000012b0| 63 20 66 75 6e 63 74 69 | 6f 6e 73 2e 0a 0a 54 68 |c functi|ons...Th|
|000012c0| 65 20 69 6d 70 6f 72 74 | 61 6e 74 20 70 6f 69 6e |e import|ant poin|
|000012d0| 74 20 69 73 20 74 68 61 | 74 20 74 68 69 73 20 68 |t is tha|t this h|
|000012e0| 61 70 70 65 6e 73 20 61 | 74 20 2a 72 75 6e 74 69 |appens a|t *runti|
|000012f0| 6d 65 2a 2c 20 73 6f 20 | 65 76 65 6e 20 69 66 20 |me*, so |even if |
|00001300| 79 6f 75 0a 6c 69 6e 6b | 20 79 6f 75 72 20 70 72 |you.link| your pr|
|00001310| 6f 67 72 61 6d 20 77 69 | 74 68 20 61 20 6c 69 62 |ogram wi|th a lib|
|00001320| 72 61 72 79 20 77 68 69 | 63 68 20 77 61 73 20 63 |rary whi|ch was c|
|00001330| 6f 6d 70 69 6c 65 64 20 | 79 65 61 72 73 20 61 67 |ompiled |years ag|
|00001340| 6f 2c 20 61 6c 6c 0a 6d | 61 6c 6c 6f 63 20 63 61 |o, all.m|alloc ca|
|00001350| 6c 6c 73 20 77 69 74 68 | 69 6e 20 74 68 65 20 6c |lls with|in the l|
|00001360| 69 62 72 61 72 79 20 77 | 69 6c 6c 20 62 65 20 72 |ibrary w|ill be r|
|00001370| 65 64 69 72 65 63 74 65 | 64 2e 0a 0a 53 65 65 20 |edirecte|d...See |
|00001380| 6d 79 20 27 48 65 61 70 | 47 72 61 70 68 27 20 6c |my 'Heap|Graph' l|
|00001390| 69 62 72 61 72 79 20 66 | 6f 72 20 61 6e 20 65 78 |ibrary f|or an ex|
|000013a0| 61 6d 70 6c 65 20 6f 66 | 20 68 6f 77 20 74 6f 20 |ample of| how to |
|000013b0| 75 73 65 20 53 74 75 62 | 73 48 61 63 6b 2e 0a 90 |use Stub|sHack...|
|000013c0| 03 48 65 61 70 47 72 61 | 70 68 0a 2d 90 09 0a 0a |.HeapGra|ph.-....|
|000013d0| 54 68 69 73 20 69 73 20 | 61 20 43 20 6c 69 62 72 |This is |a C libr|
|000013e0| 61 72 79 20 77 68 69 63 | 68 20 75 73 65 73 20 6d |ary whic|h uses m|
|000013f0| 79 20 53 74 75 62 73 48 | 61 63 6b 20 6c 69 62 72 |y StubsH|ack libr|
|00001400| 61 72 79 20 74 6f 20 70 | 72 6f 76 69 64 65 20 61 |ary to p|rovide a|
|00001410| 0a 76 65 72 79 20 73 69 | 6d 70 6c 65 20 77 61 79 |.very si|mple way|
|00001420| 20 6f 66 20 6d 61 6b 69 | 6e 67 20 79 6f 75 72 20 | of maki|ng your |
|00001430| 70 72 6f 67 46 69 6c 65 | 44 61 74 61 82 52 65 61 |progFile|Data.Rea|
|00001440| 64 4d 65 00 6f 63 73 00 | d5 04 00 00 45 ff ff ff |dMe.ocs.|....E...|
|00001450| 14 62 86 91 03 00 44 2f | 0a 48 65 72 65 20 61 72 |.b....D/|.Here ar|
|00001460| 65 20 74 77 6f 20 43 20 | 6c 69 62 72 61 72 79 73 |e two C |librarys|
|00001470| 3a 0a 0a 0a 53 74 75 62 | 73 48 61 63 6b 0a 2d 2d |:...Stub|sHack.--|
|00001480| 2d 2d 2d 2d 2d 2d 2d 0a | 0a 54 68 69 73 20 69 73 |-------.|.This is|
|00001490| 20 61 20 43 20 6c 69 62 | 72 61 72 79 20 77 68 69 | a C lib|rary whi|
|000014a0| 63 68 20 75 73 65 73 20 | 61 6e 20 69 64 65 61 20 |ch uses |an idea |
|000014b0| 6f 66 20 4d 61 72 74 69 | 6e 20 45 62 6f 75 72 6e |of Marti|n Ebourn|
|000014c0| 65 27 73 20 74 6f 20 65 | 6e 61 62 6c 65 20 79 6f |e's to e|nable yo|
|000014d0| 75 0a 74 6f 20 76 65 72 | 79 20 65 61 73 69 6c 79 |u.to ver|y easily|
|000014e0| 20 72 65 64 69 72 65 63 | 74 20 61 6c 6c 20 63 61 | redirec|t all ca|
|000014f0| 6c 6c 73 20 74 6f 20 74 | 68 65 20 41 4e 53 49 20 |lls to t|he ANSI |
|00001500| 6d 65 6d 6f 72 79 20 61 | 6c 6c 6f 63 61 74 69 6f |memory a|llocatio|
|00001510| 6e 0a 66 75 6e 63 74 69 | 6f 6e 73 20 28 6d 61 6c |n.functi|ons (mal|
|00001520| 6c 6f 63 2c 20 72 65 61 | 6c 6c 6f 63 2c 20 63 61 |loc, rea|lloc, ca|
|00001530| 6c 6c 6f 63 2c 20 66 72 | 65 65 29 20 74 6f 20 79 |lloc, fr|ee) to y|
|00001540| 6f 75 72 20 6f 77 6e 20 | 66 75 6e 63 74 69 6f 6e |our own |function|
|00001550| 2e 20 54 68 69 73 0a 63 | 6f 75 6c 64 20 62 65 20 |. This.c|ould be |
|00001560| 75 73 65 64 20 74 6f 20 | 61 64 64 20 68 65 61 70 |used to |add heap|
|00001570| 2d 63 68 65 63 6b 69 6e | 67 20 74 6f 20 74 68 65 |-checkin|g to the|
|00001580| 20 6d 61 6c 6c 6f 63 20 | 66 75 6e 63 74 69 6f 6e | malloc |function|
|00001590| 73 2e 0a 0a 54 68 65 20 | 69 6d 70 6f 72 74 61 6e |s...The |importan|
|000015a0| 74 20 70 6f 69 6e 74 20 | 69 73 20 74 68 61 74 20 |t point |is that |
|000015b0| 74 68 69 73 20 68 61 70 | 70 65 6e 73 20 61 74 20 |this hap|pens at |
|000015c0| 2a 72 75 6e 74 69 6d 65 | 2a 2c 20 73 6f 20 65 76 |*runtime|*, so ev|
|000015d0| 65 6e 20 69 66 20 79 6f | 75 0a 6c 69 6e 6b 20 79 |en if yo|u.link y|
|000015e0| 6f 75 72 20 70 72 6f 67 | 72 61 6d 20 77 69 74 68 |our prog|ram with|
|000015f0| 20 61 20 6c 69 62 72 61 | 72 79 20 77 68 69 63 68 | a libra|ry which|
|00001600| 20 77 61 73 20 63 6f 6d | 70 69 6c 65 64 20 79 65 | was com|piled ye|
|00001610| 61 72 73 20 61 67 6f 2c | 20 61 6c 6c 0a 6d 61 6c |ars ago,| all.mal|
|00001620| 6c 6f 63 20 63 61 6c 6c | 73 20 77 69 74 68 69 6e |loc call|s within|
|00001630| 20 74 68 65 20 6c 69 62 | 72 61 72 79 20 77 69 6c | the lib|rary wil|
|00001640| 6c 20 62 65 20 72 65 64 | 69 72 65 63 74 65 64 2e |l be red|irected.|
|00001650| 0a 0a 53 65 65 20 6d 79 | 20 27 48 65 61 70 47 72 |..See my| 'HeapGr|
|00001660| 61 70 68 27 20 6c 69 62 | 72 61 72 79 20 66 6f 72 |aph' lib|rary for|
|00001670| 20 61 6e 20 65 78 61 6d | 70 6c 65 20 6f 66 20 68 | an exam|ple of h|
|00001680| 6f 77 20 74 6f 20 75 73 | 65 20 53 74 75 62 73 48 |ow to us|e StubsH|
|00001690| 61 63 6b 2e 0a 0a 0a 48 | 65 61 70 47 72 61 70 68 |ack....H|eapGraph|
|000016a0| 0a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0a 0a 54 68 69 73 |.-------|--..This|
|000016b0| 20 69 73 20 61 20 43 20 | 6c 69 62 72 61 72 79 20 | is a C |library |
|000016c0| 77 68 69 63 68 20 75 73 | 65 73 20 6d 79 20 53 74 |which us|es my St|
|000016d0| 75 62 73 48 61 63 6b 20 | 6c 69 62 72 61 72 79 20 |ubsHack |library |
|000016e0| 74 6f 20 70 72 6f 76 69 | 64 65 20 61 0a 76 65 72 |to provi|de a.ver|
|000016f0| 79 20 73 69 6d 70 6c 65 | 20 77 61 79 20 6f 66 20 |y simple| way of |
|00001700| 6d 61 6b 69 6e 67 20 79 | 6f 75 72 20 70 72 6f 67 |making y|our prog|
|00001710| 72 61 6d 20 73 65 6e 64 | 20 69 6e 66 6f 72 6d 61 |ram send| informa|
|00001720| 74 69 6f 6e 20 6f 6e 20 | 65 76 65 72 79 20 62 6c |tion on |every bl|
|00001730| 6f 63 6b 0a 6f 66 20 6d | 65 6d 6f 72 79 20 61 6c |ock.of m|emory al|
|00001740| 6c 6f 63 61 74 65 64 2f | 66 72 65 65 64 20 74 6f |located/|freed to|
|00001750| 20 61 20 66 69 6c 65 20 | 69 6e 20 70 69 70 65 3a | a file |in pipe:|
|00001760| 24 2e 43 5f 44 65 62 75 | 67 2e 20 54 68 69 73 20 |$.C_Debu|g. This |
|00001770| 69 73 20 73 63 61 6e 6e | 65 64 0a 62 79 20 74 68 |is scann|ed.by th|
|00001780| 65 20 69 6e 63 6c 75 64 | 65 64 20 61 70 70 6c 69 |e includ|ed appli|
|00001790| 63 61 74 69 6f 6e 20 21 | 48 65 61 70 44 69 73 70 |cation !|HeapDisp|
|000017a0| 2c 20 77 68 69 63 68 20 | 64 69 73 70 6c 61 79 73 |, which |displays|
|000017b0| 20 79 6f 75 72 20 70 72 | 6f 67 72 61 6d 27 73 0a | your pr|ogram's.|
|000017c0| 68 65 61 70 20 67 72 61 | 70 68 69 63 61 6c 6c 79 |heap gra|phically|
|000017d0| 20 69 6e 20 72 65 61 6c | 20 74 69 6d 65 2c 20 61 | in real| time, a|
|000017e0| 6e 64 20 61 6c 73 6f 20 | 64 69 73 70 6c 61 79 73 |nd also |displays|
|000017f0| 20 64 69 61 67 6e 6f 73 | 74 69 63 20 74 65 78 74 | diagnos|tic text|
|00001800| 2e 20 0a 0a 41 6e 20 65 | 78 61 6d 70 6c 65 20 61 |. ..An e|xample a|
|00001810| 70 70 6c 69 63 61 74 69 | 6f 6e 20 69 73 20 69 6e |pplicati|on is in|
|00001820| 63 6c 75 64 65 64 2e 0a | 0a 0a 0a 41 6c 6c 20 73 |cluded..|...All s|
|00001830| 6f 75 72 63 65 20 69 73 | 20 69 6e 63 6c 75 64 65 |ource is| include|
|00001840| 64 2e 0a 0a 0a 2d 20 4a | 75 6c 69 61 6e 20 53 6d |d....- J|ulian Sm|
|00001850| 69 74 68 0a 0a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ith..---|--------|
|00001860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 6a 75 |--------|-----.ju|
|00001870| 6c 69 61 6e 73 40 63 6f | 67 73 63 69 2e 65 64 2e |lians@co|gsci.ed.|
|00001880| 61 63 2e 75 6b 0a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ac.uk.--|--------|
|00001890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0a 0a |--------|------..|
|000018a0| 6f 72 3a 0a 0a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |or:..---|--------|
|000018b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 44 65 |--------|-----.De|
|000018c0| 70 61 72 74 6d 65 6e 74 | 20 6f 66 20 50 73 79 63 |partment| of Psyc|
|000018d0| 68 6f 6c 6f 67 79 0a 55 | 6e 69 76 65 72 73 69 74 |hology.U|niversit|
|000018e0| 79 20 6f 66 20 45 64 69 | 6e 62 75 72 67 68 0a 37 |y of Edi|nburgh.7|
|000018f0| 20 47 65 6f 72 67 65 20 | 53 71 75 61 72 65 0a 45 | George |Square.E|
|00001900| 64 69 6e 62 75 72 67 68 | 0a 45 48 38 20 39 4a 5a |dinburgh|.EH8 9JZ|
|00001910| 0a 55 4b 0a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.UK.----|--------|
|00001920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0a 46 69 6c |--------|----.Fil|
|00001930| 65 44 61 74 61 82 21 48 | 65 6c 70 00 69 73 70 00 |eData.!H|elp.isp.|
|00001940| 00 fd 04 00 00 45 ff ff | ff a8 04 f4 8d 03 00 eb |.....E..|........|
|00001950| 8b 21 48 65 61 70 44 69 | 73 70 0a 2d 2d 2d 2d 2d |.!HeapDi|sp.-----|
|00001960| 2d 2d 2d 2d 0a 0a 0a 21 | 48 65 61 70 44 69 73 70 |----...!|HeapDisp|
|00001970| 20 77 69 6c 6c 20 63 6f | 6e 74 69 6e 75 6f 75 73 | will co|ntinuous|
|00001980| 6c 79 20 73 63 61 6e 20 | 50 69 70 65 3a 24 2e 43 |ly scan |Pipe:$.C|
|00001990| 5f 44 65 62 75 67 2e 2a | 2e 20 57 68 65 6e 20 69 |_Debug.*|. When i|
|000019a0| 74 20 66 69 6e 64 73 20 | 61 0a 66 69 6c 65 2c 20 |t finds |a.file, |
|000019b0| 69 74 20 77 69 6c 6c 20 | 6f 70 65 6e 20 61 20 73 |it will |open a s|
|000019c0| 65 70 61 72 61 74 65 20 | 77 69 6e 64 6f 77 20 66 |eparate |window f|
|000019d0| 6f 72 20 69 74 2c 20 61 | 6e 64 20 72 65 61 64 20 |or it, a|nd read |
|000019e0| 66 72 6f 6d 20 74 68 65 | 20 66 69 6c 65 2e 20 41 |from the| file. A|
|000019f0| 6e 79 0a 74 65 78 74 20 | 77 69 6c 6c 20 62 65 20 |ny.text |will be |
|00001a00| 64 69 73 70 6c 61 79 65 | 64 2c 20 61 6e 64 20 61 |displaye|d, and a|
|00001a10| 6e 79 20 68 65 61 70 2d | 69 6e 66 6f 72 6d 61 74 |ny heap-|informat|
|00001a20| 69 6f 6e 20 77 69 6c 6c | 20 62 65 20 69 6e 74 65 |ion will| be inte|
|00001a30| 72 70 72 65 74 65 64 20 | 61 6e 64 0a 75 73 65 64 |rpreted |and.used|
|00001a40| 20 74 6f 20 6d 61 6b 65 | 20 61 20 67 72 61 70 68 | to make| a graph|
|00001a50| 69 63 61 6c 20 64 69 73 | 70 6c 61 79 2e 0a 0a 50 |ical dis|play...P|
|00001a60| 72 65 73 73 69 6e 67 20 | 3c 53 68 69 66 74 3e 2d |ressing |<Shift>-|
|00001a70| 4d 65 6e 75 20 77 69 6c | 6c 20 62 72 69 6e 67 20 |Menu wil|l bring |
|00001a80| 75 70 20 61 20 73 61 76 | 65 20 62 6f 78 2e 20 49 |up a sav|e box. I|
|00001a90| 66 20 74 68 65 20 63 6c | 69 63 6b 20 77 61 73 20 |f the cl|ick was |
|00001aa0| 6f 76 65 72 0a 74 65 78 | 74 2c 20 74 68 69 73 20 |over.tex|t, this |
|00001ab0| 74 65 78 74 20 77 69 6c | 6c 20 62 65 20 73 61 76 |text wil|l be sav|
|00001ac0| 65 64 2e 20 49 66 20 74 | 68 65 20 63 6c 69 63 6b |ed. If t|he click|
|00001ad0| 20 77 61 73 20 6f 76 65 | 72 20 74 68 65 20 70 69 | was ove|r the pi|
|00001ae0| 63 74 75 72 65 20 6f 66 | 20 74 68 65 0a 68 65 61 |cture of| the.hea|
|00001af0| 70 2c 20 69 74 20 77 69 | 6c 6c 20 62 65 20 73 61 |p, it wi|ll be sa|
|00001b00| 76 65 64 20 61 73 20 61 | 20 73 70 72 69 74 65 2e |ved as a| sprite.|
|00001b10| 20 54 68 69 73 20 69 73 | 6e 27 74 20 70 61 72 74 | This is|n't part|
|00001b20| 69 63 75 6c 61 6c 79 20 | 75 73 65 66 75 6c 2c 20 |iculaly |useful, |
|00001b30| 62 75 74 0a 53 68 65 6c | 6c 20 68 61 73 20 74 68 |but.Shel|l has th|
|00001b40| 65 20 63 6f 64 65 20 69 | 6e 20 69 74 20 61 72 65 |e code i|n it are|
|00001b50| 61 64 79 2c 20 73 6f 20 | 74 68 65 72 65 27 73 20 |ady, so |there's |
|00001b60| 6e 6f 20 68 61 72 6d 20 | 64 6f 6e 65 20 6f 72 20 |no harm |done or |
|00001b70| 70 72 6f 67 72 61 6d 6d | 69 6e 67 0a 74 69 6d 65 |programm|ing.time|
|00001b80| 20 77 61 73 74 65 64 21 | 0a 0a 50 72 65 73 73 69 | wasted!|..Pressi|
|00001b90| 6e 67 20 4d 65 6e 75 20 | 77 69 6c 6c 20 62 72 69 |ng Menu |will bri|
|00001ba0| 6e 67 20 75 70 20 61 20 | 6d 65 6e 75 20 77 69 74 |ng up a |menu wit|
|00001bb0| 68 20 77 68 69 63 68 20 | 79 6f 75 20 63 61 6e 20 |h which |you can |
|00001bc0| 73 65 74 20 74 68 65 20 | 76 65 72 74 69 63 61 6c |set the |vertical|
|00001bd0| 0a 73 69 7a 65 20 6f 66 | 20 74 68 65 20 68 65 61 |.size of| the hea|
|00001be0| 70 20 64 69 73 70 6c 61 | 79 2e 0a 0a 57 68 65 6e |p displa|y...When|
|00001bf0| 20 61 20 62 6c 6f 63 6b | 20 6f 66 20 6d 65 6d 6f | a block| of memo|
|00001c00| 72 79 20 69 73 20 64 65 | 73 63 72 69 62 65 64 20 |ry is de|scribed |
|00001c10| 74 6f 20 21 44 69 73 70 | 6c 61 79 65 72 2c 20 61 |to !Disp|layer, a|
|00001c20| 20 34 2d 62 79 74 65 20 | 72 65 66 65 72 65 6e 63 | 4-byte |referenc|
|00001c30| 65 20 69 73 0a 67 69 76 | 65 6e 20 28 77 68 69 63 |e is.giv|en (whic|
|00001c40| 68 20 69 73 20 61 6c 77 | 61 79 73 20 30 20 69 6e |h is alw|ays 0 in|
|00001c50| 20 74 68 65 20 70 72 65 | 73 65 6e 74 20 76 65 72 | the pre|sent ver|
|00001c60| 73 69 6f 6e 20 6f 66 20 | 48 65 61 70 47 72 61 70 |sion of |HeapGrap|
|00001c70| 68 29 2e 0a 21 44 69 73 | 70 6c 61 79 65 72 20 77 |h)..!Dis|player w|
|00001c80| 69 6c 6c 20 63 6f 6c 6f | 75 72 20 74 68 65 20 62 |ill colo|ur the b|
|00001c90| 6c 6f 63 6b 20 69 6e 20 | 69 74 73 20 64 69 73 70 |lock in |its disp|
|00001ca0| 6c 61 79 20 61 63 63 6f | 72 64 69 6e 67 20 74 6f |lay acco|rding to|
|00001cb0| 20 74 68 65 20 6c 6f 77 | 65 73 74 0a 33 20 62 69 | the low|est.3 bi|
|00001cc0| 74 73 20 6f 66 20 74 68 | 69 73 20 72 65 66 2e 0a |ts of th|is ref..|
|00001cd0| 0a 0a 0a 21 48 65 61 70 | 44 69 73 70 20 75 73 65 |...!Heap|Disp use|
|00001ce0| 73 20 6d 79 20 53 68 65 | 6c 6c 20 6c 69 62 72 61 |s my She|ll libra|
|00001cf0| 72 79 20 61 6e 64 20 44 | 65 73 6b 4c 69 62 2c 20 |ry and D|eskLib, |
|00001d00| 61 6e 64 20 69 73 20 6e | 6f 74 20 70 61 72 74 69 |and is n|ot parti|
|00001d10| 63 75 6c 61 6c 79 0a 27 | 66 69 6e 69 73 68 65 64 |culaly.'|finished|
|00001d20| 27 2e 20 49 6e 20 70 61 | 72 74 69 63 75 6c 61 72 |'. In pa|rticular|
|00001d30| 2c 20 79 6f 75 20 63 61 | 6e 27 74 20 63 6c 6f 73 |, you ca|n't clos|
|00001d40| 65 20 6f 75 74 70 75 74 | 20 77 69 6e 64 6f 77 73 |e output| windows|
|00001d50| 2e 0a 0a 49 66 20 79 6f | 75 20 77 6f 75 6c 64 20 |...If yo|u would |
|00001d60| 6c 69 6b 65 20 74 6f 20 | 69 6d 70 72 6f 76 65 20 |like to |improve |
|00001d70| 69 74 2c 20 69 74 27 73 | 20 6d 61 64 65 20 61 76 |it, it's| made av|
|00001d80| 61 69 6c 61 62 6c 65 20 | 75 6e 64 65 72 0a 74 68 |ailable |under.th|
|00001d90| 65 20 47 4e 55 20 6c 69 | 63 65 6e 63 65 2c 20 73 |e GNU li|cence, s|
|00001da0| 6f 20 79 6f 75 20 6d 75 | 73 74 20 72 65 6c 65 61 |o you mu|st relea|
|00001db0| 73 65 20 74 68 65 20 73 | 6f 75 72 63 65 20 77 69 |se the s|ource wi|
|00001dc0| 74 68 20 61 6e 79 20 72 | 65 6c 65 61 73 65 64 0a |th any r|eleased.|
|00001dd0| 69 6d 70 72 6f 76 65 64 | 20 76 65 72 73 69 6f 6e |improved| version|
|00001de0| 2e 20 59 6f 75 20 77 69 | 6c 6c 20 6e 65 65 64 20 |. You wi|ll need |
|00001df0| 74 6f 20 67 65 74 20 74 | 68 65 20 44 65 73 6b 4c |to get t|he DeskL|
|00001e00| 69 62 20 61 6e 64 20 53 | 68 65 6c 6c 20 6c 69 62 |ib and S|hell lib|
|00001e10| 72 61 72 69 65 73 2c 0a | 62 6f 74 68 20 6f 66 20 |raries,.|both of |
|00001e20| 77 68 69 63 68 20 61 72 | 65 20 66 74 70 2d 61 62 |which ar|e ftp-ab|
|00001e30| 6c 65 20 66 72 6f 6d 20 | 6d 69 63 72 6f 73 2e 68 |le from |micros.h|
|00001e40| 65 6e 73 61 2e 61 63 2e | 75 6b 2e 0a 0a 0a 46 69 |ensa.ac.|uk....Fi|
|00001e50| 6c 65 44 61 74 61 82 21 | 52 75 6e 00 00 69 73 70 |leData.!|Run..isp|
|00001e60| 00 00 43 00 00 00 45 eb | ff ff e9 7e df 8d 03 00 |..C...E.|...~....|
|00001e70| cd 11 53 65 74 20 48 65 | 61 70 44 69 73 70 6c 61 |..Set He|apDispla|
|00001e80| 79 24 44 69 72 20 3c 4f | 62 65 79 24 44 69 72 3e |y$Dir <O|bey$Dir>|
|00001e90| 0a 46 69 6c 65 72 5f 52 | 75 6e 20 3c 4f 62 65 79 |.Filer_R|un <Obey|
|00001ea0| 24 44 69 72 3e 2e 4e 6f | 72 6d 61 6c 2e 52 75 6e |$Dir>.No|rmal.Run|
|00001eb0| 50 72 6f 67 0a 46 69 6c | 65 44 61 74 61 82 41 64 |Prog.Fil|eData.Ad|
|00001ec0| 64 42 6c 6f 63 6b 00 00 | 00 d1 05 00 00 45 ff ff |dBlock..|.....E..|
|00001ed0| ff d6 34 ef 8e 03 00 4c | fa 23 69 6e 63 6c 75 64 |..4....L|.#includ|
|00001ee0| 65 20 22 41 64 64 42 6c | 6f 63 6b 2e 68 22 0a 23 |e "AddBl|ock.h".#|
|00001ef0| 69 6e 63 6c 75 64 65 20 | 22 53 68 65 6c 6c 2e 45 |include |"Shell.E|
|00001f00| 78 74 72 61 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |xtra.h".|#include|
|00001f10| 20 22 53 68 65 6c 6c 2e | 50 72 69 6e 74 66 2e 68 | "Shell.|Printf.h|
|00001f20| 22 0a 0a 23 69 6e 63 6c | 75 64 65 20 22 43 68 48 |"..#incl|ude "ChH|
|00001f30| 65 61 70 53 69 7a 65 2e | 68 22 0a 23 69 6e 63 6c |eapSize.|h".#incl|
|00001f40| 75 64 65 20 22 53 68 65 | 6c 6c 2e 53 61 66 65 41 |ude "She|ll.SafeA|
|00001f50| 6c 6c 6f 63 2e 68 22 0a | 0a 23 64 65 66 69 6e 65 |lloc.h".|.#define|
|00001f60| 20 42 4c 4f 43 4b 5f 49 | 4e 43 52 45 4d 45 4e 54 | BLOCK_I|NCREMENT|
|00001f70| 20 31 36 0a 0a 0a 0a 76 | 6f 69 64 09 41 64 64 42 | 16....v|oid.AddB|
|00001f80| 6c 6f 63 6b 28 20 61 70 | 70 5f 62 6c 6f 63 6b 20 |lock( ap|p_block |
|00001f90| 2a 61 70 70 2c 20 69 6e | 74 20 70 6f 73 2c 20 69 |*app, in|t pos, i|
|00001fa0| 6e 74 20 73 69 7a 65 2c | 20 69 6e 74 20 72 65 66 |nt size,| int ref|
|00001fb0| 29 0a 7b 0a 62 6c 6f 63 | 6b 5f 69 6e 66 6f 09 2a |).{.bloc|k_info.*|
|00001fc0| 62 6c 6f 63 6b 3b 0a 69 | 6e 74 09 09 69 2c 20 6a |block;.i|nt..i, j|
|00001fd0| 3b 0a 0a 69 66 20 28 73 | 69 7a 65 3c 30 29 09 7b |;..if (s|ize<0).{|
|00001fe0| 0a 09 53 68 65 6c 6c 5f | 54 65 78 74 52 65 63 74 |..Shell_|TextRect|
|00001ff0| 50 72 69 6e 74 66 28 20 | 61 70 70 2d 3e 74 65 78 |Printf( |app->tex|
|00002000| 74 72 65 63 74 2c 20 22 | 4e 65 67 61 74 69 76 65 |trect, "|Negative|
|00002010| 20 62 6c 6f 63 6b 20 73 | 69 7a 65 20 61 74 20 25 | block s|ize at %|
|00002020| 78 2c 20 28 73 69 7a 65 | 3d 25 69 29 5c 6e 22 2c |x, (size|=%i)\n",|
|00002030| 20 70 6f 73 2c 20 73 69 | 7a 65 29 3b 0a 09 72 65 | pos, si|ze);..re|
|00002040| 74 75 72 6e 3b 0a 09 7d | 0a 0a 69 66 20 28 20 61 |turn;..}|..if ( a|
|00002050| 70 70 2d 3e 6e 75 6d 5f | 62 6c 6f 63 6b 73 20 3d |pp->num_|blocks =|
|00002060| 3d 20 61 70 70 2d 3e 6e | 75 6d 5f 62 6c 6f 63 6b |= app->n|um_block|
|00002070| 73 61 6c 6c 6f 63 65 64 | 29 09 7b 0a 09 61 70 70 |salloced|).{..app|
|00002080| 2d 3e 6e 75 6d 5f 62 6c | 6f 63 6b 73 61 6c 6c 6f |->num_bl|ocksallo|
|00002090| 63 65 64 20 2b 3d 20 42 | 4c 4f 43 4b 5f 49 4e 43 |ced += B|LOCK_INC|
|000020a0| 52 45 4d 45 4e 54 3b 0a | 09 61 70 70 2d 3e 62 6c |REMENT;.|.app->bl|
|000020b0| 6f 63 6b 73 20 3d 20 53 | 68 65 6c 6c 5f 53 61 66 |ocks = S|hell_Saf|
|000020c0| 65 52 65 61 6c 6c 6f 63 | 28 0a 09 09 61 70 70 2d |eRealloc|(...app-|
|000020d0| 3e 62 6c 6f 63 6b 73 2c | 20 61 70 70 2d 3e 6e 75 |>blocks,| app->nu|
|000020e0| 6d 5f 62 6c 6f 63 6b 73 | 61 6c 6c 6f 63 65 64 2a |m_blocks|alloced*|
|000020f0| 73 69 7a 65 6f 66 28 20 | 62 6c 6f 63 6b 5f 69 6e |sizeof( |block_in|
|00002100| 66 6f 29 0a 09 09 29 3b | 0a 09 7d 0a 0a 2f 2a 20 |fo)...);|..}../* |
|00002110| 46 69 6e 64 20 77 68 65 | 72 65 20 74 6f 20 70 6c |Find whe|re to pl|
|00002120| 61 63 65 20 74 68 65 20 | 62 6c 6f 63 6b 09 2a 2f |ace the |block.*/|
|00002130| 0a 0a 0a 66 6f 72 20 28 | 20 69 3d 30 3b 20 69 3c |...for (| i=0; i<|
|00002140| 61 70 70 2d 3e 6e 75 6d | 5f 62 6c 6f 63 6b 73 3b |app->num|_blocks;|
|00002150| 20 69 2b 2b 29 09 7b 0a | 09 69 66 20 28 20 61 70 | i++).{.|.if ( ap|
|00002160| 70 2d 3e 62 6c 6f 63 6b | 73 5b 69 5d 2e 70 6f 73 |p->block|s[i].pos|
|00002170| 20 3e 20 70 6f 73 29 09 | 62 72 65 61 6b 3b 0a 09 | > pos).|break;..|
|00002180| 7d 0a 0a 2f 2a 20 63 6f | 70 79 20 62 6c 6f 63 6b |}../* co|py block|
|00002190| 73 20 75 70 2e 2e 2e 09 | 2a 2f 0a 66 6f 72 20 28 |s up....|*/.for (|
|000021a0| 20 6a 3d 61 70 70 2d 3e | 6e 75 6d 5f 62 6c 6f 63 | j=app->|num_bloc|
|000021b0| 6b 73 3b 20 6a 3e 69 3b | 20 6a 2d 2d 29 09 61 70 |ks; j>i;| j--).ap|
|000021c0| 70 2d 3e 62 6c 6f 63 6b | 73 5b 6a 5d 20 3d 20 61 |p->block|s[j] = a|
|000021d0| 70 70 2d 3e 62 6c 6f 63 | 6b 73 5b 6a 2d 31 5d 3b |pp->bloc|ks[j-1];|
|000021e0| 0a 0a 62 6c 6f 63 6b 20 | 3d 20 26 61 70 70 2d 3e |..block |= &app->|
|000021f0| 62 6c 6f 63 6b 73 5b 20 | 69 5d 3b 0a 0a 62 6c 6f |blocks[ |i];..blo|
|00002200| 63 6b 2d 3e 70 6f 73 09 | 3d 20 70 6f 73 3b 0a 62 |ck->pos.|= pos;.b|
|00002210| 6c 6f 63 6b 2d 3e 73 69 | 7a 65 09 3d 20 73 69 7a |lock->si|ze.= siz|
|00002220| 65 3b 0a 62 6c 6f 63 6b | 2d 3e 72 65 66 09 3d 20 |e;.block|->ref.= |
|00002230| 72 65 66 3b 0a 0a 61 70 | 70 2d 3e 6e 75 6d 5f 62 |ref;..ap|p->num_b|
|00002240| 6c 6f 63 6b 73 2b 2b 3b | 0a 61 70 70 2d 3e 73 74 |locks++;|.app->st|
|00002250| 61 74 73 2e 74 6f 74 61 | 6c 20 2b 3d 20 73 69 7a |ats.tota|l += siz|
|00002260| 65 3b 0a 2f 2a 0a 53 68 | 65 6c 6c 5f 50 72 69 6e |e;./*.Sh|ell_Prin|
|00002270| 74 66 28 20 22 42 6c 6f | 63 6b 73 20 61 72 65 3a |tf( "Blo|cks are:|
|00002280| 5c 6e 22 29 3b 0a 66 6f | 72 20 28 20 69 3d 30 3b |\n");.fo|r ( i=0;|
|00002290| 20 69 3c 61 70 70 2d 3e | 6e 75 6d 5f 62 6c 6f 63 | i<app->|num_bloc|
|000022a0| 6b 73 3b 20 69 2b 2b 29 | 09 7b 0a 09 53 68 65 6c |ks; i++)|.{..Shel|
|000022b0| 6c 5f 50 72 69 6e 74 66 | 28 20 22 25 69 29 20 25 |l_Printf|( "%i) %|
|000022c0| 78 5c 6e 22 2c 20 69 2c | 20 61 70 70 2d 3e 62 6c |x\n", i,| app->bl|
|000022d0| 6f 63 6b 73 5b 69 5d 2e | 70 6f 73 29 3b 0a 09 7d |ocks[i].|pos);..}|
|000022e0| 0a 53 68 65 6c 6c 5f 50 | 72 69 6e 74 66 28 20 22 |.Shell_P|rintf( "|
|000022f0| 5c 6e 22 29 3b 0a 2a 2f | 0a 0a 2f 2a 53 68 65 6c |\n");.*/|../*Shel|
|00002300| 6c 5f 50 72 69 6e 74 66 | 28 20 22 25 78 5c 6e 22 |l_Printf|( "%x\n"|
|00002310| 2c 20 70 6f 73 29 3b 2a | 2f 0a 0a 43 68 65 63 6b |, pos);*|/..Check|
|00002320| 48 65 61 70 53 69 7a 65 | 28 20 61 70 70 2c 20 70 |HeapSize|( app, p|
|00002330| 6f 73 2c 20 70 6f 73 2b | 73 69 7a 65 29 3b 0a 0a |os, pos+|size);..|
|00002340| 53 68 65 6c 6c 5f 46 6f | 72 63 65 52 65 63 74 55 |Shell_Fo|rceRectU|
|00002350| 70 64 61 74 65 53 6c 6f | 77 28 20 61 70 70 2d 3e |pdateSlo|w( app->|
|00002360| 68 65 61 70 72 65 63 74 | 29 3b 0a 0a 09 2f 2a 20 |heaprect|);.../* |
|00002370| 53 68 6f 75 6c 64 20 6f | 6e 6c 79 20 75 70 64 61 |Should o|nly upda|
|00002380| 74 65 20 74 68 65 20 6e | 65 77 20 62 69 74 20 6f |te the n|ew bit o|
|00002390| 66 20 74 68 65 20 68 65 | 61 70 2e 2e 2e 09 2a 2f |f the he|ap....*/|
|000023a0| 0a 09 2f 2a 0a 09 7b 0a | 09 77 69 6d 70 5f 72 65 |../*..{.|.wimp_re|
|000023b0| 63 74 09 72 65 63 74 3b | 0a 09 72 65 63 74 2e 6d |ct.rect;|..rect.m|
|000023c0| 69 6e 2e 78 20 3d 20 61 | 70 70 2d 3e 68 65 61 70 |in.x = a|pp->heap|
|000023d0| 64 69 73 70 6c 61 79 2d | 3e 72 65 63 74 2e 6d 69 |display-|>rect.mi|
|000023e0| 6e 2e 78 3b 0a 09 72 65 | 63 74 2e 6d 61 78 2e 78 |n.x;..re|ct.max.x|
|000023f0| 20 3d 20 61 70 70 2d 3e | 68 65 61 70 64 69 73 70 | = app->|heapdisp|
|00002400| 6c 61 79 2d 3e 72 65 63 | 74 2e 6d 61 78 2e 78 3b |lay->rec|t.max.x;|
|00002410| 0a 09 72 65 63 74 2e 6d | 69 6e 2e 79 20 3d 20 61 |..rect.m|in.y = a|
|00002420| 70 70 2d 3e 68 65 61 70 | 64 69 73 70 6c 61 79 2d |pp->heap|display-|
|00002430| 3e 72 65 63 74 2e 6d 69 | 6e 2e 79 20 2b 20 70 6f |>rect.mi|n.y + po|
|00002440| 73 2f 61 70 70 2d 3e 77 | 6f 72 64 73 5f 70 65 72 |s/app->w|ords_per|
|00002450| 5f 6f 73 3b 0a 09 72 65 | 63 74 2e 6d 61 78 2e 79 |_os;..re|ct.max.y|
|00002460| 20 3d 20 61 70 70 2d 3e | 68 65 61 70 64 69 73 70 | = app->|heapdisp|
|00002470| 6c 61 79 2d 3e 72 65 63 | 74 2e 6d 69 6e 2e 79 20 |lay->rec|t.min.y |
|00002480| 2b 20 28 70 6f 73 2b 73 | 69 7a 65 29 2f 61 70 70 |+ (pos+s|ize)/app|
|00002490| 2d 3e 77 6f 72 64 73 5f | 70 65 72 5f 6f 73 3b 0a |->words_|per_os;.|
|000024a0| 09 7d 0a 09 2a 2f 0a 0a | 7d 0a 46 69 6c 65 44 61 |.}..*/..|}.FileDa|
|000024b0| 74 61 82 41 64 64 73 52 | 65 64 72 61 77 00 8a 04 |ta.AddsR|edraw...|
|000024c0| 00 00 45 ff ff ff a0 56 | 62 8d 03 00 d3 40 23 69 |..E....V|b....@#i|
|000024d0| 6e 63 6c 75 64 65 20 22 | 44 65 73 6b 4c 69 62 3a |nclude "|DeskLib:|
|000024e0| 57 69 6d 70 53 57 49 73 | 2e 68 22 0a 23 69 6e 63 |WimpSWIs|.h".#inc|
|000024f0| 6c 75 64 65 20 22 44 65 | 73 6b 4c 69 62 3a 53 6f |lude "De|skLib:So|
|00002500| 75 6e 64 2e 68 22 0a 0a | 23 69 6e 63 6c 75 64 65 |und.h"..|#include|
|00002510| 20 22 53 68 65 6c 6c 2e | 53 68 65 6c 6c 2e 68 22 | "Shell.|Shell.h"|
|00002520| 0a 0a 23 69 6e 63 6c 75 | 64 65 20 22 41 64 64 73 |..#inclu|de "Adds|
|00002530| 52 65 64 72 61 77 2e 68 | 22 0a 23 69 6e 63 6c 75 |Redraw.h|".#inclu|
|00002540| 64 65 20 22 53 74 72 75 | 63 74 73 2e 68 22 0a 0a |de "Stru|cts.h"..|
|00002550| 0a 0a 76 6f 69 64 09 41 | 64 64 73 52 65 64 72 61 |..void.A|ddsRedra|
|00002560| 77 65 72 28 0a 09 09 53 | 68 65 6c 6c 5f 63 6f 6e |wer(...S|hell_con|
|00002570| 76 65 72 74 70 6f 69 6e | 74 09 63 6f 6e 76 65 72 |vertpoin|t.conver|
|00002580| 74 2c 0a 09 09 77 69 6d | 70 5f 70 6f 69 6e 74 09 |t,...wim|p_point.|
|00002590| 09 72 65 63 74 73 69 7a | 65 2c 0a 09 09 76 6f 69 |.rectsiz|e,...voi|
|000025a0| 64 09 09 09 2a 72 65 66 | 65 72 65 6e 63 65 2c 0a |d...*ref|erence,.|
|000025b0| 09 09 63 6f 6e 73 74 20 | 77 69 6d 70 5f 72 65 63 |..const |wimp_rec|
|000025c0| 74 09 09 2a 72 65 64 72 | 61 77 72 65 63 74 0a 09 |t..*redr|awrect..|
|000025d0| 09 29 0a 7b 0a 61 70 70 | 5f 62 6c 6f 63 6b 09 2a |.).{.app|_block.*|
|000025e0| 61 70 70 20 3d 20 28 61 | 70 70 5f 62 6c 6f 63 6b |app = (a|pp_block|
|000025f0| 20 2a 29 20 72 65 66 65 | 72 65 6e 63 65 3b 0a 69 | *) refe|rence;.i|
|00002600| 6e 74 09 09 69 2c 20 6d | 69 6e 70 6f 73 2c 20 6d |nt..i, m|inpos, m|
|00002610| 61 78 70 6f 73 2c 20 6d | 69 6e 61 64 64 72 65 73 |axpos, m|inaddres|
|00002620| 73 2c 20 6d 61 78 61 64 | 64 72 65 73 73 3b 0a 0a |s, maxad|dress;..|
|00002630| 55 4e 55 53 45 44 28 20 | 72 65 63 74 73 69 7a 65 |UNUSED( |rectsize|
|00002640| 29 3b 0a 2f 2a 0a 57 69 | 6d 70 5f 53 65 74 43 6f |);./*.Wi|mp_SetCo|
|00002650| 6c 6f 75 72 28 20 63 6f | 6c 6f 75 72 5f 4f 52 41 |lour( co|lour_ORA|
|00002660| 4e 47 45 29 3b 0a 53 68 | 65 6c 6c 5f 52 65 63 74 |NGE);.Sh|ell_Rect|
|00002670| 61 6e 67 6c 65 46 69 6c | 6c 32 28 20 30 2c 20 30 |angleFil|l2( 0, 0|
|00002680| 2c 20 72 65 63 74 73 69 | 7a 65 2e 78 2c 20 72 65 |, rectsi|ze.x, re|
|00002690| 63 74 73 69 7a 65 2e 79 | 2c 20 63 6f 6e 76 65 72 |ctsize.y|, conver|
|000026a0| 74 29 3b 0a 2a 2f 0a 0a | 6d 69 6e 70 6f 73 20 3d |t);.*/..|minpos =|
|000026b0| 20 28 72 65 64 72 61 77 | 72 65 63 74 2d 3e 6d 69 | (redraw|rect->mi|
|000026c0| 6e 2e 79 29 20 2a 20 61 | 70 70 2d 3e 77 6f 72 64 |n.y) * a|pp->word|
|000026d0| 73 5f 70 65 72 5f 6f 73 | 20 2b 20 61 70 70 2d 3e |s_per_os| + app->|
|000026e0| 6d 69 6e 5f 6d 65 6d 3b | 0a 6d 61 78 70 6f 73 20 |min_mem;|.maxpos |
|000026f0| 3d 20 28 72 65 64 72 61 | 77 72 65 63 74 2d 3e 6d |= (redra|wrect->m|
|00002700| 61 78 2e 79 2b 53 68 65 | 6c 6c 5f 54 45 58 54 59 |ax.y+She|ll_TEXTY|
|00002710| 53 49 5a 45 29 20 2a 20 | 61 70 70 2d 3e 77 6f 72 |SIZE) * |app->wor|
|00002720| 64 73 5f 70 65 72 5f 6f | 73 20 2b 20 61 70 70 2d |ds_per_o|s + app-|
|00002730| 3e 6d 69 6e 5f 6d 65 6d | 3b 0a 0a 6d 69 6e 61 64 |>min_mem|;..minad|
|00002740| 64 72 65 73 73 20 3d 20 | 28 6d 69 6e 70 6f 73 20 |dress = |(minpos |
|00002750| 2f 20 61 70 70 2d 3e 61 | 64 64 72 65 73 73 5f 73 |/ app->a|ddress_s|
|00002760| 74 65 70 29 20 2a 20 61 | 70 70 2d 3e 61 64 64 72 |tep) * a|pp->addr|
|00002770| 65 73 73 5f 73 74 65 70 | 3b 0a 6d 61 78 61 64 64 |ess_step|;.maxadd|
|00002780| 72 65 73 73 20 3d 20 28 | 28 6d 61 78 70 6f 73 2b |ress = (|(maxpos+|
|00002790| 61 70 70 2d 3e 61 64 64 | 72 65 73 73 5f 73 74 65 |app->add|ress_ste|
|000027a0| 70 2d 31 29 20 2f 20 61 | 70 70 2d 3e 61 64 64 72 |p-1) / a|pp->addr|
|000027b0| 65 73 73 5f 73 74 65 70 | 29 20 2a 20 61 70 70 2d |ess_step|) * app-|
|000027c0| 3e 61 64 64 72 65 73 73 | 5f 73 74 65 70 3b 0a 0a |>address|_step;..|
|000027d0| 77 68 69 6c 65 20 28 20 | 6d 69 6e 61 64 64 72 65 |while ( |minaddre|
|000027e0| 73 73 3c 61 70 70 2d 3e | 6d 69 6e 5f 6d 65 6d 29 |ss<app->|min_mem)|
|000027f0| 09 6d 69 6e 61 64 64 72 | 65 73 73 2b 3d 20 61 70 |.minaddr|ess+= ap|
|00002800| 70 2d 3e 61 64 64 72 65 | 73 73 5f 73 74 65 70 3b |p->addre|ss_step;|
|00002810| 0a 77 68 69 6c 65 20 28 | 20 6d 61 78 61 64 64 72 |.while (| maxaddr|
|00002820| 65 73 73 3e 61 70 70 2d | 3e 6d 61 78 5f 6d 65 6d |ess>app-|>max_mem|
|00002830| 29 09 6d 61 78 61 64 64 | 72 65 73 73 2d 3d 20 61 |).maxadd|ress-= a|
|00002840| 70 70 2d 3e 61 64 64 72 | 65 73 73 5f 73 74 65 70 |pp->addr|ess_step|
|00002850| 3b 0a 0a 57 69 6d 70 5f | 53 65 74 43 6f 6c 6f 75 |;..Wimp_|SetColou|
|00002860| 72 28 20 63 6f 6c 6f 75 | 72 5f 42 4c 41 43 4b 29 |r( colou|r_BLACK)|
|00002870| 3b 0a 0a 66 6f 72 20 28 | 20 69 3d 6d 69 6e 61 64 |;..for (| i=minad|
|00002880| 64 72 65 73 73 3b 20 69 | 3c 3d 20 6d 61 78 61 64 |dress; i|<= maxad|
|00002890| 64 72 65 73 73 3b 20 69 | 2b 3d 61 70 70 2d 3e 61 |dress; i|+=app->a|
|000028a0| 64 64 72 65 73 73 5f 73 | 74 65 70 29 09 7b 0a 09 |ddress_s|tep).{..|
|000028b0| 63 68 61 72 09 74 65 78 | 74 5b 20 33 32 5d 3b 0a |char.tex|t[ 32];.|
|000028c0| 09 73 70 72 69 6e 74 66 | 28 20 74 65 78 74 2c 20 |.sprintf|( text, |
|000028d0| 22 30 78 25 78 5f 22 2c | 20 69 29 3b 0a 09 53 68 |"0x%x_",| i);..Sh|
|000028e0| 65 6c 6c 5f 50 72 69 6e | 74 53 74 72 69 6e 67 28 |ell_Prin|tString(|
|000028f0| 20 74 65 78 74 2c 20 30 | 2c 20 53 68 65 6c 6c 5f | text, 0|, Shell_|
|00002900| 54 45 58 54 59 53 49 5a | 45 2d 53 68 65 6c 6c 5f |TEXTYSIZ|E-Shell_|
|00002910| 50 49 58 45 4c 59 53 49 | 5a 45 2b 28 69 2d 61 70 |PIXELYSI|ZE+(i-ap|
|00002920| 70 2d 3e 6d 69 6e 5f 6d | 65 6d 29 2f 61 70 70 2d |p->min_m|em)/app-|
|00002930| 3e 77 6f 72 64 73 5f 70 | 65 72 5f 6f 73 2c 20 63 |>words_p|er_os, c|
|00002940| 6f 6e 76 65 72 74 29 3b | 0a 09 7d 0a 0a 72 65 74 |onvert);|..}..ret|
|00002950| 75 72 6e 3b 0a 7d 0a 0a | 46 69 6c 65 44 61 74 61 |urn;.}..|FileData|
|00002960| 82 41 64 64 53 74 65 70 | 00 61 77 00 00 01 00 00 |.AddStep|.aw.....|
|00002970| 45 ff ff ff 86 e5 ec 8c | 03 00 8a dc 23 69 6e 63 |E.......|....#inc|
|00002980| 6c 75 64 65 20 22 41 64 | 64 53 74 65 70 2e 68 22 |lude "Ad|dStep.h"|
|00002990| 0a 0a 76 6f 69 64 09 47 | 65 74 42 65 73 74 41 64 |..void.G|etBestAd|
|000029a0| 64 72 65 73 73 53 74 65 | 70 28 20 61 70 70 5f 62 |dressSte|p( app_b|
|000029b0| 6c 6f 63 6b 20 2a 61 70 | 70 29 0a 7b 0a 2f 2a 20 |lock *ap|p).{./* |
|000029c0| 46 69 6e 64 20 61 20 73 | 74 65 70 20 77 68 69 63 |Find a s|tep whic|
|000029d0| 68 20 69 73 20 61 20 70 | 6f 77 65 72 20 6f 66 20 |h is a p|ower of |
|000029e0| 32 09 2a 2f 0a 69 6e 74 | 09 73 74 65 70 2c 20 69 |2.*/.int|.step, i|
|000029f0| 3b 0a 0a 73 74 65 70 20 | 3d 20 61 70 70 2d 3e 77 |;..step |= app->w|
|00002a00| 6f 72 64 73 5f 70 65 72 | 5f 6f 73 20 2a 20 34 2a |ords_per|_os * 4*|
|00002a10| 53 68 65 6c 6c 5f 54 45 | 58 54 59 53 49 5a 45 3b |Shell_TE|XTYSIZE;|
|00002a20| 0a 0a 66 6f 72 20 28 20 | 69 3d 30 3b 20 69 3c 33 |..for ( |i=0; i<3|
|00002a30| 32 3b 20 69 2b 2b 29 09 | 7b 0a 09 73 74 65 70 3e |2; i++).|{..step>|
|00002a40| 3e 3d 31 3b 0a 09 69 66 | 20 28 73 74 65 70 3d 3d |>=1;..if| (step==|
|00002a50| 30 29 09 62 72 65 61 6b | 3b 0a 09 7d 0a 0a 61 70 |0).break|;..}..ap|
|00002a60| 70 2d 3e 61 64 64 72 65 | 73 73 5f 73 74 65 70 20 |p->addre|ss_step |
|00002a70| 3d 20 31 3c 3c 69 3b 0a | 0a 7d 0a 0a 46 69 6c 65 |= 1<<i;.|.}..File|
|00002a80| 44 61 74 61 82 41 70 70 | 4d 65 6e 75 00 61 77 00 |Data.App|Menu.aw.|
|00002a90| 4d 0a 00 00 45 ff ff ff | bf c5 ee 8c 03 00 1d 3a |M...E...|.......:|
|00002aa0| 23 69 6e 63 6c 75 64 65 | 20 22 44 65 73 6b 4c 69 |#include| "DeskLi|
|00002ab0| 62 3a 4d 65 6e 75 2e 68 | 22 0a 23 69 6e 63 6c 75 |b:Menu.h|".#inclu|
|00002ac0| 64 65 20 22 44 65 73 6b | 4c 69 62 3a 57 69 6d 70 |de "Desk|Lib:Wimp|
|00002ad0| 53 57 49 73 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |SWIs.h".|#include|
|00002ae0| 20 22 44 65 73 6b 4c 69 | 62 3a 4b 62 64 2e 68 22 | "DeskLi|b:Kbd.h"|
|00002af0| 0a 0a 23 69 6e 63 6c 75 | 64 65 20 22 53 68 65 6c |..#inclu|de "Shel|
|00002b00| 6c 2e 53 61 66 65 41 6c | 6c 6f 63 2e 68 22 0a 0a |l.SafeAl|loc.h"..|
|00002b10| 23 69 6e 63 6c 75 64 65 | 20 22 43 68 48 65 61 70 |#include| "ChHeap|
|00002b20| 53 69 7a 65 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |Size.h".|#include|
|00002b30| 20 22 41 70 70 4d 65 6e | 75 2e 68 22 0a 23 69 6e | "AppMen|u.h".#in|
|00002b40| 63 6c 75 64 65 20 22 41 | 64 64 53 74 65 70 2e 68 |clude "A|ddStep.h|
|00002b50| 22 0a 0a 0a 0a 0a 23 64 | 65 66 69 6e 65 20 4d 65 |".....#d|efine Me|
|00002b60| 6e 75 5f 46 69 72 73 74 | 45 6e 74 72 79 28 6d 65 |nu_First|Entry(me|
|00002b70| 6e 75 29 20 28 28 6d 65 | 6e 75 5f 69 74 65 6d 20 |nu) ((me|nu_item |
|00002b80| 2a 29 20 28 28 28 6d 65 | 6e 75 5f 70 74 72 29 20 |*) (((me|nu_ptr) |
|00002b90| 28 6d 65 6e 75 29 20 2b | 20 31 29 29 29 0a 0a 73 |(menu) +| 1)))..s|
|00002ba0| 74 61 74 69 63 09 6d 65 | 6e 75 5f 70 74 72 09 6d |tatic.me|nu_ptr.m|
|00002bb0| 20 3d 20 30 3b 0a 0a 23 | 64 65 66 69 6e 65 20 6d | = 0;..#|define m|
|00002bc0| 65 6e 75 5f 42 59 54 45 | 53 50 45 52 4f 53 09 30 |enu_BYTE|SPEROS.0|
|00002bd0| 0a 0a 73 74 61 74 69 63 | 20 76 6f 69 64 09 43 6c |..static| void.Cl|
|00002be0| 61 69 6d 48 61 6e 64 6c | 65 72 73 28 20 76 6f 69 |aimHandl|ers( voi|
|00002bf0| 64 20 2a 72 65 66 65 72 | 65 6e 63 65 29 3b 0a 73 |d *refer|ence);.s|
|00002c00| 74 61 74 69 63 20 76 6f | 69 64 09 52 65 6c 65 61 |tatic vo|id.Relea|
|00002c10| 73 65 48 61 6e 64 6c 65 | 72 73 28 20 76 6f 69 64 |seHandle|rs( void|
|00002c20| 20 2a 72 65 66 65 72 65 | 6e 63 65 29 3b 0a 0a 0a | *refere|nce);...|
|00002c30| 0a 0a 0a 73 74 61 74 69 | 63 20 6d 65 6e 75 5f 70 |...stati|c menu_p|
|00002c40| 74 72 09 4d 61 6b 65 4d | 65 6e 75 28 20 76 6f 69 |tr.MakeM|enu( voi|
|00002c50| 64 29 0a 7b 0a 6d 65 6e | 75 5f 70 74 72 09 6d 20 |d).{.men|u_ptr.m |
|00002c60| 3d 20 4d 65 6e 75 5f 4e | 65 77 28 20 22 41 70 70 |= Menu_N|ew( "App|
|00002c70| 6c 69 63 61 74 69 6f 6e | 22 2c 20 22 42 79 74 65 |lication|", "Byte|
|00002c80| 73 20 70 65 72 20 6f 73 | 20 70 69 78 65 6c 22 29 |s per os| pixel")|
|00002c90| 3b 0a 6d 65 6e 75 5f 70 | 74 72 09 6d 32 3d 20 4d |;.menu_p|tr.m2= M|
|00002ca0| 65 6e 75 5f 4e 65 77 28 | 20 22 42 79 74 65 73 22 |enu_New(| "Bytes"|
|00002cb0| 2c 20 22 30 22 29 3b 0a | 4d 65 6e 75 5f 4d 61 6b |, "0");.|Menu_Mak|
|00002cc0| 65 57 72 69 74 61 62 6c | 65 28 20 6d 32 2c 20 30 |eWritabl|e( m2, 0|
|00002cd0| 2c 20 53 68 65 6c 6c 5f | 53 61 66 65 43 61 6c 6c |, Shell_|SafeCall|
|00002ce0| 6f 63 28 20 31 2c 20 38 | 29 2c 20 38 2c 20 22 22 |oc( 1, 8|), 8, ""|
|00002cf0| 29 3b 0a 4d 65 6e 75 5f | 41 64 64 53 75 62 4d 65 |);.Menu_|AddSubMe|
|00002d00| 6e 75 28 20 6d 2c 20 6d | 65 6e 75 5f 42 59 54 45 |nu( m, m|enu_BYTE|
|00002d10| 53 50 45 52 4f 53 2c 20 | 6d 32 29 3b 0a 72 65 74 |SPEROS, |m2);.ret|
|00002d20| 75 72 6e 20 6d 3b 0a 7d | 0a 0a 0a 0a 73 74 61 74 |urn m;.}|....stat|
|00002d30| 69 63 20 42 4f 4f 4c 09 | 4d 65 6e 75 43 61 6e 63 |ic BOOL.|MenuCanc|
|00002d40| 65 6c 48 61 6e 64 6c 65 | 72 28 20 65 76 65 6e 74 |elHandle|r( event|
|00002d50| 5f 70 6f 6c 6c 62 6c 6f | 63 6b 20 2a 65 76 65 6e |_pollblo|ck *even|
|00002d60| 74 2c 20 76 6f 69 64 20 | 2a 72 65 66 65 72 65 6e |t, void |*referen|
|00002d70| 63 65 29 0a 7b 0a 69 66 | 20 28 20 65 76 65 6e 74 |ce).{.if| ( event|
|00002d80| 2d 3e 64 61 74 61 2e 6d | 65 73 73 61 67 65 2e 68 |->data.m|essage.h|
|00002d90| 65 61 64 65 72 2e 61 63 | 74 69 6f 6e 20 3d 3d 20 |eader.ac|tion == |
|00002da0| 6d 65 73 73 61 67 65 5f | 4d 45 4e 55 53 44 45 4c |message_|MENUSDEL|
|00002db0| 45 54 45 44 29 09 52 65 | 6c 65 61 73 65 48 61 6e |ETED).Re|leaseHan|
|00002dc0| 64 6c 65 72 73 28 20 72 | 65 66 65 72 65 6e 63 65 |dlers( r|eference|
|00002dd0| 29 3b 0a 72 65 74 75 72 | 6e 20 46 41 4c 53 45 3b |);.retur|n FALSE;|
|00002de0| 0a 7d 0a 0a 0a 73 74 61 | 74 69 63 20 42 4f 4f 4c |.}...sta|tic BOOL|
|00002df0| 09 4d 65 6e 75 48 61 6e | 64 6c 65 72 28 20 65 76 |.MenuHan|dler( ev|
|00002e00| 65 6e 74 5f 70 6f 6c 6c | 62 6c 6f 63 6b 20 2a 65 |ent_poll|block *e|
|00002e10| 76 65 6e 74 2c 20 76 6f | 69 64 20 2a 72 65 66 65 |vent, vo|id *refe|
|00002e20| 72 65 6e 63 65 29 0a 7b | 0a 6d 6f 75 73 65 5f 62 |rence).{|.mouse_b|
|00002e30| 6c 6f 63 6b 09 6d 6f 75 | 73 65 3b 0a 61 70 70 5f |lock.mou|se;.app_|
|00002e40| 62 6c 6f 63 6b 09 2a 61 | 70 70 09 3d 20 28 61 70 |block.*a|pp.= (ap|
|00002e50| 70 5f 62 6c 6f 63 6b 20 | 2a 29 20 72 65 66 65 72 |p_block |*) refer|
|00002e60| 65 6e 63 65 3b 0a 0a 57 | 69 6d 70 5f 47 65 74 50 |ence;..W|imp_GetP|
|00002e70| 6f 69 6e 74 65 72 49 6e | 66 6f 28 20 26 6d 6f 75 |ointerIn|fo( &mou|
|00002e80| 73 65 29 3b 0a 0a 69 66 | 20 28 20 65 76 65 6e 74 |se);..if| ( event|
|00002e90| 2d 3e 64 61 74 61 2e 73 | 65 6c 65 63 74 69 6f 6e |->data.s|election|
|00002ea0| 5b 30 5d 20 3d 3d 20 6d | 65 6e 75 5f 42 59 54 45 |[0] == m|enu_BYTE|
|00002eb0| 53 50 45 52 4f 53 20 26 | 26 20 65 76 65 6e 74 2d |SPEROS &|& event-|
|00002ec0| 3e 64 61 74 61 2e 73 65 | 6c 65 63 74 69 6f 6e 5b |>data.se|lection[|
|00002ed0| 31 5d 3d 3d 30 29 09 7b | 0a 09 69 6e 74 09 09 6e |1]==0).{|..int..n|
|00002ee0| 65 77 3b 0a 09 6d 65 6e | 75 5f 62 6c 6f 63 6b 09 |ew;..men|u_block.|
|00002ef0| 2a 73 75 62 6d 65 6e 75 | 3d 20 4d 65 6e 75 5f 46 |*submenu|= Menu_F|
|00002f00| 69 72 73 74 45 6e 74 72 | 79 28 6d 29 5b 20 6d 65 |irstEntr|y(m)[ me|
|00002f10| 6e 75 5f 42 59 54 45 53 | 50 45 52 4f 53 5d 2e 73 |nu_BYTES|PEROS].s|
|00002f20| 75 62 6d 65 6e 75 2e 6d | 65 6e 75 3b 0a 09 63 68 |ubmenu.m|enu;..ch|
|00002f30| 61 72 09 09 2a 74 65 78 | 74 09 3d 20 4d 65 6e 75 |ar..*tex|t.= Menu|
|00002f40| 5f 46 69 72 73 74 45 6e | 74 72 79 28 73 75 62 6d |_FirstEn|try(subm|
|00002f50| 65 6e 75 29 5b 20 30 5d | 2e 69 63 6f 6e 64 61 74 |enu)[ 0]|.icondat|
|00002f60| 61 2e 69 6e 64 69 72 65 | 63 74 74 65 78 74 2e 62 |a.indire|cttext.b|
|00002f70| 75 66 66 65 72 3b 0a 09 | 73 73 63 61 6e 66 28 20 |uffer;..|sscanf( |
|00002f80| 74 65 78 74 2c 20 22 25 | 69 22 2c 20 26 6e 65 77 |text, "%|i", &new|
|00002f90| 29 3b 0a 09 69 66 20 28 | 20 6e 65 77 3e 30 29 09 |);..if (| new>0).|
|00002fa0| 7b 0a 09 09 61 70 70 2d | 3e 77 6f 72 64 73 5f 70 |{...app-|>words_p|
|00002fb0| 65 72 5f 6f 73 20 3d 20 | 6e 65 77 3b 0a 09 09 47 |er_os = |new;...G|
|00002fc0| 65 74 42 65 73 74 41 64 | 64 72 65 73 73 53 74 65 |etBestAd|dressSte|
|00002fd0| 70 28 20 61 70 70 29 3b | 0a 09 09 52 65 73 63 61 |p( app);|...Resca|
|00002fe0| 6c 65 48 65 61 70 28 20 | 61 70 70 29 3b 0a 09 09 |leHeap( |app);...|
|00002ff0| 7d 0a 09 7d 0a 0a 0a 69 | 66 20 28 20 21 6d 6f 75 |}..}...i|f ( !mou|
|00003000| 73 65 2e 62 75 74 74 6f | 6e 2e 64 61 74 61 2e 61 |se.butto|n.data.a|
|00003010| 64 6a 75 73 74 29 09 57 | 69 6d 70 5f 47 65 74 50 |djust).W|imp_GetP|
|00003020| 6f 69 6e 74 65 72 49 6e | 66 6f 28 20 26 6d 6f 75 |ointerIn|fo( &mou|
|00003030| 73 65 29 3b 0a 09 2f 2a | 20 47 69 76 65 20 74 77 |se);../*| Give tw|
|00003040| 6f 20 63 68 61 6e 63 65 | 73 20 74 6f 20 68 6f 6c |o chance|s to hol|
|00003050| 64 20 64 6f 77 6e 20 61 | 64 6a 75 73 74 2e 2e 2e |d down a|djust...|
|00003060| 09 2a 2f 0a 0a 69 66 20 | 28 20 6d 6f 75 73 65 2e |.*/..if |( mouse.|
|00003070| 62 75 74 74 6f 6e 2e 64 | 61 74 61 2e 61 64 6a 75 |button.d|ata.adju|
|00003080| 73 74 29 09 7b 0a 09 6d | 6f 75 73 65 2e 70 6f 73 |st).{..m|ouse.pos|
|00003090| 2e 78 20 3d 20 6d 6f 75 | 73 65 2e 70 6f 73 2e 79 |.x = mou|se.pos.y|
|000030a0| 20 3d 20 30 3b 0a 09 4d | 65 6e 75 5f 53 68 6f 77 | = 0;..M|enu_Show|
|000030b0| 4c 61 73 74 28 29 3b 0a | 09 7d 0a 0a 65 6c 73 65 |Last();.|.}..else|
|000030c0| 09 52 65 6c 65 61 73 65 | 48 61 6e 64 6c 65 72 73 |.Release|Handlers|
|000030d0| 28 20 72 65 66 65 72 65 | 6e 63 65 29 3b 0a 0a 0a |( refere|nce);...|
|000030e0| 72 65 74 75 72 6e 20 54 | 52 55 45 3b 0a 7d 0a 0a |return T|RUE;.}..|
|000030f0| 0a 0a 0a 42 4f 4f 4c 09 | 41 70 70 57 69 6e 64 6f |...BOOL.|AppWindo|
|00003100| 77 43 6c 69 63 6b 48 61 | 6e 64 6c 65 72 28 20 65 |wClickHa|ndler( e|
|00003110| 76 65 6e 74 5f 70 6f 6c | 6c 62 6c 6f 63 6b 20 2a |vent_pol|lblock *|
|00003120| 65 76 65 6e 74 2c 20 76 | 6f 69 64 20 2a 72 65 66 |event, v|oid *ref|
|00003130| 65 72 65 6e 63 65 29 0a | 7b 0a 61 70 70 5f 62 6c |erence).|{.app_bl|
|00003140| 6f 63 6b 09 2a 61 70 70 | 09 3d 20 28 61 70 70 5f |ock.*app|.= (app_|
|00003150| 62 6c 6f 63 6b 20 2a 29 | 20 72 65 66 65 72 65 6e |block *)| referen|
|00003160| 63 65 3b 0a 69 66 20 28 | 20 21 4b 62 64 5f 4b 65 |ce;.if (| !Kbd_Ke|
|00003170| 79 44 6f 77 6e 28 20 69 | 6e 6b 65 79 5f 53 48 49 |yDown( i|nkey_SHI|
|00003180| 46 54 29 20 26 26 20 65 | 76 65 6e 74 2d 3e 64 61 |FT) && e|vent->da|
|00003190| 74 61 2e 6d 6f 75 73 65 | 2e 62 75 74 74 6f 6e 2e |ta.mouse|.button.|
|000031a0| 64 61 74 61 2e 6d 65 6e | 75 29 09 7b 0a 0a 09 69 |data.men|u).{...i|
|000031b0| 66 20 28 20 6d 3d 3d 30 | 29 09 6d 20 3d 20 4d 61 |f ( m==0|).m = Ma|
|000031c0| 6b 65 4d 65 6e 75 28 29 | 3b 0a 0a 09 09 2f 2a 20 |keMenu()|;..../* |
|000031d0| 50 75 74 20 70 72 65 73 | 65 6e 74 20 76 61 6c 75 |Put pres|ent valu|
|000031e0| 65 20 69 6e 74 6f 20 74 | 68 65 20 73 75 62 6d 65 |e into t|he subme|
|000031f0| 6e 75 2e 09 2a 2f 0a 09 | 09 7b 0a 09 09 6d 65 6e |nu..*/..|.{...men|
|00003200| 75 5f 62 6c 6f 63 6b 09 | 2a 73 75 62 6d 65 6e 75 |u_block.|*submenu|
|00003210| 3d 20 4d 65 6e 75 5f 46 | 69 72 73 74 45 6e 74 72 |= Menu_F|irstEntr|
|00003220| 79 28 6d 29 5b 20 6d 65 | 6e 75 5f 42 59 54 45 53 |y(m)[ me|nu_BYTES|
|00003230| 50 45 52 4f 53 5d 2e 73 | 75 62 6d 65 6e 75 2e 6d |PEROS].s|ubmenu.m|
|00003240| 65 6e 75 3b 0a 09 09 63 | 68 61 72 09 2a 74 65 78 |enu;...c|har.*tex|
|00003250| 74 09 3d 20 4d 65 6e 75 | 5f 46 69 72 73 74 45 6e |t.= Menu|_FirstEn|
|00003260| 74 72 79 28 73 75 62 6d | 65 6e 75 29 5b 20 30 5d |try(subm|enu)[ 0]|
|00003270| 2e 69 63 6f 6e 64 61 74 | 61 2e 69 6e 64 69 72 65 |.icondat|a.indire|
|00003280| 63 74 74 65 78 74 2e 62 | 75 66 66 65 72 3b 0a 09 |cttext.b|uffer;..|
|00003290| 09 73 70 72 69 6e 74 66 | 28 20 74 65 78 74 2c 20 |.sprintf|( text, |
|000032a0| 22 25 69 22 2c 20 61 70 | 70 2d 3e 77 6f 72 64 73 |"%i", ap|p->words|
|000032b0| 5f 70 65 72 5f 6f 73 29 | 3b 0a 09 09 7d 0a 0a 09 |_per_os)|;...}...|
|000032c0| 4d 65 6e 75 5f 53 68 6f | 77 28 20 6d 2c 20 65 76 |Menu_Sho|w( m, ev|
|000032d0| 65 6e 74 2d 3e 64 61 74 | 61 2e 6d 6f 75 73 65 2e |ent->dat|a.mouse.|
|000032e0| 70 6f 73 2e 78 2c 20 65 | 76 65 6e 74 2d 3e 64 61 |pos.x, e|vent->da|
|000032f0| 74 61 2e 6d 6f 75 73 65 | 2e 70 6f 73 2e 79 29 3b |ta.mouse|.pos.y);|
|00003300| 0a 09 43 6c 61 69 6d 48 | 61 6e 64 6c 65 72 73 28 |..ClaimH|andlers(|
|00003310| 20 72 65 66 65 72 65 6e | 63 65 29 3b 0a 09 72 65 | referen|ce);..re|
|00003320| 74 75 72 6e 20 54 52 55 | 45 3b 0a 09 7d 0a 0a 65 |turn TRU|E;..}..e|
|00003330| 6c 73 65 20 72 65 74 75 | 72 6e 20 46 41 4c 53 45 |lse retu|rn FALSE|
|00003340| 3b 0a 7d 0a 0a 0a 0a 0a | 0a 0a 73 74 61 74 69 63 |;.}.....|..static|
|00003350| 20 76 6f 69 64 20 43 6c | 61 69 6d 48 61 6e 64 6c | void Cl|aimHandl|
|00003360| 65 72 73 28 20 76 6f 69 | 64 20 2a 72 65 66 65 72 |ers( voi|d *refer|
|00003370| 65 6e 63 65 29 0a 7b 0a | 45 76 65 6e 74 5f 43 6c |ence).{.|Event_Cl|
|00003380| 61 69 6d 28 20 65 76 65 | 6e 74 5f 4d 45 4e 55 2c |aim( eve|nt_MENU,|
|00003390| 20 65 76 65 6e 74 5f 41 | 4e 59 2c 20 65 76 65 6e | event_A|NY, even|
|000033a0| 74 5f 41 4e 59 2c 20 4d | 65 6e 75 48 61 6e 64 6c |t_ANY, M|enuHandl|
|000033b0| 65 72 2c 20 72 65 66 65 | 72 65 6e 63 65 29 3b 0a |er, refe|rence);.|
|000033c0| 45 76 65 6e 74 5f 43 6c | 61 69 6d 28 20 65 76 65 |Event_Cl|aim( eve|
|000033d0| 6e 74 5f 55 53 45 52 4d | 45 53 53 41 47 45 2c 20 |nt_USERM|ESSAGE, |
|000033e0| 65 76 65 6e 74 5f 41 4e | 59 2c 20 65 76 65 6e 74 |event_AN|Y, event|
|000033f0| 5f 41 4e 59 2c 20 4d 65 | 6e 75 43 61 6e 63 65 6c |_ANY, Me|nuCancel|
|00003400| 48 61 6e 64 6c 65 72 2c | 20 72 65 66 65 72 65 6e |Handler,| referen|
|00003410| 63 65 29 3b 0a 7d 0a 0a | 73 74 61 74 69 63 20 76 |ce);.}..|static v|
|00003420| 6f 69 64 20 52 65 6c 65 | 61 73 65 48 61 6e 64 6c |oid Rele|aseHandl|
|00003430| 65 72 73 28 20 76 6f 69 | 64 20 2a 72 65 66 65 72 |ers( voi|d *refer|
|00003440| 65 6e 63 65 29 0a 7b 0a | 45 76 65 6e 74 5f 52 65 |ence).{.|Event_Re|
|00003450| 6c 65 61 73 65 28 20 65 | 76 65 6e 74 5f 4d 45 4e |lease( e|vent_MEN|
|00003460| 55 2c 20 65 76 65 6e 74 | 5f 41 4e 59 2c 20 65 76 |U, event|_ANY, ev|
|00003470| 65 6e 74 5f 41 4e 59 2c | 20 4d 65 6e 75 48 61 6e |ent_ANY,| MenuHan|
|00003480| 64 6c 65 72 2c 20 72 65 | 66 65 72 65 6e 63 65 29 |dler, re|ference)|
|00003490| 3b 0a 45 76 65 6e 74 5f | 52 65 6c 65 61 73 65 28 |;.Event_|Release(|
|000034a0| 20 65 76 65 6e 74 5f 55 | 53 45 52 4d 45 53 53 41 | event_U|SERMESSA|
|000034b0| 47 45 2c 20 65 76 65 6e | 74 5f 41 4e 59 2c 20 65 |GE, even|t_ANY, e|
|000034c0| 76 65 6e 74 5f 41 4e 59 | 2c 20 4d 65 6e 75 43 61 |vent_ANY|, MenuCa|
|000034d0| 6e 63 65 6c 48 61 6e 64 | 6c 65 72 2c 20 72 65 66 |ncelHand|ler, ref|
|000034e0| 65 72 65 6e 63 65 29 3b | 0a 7d 0a 0a 0a 46 69 6c |erence);|.}...Fil|
|000034f0| 65 44 61 74 61 82 43 68 | 48 65 61 70 53 69 7a 65 |eData.Ch|HeapSize|
|00003500| 00 8c 05 00 00 45 ff ff | ff 71 70 56 8e 03 00 7a |.....E..|.qpV...z|
|00003510| d3 23 69 6e 63 6c 75 64 | 65 20 22 53 68 65 6c 6c |.#includ|e "Shell|
|00003520| 2e 45 78 74 72 61 2e 68 | 22 0a 23 69 6e 63 6c 75 |.Extra.h|".#inclu|
|00003530| 64 65 20 22 53 68 65 6c | 6c 2e 54 65 78 74 52 65 |de "Shel|l.TextRe|
|00003540| 63 74 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |ct.h".#i|nclude "|
|00003550| 53 68 65 6c 6c 2e 4c 61 | 62 65 6c 2e 68 22 0a 23 |Shell.La|bel.h".#|
|00003560| 69 6e 63 6c 75 64 65 20 | 22 53 68 65 6c 6c 2e 50 |include |"Shell.P|
|00003570| 6c 61 69 6e 52 65 63 74 | 2e 68 22 0a 23 69 6e 63 |lainRect|.h".#inc|
|00003580| 6c 75 64 65 20 22 53 68 | 65 6c 6c 2e 46 6f 72 63 |lude "Sh|ell.Forc|
|00003590| 52 65 64 72 61 77 2e 68 | 22 0a 0a 23 69 6e 63 6c |Redraw.h|"..#incl|
|000035a0| 75 64 65 20 22 43 68 48 | 65 61 70 53 69 7a 65 2e |ude "ChH|eapSize.|
|000035b0| 68 22 0a 23 69 6e 63 6c | 75 64 65 20 22 53 74 72 |h".#incl|ude "Str|
|000035c0| 75 63 74 73 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |ucts.h".|#include|
|000035d0| 20 22 41 64 64 53 74 65 | 70 2e 68 22 0a 0a 0a 76 | "AddSte|p.h"...v|
|000035e0| 6f 69 64 09 52 65 73 63 | 61 6c 65 48 65 61 70 28 |oid.Resc|aleHeap(|
|000035f0| 20 61 70 70 5f 62 6c 6f | 63 6b 20 2a 61 70 70 29 | app_blo|ck *app)|
|00003600| 0a 7b 0a 69 6e 74 09 6d | 61 78 79 20 3d 20 61 70 |.{.int.m|axy = ap|
|00003610| 70 2d 3e 68 65 61 70 72 | 65 63 74 2d 3e 72 65 63 |p->heapr|ect->rec|
|00003620| 74 2e 6d 69 6e 2e 79 0a | 09 09 2b 20 28 61 70 70 |t.min.y.|..+ (app|
|00003630| 2d 3e 6d 61 78 5f 6d 65 | 6d 20 2d 20 61 70 70 2d |->max_me|m - app-|
|00003640| 3e 6d 69 6e 5f 6d 65 6d | 29 20 2f 20 61 70 70 2d |>min_mem|) / app-|
|00003650| 3e 77 6f 72 64 73 5f 70 | 65 72 5f 6f 73 3b 0a 0a |>words_p|er_os;..|
|00003660| 69 66 20 28 20 6d 61 78 | 79 3c 61 70 70 2d 3e 68 |if ( max|y<app->h|
|00003670| 65 61 70 72 65 63 74 2d | 3e 72 65 63 74 2e 6d 61 |eaprect-|>rect.ma|
|00003680| 78 2e 79 29 09 7b 09 2f | 2a 20 52 65 63 74 73 20 |x.y).{./|* Rects |
|00003690| 68 61 76 65 20 73 68 72 | 75 6e 6b 2c 20 73 6f 20 |have shr|unk, so |
|000036a0| 6e 65 65 64 20 74 6f 20 | 72 65 64 72 61 77 20 74 |need to |redraw t|
|000036b0| 68 65 20 6f 6c 64 2a 2f | 0a 09 2f 2a 0a 09 53 68 |he old*/|../*..Sh|
|000036c0| 65 6c 6c 5f 46 6f 72 63 | 65 52 65 63 74 52 65 64 |ell_Forc|eRectRed|
|000036d0| 72 61 77 41 6c 6c 28 20 | 61 70 70 2d 3e 68 65 61 |rawAll( |app->hea|
|000036e0| 70 72 65 63 74 29 3b 0a | 09 53 68 65 6c 6c 5f 46 |prect);.|.Shell_F|
|000036f0| 6f 72 63 65 52 65 63 74 | 52 65 64 72 61 77 41 6c |orceRect|RedrawAl|
|00003700| 6c 28 20 61 70 70 2d 3e | 61 64 64 72 65 73 73 65 |l( app->|addresse|
|00003710| 73 72 65 63 74 29 3b 0a | 09 2a 2f 0a 09 53 68 65 |srect);.|.*/..She|
|00003720| 6c 6c 5f 46 6f 72 63 65 | 52 65 63 74 52 65 64 72 |ll_Force|RectRedr|
|00003730| 61 77 41 6c 6c 28 20 61 | 70 70 2d 3e 70 6c 61 69 |awAll( a|pp->plai|
|00003740| 6e 72 65 63 74 29 3b 0a | 09 7d 0a 0a 0a 69 66 20 |nrect);.|.}...if |
|00003750| 28 20 6d 61 78 79 20 21 | 3d 20 61 70 70 2d 3e 68 |( maxy !|= app->h|
|00003760| 65 61 70 72 65 63 74 2d | 3e 72 65 63 74 2e 6d 61 |eaprect-|>rect.ma|
|00003770| 78 2e 79 29 09 7b 0a 0a | 09 61 70 70 2d 3e 68 65 |x.y).{..|.app->he|
|00003780| 61 70 72 65 63 74 2d 3e | 72 65 63 74 2e 6d 61 78 |aprect->|rect.max|
|00003790| 2e 79 09 3d 20 6d 61 78 | 79 20 2b 20 53 68 65 6c |.y.= max|y + Shel|
|000037a0| 6c 5f 50 49 58 45 4c 59 | 53 49 5a 45 3b 0a 09 61 |l_PIXELY|SIZE;..a|
|000037b0| 70 70 2d 3e 61 64 64 72 | 65 73 73 65 73 72 65 63 |pp->addr|essesrec|
|000037c0| 74 2d 3e 72 65 63 74 2e | 6d 61 78 2e 79 09 3d 20 |t->rect.|max.y.= |
|000037d0| 6d 61 78 79 20 2b 20 53 | 68 65 6c 6c 5f 54 45 58 |maxy + S|hell_TEX|
|000037e0| 54 59 53 49 5a 45 3b 0a | 09 61 70 70 2d 3e 70 6c |TYSIZE;.|.app->pl|
|000037f0| 61 69 6e 72 65 63 74 2d | 3e 72 65 63 74 2e 6d 61 |ainrect-|>rect.ma|
|00003800| 78 2e 79 09 3d 20 61 70 | 70 2d 3e 61 64 64 72 65 |x.y.= ap|p->addre|
|00003810| 73 73 65 73 72 65 63 74 | 2d 3e 72 65 63 74 2e 6d |ssesrect|->rect.m|
|00003820| 61 78 2e 79 3b 0a 0a 09 | 53 68 65 6c 6c 5f 52 65 |ax.y;...|Shell_Re|
|00003830| 73 69 7a 65 49 63 6f 6e | 52 65 63 74 28 20 61 70 |sizeIcon|Rect( ap|
|00003840| 70 2d 3e 68 65 61 70 72 | 65 63 74 29 3b 09 2f 2a |p->heapr|ect);./*|
|00003850| 20 54 68 69 73 20 72 65 | 73 69 7a 65 73 20 74 68 | This re|sizes th|
|00003860| 65 20 77 69 6e 64 6f 77 | 20 69 66 20 6e 65 73 09 |e window| if nes.|
|00003870| 2a 2f 0a 09 53 68 65 6c | 6c 5f 52 65 73 69 7a 65 |*/..Shel|l_Resize|
|00003880| 49 63 6f 6e 52 65 63 74 | 28 20 61 70 70 2d 3e 61 |IconRect|( app->a|
|00003890| 64 64 72 65 73 73 65 73 | 72 65 63 74 29 3b 0a 09 |ddresses|rect);..|
|000038a0| 53 68 65 6c 6c 5f 52 65 | 73 69 7a 65 49 63 6f 6e |Shell_Re|sizeIcon|
|000038b0| 52 65 63 74 28 20 61 70 | 70 2d 3e 70 6c 61 69 6e |Rect( ap|p->plain|
|000038c0| 72 65 63 74 29 3b 0a 09 | 7d 0a 7d 0a 0a 0a 0a 76 |rect);..|}.}....v|
|000038d0| 6f 69 64 09 43 68 65 63 | 6b 48 65 61 70 53 69 7a |oid.Chec|kHeapSiz|
|000038e0| 65 28 20 61 70 70 5f 62 | 6c 6f 63 6b 20 2a 61 70 |e( app_b|lock *ap|
|000038f0| 70 2c 20 69 6e 74 20 6d | 69 6e 2c 20 69 6e 74 20 |p, int m|in, int |
|00003900| 6d 61 78 29 0a 7b 0a 42 | 4f 4f 4c 09 63 68 61 6e |max).{.B|OOL.chan|
|00003910| 67 65 64 20 3d 20 46 41 | 4c 53 45 3b 0a 0a 69 66 |ged = FA|LSE;..if|
|00003920| 20 28 20 6d 69 6e 20 3c | 20 61 70 70 2d 3e 6d 69 | ( min <| app->mi|
|00003930| 6e 5f 6d 65 6d 29 09 7b | 0a 09 61 70 70 2d 3e 6d |n_mem).{|..app->m|
|00003940| 69 6e 5f 6d 65 6d 20 3d | 20 6d 69 6e 3b 0a 09 63 |in_mem =| min;..c|
|00003950| 68 61 6e 67 65 64 20 3d | 20 54 52 55 45 3b 0a 09 |hanged =| TRUE;..|
|00003960| 7d 0a 0a 69 66 20 28 20 | 6d 61 78 20 3e 20 61 70 |}..if ( |max > ap|
|00003970| 70 2d 3e 6d 61 78 5f 6d | 65 6d 29 09 7b 0a 09 61 |p->max_m|em).{..a|
|00003980| 70 70 2d 3e 6d 61 78 5f | 6d 65 6d 20 3d 20 6d 61 |pp->max_|mem = ma|
|00003990| 78 3b 0a 09 63 68 61 6e | 67 65 64 20 3d 20 54 52 |x;..chan|ged = TR|
|000039a0| 55 45 3b 0a 09 7d 0a 0a | 2f 2a 53 68 65 6c 6c 5f |UE;..}..|/*Shell_|
|000039b0| 54 65 78 74 52 65 63 74 | 50 72 69 6e 74 66 28 20 |TextRect|Printf( |
|000039c0| 61 70 70 2d 3e 74 65 78 | 74 72 65 63 74 2c 20 22 |app->tex|trect, "|
|000039d0| 4d 69 6e 20 3d 20 25 78 | 20 20 4d 61 78 20 3d 20 |Min = %x| Max = |
|000039e0| 25 78 5c 6e 22 2c 20 61 | 70 70 2d 3e 6d 69 6e 5f |%x\n", a|pp->min_|
|000039f0| 6d 65 6d 2c 20 61 70 70 | 2d 3e 6d 61 78 5f 6d 65 |mem, app|->max_me|
|00003a00| 6d 29 3b 2a 2f 0a 0a 69 | 66 20 28 20 63 68 61 6e |m);*/..i|f ( chan|
|00003a10| 67 65 64 29 09 7b 0a 0a | 09 53 68 65 6c 6c 5f 52 |ged).{..|.Shell_R|
|00003a20| 65 4c 61 62 65 6c 66 28 | 20 61 70 70 2d 3e 6d 69 |eLabelf(| app->mi|
|00003a30| 6e 6d 61 78 72 65 63 74 | 2c 20 22 4d 69 6e 20 6d |nmaxrect|, "Min m|
|00003a40| 65 6d 6f 72 79 20 3d 20 | 25 78 2c 20 6d 61 78 20 |emory = |%x, max |
|00003a50| 6d 65 6d 6f 72 79 20 3d | 20 25 78 22 2c 0a 09 09 |memory =| %x",...|
|00003a60| 61 70 70 2d 3e 6d 69 6e | 5f 6d 65 6d 2c 20 61 70 |app->min|_mem, ap|
|00003a70| 70 2d 3e 6d 61 78 5f 6d | 65 6d 0a 09 09 29 3b 0a |p->max_m|em...);.|
|00003a80| 0a 09 52 65 73 63 61 6c | 65 48 65 61 70 28 20 61 |..Rescal|eHeap( a|
|00003a90| 70 70 29 3b 0a 09 7d 0a | 7d 0a 0a 0a 0a 46 69 6c |pp);..}.|}....Fil|
|00003aa0| 65 44 61 74 61 82 4d 61 | 69 6e 00 70 53 69 7a 65 |eData.Ma|in.pSize|
|00003ab0| 00 6a 02 00 00 45 ff ff | ff 7b 18 e0 8d 03 00 92 |.j...E..|.{......|
|00003ac0| cd 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 64 6c 69 |.#includ|e <stdli|
|00003ad0| 62 2e 68 3e 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |b.h>.#in|clude <s|
|00003ae0| 74 72 69 6e 67 2e 68 3e | 0a 23 69 6e 63 6c 75 64 |tring.h>|.#includ|
|00003af0| 65 20 3c 74 69 6d 65 2e | 68 3e 0a 23 69 6e 63 6c |e <time.|h>.#incl|
|00003b00| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 23 69 |ude <std|io.h>.#i|
|00003b10| 6e 63 6c 75 64 65 20 3c | 6d 61 74 68 2e 68 3e 0a |nclude <|math.h>.|
|00003b20| 0a 0a 23 69 6e 63 6c 75 | 64 65 20 22 44 65 73 6b |..#inclu|de "Desk|
|00003b30| 6c 69 62 3a 45 72 72 6f | 72 2e 68 22 0a 23 69 6e |lib:Erro|r.h".#in|
|00003b40| 63 6c 75 64 65 20 22 44 | 65 73 6b 6c 69 62 3a 57 |clude "D|esklib:W|
|00003b50| 69 6d 70 53 57 49 73 2e | 68 22 0a 0a 0a 23 69 6e |impSWIs.|h"...#in|
|00003b60| 63 6c 75 64 65 20 22 53 | 68 65 6c 6c 2e 52 65 63 |clude "S|hell.Rec|
|00003b70| 74 53 61 76 65 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |tSave.h"|.#includ|
|00003b80| 65 20 22 53 68 65 6c 6c | 2e 50 72 69 6e 74 66 2e |e "Shell|.Printf.|
|00003b90| 68 22 0a 23 69 6e 63 6c | 75 64 65 20 22 53 68 65 |h".#incl|ude "She|
|00003ba0| 6c 6c 2e 42 61 72 49 63 | 6f 6e 2e 68 22 0a 0a 23 |ll.BarIc|on.h"..#|
|00003bb0| 69 6e 63 6c 75 64 65 20 | 22 53 74 72 75 63 74 73 |include |"Structs|
|00003bc0| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 53 63 |.h".#inc|lude "Sc|
|00003bd0| 61 6e 50 69 70 65 46 53 | 2e 68 22 0a 0a 0a 73 74 |anPipeFS|.h"...st|
|00003be0| 61 74 69 63 20 61 70 70 | 73 5f 61 6e 63 68 6f 72 |atic app|s_anchor|
|00003bf0| 62 6c 6f 63 6b 09 61 70 | 70 73 3b 0a 0a 0a 0a 0a |block.ap|ps;.....|
|00003c00| 0a 0a 0a 0a 69 6e 74 20 | 6d 61 69 6e 28 29 0a 7b |....int |main().{|
|00003c10| 0a 53 68 65 6c 6c 5f 49 | 6e 69 74 28 20 22 48 65 |.Shell_I|nit( "He|
|00003c20| 61 70 44 69 73 70 6c 61 | 79 22 2c 20 22 48 65 61 |apDispla|y", "Hea|
|00003c30| 70 44 69 73 70 6c 61 79 | 22 29 3b 0a 53 68 65 6c |pDisplay|");.Shel|
|00003c40| 6c 5f 41 64 64 42 61 72 | 49 63 6f 6e 28 20 22 61 |l_AddBar|Icon( "a|
|00003c50| 70 70 6c 69 63 61 74 69 | 6f 6e 22 29 3b 0a 53 68 |pplicati|on");.Sh|
|00003c60| 65 6c 6c 5f 49 6e 69 74 | 52 65 63 74 53 61 76 65 |ell_Init|RectSave|
|00003c70| 28 20 22 53 61 76 65 41 | 73 22 2c 20 33 2c 20 30 |( "SaveA|s", 3, 0|
|00003c80| 2c 20 31 2c 20 32 29 3b | 0a 0a 53 68 65 6c 6c 5f |, 1, 2);|..Shell_|
|00003c90| 50 72 69 6e 74 66 28 20 | 22 57 61 69 74 69 6e 67 |Printf( |"Waiting|
|00003ca0| 20 66 6f 72 20 64 65 62 | 75 67 20 64 61 74 61 2e | for deb|ug data.|
|00003cb0| 2e 2e 5c 6e 22 29 3b 0a | 4c 69 6e 6b 4c 69 73 74 |..\n");.|LinkList|
|00003cc0| 5f 49 6e 69 74 28 20 26 | 61 70 70 73 2e 61 6e 63 |_Init( &|apps.anc|
|00003cd0| 68 6f 72 29 3b 0a 0a 66 | 6f 72 28 3b 3b 29 09 7b |hor);..f|or(;;).{|
|00003ce0| 0a 09 53 68 65 6c 6c 5f | 50 6f 6c 6c 53 6c 6f 77 |..Shell_|PollSlow|
|00003cf0| 28 29 3b 0a 09 53 63 61 | 6e 50 69 70 65 46 53 28 |();..Sca|nPipeFS(|
|00003d00| 20 22 50 69 70 65 3a 24 | 2e 43 5f 44 65 62 75 67 | "Pipe:$|.C_Debug|
|00003d10| 22 2c 20 26 61 70 70 73 | 29 3b 0a 09 7d 0a 0a 72 |", &apps|);..}..r|
|00003d20| 65 74 75 72 6e 20 30 3b | 0a 7d 0a 46 69 6c 65 44 |eturn 0;|.}.FileD|
|00003d30| 61 74 61 82 4d 6f 76 65 | 42 6c 6f 63 6b 00 00 f9 |ata.Move|Block...|
|00003d40| 04 00 00 45 ff ff ff ea | 1b 51 8e 03 00 5b d0 23 |...E....|.Q...[.#|
|00003d50| 69 6e 63 6c 75 64 65 20 | 22 53 68 65 6c 6c 2e 45 |include |"Shell.E|
|00003d60| 78 74 72 61 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |xtra.h".|#include|
|00003d70| 20 22 53 68 65 6c 6c 2e | 54 65 78 74 52 65 63 74 | "Shell.|TextRect|
|00003d80| 2e 68 22 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 53 |.h"..#in|clude "S|
|00003d90| 74 72 75 63 74 73 2e 68 | 22 0a 23 69 6e 63 6c 75 |tructs.h|".#inclu|
|00003da0| 64 65 20 22 4d 6f 76 65 | 42 6c 6f 63 6b 2e 68 22 |de "Move|Block.h"|
|00003db0| 0a 23 69 6e 63 6c 75 64 | 65 20 22 43 68 48 65 61 |.#includ|e "ChHea|
|00003dc0| 70 53 69 7a 65 2e 68 22 | 0a 0a 0a 0a 76 6f 69 64 |pSize.h"|....void|
|00003dd0| 09 4d 6f 76 65 42 6c 6f | 63 6b 28 20 61 70 70 5f |.MoveBlo|ck( app_|
|00003de0| 62 6c 6f 63 6b 20 2a 61 | 70 70 2c 20 69 6e 74 20 |block *a|pp, int |
|00003df0| 6f 6c 64 70 6f 73 2c 20 | 69 6e 74 20 6e 65 77 70 |oldpos, |int newp|
|00003e00| 6f 73 2c 20 69 6e 74 20 | 6e 65 77 73 69 7a 65 29 |os, int |newsize)|
|00003e10| 0a 7b 0a 69 6e 74 09 69 | 3b 0a 0a 2f 2a 20 46 69 |.{.int.i|;../* Fi|
|00003e20| 6e 64 20 6f 6c 64 20 62 | 6c 6f 63 6b 09 2a 2f 0a |nd old b|lock.*/.|
|00003e30| 66 6f 72 20 28 20 69 3d | 30 3b 20 69 3c 61 70 70 |for ( i=|0; i<app|
|00003e40| 2d 3e 6e 75 6d 5f 62 6c | 6f 63 6b 73 3b 20 69 2b |->num_bl|ocks; i+|
|00003e50| 2b 29 09 7b 0a 09 69 66 | 20 28 20 61 70 70 2d 3e |+).{..if| ( app->|
|00003e60| 62 6c 6f 63 6b 73 5b 69 | 5d 2e 70 6f 73 20 3d 3d |blocks[i|].pos ==|
|00003e70| 20 6f 6c 64 70 6f 73 29 | 09 62 72 65 61 6b 3b 0a | oldpos)|.break;.|
|00003e80| 09 7d 0a 0a 2f 2a 20 69 | 20 69 73 20 74 68 65 20 |.}../* i| is the |
|00003e90| 6f 6c 64 20 70 6f 73 74 | 69 6f 6e 20 6f 66 20 74 |old post|ion of t|
|00003ea0| 68 65 20 62 6c 6f 63 6b | 09 2a 2f 0a 0a 69 66 20 |he block|.*/..if |
|00003eb0| 28 20 69 3c 61 70 70 2d | 3e 6e 75 6d 5f 62 6c 6f |( i<app-|>num_blo|
|00003ec0| 63 6b 73 29 09 7b 0a 0a | 09 69 6e 74 09 09 64 69 |cks).{..|.int..di|
|00003ed0| 72 65 63 74 69 6f 6e 20 | 3d 20 28 20 6e 65 77 70 |rection |= ( newp|
|00003ee0| 6f 73 20 3e 20 6f 6c 64 | 70 6f 73 20 29 20 3f 20 |os > old|pos ) ? |
|00003ef0| 31 20 3a 20 2d 31 3b 0a | 09 69 6e 74 09 09 6a 2c |1 : -1;.|.int..j,|
|00003f00| 20 6b 3b 0a 09 62 6c 6f | 63 6b 5f 69 6e 66 6f 09 | k;..blo|ck_info.|
|00003f10| 74 65 6d 70 62 6c 6f 63 | 6b 3b 0a 0a 09 61 70 70 |tempbloc|k;...app|
|00003f20| 2d 3e 73 74 61 74 73 2e | 74 6f 74 61 6c 20 2b 3d |->stats.|total +=|
|00003f30| 20 6e 65 77 73 69 7a 65 | 20 2d 20 61 70 70 2d 3e | newsize| - app->|
|00003f40| 62 6c 6f 63 6b 73 5b 69 | 5d 2e 73 69 7a 65 3b 0a |blocks[i|].size;.|
|00003f50| 0a 09 74 65 6d 70 62 6c | 6f 63 6b 09 3d 20 61 70 |..tempbl|ock.= ap|
|00003f60| 70 2d 3e 62 6c 6f 63 6b | 73 5b 69 5d 3b 0a 09 74 |p->block|s[i];..t|
|00003f70| 65 6d 70 62 6c 6f 63 6b | 2e 70 6f 73 09 3d 20 6e |empblock|.pos.= n|
|00003f80| 65 77 70 6f 73 3b 0a 09 | 74 65 6d 70 62 6c 6f 63 |ewpos;..|tempbloc|
|00003f90| 6b 2e 73 69 7a 65 09 3d | 20 6e 65 77 73 69 7a 65 |k.size.=| newsize|
|00003fa0| 3b 0a 0a 09 66 6f 72 20 | 28 20 6a 3d 69 3b 20 6a |;...for |( j=i; j|
|00003fb0| 3e 3d 30 20 26 26 20 6a | 3c 61 70 70 2d 3e 6e 75 |>=0 && j|<app->nu|
|00003fc0| 6d 5f 62 6c 6f 63 6b 73 | 3b 20 6a 2b 3d 64 69 72 |m_blocks|; j+=dir|
|00003fd0| 65 63 74 69 6f 6e 29 09 | 7b 0a 09 09 69 66 20 28 |ection).|{...if (|
|00003fe0| 20 28 61 70 70 2d 3e 62 | 6c 6f 63 6b 73 5b 6a 5d | (app->b|locks[j]|
|00003ff0| 2e 70 6f 73 20 2d 20 6e | 65 77 70 6f 73 29 2a 64 |.pos - n|ewpos)*d|
|00004000| 69 72 65 63 74 69 6f 6e | 20 3e 20 30 29 09 62 72 |irection| > 0).br|
|00004010| 65 61 6b 3b 0a 09 09 7d | 0a 09 6a 2d 3d 64 69 72 |eak;...}|..j-=dir|
|00004020| 65 63 74 69 6f 6e 3b 0a | 09 2f 2a 20 6a 20 69 73 |ection;.|./* j is|
|00004030| 20 6e 6f 77 20 74 68 65 | 20 6e 65 77 20 70 6f 73 | now the| new pos|
|00004040| 74 69 6f 6e 20 66 6f 72 | 20 74 68 65 20 62 6c 6f |tion for| the blo|
|00004050| 63 6b 09 2a 2f 0a 0a 09 | 2f 2a 20 43 6f 70 79 20 |ck.*/...|/* Copy |
|00004060| 74 68 65 20 62 6c 6f 63 | 6b 73 20 62 65 74 77 65 |the bloc|ks betwe|
|00004070| 65 6e 20 6f 6c 64 20 61 | 6e 64 20 6e 65 77 20 70 |en old a|nd new p|
|00004080| 6f 73 74 69 6f 6e 20 64 | 6f 77 6e 2f 75 70 20 6f |ostion d|own/up o|
|00004090| 6e 65 20 73 74 65 70 2e | 2e 2e 09 2a 2f 0a 09 66 |ne step.|...*/..f|
|000040a0| 6f 72 20 28 20 6b 3d 69 | 3b 20 6b 21 3d 6a 3b 20 |or ( k=i|; k!=j; |
|000040b0| 6b 2b 3d 64 69 72 65 63 | 74 69 6f 6e 29 0a 09 09 |k+=direc|tion)...|
|000040c0| 61 70 70 2d 3e 62 6c 6f | 63 6b 73 5b 6b 5d 20 3d |app->blo|cks[k] =|
|000040d0| 20 61 70 70 2d 3e 62 6c | 6f 63 6b 73 5b 6b 2b 64 | app->bl|ocks[k+d|
|000040e0| 69 72 65 63 74 69 6f 6e | 5d 3b 0a 0a 09 2f 2a 20 |irection|];.../* |
|000040f0| 41 6e 64 20 66 69 6c 6c | 20 69 6e 20 6e 65 77 20 |And fill| in new |
|00004100| 62 6c 6f 63 6b 09 2a 2f | 0a 09 61 70 70 2d 3e 62 |block.*/|..app->b|
|00004110| 6c 6f 63 6b 73 5b 6a 5d | 20 3d 20 74 65 6d 70 62 |locks[j]| = tempb|
|00004120| 6c 6f 63 6b 3b 0a 0a 0a | 09 69 66 20 28 20 6a 3d |lock;...|.if ( j=|
|00004130| 3d 30 20 7c 7c 20 6a 3d | 3d 61 70 70 2d 3e 6e 75 |=0 || j=|=app->nu|
|00004140| 6d 5f 62 6c 6f 63 6b 73 | 2d 31 29 09 43 68 65 63 |m_blocks|-1).Chec|
|00004150| 6b 48 65 61 70 53 69 7a | 65 28 20 61 70 70 2c 20 |kHeapSiz|e( app, |
|00004160| 6e 65 77 70 6f 73 2c 20 | 6e 65 77 70 6f 73 2b 6e |newpos, |newpos+n|
|00004170| 65 77 73 69 7a 65 29 3b | 0a 0a 09 53 68 65 6c 6c |ewsize);|...Shell|
|00004180| 5f 46 6f 72 63 65 52 65 | 63 74 55 70 64 61 74 65 |_ForceRe|ctUpdate|
|00004190| 53 6c 6f 77 28 20 61 70 | 70 2d 3e 68 65 61 70 72 |Slow( ap|p->heapr|
|000041a0| 65 63 74 29 3b 0a 09 7d | 0a 0a 65 6c 73 65 09 53 |ect);..}|..else.S|
|000041b0| 68 65 6c 6c 5f 54 65 78 | 74 52 65 63 74 50 72 69 |hell_Tex|tRectPri|
|000041c0| 6e 74 66 28 20 61 70 70 | 2d 3e 74 65 78 74 72 65 |ntf( app|->textre|
|000041d0| 63 74 2c 0a 09 09 22 43 | 6f 75 6c 64 6e 27 74 20 |ct,..."C|ouldn't |
|000041e0| 66 69 6e 64 20 62 6c 6f | 63 6b 20 61 74 20 30 78 |find blo|ck at 0x|
|000041f0| 25 78 2c 20 28 77 61 6e | 74 20 74 6f 20 72 65 61 |%x, (wan|t to rea|
|00004200| 6c 6c 6f 63 20 74 6f 20 | 30 78 25 78 2c 20 73 69 |lloc to |0x%x, si|
|00004210| 7a 65 20 25 69 29 5c 6e | 22 2c 0a 09 09 6f 6c 64 |ze %i)\n|",...old|
|00004220| 70 6f 73 2c 20 6e 65 77 | 70 6f 73 2c 20 6e 65 77 |pos, new|pos, new|
|00004230| 73 69 7a 65 0a 09 09 29 | 3b 0a 0a 72 65 74 75 72 |size...)|;..retur|
|00004240| 6e 3b 0a 7d 0a 0a 0a 0a | 46 69 6c 65 44 61 74 61 |n;.}....|FileData|
|00004250| 82 52 65 64 61 77 00 6f | 63 6b 00 00 d7 05 00 00 |.Redaw.o|ck......|
|00004260| 45 ff ff ff 54 55 56 8e | 03 00 b8 ea 23 69 6e 63 |E...TUV.|....#inc|
|00004270| 6c 75 64 65 20 22 44 65 | 73 6b 4c 69 62 3a 57 69 |lude "De|skLib:Wi|
|00004280| 6d 70 53 57 49 73 2e 68 | 22 0a 0a 23 69 6e 63 6c |mpSWIs.h|"..#incl|
|00004290| 75 64 65 20 22 53 68 65 | 6c 6c 2e 53 68 65 6c 6c |ude "She|ll.Shell|
|000042a0| 2e 68 22 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 52 |.h"..#in|clude "R|
|000042b0| 65 64 72 61 77 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |edraw.h"|.#includ|
|000042c0| 65 20 22 53 74 72 75 63 | 74 73 2e 68 22 0a 0a 0a |e "Struc|ts.h"...|
|000042d0| 0a 0a 76 6f 69 64 09 48 | 65 61 70 52 65 64 72 61 |..void.H|eapRedra|
|000042e0| 77 65 72 28 0a 09 09 53 | 68 65 6c 6c 5f 63 6f 6e |wer(...S|hell_con|
|000042f0| 76 65 72 74 70 6f 69 6e | 74 09 63 6f 6e 76 65 72 |vertpoin|t.conver|
|00004300| 74 2c 0a 09 09 77 69 6d | 70 5f 70 6f 69 6e 74 09 |t,...wim|p_point.|
|00004310| 09 72 65 63 74 73 69 7a | 65 2c 0a 09 09 76 6f 69 |.rectsiz|e,...voi|
|00004320| 64 09 09 09 2a 72 65 66 | 65 72 65 6e 63 65 2c 0a |d...*ref|erence,.|
|00004330| 09 09 63 6f 6e 73 74 20 | 77 69 6d 70 5f 72 65 63 |..const |wimp_rec|
|00004340| 74 09 09 2a 72 65 64 72 | 61 77 72 65 63 74 0a 09 |t..*redr|awrect..|
|00004350| 09 29 0a 7b 0a 61 70 70 | 5f 62 6c 6f 63 6b 09 2a |.).{.app|_block.*|
|00004360| 61 70 70 20 3d 20 28 61 | 70 70 5f 62 6c 6f 63 6b |app = (a|pp_block|
|00004370| 20 2a 29 20 72 65 66 65 | 72 65 6e 63 65 3b 0a 69 | *) refe|rence;.i|
|00004380| 6e 74 09 09 69 2c 20 6d | 69 6e 70 6f 73 2c 20 6d |nt..i, m|inpos, m|
|00004390| 61 78 70 6f 73 3b 0a 69 | 6e 74 09 09 6c 61 73 74 |axpos;.i|nt..last|
|000043a0| 79 6d 61 78 20 3d 20 30 | 3b 0a 0a 0a 6d 69 6e 70 |ymax = 0|;...minp|
|000043b0| 6f 73 20 3d 20 28 72 65 | 64 72 61 77 72 65 63 74 |os = (re|drawrect|
|000043c0| 2d 3e 6d 69 6e 2e 79 2d | 32 2a 53 68 65 6c 6c 5f |->min.y-|2*Shell_|
|000043d0| 50 49 58 45 4c 59 53 49 | 5a 45 29 20 2a 20 61 70 |PIXELYSI|ZE) * ap|
|000043e0| 70 2d 3e 77 6f 72 64 73 | 5f 70 65 72 5f 6f 73 20 |p->words|_per_os |
|000043f0| 2b 20 61 70 70 2d 3e 6d | 69 6e 5f 6d 65 6d 3b 0a |+ app->m|in_mem;.|
|00004400| 6d 61 78 70 6f 73 20 3d | 20 28 72 65 64 72 61 77 |maxpos =| (redraw|
|00004410| 72 65 63 74 2d 3e 6d 61 | 78 2e 79 2b 32 2a 53 68 |rect->ma|x.y+2*Sh|
|00004420| 65 6c 6c 5f 50 49 58 45 | 4c 59 53 49 5a 45 29 20 |ell_PIXE|LYSIZE) |
|00004430| 2a 20 61 70 70 2d 3e 77 | 6f 72 64 73 5f 70 65 72 |* app->w|ords_per|
|00004440| 5f 6f 73 20 2b 20 61 70 | 70 2d 3e 6d 69 6e 5f 6d |_os + ap|p->min_m|
|00004450| 65 6d 3b 0a 0a 66 6f 72 | 20 28 20 69 3d 30 3b 20 |em;..for| ( i=0; |
|00004460| 69 3c 61 70 70 2d 3e 6e | 75 6d 5f 62 6c 6f 63 6b |i<app->n|um_block|
|00004470| 73 3b 20 69 2b 2b 29 09 | 7b 0a 09 69 6e 74 09 79 |s; i++).|{..int.y|
|00004480| 6d 69 6e 2c 20 79 6d 61 | 78 3b 0a 0a 09 69 66 20 |min, yma|x;...if |
|00004490| 28 20 61 70 70 2d 3e 62 | 6c 6f 63 6b 73 5b 69 5d |( app->b|locks[i]|
|000044a0| 2e 70 6f 73 20 3e 20 6d | 61 78 70 6f 73 29 09 09 |.pos > m|axpos)..|
|000044b0| 09 62 72 65 61 6b 3b 0a | 09 69 66 20 28 20 61 70 |.break;.|.if ( ap|
|000044c0| 70 2d 3e 62 6c 6f 63 6b | 73 5b 69 5d 2e 70 6f 73 |p->block|s[i].pos|
|000044d0| 2b 61 70 70 2d 3e 62 6c | 6f 63 6b 73 5b 69 5d 2e |+app->bl|ocks[i].|
|000044e0| 73 69 7a 65 20 3c 20 6d | 69 6e 70 6f 73 29 09 63 |size < m|inpos).c|
|000044f0| 6f 6e 74 69 6e 75 65 3b | 0a 0a 09 79 6d 69 6e 20 |ontinue;|...ymin |
|00004500| 3d 20 28 61 70 70 2d 3e | 62 6c 6f 63 6b 73 5b 69 |= (app->|blocks[i|
|00004510| 5d 2e 70 6f 73 2d 61 70 | 70 2d 3e 6d 69 6e 5f 6d |].pos-ap|p->min_m|
|00004520| 65 6d 29 20 2f 20 61 70 | 70 2d 3e 77 6f 72 64 73 |em) / ap|p->words|
|00004530| 5f 70 65 72 5f 6f 73 3b | 0a 09 79 6d 61 78 20 3d |_per_os;|..ymax =|
|00004540| 20 28 61 70 70 2d 3e 62 | 6c 6f 63 6b 73 5b 69 5d | (app->b|locks[i]|
|00004550| 2e 70 6f 73 2d 61 70 70 | 2d 3e 6d 69 6e 5f 6d 65 |.pos-app|->min_me|
|00004560| 6d 2b 61 70 70 2d 3e 62 | 6c 6f 63 6b 73 5b 69 5d |m+app->b|locks[i]|
|00004570| 2e 73 69 7a 65 29 20 2f | 20 61 70 70 2d 3e 77 6f |.size) /| app->wo|
|00004580| 72 64 73 5f 70 65 72 5f | 6f 73 3b 0a 0a 0a 09 69 |rds_per_|os;....i|
|00004590| 66 20 28 20 79 6d 69 6e | 3e 3d 6c 61 73 74 79 6d |f ( ymin|>=lastym|
|000045a0| 61 78 29 09 7b 0a 09 09 | 57 69 6d 70 5f 53 65 74 |ax).{...|Wimp_Set|
|000045b0| 43 6f 6c 6f 75 72 28 20 | 63 6f 6c 6f 75 72 5f 42 |Colour( |colour_B|
|000045c0| 4c 41 43 4b 29 3b 0a 09 | 09 53 68 65 6c 6c 5f 52 |LACK);..|.Shell_R|
|000045d0| 65 63 74 61 6e 67 6c 65 | 46 69 6c 6c 32 28 20 30 |ectangle|Fill2( 0|
|000045e0| 2c 20 6c 61 73 74 79 6d | 61 78 2c 20 72 65 63 74 |, lastym|ax, rect|
|000045f0| 73 69 7a 65 2e 78 2c 20 | 79 6d 69 6e 2c 20 63 6f |size.x, |ymin, co|
|00004600| 6e 76 65 72 74 29 3b 0a | 09 09 7d 0a 0a 09 69 66 |nvert);.|..}...if|
|00004610| 20 28 20 79 6d 61 78 2d | 79 6d 69 6e 3e 53 68 65 | ( ymax-|ymin>She|
|00004620| 6c 6c 5f 50 49 58 45 4c | 59 53 49 5a 45 29 09 7b |ll_PIXEL|YSIZE).{|
|00004630| 0a 09 09 57 69 6d 70 5f | 53 65 74 43 6f 6c 6f 75 |...Wimp_|SetColou|
|00004640| 72 28 20 38 20 2b 20 28 | 61 70 70 2d 3e 62 6c 6f |r( 8 + (|app->blo|
|00004650| 63 6b 73 5b 69 5d 2e 72 | 65 66 20 26 20 37 29 29 |cks[i].r|ef & 7))|
|00004660| 3b 0a 09 09 53 68 65 6c | 6c 5f 52 65 63 74 61 6e |;...Shel|l_Rectan|
|00004670| 67 6c 65 46 69 6c 6c 32 | 28 20 30 2c 20 79 6d 69 |gleFill2|( 0, ymi|
|00004680| 6e 2c 20 72 65 63 74 73 | 69 7a 65 2e 78 2c 20 79 |n, rects|ize.x, y|
|00004690| 6d 61 78 2c 20 63 6f 6e | 76 65 72 74 29 3b 0a 09 |max, con|vert);..|
|000046a0| 09 7d 0a 0a 09 57 69 6d | 70 5f 53 65 74 43 6f 6c |.}...Wim|p_SetCol|
|000046b0| 6f 75 72 28 20 63 6f 6c | 6f 75 72 5f 57 48 49 54 |our( col|our_WHIT|
|000046c0| 45 29 3b 0a 09 53 68 65 | 6c 6c 5f 4d 6f 76 65 28 |E);..She|ll_Move(|
|000046d0| 20 30 2c 20 79 6d 69 6e | 2c 20 63 6f 6e 76 65 72 | 0, ymin|, conver|
|000046e0| 74 29 3b 0a 09 47 46 58 | 5f 50 6c 6f 74 28 20 70 |t);..GFX|_Plot( p|
|000046f0| 6c 6f 74 5f 53 4f 4c 49 | 44 45 58 46 49 4e 41 4c |lot_SOLI|DEXFINAL|
|00004700| 20 2b 20 70 6c 6f 74 5f | 44 52 41 57 52 45 4c 46 | + plot_|DRAWRELF|
|00004710| 4f 52 45 2c 20 72 65 63 | 74 73 69 7a 65 2e 78 2c |ORE, rec|tsize.x,|
|00004720| 20 30 29 3b 0a 09 53 68 | 65 6c 6c 5f 4d 6f 76 65 | 0);..Sh|ell_Move|
|00004730| 28 20 30 2c 20 79 6d 61 | 78 2c 20 63 6f 6e 76 65 |( 0, yma|x, conve|
|00004740| 72 74 29 3b 0a 09 47 46 | 58 5f 50 6c 6f 74 28 20 |rt);..GF|X_Plot( |
|00004750| 70 6c 6f 74 5f 53 4f 4c | 49 44 45 58 46 49 4e 41 |plot_SOL|IDEXFINA|
|00004760| 4c 20 2b 20 70 6c 6f 74 | 5f 44 52 41 57 52 45 4c |L + plot|_DRAWREL|
|00004770| 46 4f 52 45 2c 20 72 65 | 63 74 73 69 7a 65 2e 78 |FORE, re|ctsize.x|
|00004780| 2c 20 30 29 3b 0a 0a 09 | 6c 61 73 74 79 6d 61 78 |, 0);...|lastymax|
|00004790| 20 3d 20 79 6d 61 78 2b | 53 68 65 6c 6c 5f 50 49 | = ymax+|Shell_PI|
|000047a0| 58 45 4c 59 53 49 5a 45 | 3b 0a 0a 09 7d 0a 0a 0a |XELYSIZE|;...}...|
|000047b0| 69 66 20 28 20 72 65 63 | 74 73 69 7a 65 2e 79 3e |if ( rec|tsize.y>|
|000047c0| 6c 61 73 74 79 6d 61 78 | 29 09 7b 0a 09 57 69 6d |lastymax|).{..Wim|
|000047d0| 70 5f 53 65 74 43 6f 6c | 6f 75 72 28 20 63 6f 6c |p_SetCol|our( col|
|000047e0| 6f 75 72 5f 42 4c 41 43 | 4b 29 3b 0a 09 53 68 65 |our_BLAC|K);..She|
|000047f0| 6c 6c 5f 52 65 63 74 61 | 6e 67 6c 65 46 69 6c 6c |ll_Recta|ngleFill|
|00004800| 32 28 20 30 2c 20 6c 61 | 73 74 79 6d 61 78 2c 20 |2( 0, la|stymax, |
|00004810| 72 65 63 74 73 69 7a 65 | 2e 78 2c 20 72 65 63 74 |rectsize|.x, rect|
|00004820| 73 69 7a 65 2e 79 2c 20 | 63 6f 6e 76 65 72 74 29 |size.y, |convert)|
|00004830| 3b 0a 09 7d 0a 0a 0a 72 | 65 74 75 72 6e 3b 0a 7d |;..}...r|eturn;.}|
|00004840| 0a 0a 0a 46 69 6c 65 44 | 61 74 61 82 52 65 6d 6f |...FileD|ata.Remo|
|00004850| 76 65 42 6c 6f 63 00 a8 | 03 00 00 45 ff ff ff 3c |veBloc..|...E...<|
|00004860| af f1 8e 03 00 a0 37 23 | 69 6e 63 6c 75 64 65 20 |......7#|include |
|00004870| 22 44 65 73 6b 4c 69 62 | 3a 57 69 6d 70 53 57 49 |"DeskLib|:WimpSWI|
|00004880| 73 2e 68 22 0a 0a 23 69 | 6e 63 6c 75 64 65 20 22 |s.h"..#i|nclude "|
|00004890| 53 68 65 6c 6c 2e 45 78 | 74 72 61 2e 68 22 0a 23 |Shell.Ex|tra.h".#|
|000048a0| 69 6e 63 6c 75 64 65 20 | 22 53 68 65 6c 6c 2e 54 |include |"Shell.T|
|000048b0| 65 78 74 52 65 63 74 2e | 68 22 0a 0a 23 69 6e 63 |extRect.|h"..#inc|
|000048c0| 6c 75 64 65 20 22 52 65 | 6d 6f 76 65 42 6c 6f 63 |lude "Re|moveBloc|
|000048d0| 2e 68 22 0a 0a 0a 0a 0a | 76 6f 69 64 09 52 65 6d |.h".....|void.Rem|
|000048e0| 6f 76 65 42 6c 6f 63 6b | 28 20 61 70 70 5f 62 6c |oveBlock|( app_bl|
|000048f0| 6f 63 6b 20 2a 61 70 70 | 2c 20 69 6e 74 20 70 6f |ock *app|, int po|
|00004900| 73 29 0a 7b 0a 69 6e 74 | 09 69 2c 20 6a 3b 0a 42 |s).{.int|.i, j;.B|
|00004910| 4f 4f 4c 09 66 6f 75 6e | 64 20 3d 20 46 41 4c 53 |OOL.foun|d = FALS|
|00004920| 45 3b 0a 0a 66 6f 72 20 | 28 20 69 3d 30 3b 20 69 |E;..for |( i=0; i|
|00004930| 3c 61 70 70 2d 3e 6e 75 | 6d 5f 62 6c 6f 63 6b 73 |<app->nu|m_blocks|
|00004940| 3b 20 69 2b 2b 29 09 7b | 0a 09 69 66 20 28 20 61 |; i++).{|..if ( a|
|00004950| 70 70 2d 3e 62 6c 6f 63 | 6b 73 5b 69 5d 2e 70 6f |pp->bloc|ks[i].po|
|00004960| 73 20 3d 3d 20 70 6f 73 | 29 09 7b 0a 09 09 61 70 |s == pos|).{...ap|
|00004970| 70 2d 3e 73 74 61 74 73 | 2e 74 6f 74 61 6c 20 2d |p->stats|.total -|
|00004980| 3d 20 61 70 70 2d 3e 62 | 6c 6f 63 6b 73 5b 69 5d |= app->b|locks[i]|
|00004990| 2e 73 69 7a 65 3b 0a 09 | 09 66 6f 72 20 28 20 6a |.size;..|.for ( j|
|000049a0| 3d 69 2b 31 3b 20 6a 3c | 61 70 70 2d 3e 6e 75 6d |=i+1; j<|app->num|
|000049b0| 5f 62 6c 6f 63 6b 73 3b | 20 6a 2b 2b 29 09 7b 0a |_blocks;| j++).{.|
|000049c0| 09 09 09 61 70 70 2d 3e | 62 6c 6f 63 6b 73 5b 20 |...app->|blocks[ |
|000049d0| 6a 2d 31 5d 20 3d 20 61 | 70 70 2d 3e 62 6c 6f 63 |j-1] = a|pp->bloc|
|000049e0| 6b 73 5b 20 6a 5d 3b 0a | 09 09 09 7d 0a 09 09 61 |ks[ j];.|...}...a|
|000049f0| 70 70 2d 3e 6e 75 6d 5f | 62 6c 6f 63 6b 73 2d 2d |pp->num_|blocks--|
|00004a00| 3b 0a 09 09 66 6f 75 6e | 64 20 3d 20 54 52 55 45 |;...foun|d = TRUE|
|00004a10| 3b 0a 09 09 62 72 65 61 | 6b 3b 0a 09 09 7d 0a 09 |;...brea|k;...}..|
|00004a20| 7d 0a 0a 69 66 20 28 20 | 21 66 6f 75 6e 64 29 09 |}..if ( |!found).|
|00004a30| 7b 0a 09 53 68 65 6c 6c | 5f 54 65 78 74 52 65 63 |{..Shell|_TextRec|
|00004a40| 74 50 72 69 6e 74 66 28 | 20 61 70 70 2d 3e 74 65 |tPrintf(| app->te|
|00004a50| 78 74 72 65 63 74 2c 0a | 09 09 22 41 74 74 65 6d |xtrect,.|.."Attem|
|00004a60| 70 74 20 74 6f 20 66 72 | 65 65 20 6e 6f 6e 2d 65 |pt to fr|ee non-e|
|00004a70| 78 69 73 74 65 6e 74 20 | 62 6c 6f 63 6b 20 61 74 |xistent |block at|
|00004a80| 20 6c 6f 63 61 74 69 6f | 6e 20 25 78 5c 6e 22 2c | locatio|n %x\n",|
|00004a90| 0a 09 09 70 6f 73 0a 09 | 09 29 3b 0a 09 7d 0a 0a |...pos..|.);..}..|
|00004aa0| 65 6c 73 65 09 53 68 65 | 6c 6c 5f 46 6f 72 63 65 |else.She|ll_Force|
|00004ab0| 52 65 63 74 55 70 64 61 | 74 65 53 6c 6f 77 28 20 |RectUpda|teSlow( |
|00004ac0| 61 70 70 2d 3e 68 65 61 | 70 72 65 63 74 29 3b 0a |app->hea|prect);.|
|00004ad0| 0a 09 2f 2a 20 53 68 6f | 75 6c 64 20 6f 6e 6c 79 |../* Sho|uld only|
|00004ae0| 20 75 70 64 61 74 65 20 | 74 68 65 20 6e 65 77 20 | update |the new |
|00004af0| 62 69 74 20 6f 66 20 74 | 68 65 20 68 65 61 70 2e |bit of t|he heap.|
|00004b00| 2e 2e 09 2a 2f 0a 09 2f | 2a 0a 09 7b 0a 09 77 69 |...*/../|*..{..wi|
|00004b10| 6d 70 5f 72 65 63 74 09 | 72 65 63 74 3b 0a 09 72 |mp_rect.|rect;..r|
|00004b20| 65 63 74 2e 6d 69 6e 2e | 78 20 3d 20 61 70 70 2d |ect.min.|x = app-|
|00004b30| 3e 68 65 61 70 64 69 73 | 70 6c 61 79 2d 3e 72 65 |>heapdis|play->re|
|00004b40| 63 74 2e 6d 69 6e 2e 78 | 3b 0a 09 72 65 63 74 2e |ct.min.x|;..rect.|
|00004b50| 6d 61 78 2e 78 20 3d 20 | 61 70 70 2d 3e 68 65 61 |max.x = |app->hea|
|00004b60| 70 64 69 73 70 6c 61 79 | 2d 3e 72 65 63 74 2e 6d |pdisplay|->rect.m|
|00004b70| 61 78 2e 78 3b 0a 09 72 | 65 63 74 2e 6d 69 6e 2e |ax.x;..r|ect.min.|
|00004b80| 79 20 3d 20 61 70 70 2d | 3e 68 65 61 70 64 69 73 |y = app-|>heapdis|
|00004b90| 70 6c 61 79 2d 3e 72 65 | 63 74 2e 6d 69 6e 2e 79 |play->re|ct.min.y|
|00004ba0| 20 2b 20 70 6f 73 2f 61 | 70 70 2d 3e 77 6f 72 64 | + pos/a|pp->word|
|00004bb0| 73 5f 70 65 72 5f 6f 73 | 3b 0a 09 72 65 63 74 2e |s_per_os|;..rect.|
|00004bc0| 6d 61 78 2e 79 20 3d 20 | 61 70 70 2d 3e 68 65 61 |max.y = |app->hea|
|00004bd0| 70 64 69 73 70 6c 61 79 | 2d 3e 72 65 63 74 2e 6d |pdisplay|->rect.m|
|00004be0| 69 6e 2e 79 20 2b 20 28 | 70 6f 73 2b 73 69 7a 65 |in.y + (|pos+size|
|00004bf0| 29 2f 61 70 70 2d 3e 77 | 6f 72 64 73 5f 70 65 72 |)/app->w|ords_per|
|00004c00| 5f 6f 73 3b 0a 09 7d 0a | 09 2a 2f 0a 0a 7d 0a 46 |_os;..}.|.*/..}.F|
|00004c10| 69 6c 65 44 61 74 61 82 | 53 63 61 6e 46 69 6c 65 |ileData.|ScanFile|
|00004c20| 00 63 00 bf 09 00 00 45 | ff ff ff 4a dd f4 8e 03 |.c.....E|...J....|
|00004c30| 00 18 7b 23 69 6e 63 6c | 75 64 65 20 3c 73 74 72 |..{#incl|ude <str|
|00004c40| 69 6e 67 2e 68 3e 0a 0a | 23 69 6e 63 6c 75 64 65 |ing.h>..|#include|
|00004c50| 20 22 44 65 73 6b 4c 69 | 62 3a 46 69 6c 65 2e 68 | "DeskLi|b:File.h|
|00004c60| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 44 65 73 6b |".#inclu|de "Desk|
|00004c70| 4c 69 62 3a 4c 69 6e 6b | 4c 69 73 74 2e 68 22 0a |Lib:Link|List.h".|
|00004c80| 0a 23 69 6e 63 6c 75 64 | 65 20 22 53 68 65 6c 6c |.#includ|e "Shell|
|00004c90| 2e 54 65 78 74 52 65 63 | 74 2e 68 22 0a 23 69 6e |.TextRec|t.h".#in|
|00004ca0| 63 6c 75 64 65 20 22 53 | 68 65 6c 6c 2e 50 72 69 |clude "S|hell.Pri|
|00004cb0| 6e 74 66 2e 68 22 0a 0a | 23 69 6e 63 6c 75 64 65 |ntf.h"..|#include|
|00004cc0| 20 22 48 65 61 70 47 72 | 61 70 68 2e 48 65 61 70 | "HeapGr|aph.Heap|
|00004cd0| 47 72 61 70 68 2e 68 22 | 0a 0a 23 69 6e 63 6c 75 |Graph.h"|..#inclu|
|00004ce0| 64 65 20 22 53 74 72 75 | 63 74 73 2e 68 22 0a 23 |de "Stru|cts.h".#|
|00004cf0| 69 6e 63 6c 75 64 65 20 | 22 53 63 61 6e 46 69 6c |include |"ScanFil|
|00004d00| 65 2e 68 22 0a 23 69 6e | 63 6c 75 64 65 20 22 53 |e.h".#in|clude "S|
|00004d10| 74 61 72 74 41 70 70 2e | 68 22 0a 23 69 6e 63 6c |tartApp.|h".#incl|
|00004d20| 75 64 65 20 22 41 64 64 | 42 6c 6f 63 6b 2e 68 22 |ude "Add|Block.h"|
|00004d30| 0a 23 69 6e 63 6c 75 64 | 65 20 22 4d 6f 76 65 42 |.#includ|e "MoveB|
|00004d40| 6c 6f 63 6b 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |lock.h".|#include|
|00004d50| 20 22 52 65 6d 6f 76 65 | 42 6c 6f 63 2e 68 22 0a | "Remove|Bloc.h".|
|00004d60| 23 69 6e 63 6c 75 64 65 | 20 22 53 74 61 74 44 69 |#include| "StatDi|
|00004d70| 73 70 6c 2e 68 22 0a 0a | 23 64 65 66 69 6e 65 20 |spl.h"..|#define |
|00004d80| 42 55 46 46 45 52 4c 45 | 4e 09 32 35 36 0a 23 64 |BUFFERLE|N.256.#d|
|00004d90| 65 66 69 6e 65 20 63 6f | 64 65 5f 4d 41 58 4c 45 |efine co|de_MAXLE|
|00004da0| 4e 47 54 48 09 28 34 2a | 33 2b 31 29 0a 0a 0a 0a |NGTH.(4*|3+1)....|
|00004db0| 76 6f 69 64 09 52 65 61 | 64 46 72 6f 6d 46 69 6c |void.Rea|dFromFil|
|00004dc0| 65 28 0a 09 09 66 69 6c | 65 5f 68 61 6e 64 6c 65 |e(...fil|e_handle|
|00004dd0| 20 66 69 6c 65 2c 20 63 | 6f 6e 73 74 20 63 68 61 | file, c|onst cha|
|00004de0| 72 20 2a 66 69 6c 65 6e | 61 6d 65 2c 20 69 6e 74 |r *filen|ame, int|
|00004df0| 20 66 69 6c 65 6c 65 6e | 2c 20 61 70 70 73 5f 61 | filelen|, apps_a|
|00004e00| 6e 63 68 6f 72 62 6c 6f | 63 6b 20 2a 61 70 70 73 |nchorblo|ck *apps|
|00004e10| 0a 09 09 29 0a 7b 0a 61 | 70 70 5f 62 6c 6f 63 6b |...).{.a|pp_block|
|00004e20| 09 2a 61 70 70 3b 0a 63 | 68 61 72 09 09 62 75 66 |.*app;.c|har..buf|
|00004e30| 66 65 72 5b 20 31 2b 42 | 55 46 46 45 52 4c 45 4e |fer[ 1+B|UFFERLEN|
|00004e40| 5d 3b 0a 69 6e 74 09 09 | 62 75 66 66 65 72 70 6f |];.int..|bufferpo|
|00004e50| 73 3b 0a 42 4f 4f 4c 09 | 09 73 74 61 74 73 63 68 |s;.BOOL.|.statsch|
|00004e60| 61 6e 67 65 64 20 3d 20 | 46 41 4c 53 45 3b 0a 55 |anged = |FALSE;.U|
|00004e70| 4e 55 53 45 44 28 20 66 | 69 6c 65 6c 65 6e 29 3b |NUSED( f|ilelen);|
|00004e80| 0a 0a 2f 2a 53 68 65 6c | 6c 5f 50 72 69 6e 74 66 |../*Shel|l_Printf|
|00004e90| 28 20 22 52 65 61 64 69 | 6e 67 20 66 72 6f 6d 20 |( "Readi|ng from |
|00004ea0| 66 69 6c 65 20 27 25 73 | 27 2c 20 66 69 6c 65 20 |file '%s|', file |
|00004eb0| 68 61 6e 64 6c 65 20 25 | 69 5c 6e 22 2c 20 66 69 |handle %|i\n", fi|
|00004ec0| 6c 65 6e 61 6d 65 2c 20 | 66 69 6c 65 29 3b 2a 2f |lename, |file);*/|
|00004ed0| 0a 0a 66 6f 72 20 28 20 | 61 70 70 3d 4c 69 6e 6b |..for ( |app=Link|
|00004ee0| 4c 69 73 74 5f 46 69 72 | 73 74 49 74 65 6d 28 20 |List_Fir|stItem( |
|00004ef0| 26 61 70 70 73 2d 3e 61 | 6e 63 68 6f 72 29 3b 20 |&apps->a|nchor); |
|00004f00| 61 70 70 3b 20 61 70 70 | 20 3d 20 4c 69 6e 6b 4c |app; app| = LinkL|
|00004f10| 69 73 74 5f 4e 65 78 74 | 49 74 65 6d 28 20 61 70 |ist_Next|Item( ap|
|00004f20| 70 29 29 09 7b 0a 09 69 | 66 20 28 20 21 73 74 72 |p)).{..i|f ( !str|
|00004f30| 63 6d 70 28 20 61 70 70 | 2d 3e 66 69 6c 65 6e 61 |cmp( app|->filena|
|00004f40| 6d 65 2c 20 66 69 6c 65 | 6e 61 6d 65 29 29 09 62 |me, file|name)).b|
|00004f50| 72 65 61 6b 3b 0a 09 7d | 0a 0a 69 66 20 28 21 61 |reak;..}|..if (!a|
|00004f60| 70 70 29 09 61 70 70 20 | 3d 20 53 74 61 72 74 41 |pp).app |= StartA|
|00004f70| 70 70 28 20 66 69 6c 65 | 6e 61 6d 65 2c 20 61 70 |pp( file|name, ap|
|00004f80| 70 73 29 3b 0a 0a 0a 62 | 75 66 66 65 72 70 6f 73 |ps);...b|ufferpos|
|00004f90| 20 3d 20 30 3b 0a 66 6f | 72 28 3b 3b 29 09 7b 0a | = 0;.fo|r(;;).{.|
|00004fa0| 09 69 6e 74 09 62 79 74 | 65 20 3d 20 46 69 6c 65 |.int.byt|e = File|
|00004fb0| 5f 52 65 61 64 42 79 74 | 65 28 20 66 69 6c 65 29 |_ReadByt|e( file)|
|00004fc0| 3b 0a 09 2f 2a 53 68 65 | 6c 6c 5f 50 72 69 6e 74 |;../*She|ll_Print|
|00004fd0| 66 28 20 22 52 65 61 64 | 20 62 79 74 65 20 25 69 |f( "Read| byte %i|
|00004fe0| 2c 20 66 69 6c 65 5f 6c | 61 73 74 65 72 72 6f 72 |, file_l|asterror|
|00004ff0| 3d 25 70 5c 6e 22 2c 20 | 62 79 74 65 2c 20 66 69 |=%p\n", |byte, fi|
|00005000| 6c 65 5f 6c 61 73 74 65 | 72 72 6f 72 29 3b 2a 2f |le_laste|rror);*/|
|00005010| 0a 0a 09 69 66 20 28 66 | 69 6c 65 5f 6c 61 73 74 |...if (f|ile_last|
|00005020| 65 72 72 6f 72 29 09 62 | 72 65 61 6b 3b 0a 0a 09 |error).b|reak;...|
|00005030| 69 66 20 28 20 62 79 74 | 65 3d 3d 48 65 61 70 47 |if ( byt|e==HeapG|
|00005040| 72 61 70 68 5f 43 4f 4c | 4f 55 52 29 09 7b 09 2f |raph_COL|OUR).{./|
|00005050| 2a 20 43 6f 64 65 20 75 | 73 65 64 20 62 79 20 41 |* Code u|sed by A|
|00005060| 43 45 4c 69 62 20 74 6f | 20 63 68 61 6e 67 65 20 |CELib to| change |
|00005070| 63 6f 6c 6f 75 72 20 6f | 66 09 2a 2f 0a 09 09 46 |colour o|f.*/...F|
|00005080| 69 6c 65 5f 52 65 61 64 | 42 79 74 65 28 20 66 69 |ile_Read|Byte( fi|
|00005090| 6c 65 29 3b 09 09 2f 2a | 20 74 65 78 74 2e 20 4e |le);../*| text. N|
|000050a0| 6f 74 20 70 6f 73 73 69 | 62 6c 65 20 77 69 74 68 |ot possi|ble with|
|000050b0| 20 53 68 65 6c 6c 2e 09 | 09 2a 2f 0a 09 09 7d 0a | Shell..|.*/...}.|
|000050c0| 0a 09 69 66 20 28 20 62 | 79 74 65 3d 3d 48 65 61 |..if ( b|yte==Hea|
|000050d0| 70 47 72 61 70 68 5f 4d | 41 4c 4c 4f 43 29 09 7b |pGraph_M|ALLOC).{|
|000050e0| 0a 09 09 69 6e 74 09 70 | 6f 73 09 3d 20 46 69 6c |...int.p|os.= Fil|
|000050f0| 65 5f 52 65 61 64 49 6e | 74 28 20 66 69 6c 65 29 |e_ReadIn|t( file)|
|00005100| 3b 0a 09 09 69 6e 74 09 | 73 69 7a 65 09 3d 20 46 |;...int.|size.= F|
|00005110| 69 6c 65 5f 52 65 61 64 | 49 6e 74 28 20 66 69 6c |ile_Read|Int( fil|
|00005120| 65 29 3b 0a 09 09 69 6e | 74 09 72 65 66 09 3d 20 |e);...in|t.ref.= |
|00005130| 46 69 6c 65 5f 52 65 61 | 64 49 6e 74 28 20 66 69 |File_Rea|dInt( fi|
|00005140| 6c 65 29 3b 0a 09 09 69 | 66 20 28 21 66 69 6c 65 |le);...i|f (!file|
|00005150| 5f 6c 61 73 74 65 72 72 | 6f 72 20 26 26 20 70 6f |_lasterr|or && po|
|00005160| 73 29 09 7b 0a 09 09 09 | 41 64 64 42 6c 6f 63 6b |s).{....|AddBlock|
|00005170| 28 20 61 70 70 2c 20 70 | 6f 73 2c 20 73 69 7a 65 |( app, p|os, size|
|00005180| 2c 20 72 65 66 29 3b 0a | 09 09 09 73 74 61 74 73 |, ref);.|...stats|
|00005190| 63 68 61 6e 67 65 64 20 | 3d 20 54 52 55 45 3b 0a |changed |= TRUE;.|
|000051a0| 09 09 09 2f 2a 53 68 65 | 6c 6c 5f 54 65 78 74 52 |.../*She|ll_TextR|
|000051b0| 65 63 74 50 72 69 6e 74 | 66 28 20 61 70 70 2d 3e |ectPrint|f( app->|
|000051c0| 74 65 78 74 72 65 63 74 | 2c 20 22 4d 41 4c 4c 4f |textrect|, "MALLO|
|000051d0| 43 5c 6e 22 29 3b 2a 2f | 0a 09 09 09 7d 0a 09 09 |C\n");*/|....}...|
|000051e0| 7d 0a 0a 09 65 6c 73 65 | 20 69 66 20 28 20 62 79 |}...else| if ( by|
|000051f0| 74 65 3d 3d 48 65 61 70 | 47 72 61 70 68 5f 52 45 |te==Heap|Graph_RE|
|00005200| 41 4c 4c 4f 43 29 09 7b | 0a 09 09 69 6e 74 09 6f |ALLOC).{|...int.o|
|00005210| 6c 64 70 6f 73 09 3d 20 | 46 69 6c 65 5f 52 65 61 |ldpos.= |File_Rea|
|00005220| 64 49 6e 74 28 20 66 69 | 6c 65 29 3b 0a 09 09 69 |dInt( fi|le);...i|
|00005230| 6e 74 09 6e 65 77 70 6f | 73 09 3d 20 46 69 6c 65 |nt.newpo|s.= File|
|00005240| 5f 52 65 61 64 49 6e 74 | 28 20 66 69 6c 65 29 3b |_ReadInt|( file);|
|00005250| 0a 09 09 69 6e 74 09 6e | 65 77 73 69 7a 65 09 3d |...int.n|ewsize.=|
|00005260| 20 46 69 6c 65 5f 52 65 | 61 64 49 6e 74 28 20 66 | File_Re|adInt( f|
|00005270| 69 6c 65 29 3b 0a 09 09 | 69 66 20 28 21 66 69 6c |ile);...|if (!fil|
|00005280| 65 5f 6c 61 73 74 65 72 | 72 6f 72 20 26 26 20 6e |e_laster|ror && n|
|00005290| 65 77 70 6f 73 29 09 7b | 0a 09 09 09 69 66 20 28 |ewpos).{|....if (|
|000052a0| 20 6f 6c 64 70 6f 73 20 | 21 3d 20 30 29 09 4d 6f | oldpos |!= 0).Mo|
|000052b0| 76 65 42 6c 6f 63 6b 28 | 20 61 70 70 2c 20 6f 6c |veBlock(| app, ol|
|000052c0| 64 70 6f 73 2c 20 6e 65 | 77 70 6f 73 2c 20 6e 65 |dpos, ne|wpos, ne|
|000052d0| 77 73 69 7a 65 29 3b 0a | 09 09 09 65 6c 73 65 09 |wsize);.|...else.|
|000052e0| 09 09 41 64 64 42 6c 6f | 63 6b 28 20 61 70 70 2c |..AddBlo|ck( app,|
|000052f0| 20 6e 65 77 70 6f 73 2c | 20 6e 65 77 73 69 7a 65 | newpos,| newsize|
|00005300| 2c 20 30 29 3b 0a 09 09 | 09 73 74 61 74 73 63 68 |, 0);...|.statsch|
|00005310| 61 6e 67 65 64 20 3d 20 | 54 52 55 45 3b 0a 09 09 |anged = |TRUE;...|
|00005320| 09 2f 2a 53 68 65 6c 6c | 5f 54 65 78 74 52 65 63 |./*Shell|_TextRec|
|00005330| 74 50 72 69 6e 74 66 28 | 20 61 70 70 2d 3e 74 65 |tPrintf(| app->te|
|00005340| 78 74 72 65 63 74 2c 20 | 22 52 45 41 4c 4c 4f 43 |xtrect, |"REALLOC|
|00005350| 5c 6e 22 29 3b 2a 2f 0a | 09 09 09 7d 0a 09 09 7d |\n");*/.|...}...}|
|00005360| 0a 0a 09 65 6c 73 65 20 | 69 66 20 28 20 62 79 74 |...else |if ( byt|
|00005370| 65 3d 3d 48 65 61 70 47 | 72 61 70 68 5f 46 52 45 |e==HeapG|raph_FRE|
|00005380| 45 29 09 7b 0a 09 09 69 | 6e 74 09 6f 6c 64 70 6f |E).{...i|nt.oldpo|
|00005390| 73 09 3d 20 46 69 6c 65 | 5f 52 65 61 64 49 6e 74 |s.= File|_ReadInt|
|000053a0| 28 20 66 69 6c 65 29 3b | 0a 09 09 69 66 20 28 21 |( file);|...if (!|
|000053b0| 66 69 6c 65 5f 6c 61 73 | 74 65 72 72 6f 72 29 09 |file_las|terror).|
|000053c0| 7b 0a 09 09 09 69 66 20 | 28 20 6f 6c 64 70 6f 73 |{....if |( oldpos|
|000053d0| 20 21 3d 20 30 29 09 52 | 65 6d 6f 76 65 42 6c 6f | != 0).R|emoveBlo|
|000053e0| 63 6b 28 20 61 70 70 2c | 20 6f 6c 64 70 6f 73 29 |ck( app,| oldpos)|
|000053f0| 3b 0a 09 09 09 73 74 61 | 74 73 63 68 61 6e 67 65 |;....sta|tschange|
|00005400| 64 20 3d 20 54 52 55 45 | 3b 0a 09 09 09 2f 2a 53 |d = TRUE|;..../*S|
|00005410| 68 65 6c 6c 5f 54 65 78 | 74 52 65 63 74 50 72 69 |hell_Tex|tRectPri|
|00005420| 6e 74 66 28 20 61 70 70 | 2d 3e 74 65 78 74 72 65 |ntf( app|->textre|
|00005430| 63 74 2c 20 22 46 52 45 | 45 5c 6e 22 29 3b 2a 2f |ct, "FRE|E\n");*/|
|00005440| 0a 09 09 09 7d 0a 09 09 | 7d 0a 0a 09 65 6c 73 65 |....}...|}...else|
|00005450| 09 7b 0a 09 09 62 75 66 | 66 65 72 5b 20 62 75 66 |.{...buf|fer[ buf|
|00005460| 66 65 72 70 6f 73 2b 2b | 5d 20 3d 20 62 79 74 65 |ferpos++|] = byte|
|00005470| 3b 0a 09 09 69 66 20 28 | 20 62 75 66 66 65 72 70 |;...if (| bufferp|
|00005480| 6f 73 20 3d 3d 20 42 55 | 46 46 45 52 4c 45 4e 29 |os == BU|FFERLEN)|
|00005490| 09 7b 0a 09 09 09 62 75 | 66 66 65 72 5b 20 62 75 |.{....bu|ffer[ bu|
|000054a0| 66 66 65 72 70 6f 73 5d | 20 3d 20 30 3b 0a 09 09 |fferpos]| = 0;...|
|000054b0| 09 53 68 65 6c 6c 5f 54 | 65 78 74 52 65 63 74 50 |.Shell_T|extRectP|
|000054c0| 72 69 6e 74 28 20 61 70 | 70 2d 3e 74 65 78 74 72 |rint( ap|p->textr|
|000054d0| 65 63 74 2c 20 62 75 66 | 66 65 72 29 3b 0a 09 09 |ect, buf|fer);...|
|000054e0| 09 62 75 66 66 65 72 70 | 6f 73 20 3d 20 30 3b 0a |.bufferp|os = 0;.|
|000054f0| 09 09 09 7d 0a 09 09 7d | 0a 09 7d 0a 0a 62 75 66 |...}...}|..}..buf|
|00005500| 66 65 72 5b 20 62 75 66 | 66 65 72 70 6f 73 5d 20 |fer[ buf|ferpos] |
|00005510| 3d 20 30 3b 0a 69 66 20 | 28 20 62 75 66 66 65 72 |= 0;.if |( buffer|
|00005520| 70 6f 73 3e 30 29 09 62 | 75 66 66 65 72 5b 20 62 |pos>0).b|uffer[ b|
|00005530| 75 66 66 65 72 70 6f 73 | 2d 31 5d 20 3d 20 30 3b |ufferpos|-1] = 0;|
|00005540| 09 2f 2a 20 4c 61 73 74 | 20 63 68 72 20 66 72 6f |./* Last| chr fro|
|00005550| 6d 20 46 69 6c 65 5f 52 | 65 61 64 49 6e 74 20 69 |m File_R|eadInt i|
|00005560| 73 20 72 75 62 62 69 73 | 68 2a 2f 0a 53 68 65 6c |s rubbis|h*/.Shel|
|00005570| 6c 5f 54 65 78 74 52 65 | 63 74 50 72 69 6e 74 28 |l_TextRe|ctPrint(|
|00005580| 20 61 70 70 2d 3e 74 65 | 78 74 72 65 63 74 2c 20 | app->te|xtrect, |
|00005590| 62 75 66 66 65 72 29 3b | 0a 2f 2a 66 70 72 69 6e |buffer);|./*fprin|
|000055a0| 74 66 28 20 73 74 64 65 | 72 72 2c 20 62 75 66 66 |tf( stde|rr, buff|
|000055b0| 65 72 29 3b 2a 2f 0a 69 | 66 20 28 20 73 74 61 74 |er);*/.i|f ( stat|
|000055c0| 73 63 68 61 6e 67 65 64 | 29 09 55 70 64 61 74 65 |schanged|).Update|
|000055d0| 41 70 70 53 74 61 74 73 | 44 69 73 70 6c 61 79 28 |AppStats|Display(|
|000055e0| 20 61 70 70 29 3b 0a 72 | 65 74 75 72 6e 3b 0a 7d | app);.r|eturn;.}|
|000055f0| 0a 0a 46 69 6c 65 44 61 | 74 61 82 53 63 61 6e 50 |..FileDa|ta.ScanP|
|00005600| 69 70 65 46 53 00 db 04 | 00 00 45 ff ff ff 59 20 |ipeFS...|..E...Y |
|00005610| 50 8e 03 00 cb f0 23 69 | 6e 63 6c 75 64 65 20 3c |P.....#i|nclude <|
|00005620| 73 74 64 69 6f 2e 68 3e | 0a 23 69 6e 63 6c 75 64 |stdio.h>|.#includ|
|00005630| 65 20 3c 73 74 72 69 6e | 67 2e 68 3e 0a 0a 23 69 |e <strin|g.h>..#i|
|00005640| 6e 63 6c 75 64 65 20 22 | 53 57 49 2e 73 77 69 76 |nclude "|SWI.swiv|
|00005650| 2e 68 22 0a 0a 23 69 6e | 63 6c 75 64 65 20 22 44 |.h"..#in|clude "D|
|00005660| 65 73 6b 4c 69 62 3a 45 | 72 72 6f 72 2e 68 22 0a |eskLib:E|rror.h".|
|00005670| 23 69 6e 63 6c 75 64 65 | 20 22 44 65 73 6b 4c 69 |#include| "DeskLi|
|00005680| 62 3a 46 69 6c 65 2e 68 | 22 0a 0a 23 69 6e 63 6c |b:File.h|"..#incl|
|00005690| 75 64 65 20 22 53 68 65 | 6c 6c 2e 50 72 69 6e 74 |ude "She|ll.Print|
|000056a0| 66 2e 68 22 0a 0a 23 69 | 6e 63 6c 75 64 65 20 22 |f.h"..#i|nclude "|
|000056b0| 53 63 61 6e 50 69 70 65 | 46 53 2e 68 22 0a 23 69 |ScanPipe|FS.h".#i|
|000056c0| 6e 63 6c 75 64 65 20 22 | 53 63 61 6e 46 69 6c 65 |nclude "|ScanFile|
|000056d0| 2e 68 22 0a 0a 0a 23 64 | 65 66 69 6e 65 20 42 55 |.h"...#d|efine BU|
|000056e0| 46 46 45 52 5f 53 49 5a | 45 09 09 34 30 39 36 0a |FFER_SIZ|E..4096.|
|000056f0| 23 64 65 66 69 6e 65 20 | 4e 55 4d 46 49 4c 45 53 |#define |NUMFILES|
|00005700| 5f 52 45 51 55 45 53 54 | 45 44 09 34 30 39 36 0a |_REQUEST|ED.4096.|
|00005710| 0a 0a 0a 0a 76 6f 69 64 | 09 53 63 61 6e 50 69 70 |....void|.ScanPip|
|00005720| 65 46 53 28 20 63 6f 6e | 73 74 20 63 68 61 72 20 |eFS( con|st char |
|00005730| 2a 72 6f 6f 74 70 61 74 | 68 2c 20 61 70 70 73 5f |*rootpat|h, apps_|
|00005740| 61 6e 63 68 6f 72 62 6c | 6f 63 6b 20 2a 61 70 70 |anchorbl|ock *app|
|00005750| 73 29 0a 7b 0a 63 68 61 | 72 09 09 62 75 66 66 65 |s).{.cha|r..buffe|
|00005760| 72 5b 20 42 55 46 46 45 | 52 5f 53 49 5a 45 5d 3b |r[ BUFFE|R_SIZE];|
|00005770| 0a 6f 73 5f 65 72 72 6f | 72 09 2a 65 72 72 6f 72 |.os_erro|r.*error|
|00005780| 3b 0a 69 6e 74 09 09 6e | 75 6d 69 74 65 6d 73 2c |;.int..n|umitems,|
|00005790| 20 6f 66 66 73 65 74 3b | 0a 0a 65 72 72 6f 72 20 | offset;|..error |
|000057a0| 3d 20 73 77 69 78 28 20 | 53 57 49 5f 4f 53 5f 47 |= swix( |SWI_OS_G|
|000057b0| 42 50 42 2c 20 49 4e 28 | 52 30 7c 52 31 7c 52 32 |BPB, IN(|R0|R1|R2|
|000057c0| 7c 52 33 7c 52 34 7c 52 | 35 7c 52 36 29 20 7c 20 ||R3|R4|R|5|R6) | |
|000057d0| 4f 55 54 28 52 33 7c 52 | 34 29 2c 0a 09 31 30 2c |OUT(R3|R|4),..10,|
|000057e0| 20 72 6f 6f 74 70 61 74 | 68 2c 20 62 75 66 66 65 | rootpat|h, buffe|
|000057f0| 72 2c 20 4e 55 4d 46 49 | 4c 45 53 5f 52 45 51 55 |r, NUMFI|LES_REQU|
|00005800| 45 53 54 45 44 2c 20 30 | 2c 20 42 55 46 46 45 52 |ESTED, 0|, BUFFER|
|00005810| 5f 53 49 5a 45 2c 20 4e | 55 4c 4c 2c 0a 09 26 6e |_SIZE, N|ULL,..&n|
|00005820| 75 6d 69 74 65 6d 73 2c | 20 26 6f 66 66 73 65 74 |umitems,| &offset|
|00005830| 0a 09 29 3b 0a 69 66 20 | 28 65 72 72 6f 72 29 09 |..);.if |(error).|
|00005840| 45 72 72 6f 72 5f 52 65 | 70 6f 72 74 28 20 30 2c |Error_Re|port( 0,|
|00005850| 20 65 72 72 6f 72 2d 3e | 65 72 72 6d 65 73 73 29 | error->|errmess)|
|00005860| 3b 0a 0a 65 6c 73 65 20 | 69 66 20 28 6e 75 6d 69 |;..else |if (numi|
|00005870| 74 65 6d 73 20 26 26 20 | 21 65 72 72 6f 72 29 09 |tems && |!error).|
|00005880| 7b 0a 09 63 68 61 72 09 | 2a 63 3b 0a 09 69 6e 74 |{..char.|*c;..int|
|00005890| 09 69 3b 0a 09 63 68 61 | 72 09 70 61 74 68 5b 20 |.i;..cha|r.path[ |
|000058a0| 32 35 36 5d 3b 0a 09 69 | 6e 74 09 6c 65 6e 20 3d |256];..i|nt.len =|
|000058b0| 20 73 74 72 6c 65 6e 28 | 20 72 6f 6f 74 70 61 74 | strlen(| rootpat|
|000058c0| 68 29 3b 0a 0a 09 73 74 | 72 63 70 79 28 20 70 61 |h);...st|rcpy( pa|
|000058d0| 74 68 2c 20 72 6f 6f 74 | 70 61 74 68 29 3b 0a 09 |th, root|path);..|
|000058e0| 69 66 20 28 20 72 6f 6f | 74 70 61 74 68 5b 20 6c |if ( roo|tpath[ l|
|000058f0| 65 6e 2d 31 5d 21 3d 27 | 3a 27 29 09 70 61 74 68 |en-1]!='|:').path|
|00005900| 5b 6c 65 6e 2b 2b 5d 20 | 3d 20 27 2e 27 3b 0a 0a |[len++] |= '.';..|
|00005910| 09 66 6f 72 20 28 20 69 | 3d 30 2c 20 63 3d 62 75 |.for ( i|=0, c=bu|
|00005920| 66 66 65 72 3b 20 69 3c | 6e 75 6d 69 74 65 6d 73 |ffer; i<|numitems|
|00005930| 3b 20 69 2b 2b 29 09 7b | 0a 09 09 69 6e 74 09 2a |; i++).{|...int.*|
|00005940| 63 63 20 3d 20 28 69 6e | 74 20 2a 29 20 63 3b 0a |cc = (in|t *) c;.|
|00005950| 09 09 73 74 72 63 70 79 | 28 20 70 61 74 68 2b 6c |..strcpy|( path+l|
|00005960| 65 6e 2c 20 63 2b 32 30 | 29 3b 0a 09 09 2f 2a 0a |en, c+20|);.../*.|
|00005970| 09 09 53 68 65 6c 6c 5f | 50 72 69 6e 74 66 28 20 |..Shell_|Printf( |
|00005980| 22 46 69 6c 65 20 69 6e | 66 6f 20 69 73 20 25 69 |"File in|fo is %i|
|00005990| 20 25 69 20 25 69 20 25 | 69 20 25 69 5c 6e 22 2c | %i %i %|i %i\n",|
|000059a0| 0a 09 09 09 63 63 5b 30 | 5d 2c 20 63 63 5b 31 5d |....cc[0|], cc[1]|
|000059b0| 2c 20 63 63 5b 32 5d 2c | 20 63 63 5b 33 5d 2c 20 |, cc[2],| cc[3], |
|000059c0| 63 63 5b 34 5d 0a 09 09 | 09 29 3b 0a 09 09 2a 2f |cc[4]...|.);...*/|
|000059d0| 0a 0a 09 09 69 66 20 28 | 20 63 63 5b 34 5d 3d 3d |....if (| cc[4]==|
|000059e0| 31 29 09 7b 0a 09 09 09 | 66 69 6c 65 5f 68 61 6e |1).{....|file_han|
|000059f0| 64 6c 65 09 66 69 6c 65 | 3b 0a 0a 09 09 09 66 69 |dle.file|;.....fi|
|00005a00| 6c 65 20 3d 20 46 69 6c | 65 5f 4f 70 65 6e 28 20 |le = Fil|e_Open( |
|00005a10| 70 61 74 68 2c 20 66 69 | 6c 65 5f 52 45 41 44 29 |path, fi|le_READ)|
|00005a20| 3b 0a 09 09 09 69 66 20 | 28 20 66 69 6c 65 29 09 |;....if |( file).|
|00005a30| 7b 0a 09 09 09 09 52 65 | 61 64 46 72 6f 6d 46 69 |{.....Re|adFromFi|
|00005a40| 6c 65 28 20 66 69 6c 65 | 2c 20 70 61 74 68 2c 20 |le( file|, path, |
|00005a50| 63 63 5b 32 5d 2c 20 61 | 70 70 73 29 3b 0a 09 09 |cc[2], a|pps);...|
|00005a60| 09 09 46 69 6c 65 5f 43 | 6c 6f 73 65 28 20 66 69 |..File_C|lose( fi|
|00005a70| 6c 65 29 3b 0a 09 09 09 | 09 7d 0a 09 09 09 2f 2a |le);....|.}..../*|
|00005a80| 65 6c 73 65 09 53 68 65 | 6c 6c 5f 50 72 69 6e 74 |else.She|ll_Print|
|00005a90| 66 28 20 22 43 6f 75 6c | 64 6e 27 74 20 6f 70 65 |f( "Coul|dn't ope|
|00005aa0| 6e 20 66 69 6c 65 20 25 | 73 5c 6e 22 2c 20 70 61 |n file %|s\n", pa|
|00005ab0| 74 68 29 3b 2a 2f 0a 09 | 09 09 7d 0a 0a 09 09 63 |th);*/..|..}....c|
|00005ac0| 20 2b 3d 20 32 34 20 2b | 20 34 2a 28 20 73 74 72 | += 24 +| 4*( str|
|00005ad0| 6c 65 6e 28 20 63 2b 32 | 30 29 2f 34 29 3b 0a 09 |len( c+2|0)/4);..|
|00005ae0| 09 7d 0a 09 7d 0a 72 65 | 74 75 72 6e 3b 0a 7d 0a |.}..}.re|turn;.}.|
|00005af0| 0a 46 69 6c 65 44 61 74 | 61 82 53 74 61 72 74 41 |.FileDat|a.StartA|
|00005b00| 70 70 00 53 00 e9 07 00 | 00 45 ff ff ff bb ed 75 |pp.S....|.E.....u|
|00005b10| 8d 03 00 68 d8 23 69 6e | 63 6c 75 64 65 20 3c 73 |...h.#in|clude <s|
|00005b20| 74 72 69 6e 67 2e 68 3e | 0a 0a 23 69 6e 63 6c 75 |tring.h>|..#inclu|
|00005b30| 64 65 20 22 44 65 73 6b | 4c 69 62 3a 45 76 65 6e |de "Desk|Lib:Even|
|00005b40| 74 2e 68 22 0a 0a 23 69 | 6e 63 6c 75 64 65 20 22 |t.h"..#i|nclude "|
|00005b50| 53 68 65 6c 6c 2e 54 65 | 78 74 52 65 63 74 2e 68 |Shell.Te|xtRect.h|
|00005b60| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 53 68 65 6c |".#inclu|de "Shel|
|00005b70| 6c 2e 53 61 66 65 41 6c | 6c 6f 63 2e 68 22 0a 23 |l.SafeAl|loc.h".#|
|00005b80| 69 6e 63 6c 75 64 65 20 | 22 53 68 65 6c 6c 2e 50 |include |"Shell.P|
|00005b90| 72 69 6e 74 66 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |rintf.h"|.#includ|
|00005ba0| 65 20 22 53 68 65 6c 6c | 2e 4c 61 62 65 6c 2e 68 |e "Shell|.Label.h|
|00005bb0| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 53 68 65 6c |".#inclu|de "Shel|
|00005bc0| 6c 2e 50 6c 61 69 6e 52 | 65 63 74 2e 68 22 0a 0a |l.PlainR|ect.h"..|
|00005bd0| 23 69 6e 63 6c 75 64 65 | 20 22 53 74 61 72 74 41 |#include| "StartA|
|00005be0| 70 70 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |pp.h".#i|nclude "|
|00005bf0| 52 65 64 72 61 77 2e 68 | 22 0a 23 69 6e 63 6c 75 |Redraw.h|".#inclu|
|00005c00| 64 65 20 22 41 64 64 73 | 52 65 64 72 61 77 2e 68 |de "Adds|Redraw.h|
|00005c10| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 41 70 70 4d |".#inclu|de "AppM|
|00005c20| 65 6e 75 2e 68 22 0a 23 | 69 6e 63 6c 75 64 65 20 |enu.h".#|include |
|00005c30| 22 41 64 64 53 74 65 70 | 2e 68 22 0a 0a 0a 23 64 |"AddStep|.h"...#d|
|00005c40| 65 66 69 6e 65 20 41 44 | 44 52 45 53 53 45 53 58 |efine AD|DRESSESX|
|00005c50| 53 49 5a 45 09 09 28 31 | 32 2a 53 68 65 6c 6c 5f |SIZE..(1|2*Shell_|
|00005c60| 54 45 58 54 58 53 49 5a | 45 29 0a 23 64 65 66 69 |TEXTXSIZ|E).#defi|
|00005c70| 6e 65 09 48 45 41 50 5f | 57 49 44 54 48 09 09 31 |ne.HEAP_|WIDTH..1|
|00005c80| 32 38 0a 23 64 65 66 69 | 6e 65 09 49 4e 49 54 5f |28.#defi|ne.INIT_|
|00005c90| 57 4f 52 44 53 5f 50 45 | 52 5f 4f 53 09 38 0a 0a |WORDS_PE|R_OS.8..|
|00005ca0| 0a 0a 0a 61 70 70 5f 62 | 6c 6f 63 6b 09 2a 53 74 |...app_b|lock.*St|
|00005cb0| 61 72 74 41 70 70 28 20 | 63 6f 6e 73 74 20 63 68 |artApp( |const ch|
|00005cc0| 61 72 20 2a 66 69 6c 65 | 6e 61 6d 65 2c 20 61 70 |ar *file|name, ap|
|00005cd0| 70 73 5f 61 6e 63 68 6f | 72 62 6c 6f 63 6b 20 2a |ps_ancho|rblock *|
|00005ce0| 61 70 70 73 29 0a 7b 0a | 61 70 70 5f 62 6c 6f 63 |apps).{.|app_bloc|
|00005cf0| 6b 09 2a 61 70 70 3b 0a | 69 6e 74 09 09 79 20 3d |k.*app;.|int..y =|
|00005d00| 20 30 3b 0a 0a 0a 0a 61 | 70 70 20 3d 20 53 68 65 | 0;....a|pp = She|
|00005d10| 6c 6c 5f 53 61 66 65 4d | 61 6c 6c 6f 63 28 20 73 |ll_SafeM|alloc( s|
|00005d20| 69 7a 65 6f 66 28 20 61 | 70 70 5f 62 6c 6f 63 6b |izeof( a|pp_block|
|00005d30| 29 29 3b 0a 4c 69 6e 6b | 4c 69 73 74 5f 41 64 64 |));.Link|List_Add|
|00005d40| 54 6f 54 61 69 6c 28 20 | 26 61 70 70 73 2d 3e 61 |ToTail( |&apps->a|
|00005d50| 6e 63 68 6f 72 2c 20 26 | 61 70 70 2d 3e 68 65 61 |nchor, &|app->hea|
|00005d60| 64 65 72 29 3b 0a 0a 61 | 70 70 2d 3e 66 69 6c 65 |der);..a|pp->file|
|00005d70| 6e 61 6d 65 20 3d 20 53 | 68 65 6c 6c 5f 53 61 66 |name = S|hell_Saf|
|00005d80| 65 4d 61 6c 6c 6f 63 28 | 20 31 2b 73 74 72 6c 65 |eMalloc(| 1+strle|
|00005d90| 6e 28 20 66 69 6c 65 6e | 61 6d 65 29 29 3b 0a 73 |n( filen|ame));.s|
|00005da0| 74 72 63 70 79 28 20 61 | 70 70 2d 3e 66 69 6c 65 |trcpy( a|pp->file|
|00005db0| 6e 61 6d 65 2c 20 66 69 | 6c 65 6e 61 6d 65 29 3b |name, fi|lename);|
|00005dc0| 0a 0a 61 70 70 2d 3e 77 | 69 6e 64 20 3d 20 53 68 |..app->w|ind = Sh|
|00005dd0| 65 6c 6c 5f 4f 70 65 6e | 57 69 6e 64 6f 77 28 29 |ell_Open|Window()|
|00005de0| 3b 0a 0a 61 70 70 2d 3e | 68 65 61 70 72 65 63 74 |;..app->|heaprect|
|00005df0| 0a 09 3d 20 53 68 65 6c | 6c 5f 41 64 64 52 65 63 |..= Shel|l_AddRec|
|00005e00| 74 61 6e 67 6c 65 33 28 | 20 61 70 70 2d 3e 77 69 |tangle3(| app->wi|
|00005e10| 6e 64 2c 20 41 44 44 52 | 45 53 53 45 53 58 53 49 |nd, ADDR|ESSESXSI|
|00005e20| 5a 45 2c 20 30 2c 20 48 | 45 41 50 5f 57 49 44 54 |ZE, 0, H|EAP_WIDT|
|00005e30| 48 2c 20 30 2c 20 48 65 | 61 70 52 65 64 72 61 77 |H, 0, He|apRedraw|
|00005e40| 65 72 2c 20 61 70 70 29 | 3b 0a 0a 61 70 70 2d 3e |er, app)|;..app->|
|00005e50| 61 64 64 72 65 73 73 65 | 73 72 65 63 74 0a 09 3d |addresse|srect..=|
|00005e60| 20 53 68 65 6c 6c 5f 41 | 64 64 52 65 63 74 61 6e | Shell_A|ddRectan|
|00005e70| 67 6c 65 33 28 20 61 70 | 70 2d 3e 77 69 6e 64 2c |gle3( ap|p->wind,|
|00005e80| 20 30 2c 20 30 2c 20 41 | 44 44 52 45 53 53 45 53 | 0, 0, A|DDRESSES|
|00005e90| 58 53 49 5a 45 2c 20 30 | 2c 20 41 64 64 73 52 65 |XSIZE, 0|, AddsRe|
|00005ea0| 64 72 61 77 65 72 2c 20 | 61 70 70 29 3b 0a 0a 61 |drawer, |app);..a|
|00005eb0| 70 70 2d 3e 70 6c 61 69 | 6e 72 65 63 74 0a 09 3d |pp->plai|nrect..=|
|00005ec0| 20 53 68 65 6c 6c 5f 41 | 64 64 50 6c 61 69 6e 52 | Shell_A|ddPlainR|
|00005ed0| 65 63 74 28 20 61 70 70 | 2d 3e 77 69 6e 64 2c 20 |ect( app|->wind, |
|00005ee0| 30 20 2c 20 30 2c 20 41 | 44 44 52 45 53 53 45 53 |0 , 0, A|DDRESSES|
|00005ef0| 58 53 49 5a 45 20 2b 20 | 48 45 41 50 5f 57 49 44 |XSIZE + |HEAP_WID|
|00005f00| 54 48 2c 20 30 29 3b 0a | 0a 0a 79 2d 3d 53 68 65 |TH, 0);.|..y-=She|
|00005f10| 6c 6c 5f 54 45 58 54 59 | 53 49 5a 45 3b 0a 61 70 |ll_TEXTY|SIZE;.ap|
|00005f20| 70 2d 3e 6e 75 6d 62 6c | 6f 63 6b 73 09 09 3d 20 |p->numbl|ocks..= |
|00005f30| 53 68 65 6c 6c 5f 4c 61 | 62 65 6c 28 20 61 70 70 |Shell_La|bel( app|
|00005f40| 2d 3e 77 69 6e 64 2c 20 | 30 2c 20 79 2c 20 63 6f |->wind, |0, y, co|
|00005f50| 6c 6f 75 72 5f 42 4c 41 | 43 4b 2c 20 63 6f 6c 6f |lour_BLA|CK, colo|
|00005f60| 75 72 5f 47 52 45 59 31 | 2c 20 22 22 29 3b 0a 79 |ur_GREY1|, "");.y|
|00005f70| 2d 3d 53 68 65 6c 6c 5f | 54 45 58 54 59 53 49 5a |-=Shell_|TEXTYSIZ|
|00005f80| 45 2a 33 2f 32 3b 0a 61 | 70 70 2d 3e 74 6f 74 61 |E*3/2;.a|pp->tota|
|00005f90| 6c 09 09 3d 20 53 68 65 | 6c 6c 5f 4c 61 62 65 6c |l..= She|ll_Label|
|00005fa0| 28 20 61 70 70 2d 3e 77 | 69 6e 64 2c 20 30 2c 20 |( app->w|ind, 0, |
|00005fb0| 79 2c 20 63 6f 6c 6f 75 | 72 5f 42 4c 41 43 4b 2c |y, colou|r_BLACK,|
|00005fc0| 20 63 6f 6c 6f 75 72 5f | 47 52 45 59 31 2c 20 22 | colour_|GREY1, "|
|00005fd0| 22 29 3b 0a 79 2d 3d 53 | 68 65 6c 6c 5f 54 45 58 |");.y-=S|hell_TEX|
|00005fe0| 54 59 53 49 5a 45 2a 33 | 2f 32 3b 0a 61 70 70 2d |TYSIZE*3|/2;.app-|
|00005ff0| 3e 74 6f 74 61 6c 6d 65 | 6d 09 09 3d 20 53 68 65 |>totalme|m..= She|
|00006000| 6c 6c 5f 4c 61 62 65 6c | 28 20 61 70 70 2d 3e 77 |ll_Label|( app->w|
|00006010| 69 6e 64 2c 20 30 2c 20 | 79 2c 20 63 6f 6c 6f 75 |ind, 0, |y, colou|
|00006020| 72 5f 42 4c 41 43 4b 2c | 20 63 6f 6c 6f 75 72 5f |r_BLACK,| colour_|
|00006030| 47 52 45 59 31 2c 20 22 | 22 29 3b 0a 79 2d 3d 53 |GREY1, "|");.y-=S|
|00006040| 68 65 6c 6c 5f 54 45 58 | 54 59 53 49 5a 45 2a 33 |hell_TEX|TYSIZE*3|
|00006050| 2f 32 3b 0a 61 70 70 2d | 3e 70 65 72 63 65 6e 74 |/2;.app-|>percent|
|00006060| 61 67 65 75 73 65 64 09 | 3d 20 53 68 65 6c 6c 5f |ageused.|= Shell_|
|00006070| 4c 61 62 65 6c 28 20 61 | 70 70 2d 3e 77 69 6e 64 |Label( a|pp->wind|
|00006080| 2c 20 30 2c 20 79 2c 20 | 63 6f 6c 6f 75 72 5f 42 |, 0, y, |colour_B|
|00006090| 4c 41 43 4b 2c 20 63 6f | 6c 6f 75 72 5f 47 52 45 |LACK, co|lour_GRE|
|000060a0| 59 31 2c 20 22 22 29 3b | 0a 79 2d 3d 53 68 65 6c |Y1, "");|.y-=Shel|
|000060b0| 6c 5f 54 45 58 54 59 53 | 49 5a 45 2a 33 2f 32 3b |l_TEXTYS|IZE*3/2;|
|000060c0| 0a 61 70 70 2d 3e 6d 69 | 6e 6d 61 78 72 65 63 74 |.app->mi|nmaxrect|
|000060d0| 09 09 3d 20 53 68 65 6c | 6c 5f 4c 61 62 65 6c 28 |..= Shel|l_Label(|
|000060e0| 20 61 70 70 2d 3e 77 69 | 6e 64 2c 20 30 2c 20 79 | app->wi|nd, 0, y|
|000060f0| 2c 20 63 6f 6c 6f 75 72 | 5f 42 4c 41 43 4b 2c 20 |, colour|_BLACK, |
|00006100| 63 6f 6c 6f 75 72 5f 47 | 52 45 59 31 2c 20 22 22 |colour_G|REY1, ""|
|00006110| 29 3b 0a 79 2d 3d 32 2a | 53 68 65 6c 6c 5f 54 45 |);.y-=2*|Shell_TE|
|00006120| 58 54 59 53 49 5a 45 3b | 0a 0a 61 70 70 2d 3e 74 |XTYSIZE;|..app->t|
|00006130| 65 78 74 72 65 63 74 09 | 09 3d 20 53 68 65 6c 6c |extrect.|.= Shell|
|00006140| 5f 41 64 64 54 65 78 74 | 52 65 63 74 28 20 61 70 |_AddText|Rect( ap|
|00006150| 70 2d 3e 77 69 6e 64 2c | 20 30 2c 20 79 2c 20 63 |p->wind,| 0, y, c|
|00006160| 6f 6c 6f 75 72 5f 42 4c | 41 43 4b 2c 20 63 6f 6c |olour_BL|ACK, col|
|00006170| 6f 75 72 5f 47 52 45 59 | 31 29 3b 0a 0a 0a 0a 53 |our_GREY|1);....S|
|00006180| 68 65 6c 6c 5f 54 65 78 | 74 52 65 63 74 50 72 69 |hell_Tex|tRectPri|
|00006190| 6e 74 66 28 20 61 70 70 | 2d 3e 74 65 78 74 72 65 |ntf( app|->textre|
|000061a0| 63 74 2c 20 22 50 69 70 | 65 46 53 20 66 69 6c 65 |ct, "Pip|eFS file|
|000061b0| 6e 61 6d 65 20 27 25 73 | 27 5c 6e 22 2c 20 61 70 |name '%s|'\n", ap|
|000061c0| 70 2d 3e 66 69 6c 65 6e | 61 6d 65 29 3b 0a 0a 61 |p->filen|ame);..a|
|000061d0| 70 70 2d 3e 6e 75 6d 5f | 62 6c 6f 63 6b 73 61 6c |pp->num_|blocksal|
|000061e0| 6c 6f 63 65 64 20 3d 20 | 61 70 70 2d 3e 6e 75 6d |loced = |app->num|
|000061f0| 5f 62 6c 6f 63 6b 73 20 | 3d 20 30 3b 0a 61 70 70 |_blocks |= 0;.app|
|00006200| 2d 3e 62 6c 6f 63 6b 73 | 3d 20 4e 55 4c 4c 3b 0a |->blocks|= NULL;.|
|00006210| 0a 61 70 70 2d 3e 6d 61 | 78 5f 6d 65 6d 20 3d 20 |.app->ma|x_mem = |
|00006220| 30 3b 0a 61 70 70 2d 3e | 6d 69 6e 5f 6d 65 6d 20 |0;.app->|min_mem |
|00006230| 3d 20 30 78 37 66 66 66 | 66 66 66 66 3b 0a 0a 61 |= 0x7fff|ffff;..a|
|00006240| 70 70 2d 3e 73 74 61 74 | 73 2e 74 6f 74 61 6c 20 |pp->stat|s.total |
|00006250| 3d 20 30 3b 0a 0a 61 70 | 70 2d 3e 77 6f 72 64 73 |= 0;..ap|p->words|
|00006260| 5f 70 65 72 5f 6f 73 20 | 3d 20 49 4e 49 54 5f 57 |_per_os |= INIT_W|
|00006270| 4f 52 44 53 5f 50 45 52 | 5f 4f 53 3b 0a 47 65 74 |ORDS_PER|_OS;.Get|
|00006280| 42 65 73 74 41 64 64 72 | 65 73 73 53 74 65 70 28 |BestAddr|essStep(|
|00006290| 20 61 70 70 29 3b 0a 0a | 45 76 65 6e 74 5f 43 6c | app);..|Event_Cl|
|000062a0| 61 69 6d 28 20 65 76 65 | 6e 74 5f 43 4c 49 43 4b |aim( eve|nt_CLICK|
|000062b0| 2c 20 61 70 70 2d 3e 77 | 69 6e 64 2d 3e 77 69 6e |, app->w|ind->win|
|000062c0| 64 6f 77 2c 20 65 76 65 | 6e 74 5f 41 4e 59 2c 20 |dow, eve|nt_ANY, |
|000062d0| 41 70 70 57 69 6e 64 6f | 77 43 6c 69 63 6b 48 61 |AppWindo|wClickHa|
|000062e0| 6e 64 6c 65 72 2c 20 61 | 70 70 29 3b 0a 0a 0a 0a |ndler, a|pp);....|
|000062f0| 72 65 74 75 72 6e 20 61 | 70 70 3b 0a 7d 0a 46 69 |return a|pp;.}.Fi|
|00006300| 6c 65 44 61 74 61 82 53 | 74 61 74 44 69 73 70 6c |leData.S|tatDispl|
|00006310| 00 00 0c 02 00 00 45 ff | ff ff 0e 43 51 8e 03 00 |......E.|...CQ...|
|00006320| 86 2a 23 69 6e 63 6c 75 | 64 65 20 22 53 68 65 6c |.*#inclu|de "Shel|
|00006330| 6c 2e 4c 61 62 65 6c 2e | 68 22 0a 0a 23 69 6e 63 |l.Label.|h"..#inc|
|00006340| 6c 75 64 65 20 22 53 74 | 72 75 63 74 73 2e 68 22 |lude "St|ructs.h"|
|00006350| 0a 23 69 6e 63 6c 75 64 | 65 20 22 53 74 61 74 44 |.#includ|e "StatD|
|00006360| 69 73 70 6c 2e 68 22 0a | 0a 0a 0a 0a 76 6f 69 64 |ispl.h".|....void|
|00006370| 09 55 70 64 61 74 65 41 | 70 70 53 74 61 74 73 44 |.UpdateA|ppStatsD|
|00006380| 69 73 70 6c 61 79 28 20 | 61 70 70 5f 62 6c 6f 63 |isplay( |app_bloc|
|00006390| 6b 20 2a 61 70 70 29 0a | 7b 0a 53 68 65 6c 6c 5f |k *app).|{.Shell_|
|000063a0| 52 65 4c 61 62 65 6c 66 | 28 20 61 70 70 2d 3e 6e |ReLabelf|( app->n|
|000063b0| 75 6d 62 6c 6f 63 6b 73 | 2c 09 09 22 4e 75 6d 62 |umblocks|,.."Numb|
|000063c0| 65 72 20 6f 66 20 62 6c | 6f 63 6b 73 3a 20 20 20 |er of bl|ocks: |
|000063d0| 20 20 20 20 25 38 69 20 | 22 2c 20 61 70 70 2d 3e | %8i |", app->|
|000063e0| 6e 75 6d 5f 62 6c 6f 63 | 6b 73 29 3b 0a 53 68 65 |num_bloc|ks);.She|
|000063f0| 6c 6c 5f 52 65 4c 61 62 | 65 6c 66 28 20 61 70 70 |ll_ReLab|elf( app|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.