home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / dde / decaof < prev    next >
ArcFS Archive  |  1995-10-01  |  29.4 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


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

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



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 72 63 68 69 76 65 00 | 3c 03 00 00 24 06 00 00 |Archive.|<...$...|
|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 63 00 6b 65 66 69 6c | 65 00 00 00 ff ff ff ff |.c.kefil|e.......|
|00000070| 44 fd ff ff 4b 28 04 fa | 00 00 00 00 ff ff ff ff |D...K(..|........|
|00000080| 20 01 00 80 82 64 65 63 | 6f 64 65 00 00 00 00 00 | ....dec|ode.....|
|00000090| 4f 26 00 00 44 ff ff ff | b4 94 ac 3f 13 00 3b 0f |O&..D...|...?..;.|
|000000a0| 4f 26 00 00 32 08 00 00 | 82 65 72 72 6f 72 00 00 |O&..2...|.error..|
|000000b0| 00 00 00 00 d5 03 00 00 | 44 ff ff ff 64 4e ac 3f |........|D...dN.?|
|000000c0| 13 00 ce cb d5 03 00 00 | a5 2e 00 00 82 69 6f 00 |........|.....io.|
|000000d0| 44 4d 45 00 00 00 00 00 | c6 15 00 00 44 ff ff ff |DME.....|....D...|
|000000e0| cc db ac 3f 13 00 76 b1 | c6 15 00 00 9e 32 00 00 |...?..v.|.....2..|
|000000f0| 82 6d 61 69 6e 00 45 00 | 00 00 00 00 f2 09 00 00 |.main.E.|........|
|00000100| 44 ff ff ff 58 cd ac 3f | 13 00 43 b1 f2 09 00 00 |D...X..?|..C.....|
|00000110| 88 48 00 00 82 6d 69 73 | 63 00 45 00 00 00 00 00 |.H...mis|c.E.....|
|00000120| ae 02 00 00 44 ff ff ff | f0 58 ac 3f 13 00 35 53 |....D...|.X.?..5S|
|00000130| ae 02 00 00 9e 52 00 00 | 82 6d 6b 65 6e 64 69 61 |.....R..|.mkendia|
|00000140| 6e 00 00 00 8e 03 00 00 | 44 ff ff ff 74 5c ac 3f |n.......|D...t\.?|
|00000150| 13 00 16 37 8e 03 00 00 | 70 55 00 00 00 52 45 41 |...7....|pU...REA|
|00000160| 44 4d 45 00 00 00 00 00 | 6b 03 00 00 44 ff ff ff |DME.....|k...D...|
|00000170| 74 a1 ad 3f 13 0c e3 ee | 84 02 00 00 10 03 00 00 |t..?....|........|
|00000180| 82 68 00 6b 65 66 69 6c | 65 00 00 00 ff ff ff ff |.h.kefil|e.......|
|00000190| 44 fd ff ff f3 29 04 fa | 00 00 00 00 ff ff ff ff |D....)..|........|
|000001a0| 40 02 00 80 82 63 70 72 | 6f 74 6f 00 00 00 00 00 |@....cpr|oto.....|
|000001b0| 7b 01 00 00 44 ff ff ff | 18 63 ac 3f 13 00 7b 78 |{...D...|.c.?..{x|
|000001c0| 7b 01 00 00 22 59 00 00 | 82 64 65 63 61 6f 66 00 |{..."Y..|.decaof.|
|000001d0| 00 00 00 00 a3 0b 00 00 | 44 ff ff ff 38 66 ac 3f |........|D...8f.?|
|000001e0| 13 00 7e 27 a3 0b 00 00 | c1 5a 00 00 82 65 72 72 |..~'....|.Z...err|
|000001f0| 6f 72 00 00 00 00 00 00 | 5f 01 00 00 44 ff ff ff |or......|_...D...|
|00000200| 20 6a ac 3f 13 00 21 fb | 5f 01 00 00 88 66 00 00 | j.?..!.|_....f..|
|00000210| 82 69 6f 00 44 4d 45 00 | 00 00 00 00 3b 03 00 00 |.io.DME.|....;...|
|00000220| 44 ff ff ff 08 6e ac 3f | 13 00 6c 2d 3b 03 00 00 |D....n.?|..l-;...|
|00000230| 0b 68 00 00 82 6d 61 69 | 6e 00 45 00 00 00 00 00 |.h...mai|n.E.....|
|00000240| 77 01 00 00 44 ff ff ff | 60 70 ac 3f 13 00 6b 66 |w...D...|`p.?..kf|
|00000250| 77 01 00 00 6a 6b 00 00 | 82 6d 69 73 63 00 45 00 |w...jk..|.misc.E.|
|00000260| 00 00 00 00 43 01 00 00 | 44 ff ff ff 1c 73 ac 3f |....C...|D....s.?|
|00000270| 13 00 60 cc 43 01 00 00 | 05 6d 00 00 00 52 45 41 |..`.C...|.m...REA|
|00000280| 44 4d 45 00 00 00 00 00 | 6b 03 00 00 44 ff ff ff |DME.....|k...D...|
|00000290| 74 a1 ad 3f 13 0c e3 ee | 84 02 00 00 10 03 00 00 |t..?....|........|
|000002a0| 82 6d 61 6b 65 66 69 6c | 65 00 00 00 26 04 00 00 |.makefil|e...&...|
|000002b0| 44 ff ff ff 9c 15 ad 3f | 13 00 f2 3c 26 04 00 00 |D......?|...<&...|
|000002c0| 24 00 00 00 82 52 45 41 | 44 4d 45 00 00 00 00 00 |$....REA|DME.....|
|000002d0| 6b 03 00 00 44 ff ff ff | 74 a1 ad 3f 13 00 e3 ee |k...D...|t..?....|
|000002e0| 6b 03 00 00 6e 04 00 00 | 82 73 65 64 00 49 4f 4e |k...n...|.sed.ION|
|000002f0| 00 00 00 00 ff ff ff ff | 44 fd ff ff dd 2a 04 fa |........|D....*..|
|00000300| 00 00 00 00 ff ff ff ff | f4 02 00 80 82 6e 6f 73 |........|.....nos|
|00000310| 79 73 64 65 70 00 00 00 | f1 00 00 00 44 ff ff ff |ysdep...|....D...|
|00000320| 88 1c 85 3d 13 00 2b e3 | f1 00 00 00 6c 6e 00 00 |...=..+.|....ln..|
|00000330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000350| 00 00 00 00 82 56 45 52 | 53 49 4f 4e 00 00 00 00 |.....VER|SION....|
|00000360| 11 00 00 00 44 ff ff ff | 18 f2 a9 3f 13 00 6a 15 |....D...|...?..j.|
|00000370| 11 00 00 00 fd 07 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000390| 00 00 00 00 00 00 00 00 | 00 00 00 00 6c c2 a4 71 |........|....l..q|
|000003a0| c3 02 84 10 2a 20 86 d4 | 99 43 e7 4d 9b 32 0e a7 |....* ..|.C.M.2..|
|000003b0| e4 61 59 a6 cd 9c 92 42 | e4 a4 39 83 a6 25 49 10 |.aY....B|..9..%I.|
|000003c0| 55 96 b8 00 01 82 cc c7 | 90 23 81 88 a1 33 66 8e |U.......|.#...3f.|
|000003d0| 8b a5 2e c6 bc 71 51 67 | 8d 02 05 43 86 f4 48 30 |.....qQg|...C..H0|
|000003e0| 66 0c 56 23 4c 82 1c 99 | d2 03 44 0b 22 42 a6 10 |f.V#L...|..D."B..|
|000003f0| a1 21 c3 ec 13 05 4c 92 | a4 ed a1 20 89 93 29 54 |.!....L.|... ..)T|
|00000400| 82 30 61 d2 63 24 cb 30 | 6c d8 98 9d 53 f7 2e 15 |.0a.c$.0|l...S...|
|00000410| 22 49 a4 f4 20 41 62 0f | 92 27 4d 8a f4 79 21 66 |"I.. Ab.|.'M..y!f|
|00000420| a4 02 21 41 86 2c a9 02 | c5 48 12 26 45 16 37 7e |..!A.,..|.H.&E.7~|
|00000430| 1c 79 32 9d 36 70 5e 90 | 89 18 e6 8d 19 17 74 c2 |.y2.6p^.|......t.|
|00000440| c8 71 a1 e5 6a c0 32 64 | d2 d0 01 e1 e6 0d 88 36 |.q..j.2d|.......6|
|00000450| 0d cb 5c 7d 22 44 09 d9 | 04 6d 44 ba 71 e1 7b b5 |..\}"D..|.mD.q.{.|
|00000460| d4 d5 cc 7f a7 99 33 26 | 7a 9a a9 be 61 ca 69 c8 |......3&|z...a.i.|
|00000470| 5c c1 14 29 43 8e 27 1f | 19 b5 68 c4 37 d0 c7 48 |\..)C.'.|..h.7..H|
|00000480| a7 5e fe 7a 79 ed dc bd | 2a 70 de da 8c 8e 04 24 |.^.zy...|*p.....$|
|00000490| 50 10 37 9e 42 01 7e 14 | 59 a5 60 96 6f 24 00 01 |P.7.B.~.|Y.`.o$..|
|000004a0| 42 7e fb 4d 21 60 7e 71 | a5 d5 df 7c 65 c0 51 c6 |B~.M!`~q|...|e.Q.|
|000004b0| 46 f7 e5 f7 5d 78 fd 21 | 47 10 6e 11 4e 48 c6 81 |F...]x.!|G.n.NH..|
|000004c0| 00 82 25 96 82 66 b5 00 | e2 85 0a fa d7 86 1d bf |..%..f..|........|
|000004d0| 6d 78 50 42 2d 16 f4 62 | 19 cc b1 41 86 7f 73 e0 |mxPB-..b|...A..s.|
|000004e0| 66 96 19 bc bd 31 c7 4c | ab c1 e1 42 8e 1f f2 10 |f....1.L|...B....|
|000004f0| a3 41 08 d1 f8 86 8d 20 | f8 70 e4 8c fe c9 d1 c6 |.A..... |.p......|
|00000500| 8e 4f 26 59 e3 87 c9 c9 | 68 a5 18 04 5d e5 57 6c |.O&Y....|h...].Wl|
|00000510| 81 dd 47 9f 6b fe e5 67 | 17 5e 7a 31 21 e0 98 3c |..G.k..g|.^z1!..<|
|00000520| 9a 69 18 62 52 3c 38 46 | 42 61 b8 a1 43 94 53 b6 |.i.bR<8F|Ba..C.S.|
|00000530| c0 23 9b 20 26 28 a0 87 | 69 d4 e9 02 1a bf 15 b4 |.#. &(..|i.......|
|00000540| 51 a0 6e 80 20 95 1c 0a | 85 c1 5c 1d bb a9 e0 c7 |Q.n. ...|..\.....|
|00000550| 55 5c 8e b1 c6 47 f7 cd | 59 46 9d fe a1 30 c6 87 |U\...G..|YF...0..|
|00000560| 2e b8 b0 03 08 b1 39 34 | 86 19 2c 9a c8 27 1f 8a |......94|..,..'..|
|00000570| ba 04 07 a3 73 cc 41 a5 | 93 f9 61 a6 19 67 9e 81 |....s.A.|..a..g..|
|00000580| 96 c2 83 6c 0e 7a 1f a0 | 82 a2 71 15 b0 cb a1 71 |...l.z..|..q....q|
|00000590| 5f 1b 86 e6 c6 29 72 c9 | 22 da 24 08 c4 0e 7a 15 |_....)r.|".$...z.|
|000005a0| b2 c4 1e db ac a0 5e fd | 17 20 88 43 88 38 96 80 |......^.|. .C.8..|
|000005b0| 2d f8 46 ed a1 75 16 1a | ad 7c 01 11 f1 04 08 4e |-.F..u..|.|.....N|
|000005c0| 3c 81 12 11 45 80 46 45 | 11 20 50 81 44 12 53 80 |<...E.FE|. P.D.S.|
|000005d0| 10 97 13 f4 b6 60 62 96 | 0a 05 e9 a1 79 12 6e 24 |.....`b.|....y.n$|
|000005e0| eb 1b 89 ea e6 c2 b4 ca | 31 a7 83 79 63 d4 37 a8 |........|1..yc.7.|
|000005f0| a2 af be d1 d2 c4 ee 11 | da c6 74 d5 11 0a df 6c |........|..t....l|
|00000600| c2 3a 87 9e 92 0f f7 4a | e8 18 15 5f 4c 68 c6 2d |.:.....J|..._Lh.-|
|00000610| 92 a7 31 c7 d2 8a 0c dd | 1b 0f 7f 3c b1 02 1b b3 |..1.....|...<....|
|00000620| 47 33 c4 12 46 69 6c 65 | 44 61 74 61 82 6d 61 6b |G3..File|Data.mak|
|00000630| 65 66 69 6c 65 00 00 00 | 26 04 00 00 44 ff ff ff |efile...|&...D...|
|00000640| 9c 15 ad 3f 03 00 f2 3c | 23 20 4d 61 6b 65 66 69 |...?...<|# Makefi|
|00000650| 6c 65 20 66 6f 72 20 44 | 65 63 41 4f 46 0a 23 0a |le for D|ecAOF.#.|
|00000660| 23 20 41 6e 64 79 20 44 | 75 70 6c 61 69 6e 2c 20 |# Andy D|uplain, |
|00000670| 42 54 20 43 75 73 74 6f | 6d 65 72 20 53 79 73 74 |BT Custo|mer Syst|
|00000680| 65 6d 73 2c 20 42 72 69 | 67 68 74 6f 6e 2c 20 55 |ems, Bri|ghton, U|
|00000690| 4b 2e 20 20 64 75 70 6c | 61 69 6e 40 62 74 63 73 |K. dupl|ain@btcs|
|000006a0| 2e 62 74 2e 63 6f 2e 75 | 6b 0a 0a 43 43 3d 09 63 |.bt.co.u|k..CC=.c|
|000006b0| 63 0a 43 46 4c 41 47 53 | 3d 20 2d 44 42 53 44 34 |c.CFLAGS|= -DBSD4|
|000006c0| 32 20 2d 4f 0a 4c 49 42 | 53 3d 0a 49 4e 53 54 41 |2 -O.LIB|S=.INSTA|
|000006d0| 4c 4c 3d 69 6e 73 74 61 | 6c 6c 20 2d 73 0a 49 4e |LL=insta|ll -s.IN|
|000006e0| 53 54 44 49 52 3d 24 24 | 7b 48 4f 4d 45 7d 2f 62 |STDIR=$$|{HOME}/b|
|000006f0| 69 6e 0a 42 41 43 4b 55 | 50 46 49 4c 45 3d 24 24 |in.BACKU|PFILE=$$|
|00000700| 7b 48 4f 4d 45 7d 2f 74 | 6d 70 2f 64 65 63 61 6f |{HOME}/t|mp/decao|
|00000710| 66 2e 74 61 72 2e 5a 0a | 0a 23 20 65 64 69 74 20 |f.tar.Z.|.# edit |
|00000720| 6e 6f 20 6d 6f 72 65 0a | 0a 4f 42 4a 53 3d 09 6d |no more.|.OBJS=.m|
|00000730| 61 69 6e 2e 6f 20 64 65 | 63 6f 64 65 2e 6f 20 6d |ain.o de|code.o m|
|00000740| 69 73 63 2e 6f 20 69 6f | 2e 6f 20 65 72 72 6f 72 |isc.o io|.o error|
|00000750| 2e 6f 0a 53 52 43 53 3d | 09 6d 61 69 6e 2e 63 20 |.o.SRCS=|.main.c |
|00000760| 64 65 63 6f 64 65 2e 63 | 20 6d 69 73 63 2e 63 20 |decode.c| misc.c |
|00000770| 69 6f 2e 63 20 65 72 72 | 6f 72 2e 63 0a 0a 64 65 |io.c err|or.c..de|
|00000780| 63 61 6f 66 3a 09 24 28 | 4f 42 4a 53 29 0a 09 24 |caof:.$(|OBJS)..$|
|00000790| 28 43 43 29 20 2d 6f 20 | 24 40 20 24 28 4f 42 4a |(CC) -o |$@ $(OBJ|
|000007a0| 53 29 20 24 28 4c 49 42 | 53 29 0a 0a 64 65 70 65 |S) $(LIB|S)..depe|
|000007b0| 6e 64 3a 09 24 28 53 52 | 43 53 29 0a 09 6d 61 6b |nd:.$(SR|CS)..mak|
|000007c0| 65 64 65 70 65 6e 64 20 | 24 28 43 46 4c 41 47 53 |edepend |$(CFLAGS|
|000007d0| 29 20 2d 2d 20 24 28 53 | 52 43 53 29 0a 09 6d 76 |) -- $(S|RCS)..mv|
|000007e0| 20 6d 61 6b 65 66 69 6c | 65 20 6d 61 6b 65 66 69 | makefil|e makefi|
|000007f0| 6c 65 2e 6f 6c 64 0a 09 | 73 65 64 20 2d 66 20 6e |le.old..|sed -f n|
|00000800| 6f 73 79 73 64 65 70 2e | 73 65 64 20 3c 20 6d 61 |osysdep.|sed < ma|
|00000810| 6b 65 66 69 6c 65 2e 6f | 6c 64 20 3e 20 6d 61 6b |kefile.o|ld > mak|
|00000820| 65 66 69 6c 65 0a 09 72 | 6d 20 2d 66 20 6d 61 6b |efile..r|m -f mak|
|00000830| 65 66 69 6c 65 2e 6f 6c | 64 20 6d 61 6b 65 66 69 |efile.ol|d makefi|
|00000840| 6c 65 2e 62 61 6b 0a 0a | 69 6e 73 74 61 6c 6c 3a |le.bak..|install:|
|00000850| 09 64 65 63 61 6f 66 0a | 09 24 28 49 4e 53 54 41 |.decaof.|.$(INSTA|
|00000860| 4c 4c 29 20 64 65 63 61 | 6f 66 20 24 28 49 4e 53 |LL) deca|of $(INS|
|00000870| 54 44 49 52 29 0a 0a 63 | 6c 65 61 6e 3a 0a 09 72 |TDIR)..c|lean:..r|
|00000880| 6d 20 2d 66 20 64 65 63 | 61 6f 66 20 24 28 4f 42 |m -f dec|aof $(OB|
|00000890| 4a 53 29 20 65 6e 64 69 | 61 6e 2e 68 20 6d 6b 65 |JS) endi|an.h mke|
|000008a0| 6e 64 69 61 6e 20 63 6f | 72 65 20 61 2e 6f 75 74 |ndian co|re a.out|
|000008b0| 20 2a 7e 0a 0a 62 61 63 | 6b 75 70 3a 09 63 6c 65 | *~..bac|kup:.cle|
|000008c0| 61 6e 0a 09 28 63 64 20 | 2e 2e 3b 20 74 61 72 20 |an..(cd |..; tar |
|000008d0| 63 66 76 20 2d 20 64 65 | 63 61 6f 66 20 7c 20 63 |cfv - de|caof | c|
|000008e0| 6f 6d 70 72 65 73 73 20 | 2d 66 20 3e 20 24 28 42 |ompress |-f > $(B|
|000008f0| 41 43 4b 55 50 46 49 4c | 45 29 29 0a 0a 64 65 63 |ACKUPFIL|E))..dec|
|00000900| 61 6f 66 2e 68 3a 09 65 | 6e 64 69 61 6e 2e 68 0a |aof.h:.e|ndian.h.|
|00000910| 0a 65 6e 64 69 61 6e 2e | 68 3a 09 6d 6b 65 6e 64 |.endian.|h:.mkend|
|00000920| 69 61 6e 0a 09 6d 6b 65 | 6e 64 69 61 6e 20 3e 20 |ian..mke|ndian > |
|00000930| 65 6e 64 69 61 6e 2e 68 | 0a 0a 6d 6b 65 6e 64 69 |endian.h|..mkendi|
|00000940| 61 6e 3a 09 6d 6b 65 6e | 64 69 61 6e 2e 63 0a 09 |an:.mken|dian.c..|
|00000950| 24 28 43 43 29 20 24 28 | 43 46 4c 41 47 53 29 20 |$(CC) $(|CFLAGS) |
|00000960| 2d 6f 20 6d 6b 65 6e 64 | 69 61 6e 20 6d 6b 65 6e |-o mkend|ian mken|
|00000970| 64 69 61 6e 2e 63 0a 0a | 23 20 44 4f 20 4e 4f 54 |dian.c..|# DO NOT|
|00000980| 20 44 45 4c 45 54 45 20 | 54 48 49 53 20 4c 49 4e | DELETE |THIS LIN|
|00000990| 45 20 2d 2d 20 6d 61 6b | 65 20 64 65 70 65 6e 64 |E -- mak|e depend|
|000009a0| 20 64 65 70 65 6e 64 73 | 20 6f 6e 20 69 74 2e 0a | depends| on it..|
|000009b0| 0a 6d 61 69 6e 2e 6f 3a | 20 64 65 63 61 6f 66 2e |.main.o:| decaof.|
|000009c0| 68 20 63 70 72 6f 74 6f | 2e 68 20 69 6f 2e 68 20 |h cproto|.h io.h |
|000009d0| 6d 69 73 63 2e 68 20 65 | 72 72 6f 72 2e 68 0a 64 |misc.h e|rror.h.d|
|000009e0| 65 63 6f 64 65 2e 6f 3a | 20 64 65 63 61 6f 66 2e |ecode.o:| decaof.|
|000009f0| 68 20 63 70 72 6f 74 6f | 2e 68 20 69 6f 2e 68 20 |h cproto|.h io.h |
|00000a00| 6d 61 69 6e 2e 68 20 6d | 69 73 63 2e 68 0a 64 65 |main.h m|isc.h.de|
|00000a10| 63 6f 64 65 2e 6f 3a 20 | 65 72 72 6f 72 2e 68 20 |code.o: |error.h |
|00000a20| 0a 6d 69 73 63 2e 6f 3a | 20 64 65 63 61 6f 66 2e |.misc.o:| decaof.|
|00000a30| 68 0a 69 6f 2e 6f 3a 20 | 64 65 63 61 6f 66 2e 68 |h.io.o: |decaof.h|
|00000a40| 20 63 70 72 6f 74 6f 2e | 68 20 65 72 72 6f 72 2e | cproto.|h error.|
|00000a50| 68 20 0a 65 72 72 6f 72 | 2e 6f 3a 20 65 72 72 6f |h .error|.o: erro|
|00000a60| 72 2e 68 20 63 70 72 6f | 74 6f 2e 68 20 0a 46 69 |r.h cpro|to.h .Fi|
|00000a70| 6c 65 44 61 74 61 82 52 | 45 41 44 4d 45 00 00 00 |leData.R|EADME...|
|00000a80| 00 00 6b 03 00 00 44 ff | ff ff 74 a1 ad 3f 03 00 |..k...D.|..t..?..|
|00000a90| e3 ee 09 54 68 69 73 20 | 70 72 6f 67 72 61 6d 20 |...This |program |
|00000aa0| 69 73 20 66 72 65 65 2e | 2e 2e 20 64 6f 20 77 68 |is free.|.. do wh|
|00000ab0| 61 74 20 79 6f 75 20 6c | 69 6b 65 20 77 69 74 68 |at you l|ike with|
|00000ac0| 20 69 74 20 28 61 73 20 | 6c 6f 6e 67 20 61 73 20 | it (as |long as |
|00000ad0| 79 6f 75 0a 09 64 6f 6e | 27 74 20 6d 61 6b 65 20 |you..don|'t make |
|00000ae0| 61 6e 79 20 6d 6f 6e 65 | 79 20 6f 75 74 20 6f 66 |any mone|y out of|
|00000af0| 20 69 74 29 2e 0a 0a 09 | 54 68 69 73 20 69 73 20 | it)....|This is |
|00000b00| 69 6d 69 74 61 74 69 6f | 6e 20 6f 66 20 74 68 65 |imitatio|n of the|
|00000b10| 20 41 63 6f 72 6e 20 22 | 64 65 63 61 6f 66 22 20 | Acorn "|decaof" |
|00000b20| 70 72 6f 67 72 61 6d 20 | 64 69 73 74 72 69 62 75 |program |distribu|
|00000b30| 74 65 64 20 77 69 74 68 | 0a 09 74 68 65 20 44 65 |ted with|..the De|
|00000b40| 73 6b 74 6f 70 20 44 65 | 76 65 6c 6f 70 6d 65 6e |sktop De|velopmen|
|00000b50| 74 20 45 6e 76 69 72 6f | 6e 6d 65 6e 74 2e 20 20 |t Enviro|nment. |
|00000b60| 49 20 77 72 6f 74 65 20 | 69 74 20 74 6f 20 68 65 |I wrote |it to he|
|00000b70| 6c 70 20 6d 65 20 77 69 | 74 68 0a 09 73 6f 6d 65 |lp me wi|th..some|
|00000b80| 20 6f 74 68 65 72 20 77 | 6f 72 6b 20 49 20 61 6d | other w|ork I am|
|00000b90| 20 64 6f 69 6e 67 20 66 | 72 6f 6d 20 55 4e 49 58 | doing f|rom UNIX|
|00000ba0| 20 61 6e 64 20 64 65 63 | 69 64 65 64 20 74 6f 20 | and dec|ided to |
|00000bb0| 72 65 6c 65 61 73 65 20 | 69 74 20 74 6f 0a 09 74 |release |it to..t|
|00000bc0| 68 65 20 67 65 6e 65 72 | 61 6c 20 70 75 62 6c 69 |he gener|al publi|
|00000bd0| 63 2e 0a 0a 09 54 6f 20 | 69 6e 73 74 61 6c 6c 20 |c....To |install |
|00000be0| 74 68 65 20 73 79 73 74 | 65 6d 20 65 64 69 74 20 |the syst|em edit |
|00000bf0| 74 68 65 20 6d 61 6b 65 | 66 69 6c 65 20 74 6f 20 |the make|file to |
|00000c00| 63 68 61 6e 67 65 20 74 | 68 65 20 27 2d 44 42 53 |change t|he '-DBS|
|00000c10| 44 34 32 27 0a 09 43 46 | 4c 41 47 53 20 64 65 66 |D42'..CF|LAGS def|
|00000c20| 69 6e 65 20 74 6f 20 79 | 6f 75 72 20 73 79 73 74 |ine to y|our syst|
|00000c30| 65 6d 20 28 73 65 65 20 | 74 68 65 20 64 65 63 61 |em (see |the deca|
|00000c40| 6f 66 2e 68 20 66 69 6c | 65 3b 20 61 6c 74 68 6f |of.h fil|e; altho|
|00000c50| 75 67 68 20 69 74 0a 09 | 64 6f 65 73 6e 27 74 20 |ugh it..|doesn't |
|00000c60| 6d 61 74 74 65 72 20 74 | 6f 6f 20 6d 75 63 68 20 |matter t|oo much |
|00000c70| 61 73 20 74 68 65 72 65 | 20 69 73 6e 27 74 20 76 |as there| isn't v|
|00000c80| 65 72 79 20 6d 75 63 68 | 20 73 79 73 74 65 6d 2d |ery much| system-|
|00000c90| 64 65 70 65 6e 64 61 6e | 74 0a 09 73 74 75 66 66 |dependan|t..stuff|
|00000ca0| 20 69 6e 20 74 68 65 20 | 70 72 6f 67 72 61 6d 29 | in the |program)|
|00000cb0| 2e 20 20 54 68 65 6e 20 | 74 79 70 65 20 27 6d 61 |. Then |type 'ma|
|00000cc0| 6b 65 27 2e 0a 0a 09 49 | 20 68 61 76 65 6e 27 74 |ke'....I| haven't|
|00000cd0| 20 74 65 73 74 65 64 20 | 69 74 20 74 68 6f 72 6f | tested |it thoro|
|00000ce0| 75 67 68 6c 79 20 61 6e | 64 20 64 6f 6e 27 74 20 |ughly an|d don't |
|00000cf0| 6b 6e 6f 77 20 69 66 20 | 69 74 20 69 6e 74 65 72 |know if |it inter|
|00000d00| 70 72 65 74 73 0a 09 74 | 79 70 65 2d 32 20 72 65 |prets..t|ype-2 re|
|00000d10| 6c 6f 63 61 74 69 6f 6e | 20 63 6f 72 72 65 63 74 |location| correct|
|00000d20| 6c 79 20 28 61 73 20 49 | 27 76 65 20 79 65 74 20 |ly (as I|'ve yet |
|00000d30| 74 6f 20 73 65 65 20 61 | 6e 79 20 74 79 70 65 2d |to see a|ny type-|
|00000d40| 32 20 72 65 6c 6f 63 61 | 74 69 6f 6e 73 0a 09 69 |2 reloca|tions..i|
|00000d50| 6e 20 41 4f 46 20 66 69 | 6c 65 73 29 2e 20 20 41 |n AOF fi|les). A|
|00000d60| 6c 73 6f 20 69 74 20 73 | 65 65 6d 73 20 74 6f 20 |lso it s|eems to |
|00000d70| 73 63 72 65 77 2d 75 70 | 20 6f 6e 20 73 6f 6d 65 |screw-up| on some|
|00000d80| 20 41 4f 46 20 66 69 6c | 65 73 20 6f 6e 20 62 69 | AOF fil|es on bi|
|00000d90| 67 0a 09 65 6e 64 69 61 | 6e 20 6d 61 63 68 69 6e |g..endia|n machin|
|00000da0| 65 73 20 6f 6e 6c 79 2e | 0a 0a 09 45 6e 6a 6f 79 |es only.|...Enjoy|
|00000db0| 2e 0a 0a 2d 2d 0a 41 6e | 64 79 20 44 75 70 6c 61 |...--.An|dy Dupla|
|00000dc0| 69 6e 2c 20 42 54 20 43 | 75 73 74 6f 6d 65 72 20 |in, BT C|ustomer |
|00000dd0| 53 79 73 74 65 6d 73 2c | 20 42 72 69 67 68 74 6f |Systems,| Brighto|
|00000de0| 6e 2c 20 55 4b 2e 0a 64 | 75 70 6c 61 69 6e 40 62 |n, UK..d|uplain@b|
|00000df0| 74 63 73 2e 62 74 2e 63 | 6f 2e 75 6b 0a 46 69 6c |tcs.bt.c|o.uk.Fil|
|00000e00| 65 44 61 74 61 82 56 45 | 52 53 49 4f 4e 00 00 00 |eData.VE|RSION...|
|00000e10| 00 11 00 00 00 44 ff ff | ff 18 f2 a9 3f 03 00 6a |.....D..|....?..j|
|00000e20| 15 31 2e 30 30 20 5b 32 | 30 20 4e 6f 76 20 39 32 |.1.00 [2|0 Nov 92|
|00000e30| 5d 0a 46 69 6c 65 44 61 | 74 61 82 64 65 63 6f 64 |].FileDa|ta.decod|
|00000e40| 65 00 00 00 00 00 4f 26 | 00 00 44 ff ff ff b4 94 |e.....O&|..D.....|
|00000e50| ac 3f 03 00 3b 0f 2f 2a | 0a 20 2a 20 64 65 63 6f |.?..;./*|. * deco|
|00000e60| 64 65 20 61 6e 20 41 4f | 46 20 66 69 6c 65 0a 20 |de an AO|F file. |
|00000e70| 2a 0a 20 2a 20 41 6e 64 | 79 20 44 75 70 6c 61 69 |*. * And|y Duplai|
|00000e80| 6e 2c 20 42 54 20 43 75 | 73 74 6f 6d 65 72 20 53 |n, BT Cu|stomer S|
|00000e90| 79 73 74 65 6d 73 2c 20 | 42 72 69 67 68 74 6f 6e |ystems, |Brighton|
|00000ea0| 2c 20 55 4b 2e 20 20 64 | 75 70 6c 61 69 6e 40 62 |, UK. d|uplain@b|
|00000eb0| 74 63 73 2e 62 74 2e 63 | 6f 2e 75 6b 0a 20 2a 2f |tcs.bt.c|o.uk. */|
|00000ec0| 0a 0a 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 64 69 |..#inclu|de <stdi|
|00000ed0| 6f 2e 68 3e 0a 23 69 66 | 64 65 66 20 42 53 44 34 |o.h>.#if|def BSD4|
|00000ee0| 32 0a 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 72 69 |2.#inclu|de <stri|
|00000ef0| 6e 67 73 2e 68 3e 0a 23 | 65 6c 73 65 0a 23 69 6e |ngs.h>.#|else.#in|
|00000f00| 63 6c 75 64 65 20 3c 73 | 74 72 69 6e 67 2e 68 3e |clude <s|tring.h>|
|00000f10| 0a 23 65 6e 64 69 66 0a | 23 69 6e 63 6c 75 64 65 |.#endif.|#include|
|00000f20| 20 22 64 65 63 61 6f 66 | 2e 68 22 0a 23 69 6e 63 | "decaof|.h".#inc|
|00000f30| 6c 75 64 65 20 22 63 70 | 72 6f 74 6f 2e 68 22 0a |lude "cp|roto.h".|
|00000f40| 23 69 6e 63 6c 75 64 65 | 20 22 69 6f 2e 68 22 0a |#include| "io.h".|
|00000f50| 23 69 6e 63 6c 75 64 65 | 20 22 6d 61 69 6e 2e 68 |#include| "main.h|
|00000f60| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 6d 69 73 63 |".#inclu|de "misc|
|00000f70| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 65 72 |.h".#inc|lude "er|
|00000f80| 72 6f 72 2e 68 22 0a 0a | 73 74 61 74 69 63 20 73 |ror.h"..|static s|
|00000f90| 74 72 75 63 74 20 63 68 | 75 6e 6b 68 64 72 20 2a |truct ch|unkhdr *|
|00000fa0| 68 64 72 3b 0a 73 74 61 | 74 69 63 20 73 74 72 75 |hdr;.sta|tic stru|
|00000fb0| 63 74 20 63 68 75 6e 6b | 65 6e 74 20 2a 65 6e 74 |ct chunk|ent *ent|
|00000fc0| 73 2c 20 2a 65 6e 74 3b | 0a 73 74 61 74 69 63 20 |s, *ent;|.static |
|00000fd0| 73 74 72 75 63 74 20 61 | 6f 66 68 64 72 20 2a 61 |struct a|ofhdr *a|
|00000fe0| 6f 66 68 64 72 3b 0a 73 | 74 61 74 69 63 20 73 74 |ofhdr;.s|tatic st|
|00000ff0| 72 75 63 74 20 61 72 65 | 61 68 64 72 20 2a 61 72 |ruct are|ahdr *ar|
|00001000| 65 61 68 64 72 73 3b 0a | 73 74 61 74 69 63 20 73 |eahdrs;.|static s|
|00001010| 74 72 75 63 74 20 73 79 | 6d 62 6f 6c 20 2a 73 79 |truct sy|mbol *sy|
|00001020| 6d 62 6f 6c 74 61 62 3b | 0a 73 74 61 74 69 63 20 |mboltab;|.static |
|00001030| 63 68 61 72 20 2a 73 74 | 72 69 6e 67 74 61 62 3b |char *st|ringtab;|
|00001040| 0a 73 74 61 74 69 63 20 | 6c 6f 6e 67 20 61 72 65 |.static |long are|
|00001050| 61 5f 6f 66 66 73 65 74 | 3b 0a 73 74 61 74 69 63 |a_offset|;.static|
|00001060| 20 57 6f 72 64 20 73 79 | 6d 62 6f 6c 74 61 62 5f | Word sy|mboltab_|
|00001070| 73 69 7a 65 3b 0a 0a 73 | 74 61 74 69 63 20 63 68 |size;..s|tatic ch|
|00001080| 61 72 20 2a 63 70 74 72 | 3b 0a 0a 73 74 61 74 69 |ar *cptr|;..stati|
|00001090| 63 20 76 6f 69 64 20 70 | 72 69 6e 74 5f 61 72 65 |c void p|rint_are|
|000010a0| 61 20 50 5f 5f 28 28 46 | 49 4c 45 20 2a 69 66 70 |a P__((F|ILE *ifp|
|000010b0| 2c 20 73 74 72 75 63 74 | 20 61 72 65 61 68 64 72 |, struct| areahdr|
|000010c0| 20 2a 61 72 65 61 68 64 | 72 2c 20 57 6f 72 64 20 | *areahd|r, Word |
|000010d0| 6f 66 66 73 65 74 2c 20 | 57 6f 72 64 20 72 65 6c |offset, |Word rel|
|000010e0| 6f 66 66 29 29 3b 0a 73 | 74 61 74 69 63 20 63 68 |off));.s|tatic ch|
|000010f0| 61 72 20 2a 73 74 72 69 | 6e 67 20 50 5f 5f 28 28 |ar *stri|ng P__((|
|00001100| 57 6f 72 64 20 6f 66 66 | 73 65 74 29 29 3b 0a 73 |Word off|set));.s|
|00001110| 74 61 74 69 63 20 63 68 | 61 72 20 2a 73 79 6d 6e |tatic ch|ar *symn|
|00001120| 61 6d 65 20 50 5f 5f 28 | 28 57 6f 72 64 20 6f 66 |ame P__(|(Word of|
|00001130| 66 73 65 74 29 29 3b 0a | 73 74 61 74 69 63 20 63 |fset));.|static c|
|00001140| 68 61 72 20 2a 61 72 65 | 61 6e 61 6d 65 20 50 5f |har *are|aname P_|
|00001150| 5f 28 28 57 6f 72 64 20 | 6f 66 66 73 65 74 29 29 |_((Word |offset))|
|00001160| 3b 0a 0a 69 6e 74 0a 64 | 65 63 6f 64 65 28 29 0a |;..int.d|ecode().|
|00001170| 7b 0a 09 72 65 67 69 73 | 74 65 72 20 69 3b 0a 09 |{..regis|ter i;..|
|00001180| 57 6f 72 64 20 6f 66 66 | 73 65 74 2c 20 72 65 6c |Word off|set, rel|
|00001190| 6f 66 66 3b 0a 09 46 49 | 4c 45 20 2a 69 66 70 3b |off;..FI|LE *ifp;|
|000011a0| 0a 09 63 68 61 72 20 2a | 66 69 6c 65 6e 61 6d 65 |..char *|filename|
|000011b0| 3b 0a 0a 09 77 68 69 6c | 65 20 28 6e 66 69 6c 65 |;...whil|e (nfile|
|000011c0| 73 2d 2d 29 20 7b 0a 09 | 09 66 69 6c 65 6e 61 6d |s--) {..|.filenam|
|000011d0| 65 20 3d 20 2a 66 69 6c | 65 73 2b 2b 3b 0a 09 09 |e = *fil|es++;...|
|000011e0| 69 66 70 20 3d 20 66 6f | 70 65 6e 28 66 69 6c 65 |ifp = fo|pen(file|
|000011f0| 6e 61 6d 65 2c 20 52 5f | 4f 50 45 4e 4d 4f 44 45 |name, R_|OPENMODE|
|00001200| 29 3b 0a 09 09 69 66 20 | 28 21 69 66 70 29 20 7b |);...if |(!ifp) {|
|00001210| 0a 09 09 09 65 72 72 6f | 72 28 22 75 6e 61 62 6c |....erro|r("unabl|
|00001220| 65 20 74 6f 20 6f 70 65 | 6e 20 66 69 6c 65 20 5c |e to ope|n file \|
|00001230| 22 25 73 5c 22 22 2c 20 | 66 69 6c 65 6e 61 6d 65 |"%s\"", |filename|
|00001240| 29 3b 0a 09 09 09 63 6f | 6e 74 69 6e 75 65 3b 0a |);....co|ntinue;.|
|00001250| 09 09 7d 3b 0a 0a 09 09 | 68 64 72 20 3d 20 4e 55 |..};....|hdr = NU|
|00001260| 4c 4c 3b 0a 09 09 65 6e | 74 73 20 3d 20 4e 55 4c |LL;...en|ts = NUL|
|00001270| 4c 3b 0a 09 09 61 6f 66 | 68 64 72 20 3d 20 4e 55 |L;...aof|hdr = NU|
|00001280| 4c 4c 3b 0a 09 09 61 72 | 65 61 68 64 72 73 20 3d |LL;...ar|eahdrs =|
|00001290| 20 4e 55 4c 4c 3b 0a 09 | 09 73 74 72 69 6e 67 74 | NULL;..|.stringt|
|000012a0| 61 62 20 3d 20 4e 55 4c | 4c 3b 0a 09 09 73 79 6d |ab = NUL|L;...sym|
|000012b0| 62 6f 6c 74 61 62 20 3d | 20 4e 55 4c 4c 3b 0a 0a |boltab =| NULL;..|
|000012c0| 09 09 2f 2a 20 72 65 61 | 64 20 63 68 75 6e 6b 20 |../* rea|d chunk |
|000012d0| 68 65 61 64 65 72 20 2a | 2f 0a 09 09 68 64 72 20 |header *|/...hdr |
|000012e0| 3d 20 72 65 61 64 5f 63 | 68 75 6e 6b 68 64 72 28 |= read_c|hunkhdr(|
|000012f0| 69 66 70 29 3b 0a 09 09 | 69 66 20 28 21 68 64 72 |ifp);...|if (!hdr|
|00001300| 29 20 7b 0a 09 09 09 65 | 72 72 6f 72 28 22 72 65 |) {....e|rror("re|
|00001310| 61 64 69 6e 67 20 66 69 | 6c 65 20 5c 22 25 73 5c |ading fi|le \"%s\|
|00001320| 22 22 2c 20 66 69 6c 65 | 6e 61 6d 65 29 3b 0a 09 |"", file|name);..|
|00001330| 09 09 67 6f 74 6f 20 6e | 65 78 74 5f 66 69 6c 65 |..goto n|ext_file|
|00001340| 3b 0a 09 09 7d 0a 09 09 | 69 66 20 28 68 64 72 2d |;...}...|if (hdr-|
|00001350| 3e 63 68 75 6e 6b 66 69 | 6c 65 69 64 20 21 3d 20 |>chunkfi|leid != |
|00001360| 30 78 63 33 63 62 63 36 | 63 35 29 20 7b 0a 09 09 |0xc3cbc6|c5) {...|
|00001370| 09 65 72 72 6f 72 28 22 | 66 69 6c 65 20 5c 22 25 |.error("|file \"%|
|00001380| 73 5c 22 20 69 73 20 6e | 6f 74 20 61 20 63 68 75 |s\" is n|ot a chu|
|00001390| 6e 6b 20 66 69 6c 65 22 | 2c 20 66 69 6c 65 6e 61 |nk file"|, filena|
|000013a0| 6d 65 29 3b 0a 09 09 09 | 67 6f 74 6f 20 6e 65 78 |me);....|goto nex|
|000013b0| 74 5f 66 69 6c 65 3b 0a | 09 09 7d 0a 0a 09 09 2f |t_file;.|..}..../|
|000013c0| 2a 20 72 65 61 64 20 63 | 68 75 6e 6b 20 65 6e 74 |* read c|hunk ent|
|000013d0| 72 69 65 73 20 69 6e 20 | 2a 2f 0a 09 09 65 6e 74 |ries in |*/...ent|
|000013e0| 73 20 3d 20 72 65 61 64 | 5f 63 68 75 6e 6b 65 6e |s = read|_chunken|
|000013f0| 74 73 28 69 66 70 2c 20 | 68 64 72 29 3b 0a 09 09 |ts(ifp, |hdr);...|
|00001400| 69 66 20 28 21 65 6e 74 | 73 29 20 7b 0a 09 09 09 |if (!ent|s) {....|
|00001410| 65 72 72 6f 72 28 22 72 | 65 61 64 69 6e 67 20 63 |error("r|eading c|
|00001420| 68 75 6e 6b 20 65 6e 74 | 72 69 65 73 20 66 6f 72 |hunk ent|ries for|
|00001430| 20 66 69 6c 65 20 5c 22 | 25 73 5c 22 22 2c 20 66 | file \"|%s\"", f|
|00001440| 69 6c 65 6e 61 6d 65 29 | 3b 0a 09 09 09 67 6f 74 |ilename)|;....got|
|00001450| 6f 20 6e 65 78 74 5f 66 | 69 6c 65 3b 0a 09 09 7d |o next_f|ile;...}|
|00001460| 0a 0a 09 09 70 72 69 6e | 74 66 28 22 2a 2a 20 46 |....prin|tf("** F|
|00001470| 69 6c 65 3a 5c 6e 25 73 | 5c 6e 22 2c 20 66 69 6c |ile:\n%s|\n", fil|
|00001480| 65 6e 61 6d 65 29 3b 0a | 0a 09 09 2f 2a 20 72 65 |ename);.|.../* re|
|00001490| 61 64 20 73 74 72 69 6e | 67 20 74 61 62 6c 65 20 |ad strin|g table |
|000014a0| 2a 2f 0a 09 09 65 6e 74 | 20 3d 20 66 69 6e 64 5f |*/...ent| = find_|
|000014b0| 65 6e 74 28 68 64 72 2c | 20 65 6e 74 73 2c 20 22 |ent(hdr,| ents, "|
|000014c0| 4f 42 4a 5f 53 54 52 54 | 22 29 3b 0a 09 09 69 66 |OBJ_STRT|");...if|
|000014d0| 20 28 65 6e 74 29 20 7b | 0a 09 09 09 73 74 72 69 | (ent) {|....stri|
|000014e0| 6e 67 74 61 62 20 3d 20 | 72 65 61 64 5f 73 74 72 |ngtab = |read_str|
|000014f0| 69 6e 67 74 61 62 28 69 | 66 70 2c 20 65 6e 74 29 |ingtab(i|fp, ent)|
|00001500| 3b 0a 09 09 09 69 66 20 | 28 21 73 74 72 69 6e 67 |;....if |(!string|
|00001510| 74 61 62 29 20 7b 0a 09 | 09 09 09 65 72 72 6f 72 |tab) {..|...error|
|00001520| 28 22 72 65 61 64 69 6e | 67 20 73 74 72 69 6e 67 |("readin|g string|
|00001530| 20 74 61 62 6c 65 20 66 | 6f 72 20 66 69 6c 65 20 | table f|or file |
|00001540| 5c 22 25 73 5c 22 22 2c | 20 66 69 6c 65 6e 61 6d |\"%s\"",| filenam|
|00001550| 65 29 3b 0a 09 09 09 09 | 67 6f 74 6f 20 6e 65 78 |e);.....|goto nex|
|00001560| 74 5f 66 69 6c 65 3b 0a | 09 09 09 7d 0a 09 09 7d |t_file;.|...}...}|
|00001570| 20 65 6c 73 65 0a 09 09 | 09 70 75 74 73 28 22 5c | else...|.puts("\|
|00001580| 6e 2a 2a 20 6e 6f 20 73 | 74 72 69 6e 67 20 74 61 |n** no s|tring ta|
|00001590| 62 6c 65 22 29 3b 0a 0a | 09 09 2f 2a 20 72 65 61 |ble");..|../* rea|
|000015a0| 64 20 61 6e 64 20 70 72 | 69 6e 74 20 69 64 65 6e |d and pr|int iden|
|000015b0| 74 69 66 69 63 61 74 69 | 6f 6e 20 73 74 72 69 6e |tificati|on strin|
|000015c0| 67 20 2a 2f 0a 09 09 65 | 6e 74 20 3d 20 66 69 6e |g */...e|nt = fin|
|000015d0| 64 5f 65 6e 74 28 68 64 | 72 2c 20 65 6e 74 73 2c |d_ent(hd|r, ents,|
|000015e0| 20 22 4f 42 4a 5f 49 44 | 46 4e 22 29 3b 0a 09 09 | "OBJ_ID|FN");...|
|000015f0| 69 66 20 28 65 6e 74 29 | 20 7b 0a 09 09 09 63 68 |if (ent)| {....ch|
|00001600| 61 72 20 2a 69 64 73 74 | 72 3b 0a 09 09 09 69 64 |ar *idst|r;....id|
|00001610| 73 74 72 20 3d 20 72 65 | 61 64 5f 69 64 65 6e 74 |str = re|ad_ident|
|00001620| 28 69 66 70 2c 20 65 6e | 74 29 3b 0a 09 09 09 69 |(ifp, en|t);....i|
|00001630| 66 20 28 21 69 64 73 74 | 72 29 20 7b 0a 09 09 09 |f (!idst|r) {....|
|00001640| 09 65 72 72 6f 72 28 22 | 72 65 61 64 69 6e 67 20 |.error("|reading |
|00001650| 69 64 65 6e 74 69 66 69 | 63 61 74 69 6f 6e 20 66 |identifi|cation f|
|00001660| 6f 72 20 66 69 6c 65 20 | 5c 22 25 73 5c 22 22 2c |or file |\"%s\"",|
|00001670| 20 66 69 6c 65 6e 61 6d | 65 29 3b 0a 09 09 09 09 | filenam|e);.....|
|00001680| 67 6f 74 6f 20 6e 65 78 | 74 5f 66 69 6c 65 3b 0a |goto nex|t_file;.|
|00001690| 09 09 09 7d 0a 09 09 09 | 70 72 69 6e 74 66 28 22 |...}....|printf("|
|000016a0| 5c 6e 2a 2a 20 49 64 65 | 6e 74 69 66 69 63 61 74 |\n** Ide|ntificat|
|000016b0| 69 6f 6e 3a 5c 6e 25 73 | 5c 6e 22 2c 20 69 64 73 |ion:\n%s|\n", ids|
|000016c0| 74 72 29 3b 0a 09 09 09 | 66 72 65 65 5f 63 68 75 |tr);....|free_chu|
|000016d0| 6e 6b 5f 6d 65 6d 6f 72 | 79 28 69 64 73 74 72 29 |nk_memor|y(idstr)|
|000016e0| 3b 09 2f 2a 20 6e 6f 74 | 20 6e 65 65 64 65 64 20 |;./* not| needed |
|000016f0| 2a 2f 0a 09 09 7d 20 65 | 6c 73 65 0a 09 09 09 70 |*/...} e|lse....p|
|00001700| 75 74 73 28 22 5c 6e 2a | 2a 20 6e 6f 20 69 64 65 |uts("\n*|* no ide|
|00001710| 6e 74 69 66 69 63 61 74 | 69 6f 6e 20 63 68 75 6e |ntificat|ion chun|
|00001720| 6b 22 29 3b 0a 0a 09 09 | 2f 2a 20 66 69 6e 64 20 |k");....|/* find |
|00001730| 66 69 6c 65 20 6f 66 66 | 73 65 74 20 6f 66 20 4f |file off|set of O|
|00001740| 42 4a 5f 41 52 45 41 20 | 28 66 6f 72 20 6c 61 74 |BJ_AREA |(for lat|
|00001750| 65 72 20 75 73 65 29 20 | 2a 2f 0a 09 09 65 6e 74 |er use) |*/...ent|
|00001760| 20 3d 20 66 69 6e 64 5f | 65 6e 74 28 68 64 72 2c | = find_|ent(hdr,|
|00001770| 20 65 6e 74 73 2c 20 22 | 4f 42 4a 5f 41 52 45 41 | ents, "|OBJ_AREA|
|00001780| 22 29 3b 0a 09 09 61 72 | 65 61 5f 6f 66 66 73 65 |");...ar|ea_offse|
|00001790| 74 20 3d 20 65 6e 74 2d | 3e 6f 66 66 73 65 74 3b |t = ent-|>offset;|
|000017a0| 0a 0a 09 09 2f 2a 20 72 | 65 61 64 2d 69 6e 20 41 |..../* r|ead-in A|
|000017b0| 4f 46 20 68 65 61 64 65 | 72 20 2a 2f 0a 09 09 65 |OF heade|r */...e|
|000017c0| 6e 74 20 3d 20 66 69 6e | 64 5f 65 6e 74 28 68 64 |nt = fin|d_ent(hd|
|000017d0| 72 2c 20 65 6e 74 73 2c | 20 22 4f 42 4a 5f 48 45 |r, ents,| "OBJ_HE|
|000017e0| 41 44 22 29 3b 0a 09 09 | 69 66 20 28 65 6e 74 29 |AD");...|if (ent)|
|000017f0| 20 7b 0a 09 09 09 61 6f | 66 68 64 72 20 3d 20 72 | {....ao|fhdr = r|
|00001800| 65 61 64 5f 61 6f 66 68 | 64 72 28 69 66 70 2c 20 |ead_aofh|dr(ifp, |
|00001810| 65 6e 74 29 3b 0a 09 09 | 09 69 66 20 28 21 61 6f |ent);...|.if (!ao|
|00001820| 66 68 64 72 29 20 7b 0a | 09 09 09 09 65 72 72 6f |fhdr) {.|....erro|
|00001830| 72 28 22 72 65 61 64 69 | 6e 67 20 41 4f 46 20 68 |r("readi|ng AOF h|
|00001840| 65 61 64 65 72 20 66 6f | 72 20 66 69 6c 65 20 5c |eader fo|r file \|
|00001850| 22 25 73 5c 22 22 2c 20 | 66 69 6c 65 6e 61 6d 65 |"%s\"", |filename|
|00001860| 29 3b 0a 09 09 09 09 67 | 6f 74 6f 20 6e 65 78 74 |);.....g|oto next|
|00001870| 5f 66 69 6c 65 3b 0a 09 | 09 09 7d 0a 09 09 09 70 |_file;..|..}....p|
|00001880| 75 74 73 28 22 5c 6e 2a | 2a 20 41 4f 46 20 48 65 |uts("\n*|* AOF He|
|00001890| 61 64 65 72 3a 22 29 3b | 0a 09 09 09 69 66 20 28 |ader:");|....if (|
|000018a0| 61 6f 66 68 64 72 2d 3e | 66 69 6c 65 74 79 70 65 |aofhdr->|filetype|
|000018b0| 20 3d 3d 20 30 78 63 35 | 65 32 64 30 38 30 29 0a | == 0xc5|e2d080).|
|000018c0| 09 09 09 09 63 70 74 72 | 20 3d 20 22 52 65 6c 6f |....cptr| = "Relo|
|000018d0| 63 61 74 61 62 6c 65 20 | 6f 62 6a 65 63 74 20 66 |catable |object f|
|000018e0| 6f 72 6d 61 74 22 3b 0a | 09 09 09 65 6c 73 65 20 |ormat";.|...else |
|000018f0| 69 66 20 28 61 6f 66 68 | 64 72 2d 3e 66 69 6c 65 |if (aofh|dr->file|
|00001900| 74 79 70 65 20 3d 3d 20 | 30 78 63 35 65 32 64 30 |type == |0xc5e2d0|
|00001910| 38 31 29 0a 09 09 09 09 | 63 70 74 72 20 3d 20 22 |81).....|cptr = "|
|00001920| 41 4f 46 20 69 6d 61 67 | 65 20 74 79 70 65 20 31 |AOF imag|e type 1|
|00001930| 22 3b 0a 09 09 09 65 6c | 73 65 20 69 66 20 28 61 |";....el|se if (a|
|00001940| 6f 66 68 64 72 2d 3e 66 | 69 6c 65 74 79 70 65 20 |ofhdr->f|iletype |
|00001950| 3d 3d 20 30 78 63 35 65 | 32 64 30 38 33 29 0a 09 |== 0xc5e|2d083)..|
|00001960| 09 09 09 63 70 74 72 20 | 3d 20 22 41 4f 46 20 69 |...cptr |= "AOF i|
|00001970| 6d 61 67 65 20 74 79 70 | 65 20 32 22 3b 0a 09 09 |mage typ|e 2";...|
|00001980| 09 65 6c 73 65 20 69 66 | 20 28 61 6f 66 68 64 72 |.else if| (aofhdr|
|00001990| 2d 3e 66 69 6c 65 74 79 | 70 65 20 3d 3d 20 30 78 |->filety|pe == 0x|
|000019a0| 63 35 65 32 64 30 38 37 | 29 0a 09 09 09 09 63 70 |c5e2d087|).....cp|
|000019b0| 74 72 20 3d 20 22 41 4f | 46 20 69 6d 61 67 65 20 |tr = "AO|F image |
|000019c0| 74 79 70 65 20 33 22 3b | 0a 09 09 09 65 6c 73 65 |type 3";|....else|
|000019d0| 0a 09 09 09 09 63 70 74 | 72 20 3d 20 22 75 6e 6b |.....cpt|r = "unk|
|000019e0| 6e 6f 77 6e 20 69 6d 61 | 67 65 20 74 79 70 65 22 |nown ima|ge type"|
|000019f0| 3b 0a 09 09 09 70 75 74 | 73 28 63 70 74 72 29 3b |;....put|s(cptr);|
|00001a00| 0a 0a 09 09 09 70 72 69 | 6e 74 66 28 22 76 65 72 |.....pri|ntf("ver|
|00001a10| 73 69 6f 6e 20 25 6c 64 | 5c 6e 22 2c 20 61 6f 66 |sion %ld|\n", aof|
|00001a20| 68 64 72 2d 3e 76 65 72 | 73 69 6f 6e 29 3b 0a 09 |hdr->ver|sion);..|
|00001a30| 09 09 69 20 3d 20 61 6f | 66 68 64 72 2d 3e 6e 75 |..i = ao|fhdr->nu|
|00001a40| 6d 61 72 65 61 73 3b 0a | 09 09 09 70 72 69 6e 74 |mareas;.|...print|
|00001a50| 66 28 22 25 6c 64 20 61 | 72 65 61 25 73 5c 6e 22 |f("%ld a|rea%s\n"|
|00001a60| 2c 20 69 2c 20 69 20 3d | 3d 20 31 20 3f 20 22 22 |, i, i =|= 1 ? ""|
|00001a70| 20 3a 20 22 73 22 29 3b | 0a 09 09 09 69 20 3d 20 | : "s");|....i = |
|00001a80| 61 6f 66 68 64 72 2d 3e | 6e 75 6d 73 79 6d 73 3b |aofhdr->|numsyms;|
|00001a90| 0a 09 09 09 70 72 69 6e | 74 66 28 22 25 6c 64 20 |....prin|tf("%ld |
|00001aa0| 73 79 6d 62 6f 6c 25 73 | 5c 6e 22 2c 20 69 2c 20 |symbol%s|\n", i, |
|00001ab0| 69 20 3d 3d 20 31 20 3f | 20 22 22 20 3a 20 22 73 |i == 1 ?| "" : "s|
|00001ac0| 22 29 3b 0a 0a 09 09 09 | 2f 2a 20 72 65 61 64 20 |");.....|/* read |
|00001ad0| 69 6e 20 74 68 65 20 73 | 79 6d 62 6f 6c 20 74 61 |in the s|ymbol ta|
|00001ae0| 62 6c 65 2c 20 69 66 20 | 61 6e 79 20 2a 2f 0a 09 |ble, if |any */..|
|00001af0| 09 09 69 66 20 28 61 6f | 66 68 64 72 2d 3e 6e 75 |..if (ao|fhdr->nu|
|00001b00| 6d 73 79 6d 73 29 20 7b | 0a 09 09 09 09 65 6e 74 |msyms) {|.....ent|
|00001b10| 20 3d 20 66 69 6e 64 5f | 65 6e 74 28 68 64 72 2c | = find_|ent(hdr,|
|00001b20| 20 65 6e 74 73 2c 20 22 | 4f 42 4a 5f 53 59 4d 54 | ents, "|OBJ_SYMT|
|00001b30| 22 29 3b 0a 09 09 09 09 | 69 66 20 28 65 6e 74 29 |");.....|if (ent)|
|00001b40| 20 7b 0a 09 09 09 09 09 | 73 79 6d 62 6f 6c 74 61 | {......|symbolta|
|00001b50| 62 20 3d 20 72 65 61 64 | 5f 73 79 6d 62 6f 6c 74 |b = read|_symbolt|
|00001b60| 61 62 28 69 66 70 2c 20 | 65 6e 74 2c 20 61 6f 66 |ab(ifp, |ent, aof|
|00001b70| 68 64 72 2d 3e 6e 75 6d | 73 79 6d 73 29 3b 0a 09 |hdr->num|syms);..|
|00001b80| 09 09 09 09 69 66 20 28 | 21 73 79 6d 62 6f 6c 74 |....if (|!symbolt|
|00001b90| 61 62 29 20 7b 0a 09 09 | 09 09 09 09 65 72 72 6f |ab) {...|....erro|
|00001ba0| 72 28 22 72 65 61 64 69 | 6e 67 20 73 79 6d 62 6f |r("readi|ng symbo|
|00001bb0| 6c 20 74 61 62 6c 65 20 | 66 6f 72 20 66 69 6c 65 |l table |for file|
|00001bc0| 20 5c 22 25 73 5c 22 22 | 2c 20 66 69 6c 65 6e 61 | \"%s\""|, filena|
|00001bd0| 6d 65 29 3b 0a 09 09 09 | 09 09 09 67 6f 74 6f 20 |me);....|...goto |
|00001be0| 6e 65 78 74 5f 66 69 6c | 65 3b 0a 09 09 09 09 09 |next_fil|e;......|
|00001bf0| 7d 09 09 09 09 09 0a 09 | 09 09 09 09 73 79 6d 62 |}.......|....symb|
|00001c00| 6f 6c 74 61 62 5f 73 69 | 7a 65 20 3d 20 65 6e 74 |oltab_si|ze = ent|
|00001c10| 2d 3e 73 69 7a 65 3b 0a | 09 09 09 09 7d 0a 09 09 |->size;.|....}...|
|00001c20| 09 7d 0a 0a 09 09 09 2f | 2a 20 64 65 63 6f 64 65 |.}...../|* decode|
|00001c30| 20 65 61 63 68 20 6f 66 | 20 74 68 65 20 61 72 65 | each of| the are|
|00001c40| 61 73 20 2a 2f 0a 09 09 | 09 61 72 65 61 68 64 72 |as */...|.areahdr|
|00001c50| 73 20 3d 20 28 73 74 72 | 75 63 74 20 61 72 65 61 |s = (str|uct area|
|00001c60| 68 64 72 20 2a 29 28 61 | 6f 66 68 64 72 20 2b 20 |hdr *)(a|ofhdr + |
|00001c70| 73 69 7a 65 6f 66 28 73 | 74 72 75 63 74 20 61 6f |sizeof(s|truct ao|
|00001c80| 66 68 64 72 29 29 3b 0a | 09 09 09 6f 66 66 73 65 |fhdr));.|...offse|
|00001c90| 74 20 3d 20 72 65 6c 6f | 66 66 20 3d 20 30 3b 0a |t = relo|ff = 0;.|
|00001ca0| 09 09 09 66 6f 72 20 28 | 69 20 3d 20 30 3b 20 69 |...for (|i = 0; i|
|00001cb0| 20 3c 20 61 6f 66 68 64 | 72 2d 3e 6e 75 6d 61 72 | < aofhd|r->numar|
|00001cc0| 65 61 73 3b 20 69 2b 2b | 29 20 7b 0a 09 09 09 09 |eas; i++|) {.....|
|00001cd0| 42 79 74 65 20 66 6c 61 | 67 73 20 3d 20 28 61 72 |Byte fla|gs = (ar|
|00001ce0| 65 61 68 64 72 73 5b 69 | 5d 2e 66 6c 61 67 73 20 |eahdrs[i|].flags |
|00001cf0| 3e 3e 20 38 29 20 26 20 | 30 78 66 66 3b 0a 0a 09 |>> 8) & |0xff;...|
|00001d00| 09 09 09 69 66 20 28 21 | 28 66 6c 61 67 73 20 26 |...if (!|(flags &|
|00001d10| 20 41 54 5f 4e 4f 49 4e | 49 54 29 29 0a 09 09 09 | AT_NOIN|IT))....|
|00001d20| 09 09 72 65 6c 6f 66 66 | 20 3d 20 6f 66 66 73 65 |..reloff| = offse|
|00001d30| 74 20 2b 20 61 72 65 61 | 68 64 72 73 5b 69 5d 2e |t + area|hdrs[i].|
|00001d40| 73 69 7a 65 3b 0a 09 09 | 09 09 70 72 69 6e 74 5f |size;...|..print_|
|00001d50| 61 72 65 61 28 69 66 70 | 2c 20 26 61 72 65 61 68 |area(ifp|, &areah|
|00001d60| 64 72 73 5b 69 5d 2c 20 | 6f 66 66 73 65 74 2c 20 |drs[i], |offset, |
|00001d70| 72 65 6c 6f 66 66 29 3b | 0a 09 09 09 09 69 66 20 |reloff);|.....if |
|00001d80| 28 21 28 66 6c 61 67 73 | 20 26 20 41 54 5f 4e 4f |(!(flags| & AT_NO|
|00001d90| 49 4e 49 54 29 29 0a 09 | 09 09 09 09 6f 66 66 73 |INIT))..|....offs|
|00001da0| 65 74 20 3d 20 72 65 6c | 6f 66 66 20 2b 20 28 61 |et = rel|off + (a|
|00001db0| 72 65 61 68 64 72 73 5b | 69 5d 2e 6e 75 6d 72 65 |reahdrs[|i].numre|
|00001dc0| 6c 6f 63 73 20 2a 20 73 | 69 7a 65 6f 66 28 73 74 |locs * s|izeof(st|
|00001dd0| 72 75 63 74 20 72 65 6c | 6f 63 29 29 3b 0a 09 09 |ruct rel|oc));...|
|00001de0| 09 7d 0a 09 09 7d 20 65 | 6c 73 65 0a 09 09 09 70 |.}...} e|lse....p|
|00001df0| 75 74 73 28 22 5c 6e 2a | 2a 20 6e 6f 20 41 4f 46 |uts("\n*|* no AOF|
|00001e00| 20 68 65 61 64 65 72 22 | 29 3b 0a 0a 09 09 69 66 | header"|);....if|
|00001e10| 20 28 73 79 6d 74 61 62 | 20 26 26 20 61 6f 66 68 | (symtab| && aofh|
|00001e20| 64 72 2d 3e 6e 75 6d 73 | 79 6d 73 29 20 7b 0a 09 |dr->nums|yms) {..|
|00001e30| 09 09 70 75 74 73 28 22 | 5c 6e 2a 2a 20 53 79 6d |..puts("|\n** Sym|
|00001e40| 62 6f 6c 20 74 61 62 6c | 65 3a 22 29 3b 0a 09 09 |bol tabl|e:");...|
|00001e50| 09 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 69 20 3c |.for (i |= 0; i <|
|00001e60| 20 61 6f 66 68 64 72 2d | 3e 6e 75 6d 73 79 6d 73 | aofhdr-|>numsyms|
|00001e70| 3b 20 69 2b 2b 29 20 7b | 0a 09 09 09 09 42 79 74 |; i++) {|.....Byt|
|00001e80| 65 20 66 6c 61 67 73 3b | 0a 09 09 09 09 70 72 69 |e flags;|.....pri|
|00001e90| 6e 74 66 28 22 25 2d 31 | 36 73 20 22 2c 20 73 74 |ntf("%-1|6s ", st|
|00001ea0| 72 69 6e 67 28 73 79 6d | 62 6f 6c 74 61 62 5b 69 |ring(sym|boltab[i|
|00001eb0| 5d 2e 6e 61 6d 65 29 29 | 3b 0a 09 09 09 09 66 6c |].name))|;.....fl|
|00001ec0| 61 67 73 20 3d 20 73 79 | 6d 62 6f 6c 74 61 62 5b |ags = sy|mboltab[|
|00001ed0| 69 5d 2e 66 6c 61 67 73 | 20 26 20 30 78 66 66 3b |i].flags| & 0xff;|
|00001ee0| 0a 09 09 09 09 73 77 69 | 74 63 68 20 28 66 6c 61 |.....swi|tch (fla|
|00001ef0| 67 73 20 26 20 30 78 33 | 29 20 7b 0a 09 09 09 09 |gs & 0x3|) {.....|
|00001f00| 09 63 61 73 65 20 30 78 | 30 31 3a 0a 09 09 09 09 |.case 0x|01:.....|
|00001f10| 09 09 66 70 75 74 73 28 | 22 6c 6f 63 61 6c 20 22 |..fputs(|"local "|
|00001f20| 2c 20 73 74 64 6f 75 74 | 29 3b 0a 09 09 09 09 09 |, stdout|);......|
|00001f30| 09 62 72 65 61 6b 3b 0a | 09 09 09 09 09 63 61 73 |.break;.|.....cas|
|00001f40| 65 20 30 78 30 32 3a 0a | 09 09 09 09 09 09 66 70 |e 0x02:.|......fp|
|00001f50| 75 74 73 28 22 65 78 74 | 65 72 6e 20 22 2c 0a 09 |uts("ext|ern ",..|
|00001f60| 09 09 09 09 09 20 20 20 | 20 73 74 64 6f 75 74 29 |..... | stdout)|
|00001f70| 3b 0a 09 09 09 09 09 09 | 62 72 65 61 6b 3b 0a 09 |;.......|break;..|
|00001f80| 09 09 09 09 63 61 73 65 | 20 30 78 30 33 3a 0a 09 |....case| 0x03:..|
|00001f90| 09 09 09 09 09 66 70 75 | 74 73 28 22 67 6c 6f 62 |.....fpu|ts("glob|
|00001fa0| 61 6c 20 22 2c 20 73 74 | 64 6f 75 74 29 3b 0a 09 |al ", st|dout);..|
|00001fb0| 09 09 09 09 09 62 72 65 | 61 6b 3b 0a 09 09 09 09 |.....bre|ak;.....|
|00001fc0| 09 64 65 66 61 75 6c 74 | 3a 0a 09 09 09 09 09 09 |.default|:.......|
|00001fd0| 66 70 75 74 73 28 22 75 | 6e 6b 6e 6f 77 6e 2d 74 |fputs("u|nknown-t|
|00001fe0| 79 70 65 20 22 2c 20 73 | 74 64 6f 75 74 29 3b 0a |ype ", s|tdout);.|
|00001ff0| 09 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 09 09 09 |......br|eak;....|
|00002000| 09 7d 09 09 09 09 0a 09 | 09 09 09 69 66 20 28 66 |.}......|...if (f|
|00002010| 6c 61 67 73 20 26 20 28 | 31 3c 3c 32 29 20 26 26 |lags & (|1<<2) &&|
|00002020| 20 66 6c 61 67 73 20 26 | 20 28 31 3c 3c 30 29 29 | flags &| (1<<0))|
|00002030| 0a 09 09 09 09 09 66 70 | 75 74 73 28 22 63 6f 6e |......fp|uts("con|
|00002040| 73 74 61 6e 74 20 22 2c | 20 73 74 64 6f 75 74 29 |stant ",| stdout)|
|00002050| 3b 0a 09 09 09 09 69 66 | 20 28 66 6c 61 67 73 20 |;.....if| (flags |
|00002060| 26 20 28 31 3c 3c 33 29 | 20 26 26 20 21 28 66 6c |& (1<<3)| && !(fl|
|00002070| 61 67 73 20 26 20 28 31 | 3c 3c 30 29 29 29 0a 09 |ags & (1|<<0)))..|
|00002080| 09 09 09 09 66 70 75 74 | 73 28 22 63 61 73 65 2d |....fput|s("case-|
|00002090| 69 6e 73 65 6e 73 69 74 | 69 76 65 20 22 2c 20 73 |insensit|ive ", s|
|000020a0| 74 64 6f 75 74 29 3b 0a | 09 09 09 09 69 66 20 28 |tdout);.|....if (|
|000020b0| 66 6c 61 67 73 20 26 20 | 28 31 3c 3c 34 29 20 26 |flags & |(1<<4) &|
|000020c0| 26 20 28 66 6c 61 67 73 | 20 26 20 30 78 30 33 20 |& (flags| & 0x03 |
|000020d0| 3d 3d 20 30 78 30 32 29 | 29 0a 09 09 09 09 09 66 |== 0x02)|)......f|
|000020e0| 70 75 74 73 28 22 77 65 | 61 6b 20 22 2c 20 73 74 |puts("we|ak ", st|
|000020f0| 64 6f 75 74 29 3b 0a 09 | 09 09 09 69 66 20 28 66 |dout);..|...if (f|
|00002100| 6c 61 67 73 20 26 20 28 | 31 3c 3c 35 29 20 26 26 |lags & (|1<<5) &&|
|00002110| 20 28 66 6c 61 67 73 20 | 26 20 30 78 30 33 20 3d | (flags |& 0x03 =|
|00002120| 3d 20 30 78 30 33 29 29 | 0a 09 09 09 09 09 66 70 |= 0x03))|......fp|
|00002130| 75 74 73 28 22 73 74 72 | 6f 6e 67 20 22 2c 20 73 |uts("str|ong ", s|
|00002140| 74 64 6f 75 74 29 3b 0a | 09 09 09 09 69 66 20 28 |tdout);.|....if (|
|00002150| 66 6c 61 67 73 20 26 20 | 28 31 3c 3c 36 29 20 26 |flags & |(1<<6) &|
|00002160| 26 20 28 66 6c 61 67 73 | 20 26 20 30 78 30 33 20 |& (flags| & 0x03 |
|00002170| 3d 3d 20 30 78 30 32 29 | 29 0a 09 09 09 09 09 66 |== 0x02)|)......f|
|00002180| 70 75 74 73 28 22 63 6f | 6d 6d 6f 6e 20 22 2c 20 |puts("co|mmon ", |
|00002190| 73 74 64 6f 75 74 29 3b | 0a 09 09 09 09 69 66 20 |stdout);|.....if |
|000021a0| 28 66 6c 61 67 73 20 26 | 20 28 31 3c 3c 30 29 20 |(flags &| (1<<0) |
|000021b0| 7c 7c 20 66 6c 61 67 73 | 20 26 20 28 31 3c 3c 36 ||| flags| & (1<<6|
|000021c0| 29 29 20 7b 0a 09 09 09 | 09 09 69 66 20 28 66 6c |)) {....|..if (fl|
|000021d0| 61 67 73 20 26 20 28 31 | 3c 3c 32 29 29 0a 09 09 |ags & (1|<<2))...|
|000021e0| 09 09 09 09 70 72 69 6e | 74 66 28 22 3d 20 30 78 |....prin|tf("= 0x|
|000021f0| 25 30 38 6c 78 22 2c 20 | 73 79 6d 62 6f 6c 74 61 |%08lx", |symbolta|
|00002200| 62 5b 69 5d 2e 76 61 6c | 75 65 29 3b 0a 09 09 09 |b[i].val|ue);....|
|00002210| 09 09 65 6c 73 65 0a 09 | 09 09 09 09 09 70 72 69 |..else..|.....pri|
|00002220| 6e 74 66 28 22 61 74 20 | 5c 22 25 73 5c 22 20 2b |ntf("at |\"%s\" +|
|00002230| 20 30 78 25 30 36 6c 78 | 22 2c 20 73 74 72 69 6e | 0x%06lx|", strin|
|00002240| 67 28 73 79 6d 62 6f 6c | 74 61 62 5b 69 5d 2e 61 |g(symbol|tab[i].a|
|00002250| 72 65 61 6e 61 6d 65 29 | 2c 20 73 79 6d 62 6f 6c |reaname)|, symbol|
|00002260| 74 61 62 5b 69 5d 2e 76 | 61 6c 75 65 29 3b 0a 09 |tab[i].v|alue);..|
|00002270| 09 09 09 7d 0a 09 09 09 | 09 70 75 74 63 68 61 72 |...}....|.putchar|
|00002280| 28 27 5c 6e 27 29 3b 0a | 09 09 09 7d 0a 09 09 7d |('\n');.|...}...}|
|00002290| 0a 0a 09 09 69 66 20 28 | 73 74 72 74 61 62 20 26 |....if (|strtab &|
|000022a0| 26 20 2a 28 57 6f 72 64 | 20 2a 29 73 74 72 69 6e |& *(Word| *)strin|
|000022b0| 67 74 61 62 29 20 7b 0a | 09 09 09 70 75 74 73 28 |gtab) {.|...puts(|
|000022c0| 22 5c 6e 2a 2a 20 53 74 | 72 69 6e 67 20 74 61 62 |"\n** St|ring tab|
|000022d0| 6c 65 3a 22 29 3b 0a 09 | 09 09 6f 66 66 73 65 74 |le:");..|..offset|
|000022e0| 20 3d 20 34 3b 0a 09 09 | 09 77 68 69 6c 65 20 28 | = 4;...|.while (|
|000022f0| 63 70 74 72 20 3d 20 73 | 74 72 69 6e 67 28 6f 66 |cptr = s|tring(of|
|00002300| 66 73 65 74 29 29 20 7b | 0a 09 09 09 09 70 72 69 |fset)) {|.....pri|
|00002310| 6e 74 66 28 22 25 30 36 | 6c 78 3a 20 25 73 5c 6e |ntf("%06|lx: %s\n|
|00002320| 22 2c 20 6f 66 66 73 65 | 74 2c 20 63 70 74 72 29 |", offse|t, cptr)|
|00002330| 3b 0a 09 09 09 09 6f 66 | 66 73 65 74 20 2b 3d 20 |;.....of|fset += |
|00002340| 73 74 72 6c 65 6e 28 63 | 70 74 72 29 20 2b 20 31 |strlen(c|ptr) + 1|
|00002350| 3b 0a 09 09 09 7d 0a 09 | 09 7d 0a 0a 6e 65 78 74 |;....}..|.}..next|
|00002360| 5f 66 69 6c 65 3a 0a 09 | 09 66 72 65 65 5f 63 68 |_file:..|.free_ch|
|00002370| 75 6e 6b 5f 6d 65 6d 6f | 72 79 28 28 63 68 61 72 |unk_memo|ry((char|
|00002380| 20 2a 29 61 6f 66 68 64 | 72 29 3b 0a 09 09 66 72 | *)aofhd|r);...fr|
|00002390| 65 65 5f 63 68 75 6e 6b | 5f 6d 65 6d 6f 72 79 28 |ee_chunk|_memory(|
|000023a0| 28 63 68 61 72 20 2a 29 | 73 79 6d 62 6f 6c 74 61 |(char *)|symbolta|
|000023b0| 62 29 3b 0a 09 09 66 72 | 65 65 5f 63 68 75 6e 6b |b);...fr|ee_chunk|
|000023c0| 5f 6d 65 6d 6f 72 79 28 | 28 63 68 61 72 20 2a 29 |_memory(|(char *)|
|000023d0| 73 74 72 69 6e 67 74 61 | 62 29 3b 0a 09 09 66 72 |stringta|b);...fr|
|000023e0| 65 65 5f 63 68 75 6e 6b | 5f 6d 65 6d 6f 72 79 28 |ee_chunk|_memory(|
|000023f0| 28 63 68 61 72 20 2a 29 | 65 6e 74 73 29 3b 0a 09 |(char *)|ents);..|
|00002400| 09 66 63 6c 6f 73 65 28 | 69 66 70 29 3b 0a 09 7d |.fclose(|ifp);..}|
|00002410| 0a 0a 09 72 65 74 75 72 | 6e 20 28 30 29 3b 0a 7d |...retur|n (0);.}|
|00002420| 0a 0a 2f 2a 0a 20 2a 20 | 70 72 69 6e 74 20 65 61 |../*. * |print ea|
|00002430| 63 68 20 41 4f 46 20 61 | 72 65 61 2e 2e 2e 0a 20 |ch AOF a|rea.... |
|00002440| 2a 2f 0a 73 74 61 74 69 | 63 20 76 6f 69 64 0a 70 |*/.stati|c void.p|
|00002450| 72 69 6e 74 5f 61 72 65 | 61 28 69 66 70 2c 20 61 |rint_are|a(ifp, a|
|00002460| 72 65 61 68 64 72 2c 20 | 6f 66 66 73 65 74 2c 20 |reahdr, |offset, |
|00002470| 72 65 6c 6f 66 66 29 0a | 09 46 49 4c 45 20 2a 69 |reloff).|.FILE *i|
|00002480| 66 70 3b 0a 09 73 74 72 | 75 63 74 20 61 72 65 61 |fp;..str|uct area|
|00002490| 68 64 72 20 2a 61 72 65 | 61 68 64 72 3b 0a 09 57 |hdr *are|ahdr;..W|
|000024a0| 6f 72 64 20 6f 66 66 73 | 65 74 2c 20 72 65 6c 6f |ord offs|et, relo|
|000024b0| 66 66 3b 0a 7b 0a 09 42 | 79 74 65 20 66 6c 61 67 |ff;.{..B|yte flag|
|000024c0| 73 20 3d 20 28 61 72 65 | 61 68 64 72 2d 3e 66 6c |s = (are|ahdr->fl|
|000024d0| 61 67 73 20 3e 3e 20 38 | 29 20 26 20 30 78 66 66 |ags >> 8|) & 0xff|
|000024e0| 3b 0a 0a 09 70 72 69 6e | 74 66 28 22 5c 6e 2a 2a |;...prin|tf("\n**|
|000024f0| 20 41 72 65 61 20 5c 22 | 25 73 5c 22 20 22 2c 20 | Area \"|%s\" ", |
|00002500| 73 74 72 69 6e 67 28 61 | 72 65 61 68 64 72 2d 3e |string(a|reahdr->|
|00002510| 6e 61 6d 65 29 29 3b 0a | 09 69 66 20 28 66 6c 61 |name));.|.if (fla|
|00002520| 67 73 20 26 20 41 54 5f | 44 45 42 55 47 29 0a 09 |gs & AT_|DEBUG)..|
|00002530| 09 66 70 75 74 73 28 22 | 64 65 62 75 67 20 22 2c |.fputs("|debug ",|
|00002540| 20 73 74 64 6f 75 74 29 | 3b 0a 09 65 6c 73 65 20 | stdout)|;..else |
|00002550| 7b 0a 09 09 69 66 20 28 | 66 6c 61 67 73 20 26 20 |{...if (|flags & |
|00002560| 41 54 5f 43 4f 44 45 29 | 0a 09 09 09 66 70 75 74 |AT_CODE)|....fput|
|00002570| 73 28 22 63 6f 64 65 20 | 22 2c 20 73 74 64 6f 75 |s("code |", stdou|
|00002580| 74 29 3b 0a 09 09 65 6c | 73 65 0a 09 09 09 66 70 |t);...el|se....fp|
|00002590| 75 74 73 28 22 64 61 74 | 61 20 22 2c 20 73 74 64 |uts("dat|a ", std|
|000025a0| 6f 75 74 29 3b 0a 09 7d | 0a 09 69 66 20 28 66 6c |out);..}|..if (fl|
|000025b0| 61 67 73 20 26 20 41 54 | 5f 43 4f 4d 4d 44 45 46 |ags & AT|_COMMDEF|
|000025c0| 29 0a 09 09 66 70 75 74 | 73 28 22 63 6f 6d 6d 64 |)...fput|s("commd|
|000025d0| 65 66 20 22 2c 20 73 74 | 64 6f 75 74 29 3b 0a 09 |ef ", st|dout);..|
|000025e0| 69 66 20 28 66 6c 61 67 | 73 20 26 20 41 54 5f 52 |if (flag|s & AT_R|
|000025f0| 45 41 44 4f 4e 4c 59 29 | 0a 09 09 66 70 75 74 73 |EADONLY)|...fputs|
|00002600| 28 22 72 65 61 64 6f 6e | 6c 79 20 22 2c 20 73 74 |("readon|ly ", st|
|00002610| 64 6f 75 74 29 3b 0a 09 | 69 66 20 28 66 6c 61 67 |dout);..|if (flag|
|00002620| 73 20 26 20 41 54 5f 4e | 4f 49 4e 49 54 29 0a 09 |s & AT_N|OINIT)..|
|00002630| 09 66 70 75 74 73 28 22 | 6e 6f 69 6e 69 74 20 22 |.fputs("|noinit "|
|00002640| 2c 20 73 74 64 6f 75 74 | 29 3b 0a 09 70 72 69 6e |, stdout|);..prin|
|00002650| 74 66 28 22 5c 6e 73 69 | 7a 65 20 25 6c 64 20 62 |tf("\nsi|ze %ld b|
|00002660| 79 74 65 25 73 2c 20 25 | 6c 64 20 72 65 6c 6f 63 |yte%s, %|ld reloc|
|00002670| 61 74 69 6f 6e 25 73 5c | 6e 22 2c 20 61 72 65 61 |ation%s\|n", area|
|00002680| 68 64 72 2d 3e 73 69 7a | 65 2c 20 61 72 65 61 68 |hdr->siz|e, areah|
|00002690| 64 72 2d 3e 73 69 7a 65 | 20 3d 3d 20 31 20 3f 20 |dr->size| == 1 ? |
|000026a0| 22 22 20 3a 20 22 73 22 | 2c 20 61 72 65 61 68 64 |"" : "s"|, areahd|
|000026b0| 72 2d 3e 6e 75 6d 72 65 | 6c 6f 63 73 2c 20 61 72 |r->numre|locs, ar|
|000026c0| 65 61 68 64 72 2d 3e 6e | 75 6d 72 65 6c 6f 63 73 |eahdr->n|umrelocs|
|000026d0| 20 3d 3d 20 31 20 3f 20 | 22 22 20 3a 20 22 73 22 | == 1 ? |"" : "s"|
|000026e0| 29 3b 0a 0a 09 69 66 20 | 28 61 72 65 61 5f 63 6f |);...if |(area_co|
|000026f0| 6e 74 65 6e 74 73 29 20 | 7b 0a 09 09 72 65 67 69 |ntents) |{...regi|
|00002700| 73 74 65 72 20 63 6f 6c | 73 20 3d 20 30 2c 20 73 |ster col|s = 0, s|
|00002710| 69 7a 65 20 3d 20 61 72 | 65 61 68 64 72 2d 3e 73 |ize = ar|eahdr->s|
|00002720| 69 7a 65 3b 0a 09 09 72 | 65 67 69 73 74 65 72 20 |ize;...r|egister |
|00002730| 57 6f 72 64 20 61 72 65 | 61 5f 6f 66 66 3b 0a 0a |Word are|a_off;..|
|00002740| 09 09 66 73 65 65 6b 28 | 69 66 70 2c 20 61 72 65 |..fseek(|ifp, are|
|00002750| 61 5f 6f 66 66 73 65 74 | 20 2b 20 6f 66 66 73 65 |a_offset| + offse|
|00002760| 74 2c 20 30 29 3b 0a 09 | 09 66 70 75 74 73 28 22 |t, 0);..|.fputs("|
|00002770| 63 6f 6e 74 65 6e 74 73 | 3a 5c 6e 30 30 30 30 30 |contents|:\n00000|
|00002780| 30 3a 20 22 2c 20 73 74 | 64 6f 75 74 29 3b 0a 09 |0: ", st|dout);..|
|00002790| 09 61 72 65 61 5f 6f 66 | 66 20 3d 20 30 3b 0a 09 |.area_of|f = 0;..|
|000027a0| 09 77 68 69 6c 65 20 28 | 61 72 65 61 5f 6f 66 66 |.while (|area_off|
|000027b0| 20 3c 20 73 69 7a 65 29 | 20 7b 0a 09 09 09 70 72 | < size)| {....pr|
|000027c0| 69 6e 74 66 28 22 25 6c | 30 38 78 22 2c 20 72 65 |intf("%l|08x", re|
|000027d0| 61 64 5f 77 6f 72 64 28 | 69 66 70 29 29 3b 0a 09 |ad_word(|ifp));..|
|000027e0| 09 09 61 72 65 61 5f 6f | 66 66 20 2b 3d 20 34 3b |..area_o|ff += 4;|
|000027f0| 0a 09 09 09 69 66 20 28 | 2b 2b 63 6f 6c 73 20 3d |....if (|++cols =|
|00002800| 3d 20 38 29 20 7b 0a 09 | 09 09 09 70 72 69 6e 74 |= 8) {..|...print|
|00002810| 66 28 22 5c 6e 25 30 36 | 6c 78 3a 20 22 2c 20 61 |f("\n%06|lx: ", a|
|00002820| 72 65 61 5f 6f 66 66 29 | 3b 0a 09 09 09 09 63 6f |rea_off)|;.....co|
|00002830| 6c 73 20 3d 20 30 3b 0a | 09 09 09 7d 20 65 6c 73 |ls = 0;.|...} els|
|00002840| 65 0a 09 09 09 09 70 75 | 74 63 68 61 72 28 27 20 |e.....pu|tchar(' |
|00002850| 27 29 3b 0a 09 09 7d 0a | 09 09 69 66 20 28 63 6f |');...}.|..if (co|
|00002860| 6c 73 29 0a 09 09 09 70 | 75 74 63 68 61 72 28 27 |ls)....p|utchar('|
|00002870| 5c 6e 27 29 3b 0a 09 7d | 0a 0a 09 69 66 20 28 72 |\n');..}|...if (r|
|00002880| 65 6c 6f 63 5f 64 69 72 | 20 26 26 20 61 72 65 61 |eloc_dir| && area|
|00002890| 68 64 72 2d 3e 6e 75 6d | 72 65 6c 6f 63 73 29 20 |hdr->num|relocs) |
|000028a0| 7b 0a 09 09 72 65 67 69 | 73 74 65 72 20 73 74 72 |{...regi|ster str|
|000028b0| 75 63 74 20 72 65 6c 6f | 63 20 2a 72 65 6c 6f 63 |uct relo|c *reloc|
|000028c0| 3b 0a 09 09 72 65 67 69 | 73 74 65 72 20 57 6f 72 |;...regi|ster Wor|
|000028d0| 64 20 6e 75 6d 72 65 6c | 6f 63 73 3b 0a 0a 09 09 |d numrel|ocs;....|
|000028e0| 66 73 65 65 6b 28 69 66 | 70 2c 20 61 72 65 61 5f |fseek(if|p, area_|
|000028f0| 6f 66 66 73 65 74 20 2b | 20 72 65 6c 6f 66 66 2c |offset +| reloff,|
|00002900| 20 30 29 3b 0a 09 09 70 | 75 74 73 28 22 72 65 6c | 0);...p|uts("rel|
|00002910| 6f 63 61 74 69 6f 6e 73 | 3a 22 29 3b 0a 09 09 66 |ocations|:");...f|
|00002920| 6f 72 20 28 6e 75 6d 72 | 65 6c 6f 63 73 20 3d 20 |or (numr|elocs = |
|00002930| 61 72 65 61 68 64 72 2d | 3e 6e 75 6d 72 65 6c 6f |areahdr-|>numrelo|
|00002940| 63 73 3b 20 6e 75 6d 72 | 65 6c 6f 63 73 3b 20 6e |cs; numr|elocs; n|
|00002950| 75 6d 72 65 6c 6f 63 73 | 2d 2d 29 20 7b 0a 09 09 |umrelocs|--) {...|
|00002960| 09 65 6e 75 6d 20 7b 75 | 6e 6b 6e 6f 77 6e 2c 20 |.enum {u|nknown, |
|00002970| 74 79 70 65 31 2c 20 74 | 79 70 65 32 7d 20 72 74 |type1, t|ype2} rt|
|00002980| 79 70 65 3b 0a 09 09 09 | 69 6e 74 20 73 68 69 66 |ype;....|int shif|
|00002990| 74 3b 0a 0a 09 09 09 72 | 65 6c 6f 63 20 3d 20 72 |t;.....r|eloc = r|
|000029a0| 65 61 64 5f 72 65 6c 6f | 63 28 69 66 70 29 3b 0a |ead_relo|c(ifp);.|
|000029b0| 09 09 09 69 66 20 28 21 | 72 65 6c 6f 63 29 20 7b |...if (!|reloc) {|
|000029c0| 0a 09 09 09 09 65 72 72 | 6f 72 28 22 72 65 61 64 |.....err|or("read|
|000029d0| 69 6e 67 20 72 65 6c 6f | 63 61 74 69 6f 6e 20 64 |ing relo|cation d|
|000029e0| 69 72 65 63 74 69 76 65 | 22 29 3b 0a 09 09 09 09 |irective|");.....|
|000029f0| 72 65 74 75 72 6e 3b 0a | 09 09 09 7d 0a 0a 09 09 |return;.|...}....|
|00002a00| 09 69 66 20 28 28 72 65 | 6c 6f 63 2d 3e 66 6c 61 |.if ((re|loc->fla|
|00002a10| 67 73 20 26 20 30 78 66 | 66 66 30 30 30 30 30 29 |gs & 0xf|ff00000)|
|00002a20| 20 3d 3d 20 30 78 30 30 | 30 30 30 30 30 30 29 0a | == 0x00|000000).|
|00002a30| 09 09 09 09 72 74 79 70 | 65 20 3d 20 74 79 70 65 |....rtyp|e = type|
|00002a40| 31 3b 0a 09 09 09 65 6c | 73 65 20 69 66 20 28 28 |1;....el|se if ((|
|00002a50| 72 65 6c 6f 63 2d 3e 66 | 6c 61 67 73 20 26 20 30 |reloc->f|lags & 0|
|00002a60| 78 66 30 30 30 30 30 30 | 30 29 20 3d 3d 20 30 78 |xf000000|0) == 0x|
|00002a70| 38 30 30 30 30 30 30 30 | 29 0a 09 09 09 09 72 74 |80000000|).....rt|
|00002a80| 79 70 65 20 3d 20 74 79 | 70 65 32 3b 0a 09 09 09 |ype = ty|pe2;....|
|00002a90| 65 6c 73 65 20 7b 0a 09 | 09 09 09 70 75 74 73 28 |else {..|...puts(|
|00002aa0| 22 2a 2a 20 75 6e 6b 6e | 6f 77 6e 20 72 65 6c 6f |"** unkn|own relo|
|00002ab0| 63 61 74 69 6f 6e 20 74 | 79 70 65 22 29 3b 0a 09 |cation t|ype");..|
|00002ac0| 09 09 09 63 6f 6e 74 69 | 6e 75 65 3b 0a 09 09 09 |...conti|nue;....|
|00002ad0| 7d 0a 0a 09 09 09 73 77 | 69 74 63 68 20 28 28 72 |}.....sw|itch ((r|
|00002ae0| 65 6c 6f 63 2d 3e 66 6c | 61 67 73 20 3e 3e 20 28 |eloc->fl|ags >> (|
|00002af0| 72 74 79 70 65 20 3d 3d | 20 74 79 70 65 31 20 3f |rtype ==| type1 ?|
|00002b00| 20 31 36 20 3a 20 32 34 | 29 29 20 26 20 30 78 30 | 16 : 24|)) & 0x0|
|00002b10| 33 29 20 7b 0a 09 09 09 | 63 61 73 65 20 30 78 30 |3) {....|case 0x0|
|00002b20| 30 3a 0a 09 09 09 09 63 | 70 74 72 20 3d 20 22 62 |0:.....c|ptr = "b|
|00002b30| 79 74 65 20 61 74 22 3b | 0a 09 09 09 09 62 72 65 |yte at";|.....bre|
|00002b40| 61 6b 3b 0a 09 09 09 63 | 61 73 65 20 30 78 30 31 |ak;....c|ase 0x01|
|00002b50| 3a 0a 09 09 09 09 63 70 | 74 72 20 3d 20 22 68 61 |:.....cp|tr = "ha|
|00002b60| 6c 66 77 6f 72 64 20 61 | 74 22 3b 0a 09 09 09 09 |lfword a|t";.....|
|00002b70| 62 72 65 61 6b 3b 0a 09 | 09 09 63 61 73 65 20 30 |break;..|..case 0|
|00002b80| 78 30 32 3a 0a 09 09 09 | 09 63 70 74 72 20 3d 20 |x02:....|.cptr = |
|00002b90| 22 77 6f 72 64 20 61 74 | 22 3b 0a 09 09 09 09 62 |"word at|";.....b|
|00002ba0| 72 65 61 6b 3b 0a 09 09 | 09 63 61 73 65 20 30 78 |reak;...|.case 0x|
|00002bb0| 30 33 3a 0a 09 09 09 09 | 63 70 74 72 20 3d 20 22 |03:.....|cptr = "|
|00002bc0| 75 6e 6b 6e 6f 77 6e 2d | 66 69 65 6c 64 2d 74 79 |unknown-|field-ty|
|00002bd0| 70 65 20 61 74 22 3b 0a | 09 09 09 09 62 72 65 61 |pe at";.|....brea|
|00002be0| 6b 3b 0a 09 09 09 7d 0a | 09 09 09 70 72 69 6e 74 |k;....}.|...print|
|00002bf0| 66 28 22 25 73 20 30 78 | 25 30 36 6c 78 20 22 2c |f("%s 0x|%06lx ",|
|00002c00| 20 63 70 74 72 2c 20 72 | 65 6c 6f 63 2d 3e 6f 66 | cptr, r|eloc->of|
|00002c10| 66 73 65 74 29 3b 0a 0a | 09 09 09 69 66 20 28 72 |fset);..|...if (r|
|00002c20| 74 79 70 65 20 3d 3d 20 | 74 79 70 65 31 29 20 7b |type == |type1) {|
|00002c30| 0a 09 09 09 09 66 70 75 | 74 73 28 22 74 79 70 65 |.....fpu|ts("type|
|00002c40| 2d 31 20 22 2c 20 73 74 | 64 6f 75 74 29 3b 0a 09 |-1 ", st|dout);..|
|00002c50| 09 09 09 73 77 69 74 63 | 68 20 28 28 72 65 6c 6f |...switc|h ((relo|
|00002c60| 63 2d 3e 66 6c 61 67 73 | 20 3e 3e 20 31 38 29 20 |c->flags| >> 18) |
|00002c70| 26 20 30 78 30 33 29 20 | 7b 0a 09 09 09 09 63 61 |& 0x03) |{.....ca|
|00002c80| 73 65 20 30 78 30 31 3a | 0a 09 09 09 09 63 61 73 |se 0x01:|.....cas|
|00002c90| 65 20 30 78 30 33 3a 0a | 09 09 09 09 09 2f 2a 20 |e 0x03:.|...../* |
|00002ca0| 70 63 2d 72 65 6c 61 74 | 69 76 65 20 28 61 6c 77 |pc-relat|ive (alw|
|00002cb0| 61 79 73 20 73 79 6d 62 | 6f 6c 29 20 2a 2f 0a 09 |ays symb|ol) */..|
|00002cc0| 09 09 09 09 70 72 69 6e | 74 66 28 22 70 63 2d 72 |....prin|tf("pc-r|
|00002cd0| 65 6c 61 74 69 76 65 20 | 74 6f 20 73 79 6d 62 6f |elative |to symbo|
|00002ce0| 6c 20 5c 22 25 73 5c 22 | 22 2c 20 73 79 6d 6e 61 |l \"%s\"|", symna|
|00002cf0| 6d 65 28 72 65 6c 6f 63 | 2d 3e 66 6c 61 67 73 20 |me(reloc|->flags |
|00002d00| 26 20 30 78 66 66 66 66 | 29 29 3b 0a 09 09 09 09 |& 0xffff|));.....|
|00002d10| 09 62 72 65 61 6b 3b 0a | 09 09 09 09 63 61 73 65 |.break;.|....case|
|00002d20| 20 30 78 30 32 3a 0a 09 | 09 09 09 09 2f 2a 20 61 | 0x02:..|..../* a|
|00002d30| 64 64 69 74 69 76 65 20 | 73 79 6d 62 6f 6c 20 2a |dditive |symbol *|
|00002d40| 2f 0a 09 09 09 09 09 70 | 72 69 6e 74 66 28 22 64 |/......p|rintf("d|
|00002d50| 69 73 70 6c 61 63 65 64 | 20 62 79 20 73 79 6d 62 |isplaced| by symb|
|00002d60| 6f 6c 20 5c 22 25 73 5c | 22 22 2c 20 73 79 6d 6e |ol \"%s\|"", symn|
|00002d70| 61 6d 65 28 72 65 6c 6f | 63 2d 3e 66 6c 61 67 73 |ame(relo|c->flags|
|00002d80| 20 26 20 30 78 66 66 66 | 66 29 29 3b 0a 09 09 09 | & 0xfff|f));....|
|00002d90| 09 09 62 72 65 61 6b 3b | 0a 09 09 09 09 63 61 73 |..break;|.....cas|
|00002da0| 65 20 30 78 30 30 3a 0a | 09 09 09 09 09 2f 2a 20 |e 0x00:.|...../* |
|00002db0| 61 64 64 69 74 69 76 65 | 20 69 6e 74 65 72 6e 61 |additive| interna|
|00002dc0| 6c 20 2a 2f 0a 09 09 09 | 09 09 66 70 75 74 73 28 |l */....|..fputs(|
|00002dd0| 22 64 69 73 70 6c 61 63 | 65 64 20 62 79 20 74 68 |"displac|ed by th|
|00002de0| 69 73 20 61 72 65 61 22 | 2c 20 73 74 64 6f 75 74 |is area"|, stdout|
|00002df0| 29 3b 0a 09 09 09 09 09 | 62 72 65 61 6b 3b 0a 09 |);......|break;..|
|00002e00| 09 09 09 7d 0a 09 09 09 | 7d 20 65 6c 73 65 20 69 |...}....|} else i|
|00002e10| 66 20 28 72 74 79 70 65 | 20 3d 3d 20 74 79 70 65 |f (rtype| == type|
|00002e20| 32 29 20 7b 0a 09 09 09 | 09 66 70 75 74 73 28 22 |2) {....|.fputs("|
|00002e30| 74 79 70 65 2d 32 20 22 | 2c 20 73 74 64 6f 75 74 |type-2 "|, stdout|
|00002e40| 29 3b 0a 09 09 09 09 73 | 77 69 74 63 68 20 28 28 |);.....s|witch ((|
|00002e50| 72 65 6c 6f 63 2d 3e 66 | 6c 61 67 73 20 3e 3e 20 |reloc->f|lags >> |
|00002e60| 32 36 29 20 26 20 30 78 | 30 33 29 20 7b 0a 09 09 |26) & 0x|03) {...|
|00002e70| 09 09 63 61 73 65 20 30 | 78 30 30 3a 0a 09 09 09 |..case 0|x00:....|
|00002e80| 09 09 2f 2a 20 61 64 64 | 69 74 69 76 65 20 69 6e |../* add|itive in|
|00002e90| 74 65 72 6e 61 6c 20 2a | 2f 0a 09 09 09 09 09 70 |ternal *|/......p|
|00002ea0| 72 69 6e 74 66 28 22 64 | 69 73 70 6c 61 63 65 64 |rintf("d|isplaced|
|00002eb0| 20 62 79 20 61 72 65 61 | 20 5c 22 25 73 5c 22 22 | by area| \"%s\""|
|00002ec0| 2c 20 61 72 65 61 6e 61 | 6d 65 28 72 65 6c 6f 63 |, areana|me(reloc|
|00002ed0| 2d 3e 66 6c 61 67 73 20 | 26 20 30 78 66 66 66 66 |->flags |& 0xffff|
|00002ee0| 66 66 29 29 3b 0a 09 09 | 09 09 09 62 72 65 61 6b |ff));...|...break|
|00002ef0| 3b 0a 09 09 09 09 63 61 | 73 65 20 30 78 30 31 3a |;.....ca|se 0x01:|
|00002f00| 0a 09 09 09 09 09 2f 2a | 20 70 63 2d 72 65 6c 61 |....../*| pc-rela|
|00002f10| 74 69 76 65 20 69 6e 74 | 65 72 6e 61 6c 20 2a 2f |tive int|ernal */|
|00002f20| 0a 09 09 09 09 09 70 72 | 69 6e 74 66 28 22 70 63 |......pr|intf("pc|
|00002f30| 2d 72 65 6c 61 74 69 76 | 65 20 74 6f 20 61 72 65 |-relativ|e to are|
|00002f40| 61 20 5c 22 25 73 5c 22 | 22 2c 20 61 72 65 61 6e |a \"%s\"|", arean|
|00002f50| 61 6d 65 28 72 65 6c 6f | 63 2d 3e 66 6c 61 67 73 |ame(relo|c->flags|
|00002f60| 20 26 20 30 78 66 66 66 | 66 66 66 29 29 3b 0a 09 | & 0xfff|fff));..|
|00002f70| 09 09 09 09 62 72 65 61 | 6b 3b 0a 0a 09 09 09 09 |....brea|k;......|
|00002f80| 63 61 73 65 20 30 78 30 | 32 3a 0a 09 09 09 09 09 |case 0x0|2:......|
|00002f90| 2f 2a 20 61 64 64 69 74 | 69 76 65 20 73 79 6d 62 |/* addit|ive symb|
|00002fa0| 6f 6c 20 2a 2f 0a 09 09 | 09 09 09 70 72 69 6e 74 |ol */...|...print|
|00002fb0| 66 28 22 64 69 73 70 6c | 61 63 65 64 20 62 79 20 |f("displ|aced by |
|00002fc0| 73 79 6d 62 6f 6c 20 5c | 22 25 73 5c 22 22 2c 20 |symbol \|"%s\"", |
|00002fd0| 73 79 6d 6e 61 6d 65 28 | 72 65 6c 6f 63 2d 3e 66 |symname(|reloc->f|
|00002fe0| 6c 61 67 73 20 26 20 30 | 78 66 66 66 66 66 66 29 |lags & 0|xffffff)|
|00002ff0| 29 3b 0a 09 09 09 09 09 | 62 72 65 61 6b 3b 0a 0a |);......|break;..|
|00003000| 09 09 09 09 63 61 73 65 | 20 30 78 30 33 3a 0a 09 |....case| 0x03:..|
|00003010| 09 09 09 09 2f 2a 20 70 | 63 2d 72 65 6c 61 74 69 |..../* p|c-relati|
|00003020| 76 65 20 73 79 6d 62 6f | 6c 20 2a 2f 0a 09 09 09 |ve symbo|l */....|
|00003030| 09 09 70 72 69 6e 74 66 | 28 22 70 63 2d 72 65 6c |..printf|("pc-rel|
|00003040| 61 74 69 76 65 20 74 6f | 20 73 79 6d 62 6f 6c 20 |ative to| symbol |
|00003050| 5c 22 25 73 5c 22 22 2c | 20 73 79 6d 6e 61 6d 65 |\"%s\"",| symname|
|00003060| 28 72 65 6c 6f 63 2d 3e | 66 6c 61 67 73 20 26 20 |(reloc->|flags & |
|00003070| 30 78 66 66 66 66 66 66 | 29 29 3b 0a 09 09 09 09 |0xffffff|));.....|
|00003080| 09 62 72 65 61 6b 3b 0a | 09 09 09 09 7d 0a 09 09 |.break;.|....}...|
|00003090| 09 7d 20 65 6c 73 65 0a | 09 09 09 09 66 70 75 74 |.} else.|....fput|
|000030a0| 73 28 22 74 79 70 65 2d | 75 6e 6b 6e 6f 77 6e 22 |s("type-|unknown"|
|000030b0| 2c 20 73 74 64 6f 75 74 | 29 3b 0a 09 09 09 70 75 |, stdout|);....pu|
|000030c0| 74 63 68 61 72 28 27 5c | 6e 27 29 3b 0a 09 09 7d |tchar('\|n');...}|
|000030d0| 0a 09 7d 0a 7d 0a 0a 2f | 2a 0a 20 2a 20 72 65 74 |..}.}../|*. * ret|
|000030e0| 75 72 6e 20 61 20 70 6f | 69 6e 74 65 72 20 74 6f |urn a po|inter to|
|000030f0| 20 61 20 73 74 72 69 6e | 67 20 69 6e 20 74 68 65 | a strin|g in the|
|00003100| 20 73 74 72 69 6e 67 20 | 74 61 62 6c 65 0a 20 2a | string |table. *|
|00003110| 2f 0a 73 74 61 74 69 63 | 20 63 68 61 72 20 2a 0a |/.static| char *.|
|00003120| 73 74 72 69 6e 67 28 6f | 66 66 73 65 74 29 0a 09 |string(o|ffset)..|
|00003130| 57 6f 72 64 20 6f 66 66 | 73 65 74 3b 0a 7b 0a 09 |Word off|set;.{..|
|00003140| 69 66 20 28 21 73 74 72 | 69 6e 67 74 61 62 20 7c |if (!str|ingtab ||
|00003150| 7c 20 6f 66 66 73 65 74 | 20 3c 20 34 20 7c 7c 20 || offset| < 4 || |
|00003160| 6f 66 66 73 65 74 20 3e | 3d 20 2a 28 57 6f 72 64 |offset >|= *(Word|
|00003170| 20 2a 29 73 74 72 69 6e | 67 74 61 62 29 0a 09 09 | *)strin|gtab)...|
|00003180| 72 65 74 75 72 6e 20 28 | 4e 55 4c 4c 29 3b 0a 09 |return (|NULL);..|
|00003190| 72 65 74 75 72 6e 20 28 | 28 63 68 61 72 20 2a 29 |return (|(char *)|
|000031a0| 28 73 74 72 69 6e 67 74 | 61 62 20 2b 20 6f 66 66 |(stringt|ab + off|
|000031b0| 73 65 74 29 29 3b 0a 7d | 0a 0a 2f 2a 0a 20 2a 20 |set));.}|../*. * |
|000031c0| 72 65 74 75 72 6e 20 61 | 20 70 6f 69 6e 74 65 72 |return a| pointer|
|000031d0| 20 74 6f 20 61 20 73 79 | 6d 62 6f 6c 20 6e 61 6d | to a sy|mbol nam|
|000031e0| 65 20 69 6e 20 74 68 65 | 20 73 79 6d 62 6f 6c 20 |e in the| symbol |
|000031f0| 74 61 62 6c 65 0a 20 2a | 2f 0a 73 74 61 74 69 63 |table. *|/.static|
|00003200| 20 63 68 61 72 20 2a 0a | 73 79 6d 6e 61 6d 65 28 | char *.|symname(|
|00003210| 6f 66 66 73 65 74 29 0a | 09 57 6f 72 64 20 6f 66 |offset).|.Word of|
|00003220| 66 73 65 74 3b 0a 7b 0a | 09 72 65 67 69 73 74 65 |fset;.{.|.registe|
|00003230| 72 20 73 74 72 75 63 74 | 20 73 79 6d 62 6f 6c 20 |r struct| symbol |
|00003240| 2a 73 79 6d 3b 0a 0a 09 | 69 66 20 28 21 73 79 6d |*sym;...|if (!sym|
|00003250| 62 6f 6c 74 61 62 20 7c | 7c 20 6f 66 66 73 65 74 |boltab ||| offset|
|00003260| 20 3e 20 73 79 6d 62 6f | 6c 74 61 62 5f 73 69 7a | > symbo|ltab_siz|
|00003270| 65 29 0a 09 09 72 65 74 | 75 72 6e 20 28 4e 55 4c |e)...ret|urn (NUL|
|00003280| 4c 29 3b 0a 09 73 79 6d | 20 3d 20 28 73 74 72 75 |L);..sym| = (stru|
|00003290| 63 74 20 73 79 6d 62 6f | 6c 20 2a 29 28 73 79 6d |ct symbo|l *)(sym|
|000032a0| 62 6f 6c 74 61 62 20 2b | 20 6f 66 66 73 65 74 29 |boltab +| offset)|
|000032b0| 3b 0a 09 72 65 74 75 72 | 6e 20 28 73 74 72 69 6e |;..retur|n (strin|
|000032c0| 67 28 73 79 6d 2d 3e 6e | 61 6d 65 29 29 3b 0a 7d |g(sym->n|ame));.}|
|000032d0| 0a 0a 2f 2a 0a 20 2a 20 | 72 65 74 75 72 6e 20 61 |../*. * |return a|
|000032e0| 20 70 6f 69 6e 74 65 72 | 20 74 6f 20 61 6e 20 61 | pointer| to an a|
|000032f0| 72 65 61 20 6e 61 6d 65 | 2c 20 67 69 76 65 6e 20 |rea name|, given |
|00003300| 74 68 65 20 61 72 65 61 | 27 73 20 6f 66 66 73 65 |the area|'s offse|
|00003310| 74 0a 20 2a 20 69 6e 74 | 6f 20 74 68 65 20 4f 42 |t. * int|o the OB|
|00003320| 4a 5f 41 52 45 41 2e 0a | 20 2a 2f 0a 73 74 61 74 |J_AREA..| */.stat|
|00003330| 69 63 20 63 68 61 72 20 | 2a 0a 61 72 65 61 6e 61 |ic char |*.areana|
|00003340| 6d 65 28 6f 66 66 73 65 | 74 29 0a 09 57 6f 72 64 |me(offse|t)..Word|
|00003350| 20 6f 66 66 73 65 74 3b | 0a 7b 0a 09 72 65 67 69 | offset;|.{..regi|
|00003360| 73 74 65 72 20 57 6f 72 | 64 20 61 6f 66 66 3b 0a |ster Wor|d aoff;.|
|00003370| 09 72 65 67 69 73 74 65 | 72 20 69 3b 0a 0a 09 69 |.registe|r i;...i|
|00003380| 66 20 28 21 61 6f 66 68 | 64 72 20 7c 7c 20 21 61 |f (!aofh|dr || !a|
|00003390| 72 65 61 68 64 72 73 29 | 0a 09 09 72 65 74 75 72 |reahdrs)|...retur|
|000033a0| 6e 20 28 4e 55 4c 4c 29 | 3b 0a 09 66 6f 72 20 28 |n (NULL)|;..for (|
|000033b0| 69 20 3d 20 30 2c 20 61 | 6f 66 66 20 3d 20 30 3b |i = 0, a|off = 0;|
|000033c0| 20 69 20 3c 20 61 6f 66 | 68 64 72 2d 3e 6e 75 6d | i < aof|hdr->num|
|000033d0| 61 72 65 61 73 3b 20 69 | 2b 2b 29 0a 09 09 69 66 |areas; i|++)...if|
|000033e0| 20 28 61 6f 66 66 20 3d | 3d 20 6f 66 66 73 65 74 | (aoff =|= offset|
|000033f0| 29 0a 09 09 09 72 65 74 | 75 72 6e 20 28 73 74 72 |)....ret|urn (str|
|00003400| 69 6e 67 28 61 72 65 61 | 68 64 72 73 5b 69 5d 2e |ing(area|hdrs[i].|
|00003410| 6e 61 6d 65 29 29 3b 0a | 09 09 65 6c 73 65 20 69 |name));.|..else i|
|00003420| 66 20 28 21 28 61 72 65 | 61 68 64 72 73 5b 69 5d |f (!(are|ahdrs[i]|
|00003430| 2e 66 6c 61 67 73 20 26 | 20 41 54 5f 4e 4f 49 4e |.flags &| AT_NOIN|
|00003440| 49 54 29 29 0a 09 09 09 | 61 6f 66 66 20 2b 3d 20 |IT))....|aoff += |
|00003450| 61 72 65 61 68 64 72 73 | 5b 69 5d 2e 73 69 7a 65 |areahdrs|[i].size|
|00003460| 20 2b 20 28 73 69 7a 65 | 6f 66 28 73 74 72 75 63 | + (size|of(struc|
|00003470| 74 20 72 65 6c 6f 63 29 | 20 2a 20 61 72 65 61 68 |t reloc)| * areah|
|00003480| 64 72 73 5b 69 5d 2e 6e | 75 6d 72 65 6c 6f 63 73 |drs[i].n|umrelocs|
|00003490| 29 3b 0a 09 72 65 74 75 | 72 6e 20 28 4e 55 4c 4c |);..retu|rn (NULL|
|000034a0| 29 3b 0a 7d 0a 46 69 6c | 65 44 61 74 61 82 65 72 |);.}.Fil|eData.er|
|000034b0| 72 6f 72 00 00 00 00 00 | 00 d5 03 00 00 44 ff ff |ror.....|.....D..|
|000034c0| ff 64 4e ac 3f 03 00 ce | cb 2f 2a 0a 20 2a 20 72 |.dN.?...|./*. * r|
|000034d0| 65 70 6f 72 74 20 65 72 | 72 6f 72 73 20 61 6e 64 |eport er|rors and|
|000034e0| 20 77 61 72 6e 69 6e 67 | 73 0a 20 2a 0a 20 2a 20 | warning|s. *. * |
|000034f0| 41 6e 64 79 20 44 75 70 | 6c 61 69 6e 2c 20 42 54 |Andy Dup|lain, BT|
|00003500| 20 43 75 73 74 6f 6d 65 | 72 20 53 79 73 74 65 6d | Custome|r System|
|00003510| 73 2c 20 42 72 69 67 68 | 74 6f 6e 2c 20 55 4b 2e |s, Brigh|ton, UK.|
|00003520| 20 20 64 75 70 6c 61 69 | 6e 40 62 74 63 73 2e 62 | duplai|n@btcs.b|
|00003530| 74 2e 63 6f 2e 75 6b 0a | 20 2a 2f 0a 0a 23 69 6e |t.co.uk.| */..#in|
|00003540| 63 6c 75 64 65 20 3c 73 | 74 64 69 6f 2e 68 3e 0a |clude <s|tdio.h>.|
|00003550| 23 69 6e 63 6c 75 64 65 | 20 22 65 72 72 6f 72 2e |#include| "error.|
|00003560| 68 22 0a 0a 65 78 74 65 | 72 6e 20 63 68 61 72 20 |h"..exte|rn char |
|00003570| 2a 6f 75 72 6e 61 6d 65 | 3b 09 09 2f 2a 20 69 6e |*ourname|;../* in|
|00003580| 20 6d 61 69 6e 2e 63 20 | 2a 2f 0a 0a 76 6f 69 64 | main.c |*/..void|
|00003590| 0a 23 69 66 64 65 66 20 | 41 4e 53 49 5f 43 0a 65 |.#ifdef |ANSI_C.e|
|000035a0| 72 72 6f 72 28 63 68 61 | 72 20 2a 66 6d 74 2c 20 |rror(cha|r *fmt, |
|000035b0| 2e 2e 2e 29 0a 23 65 6c | 73 65 0a 65 72 72 6f 72 |...).#el|se.error|
|000035c0| 28 76 61 5f 61 6c 69 73 | 74 29 0a 76 61 5f 64 63 |(va_alis|t).va_dc|
|000035d0| 6c 0a 23 65 6e 64 69 66 | 20 2f 2a 20 41 4e 53 49 |l.#endif| /* ANSI|
|000035e0| 5f 43 20 2a 2f 0a 7b 0a | 09 76 61 5f 6c 69 73 74 |_C */.{.|.va_list|
|000035f0| 20 61 70 3b 0a 23 69 66 | 6e 64 65 66 20 41 4e 53 | ap;.#if|ndef ANS|
|00003600| 49 5f 43 0a 09 63 68 61 | 72 20 2a 66 6d 74 3b 0a |I_C..cha|r *fmt;.|
|00003610| 09 76 61 5f 73 74 61 72 | 74 28 61 70 29 3b 0a 09 |.va_star|t(ap);..|
|00003620| 66 6d 74 20 3d 20 76 61 | 5f 61 72 67 28 61 70 2c |fmt = va|_arg(ap,|
|00003630| 20 63 68 61 72 20 2a 29 | 3b 0a 23 65 6c 73 65 0a | char *)|;.#else.|
|00003640| 09 76 61 5f 73 74 61 72 | 74 28 61 70 2c 20 66 6d |.va_star|t(ap, fm|
|00003650| 74 29 3b 0a 23 65 6e 64 | 69 66 20 2f 2a 20 21 41 |t);.#end|if /* !A|
|00003660| 4e 53 49 5f 43 20 2a 2f | 0a 09 66 70 72 69 6e 74 |NSI_C */|..fprint|
|00003670| 66 28 73 74 64 65 72 72 | 2c 20 22 25 73 20 65 72 |f(stderr|, "%s er|
|00003680| 72 6f 72 3a 20 22 2c 20 | 6f 75 72 6e 61 6d 65 29 |ror: ", |ourname)|
|00003690| 3b 0a 23 69 66 64 65 66 | 20 42 53 44 34 32 0a 09 |;.#ifdef| BSD42..|
|000036a0| 5f 64 6f 70 72 6e 74 28 | 66 6d 74 2c 61 70 2c 73 |_doprnt(|fmt,ap,s|
|000036b0| 74 64 65 72 72 29 3b 0a | 23 65 6c 73 65 0a 09 76 |tderr);.|#else..v|
|000036c0| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|000036d0| 66 6d 74 2c 20 61 70 29 | 3b 0a 23 65 6e 64 69 66 |fmt, ap)|;.#endif|
|000036e0| 20 2f 2a 20 42 53 44 34 | 32 20 2a 2f 0a 09 70 75 | /* BSD4|2 */..pu|
|000036f0| 74 63 28 27 5c 6e 27 2c | 20 73 74 64 65 72 72 29 |tc('\n',| stderr)|
|00003700| 3b 0a 09 76 61 5f 65 6e | 64 28 61 70 29 3b 0a 0a |;..va_en|d(ap);..|
|00003710| 7d 0a 0a 76 6f 69 64 0a | 23 69 66 64 65 66 20 41 |}..void.|#ifdef A|
|00003720| 4e 53 49 5f 43 0a 77 61 | 72 6e 69 6e 67 28 63 68 |NSI_C.wa|rning(ch|
|00003730| 61 72 20 2a 66 6d 74 2c | 20 2e 2e 2e 29 0a 23 65 |ar *fmt,| ...).#e|
|00003740| 6c 73 65 0a 77 61 72 6e | 69 6e 67 28 76 61 5f 61 |lse.warn|ing(va_a|
|00003750| 6c 69 73 74 29 0a 76 61 | 5f 64 63 6c 0a 23 65 6e |list).va|_dcl.#en|
|00003760| 64 69 66 20 2f 2a 20 41 | 4e 53 49 5f 43 20 2a 2f |dif /* A|NSI_C */|
|00003770| 0a 7b 0a 09 76 61 5f 6c | 69 73 74 20 61 70 3b 0a |.{..va_l|ist ap;.|
|00003780| 23 69 66 6e 64 65 66 20 | 41 4e 53 49 5f 43 0a 09 |#ifndef |ANSI_C..|
|00003790| 63 68 61 72 20 2a 66 6d | 74 3b 0a 09 76 61 5f 73 |char *fm|t;..va_s|
|000037a0| 74 61 72 74 28 61 70 29 | 3b 0a 09 66 6d 74 20 3d |tart(ap)|;..fmt =|
|000037b0| 20 76 61 5f 61 72 67 28 | 61 70 2c 20 63 68 61 72 | va_arg(|ap, char|
|000037c0| 20 2a 29 3b 0a 23 65 6c | 73 65 0a 09 76 61 5f 73 | *);.#el|se..va_s|
|000037d0| 74 61 72 74 28 61 70 2c | 20 66 6d 74 29 3b 0a 23 |tart(ap,| fmt);.#|
|000037e0| 65 6e 64 69 66 20 2f 2a | 20 21 41 4e 53 49 5f 43 |endif /*| !ANSI_C|
|000037f0| 20 2a 2f 0a 09 66 70 72 | 69 6e 74 66 28 73 74 64 | */..fpr|intf(std|
|00003800| 65 72 72 2c 20 22 25 73 | 20 77 61 72 6e 69 6e 67 |err, "%s| warning|
|00003810| 3a 20 22 2c 20 6f 75 72 | 6e 61 6d 65 29 3b 0a 23 |: ", our|name);.#|
|00003820| 69 66 64 65 66 20 42 53 | 44 34 32 0a 09 5f 64 6f |ifdef BS|D42.._do|
|00003830| 70 72 6e 74 28 66 6d 74 | 2c 61 70 2c 73 74 64 65 |prnt(fmt|,ap,stde|
|00003840| 72 72 29 3b 0a 23 65 6c | 73 65 0a 09 76 66 70 72 |rr);.#el|se..vfpr|
|00003850| 69 6e 74 66 28 73 74 64 | 65 72 72 2c 20 66 6d 74 |intf(std|err, fmt|
|00003860| 2c 20 61 70 29 3b 0a 23 | 65 6e 64 69 66 20 2f 2a |, ap);.#|endif /*|
|00003870| 20 42 53 44 34 32 20 2a | 2f 0a 09 70 75 74 63 28 | BSD42 *|/..putc(|
|00003880| 27 5c 6e 27 2c 20 73 74 | 64 65 72 72 29 3b 0a 09 |'\n', st|derr);..|
|00003890| 76 61 5f 65 6e 64 28 61 | 70 29 3b 0a 7d 0a 46 69 |va_end(a|p);.}.Fi|
|000038a0| 6c 65 44 61 74 61 82 69 | 6f 00 44 4d 45 00 00 00 |leData.i|o.DME...|
|000038b0| 00 00 c6 15 00 00 44 ff | ff ff cc db ac 3f 03 00 |......D.|.....?..|
|000038c0| 76 b1 2f 2a 0a 20 2a 20 | 66 69 6c 65 20 69 6e 70 |v./*. * |file inp|
|000038d0| 75 74 2f 6f 75 74 70 75 | 74 0a 20 2a 0a 20 2a 20 |ut/outpu|t. *. * |
|000038e0| 41 6e 64 79 20 44 75 70 | 6c 61 69 6e 2c 20 42 54 |Andy Dup|lain, BT|
|000038f0| 20 43 75 73 74 6f 6d 65 | 72 20 53 79 73 74 65 6d | Custome|r System|
|00003900| 73 2c 20 42 72 69 67 68 | 74 6f 6e 2c 20 55 4b 2e |s, Brigh|ton, UK.|
|00003910| 20 20 64 75 70 6c 61 69 | 6e 40 62 74 63 73 2e 62 | duplai|n@btcs.b|
|00003920| 74 2e 63 6f 2e 75 6b 0a | 20 2a 2f 0a 0a 23 69 6e |t.co.uk.| */..#in|
|00003930| 63 6c 75 64 65 20 3c 73 | 74 64 69 6f 2e 68 3e 0a |clude <s|tdio.h>.|
|00003940| 23 69 6e 63 6c 75 64 65 | 20 22 64 65 63 61 6f 66 |#include| "decaof|
|00003950| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 63 70 |.h".#inc|lude "cp|
|00003960| 72 6f 74 6f 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |roto.h".|#include|
|00003970| 20 22 65 72 72 6f 72 2e | 68 22 0a 0a 23 69 66 20 | "error.|h"..#if |
|00003980| 64 65 66 69 6e 65 64 28 | 42 53 44 34 32 29 20 7c |defined(|BSD42) ||
|00003990| 7c 20 64 65 66 69 6e 65 | 64 28 53 59 53 56 32 29 || define|d(SYSV2)|
|000039a0| 0a 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 6d 61 |.extern |char *ma|
|000039b0| 6c 6c 6f 63 20 50 5f 5f | 28 28 75 6e 73 69 67 6e |lloc P__|((unsign|
|000039c0| 65 64 20 6c 65 6e 29 29 | 3b 0a 23 65 6c 73 65 0a |ed len))|;.#else.|
|000039d0| 23 69 6e 63 6c 75 64 65 | 20 3c 6d 61 6c 6c 6f 63 |#include| <malloc|
|000039e0| 2e 68 3e 0a 23 65 6e 64 | 69 66 0a 0a 2f 2a 0a 20 |.h>.#end|if../*. |
|000039f0| 2a 20 63 68 65 63 6b 20 | 66 6f 72 20 45 4f 46 20 |* check |for EOF |
|00003a00| 6f 72 20 77 72 69 74 65 | 2f 72 65 61 64 20 65 72 |or write|/read er|
|00003a10| 72 6f 72 73 20 6f 6e 20 | 73 74 72 65 61 6d 2e 0a |rors on |stream..|
|00003a20| 20 2a 2f 0a 46 65 72 72 | 6f 72 0a 63 68 65 63 6b | */.Ferr|or.check|
|00003a30| 5f 73 74 72 65 61 6d 28 | 66 70 29 0a 09 46 49 4c |_stream(|fp)..FIL|
|00003a40| 45 20 2a 66 70 3b 0a 7b | 0a 09 69 6e 74 20 72 65 |E *fp;.{|..int re|
|00003a50| 74 20 3d 20 46 4e 4f 45 | 52 52 3b 0a 0a 09 69 66 |t = FNOE|RR;...if|
|00003a60| 20 28 66 65 6f 66 28 66 | 70 29 29 0a 09 09 72 65 | (feof(f|p))...re|
|00003a70| 74 20 3d 20 46 45 4e 44 | 3b 0a 09 65 6c 73 65 20 |t = FEND|;..else |
|00003a80| 69 66 20 28 66 65 72 72 | 6f 72 28 66 70 29 29 0a |if (ferr|or(fp)).|
|00003a90| 09 09 72 65 74 20 3d 20 | 46 52 57 45 52 52 3b 0a |..ret = |FRWERR;.|
|00003aa0| 09 69 66 20 28 72 65 74 | 20 21 3d 20 46 4e 4f 45 |.if (ret| != FNOE|
|00003ab0| 52 52 29 0a 09 09 63 6c | 65 61 72 65 72 72 28 66 |RR)...cl|earerr(f|
|00003ac0| 70 29 3b 0a 09 72 65 74 | 75 72 6e 20 28 72 65 74 |p);..ret|urn (ret|
|00003ad0| 29 3b 0a 7d 0a 0a 2f 2a | 0a 20 2a 20 72 65 61 64 |);.}../*|. * read|
|00003ae0| 20 61 20 62 79 74 65 20 | 66 72 6f 6d 20 74 68 65 | a byte |from the|
|00003af0| 20 69 6e 70 75 74 20 73 | 74 72 65 61 6d 2e 0a 20 | input s|tream.. |
|00003b00| 2a 2f 0a 42 79 74 65 0a | 72 65 61 64 5f 62 79 74 |*/.Byte.|read_byt|
|00003b10| 65 28 69 66 70 29 0a 09 | 46 49 4c 45 20 2a 69 66 |e(ifp)..|FILE *if|
|00003b20| 70 3b 0a 7b 0a 09 72 65 | 74 75 72 6e 20 28 28 42 |p;.{..re|turn ((B|
|00003b30| 79 74 65 29 67 65 74 63 | 28 69 66 70 29 29 3b 0a |yte)getc|(ifp));.|
|00003b40| 7d 0a 0a 2f 2a 0a 20 2a | 20 72 65 61 64 20 61 20 |}../*. *| read a |
|00003b50| 6c 69 74 74 6c 65 2d 65 | 6e 64 69 61 6e 20 32 2d |little-e|ndian 2-|
|00003b60| 62 79 74 65 20 68 61 6c | 66 77 6f 72 64 20 66 72 |byte hal|fword fr|
|00003b70| 6f 6d 20 74 68 65 20 69 | 6e 70 75 74 20 73 74 72 |om the i|nput str|
|00003b80| 65 61 6d 2e 0a 20 2a 2f | 0a 48 61 6c 66 77 6f 72 |eam.. */|.Halfwor|
|00003b90| 64 0a 72 65 61 64 5f 68 | 61 6c 66 77 6f 72 64 28 |d.read_h|alfword(|
|00003ba0| 69 66 70 29 0a 09 46 49 | 4c 45 20 2a 69 66 70 3b |ifp)..FI|LE *ifp;|
|00003bb0| 0a 7b 0a 09 75 6e 69 6f | 6e 20 7b 0a 09 09 48 61 |.{..unio|n {...Ha|
|00003bc0| 6c 66 77 6f 72 64 20 68 | 3b 0a 09 09 42 79 74 65 |lfword h|;...Byte|
|00003bd0| 20 62 5b 73 69 7a 65 6f | 66 28 48 61 6c 66 77 6f | b[sizeo|f(Halfwo|
|00003be0| 72 64 29 5d 3b 0a 09 7d | 20 72 65 74 3b 0a 0a 23 |rd)];..}| ret;..#|
|00003bf0| 69 66 20 64 65 66 69 6e | 65 64 28 4c 49 54 54 4c |if defin|ed(LITTL|
|00003c00| 45 5f 45 4e 44 49 41 4e | 29 0a 09 66 72 65 61 64 |E_ENDIAN|)..fread|
|00003c10| 28 28 63 68 61 72 20 2a | 29 26 72 65 74 2e 68 2c |((char *|)&ret.h,|
|00003c20| 20 31 2c 20 73 69 7a 65 | 6f 66 28 48 61 6c 66 77 | 1, size|of(Halfw|
|00003c30| 6f 72 64 29 2c 20 69 66 | 70 29 3b 0a 23 65 6c 73 |ord), if|p);.#els|
|00003c40| 65 0a 09 72 65 74 2e 62 | 5b 48 41 4c 46 57 4f 52 |e..ret.b|[HALFWOR|
|00003c50| 44 30 5d 20 3d 20 72 65 | 61 64 5f 62 79 74 65 28 |D0] = re|ad_byte(|
|00003c60| 69 66 70 29 3b 0a 09 72 | 65 74 2e 62 5b 48 41 4c |ifp);..r|et.b[HAL|
|00003c70| 46 57 4f 52 44 31 5d 20 | 3d 20 72 65 61 64 5f 62 |FWORD1] |= read_b|
|00003c80| 79 74 65 28 69 66 70 29 | 3b 0a 23 65 6e 64 69 66 |yte(ifp)|;.#endif|
|00003c90| 0a 09 72 65 74 75 72 6e | 20 28 72 65 74 2e 68 29 |..return| (ret.h)|
|00003ca0| 3b 0a 7d 0a 0a 2f 2a 0a | 20 2a 20 72 65 61 64 20 |;.}../*.| * read |
|00003cb0| 61 20 6c 69 74 74 6c 65 | 2d 65 6e 64 69 61 6e 20 |a little|-endian |
|00003cc0| 34 2d 62 79 74 65 20 77 | 6f 72 64 20 66 72 6f 6d |4-byte w|ord from|
|00003cd0| 20 74 68 65 20 69 6e 70 | 75 74 20 73 74 72 65 61 | the inp|ut strea|
|00003ce0| 6d 2e 0a 20 2a 2f 0a 57 | 6f 72 64 0a 72 65 61 64 |m.. */.W|ord.read|
|00003cf0| 5f 77 6f 72 64 28 69 66 | 70 29 0a 09 46 49 4c 45 |_word(if|p)..FILE|
|00003d00| 20 2a 69 66 70 3b 0a 7b | 0a 09 75 6e 69 6f 6e 20 | *ifp;.{|..union |
|00003d10| 7b 0a 09 09 57 6f 72 64 | 20 77 3b 0a 09 09 42 79 |{...Word| w;...By|
|00003d20| 74 65 20 62 5b 73 69 7a | 65 6f 66 28 57 6f 72 64 |te b[siz|eof(Word|
|00003d30| 29 5d 3b 0a 09 7d 20 72 | 65 74 3b 0a 0a 23 69 66 |)];..} r|et;..#if|
|00003d40| 20 64 65 66 69 6e 65 64 | 28 4c 49 54 54 4c 45 5f | defined|(LITTLE_|
|00003d50| 45 4e 44 49 41 4e 29 0a | 09 66 72 65 61 64 28 28 |ENDIAN).|.fread((|
|00003d60| 63 68 61 72 20 2a 29 26 | 72 65 74 2e 77 2c 20 31 |char *)&|ret.w, 1|
|00003d70| 2c 20 73 69 7a 65 6f 66 | 28 57 6f 72 64 29 2c 20 |, sizeof|(Word), |
|00003d80| 69 66 70 29 3b 0a 23 65 | 6c 73 65 0a 09 72 65 74 |ifp);.#e|lse..ret|
|00003d90| 2e 62 5b 57 4f 52 44 30 | 5d 20 3d 20 72 65 61 64 |.b[WORD0|] = read|
|00003da0| 5f 62 79 74 65 28 69 66 | 70 29 3b 0a 09 72 65 74 |_byte(if|p);..ret|
|00003db0| 2e 62 5b 57 4f 52 44 31 | 5d 20 3d 20 72 65 61 64 |.b[WORD1|] = read|
|00003dc0| 5f 62 79 74 65 28 69 66 | 70 29 3b 0a 09 72 65 74 |_byte(if|p);..ret|
|00003dd0| 2e 62 5b 57 4f 52 44 32 | 5d 20 3d 20 72 65 61 64 |.b[WORD2|] = read|
|00003de0| 5f 62 79 74 65 28 69 66 | 70 29 3b 0a 09 72 65 74 |_byte(if|p);..ret|
|00003df0| 2e 62 5b 57 4f 52 44 33 | 5d 20 3d 20 72 65 61 64 |.b[WORD3|] = read|
|00003e00| 5f 62 79 74 65 28 69 66 | 70 29 3b 0a 23 65 6e 64 |_byte(if|p);.#end|
|00003e10| 69 66 0a 09 72 65 74 75 | 72 6e 20 28 72 65 74 2e |if..retu|rn (ret.|
|00003e20| 77 29 3b 0a 7d 0a 0a 2f | 2a 0a 20 2a 20 72 65 61 |w);.}../|*. * rea|
|00003e30| 64 20 69 6e 20 74 68 65 | 20 63 68 75 6e 6b 20 68 |d in the| chunk h|
|00003e40| 65 61 64 65 72 0a 20 2a | 2f 0a 73 74 72 75 63 74 |eader. *|/.struct|
|00003e50| 20 63 68 75 6e 6b 68 64 | 72 20 2a 0a 72 65 61 64 | chunkhd|r *.read|
|00003e60| 5f 63 68 75 6e 6b 68 64 | 72 28 69 66 70 29 0a 09 |_chunkhd|r(ifp)..|
|00003e70| 46 49 4c 45 20 2a 69 66 | 70 3b 0a 7b 0a 09 73 74 |FILE *if|p;.{..st|
|00003e80| 61 74 69 63 20 73 74 72 | 75 63 74 20 63 68 75 6e |atic str|uct chun|
|00003e90| 6b 68 64 72 20 68 64 72 | 3b 0a 0a 09 66 73 65 65 |khdr hdr|;...fsee|
|00003ea0| 6b 28 69 66 70 2c 20 30 | 4c 2c 20 30 29 3b 0a 09 |k(ifp, 0|L, 0);..|
|00003eb0| 68 64 72 2e 63 68 75 6e | 6b 66 69 6c 65 69 64 20 |hdr.chun|kfileid |
|00003ec0| 3d 20 72 65 61 64 5f 77 | 6f 72 64 28 69 66 70 29 |= read_w|ord(ifp)|
|00003ed0| 3b 0a 09 68 64 72 2e 6d | 61 78 63 68 75 6e 6b 73 |;..hdr.m|axchunks|
|00003ee0| 20 3d 20 72 65 61 64 5f | 77 6f 72 64 28 69 66 70 | = read_|word(ifp|
|00003ef0| 29 3b 0a 09 68 64 72 2e | 6e 75 6d 63 68 75 6e 6b |);..hdr.|numchunk|
|00003f00| 73 20 3d 20 72 65 61 64 | 5f 77 6f 72 64 28 69 66 |s = read|_word(if|
|00003f10| 70 29 3b 0a 09 72 65 74 | 75 72 6e 20 28 63 68 65 |p);..ret|urn (che|
|00003f20| 63 6b 5f 73 74 72 65 61 | 6d 28 69 66 70 29 20 21 |ck_strea|m(ifp) !|
|00003f30| 3d 20 46 52 57 45 52 52 | 20 3f 20 26 68 64 72 20 |= FRWERR| ? &hdr |
|00003f40| 3a 20 4e 55 4c 4c 29 3b | 0a 7d 09 0a 0a 2f 2a 0a |: NULL);|.}.../*.|
|00003f50| 20 2a 20 6d 65 6d 6f 72 | 79 20 70 6f 69 6e 74 65 | * memor|y pointe|
|00003f60| 72 73 20 6d 61 69 6e 74 | 61 69 6e 65 64 20 62 79 |rs maint|ained by|
|00003f70| 20 72 65 61 64 5f 78 78 | 78 20 66 75 6e 63 74 69 | read_xx|x functi|
|00003f80| 6f 6e 73 0a 20 2a 2f 0a | 0a 73 74 61 74 69 63 20 |ons. */.|.static |
|00003f90| 73 74 72 75 63 74 20 63 | 68 75 6e 6b 65 6e 74 20 |struct c|hunkent |
|00003fa0| 2a 65 6e 74 73 20 3d 20 | 4e 55 4c 4c 3b 09 2f 2a |*ents = |NULL;./*|
|00003fb0| 20 63 68 75 6e 6b 20 66 | 69 6c 65 20 65 6e 74 72 | chunk f|ile entr|
|00003fc0| 69 65 73 20 2a 2f 0a 73 | 74 61 74 69 63 20 63 68 |ies */.s|tatic ch|
|00003fd0| 61 72 20 2a 73 74 72 70 | 74 72 20 3d 20 4e 55 4c |ar *strp|tr = NUL|
|00003fe0| 4c 3b 09 09 2f 2a 20 73 | 74 72 69 6e 67 20 74 61 |L;../* s|tring ta|
|00003ff0| 62 6c 65 20 2a 2f 0a 73 | 74 61 74 69 63 20 73 74 |ble */.s|tatic st|
|00004000| 72 75 63 74 20 73 79 6d | 62 6f 6c 20 2a 73 79 6d |ruct sym|bol *sym|
|00004010| 70 74 72 20 3d 20 4e 55 | 4c 4c 3b 09 2f 2a 20 73 |ptr = NU|LL;./* s|
|00004020| 79 6d 62 6f 6c 20 74 61 | 62 6c 65 20 2a 2f 0a 73 |ymbol ta|ble */.s|
|00004030| 74 61 74 69 63 20 63 68 | 61 72 20 2a 69 64 70 74 |tatic ch|ar *idpt|
|00004040| 72 20 3d 20 4e 55 4c 4c | 3b 09 09 2f 2a 20 69 64 |r = NULL|;../* id|
|00004050| 65 6e 74 69 66 69 63 61 | 74 69 6f 6e 20 73 74 72 |entifica|tion str|
|00004060| 69 6e 67 20 2a 2f 0a 73 | 74 61 74 69 63 20 73 74 |ing */.s|tatic st|
|00004070| 72 75 63 74 20 61 6f 66 | 68 64 72 20 2a 61 6f 66 |ruct aof|hdr *aof|
|00004080| 68 64 72 20 3d 20 4e 55 | 4c 4c 3b 09 2f 2a 20 41 |hdr = NU|LL;./* A|
|00004090| 4f 46 20 68 65 61 64 65 | 72 20 2a 2f 0a 0a 2f 2a |OF heade|r */../*|
|000040a0| 0a 20 2a 20 66 72 65 65 | 20 74 68 65 20 6d 65 6d |. * free| the mem|
|000040b0| 6f 72 79 20 75 73 65 64 | 20 62 79 20 61 20 63 68 |ory used| by a ch|
|000040c0| 75 6e 6b 0a 20 2a 2f 0a | 69 6e 74 0a 66 72 65 65 |unk. */.|int.free|
|000040d0| 5f 63 68 75 6e 6b 5f 6d | 65 6d 6f 72 79 28 70 74 |_chunk_m|emory(pt|
|000040e0| 72 29 0a 09 63 68 61 72 | 20 2a 70 74 72 3b 0a 7b |r)..char| *ptr;.{|
|000040f0| 0a 09 69 66 20 28 21 70 | 74 72 29 0a 09 09 72 65 |..if (!p|tr)...re|
|00004100| 74 75 72 6e 20 28 30 29 | 3b 0a 0a 09 69 66 20 28 |turn (0)|;...if (|
|00004110| 70 74 72 20 3d 3d 20 28 | 63 68 61 72 20 2a 29 65 |ptr == (|char *)e|
|00004120| 6e 74 73 29 20 7b 0a 09 | 09 66 72 65 65 28 65 6e |nts) {..|.free(en|
|00004130| 74 73 29 3b 0a 09 09 65 | 6e 74 73 20 3d 20 4e 55 |ts);...e|nts = NU|
|00004140| 4c 4c 3b 0a 09 7d 20 65 | 6c 73 65 20 69 66 20 28 |LL;..} e|lse if (|
|00004150| 70 74 72 20 3d 3d 20 73 | 74 72 70 74 72 29 20 7b |ptr == s|trptr) {|
|00004160| 0a 09 09 66 72 65 65 28 | 73 74 72 70 74 72 29 3b |...free(|strptr);|
|00004170| 0a 09 09 73 74 72 70 74 | 72 20 3d 20 4e 55 4c 4c |...strpt|r = NULL|
|00004180| 3b 0a 09 7d 20 65 6c 73 | 65 20 69 66 20 28 70 74 |;..} els|e if (pt|
|00004190| 72 20 3d 3d 20 28 63 68 | 61 72 20 2a 29 73 79 6d |r == (ch|ar *)sym|
|000041a0| 70 74 72 29 20 7b 0a 09 | 09 66 72 65 65 28 73 79 |ptr) {..|.free(sy|
|000041b0| 6d 70 74 72 29 3b 0a 09 | 09 73 79 6d 70 74 72 20 |mptr);..|.symptr |
|000041c0| 3d 20 4e 55 4c 4c 3b 0a | 09 7d 20 65 6c 73 65 20 |= NULL;.|.} else |
|000041d0| 69 66 20 28 70 74 72 20 | 3d 3d 20 69 64 70 74 72 |if (ptr |== idptr|
|000041e0| 29 20 7b 0a 09 09 66 72 | 65 65 28 69 64 70 74 72 |) {...fr|ee(idptr|
|000041f0| 29 3b 0a 09 09 69 64 70 | 74 72 20 3d 20 4e 55 4c |);...idp|tr = NUL|
|00004200| 4c 3b 0a 09 7d 20 65 6c | 73 65 20 69 66 20 28 70 |L;..} el|se if (p|
|00004210| 74 72 20 3d 3d 20 28 63 | 68 61 72 20 2a 29 61 6f |tr == (c|har *)ao|
|00004220| 66 68 64 72 29 20 7b 0a | 09 09 66 72 65 65 28 61 |fhdr) {.|..free(a|
|00004230| 6f 66 68 64 72 29 3b 0a | 09 09 61 6f 66 68 64 72 |ofhdr);.|..aofhdr|
|00004240| 20 3d 20 4e 55 4c 4c 3b | 0a 09 7d 20 65 6c 73 65 | = NULL;|..} else|
|00004250| 0a 09 09 72 65 74 75 72 | 6e 20 28 2d 31 29 3b 0a |...retur|n (-1);.|
|00004260| 09 72 65 74 75 72 6e 20 | 28 30 29 3b 0a 7d 09 0a |.return |(0);.}..|
|00004270| 0a 2f 2a 0a 20 2a 20 72 | 65 61 64 20 69 6e 20 74 |./*. * r|ead in t|
|00004280| 68 65 20 63 68 75 6e 6b | 20 65 6e 74 72 69 65 73 |he chunk| entries|
|00004290| 0a 20 2a 2f 0a 73 74 72 | 75 63 74 20 63 68 75 6e |. */.str|uct chun|
|000042a0| 6b 65 6e 74 20 2a 0a 72 | 65 61 64 5f 63 68 75 6e |kent *.r|ead_chun|
|000042b0| 6b 65 6e 74 73 28 69 66 | 70 2c 20 68 64 72 29 0a |kents(if|p, hdr).|
|000042c0| 09 46 49 4c 45 20 2a 69 | 66 70 3b 0a 09 73 74 72 |.FILE *i|fp;..str|
|000042d0| 75 63 74 20 63 68 75 6e | 6b 68 64 72 20 2a 68 64 |uct chun|khdr *hd|
|000042e0| 72 3b 0a 7b 0a 09 72 65 | 67 69 73 74 65 72 20 69 |r;.{..re|gister i|
|000042f0| 3b 0a 0a 09 69 66 20 28 | 65 6e 74 73 29 0a 09 09 |;...if (|ents)...|
|00004300| 66 72 65 65 28 65 6e 74 | 73 29 3b 0a 09 65 6e 74 |free(ent|s);..ent|
|00004310| 73 20 3d 20 28 73 74 72 | 75 63 74 20 63 68 75 6e |s = (str|uct chun|
|00004320| 6b 65 6e 74 20 2a 29 6d | 61 6c 6c 6f 63 28 0a 09 |kent *)m|alloc(..|
|00004330| 20 20 20 20 73 69 7a 65 | 6f 66 28 73 74 72 75 63 | size|of(struc|
|00004340| 74 20 63 68 75 6e 6b 65 | 6e 74 29 20 2a 20 68 64 |t chunke|nt) * hd|
|00004350| 72 2d 3e 6d 61 78 63 68 | 75 6e 6b 73 29 3b 0a 09 |r->maxch|unks);..|
|00004360| 69 66 20 28 21 65 6e 74 | 73 29 20 7b 0a 09 09 65 |if (!ent|s) {...e|
|00004370| 72 72 6f 72 28 22 6d 65 | 6d 6f 72 79 20 65 78 68 |rror("me|mory exh|
|00004380| 61 75 73 74 65 64 22 29 | 3b 0a 09 09 61 62 6f 72 |austed")|;...abor|
|00004390| 74 28 29 3b 0a 09 7d 0a | 09 09 0a 09 66 73 65 65 |t();..}.|....fsee|
|000043a0| 6b 28 69 66 70 2c 20 73 | 69 7a 65 6f 66 28 73 74 |k(ifp, s|izeof(st|
|000043b0| 72 75 63 74 20 63 68 75 | 6e 6b 68 64 72 29 2c 20 |ruct chu|nkhdr), |
|000043c0| 30 29 3b 0a 09 66 6f 72 | 20 28 69 20 3d 20 30 3b |0);..for| (i = 0;|
|000043d0| 20 69 20 3c 20 68 64 72 | 2d 3e 6e 75 6d 63 68 75 | i < hdr|->numchu|
|000043e0| 6e 6b 73 3b 20 69 2b 2b | 29 20 7b 0a 09 09 66 72 |nks; i++|) {...fr|
|000043f0| 65 61 64 28 65 6e 74 73 | 5b 69 5d 2e 63 68 75 6e |ead(ents|[i].chun|
|00004400| 6b 69 64 2c 20 31 2c 20 | 38 2c 20 69 66 70 29 3b |kid, 1, |8, ifp);|
|00004410| 0a 09 09 65 6e 74 73 5b | 69 5d 2e 6f 66 66 73 65 |...ents[|i].offse|
|00004420| 74 20 3d 20 72 65 61 64 | 5f 77 6f 72 64 28 69 66 |t = read|_word(if|
|00004430| 70 29 3b 0a 09 09 65 6e | 74 73 5b 69 5d 2e 73 69 |p);...en|ts[i].si|
|00004440| 7a 65 20 3d 20 72 65 61 | 64 5f 77 6f 72 64 28 69 |ze = rea|d_word(i|
|00004450| 66 70 29 3b 0a 09 7d 0a | 0a 09 72 65 74 75 72 6e |fp);..}.|..return|
|00004460| 20 28 63 68 65 63 6b 5f | 73 74 72 65 61 6d 28 69 | (check_|stream(i|
|00004470| 66 70 29 20 21 3d 20 46 | 52 57 45 52 52 20 3f 20 |fp) != F|RWERR ? |
|00004480| 65 6e 74 73 20 3a 20 4e | 55 4c 4c 29 3b 0a 7d 0a |ents : N|ULL);.}.|
|00004490| 0a 2f 2a 0a 20 2a 20 72 | 65 61 64 20 69 6e 20 74 |./*. * r|ead in t|
|000044a0| 68 65 20 73 74 72 69 6e | 67 20 74 61 62 6c 65 0a |he strin|g table.|
|000044b0| 20 2a 2f 0a 63 68 61 72 | 20 2a 0a 72 65 61 64 5f | */.char| *.read_|
|000044c0| 73 74 72 69 6e 67 74 61 | 62 28 69 66 70 2c 20 73 |stringta|b(ifp, s|
|000044d0| 74 72 65 6e 74 29 0a 09 | 46 49 4c 45 20 2a 69 66 |trent)..|FILE *if|
|000044e0| 70 3b 0a 09 73 74 72 75 | 63 74 20 63 68 75 6e 6b |p;..stru|ct chunk|
|000044f0| 65 6e 74 20 2a 73 74 72 | 65 6e 74 3b 0a 7b 0a 09 |ent *str|ent;.{..|
|00004500| 69 66 20 28 73 74 72 70 | 74 72 29 0a 09 09 66 72 |if (strp|tr)...fr|
|00004510| 65 65 28 73 74 72 70 74 | 72 29 3b 0a 09 73 74 72 |ee(strpt|r);..str|
|00004520| 70 74 72 20 3d 20 6d 61 | 6c 6c 6f 63 28 73 74 72 |ptr = ma|lloc(str|
|00004530| 65 6e 74 2d 3e 73 69 7a | 65 29 3b 0a 09 69 66 20 |ent->siz|e);..if |
|00004540| 28 21 73 74 72 70 74 72 | 29 20 7b 0a 09 09 65 72 |(!strptr|) {...er|
|00004550| 72 6f 72 28 22 6d 65 6d | 6f 72 79 20 65 78 68 61 |ror("mem|ory exha|
|00004560| 75 73 74 65 64 22 29 3b | 0a 09 09 61 62 6f 72 74 |usted");|...abort|
|00004570| 28 29 3b 0a 09 7d 0a 09 | 0a 09 66 73 65 65 6b 28 |();..}..|..fseek(|
|00004580| 69 66 70 2c 20 73 74 72 | 65 6e 74 2d 3e 6f 66 66 |ifp, str|ent->off|
|00004590| 73 65 74 2c 20 30 29 3b | 0a 09 2a 28 57 6f 72 64 |set, 0);|..*(Word|
|000045a0| 20 2a 29 73 74 72 70 74 | 72 20 3d 20 72 65 61 64 | *)strpt|r = read|
|000045b0| 5f 77 6f 72 64 28 69 66 | 70 29 3b 09 2f 2a 20 73 |_word(if|p);./* s|
|000045c0| 69 7a 65 20 69 6e 20 31 | 73 74 20 77 6f 72 64 20 |ize in 1|st word |
|000045d0| 2a 2f 0a 09 66 72 65 61 | 64 28 73 74 72 70 74 72 |*/..frea|d(strptr|
|000045e0| 20 2b 20 34 2c 20 31 2c | 20 28 69 6e 74 29 73 74 | + 4, 1,| (int)st|
|000045f0| 72 65 6e 74 2d 3e 73 69 | 7a 65 20 2d 20 34 2c 20 |rent->si|ze - 4, |
|00004600| 69 66 70 29 3b 0a 0a 09 | 72 65 74 75 72 6e 20 28 |ifp);...|return (|
|00004610| 63 68 65 63 6b 5f 73 74 | 72 65 61 6d 28 69 66 70 |check_st|ream(ifp|
|00004620| 29 20 21 3d 20 46 52 57 | 45 52 52 20 3f 20 73 74 |) != FRW|ERR ? st|
|00004630| 72 70 74 72 20 3a 20 4e | 55 4c 4c 29 3b 0a 7d 0a |rptr : N|ULL);.}.|
|00004640| 0a 2f 2a 0a 20 2a 20 72 | 65 61 64 20 69 6e 20 74 |./*. * r|ead in t|
|00004650| 68 65 20 73 79 6d 62 6f | 6c 20 74 61 62 6c 65 0a |he symbo|l table.|
|00004660| 20 2a 2f 0a 73 74 72 75 | 63 74 20 73 79 6d 62 6f | */.stru|ct symbo|
|00004670| 6c 20 2a 0a 72 65 61 64 | 5f 73 79 6d 62 6f 6c 74 |l *.read|_symbolt|
|00004680| 61 62 28 69 66 70 2c 20 | 73 79 6d 65 6e 74 2c 20 |ab(ifp, |syment, |
|00004690| 6e 75 6d 73 79 6d 73 29 | 0a 09 46 49 4c 45 20 2a |numsyms)|..FILE *|
|000046a0| 69 66 70 3b 0a 09 73 74 | 72 75 63 74 20 63 68 75 |ifp;..st|ruct chu|
|000046b0| 6e 6b 65 6e 74 20 2a 73 | 79 6d 65 6e 74 3b 0a 09 |nkent *s|yment;..|
|000046c0| 69 6e 74 20 6e 75 6d 73 | 79 6d 73 3b 0a 7b 0a 09 |int nums|yms;.{..|
|000046d0| 72 65 67 69 73 74 65 72 | 20 69 3b 0a 0a 09 69 66 |register| i;...if|
|000046e0| 20 28 73 79 6d 70 74 72 | 29 0a 09 09 66 72 65 65 | (symptr|)...free|
|000046f0| 28 73 79 6d 70 74 72 29 | 3b 0a 09 73 79 6d 70 74 |(symptr)|;..sympt|
|00004700| 72 20 3d 20 28 73 74 72 | 75 63 74 20 73 79 6d 62 |r = (str|uct symb|
|00004710| 6f 6c 20 2a 29 6d 61 6c | 6c 6f 63 28 6e 75 6d 73 |ol *)mal|loc(nums|
|00004720| 79 6d 73 20 2a 20 73 69 | 7a 65 6f 66 28 73 74 72 |yms * si|zeof(str|
|00004730| 75 63 74 20 73 79 6d 62 | 6f 6c 29 29 3b 0a 09 69 |uct symb|ol));..i|
|00004740| 66 20 28 21 73 79 6d 70 | 74 72 29 20 7b 0a 09 09 |f (!symp|tr) {...|
|00004750| 65 72 72 6f 72 28 22 6d | 65 6d 6f 72 79 20 65 78 |error("m|emory ex|
|00004760| 68 61 75 73 74 65 64 22 | 29 3b 0a 09 09 61 62 6f |hausted"|);...abo|
|00004770| 72 74 28 29 3b 0a 09 7d | 0a 09 0a 09 66 73 65 65 |rt();..}|....fsee|
|00004780| 6b 28 69 66 70 2c 20 73 | 79 6d 65 6e 74 2d 3e 6f |k(ifp, s|yment->o|
|00004790| 66 66 73 65 74 2c 20 30 | 29 3b 0a 09 66 6f 72 20 |ffset, 0|);..for |
|000047a0| 28 69 20 3d 20 30 3b 20 | 69 20 3c 20 6e 75 6d 73 |(i = 0; |i < nums|
|000047b0| 79 6d 73 3b 20 69 2b 2b | 29 20 7b 0a 09 09 73 79 |yms; i++|) {...sy|
|000047c0| 6d 70 74 72 5b 69 5d 2e | 6e 61 6d 65 20 3d 20 72 |mptr[i].|name = r|
|000047d0| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 09 |ead_word|(ifp);..|
|000047e0| 09 73 79 6d 70 74 72 5b | 69 5d 2e 66 6c 61 67 73 |.symptr[|i].flags|
|000047f0| 20 3d 20 72 65 61 64 5f | 77 6f 72 64 28 69 66 70 | = read_|word(ifp|
|00004800| 29 3b 0a 09 09 73 79 6d | 70 74 72 5b 69 5d 2e 76 |);...sym|ptr[i].v|
|00004810| 61 6c 75 65 20 3d 20 72 | 65 61 64 5f 77 6f 72 64 |alue = r|ead_word|
|00004820| 28 69 66 70 29 3b 0a 09 | 09 73 79 6d 70 74 72 5b |(ifp);..|.symptr[|
|00004830| 69 5d 2e 61 72 65 61 6e | 61 6d 65 20 3d 20 72 65 |i].arean|ame = re|
|00004840| 61 64 5f 77 6f 72 64 28 | 69 66 70 29 3b 0a 09 7d |ad_word(|ifp);..}|
|00004850| 0a 0a 09 72 65 74 75 72 | 6e 20 28 63 68 65 63 6b |...retur|n (check|
|00004860| 5f 73 74 72 65 61 6d 28 | 69 66 70 29 20 21 3d 20 |_stream(|ifp) != |
|00004870| 46 52 57 45 52 52 20 3f | 20 73 79 6d 70 74 72 20 |FRWERR ?| symptr |
|00004880| 3a 20 4e 55 4c 4c 29 3b | 0a 7d 0a 0a 2f 2a 0a 20 |: NULL);|.}../*. |
|00004890| 2a 20 72 65 61 64 20 69 | 6e 20 74 68 65 20 69 64 |* read i|n the id|
|000048a0| 65 6e 74 69 66 69 63 61 | 74 69 6f 6e 20 63 68 75 |entifica|tion chu|
|000048b0| 6e 6b 0a 20 2a 2f 0a 63 | 68 61 72 20 2a 0a 72 65 |nk. */.c|har *.re|
|000048c0| 61 64 5f 69 64 65 6e 74 | 28 69 66 70 2c 20 69 64 |ad_ident|(ifp, id|
|000048d0| 65 6e 74 29 0a 09 46 49 | 4c 45 20 2a 69 66 70 3b |ent)..FI|LE *ifp;|
|000048e0| 0a 09 73 74 72 75 63 74 | 20 63 68 75 6e 6b 65 6e |..struct| chunken|
|000048f0| 74 20 2a 69 64 65 6e 74 | 3b 0a 7b 0a 09 69 66 20 |t *ident|;.{..if |
|00004900| 28 69 64 70 74 72 29 0a | 09 09 66 72 65 65 28 69 |(idptr).|..free(i|
|00004910| 64 70 74 72 29 3b 0a 09 | 69 64 70 74 72 20 3d 20 |dptr);..|idptr = |
|00004920| 6d 61 6c 6c 6f 63 28 69 | 64 65 6e 74 2d 3e 73 69 |malloc(i|dent->si|
|00004930| 7a 65 29 3b 0a 09 69 66 | 20 28 21 69 64 70 74 72 |ze);..if| (!idptr|
|00004940| 29 20 7b 0a 09 09 65 72 | 72 6f 72 28 22 6d 65 6d |) {...er|ror("mem|
|00004950| 6f 72 79 20 65 78 68 61 | 75 73 74 65 64 22 29 3b |ory exha|usted");|
|00004960| 0a 09 09 61 62 6f 72 74 | 28 29 3b 0a 09 7d 0a 0a |...abort|();..}..|
|00004970| 09 66 73 65 65 6b 28 69 | 66 70 2c 20 28 6c 6f 6e |.fseek(i|fp, (lon|
|00004980| 67 29 69 64 65 6e 74 2d | 3e 6f 66 66 73 65 74 2c |g)ident-|>offset,|
|00004990| 20 30 29 3b 0a 09 66 72 | 65 61 64 28 69 64 70 74 | 0);..fr|ead(idpt|
|000049a0| 72 2c 20 31 2c 20 28 69 | 6e 74 29 69 64 65 6e 74 |r, 1, (i|nt)ident|
|000049b0| 2d 3e 73 69 7a 65 2c 20 | 69 66 70 29 3b 0a 0a 09 |->size, |ifp);...|
|000049c0| 72 65 74 75 72 6e 20 28 | 63 68 65 63 6b 5f 73 74 |return (|check_st|
|000049d0| 72 65 61 6d 28 69 66 70 | 29 20 21 3d 20 46 52 57 |ream(ifp|) != FRW|
|000049e0| 45 52 52 20 3f 20 69 64 | 70 74 72 20 3a 20 4e 55 |ERR ? id|ptr : NU|
|000049f0| 4c 4c 29 3b 0a 7d 0a 0a | 2f 2a 0a 20 2a 20 72 65 |LL);.}..|/*. * re|
|00004a00| 61 64 20 69 6e 20 74 68 | 65 20 41 4f 46 20 68 65 |ad in th|e AOF he|
|00004a10| 61 64 65 72 0a 20 2a 2f | 0a 73 74 72 75 63 74 20 |ader. */|.struct |
|00004a20| 61 6f 66 68 64 72 20 2a | 0a 72 65 61 64 5f 61 6f |aofhdr *|.read_ao|
|00004a30| 66 68 64 72 28 69 66 70 | 2c 20 68 64 72 65 6e 74 |fhdr(ifp|, hdrent|
|00004a40| 29 0a 09 46 49 4c 45 20 | 2a 69 66 70 3b 0a 09 73 |)..FILE |*ifp;..s|
|00004a50| 74 72 75 63 74 20 63 68 | 75 6e 6b 65 6e 74 20 2a |truct ch|unkent *|
|00004a60| 68 64 72 65 6e 74 3b 0a | 7b 0a 09 72 65 67 69 73 |hdrent;.|{..regis|
|00004a70| 74 65 72 20 69 3b 0a 09 | 73 74 72 75 63 74 20 61 |ter i;..|struct a|
|00004a80| 72 65 61 68 64 72 20 2a | 61 72 65 61 68 64 72 3b |reahdr *|areahdr;|
|00004a90| 0a 0a 09 69 66 20 28 61 | 6f 66 68 64 72 29 0a 09 |...if (a|ofhdr)..|
|00004aa0| 09 66 72 65 65 28 61 6f | 66 68 64 72 29 3b 0a 09 |.free(ao|fhdr);..|
|00004ab0| 61 6f 66 68 64 72 20 3d | 20 28 73 74 72 75 63 74 |aofhdr =| (struct|
|00004ac0| 20 61 6f 66 68 64 72 20 | 2a 29 6d 61 6c 6c 6f 63 | aofhdr |*)malloc|
|00004ad0| 28 68 64 72 65 6e 74 2d | 3e 73 69 7a 65 29 3b 0a |(hdrent-|>size);.|
|00004ae0| 09 69 66 20 28 21 61 6f | 66 68 64 72 29 20 7b 0a |.if (!ao|fhdr) {.|
|00004af0| 09 09 65 72 72 6f 72 28 | 22 6d 65 6d 6f 72 79 20 |..error(|"memory |
|00004b00| 65 78 68 61 75 73 74 65 | 64 22 29 3b 0a 09 09 61 |exhauste|d");...a|
|00004b10| 62 6f 72 74 28 29 3b 0a | 09 7d 0a 0a 09 2f 2a 20 |bort();.|.}.../* |
|00004b20| 72 65 61 64 2d 69 6e 20 | 77 68 6f 6c 65 20 6f 66 |read-in |whole of|
|00004b30| 20 41 4f 46 20 68 65 61 | 64 65 72 20 2a 2f 0a 09 | AOF hea|der */..|
|00004b40| 66 73 65 65 6b 28 69 66 | 70 2c 20 68 64 72 65 6e |fseek(if|p, hdren|
|00004b50| 74 2d 3e 6f 66 66 73 65 | 74 2c 20 30 29 3b 0a 09 |t->offse|t, 0);..|
|00004b60| 61 6f 66 68 64 72 2d 3e | 66 69 6c 65 74 79 70 65 |aofhdr->|filetype|
|00004b70| 20 3d 20 72 65 61 64 5f | 77 6f 72 64 28 69 66 70 | = read_|word(ifp|
|00004b80| 29 3b 0a 09 61 6f 66 68 | 64 72 2d 3e 76 65 72 73 |);..aofh|dr->vers|
|00004b90| 69 6f 6e 20 3d 20 72 65 | 61 64 5f 77 6f 72 64 28 |ion = re|ad_word(|
|00004ba0| 69 66 70 29 3b 0a 09 61 | 6f 66 68 64 72 2d 3e 6e |ifp);..a|ofhdr->n|
|00004bb0| 75 6d 61 72 65 61 73 20 | 3d 20 72 65 61 64 5f 77 |umareas |= read_w|
|00004bc0| 6f 72 64 28 69 66 70 29 | 3b 0a 09 61 6f 66 68 64 |ord(ifp)|;..aofhd|
|00004bd0| 72 2d 3e 6e 75 6d 73 79 | 6d 73 20 3d 20 72 65 61 |r->numsy|ms = rea|
|00004be0| 64 5f 77 6f 72 64 28 69 | 66 70 29 3b 0a 09 61 6f |d_word(i|fp);..ao|
|00004bf0| 66 68 64 72 2d 3e 65 6e | 74 72 79 61 72 65 61 20 |fhdr->en|tryarea |
|00004c00| 3d 20 72 65 61 64 5f 77 | 6f 72 64 28 69 66 70 29 |= read_w|ord(ifp)|
|00004c10| 3b 0a 09 61 6f 66 68 64 | 72 2d 3e 65 6e 74 72 79 |;..aofhd|r->entry|
|00004c20| 6f 66 66 73 65 74 20 3d | 20 72 65 61 64 5f 77 6f |offset =| read_wo|
|00004c30| 72 64 28 69 66 70 29 3b | 0a 09 61 72 65 61 68 64 |rd(ifp);|..areahd|
|00004c40| 72 20 3d 20 28 73 74 72 | 75 63 74 20 61 72 65 61 |r = (str|uct area|
|00004c50| 68 64 72 20 2a 29 28 61 | 6f 66 68 64 72 20 2b 20 |hdr *)(a|ofhdr + |
|00004c60| 73 69 7a 65 6f 66 28 73 | 74 72 75 63 74 20 61 6f |sizeof(s|truct ao|
|00004c70| 66 68 64 72 29 29 3b 0a | 09 66 6f 72 20 28 69 20 |fhdr));.|.for (i |
|00004c80| 3d 20 30 3b 20 69 20 3c | 20 61 6f 66 68 64 72 2d |= 0; i <| aofhdr-|
|00004c90| 3e 6e 75 6d 61 72 65 61 | 73 3b 20 69 2b 2b 29 20 |>numarea|s; i++) |
|00004ca0| 7b 0a 09 09 61 72 65 61 | 68 64 72 5b 69 5d 2e 6e |{...area|hdr[i].n|
|00004cb0| 61 6d 65 20 3d 20 72 65 | 61 64 5f 77 6f 72 64 28 |ame = re|ad_word(|
|00004cc0| 69 66 70 29 3b 0a 09 09 | 61 72 65 61 68 64 72 5b |ifp);...|areahdr[|
|00004cd0| 69 5d 2e 66 6c 61 67 73 | 20 3d 20 72 65 61 64 5f |i].flags| = read_|
|00004ce0| 77 6f 72 64 28 69 66 70 | 29 3b 0a 09 09 61 72 65 |word(ifp|);...are|
|00004cf0| 61 68 64 72 5b 69 5d 2e | 73 69 7a 65 20 3d 20 72 |ahdr[i].|size = r|
|00004d00| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 09 |ead_word|(ifp);..|
|00004d10| 09 61 72 65 61 68 64 72 | 5b 69 5d 2e 6e 75 6d 72 |.areahdr|[i].numr|
|00004d20| 65 6c 6f 63 73 20 3d 20 | 72 65 61 64 5f 77 6f 72 |elocs = |read_wor|
|00004d30| 64 28 69 66 70 29 3b 0a | 09 09 61 72 65 61 68 64 |d(ifp);.|..areahd|
|00004d40| 72 5b 69 5d 2e 72 65 73 | 65 72 76 65 64 20 3d 20 |r[i].res|erved = |
|00004d50| 72 65 61 64 5f 77 6f 72 | 64 28 69 66 70 29 3b 0a |read_wor|d(ifp);.|
|00004d60| 09 7d 0a 09 72 65 74 75 | 72 6e 20 28 63 68 65 63 |.}..retu|rn (chec|
|00004d70| 6b 5f 73 74 72 65 61 6d | 28 69 66 70 29 20 21 3d |k_stream|(ifp) !=|
|00004d80| 20 46 52 57 45 52 52 20 | 3f 20 61 6f 66 68 64 72 | FRWERR |? aofhdr|
|00004d90| 20 3a 20 4e 55 4c 4c 29 | 3b 0a 7d 0a 0a 2f 2a 0a | : NULL)|;.}../*.|
|00004da0| 20 2a 20 72 65 61 64 20 | 69 6e 20 61 20 72 65 6c | * read |in a rel|
|00004db0| 6f 63 61 74 69 6f 6e 20 | 64 69 72 65 63 74 69 76 |ocation |directiv|
|00004dc0| 65 0a 20 2a 2f 0a 73 74 | 72 75 63 74 20 72 65 6c |e. */.st|ruct rel|
|00004dd0| 6f 63 20 2a 0a 72 65 61 | 64 5f 72 65 6c 6f 63 28 |oc *.rea|d_reloc(|
|00004de0| 69 66 70 29 0a 09 46 49 | 4c 45 20 2a 69 66 70 3b |ifp)..FI|LE *ifp;|
|00004df0| 0a 7b 0a 09 73 74 61 74 | 69 63 20 73 74 72 75 63 |.{..stat|ic struc|
|00004e00| 74 20 72 65 6c 6f 63 20 | 72 65 6c 6f 63 3b 0a 0a |t reloc |reloc;..|
|00004e10| 09 72 65 6c 6f 63 2e 6f | 66 66 73 65 74 20 3d 20 |.reloc.o|ffset = |
|00004e20| 72 65 61 64 5f 77 6f 72 | 64 28 69 66 70 29 3b 0a |read_wor|d(ifp);.|
|00004e30| 09 72 65 6c 6f 63 2e 66 | 6c 61 67 73 20 3d 20 72 |.reloc.f|lags = r|
|00004e40| 65 61 64 5f 77 6f 72 64 | 28 69 66 70 29 3b 0a 09 |ead_word|(ifp);..|
|00004e50| 72 65 74 75 72 6e 20 28 | 63 68 65 63 6b 5f 73 74 |return (|check_st|
|00004e60| 72 65 61 6d 28 69 66 70 | 29 20 21 3d 20 46 52 57 |ream(ifp|) != FRW|
|00004e70| 45 52 52 20 3f 20 26 72 | 65 6c 6f 63 20 3a 20 4e |ERR ? &r|eloc : N|
|00004e80| 55 4c 4c 29 3b 0a 7d 0a | 46 69 6c 65 44 61 74 61 |ULL);.}.|FileData|
|00004e90| 82 6d 61 69 6e 00 45 00 | 00 00 00 00 f2 09 00 00 |.main.E.|........|
|00004ea0| 44 ff ff ff 58 cd ac 3f | 03 00 43 b1 2f 2a 09 09 |D...X..?|..C./*..|
|00004eb0| 09 09 09 20 20 0a 20 2a | 20 6d 61 69 6e 20 66 75 |... . *| main fu|
|00004ec0| 6e 63 74 69 6f 6e 0a 20 | 2a 0a 20 2a 20 41 6e 64 |nction. |*. * And|
|00004ed0| 79 20 44 75 70 6c 61 69 | 6e 2c 20 42 54 20 43 75 |y Duplai|n, BT Cu|
|00004ee0| 73 74 6f 6d 65 72 20 53 | 79 73 74 65 6d 73 2c 20 |stomer S|ystems, |
|00004ef0| 42 72 69 67 68 74 6f 6e | 2c 20 55 4b 2e 20 20 64 |Brighton|, UK. d|
|00004f00| 75 70 6c 61 69 6e 40 62 | 74 63 73 2e 62 74 2e 63 |uplain@b|tcs.bt.c|
|00004f10| 6f 2e 75 6b 0a 20 2a 2f | 0a 0a 23 69 6e 63 6c 75 |o.uk. */|..#inclu|
|00004f20| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0a 23 69 6e |de <stdi|o.h>.#in|
|00004f30| 63 6c 75 64 65 20 3c 63 | 74 79 70 65 2e 68 3e 0a |clude <c|type.h>.|
|00004f40| 23 69 6e 63 6c 75 64 65 | 20 22 64 65 63 61 6f 66 |#include| "decaof|
|00004f50| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 63 70 |.h".#inc|lude "cp|
|00004f60| 72 6f 74 6f 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 |roto.h".|#include|
|00004f70| 20 22 69 6f 2e 68 22 0a | 23 69 6e 63 6c 75 64 65 | "io.h".|#include|
|00004f80| 20 22 6d 69 73 63 2e 68 | 22 0a 23 69 6e 63 6c 75 | "misc.h|".#inclu|
|00004f90| 64 65 20 22 65 72 72 6f | 72 2e 68 22 0a 0a 63 68 |de "erro|r.h"..ch|
|00004fa0| 61 72 20 2a 6f 75 72 6e | 61 6d 65 3b 09 09 09 2f |ar *ourn|ame;.../|
|00004fb0| 2a 20 70 72 6f 67 72 61 | 6d 20 6e 61 6d 65 20 2a |* progra|m name *|
|00004fc0| 2f 0a 63 68 61 72 20 2a | 2a 66 69 6c 65 73 3b 09 |/.char *|*files;.|
|00004fd0| 09 09 2f 2a 20 6c 69 73 | 74 20 6f 66 20 66 69 6c |../* lis|t of fil|
|00004fe0| 65 73 20 74 6f 20 64 65 | 63 6f 64 65 20 2a 2f 0a |es to de|code */.|
|00004ff0| 69 6e 74 20 6e 66 69 6c | 65 73 3b 09 09 09 2f 2a |int nfil|es;.../*|
|00005000| 20 6e 75 6d 62 65 72 20 | 6f 66 20 66 69 6c 65 73 | number |of files|
|00005010| 20 69 6e 20 2a 2a 66 69 | 6c 65 73 20 2a 2f 0a 0a | in **fi|les */..|
|00005020| 73 68 6f 72 74 20 61 72 | 65 61 5f 63 6f 6e 74 65 |short ar|ea_conte|
|00005030| 6e 74 73 20 3d 20 30 3b | 09 2f 2a 20 70 72 69 6e |nts = 0;|./* prin|
|00005040| 74 20 61 72 65 61 20 63 | 6f 6e 74 65 6e 74 73 20 |t area c|ontents |
|00005050| 69 6e 20 68 65 78 20 28 | 2d 61 29 20 2a 2f 0a 73 |in hex (|-a) */.s|
|00005060| 68 6f 72 74 20 61 72 65 | 61 5f 64 65 63 20 3d 20 |hort are|a_dec = |
|00005070| 30 3b 09 09 2f 2a 20 70 | 72 69 6e 74 20 61 72 65 |0;../* p|rint are|
|00005080| 61 20 64 65 63 6c 61 72 | 61 74 69 6f 6e 73 20 28 |a declar|ations (|
|00005090| 2d 64 29 20 2a 2f 0a 73 | 68 6f 72 74 20 72 65 6c |-d) */.s|hort rel|
|000050a0| 6f 63 5f 64 69 72 20 3d | 20 30 3b 09 09 2f 2a 20 |oc_dir =| 0;../* |
|000050b0| 70 72 69 6e 74 20 72 65 | 6c 6f 63 61 74 69 6f 6e |print re|location|
|000050c0| 20 64 69 72 65 63 74 69 | 76 65 73 20 28 2d 72 29 | directi|ves (-r)|
|000050d0| 20 2a 2f 0a 73 68 6f 72 | 74 20 64 65 62 75 67 20 | */.shor|t debug |
|000050e0| 3d 20 30 3b 09 09 2f 2a | 20 70 72 69 6e 74 20 64 |= 0;../*| print d|
|000050f0| 65 62 75 67 67 69 6e 67 | 20 61 72 65 61 73 20 28 |ebugging| areas (|
|00005100| 2d 67 29 20 2a 2f 0a 73 | 68 6f 72 74 20 73 79 6d |-g) */.s|hort sym|
|00005110| 74 61 62 20 3d 20 30 3b | 09 09 2f 2a 20 70 72 69 |tab = 0;|../* pri|
|00005120| 6e 74 20 73 79 6d 62 6f | 6c 20 74 61 62 6c 65 20 |nt symbo|l table |
|00005130| 28 2d 73 29 20 2a 2f 0a | 73 68 6f 72 74 20 73 74 |(-s) */.|short st|
|00005140| 72 74 61 62 20 3d 20 30 | 3b 09 09 2f 2a 20 70 72 |rtab = 0|;../* pr|
|00005150| 69 6e 74 20 73 74 72 69 | 6e 67 20 74 61 62 6c 65 |int stri|ng table|
|00005160| 20 28 2d 74 29 20 2a 2f | 0a 0a 73 74 61 74 69 63 | (-t) */|..static|
|00005170| 20 69 6e 74 20 67 6f 74 | 61 72 67 20 3d 20 30 3b | int got|arg = 0;|
|00005180| 09 09 2f 2a 20 6e 6f 6e | 2d 7a 65 72 6f 20 69 66 |../* non|-zero if|
|00005190| 20 73 6f 6d 65 20 66 6c | 61 67 73 20 77 68 65 72 | some fl|ags wher|
|000051a0| 65 20 65 6e 74 65 72 65 | 64 20 2a 2f 0a 0a 73 74 |e entere|d */..st|
|000051b0| 61 74 69 63 20 76 6f 69 | 64 20 75 73 61 67 65 20 |atic voi|d usage |
|000051c0| 50 5f 5f 28 28 76 6f 69 | 64 29 29 3b 0a 0a 69 6e |P__((voi|d));..in|
|000051d0| 74 0a 6d 61 69 6e 28 61 | 72 67 63 2c 20 61 72 67 |t.main(a|rgc, arg|
|000051e0| 76 29 0a 09 69 6e 74 20 | 61 72 67 63 3b 0a 09 63 |v)..int |argc;..c|
|000051f0| 68 61 72 20 2a 2a 61 72 | 67 76 3b 0a 7b 0a 09 6f |har **ar|gv;.{..o|
|00005200| 75 72 6e 61 6d 65 20 3d | 20 62 61 73 65 6e 61 6d |urname =| basenam|
|00005210| 65 28 2a 61 72 67 76 2b | 2b 29 3b 0a 09 61 72 67 |e(*argv+|+);..arg|
|00005220| 63 2d 2d 3b 0a 0a 09 2f | 2a 0a 09 20 2a 20 70 61 |c--;.../|*.. * pa|
|00005230| 72 73 65 20 61 72 67 73 | 20 28 63 61 6e 27 74 20 |rse args| (can't |
|00005240| 75 73 65 20 67 65 74 6f | 70 74 28 29 20 27 63 6f |use geto|pt() 'co|
|00005250| 73 20 6e 6f 74 20 61 6c | 6c 20 43 20 6c 69 62 72 |s not al|l C libr|
|00005260| 61 72 69 65 73 20 68 61 | 76 65 20 69 74 29 0a 09 |aries ha|ve it)..|
|00005270| 20 2a 2f 0a 09 77 68 69 | 6c 65 28 61 72 67 63 29 | */..whi|le(argc)|
|00005280| 20 7b 0a 09 09 69 6e 74 | 20 64 6f 6e 65 78 74 20 | {...int| donext |
|00005290| 3d 20 30 3b 0a 09 09 63 | 68 61 72 20 2a 61 72 67 |= 0;...c|har *arg|
|000052a0| 20 3d 20 2a 61 72 67 76 | 3b 0a 09 09 69 66 20 28 | = *argv|;...if (|
|000052b0| 2a 61 72 67 20 3d 3d 20 | 27 2d 27 29 20 7b 0a 09 |*arg == |'-') {..|
|000052c0| 09 09 63 68 61 72 20 63 | 3b 0a 09 09 09 77 68 69 |..char c|;....whi|
|000052d0| 6c 65 20 28 21 64 6f 6e | 65 78 74 20 26 26 20 21 |le (!don|ext && !|
|000052e0| 69 73 73 70 61 63 65 28 | 63 20 3d 20 2a 2b 2b 61 |isspace(|c = *++a|
|000052f0| 72 67 29 20 26 26 20 63 | 29 20 7b 0a 09 09 09 09 |rg) && c|) {.....|
|00005300| 73 77 69 74 63 68 28 63 | 29 20 7b 0a 09 09 09 09 |switch(c|) {.....|
|00005310| 63 61 73 65 20 27 62 27 | 3a 0a 09 09 09 09 09 61 |case 'b'|:......a|
|00005320| 72 65 61 5f 64 65 63 2b | 2b 3b 0a 09 09 09 09 09 |rea_dec+|+;......|
|00005330| 61 72 65 61 5f 63 6f 6e | 74 65 6e 74 73 20 3d 20 |area_con|tents = |
|00005340| 30 3b 0a 09 09 09 09 09 | 64 65 62 75 67 20 3d 20 |0;......|debug = |
|00005350| 30 3b 0a 09 09 09 09 09 | 72 65 6c 6f 63 5f 64 69 |0;......|reloc_di|
|00005360| 72 20 3d 20 30 3b 0a 09 | 09 09 09 09 73 79 6d 74 |r = 0;..|....symt|
|00005370| 61 62 20 3d 20 30 3b 0a | 09 09 09 09 09 73 74 72 |ab = 0;.|.....str|
|00005380| 74 61 62 20 3d 20 30 3b | 0a 09 09 09 09 09 67 6f |tab = 0;|......go|
|00005390| 74 61 72 67 2b 2b 3b 0a | 09 09 09 09 09 62 72 65 |targ++;.|.....bre|
|000053a0| 61 6b 3b 0a 09 09 09 09 | 63 61 73 65 20 27 61 27 |ak;.....|case 'a'|
|000053b0| 3a 0a 09 09 09 09 09 61 | 72 65 61 5f 63 6f 6e 74 |:......a|rea_cont|
|000053c0| 65 6e 74 73 2b 2b 3b 0a | 09 09 09 09 09 61 72 65 |ents++;.|.....are|
|000053d0| 61 5f 64 65 63 2b 2b 3b | 0a 09 09 09 09 09 67 6f |a_dec++;|......go|
|000053e0| 74 61 72 67 2b 2b 3b 0a | 09 09 09 09 09 62 72 65 |targ++;.|.....bre|
|000053f0| 61 6b 3b 0a 09 09 09 09 | 63 61 73 65 20 27 64 27 |ak;.....|case 'd'|
|00005400| 3a 0a 09 09 09 09 09 61 | 72 65 61 5f 64 65 63 2b |:......a|rea_dec+|
|00005410| 2b 3b 0a 09 09 09 09 09 | 67 6f 74 61 72 67 2b 2b |+;......|gotarg++|
|00005420| 3b 0a 09 09 09 09 09 62 | 72 65 61 6b 3b 0a 09 09 |;......b|reak;...|
|00005430| 09 09 63 61 73 65 20 27 | 72 27 3a 0a 09 09 09 09 |..case '|r':.....|
|00005440| 09 61 72 65 61 5f 64 65 | 63 2b 2b 3b 0a 09 09 09 |.area_de|c++;....|
|00005450| 09 09 72 65 6c 6f 63 5f | 64 69 72 2b 2b 3b 0a 09 |..reloc_|dir++;..|
|00005460| 09 09 09 09 67 6f 74 61 | 72 67 2b 2b 3b 0a 09 09 |....gota|rg++;...|
|00005470| 09 09 09 62 72 65 61 6b | 3b 0a 09 09 09 09 63 61 |...break|;.....ca|
|00005480| 73 65 20 27 67 27 3a 0a | 09 09 09 09 09 64 65 62 |se 'g':.|.....deb|
|00005490| 75 67 2b 2b 3b 0a 09 09 | 09 09 09 67 6f 74 61 72 |ug++;...|...gotar|
|000054a0| 67 2b 2b 3b 0a 09 09 09 | 09 09 62 72 65 61 6b 3b |g++;....|..break;|
|000054b0| 0a 09 09 09 09 63 61 73 | 65 20 27 73 27 3a 0a 09 |.....cas|e 's':..|
|000054c0| 09 09 09 09 73 79 6d 74 | 61 62 2b 2b 3b 0a 09 09 |....symt|ab++;...|
|000054d0| 09 09 09 67 6f 74 61 72 | 67 2b 2b 3b 0a 09 09 09 |...gotar|g++;....|
|000054e0| 09 09 62 72 65 61 6b 3b | 0a 09 09 09 09 63 61 73 |..break;|.....cas|
|000054f0| 65 20 27 74 27 3a 0a 09 | 09 09 09 09 73 74 72 74 |e 't':..|....strt|
|00005500| 61 62 2b 2b 3b 0a 09 09 | 09 09 09 67 6f 74 61 72 |ab++;...|...gotar|
|00005510| 67 2b 2b 3b 0a 09 09 09 | 09 09 62 72 65 61 6b 3b |g++;....|..break;|
|00005520| 0a 09 09 09 09 64 65 66 | 61 75 6c 74 3a 0a 09 09 |.....def|ault:...|
|00005530| 09 09 09 65 72 72 6f 72 | 28 22 75 6e 6b 6e 6f 77 |...error|("unknow|
|00005540| 6e 20 6f 70 74 69 6f 6e | 20 27 25 63 27 22 2c 20 |n option| '%c'", |
|00005550| 63 29 3b 0a 09 09 09 09 | 09 65 78 69 74 28 31 29 |c);.....|.exit(1)|
|00005560| 3b 0a 09 09 09 09 7d 0a | 09 09 09 7d 0a 09 09 09 |;.....}.|...}....|
|00005570| 61 72 67 76 2b 2b 3b 0a | 09 09 09 61 72 67 63 2d |argv++;.|...argc-|
|00005580| 2d 3b 0a 09 09 7d 20 65 | 6c 73 65 0a 09 09 09 62 |-;...} e|lse....b|
|00005590| 72 65 61 6b 3b 0a 09 7d | 0a 0a 09 69 66 20 28 21 |reak;..}|...if (!|
|000055a0| 61 72 67 63 29 0a 09 09 | 75 73 61 67 65 28 29 3b |argc)...|usage();|
|000055b0| 0a 09 09 0a 09 66 69 6c | 65 73 20 3d 20 61 72 67 |.....fil|es = arg|
|000055c0| 76 3b 0a 09 6e 66 69 6c | 65 73 20 3d 20 61 72 67 |v;..nfil|es = arg|
|000055d0| 63 3b 0a 0a 09 69 66 20 | 28 21 67 6f 74 61 72 67 |c;...if |(!gotarg|
|000055e0| 29 20 7b 0a 09 09 2f 2a | 20 73 65 74 2d 75 70 20 |) {.../*| set-up |
|000055f0| 64 65 66 61 75 6c 74 20 | 61 72 67 75 6d 65 6e 74 |default |argument|
|00005600| 73 20 2a 2f 0a 09 09 61 | 72 65 61 5f 64 65 63 2b |s */...a|rea_dec+|
|00005610| 2b 3b 0a 09 09 73 79 6d | 74 61 62 2b 2b 3b 0a 09 |+;...sym|tab++;..|
|00005620| 09 73 74 72 74 61 62 2b | 2b 3b 0a 09 7d 0a 0a 09 |.strtab+|+;..}...|
|00005630| 72 65 74 75 72 6e 28 64 | 65 63 6f 64 65 28 29 29 |return(d|ecode())|
|00005640| 3b 0a 7d 0a 0a 0a 2f 2a | 0a 20 2a 20 64 69 73 70 |;.}.../*|. * disp|
|00005650| 6c 61 79 20 70 72 6f 67 | 72 61 6d 20 75 73 61 67 |lay prog|ram usag|
|00005660| 65 20 61 6e 64 20 65 78 | 69 74 0a 20 2a 2f 0a 73 |e and ex|it. */.s|
|00005670| 74 61 74 69 63 20 76 6f | 69 64 0a 75 73 61 67 65 |tatic vo|id.usage|
|00005680| 28 29 0a 7b 0a 09 66 70 | 72 69 6e 74 66 28 73 74 |().{..fp|rintf(st|
|00005690| 64 65 72 72 2c 20 22 75 | 73 61 67 65 3a 20 25 73 |derr, "u|sage: %s|
|000056a0| 20 5b 6f 70 74 69 6f 6e | 73 5d 20 5b 66 69 6c 65 | [option|s] [file|
|000056b0| 20 2e 2e 2e 20 66 69 6c | 65 5d 5c 6e 22 2c 0a 09 | ... fil|e]\n",..|
|000056c0| 20 20 20 20 6f 75 72 6e | 61 6d 65 29 3b 0a 09 66 | ourn|ame);..f|
|000056d0| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|000056e0| 20 20 20 20 20 20 20 77 | 68 65 72 65 20 6f 70 74 | w|here opt|
|000056f0| 69 6f 6e 73 20 61 72 65 | 3a 5c 6e 22 29 3b 0a 09 |ions are|:\n");..|
|00005700| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|00005710| 22 20 20 20 20 20 20 20 | 2d 62 20 70 72 69 6e 74 |" |-b print|
|00005720| 20 6f 6e 6c 79 20 74 68 | 65 20 61 72 65 61 20 64 | only th|e area d|
|00005730| 65 63 6c 61 72 61 74 69 | 6f 6e 73 5c 6e 22 29 3b |eclarati|ons\n");|
|00005740| 0a 09 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 |..fprint|f(stderr|
|00005750| 2c 20 22 20 20 20 20 20 | 20 20 2d 61 20 70 72 69 |, " | -a pri|
|00005760| 6e 74 20 61 72 65 61 20 | 63 6f 6e 74 65 6e 74 73 |nt area |contents|
|00005770| 20 69 6e 20 68 65 78 5c | 6e 22 29 3b 0a 09 66 70 | in hex\|n");..fp|
|00005780| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 20 |rintf(st|derr, " |
|00005790| 20 20 20 20 20 20 2d 64 | 20 70 72 69 6e 74 20 61 | -d| print a|
|000057a0| 72 65 61 20 64 65 63 6c | 61 72 61 74 69 6f 6e 73 |rea decl|arations|
|000057b0| 5c 6e 22 29 3b 0a 09 66 | 70 72 69 6e 74 66 28 73 |\n");..f|printf(s|
|000057c0| 74 64 65 72 72 2c 20 22 | 20 20 20 20 20 20 20 2d |tderr, "| -|
|000057d0| 72 20 70 72 69 6e 74 20 | 72 65 6c 6f 63 61 74 69 |r print |relocati|
|000057e0| 6f 6e 20 64 69 72 65 63 | 74 69 76 65 73 5c 6e 22 |on direc|tives\n"|
|000057f0| 29 3b 0a 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |);..fpri|ntf(stde|
|00005800| 72 72 2c 20 22 20 20 20 | 20 20 20 20 2d 67 20 70 |rr, " | -g p|
|00005810| 72 69 6e 74 20 64 65 62 | 75 67 67 69 6e 67 20 61 |rint deb|ugging a|
|00005820| 72 65 61 73 5c 6e 22 29 | 3b 0a 09 66 70 72 69 6e |reas\n")|;..fprin|
|00005830| 74 66 28 73 74 64 65 72 | 72 2c 20 22 20 20 20 20 |tf(stder|r, " |
|00005840| 20 20 20 2d 73 20 70 72 | 69 6e 74 20 73 79 6d 62 | -s pr|int symb|
|00005850| 6f 6c 20 74 61 62 6c 65 | 5c 6e 22 29 3b 0a 09 66 |ol table|\n");..f|
|00005860| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00005870| 20 20 20 20 20 20 20 2d | 74 20 70 72 69 6e 74 20 | -|t print |
|00005880| 73 74 72 69 6e 67 20 74 | 61 62 6c 65 5c 6e 22 29 |string t|able\n")|
|00005890| 3b 0a 09 65 78 69 74 28 | 31 29 3b 0a 7d 0a 46 69 |;..exit(|1);.}.Fi|
|000058a0| 6c 65 44 61 74 61 82 6d | 69 73 63 00 45 00 00 00 |leData.m|isc.E...|
|000058b0| 00 00 ae 02 00 00 44 ff | ff ff f0 58 ac 3f 03 00 |......D.|...X.?..|
|000058c0| 35 53 2f 2a 0a 20 2a 20 | 6d 69 73 63 65 6c 6c 61 |5S/*. * |miscella|
|000058d0| 6e 65 6f 75 73 20 66 75 | 6e 63 74 69 6f 6e 73 0a |neous fu|nctions.|
|000058e0| 20 2a 0a 20 2a 20 41 6e | 64 79 20 44 75 70 6c 61 | *. * An|dy Dupla|
|000058f0| 69 6e 2c 20 42 54 20 43 | 75 73 74 6f 6d 65 72 20 |in, BT C|ustomer |
|00005900| 53 79 73 74 65 6d 73 2c | 20 42 72 69 67 68 74 6f |Systems,| Brighto|
|00005910| 6e 2c 20 55 4b 2e 20 20 | 64 75 70 6c 61 69 6e 40 |n, UK. |duplain@|
|00005920| 62 74 63 73 2e 62 74 2e | 63 6f 2e 75 6b 0a 20 2a |btcs.bt.|co.uk. *|
|00005930| 2f 0a 0a 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |/..#incl|ude <std|
|00005940| 69 6f 2e 68 3e 0a 23 69 | 6e 63 6c 75 64 65 20 22 |io.h>.#i|nclude "|
|00005950| 64 65 63 61 6f 66 2e 68 | 22 0a 0a 23 69 66 64 65 |decaof.h|"..#ifde|
|00005960| 66 20 42 53 44 0a 23 64 | 65 66 69 6e 65 20 6d 65 |f BSD.#d|efine me|
|00005970| 6d 63 6d 70 28 61 2c 62 | 2c 63 29 09 62 63 6d 70 |mcmp(a,b|,c).bcmp|
|00005980| 28 61 2c 62 2c 63 29 0a | 23 65 6e 64 69 66 0a 0a |(a,b,c).|#endif..|
|00005990| 2f 2a 0a 20 2a 20 72 65 | 74 75 72 6e 20 6c 61 73 |/*. * re|turn las|
|000059a0| 74 20 65 6c 65 6d 65 6e | 74 20 69 6e 20 70 61 74 |t elemen|t in pat|
|000059b0| 68 6e 61 6d 65 0a 20 2a | 2f 0a 63 68 61 72 20 2a |hname. *|/.char *|
|000059c0| 0a 62 61 73 65 6e 61 6d | 65 28 73 29 0a 09 63 68 |.basenam|e(s)..ch|
|000059d0| 61 72 20 2a 73 3b 0a 7b | 0a 09 63 68 61 72 20 2a |ar *s;.{|..char *|
|000059e0| 63 70 74 72 20 3d 20 73 | 20 2b 20 73 74 72 6c 65 |cptr = s| + strle|
|000059f0| 6e 28 73 29 3b 0a 09 77 | 68 69 6c 65 20 28 63 70 |n(s);..w|hile (cp|
|00005a00| 74 72 20 3e 20 73 29 20 | 7b 0a 09 09 69 66 20 28 |tr > s) |{...if (|
|00005a10| 2a 63 70 74 72 20 3d 3d | 20 50 41 54 48 53 45 50 |*cptr ==| PATHSEP|
|00005a20| 29 0a 09 09 09 72 65 74 | 75 72 6e 28 2b 2b 63 70 |)....ret|urn(++cp|
|00005a30| 74 72 29 3b 0a 09 09 63 | 70 74 72 2d 2d 3b 0a 09 |tr);...c|ptr--;..|
|00005a40| 7d 0a 09 72 65 74 75 72 | 6e 20 28 73 29 3b 0a 7d |}..retur|n (s);.}|
|00005a50| 0a 0a 2f 2a 0a 20 2a 20 | 6c 6f 63 61 74 65 20 61 |../*. * |locate a|
|00005a60| 20 63 68 75 6e 6b 20 65 | 6e 74 72 79 20 62 79 20 | chunk e|ntry by |
|00005a70| 63 68 75 6e 6b 20 49 44 | 0a 20 2a 2f 0a 73 74 72 |chunk ID|. */.str|
|00005a80| 75 63 74 20 63 68 75 6e | 6b 65 6e 74 20 2a 0a 66 |uct chun|kent *.f|
|00005a90| 69 6e 64 5f 65 6e 74 28 | 68 64 72 2c 20 65 6e 74 |ind_ent(|hdr, ent|
|00005aa0| 73 2c 20 6e 61 6d 65 29 | 0a 09 73 74 72 75 63 74 |s, name)|..struct|
|00005ab0| 20 63 68 75 6e 6b 68 64 | 72 20 2a 68 64 72 3b 0a | chunkhd|r *hdr;.|
|00005ac0| 09 73 74 72 75 63 74 20 | 63 68 75 6e 6b 65 6e 74 |.struct |chunkent|
|00005ad0| 20 2a 65 6e 74 73 3b 0a | 09 63 68 61 72 20 2a 6e | *ents;.|.char *n|
|00005ae0| 61 6d 65 3b 0a 7b 0a 09 | 72 65 67 69 73 74 65 72 |ame;.{..|register|
|00005af0| 20 69 3b 0a 0a 09 66 6f | 72 20 28 69 20 3d 20 30 | i;...fo|r (i = 0|
|00005b00| 3b 20 69 20 3c 20 68 64 | 72 2d 3e 6e 75 6d 63 68 |; i < hd|r->numch|
|00005b10| 75 6e 6b 73 3b 20 69 2b | 2b 29 0a 09 09 69 66 20 |unks; i+|+)...if |
|00005b20| 28 6d 65 6d 63 6d 70 28 | 65 6e 74 73 5b 69 5d 2e |(memcmp(|ents[i].|
|00005b30| 63 68 75 6e 6b 69 64 2c | 20 6e 61 6d 65 2c 20 38 |chunkid,| name, 8|
|00005b40| 29 20 3d 3d 20 30 29 0a | 09 09 09 72 65 74 75 72 |) == 0).|...retur|
|00005b50| 6e 20 28 26 65 6e 74 73 | 5b 69 5d 29 3b 0a 09 72 |n (&ents|[i]);..r|
|00005b60| 65 74 75 72 6e 20 28 4e | 55 4c 4c 29 3b 0a 7d 0a |eturn (N|ULL);.}.|
|00005b70| 46 69 6c 65 44 61 74 61 | 82 6d 6b 65 6e 64 69 61 |FileData|.mkendia|
|00005b80| 6e 00 00 00 8e 03 00 00 | 44 ff ff ff 74 5c ac 3f |n.......|D...t\.?|
|00005b90| 03 00 16 37 2f 2a 0a 20 | 2a 20 44 65 74 65 72 6d |...7/*. |* Determ|
|00005ba0| 69 6e 65 20 62 79 74 65 | 2d 73 65 78 20 6f 66 20 |ine byte|-sex of |
|00005bb0| 6c 6f 63 61 6c 20 68 6f | 73 74 20 74 6f 20 65 6e |local ho|st to en|
|00005bc0| 61 62 6c 65 20 52 49 53 | 43 20 4f 53 20 28 6c 69 |able RIS|C OS (li|
|00005bd0| 74 74 6c 65 20 65 6e 64 | 69 61 6e 29 20 66 69 6c |ttle end|ian) fil|
|00005be0| 65 73 0a 20 2a 20 74 6f | 20 62 65 20 72 65 61 64 |es. * to| be read|
|00005bf0| 2f 77 72 69 74 74 65 6e | 2e 0a 20 2a 0a 20 2a 20 |/written|.. *. * |
|00005c00| 41 6e 64 79 20 44 75 70 | 6c 61 69 6e 2c 20 42 54 |Andy Dup|lain, BT|
|00005c10| 20 43 75 73 74 6f 6d 65 | 72 20 53 79 73 74 65 6d | Custome|r System|
|00005c20| 73 2c 20 42 72 69 67 68 | 74 6f 6e 2c 20 55 4b 2e |s, Brigh|ton, UK.|
|00005c30| 20 20 64 75 70 6c 61 69 | 6e 40 62 74 63 73 2e 62 | duplai|n@btcs.b|
|00005c40| 74 2e 63 6f 2e 75 6b 0a | 20 2a 2f 0a 0a 23 69 6e |t.co.uk.| */..#in|
|00005c50| 63 6c 75 64 65 20 3c 73 | 74 64 69 6f 2e 68 3e 0a |clude <s|tdio.h>.|
|00005c60| 0a 76 6f 69 64 0a 6d 61 | 69 6e 28 29 0a 7b 0a 09 |.void.ma|in().{..|
|00005c70| 72 65 67 69 73 74 65 72 | 20 69 3b 0a 09 75 6e 69 |register| i;..uni|
|00005c80| 6f 6e 20 7b 0a 09 09 75 | 6e 73 69 67 6e 65 64 20 |on {...u|nsigned |
|00005c90| 6c 6f 6e 67 20 6c 3b 0a | 09 09 75 6e 73 69 67 6e |long l;.|..unsign|
|00005ca0| 65 64 20 73 68 6f 72 74 | 20 77 3b 0a 09 09 63 68 |ed short| w;...ch|
|00005cb0| 61 72 20 63 5b 34 5d 3b | 0a 09 7d 20 78 3b 0a 0a |ar c[4];|..} x;..|
|00005cc0| 09 69 66 20 28 73 69 7a | 65 6f 66 28 78 2e 6c 29 |.if (siz|eof(x.l)|
|00005cd0| 20 21 3d 20 34 20 7c 7c | 20 73 69 7a 65 6f 66 28 | != 4 ||| sizeof(|
|00005ce0| 78 2e 77 29 20 21 3d 20 | 32 29 20 7b 0a 09 09 66 |x.w) != |2) {...f|
|00005cf0| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00005d00| 73 69 7a 65 20 6d 69 73 | 6d 61 74 63 68 20 69 6e |size mis|match in|
|00005d10| 20 75 6e 69 6f 6e 2e 2e | 2e 20 61 62 6f 72 74 69 | union..|. aborti|
|00005d20| 6e 67 5c 6e 22 29 3b 0a | 09 09 65 78 69 74 28 31 |ng\n");.|..exit(1|
|00005d30| 29 3b 0a 09 7d 0a 0a 09 | 70 75 74 73 28 22 2f 2a |);..}...|puts("/*|
|00005d40| 20 65 6e 64 69 61 6e 2e | 68 3a 20 20 6c 6f 63 61 | endian.|h: loca|
|00005d50| 6c 20 68 6f 73 74 20 73 | 70 65 63 69 66 69 63 20 |l host s|pecific |
|00005d60| 62 79 74 65 2d 73 65 78 | 20 64 65 66 69 6e 65 73 |byte-sex| defines|
|00005d70| 20 2a 2f 22 29 3b 0a 09 | 70 75 74 73 28 22 23 69 | */");..|puts("#i|
|00005d80| 66 6e 64 65 66 20 5f 5f | 45 4e 44 49 41 4e 5f 48 |fndef __|ENDIAN_H|
|00005d90| 22 29 3b 0a 09 70 75 74 | 73 28 22 23 64 65 66 69 |");..put|s("#defi|
|00005da0| 6e 65 20 5f 5f 45 4e 44 | 49 41 4e 5f 48 22 29 3b |ne __END|IAN_H");|
|00005db0| 0a 09 78 2e 6c 20 3d 20 | 30 78 30 30 30 31 30 32 |..x.l = |0x000102|
|00005dc0| 30 33 3b 0a 09 69 66 20 | 28 78 2e 63 5b 30 5d 20 |03;..if |(x.c[0] |
|00005dd0| 3d 3d 20 33 20 26 26 20 | 78 2e 63 5b 31 5d 20 3d |== 3 && |x.c[1] =|
|00005de0| 3d 20 32 20 26 26 20 78 | 2e 63 5b 32 5d 20 3d 3d |= 2 && x|.c[2] ==|
|00005df0| 20 31 20 26 26 20 78 2e | 63 5b 33 5d 20 3d 3d 20 | 1 && x.|c[3] == |
|00005e00| 30 29 0a 09 09 70 75 74 | 73 28 22 23 64 65 66 69 |0)...put|s("#defi|
|00005e10| 6e 65 20 4c 49 54 54 4c | 45 5f 45 4e 44 49 41 4e |ne LITTL|E_ENDIAN|
|00005e20| 22 29 3b 0a 09 65 6c 73 | 65 0a 09 09 70 75 74 73 |");..els|e...puts|
|00005e30| 28 22 23 75 6e 64 65 66 | 20 4c 49 54 54 4c 45 5f |("#undef| LITTLE_|
|00005e40| 45 4e 44 49 41 4e 22 29 | 3b 0a 09 66 6f 72 20 28 |ENDIAN")|;..for (|
|00005e50| 69 20 3d 20 30 3b 20 69 | 20 3c 20 34 3b 20 69 2b |i = 0; i| < 4; i+|
|00005e60| 2b 29 0a 09 09 70 72 69 | 6e 74 66 28 22 23 64 65 |+)...pri|ntf("#de|
|00005e70| 66 69 6e 65 20 57 4f 52 | 44 25 64 5c 74 25 64 5c |fine WOR|D%d\t%d\|
|00005e80| 6e 22 2c 20 69 2c 20 33 | 20 2d 20 78 2e 63 5b 69 |n", i, 3| - x.c[i|
|00005e90| 5d 29 3b 0a 0a 09 78 2e | 77 20 3d 20 30 78 30 30 |]);...x.|w = 0x00|
|00005ea0| 30 31 3b 0a 0a 09 66 6f | 72 20 28 69 20 3d 20 30 |01;...fo|r (i = 0|
|00005eb0| 3b 20 69 20 3c 20 32 3b | 20 69 2b 2b 29 0a 09 09 |; i < 2;| i++)...|
|00005ec0| 70 72 69 6e 74 66 28 22 | 23 64 65 66 69 6e 65 20 |printf("|#define |
|00005ed0| 48 41 4c 46 57 4f 52 44 | 25 64 5c 74 25 64 5c 6e |HALFWORD|%d\t%d\n|
|00005ee0| 22 2c 20 69 2c 20 31 20 | 2d 20 78 2e 63 5b 69 5d |", i, 1 |- x.c[i]|
|00005ef0| 29 3b 0a 0a 09 70 75 74 | 73 28 22 23 65 6e 64 69 |);...put|s("#endi|
|00005f00| 66 20 2f 2a 20 5f 5f 45 | 4e 44 49 41 4e 5f 48 20 |f /* __E|NDIAN_H |
|00005f10| 2a 2f 22 29 3b 0a 09 65 | 78 69 74 28 30 29 3b 0a |*/");..e|xit(0);.|
|00005f20| 7d 0a 46 69 6c 65 44 61 | 74 61 82 63 70 72 6f 74 |}.FileDa|ta.cprot|
|00005f30| 6f 00 00 00 00 00 7b 01 | 00 00 44 ff ff ff 18 63 |o.....{.|..D....c|
|00005f40| ac 3f 03 00 7b 78 2f 2a | 0a 20 2a 20 70 72 6f 74 |.?..{x/*|. * prot|
|00005f50| 65 63 74 20 6e 6f 6e 2d | 41 4e 53 49 20 43 20 43 |ect non-|ANSI C C|
|00005f60| 6f 6d 70 69 6c 65 72 73 | 20 66 72 6f 6d 20 66 75 |ompilers| from fu|
|00005f70| 6e 63 74 69 6f 6e 20 70 | 72 6f 74 6f 74 79 70 65 |nction p|rototype|
|00005f80| 20 61 72 67 75 6d 65 6e | 74 73 0a 20 2a 0a 20 2a | argumen|ts. *. *|
|00005f90| 20 41 6e 64 79 20 44 75 | 70 6c 61 69 6e 2c 20 42 | Andy Du|plain, B|
|00005fa0| 54 20 43 75 73 74 6f 6d | 65 72 20 53 79 73 74 65 |T Custom|er Syste|
|00005fb0| 6d 73 2c 20 42 72 69 67 | 68 74 6f 6e 2c 20 55 4b |ms, Brig|hton, UK|
|00005fc0| 2e 20 20 64 75 70 6c 61 | 69 6e 40 62 74 63 73 2e |. dupla|in@btcs.|
|00005fd0| 62 74 2e 63 6f 2e 75 6b | 0a 20 2a 2f 0a 0a 23 69 |bt.co.uk|. */..#i|
|00005fe0| 66 6e 64 65 66 20 5f 5f | 43 50 52 4f 54 4f 5f 48 |fndef __|CPROTO_H|
|00005ff0| 0a 23 64 65 66 69 6e 65 | 20 5f 5f 43 50 52 4f 54 |.#define| __CPROT|
|00006000| 4f 5f 48 0a 0a 23 69 66 | 20 64 65 66 69 6e 65 64 |O_H..#if| defined|
|00006010| 20 28 5f 5f 53 54 44 43 | 5f 5f 29 20 7c 7c 20 64 | (__STDC|__) || d|
|00006020| 65 66 69 6e 65 64 28 5f | 5f 63 70 6c 75 73 70 6c |efined(_|_cpluspl|
|00006030| 75 73 29 0a 23 64 65 66 | 69 6e 65 20 50 5f 5f 28 |us).#def|ine P__(|
|00006040| 73 29 09 73 0a 23 64 65 | 66 69 6e 65 20 41 4e 53 |s).s.#de|fine ANS|
|00006050| 49 5f 43 0a 23 65 6c 73 | 65 20 2f 2a 20 50 43 43 |I_C.#els|e /* PCC|
|00006060| 20 63 6f 6d 70 69 6c 65 | 72 20 2a 2f 0a 23 64 65 | compile|r */.#de|
|00006070| 66 69 6e 65 20 50 5f 5f | 28 73 29 09 28 29 0a 23 |fine P__|(s).().#|
|00006080| 75 6e 64 65 66 20 41 4e | 53 49 5f 43 0a 23 65 6e |undef AN|SI_C.#en|
|00006090| 64 69 66 20 2f 2a 20 41 | 4e 53 49 20 63 6f 6d 70 |dif /* A|NSI comp|
|000060a0| 69 6c 65 72 20 2a 2f 0a | 0a 23 65 6e 64 69 66 20 |iler */.|.#endif |
|000060b0| 2f 2a 20 5f 5f 43 50 52 | 4f 54 4f 5f 48 20 2a 2f |/* __CPR|OTO_H */|
|000060c0| 0a 46 69 6c 65 44 61 74 | 61 82 64 65 63 61 6f 66 |.FileDat|a.decaof|
|000060d0| 00 00 00 00 00 a3 0b 00 | 00 44 ff ff ff 38 66 ac |........|.D...8f.|
|000060e0| 3f 03 00 7e 27 2f 2a 0a | 20 2a 20 64 65 66 69 6e |?..~'/*.| * defin|
|000060f0| 65 73 20 74 79 70 65 73 | 20 75 73 65 64 20 69 6e |es types| used in|
|00006100| 20 64 65 63 61 6f 66 0a | 20 2a 0a 20 2a 20 41 6e | decaof.| *. * An|
|00006110| 64 79 20 44 75 70 6c 61 | 69 6e 2c 20 42 54 20 43 |dy Dupla|in, BT C|
|00006120| 75 73 74 6f 6d 65 72 20 | 53 79 73 74 65 6d 73 2c |ustomer |Systems,|
|00006130| 20 42 72 69 67 68 74 6f | 6e 2c 20 55 4b 2e 20 20 | Brighto|n, UK. |
|00006140| 64 75 70 6c 61 69 6e 40 | 62 74 63 73 2e 62 74 2e |duplain@|btcs.bt.|
|00006150| 63 6f 2e 75 6b 0a 20 2a | 2f 0a 0a 23 69 66 6e 64 |co.uk. *|/..#ifnd|
|00006160| 65 66 20 5f 5f 44 45 43 | 41 4f 46 5f 48 0a 23 64 |ef __DEC|AOF_H.#d|
|00006170| 65 66 69 6e 65 20 5f 5f | 44 45 43 41 4f 46 5f 48 |efine __|DECAOF_H|
|00006180| 0a 0a 2f 2a 0a 20 2a 20 | 67 6c 6f 62 61 6c 69 73 |../*. * |globalis|
|00006190| 65 20 73 79 73 74 65 6d | 2d 74 79 70 65 20 64 65 |e system|-type de|
|000061a0| 66 69 6e 65 73 2e 2e 2e | 0a 20 2a 2f 0a 23 69 66 |fines...|. */.#if|
|000061b0| 20 64 65 66 69 6e 65 64 | 28 42 53 44 34 32 29 20 | defined|(BSD42) |
|000061c0| 7c 7c 20 64 65 66 69 6e | 65 64 28 42 53 44 34 33 ||| defin|ed(BSD43|
|000061d0| 29 20 7c 7c 20 64 65 66 | 69 6e 65 64 28 42 53 44 |) || def|ined(BSD|
|000061e0| 34 34 29 0a 23 64 65 66 | 69 6e 65 20 55 4e 49 58 |44).#def|ine UNIX|
|000061f0| 0a 23 64 65 66 69 6e 65 | 20 42 53 44 0a 23 65 6e |.#define| BSD.#en|
|00006200| 64 69 66 0a 23 69 66 20 | 64 65 66 69 6e 65 64 28 |dif.#if |defined(|
|00006210| 53 59 53 56 32 29 20 7c | 7c 20 64 65 66 69 6e 65 |SYSV2) ||| define|
|00006220| 64 28 53 59 53 56 33 29 | 20 7c 7c 20 64 65 66 69 |d(SYSV3)| || defi|
|00006230| 6e 65 64 20 28 53 59 53 | 56 34 29 0a 23 64 65 66 |ned (SYS|V4).#def|
|00006240| 69 6e 65 20 55 4e 49 58 | 0a 23 64 65 66 69 6e 65 |ine UNIX|.#define|
|00006250| 20 53 59 53 56 0a 23 65 | 6e 64 69 66 0a 23 69 66 | SYSV.#e|ndif.#if|
|00006260| 20 64 65 66 69 6e 65 64 | 28 52 49 53 43 4f 53 32 | defined|(RISCOS2|
|00006270| 29 20 7c 7c 20 64 65 66 | 69 6e 65 64 28 52 49 53 |) || def|ined(RIS|
|00006280| 43 4f 53 33 29 0a 23 64 | 65 66 69 6e 65 20 52 49 |COS3).#d|efine RI|
|00006290| 53 43 4f 53 0a 23 64 65 | 66 69 6e 65 20 4c 49 54 |SCOS.#de|fine LIT|
|000062a0| 54 4c 45 5f 45 4e 44 49 | 41 4e 0a 23 65 6e 64 69 |TLE_ENDI|AN.#endi|
|000062b0| 66 0a 23 69 66 20 64 65 | 66 69 6e 65 64 28 4d 53 |f.#if de|fined(MS|
|000062c0| 44 4f 53 32 29 20 7c 7c | 20 64 65 66 69 6e 65 64 |DOS2) ||| defined|
|000062d0| 28 4d 53 44 4f 53 33 29 | 20 7c 7c 20 64 65 66 69 |(MSDOS3)| || defi|
|000062e0| 6e 65 64 28 4d 53 44 4f | 53 34 29 20 7c 7c 20 64 |ned(MSDO|S4) || d|
|000062f0| 65 66 69 6e 65 64 28 4d | 53 44 4f 53 35 29 0a 23 |efined(M|SDOS5).#|
|00006300| 64 65 66 69 6e 65 20 4d | 53 44 4f 53 0a 23 64 65 |define M|SDOS.#de|
|00006310| 66 69 6e 65 20 4c 49 54 | 54 4c 45 5f 45 4e 44 49 |fine LIT|TLE_ENDI|
|00006320| 41 4e 0a 23 65 6e 64 69 | 66 0a 0a 23 69 66 64 65 |AN.#endi|f..#ifde|
|00006330| 66 20 55 4e 49 58 0a 23 | 69 6e 63 6c 75 64 65 20 |f UNIX.#|include |
|00006340| 22 65 6e 64 69 61 6e 2e | 68 22 0a 23 65 6e 64 69 |"endian.|h".#endi|
|00006350| 66 0a 0a 2f 2a 0a 20 2a | 20 22 57 6f 72 64 22 20 |f../*. *| "Word" |
|00006360| 6d 75 73 74 20 62 65 20 | 61 20 34 2d 62 79 74 65 |must be |a 4-byte|
|00006370| 20 74 79 70 65 2e 0a 20 | 2a 20 22 48 61 6c 66 77 | type.. |* "Halfw|
|00006380| 6f 72 64 22 20 6d 75 73 | 74 20 62 65 20 61 20 32 |ord" mus|t be a 2|
|00006390| 2d 62 79 74 65 20 74 79 | 70 65 2e 0a 20 2a 20 22 |-byte ty|pe.. * "|
|000063a0| 42 79 74 65 22 20 6d 75 | 73 74 20 62 65 20 61 20 |Byte" mu|st be a |
|000063b0| 31 2d 62 79 74 65 20 74 | 79 70 65 2e 0a 20 2a 2f |1-byte t|ype.. */|
|000063c0| 0a 23 69 66 64 65 66 20 | 4d 53 44 4f 53 0a 74 79 |.#ifdef |MSDOS.ty|
|000063d0| 70 65 64 65 66 20 75 6e | 73 69 67 6e 65 64 20 6c |pedef un|signed l|
|000063e0| 6f 6e 67 09 57 6f 72 64 | 3b 0a 74 79 70 65 64 65 |ong.Word|;.typede|
|000063f0| 66 09 75 6e 73 69 67 6e | 65 64 20 69 6e 74 09 48 |f.unsign|ed int.H|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.