home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1997-05-23 | 36.3 KB | [TEXT/CWIE] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Fri May 23 00:44:29 1997, modified Fri May 23 00:44:29 1997, creator 'CWIE', type ASCII, 36435 bytes "binhex.c" , at 0x8ed3 474 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [CWIE] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 08 62 69 6e 68 65 78 | 2e 63 00 00 00 00 00 00 |..binhex|.c......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|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 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 8e 53 00 | 00 01 da af aa d1 2d af |......S.|......-.|
|00000060| aa d1 2d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..-.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 ff 32 00 00 |........|.....2..|
|00000080| 2f 2f 20 3e 3e 3e 20 a9 | 20 31 39 39 36 2d 31 39 |// >>> .| 1996-19|
|00000090| 39 37 20 4d 69 63 72 6f | 73 6f 66 74 20 43 6f 72 |97 Micro|soft Cor|
|000000a0| 70 6f 72 61 74 69 6f 6e | 2e 20 20 41 6c 6c 20 72 |poration|. All r|
|000000b0| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 20 |ights re|served. |
|000000c0| 3c 3c 3c 0d 23 69 66 64 | 65 66 20 5f 4d 53 43 5f |<<<.#ifd|ef _MSC_|
|000000d0| 56 45 52 0d 23 69 6e 63 | 6c 75 64 65 20 3c 6d 61 |VER.#inc|lude <ma|
|000000e0| 63 6f 73 5c 6d 73 76 63 | 6d 61 63 2e 68 3e 0d 23 |cos\msvc|mac.h>.#|
|000000f0| 69 6e 63 6c 75 64 65 20 | 3c 73 74 72 69 6e 67 2e |include |<string.|
|00000100| 68 3e 0d 23 65 6e 64 69 | 66 0d 0d 23 69 66 20 47 |h>.#endi|f..#if G|
|00000110| 45 4e 45 52 41 54 49 4e | 47 36 38 4b 20 0d 23 69 |ENERATIN|G68K .#i|
|00000120| 6e 63 6c 75 64 65 20 3c | 73 74 72 69 6e 67 2e 68 |nclude <|string.h|
|00000130| 3e 0d 23 65 6e 64 69 66 | 0d 0d 2f 2f 2d 2d 2d 2d |>.#endif|..//----|
|00000140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 47 6c |--------|--.// Gl|
|00000170| 6f 62 61 6c 20 69 6e 63 | 6c 75 64 65 73 0d 2f 2f |obal inc|ludes.//|
|00000180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000001a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 0d |--------|------..|
|000001b0| 23 69 6e 63 6c 75 64 65 | 20 3c 54 79 70 65 73 2e |#include| <Types.|
|000001c0| 68 3e 0d 23 69 6e 63 6c | 75 64 65 20 3c 46 69 6c |h>.#incl|ude <Fil|
|000001d0| 65 73 2e 68 3e 0d 0d 23 | 69 6e 63 6c 75 64 65 20 |es.h>..#|include |
|000001e0| 22 42 69 6e 48 65 78 2e | 68 22 0d 0d 2f 2f 2d 2d |"BinHex.|h"..//--|
|000001f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 2f 2f 20 |--------|----.// |
|00000220| 4c 6f 63 61 6c 20 69 6e | 63 6c 75 64 65 73 0d 2f |Local in|cludes./|
|00000230| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00000240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000260| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 52 65 73 6f 75 |.#includ|e <Resou|
|00000270| 72 63 65 73 2e 68 3e 0d | 23 69 6e 63 6c 75 64 65 |rces.h>.|#include|
|00000280| 20 3c 46 69 6e 64 65 72 | 2e 68 3e 0d 23 69 6e 63 | <Finder|.h>.#inc|
|00000290| 6c 75 64 65 20 3c 45 72 | 72 6f 72 73 2e 68 3e 0d |lude <Er|rors.h>.|
|000002a0| 23 69 6e 63 6c 75 64 65 | 20 3c 54 65 78 74 55 74 |#include| <TextUt|
|000002b0| 69 6c 73 2e 68 3e 0d 23 | 69 6e 63 6c 75 64 65 20 |ils.h>.#|include |
|000002c0| 3c 50 4c 53 74 72 69 6e | 67 46 75 6e 63 73 2e 68 |<PLStrin|gFuncs.h|
|000002d0| 3e 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |>..//---|--------|
|000002e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000300| 2d 2d 2d 0d 2f 2f 20 49 | 6e 70 75 74 42 75 66 66 |---.// I|nputBuff|
|00000310| 65 72 20 73 74 72 75 63 | 74 75 72 65 0d 2f 2f 2d |er struc|ture.//-|
|00000320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0d 23 |--------|-----..#|
|00000350| 64 65 66 69 6e 65 20 63 | 49 67 6e 6f 72 65 43 68 |define c|IgnoreCh|
|00000360| 65 63 6b 73 75 6d 73 20 | 30 0d 0d 23 64 65 66 69 |ecksums |0..#defi|
|00000370| 6e 65 20 63 42 75 66 66 | 65 72 5f 53 69 7a 65 20 |ne cBuff|er_Size |
|00000380| 31 36 33 38 34 0d 0d 74 | 79 70 65 64 65 66 20 73 |16384..t|ypedef s|
|00000390| 74 72 75 63 74 20 7b 0d | 09 55 49 6e 74 33 32 09 |truct {.|.UInt32.|
|000003a0| 46 69 6c 65 4f 66 66 73 | 65 74 3b 0d 09 0d 09 55 |FileOffs|et;....U|
|000003b0| 49 6e 74 38 09 42 75 66 | 66 65 72 5b 63 42 75 66 |Int8.Buf|fer[cBuf|
|000003c0| 66 65 72 5f 53 69 7a 65 | 5d 3b 0d 09 55 49 6e 74 |fer_Size|];..UInt|
|000003d0| 33 32 09 42 79 74 65 73 | 49 6e 42 75 66 66 65 72 |32.Bytes|InBuffer|
|000003e0| 3b 0d 09 0d 09 55 49 6e | 74 33 32 09 42 75 66 66 |;....UIn|t32.Buff|
|000003f0| 65 72 4f 66 66 73 65 74 | 3b 0d 09 55 49 6e 74 33 |erOffset|;..UInt3|
|00000400| 32 09 42 79 74 65 73 41 | 76 61 69 6c 61 62 6c 65 |2.BytesA|vailable|
|00000410| 3b 0d 09 7d 20 74 49 6e | 70 75 74 42 75 66 66 65 |;..} tIn|putBuffe|
|00000420| 72 3b 0d 0d 74 79 70 65 | 64 65 66 20 73 74 72 75 |r;..type|def stru|
|00000430| 63 74 20 7b 0d 09 55 49 | 6e 74 33 32 09 09 09 46 |ct {..UI|nt32...F|
|00000440| 69 6c 65 4f 66 66 73 65 | 74 3b 0d 09 0d 09 55 49 |ileOffse|t;....UI|
|00000450| 6e 74 38 09 09 09 42 75 | 66 66 65 72 5b 63 42 75 |nt8...Bu|ffer[cBu|
|00000460| 66 66 65 72 5f 53 69 7a | 65 5d 3b 0d 09 55 49 6e |ffer_Siz|e];..UIn|
|00000470| 74 33 32 09 09 09 42 79 | 74 65 73 49 6e 42 75 66 |t32...By|tesInBuf|
|00000480| 66 65 72 3b 0d 09 0d 09 | 55 49 6e 74 33 32 09 09 |fer;....|UInt32..|
|00000490| 09 42 75 66 66 65 72 4f | 66 66 73 65 74 3b 0d 09 |.BufferO|ffset;..|
|000004a0| 55 49 6e 74 33 32 09 09 | 09 42 79 74 65 73 41 76 |UInt32..|.BytesAv|
|000004b0| 61 69 6c 61 62 6c 65 3b | 0d 09 0d 09 42 6f 6f 6c |ailable;|....Bool|
|000004c0| 65 61 6e 09 09 09 54 65 | 72 6d 69 6e 61 74 6f 72 |ean...Te|rminator|
|000004d0| 46 6f 75 6e 64 3b 0d 09 | 0d 09 55 49 6e 74 38 09 |Found;..|..UInt8.|
|000004e0| 09 09 43 6f 6e 76 65 72 | 73 69 6f 6e 54 61 62 6c |..Conver|sionTabl|
|000004f0| 65 5b 32 35 36 5d 3b 0d | 09 0d 09 69 6e 74 09 09 |e[256];.|...int..|
|00000500| 09 09 48 6f 6c 64 69 6e | 67 50 68 61 73 65 3b 0d |..Holdin|gPhase;.|
|00000510| 09 55 49 6e 74 38 09 09 | 09 48 6f 6c 64 69 6e 67 |.UInt8..|.Holding|
|00000520| 42 79 74 65 3b 0d 09 55 | 49 6e 74 38 09 09 09 50 |Byte;..U|Int8...P|
|00000530| 72 65 76 69 6f 75 73 42 | 79 74 65 3b 0d 09 42 6f |reviousB|yte;..Bo|
|00000540| 6f 6c 65 61 6e 09 09 09 | 52 65 70 65 61 74 46 6c |olean...|RepeatFl|
|00000550| 61 67 46 6f 75 6e 64 3b | 0d 09 7d 20 74 42 69 6e |agFound;|..} tBin|
|00000560| 48 65 78 42 75 66 66 65 | 72 3b 0d 0d 23 70 72 61 |HexBuffe|r;..#pra|
|00000570| 67 6d 61 20 6f 70 74 69 | 6f 6e 73 20 61 6c 69 67 |gma opti|ons alig|
|00000580| 6e 3d 6d 61 63 36 38 6b | 0d 0d 74 79 70 65 64 65 |n=mac68k|..typede|
|00000590| 66 20 73 74 72 75 63 74 | 20 7b 0d 09 53 74 72 36 |f struct| {..Str6|
|000005a0| 33 09 46 69 6c 65 4e 61 | 6d 65 3b 0d 09 0d 09 4f |3.FileNa|me;....O|
|000005b0| 53 54 79 70 65 09 46 69 | 6c 65 54 79 70 65 3b 0d |SType.Fi|leType;.|
|000005c0| 09 4f 53 54 79 70 65 09 | 46 69 6c 65 43 72 65 61 |.OSType.|FileCrea|
|000005d0| 74 6f 72 3b 0d 09 55 49 | 6e 74 31 36 09 46 69 6e |tor;..UI|nt16.Fin|
|000005e0| 64 65 72 46 6c 61 67 73 | 3b 0d 09 55 49 6e 74 33 |derFlags|;..UInt3|
|000005f0| 32 09 44 61 74 61 4c 65 | 6e 67 74 68 3b 0d 09 55 |2.DataLe|ngth;..U|
|00000600| 49 6e 74 33 32 09 52 65 | 73 6f 75 72 63 65 4c 65 |Int32.Re|sourceLe|
|00000610| 6e 67 74 68 3b 0d 09 7d | 20 74 42 69 6e 48 65 78 |ngth;..}| tBinHex|
|00000620| 46 69 6c 65 48 65 61 64 | 65 72 3b 0d 0d 23 70 72 |FileHead|er;..#pr|
|00000630| 61 67 6d 61 20 6f 70 74 | 69 6f 6e 73 20 61 6c 69 |agma opt|ions ali|
|00000640| 67 6e 3d 72 65 73 65 74 | 0d 09 0d 2f 2f 2d 2d 2d |gn=reset|...//---|
|00000650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 20 74 |--------|---.// t|
|00000680| 42 69 6e 48 65 78 50 61 | 72 73 65 72 0d 2f 2f 2d |BinHexPa|rser.//-|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 0d 74 |--------|-----..t|
|000006c0| 79 70 65 64 65 66 20 65 | 6e 75 6d 20 7b 0d 09 63 |ypedef e|num {..c|
|000006d0| 56 61 6c 69 64 61 74 69 | 6e 67 5f 50 61 72 73 65 |Validati|ng_Parse|
|000006e0| 72 53 74 61 74 65 20 3d | 20 30 2c 0d 09 63 48 65 |rState =| 0,..cHe|
|000006f0| 61 64 65 72 4e 61 6d 65 | 4c 65 6e 67 74 68 5f 50 |aderName|Length_P|
|00000700| 61 72 73 65 72 53 74 61 | 74 65 2c 0d 09 63 48 65 |arserSta|te,..cHe|
|00000710| 61 64 65 72 4e 61 6d 65 | 5f 50 61 72 73 65 72 53 |aderName|_ParserS|
|00000720| 74 61 74 65 2c 0d 09 63 | 48 65 61 64 65 72 4e 61 |tate,..c|HeaderNa|
|00000730| 6d 65 50 61 64 5f 50 61 | 72 73 65 72 53 74 61 74 |mePad_Pa|rserStat|
|00000740| 65 2c 0d 09 63 48 65 61 | 64 65 72 5f 50 61 72 73 |e,..cHea|der_Pars|
|00000750| 65 72 53 74 61 74 65 2c | 0d 09 63 48 65 61 64 65 |erState,|..cHeade|
|00000760| 72 43 68 65 63 6b 73 75 | 6d 5f 50 61 72 73 65 72 |rChecksu|m_Parser|
|00000770| 53 74 61 74 65 2c 0d 09 | 63 44 61 74 61 46 6f 72 |State,..|cDataFor|
|00000780| 6b 5f 50 61 72 73 65 72 | 53 74 61 74 65 2c 0d 09 |k_Parser|State,..|
|00000790| 63 44 61 74 61 46 6f 72 | 6b 43 68 65 63 6b 73 75 |cDataFor|kChecksu|
|000007a0| 6d 5f 50 61 72 73 65 72 | 53 74 61 74 65 2c 0d 09 |m_Parser|State,..|
|000007b0| 63 52 65 73 6f 75 72 63 | 65 46 6f 72 6b 5f 50 61 |cResourc|eFork_Pa|
|000007c0| 72 73 65 72 53 74 61 74 | 65 2c 0d 09 63 52 65 73 |rserStat|e,..cRes|
|000007d0| 6f 75 72 63 65 46 6f 72 | 6b 43 68 65 63 6b 73 75 |ourceFor|kChecksu|
|000007e0| 6d 5f 50 61 72 73 65 72 | 53 74 61 74 65 2c 0d 09 |m_Parser|State,..|
|000007f0| 63 50 61 73 73 54 68 72 | 6f 75 67 68 5f 50 61 72 |cPassThr|ough_Par|
|00000800| 73 65 72 53 74 61 74 65 | 2c 0d 09 63 44 69 73 63 |serState|,..cDisc|
|00000810| 61 72 64 5f 50 61 72 73 | 65 72 53 74 61 74 65 0d |ard_Pars|erState.|
|00000820| 09 7d 20 74 42 69 6e 48 | 65 78 50 61 72 73 65 72 |.} tBinH|exParser|
|00000830| 53 74 61 74 65 3b 0d 0d | 73 74 72 75 63 74 20 74 |State;..|struct t|
|00000840| 42 69 6e 48 65 78 50 61 | 72 73 65 72 0d 7b 0d 09 |BinHexPa|rser.{..|
|00000850| 74 42 69 6e 48 65 78 43 | 6c 69 65 6e 74 44 61 74 |tBinHexC|lientDat|
|00000860| 61 20 2a 09 09 09 66 43 | 6c 69 65 6e 74 44 61 74 |a *...fC|lientDat|
|00000870| 61 3b 0d 09 74 42 69 6e | 48 65 78 50 61 72 73 65 |a;..tBin|HexParse|
|00000880| 72 43 61 6c 6c 62 61 63 | 6b 73 20 2a 09 66 43 61 |rCallbac|ks *.fCa|
|00000890| 6c 6c 62 61 63 6b 73 3b | 0d 09 0d 09 74 49 6e 70 |llbacks;|....tInp|
|000008a0| 75 74 42 75 66 66 65 72 | 20 2a 09 09 09 09 66 49 |utBuffer| *....fI|
|000008b0| 6e 70 75 74 42 75 66 66 | 65 72 3b 0d 09 74 42 69 |nputBuff|er;..tBi|
|000008c0| 6e 48 65 78 42 75 66 66 | 65 72 20 2a 09 09 09 09 |nHexBuff|er *....|
|000008d0| 66 42 69 6e 48 65 78 42 | 75 66 66 65 72 3b 0d 09 |fBinHexB|uffer;..|
|000008e0| 0d 09 74 42 69 6e 48 65 | 78 50 61 72 73 65 72 53 |..tBinHe|xParserS|
|000008f0| 74 61 74 65 09 09 09 66 | 50 61 72 73 65 72 53 74 |tate...f|ParserSt|
|00000900| 61 74 65 3b 0d 09 0d 09 | 74 42 69 6e 48 65 78 46 |ate;....|tBinHexF|
|00000910| 69 6c 65 48 65 61 64 65 | 72 09 09 09 66 48 65 61 |ileHeade|r...fHea|
|00000920| 64 65 72 3b 0d 09 55 49 | 6e 74 31 36 09 09 09 09 |der;..UI|nt16....|
|00000930| 09 09 66 43 61 6c 63 75 | 6c 61 74 65 64 43 68 65 |..fCalcu|latedChe|
|00000940| 63 6b 73 75 6d 3b 0d 09 | 55 49 6e 74 31 36 09 09 |cksum;..|UInt16..|
|00000950| 09 09 09 09 66 41 63 74 | 75 61 6c 43 68 65 63 6b |....fAct|ualCheck|
|00000960| 73 75 6d 3b 0d 09 0d 09 | 6c 6f 6e 67 09 09 09 09 |sum;....|long....|
|00000970| 09 09 66 42 79 74 65 43 | 6f 75 6e 74 3b 09 2f 2f |..fByteC|ount;.//|
|00000980| 20 4d 65 61 6e 69 6e 67 | 20 69 73 20 73 74 61 74 | Meaning| is stat|
|00000990| 65 2d 64 65 70 65 6e 64 | 65 6e 74 3a 0d 09 09 09 |e-depend|ent:....|
|000009a0| 09 09 09 09 09 09 09 09 | 2f 2f 20 09 09 63 56 61 |........|// ..cVa|
|000009b0| 6c 69 64 61 74 69 6e 67 | 5f 50 61 72 73 65 72 53 |lidating|_ParserS|
|000009c0| 74 61 74 65 3a 20 23 20 | 62 79 74 65 73 20 6f 66 |tate: # |bytes of|
|000009d0| 20 68 65 61 64 65 72 20 | 61 63 63 75 6d 75 6c 61 | header |accumula|
|000009e0| 74 65 64 0d 09 09 09 09 | 09 09 09 09 09 09 09 2f |ted.....|......./|
|000009f0| 2f 09 09 63 44 61 74 61 | 46 6f 72 6b 5f 50 61 72 |/..cData|Fork_Par|
|00000a00| 73 65 72 53 74 61 74 65 | 3a 20 23 20 62 79 74 65 |serState|: # byte|
|00000a10| 73 20 6f 66 20 64 61 74 | 61 20 66 6f 72 6b 20 72 |s of dat|a fork r|
|00000a20| 65 6d 61 69 6e 69 6e 67 | 0d 09 09 09 09 09 09 09 |emaining|........|
|00000a30| 09 09 09 09 2f 2f 09 09 | 63 44 61 74 61 47 61 70 |....//..|cDataGap|
|00000a40| 5f 50 61 72 73 65 72 53 | 74 61 74 65 3a 20 23 20 |_ParserS|tate: # |
|00000a50| 62 79 74 65 73 20 6f 66 | 20 64 61 74 61 20 67 61 |bytes of| data ga|
|00000a60| 70 20 72 65 6d 61 69 6e | 69 6e 67 0d 09 09 09 09 |p remain|ing.....|
|00000a70| 09 09 09 09 09 09 09 2f | 2f 09 09 63 52 65 73 6f |......./|/..cReso|
|00000a80| 75 72 63 65 46 6f 72 6b | 5f 50 61 72 73 65 72 53 |urceFork|_ParserS|
|00000a90| 74 61 74 65 3a 20 23 20 | 62 79 74 65 73 20 6f 66 |tate: # |bytes of|
|00000aa0| 20 72 65 73 6f 75 72 63 | 65 20 66 6f 72 6b 20 72 | resourc|e fork r|
|00000ab0| 65 6d 61 69 6e 69 6e 67 | 0d 09 09 09 09 09 09 09 |emaining|........|
|00000ac0| 09 09 09 09 2f 2f 09 09 | 63 52 65 73 6f 75 72 63 |....//..|cResourc|
|00000ad0| 65 47 61 70 5f 50 61 72 | 73 65 72 53 74 61 74 65 |eGap_Par|serState|
|00000ae0| 3a 20 23 20 62 79 74 65 | 73 20 6f 66 20 72 65 73 |: # byte|s of res|
|00000af0| 6f 75 72 63 65 20 67 61 | 70 20 72 65 6d 61 69 6e |ource ga|p remain|
|00000b00| 69 6e 67 0d 09 09 09 09 | 09 09 09 09 09 09 09 2f |ing.....|......./|
|00000b10| 2f 09 09 63 50 61 73 73 | 54 68 72 6f 75 67 68 5f |/..cPass|Through_|
|00000b20| 50 61 72 73 65 72 53 74 | 61 74 65 3a 20 6e 6f 20 |ParserSt|ate: no |
|00000b30| 6d 65 61 6e 69 6e 67 0d | 09 09 09 09 09 09 09 09 |meaning.|........|
|00000b40| 09 09 09 2f 2f 09 09 63 | 44 69 73 63 61 72 64 5f |...//..c|Discard_|
|00000b50| 50 61 72 73 65 72 53 74 | 61 74 65 3a 20 6e 6f 20 |ParserSt|ate: no |
|00000b60| 6d 65 61 6e 69 6e 67 0d | 7d 3b 0d 0d 2f 2f 2d 2d |meaning.|};..//--|
|00000b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 2f 2f 20 |--------|----.// |
|00000ba0| 4c 6f 63 61 6c 20 70 72 | 6f 74 6f 74 79 70 65 73 |Local pr|ototypes|
|00000bb0| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00000bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000be0| 2d 0d 0d 73 74 61 74 69 | 63 20 4f 53 45 72 72 09 |-..stati|c OSErr.|
|00000bf0| 53 6b 69 70 52 65 74 75 | 72 6e 28 74 49 6e 70 75 |SkipRetu|rn(tInpu|
|00000c00| 74 42 75 66 66 65 72 20 | 2a 70 42 75 66 66 65 72 |tBuffer |*pBuffer|
|00000c10| 29 3b 0d 73 74 61 74 69 | 63 20 4f 53 45 72 72 09 |);.stati|c OSErr.|
|00000c20| 52 65 61 64 46 69 6c 65 | 54 6f 52 65 74 75 72 6e |ReadFile|ToReturn|
|00000c30| 28 74 49 6e 70 75 74 42 | 75 66 66 65 72 20 2a 70 |(tInputB|uffer *p|
|00000c40| 42 75 66 66 65 72 2c 20 | 42 6f 6f 6c 65 61 6e 20 |Buffer, |Boolean |
|00000c50| 70 4b 65 65 70 53 70 61 | 63 65 73 2c 20 76 6f 69 |pKeepSpa|ces, voi|
|00000c60| 64 20 2a 70 44 61 74 61 | 2c 20 6c 6f 6e 67 20 70 |d *pData|, long p|
|00000c70| 4d 61 78 4c 65 6e 67 74 | 68 2c 20 6c 6f 6e 67 20 |MaxLengt|h, long |
|00000c80| 2a 72 41 63 74 75 61 6c | 4c 65 6e 67 74 68 29 3b |*rActual|Length);|
|00000c90| 0d 73 74 61 74 69 63 20 | 4f 53 45 72 72 09 52 65 |.static |OSErr.Re|
|00000ca0| 61 64 4f 6e 65 43 68 61 | 72 61 63 74 65 72 28 74 |adOneCha|racter(t|
|00000cb0| 49 6e 70 75 74 42 75 66 | 66 65 72 20 2a 70 42 75 |InputBuf|fer *pBu|
|00000cc0| 66 66 65 72 2c 20 63 68 | 61 72 20 2a 72 43 68 61 |ffer, ch|ar *rCha|
|00000cd0| 72 61 63 74 65 72 29 3b | 0d 73 74 61 74 69 63 20 |racter);|.static |
|00000ce0| 4f 53 45 72 72 09 46 69 | 6e 64 42 69 6e 48 65 78 |OSErr.Fi|ndBinHex|
|00000cf0| 48 65 61 64 65 72 28 74 | 49 6e 70 75 74 42 75 66 |Header(t|InputBuf|
|00000d00| 66 65 72 20 2a 70 42 75 | 66 66 65 72 29 3b 0d 0d |fer *pBu|ffer);..|
|00000d10| 73 74 61 74 69 63 20 42 | 6f 6f 6c 65 61 6e 09 42 |static B|oolean.B|
|00000d20| 69 6e 48 65 78 42 75 66 | 66 65 72 5f 4e 65 77 28 |inHexBuf|fer_New(|
|00000d30| 74 42 69 6e 48 65 78 42 | 75 66 66 65 72 20 2a 2a |tBinHexB|uffer **|
|00000d40| 72 42 75 66 66 65 72 29 | 3b 0d 73 74 61 74 69 63 |rBuffer)|;.static|
|00000d50| 20 76 6f 69 64 09 09 42 | 69 6e 48 65 78 42 75 66 | void..B|inHexBuf|
|00000d60| 66 65 72 5f 44 69 73 70 | 6f 73 65 28 74 42 69 6e |fer_Disp|ose(tBin|
|00000d70| 48 65 78 42 75 66 66 65 | 72 20 2a 70 42 75 66 66 |HexBuffe|r *pBuff|
|00000d80| 65 72 29 3b 0d 73 74 61 | 74 69 63 20 4f 53 45 72 |er);.sta|tic OSEr|
|00000d90| 72 09 42 69 6e 48 65 78 | 42 75 66 66 65 72 5f 4c |r.BinHex|Buffer_L|
|00000da0| 6f 61 64 46 72 6f 6d 46 | 69 6c 65 28 74 42 69 6e |oadFromF|ile(tBin|
|00000db0| 48 65 78 42 75 66 66 65 | 72 20 2a 70 42 75 66 66 |HexBuffe|r *pBuff|
|00000dc0| 65 72 2c 20 74 49 6e 70 | 75 74 42 75 66 66 65 72 |er, tInp|utBuffer|
|00000dd0| 20 2a 70 49 6e 70 75 74 | 42 75 66 66 65 72 2c 20 | *pInput|Buffer, |
|00000de0| 73 68 6f 72 74 20 70 46 | 69 6c 65 52 65 66 29 3b |short pF|ileRef);|
|00000df0| 0d 73 74 61 74 69 63 20 | 42 6f 6f 6c 65 61 6e 09 |.static |Boolean.|
|00000e00| 42 69 6e 48 65 78 42 75 | 66 66 65 72 5f 53 74 75 |BinHexBu|ffer_Stu|
|00000e10| 66 66 28 74 42 69 6e 48 | 65 78 42 75 66 66 65 72 |ff(tBinH|exBuffer|
|00000e20| 20 2a 70 42 75 66 66 65 | 72 2c 20 55 49 6e 74 38 | *pBuffe|r, UInt8|
|00000e30| 20 2a 70 44 61 74 61 2c | 20 55 49 6e 74 33 32 20 | *pData,| UInt32 |
|00000e40| 70 4e 75 6d 62 65 72 4f | 66 42 79 74 65 73 2c 20 |pNumberO|fBytes, |
|00000e50| 55 49 6e 74 33 32 20 2a | 72 42 79 74 65 73 53 74 |UInt32 *|rBytesSt|
|00000e60| 75 66 66 65 64 29 3b 0d | 73 74 61 74 69 63 20 4f |uffed);.|static O|
|00000e70| 53 45 72 72 09 42 69 6e | 48 65 78 42 75 66 66 65 |SErr.Bin|HexBuffe|
|00000e80| 72 5f 52 65 61 64 42 79 | 74 65 28 74 42 69 6e 48 |r_ReadBy|te(tBinH|
|00000e90| 65 78 42 75 66 66 65 72 | 20 2a 70 42 75 66 66 65 |exBuffer| *pBuffe|
|00000ea0| 72 2c 20 55 49 6e 74 38 | 20 2a 72 42 79 74 65 2c |r, UInt8| *rByte,|
|00000eb0| 20 55 49 6e 74 31 36 20 | 2a 72 43 68 65 63 6b 73 | UInt16 |*rChecks|
|00000ec0| 75 6d 29 3b 0d 73 74 61 | 74 69 63 20 4f 53 45 72 |um);.sta|tic OSEr|
|00000ed0| 72 09 42 69 6e 48 65 78 | 42 75 66 66 65 72 5f 52 |r.BinHex|Buffer_R|
|00000ee0| 65 61 64 42 79 74 65 73 | 28 74 42 69 6e 48 65 78 |eadBytes|(tBinHex|
|00000ef0| 42 75 66 66 65 72 20 2a | 70 42 75 66 66 65 72 2c |Buffer *|pBuffer,|
|00000f00| 20 55 49 6e 74 38 20 2a | 70 52 65 61 64 42 75 66 | UInt8 *|pReadBuf|
|00000f10| 66 65 72 2c 20 55 49 6e | 74 33 32 20 70 4e 75 6d |fer, UIn|t32 pNum|
|00000f20| 62 65 72 4f 66 42 79 74 | 65 73 2c 20 55 49 6e 74 |berOfByt|es, UInt|
|00000f30| 31 36 20 2a 72 43 68 65 | 63 6b 73 75 6d 29 3b 0d |16 *rChe|cksum);.|
|00000f40| 0d 73 74 61 74 69 63 20 | 76 6f 69 64 09 09 41 64 |.static |void..Ad|
|00000f50| 64 42 79 74 65 54 6f 42 | 69 6e 48 65 78 43 68 65 |dByteToB|inHexChe|
|00000f60| 63 6b 73 75 6d 28 55 49 | 6e 74 38 20 70 56 61 6c |cksum(UI|nt8 pVal|
|00000f70| 75 65 2c 20 55 49 6e 74 | 31 36 20 2a 72 43 68 65 |ue, UInt|16 *rChe|
|00000f80| 63 6b 73 75 6d 29 3b 0d | 73 74 61 74 69 63 20 76 |cksum);.|static v|
|00000f90| 6f 69 64 09 09 41 64 64 | 42 79 74 65 73 54 6f 42 |oid..Add|BytesToB|
|00000fa0| 69 6e 48 65 78 43 68 65 | 63 6b 73 75 6d 28 55 49 |inHexChe|cksum(UI|
|00000fb0| 6e 74 38 20 2a 70 56 61 | 6c 75 65 73 2c 20 55 49 |nt8 *pVa|lues, UI|
|00000fc0| 6e 74 33 32 20 70 4e 75 | 6d 62 65 72 4f 66 42 79 |nt32 pNu|mberOfBy|
|00000fd0| 74 65 73 2c 20 55 49 6e | 74 31 36 20 2a 72 43 68 |tes, UIn|t16 *rCh|
|00000fe0| 65 63 6b 73 75 6d 29 3b | 0d 0d 73 74 61 74 69 63 |ecksum);|..static|
|00000ff0| 20 4f 53 45 72 72 09 47 | 65 74 42 69 6e 48 65 78 | OSErr.G|etBinHex|
|00001000| 46 69 6c 65 48 65 61 64 | 65 72 28 74 42 69 6e 48 |FileHead|er(tBinH|
|00001010| 65 78 42 75 66 66 65 72 | 20 2a 70 42 75 66 66 65 |exBuffer| *pBuffe|
|00001020| 72 2c 20 42 6f 6f 6c 65 | 61 6e 20 2a 72 48 65 61 |r, Boole|an *rHea|
|00001030| 64 65 72 49 73 56 61 6c | 69 64 2c 20 74 42 69 6e |derIsVal|id, tBin|
|00001040| 48 65 78 46 69 6c 65 48 | 65 61 64 65 72 20 2a 72 |HexFileH|eader *r|
|00001050| 48 65 61 64 65 72 29 3b | 0d 73 74 61 74 69 63 20 |Header);|.static |
|00001060| 42 6f 6f 6c 65 61 6e 09 | 43 6f 70 79 42 69 6e 48 |Boolean.|CopyBinH|
|00001070| 65 78 54 6f 46 69 6c 65 | 28 74 42 69 6e 48 65 78 |exToFile|(tBinHex|
|00001080| 42 75 66 66 65 72 20 2a | 70 42 75 66 66 65 72 2c |Buffer *|pBuffer,|
|00001090| 20 74 49 6e 70 75 74 42 | 75 66 66 65 72 20 2a 70 | tInputB|uffer *p|
|000010a0| 49 6e 70 75 74 42 75 66 | 66 65 72 2c 20 73 68 6f |InputBuf|fer, sho|
|000010b0| 72 74 20 70 53 6f 75 72 | 63 65 46 69 6c 65 52 65 |rt pSour|ceFileRe|
|000010c0| 66 2c 20 73 68 6f 72 74 | 20 70 44 65 73 74 46 69 |f, short| pDestFi|
|000010d0| 6c 65 52 65 66 2c 20 55 | 49 6e 74 33 32 20 70 4e |leRef, U|Int32 pN|
|000010e0| 75 6d 62 65 72 4f 66 42 | 79 74 65 73 2c 20 55 49 |umberOfB|ytes, UI|
|000010f0| 6e 74 31 36 20 2a 72 43 | 68 65 63 6b 73 75 6d 29 |nt16 *rC|hecksum)|
|00001100| 3b 0d 0d 2f 2f 20 49 6e | 70 75 74 42 75 66 66 65 |;..// In|putBuffe|
|00001110| 72 0d 0d 73 74 61 74 69 | 63 20 42 6f 6f 6c 65 61 |r..stati|c Boolea|
|00001120| 6e 09 49 6e 70 75 74 42 | 75 66 66 65 72 5f 4e 65 |n.InputB|uffer_Ne|
|00001130| 77 28 74 49 6e 70 75 74 | 42 75 66 66 65 72 20 2a |w(tInput|Buffer *|
|00001140| 2a 72 42 75 66 66 65 72 | 29 3b 0d 73 74 61 74 69 |*rBuffer|);.stati|
|00001150| 63 20 76 6f 69 64 09 09 | 49 6e 70 75 74 42 75 66 |c void..|InputBuf|
|00001160| 66 65 72 5f 44 69 73 70 | 6f 73 65 28 74 49 6e 70 |fer_Disp|ose(tInp|
|00001170| 75 74 42 75 66 66 65 72 | 20 2a 70 42 75 66 66 65 |utBuffer| *pBuffe|
|00001180| 72 29 3b 0d 0d 73 74 61 | 74 69 63 20 4f 53 45 72 |r);..sta|tic OSEr|
|00001190| 72 09 49 6e 70 75 74 42 | 75 66 66 65 72 5f 4c 6f |r.InputB|uffer_Lo|
|000011a0| 61 64 46 72 6f 6d 46 69 | 6c 65 28 74 49 6e 70 75 |adFromFi|le(tInpu|
|000011b0| 74 42 75 66 66 65 72 20 | 2a 70 42 75 66 66 65 72 |tBuffer |*pBuffer|
|000011c0| 2c 20 73 68 6f 72 74 20 | 70 46 69 6c 65 52 65 66 |, short |pFileRef|
|000011d0| 29 3b 0d 73 74 61 74 69 | 63 20 6c 6f 6e 67 09 09 |);.stati|c long..|
|000011e0| 49 6e 70 75 74 42 75 66 | 66 65 72 5f 53 74 75 66 |InputBuf|fer_Stuf|
|000011f0| 66 28 74 49 6e 70 75 74 | 42 75 66 66 65 72 20 2a |f(tInput|Buffer *|
|00001200| 70 49 6e 70 75 74 42 75 | 66 66 65 72 2c 20 76 6f |pInputBu|ffer, vo|
|00001210| 69 64 20 2a 70 44 61 74 | 61 2c 20 6c 6f 6e 67 20 |id *pDat|a, long |
|00001220| 70 4e 75 6d 62 65 72 4f | 66 42 79 74 65 73 29 3b |pNumberO|fBytes);|
|00001230| 0d 73 74 61 74 69 63 20 | 76 6f 69 64 09 09 49 6e |.static |void..In|
|00001240| 70 75 74 42 75 66 66 65 | 72 5f 44 65 6c 65 74 65 |putBuffe|r_Delete|
|00001250| 4f 6c 64 44 61 74 61 28 | 74 49 6e 70 75 74 42 75 |OldData(|tInputBu|
|00001260| 66 66 65 72 20 2a 70 49 | 6e 70 75 74 42 75 66 66 |ffer *pI|nputBuff|
|00001270| 65 72 29 3b 0d 73 74 61 | 74 69 63 20 76 6f 69 64 |er);.sta|tic void|
|00001280| 09 09 49 6e 70 75 74 42 | 75 66 66 65 72 5f 47 65 |..InputB|uffer_Ge|
|00001290| 74 50 6f 69 6e 74 65 72 | 28 74 49 6e 70 75 74 42 |tPointer|(tInputB|
|000012a0| 75 66 66 65 72 20 2a 70 | 49 6e 70 75 74 42 75 66 |uffer *p|InputBuf|
|000012b0| 66 65 72 2c 20 76 6f 69 | 64 20 2a 2a 72 44 61 74 |fer, voi|d **rDat|
|000012c0| 61 2c 20 6c 6f 6e 67 20 | 2a 72 4d 61 78 4e 75 6d |a, long |*rMaxNum|
|000012d0| 62 65 72 4f 66 42 79 74 | 65 73 29 3b 0d 73 74 61 |berOfByt|es);.sta|
|000012e0| 74 69 63 20 76 6f 69 64 | 09 09 49 6e 70 75 74 42 |tic void|..InputB|
|000012f0| 75 66 66 65 72 5f 42 79 | 74 65 73 41 64 64 65 64 |uffer_By|tesAdded|
|00001300| 28 74 49 6e 70 75 74 42 | 75 66 66 65 72 20 2a 70 |(tInputB|uffer *p|
|00001310| 49 6e 70 75 74 42 75 66 | 66 65 72 2c 20 6c 6f 6e |InputBuf|fer, lon|
|00001320| 67 20 70 4e 75 6d 62 65 | 72 4f 66 42 79 74 65 73 |g pNumbe|rOfBytes|
|00001330| 29 3b 0d 0d 2f 2f 20 42 | 69 6e 48 65 78 50 61 72 |);..// B|inHexPar|
|00001340| 73 65 72 0d 0d 73 74 61 | 74 69 63 20 42 6f 6f 6c |ser..sta|tic Bool|
|00001350| 65 61 6e 09 42 69 6e 48 | 65 78 50 61 72 73 65 72 |ean.BinH|exParser|
|00001360| 5f 57 72 69 74 65 44 65 | 63 6f 64 65 64 44 61 74 |_WriteDe|codedDat|
|00001370| 61 28 74 42 69 6e 48 65 | 78 50 61 72 73 65 72 20 |a(tBinHe|xParser |
|00001380| 2a 70 50 61 72 73 65 72 | 2c 20 76 6f 69 64 20 2a |*pParser|, void *|
|00001390| 70 44 61 74 61 2c 20 6c | 6f 6e 67 20 70 44 61 74 |pData, l|ong pDat|
|000013a0| 61 4c 65 6e 67 74 68 29 | 3b 0d 0d 2f 2f 2d 2d 2d |aLength)|;..//---|
|000013b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 20 47 |--------|---.// G|
|000013e0| 6c 6f 62 61 6c 20 66 75 | 6e 63 74 69 6f 6e 73 0d |lobal fu|nctions.|
|000013f0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00001400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001420| 0d 0d 42 6f 6f 6c 65 61 | 6e 09 55 6e 70 61 63 6b |..Boolea|n.Unpack|
|00001430| 42 69 6e 48 65 78 46 69 | 6c 65 28 46 53 53 70 65 |BinHexFi|le(FSSpe|
|00001440| 63 20 2a 70 53 6f 75 72 | 63 65 46 69 6c 65 2c 20 |c *pSour|ceFile, |
|00001450| 46 53 53 70 65 63 20 2a | 70 44 65 73 74 46 69 6c |FSSpec *|pDestFil|
|00001460| 65 2c 20 46 53 53 70 65 | 63 20 2a 72 44 65 73 74 |e, FSSpe|c *rDest|
|00001470| 46 69 6c 65 29 0d 7b 0d | 09 4f 53 45 72 72 09 09 |File).{.|.OSErr..|
|00001480| 09 09 76 45 72 72 3b 0d | 09 73 68 6f 72 74 09 09 |..vErr;.|.short..|
|00001490| 09 09 76 53 6f 75 72 63 | 65 46 69 6c 65 52 65 66 |..vSourc|eFileRef|
|000014a0| 3b 0d 09 74 49 6e 70 75 | 74 42 75 66 66 65 72 20 |;..tInpu|tBuffer |
|000014b0| 2a 09 09 76 49 6e 70 75 | 74 42 75 66 66 65 72 3b |*..vInpu|tBuffer;|
|000014c0| 0d 09 74 42 69 6e 48 65 | 78 42 75 66 66 65 72 20 |..tBinHe|xBuffer |
|000014d0| 2a 09 09 76 42 69 6e 48 | 65 78 42 75 66 66 65 72 |*..vBinH|exBuffer|
|000014e0| 3b 0d 09 46 53 53 70 65 | 63 09 09 09 09 76 44 65 |;..FSSpe|c....vDe|
|000014f0| 73 74 46 69 6c 65 3b 0d | 09 73 68 6f 72 74 09 09 |stFile;.|.short..|
|00001500| 09 09 76 44 65 73 74 46 | 69 6c 65 52 65 66 3b 0d |..vDestF|ileRef;.|
|00001510| 09 74 42 69 6e 48 65 78 | 46 69 6c 65 48 65 61 64 |.tBinHex|FileHead|
|00001520| 65 72 09 76 48 65 61 64 | 65 72 3b 0d 09 55 49 6e |er.vHead|er;..UIn|
|00001530| 74 31 36 09 09 09 09 76 | 43 61 6c 63 75 6c 61 74 |t16....v|Calculat|
|00001540| 65 64 43 68 65 63 6b 73 | 75 6d 3b 0d 09 55 49 6e |edChecks|um;..UIn|
|00001550| 74 31 36 09 09 09 09 76 | 46 69 6c 65 43 68 65 63 |t16....v|FileChec|
|00001560| 6b 73 75 6d 3b 0d 09 46 | 49 6e 66 6f 09 09 09 09 |ksum;..F|Info....|
|00001570| 76 46 69 6e 64 65 72 49 | 6e 66 6f 3b 0d 09 42 6f |vFinderI|nfo;..Bo|
|00001580| 6f 6c 65 61 6e 09 09 09 | 09 76 48 65 61 64 65 72 |olean...|.vHeader|
|00001590| 49 73 56 61 6c 69 64 3b | 0d 09 0d 09 2f 2f 20 4f |IsValid;|....// O|
|000015a0| 70 65 6e 20 74 68 65 20 | 73 6f 75 72 63 65 20 66 |pen the |source f|
|000015b0| 69 6c 65 0d 09 0d 09 76 | 45 72 72 20 3d 20 46 53 |ile....v|Err = FS|
|000015c0| 70 4f 70 65 6e 44 46 28 | 70 53 6f 75 72 63 65 46 |pOpenDF(|pSourceF|
|000015d0| 69 6c 65 2c 20 66 73 52 | 64 50 65 72 6d 2c 20 26 |ile, fsR|dPerm, &|
|000015e0| 76 53 6f 75 72 63 65 46 | 69 6c 65 52 65 66 29 3b |vSourceF|ileRef);|
|000015f0| 0d 09 69 66 20 28 76 45 | 72 72 20 21 3d 20 6e 6f |..if (vE|rr != no|
|00001600| 45 72 72 29 20 72 65 74 | 75 72 6e 20 66 61 6c 73 |Err) ret|urn fals|
|00001610| 65 3b 0d 09 0d 09 69 66 | 20 28 21 49 6e 70 75 74 |e;....if| (!Input|
|00001620| 42 75 66 66 65 72 5f 4e | 65 77 28 26 76 49 6e 70 |Buffer_N|ew(&vInp|
|00001630| 75 74 42 75 66 66 65 72 | 29 29 0d 09 09 67 6f 74 |utBuffer|))...got|
|00001640| 6f 20 65 72 72 6f 72 45 | 78 69 74 3b 0d 09 0d 09 |o errorE|xit;....|
|00001650| 69 66 20 28 21 42 69 6e | 48 65 78 42 75 66 66 65 |if (!Bin|HexBuffe|
|00001660| 72 5f 4e 65 77 28 26 76 | 42 69 6e 48 65 78 42 75 |r_New(&v|BinHexBu|
|00001670| 66 66 65 72 29 29 0d 09 | 09 67 6f 74 6f 20 65 72 |ffer))..|.goto er|
|00001680| 72 6f 72 45 78 69 74 32 | 3b 0d 09 0d 09 2f 2f 20 |rorExit2|;....// |
|00001690| 53 65 61 72 63 68 20 66 | 6f 72 20 74 68 65 20 42 |Search f|or the B|
|000016a0| 69 6e 48 65 78 20 68 65 | 61 64 65 72 0d 09 0d 09 |inHex he|ader....|
|000016b0| 76 45 72 72 20 3d 20 49 | 6e 70 75 74 42 75 66 66 |vErr = I|nputBuff|
|000016c0| 65 72 5f 4c 6f 61 64 46 | 72 6f 6d 46 69 6c 65 28 |er_LoadF|romFile(|
|000016d0| 76 49 6e 70 75 74 42 75 | 66 66 65 72 2c 20 76 53 |vInputBu|ffer, vS|
|000016e0| 6f 75 72 63 65 46 69 6c | 65 52 65 66 29 3b 0d 09 |ourceFil|eRef);..|
|000016f0| 69 66 20 28 76 45 72 72 | 20 21 3d 20 6e 6f 45 72 |if (vErr| != noEr|
|00001700| 72 29 20 67 6f 74 6f 20 | 65 72 72 6f 72 45 78 69 |r) goto |errorExi|
|00001710| 74 33 3b 0d 0d 20 20 20 | 20 76 45 72 72 20 3d 20 |t3;.. | vErr = |
|00001720| 46 69 6e 64 42 69 6e 48 | 65 78 48 65 61 64 65 72 |FindBinH|exHeader|
|00001730| 28 76 49 6e 70 75 74 42 | 75 66 66 65 72 29 3b 0d |(vInputB|uffer);.|
|00001740| 09 69 66 20 28 76 45 72 | 72 20 21 3d 20 6e 6f 45 |.if (vEr|r != noE|
|00001750| 72 72 29 20 67 6f 74 6f | 20 65 72 72 6f 72 45 78 |rr) goto| errorEx|
|00001760| 69 74 33 3b 0d 09 0d 09 | 2f 2f 20 52 65 61 64 20 |it3;....|// Read |
|00001770| 74 68 65 20 68 65 61 64 | 65 72 0d 09 0d 09 76 45 |the head|er....vE|
|00001780| 72 72 20 3d 20 42 69 6e | 48 65 78 42 75 66 66 65 |rr = Bin|HexBuffe|
|00001790| 72 5f 4c 6f 61 64 46 72 | 6f 6d 46 69 6c 65 28 76 |r_LoadFr|omFile(v|
|000017a0| 42 69 6e 48 65 78 42 75 | 66 66 65 72 2c 20 76 49 |BinHexBu|ffer, vI|
|000017b0| 6e 70 75 74 42 75 66 66 | 65 72 2c 20 76 53 6f 75 |nputBuff|er, vSou|
|000017c0| 72 63 65 46 69 6c 65 52 | 65 66 29 3b 0d 09 69 66 |rceFileR|ef);..if|
|000017d0| 20 28 76 45 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 | (vErr !|= noErr)|
|000017e0| 20 67 6f 74 6f 20 65 72 | 72 6f 72 45 78 69 74 33 | goto er|rorExit3|
|000017f0| 3b 0d 09 0d 09 76 45 72 | 72 20 3d 20 47 65 74 42 |;....vEr|r = GetB|
|00001800| 69 6e 48 65 78 46 69 6c | 65 48 65 61 64 65 72 28 |inHexFil|eHeader(|
|00001810| 76 42 69 6e 48 65 78 42 | 75 66 66 65 72 2c 20 26 |vBinHexB|uffer, &|
|00001820| 76 48 65 61 64 65 72 49 | 73 56 61 6c 69 64 2c 20 |vHeaderI|sValid, |
|00001830| 26 76 48 65 61 64 65 72 | 29 3b 0d 09 69 66 20 28 |&vHeader|);..if (|
|00001840| 76 45 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |vErr != |noErr) g|
|00001850| 6f 74 6f 20 65 72 72 6f | 72 45 78 69 74 33 3b 0d |oto erro|rExit3;.|
|00001860| 09 69 66 20 28 21 76 48 | 65 61 64 65 72 49 73 56 |.if (!vH|eaderIsV|
|00001870| 61 6c 69 64 29 20 67 6f | 74 6f 20 65 72 72 6f 72 |alid) go|to error|
|00001880| 45 78 69 74 33 3b 0d 09 | 0d 09 2f 2f 20 43 72 65 |Exit3;..|..// Cre|
|00001890| 61 74 65 20 74 68 65 20 | 64 65 73 74 69 6e 61 74 |ate the |destinat|
|000018a0| 69 6f 6e 20 46 53 53 70 | 65 63 0d 09 0d 09 69 66 |ion FSSp|ec....if|
|000018b0| 20 28 70 44 65 73 74 46 | 69 6c 65 20 21 3d 20 6e | (pDestF|ile != n|
|000018c0| 69 6c 29 0d 09 09 76 44 | 65 73 74 46 69 6c 65 20 |il)...vD|estFile |
|000018d0| 3d 20 2a 70 44 65 73 74 | 46 69 6c 65 3b 0d 09 65 |= *pDest|File;..e|
|000018e0| 6c 73 65 20 7b 0d 09 09 | 76 44 65 73 74 46 69 6c |lse {...|vDestFil|
|000018f0| 65 20 3d 20 2a 70 53 6f | 75 72 63 65 46 69 6c 65 |e = *pSo|urceFile|
|00001900| 3b 0d 09 09 50 4c 73 74 | 72 63 70 79 28 76 44 65 |;...PLst|rcpy(vDe|
|00001910| 73 74 46 69 6c 65 2e 6e | 61 6d 65 2c 20 76 48 65 |stFile.n|ame, vHe|
|00001920| 61 64 65 72 2e 46 69 6c | 65 4e 61 6d 65 29 3b 0d |ader.Fil|eName);.|
|00001930| 09 09 7d 0d 09 0d 09 2f | 2f 20 43 72 65 61 74 65 |..}..../|/ Create|
|00001940| 20 74 68 65 20 64 65 73 | 74 69 6e 61 74 69 6f 6e | the des|tination|
|00001950| 20 66 69 6c 65 0d 09 0d | 09 46 53 70 44 65 6c 65 | file...|.FSpDele|
|00001960| 74 65 28 26 76 44 65 73 | 74 46 69 6c 65 29 3b 0d |te(&vDes|tFile);.|
|00001970| 0d 09 76 45 72 72 20 3d | 20 46 53 70 43 72 65 61 |..vErr =| FSpCrea|
|00001980| 74 65 28 26 76 44 65 73 | 74 46 69 6c 65 2c 20 76 |te(&vDes|tFile, v|
|00001990| 48 65 61 64 65 72 2e 46 | 69 6c 65 43 72 65 61 74 |Header.F|ileCreat|
|000019a0| 6f 72 2c 20 76 48 65 61 | 64 65 72 2e 46 69 6c 65 |or, vHea|der.File|
|000019b0| 54 79 70 65 2c 20 30 29 | 3b 0d 09 69 66 20 28 76 |Type, 0)|;..if (v|
|000019c0| 45 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |Err != n|oErr) go|
|000019d0| 74 6f 20 65 72 72 6f 72 | 45 78 69 74 33 3b 0d 09 |to error|Exit3;..|
|000019e0| 0d 09 2f 2f 20 53 65 74 | 20 74 68 65 20 66 69 6e |..// Set| the fin|
|000019f0| 64 65 72 20 66 6c 61 67 | 73 0d 09 0d 09 76 45 72 |der flag|s....vEr|
|00001a00| 72 20 3d 20 46 53 70 47 | 65 74 46 49 6e 66 6f 28 |r = FSpG|etFInfo(|
|00001a10| 26 76 44 65 73 74 46 69 | 6c 65 2c 20 26 76 46 69 |&vDestFi|le, &vFi|
|00001a20| 6e 64 65 72 49 6e 66 6f | 29 3b 0d 09 69 66 20 28 |nderInfo|);..if (|
|00001a30| 76 45 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |vErr != |noErr) g|
|00001a40| 6f 74 6f 20 65 72 72 6f | 72 45 78 69 74 34 3b 0d |oto erro|rExit4;.|
|00001a50| 09 0d 09 76 46 69 6e 64 | 65 72 49 6e 66 6f 2e 66 |...vFind|erInfo.f|
|00001a60| 64 46 6c 61 67 73 20 3d | 20 76 48 65 61 64 65 72 |dFlags =| vHeader|
|00001a70| 2e 46 69 6e 64 65 72 46 | 6c 61 67 73 20 26 20 7e |.FinderF|lags & ~|
|00001a80| 28 6b 49 73 49 6e 76 69 | 73 69 62 6c 65 20 7c 20 |(kIsInvi|sible | |
|00001a90| 6b 48 61 73 42 65 65 6e | 49 6e 69 74 65 64 20 7c |kHasBeen|Inited ||
|00001aa0| 20 6b 49 73 4f 6e 44 65 | 73 6b 29 3b 0d 09 0d 09 | kIsOnDe|sk);....|
|00001ab0| 76 45 72 72 20 3d 20 46 | 53 70 53 65 74 46 49 6e |vErr = F|SpSetFIn|
|00001ac0| 66 6f 28 26 76 44 65 73 | 74 46 69 6c 65 2c 20 26 |fo(&vDes|tFile, &|
|00001ad0| 76 46 69 6e 64 65 72 49 | 6e 66 6f 29 3b 0d 09 69 |vFinderI|nfo);..i|
|00001ae0| 66 20 28 76 45 72 72 20 | 21 3d 20 6e 6f 45 72 72 |f (vErr |!= noErr|
|00001af0| 29 20 67 6f 74 6f 20 65 | 72 72 6f 72 45 78 69 74 |) goto e|rrorExit|
|00001b00| 34 3b 0d 09 0d 09 2f 2f | 20 4f 70 65 6e 20 74 68 |4;....//| Open th|
|00001b10| 65 20 64 61 74 61 20 66 | 6f 72 6b 0d 09 0d 09 76 |e data f|ork....v|
|00001b20| 45 72 72 20 3d 20 46 53 | 70 4f 70 65 6e 44 46 28 |Err = FS|pOpenDF(|
|00001b30| 26 76 44 65 73 74 46 69 | 6c 65 2c 20 66 73 52 64 |&vDestFi|le, fsRd|
|00001b40| 57 72 50 65 72 6d 2c 20 | 26 76 44 65 73 74 46 69 |WrPerm, |&vDestFi|
|00001b50| 6c 65 52 65 66 29 3b 0d | 09 69 66 20 28 76 45 72 |leRef);.|.if (vEr|
|00001b60| 72 20 21 3d 20 6e 6f 45 | 72 72 29 20 67 6f 74 6f |r != noE|rr) goto|
|00001b70| 20 65 72 72 6f 72 45 78 | 69 74 34 3b 0d 09 0d 09 | errorEx|it4;....|
|00001b80| 2f 2f 20 43 6f 70 79 20 | 74 68 65 20 64 61 74 61 |// Copy |the data|
|00001b90| 20 66 6f 72 6b 0d 09 0d | 09 76 43 61 6c 63 75 6c | fork...|.vCalcul|
|00001ba0| 61 74 65 64 43 68 65 63 | 6b 73 75 6d 20 3d 20 30 |atedChec|ksum = 0|
|00001bb0| 3b 0d 09 69 66 20 28 21 | 43 6f 70 79 42 69 6e 48 |;..if (!|CopyBinH|
|00001bc0| 65 78 54 6f 46 69 6c 65 | 28 76 42 69 6e 48 65 78 |exToFile|(vBinHex|
|00001bd0| 42 75 66 66 65 72 2c 20 | 76 49 6e 70 75 74 42 75 |Buffer, |vInputBu|
|00001be0| 66 66 65 72 2c 20 76 53 | 6f 75 72 63 65 46 69 6c |ffer, vS|ourceFil|
|00001bf0| 65 52 65 66 2c 20 76 44 | 65 73 74 46 69 6c 65 52 |eRef, vD|estFileR|
|00001c00| 65 66 2c 20 76 48 65 61 | 64 65 72 2e 44 61 74 61 |ef, vHea|der.Data|
|00001c10| 4c 65 6e 67 74 68 2c 20 | 26 76 43 61 6c 63 75 6c |Length, |&vCalcul|
|00001c20| 61 74 65 64 43 68 65 63 | 6b 73 75 6d 29 29 0d 09 |atedChec|ksum))..|
|00001c30| 09 67 6f 74 6f 20 65 72 | 72 6f 72 45 78 69 74 35 |.goto er|rorExit5|
|00001c40| 3b 0d 09 0d 09 41 64 64 | 42 79 74 65 54 6f 42 69 |;....Add|ByteToBi|
|00001c50| 6e 48 65 78 43 68 65 63 | 6b 73 75 6d 28 30 2c 20 |nHexChec|ksum(0, |
|00001c60| 26 76 43 61 6c 63 75 6c | 61 74 65 64 43 68 65 63 |&vCalcul|atedChec|
|00001c70| 6b 73 75 6d 29 3b 0d 09 | 41 64 64 42 79 74 65 54 |ksum);..|AddByteT|
|00001c80| 6f 42 69 6e 48 65 78 43 | 68 65 63 6b 73 75 6d 28 |oBinHexC|hecksum(|
|00001c90| 30 2c 20 26 76 43 61 6c | 63 75 6c 61 74 65 64 43 |0, &vCal|culatedC|
|00001ca0| 68 65 63 6b 73 75 6d 29 | 3b 0d 09 0d 09 69 66 20 |hecksum)|;....if |
|00001cb0| 28 76 42 69 6e 48 65 78 | 42 75 66 66 65 72 2d 3e |(vBinHex|Buffer->|
|00001cc0| 42 79 74 65 73 41 76 61 | 69 6c 61 62 6c 65 20 3c |BytesAva|ilable <|
|00001cd0| 20 73 69 7a 65 6f 66 28 | 55 49 6e 74 31 36 29 29 | sizeof(|UInt16))|
|00001ce0| 20 7b 0d 09 09 76 45 72 | 72 20 3d 20 42 69 6e 48 | {...vEr|r = BinH|
|00001cf0| 65 78 42 75 66 66 65 72 | 5f 4c 6f 61 64 46 72 6f |exBuffer|_LoadFro|
|00001d00| 6d 46 69 6c 65 28 76 42 | 69 6e 48 65 78 42 75 66 |mFile(vB|inHexBuf|
|00001d10| 66 65 72 2c 20 76 49 6e | 70 75 74 42 75 66 66 65 |fer, vIn|putBuffe|
|00001d20| 72 2c 20 76 53 6f 75 72 | 63 65 46 69 6c 65 52 65 |r, vSour|ceFileRe|
|00001d30| 66 29 3b 0d 09 09 69 66 | 20 28 76 45 72 72 20 21 |f);...if| (vErr !|
|00001d40| 3d 20 6e 6f 45 72 72 29 | 20 67 6f 74 6f 20 65 72 |= noErr)| goto er|
|00001d50| 72 6f 72 45 78 69 74 35 | 3b 0d 09 09 7d 0d 09 09 |rorExit5|;...}...|
|00001d60| 0d 09 76 45 72 72 20 3d | 20 42 69 6e 48 65 78 42 |..vErr =| BinHexB|
|00001d70| 75 66 66 65 72 5f 52 65 | 61 64 42 79 74 65 73 28 |uffer_Re|adBytes(|
|00001d80| 76 42 69 6e 48 65 78 42 | 75 66 66 65 72 2c 20 28 |vBinHexB|uffer, (|
|00001d90| 55 49 6e 74 38 20 2a 29 | 26 76 46 69 6c 65 43 68 |UInt8 *)|&vFileCh|
|00001da0| 65 63 6b 73 75 6d 2c 20 | 73 69 7a 65 6f 66 28 55 |ecksum, |sizeof(U|
|00001db0| 49 6e 74 31 36 29 2c 20 | 6e 69 6c 29 3b 0d 09 69 |Int16), |nil);..i|
|00001dc0| 66 20 28 76 45 72 72 20 | 21 3d 20 6e 6f 45 72 72 |f (vErr |!= noErr|
|00001dd0| 29 20 67 6f 74 6f 20 65 | 72 72 6f 72 45 78 69 74 |) goto e|rrorExit|
|00001de0| 35 3b 0d 0d 23 69 66 20 | 21 63 49 67 6e 6f 72 65 |5;..#if |!cIgnore|
|00001df0| 43 68 65 63 6b 73 75 6d | 73 09 0d 09 69 66 20 28 |Checksum|s...if (|
|00001e00| 76 43 61 6c 63 75 6c 61 | 74 65 64 43 68 65 63 6b |vCalcula|tedCheck|
|00001e10| 73 75 6d 20 21 3d 20 76 | 46 69 6c 65 43 68 65 63 |sum != v|FileChec|
|00001e20| 6b 73 75 6d 29 0d 09 09 | 67 6f 74 6f 20 65 72 72 |ksum)...|goto err|
|00001e30| 6f 72 45 78 69 74 35 3b | 0d 23 65 6e 64 69 66 0d |orExit5;|.#endif.|
|00001e40| 0d 09 2f 2f 20 43 6c 6f | 73 65 20 74 68 65 20 64 |..// Clo|se the d|
|00001e50| 61 74 61 20 66 6f 72 6b | 0d 09 0d 09 46 53 43 6c |ata fork|....FSCl|
|00001e60| 6f 73 65 28 76 44 65 73 | 74 46 69 6c 65 52 65 66 |ose(vDes|tFileRef|
|00001e70| 29 3b 0d 09 0d 09 2f 2f | 20 4f 70 65 6e 20 74 68 |);....//| Open th|
|00001e80| 65 20 72 65 73 6f 75 72 | 63 65 20 66 6f 72 6b 0d |e resour|ce fork.|
|00001e90| 09 0d 09 76 45 72 72 20 | 3d 20 46 53 70 4f 70 65 |...vErr |= FSpOpe|
|00001ea0| 6e 52 46 28 26 76 44 65 | 73 74 46 69 6c 65 2c 20 |nRF(&vDe|stFile, |
|00001eb0| 66 73 52 64 57 72 50 65 | 72 6d 2c 20 26 76 44 65 |fsRdWrPe|rm, &vDe|
|00001ec0| 73 74 46 69 6c 65 52 65 | 66 29 3b 0d 09 69 66 20 |stFileRe|f);..if |
|00001ed0| 28 76 45 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 |(vErr !=| noErr) |
|00001ee0| 67 6f 74 6f 20 65 72 72 | 6f 72 45 78 69 74 34 3b |goto err|orExit4;|
|00001ef0| 0d 09 0d 09 2f 2f 20 43 | 6f 70 79 20 74 68 65 20 |....// C|opy the |
|00001f00| 72 65 73 6f 75 72 63 65 | 20 66 6f 72 6b 0d 09 0d |resource| fork...|
|00001f10| 09 76 43 61 6c 63 75 6c | 61 74 65 64 43 68 65 63 |.vCalcul|atedChec|
|00001f20| 6b 73 75 6d 20 3d 20 30 | 3b 0d 09 69 66 20 28 21 |ksum = 0|;..if (!|
|00001f30| 43 6f 70 79 42 69 6e 48 | 65 78 54 6f 46 69 6c 65 |CopyBinH|exToFile|
|00001f40| 28 76 42 69 6e 48 65 78 | 42 75 66 66 65 72 2c 20 |(vBinHex|Buffer, |
|00001f50| 76 49 6e 70 75 74 42 75 | 66 66 65 72 2c 20 76 53 |vInputBu|ffer, vS|
|00001f60| 6f 75 72 63 65 46 69 6c | 65 52 65 66 2c 20 76 44 |ourceFil|eRef, vD|
|00001f70| 65 73 74 46 69 6c 65 52 | 65 66 2c 20 76 48 65 61 |estFileR|ef, vHea|
|00001f80| 64 65 72 2e 52 65 73 6f | 75 72 63 65 4c 65 6e 67 |der.Reso|urceLeng|
|00001f90| 74 68 2c 20 26 76 43 61 | 6c 63 75 6c 61 74 65 64 |th, &vCa|lculated|
|00001fa0| 43 68 65 63 6b 73 75 6d | 29 29 0d 09 09 67 6f 74 |Checksum|))...got|
|00001fb0| 6f 20 65 72 72 6f 72 45 | 78 69 74 35 3b 0d 09 0d |o errorE|xit5;...|
|00001fc0| 09 41 64 64 42 79 74 65 | 54 6f 42 69 6e 48 65 78 |.AddByte|ToBinHex|
|00001fd0| 43 68 65 63 6b 73 75 6d | 28 30 2c 20 26 76 43 61 |Checksum|(0, &vCa|
|00001fe0| 6c 63 75 6c 61 74 65 64 | 43 68 65 63 6b 73 75 6d |lculated|Checksum|
|00001ff0| 29 3b 0d 09 41 64 64 42 | 79 74 65 54 6f 42 69 6e |);..AddB|yteToBin|
|00002000| 48 65 78 43 68 65 63 6b | 73 75 6d 28 30 2c 20 26 |HexCheck|sum(0, &|
|00002010| 76 43 61 6c 63 75 6c 61 | 74 65 64 43 68 65 63 6b |vCalcula|tedCheck|
|00002020| 73 75 6d 29 3b 0d 09 0d | 09 69 66 20 28 76 42 69 |sum);...|.if (vBi|
|00002030| 6e 48 65 78 42 75 66 66 | 65 72 2d 3e 42 79 74 65 |nHexBuff|er->Byte|
|00002040| 73 41 76 61 69 6c 61 62 | 6c 65 20 3c 20 73 69 7a |sAvailab|le < siz|
|00002050| 65 6f 66 28 55 49 6e 74 | 31 36 29 29 20 7b 0d 09 |eof(UInt|16)) {..|
|00002060| 09 76 45 72 72 20 3d 20 | 42 69 6e 48 65 78 42 75 |.vErr = |BinHexBu|
|00002070| 66 66 65 72 5f 4c 6f 61 | 64 46 72 6f 6d 46 69 6c |ffer_Loa|dFromFil|
|00002080| 65 28 76 42 69 6e 48 65 | 78 42 75 66 66 65 72 2c |e(vBinHe|xBuffer,|
|00002090| 20 76 49 6e 70 75 74 42 | 75 66 66 65 72 2c 20 76 | vInputB|uffer, v|
|000020a0| 53 6f 75 72 63 65 46 69 | 6c 65 52 65 66 29 3b 0d |SourceFi|leRef);.|
|000020b0| 09 09 69 66 20 28 76 45 | 72 72 20 21 3d 20 6e 6f |..if (vE|rr != no|
|000020c0| 45 72 72 29 20 67 6f 74 | 6f 20 65 72 72 6f 72 45 |Err) got|o errorE|
|000020d0| 78 69 74 35 3b 0d 09 09 | 7d 0d 09 09 0d 09 76 45 |xit5;...|}.....vE|
|000020e0| 72 72 20 3d 20 42 69 6e | 48 65 78 42 75 66 66 65 |rr = Bin|HexBuffe|
|000020f0| 72 5f 52 65 61 64 42 79 | 74 65 73 28 76 42 69 6e |r_ReadBy|tes(vBin|
|00002100| 48 65 78 42 75 66 66 65 | 72 2c 20 28 55 49 6e 74 |HexBuffe|r, (UInt|
|00002110| 38 20 2a 29 26 76 46 69 | 6c 65 43 68 65 63 6b 73 |8 *)&vFi|leChecks|
|00002120| 75 6d 2c 20 73 69 7a 65 | 6f 66 28 55 49 6e 74 31 |um, size|of(UInt1|
|00002130| 36 29 2c 20 6e 69 6c 29 | 3b 0d 09 69 66 20 28 76 |6), nil)|;..if (v|
|00002140| 45 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |Err != n|oErr) go|
|00002150| 74 6f 20 65 72 72 6f 72 | 45 78 69 74 35 3b 0d 09 |to error|Exit5;..|
|00002160| 0d 23 69 66 20 21 63 49 | 67 6e 6f 72 65 43 68 65 |.#if !cI|gnoreChe|
|00002170| 63 6b 73 75 6d 73 09 0d | 09 69 66 20 28 76 43 61 |cksums..|.if (vCa|
|00002180| 6c 63 75 6c 61 74 65 64 | 43 68 65 63 6b 73 75 6d |lculated|Checksum|
|00002190| 20 21 3d 20 76 46 69 6c | 65 43 68 65 63 6b 73 75 | != vFil|eChecksu|
|000021a0| 6d 29 0d 09 09 67 6f 74 | 6f 20 65 72 72 6f 72 45 |m)...got|o errorE|
|000021b0| 78 69 74 35 3b 0d 23 65 | 6e 64 69 66 0d 09 0d 09 |xit5;.#e|ndif....|
|000021c0| 2f 2f 20 43 6c 6f 73 65 | 20 74 68 65 20 72 65 73 |// Close| the res|
|000021d0| 6f 75 72 63 65 20 66 6f | 72 6b 0d 09 0d 09 46 53 |ource fo|rk....FS|
|000021e0| 43 6c 6f 73 65 28 76 44 | 65 73 74 46 69 6c 65 52 |Close(vD|estFileR|
|000021f0| 65 66 29 3b 0d 09 0d 09 | 2f 2f 20 43 6c 6f 73 65 |ef);....|// Close|
|00002200| 20 74 68 65 20 73 6f 75 | 72 63 65 20 66 69 6c 65 | the sou|rce file|
|00002210| 0d 09 0d 09 42 69 6e 48 | 65 78 42 75 66 66 65 72 |....BinH|exBuffer|
|00002220| 5f 44 69 73 70 6f 73 65 | 28 76 42 69 6e 48 65 78 |_Dispose|(vBinHex|
|00002230| 42 75 66 66 65 72 29 3b | 0d 09 49 6e 70 75 74 42 |Buffer);|..InputB|
|00002240| 75 66 66 65 72 5f 44 69 | 73 70 6f 73 65 28 76 49 |uffer_Di|spose(vI|
|00002250| 6e 70 75 74 42 75 66 66 | 65 72 29 3b 0d 09 46 53 |nputBuff|er);..FS|
|00002260| 43 6c 6f 73 65 28 76 53 | 6f 75 72 63 65 46 69 6c |Close(vS|ourceFil|
|00002270| 65 52 65 66 29 3b 0d 09 | 0d 09 69 66 20 28 72 44 |eRef);..|..if (rD|
|00002280| 65 73 74 46 69 6c 65 20 | 21 3d 20 6e 69 6c 29 0d |estFile |!= nil).|
|00002290| 09 09 2a 72 44 65 73 74 | 46 69 6c 65 20 3d 20 76 |..*rDest|File = v|
|000022a0| 44 65 73 74 46 69 6c 65 | 3b 0d 09 0d 09 72 65 74 |DestFile|;....ret|
|000022b0| 75 72 6e 20 74 72 75 65 | 3b 0d 0d 65 72 72 6f 72 |urn true|;..error|
|000022c0| 45 78 69 74 35 3a 0d 09 | 46 53 43 6c 6f 73 65 28 |Exit5:..|FSClose(|
|000022d0| 76 44 65 73 74 46 69 6c | 65 52 65 66 29 3b 0d 09 |vDestFil|eRef);..|
|000022e0| 0d 65 72 72 6f 72 45 78 | 69 74 34 3a 0d 09 46 53 |.errorEx|it4:..FS|
|000022f0| 70 44 65 6c 65 74 65 28 | 26 76 44 65 73 74 46 69 |pDelete(|&vDestFi|
|00002300| 6c 65 29 3b 0d 0d 65 72 | 72 6f 72 45 78 69 74 33 |le);..er|rorExit3|
|00002310| 3a 0d 09 42 69 6e 48 65 | 78 42 75 66 66 65 72 5f |:..BinHe|xBuffer_|
|00002320| 44 69 73 70 6f 73 65 28 | 76 42 69 6e 48 65 78 42 |Dispose(|vBinHexB|
|00002330| 75 66 66 65 72 29 3b 0d | 09 09 0d 65 72 72 6f 72 |uffer);.|...error|
|00002340| 45 78 69 74 32 3a 0d 09 | 49 6e 70 75 74 42 75 66 |Exit2:..|InputBuf|
|00002350| 66 65 72 5f 44 69 73 70 | 6f 73 65 28 76 49 6e 70 |fer_Disp|ose(vInp|
|00002360| 75 74 42 75 66 66 65 72 | 29 3b 0d 09 0d 65 72 72 |utBuffer|);...err|
|00002370| 6f 72 45 78 69 74 3a 0d | 09 46 53 43 6c 6f 73 65 |orExit:.|.FSClose|
|00002380| 28 76 53 6f 75 72 63 65 | 46 69 6c 65 52 65 66 29 |(vSource|FileRef)|
|00002390| 3b 0d 09 0d 09 72 65 74 | 75 72 6e 20 66 61 6c 73 |;....ret|urn fals|
|000023a0| 65 3b 0d 7d 0d 0d 42 6f | 6f 6c 65 61 6e 09 49 73 |e;.}..Bo|olean.Is|
|000023b0| 42 69 6e 48 65 78 46 69 | 6c 65 28 46 53 53 70 65 |BinHexFi|le(FSSpe|
|000023c0| 63 20 2a 70 53 6f 75 72 | 63 65 46 69 6c 65 2c 20 |c *pSour|ceFile, |
|000023d0| 46 53 53 70 65 63 20 2a | 72 44 65 73 74 46 69 6c |FSSpec *|rDestFil|
|000023e0| 65 29 0d 7b 0d 09 4f 53 | 45 72 72 09 09 09 09 76 |e).{..OS|Err....v|
|000023f0| 45 72 72 3b 0d 09 73 68 | 6f 72 74 09 09 09 09 76 |Err;..sh|ort....v|
|00002400| 53 6f 75 72 63 65 46 69 | 6c 65 52 65 66 3b 0d 09 |SourceFi|leRef;..|
|00002410| 74 49 6e 70 75 74 42 75 | 66 66 65 72 20 2a 09 09 |tInputBu|ffer *..|
|00002420| 76 49 6e 70 75 74 42 75 | 66 66 65 72 3b 0d 09 74 |vInputBu|ffer;..t|
|00002430| 42 69 6e 48 65 78 42 75 | 66 66 65 72 20 2a 09 09 |BinHexBu|ffer *..|
|00002440| 76 42 69 6e 48 65 78 42 | 75 66 66 65 72 3b 0d 09 |vBinHexB|uffer;..|
|00002450| 46 53 53 70 65 63 09 09 | 09 09 76 44 65 73 74 46 |FSSpec..|..vDestF|
|00002460| 69 6c 65 3b 0d 09 74 42 | 69 6e 48 65 78 46 69 6c |ile;..tB|inHexFil|
|00002470| 65 48 65 61 64 65 72 09 | 76 48 65 61 64 65 72 3b |eHeader.|vHeader;|
|00002480| 0d 09 42 6f 6f 6c 65 61 | 6e 09 09 09 09 76 48 65 |..Boolea|n....vHe|
|00002490| 61 64 65 72 49 73 56 61 | 6c 69 64 3b 0d 09 0d 09 |aderIsVa|lid;....|
|000024a0| 2f 2f 20 4f 70 65 6e 20 | 74 68 65 20 73 6f 75 72 |// Open |the sour|
|000024b0| 63 65 20 66 69 6c 65 0d | 09 0d 09 76 45 72 72 20 |ce file.|...vErr |
|000024c0| 3d 20 46 53 70 4f 70 65 | 6e 44 46 28 70 53 6f 75 |= FSpOpe|nDF(pSou|
|000024d0| 72 63 65 46 69 6c 65 2c | 20 66 73 52 64 50 65 72 |rceFile,| fsRdPer|
|000024e0| 6d 2c 20 26 76 53 6f 75 | 72 63 65 46 69 6c 65 52 |m, &vSou|rceFileR|
|000024f0| 65 66 29 3b 0d 09 69 66 | 20 28 76 45 72 72 20 21 |ef);..if| (vErr !|
|00002500| 3d 20 6e 6f 45 72 72 29 | 20 72 65 74 75 72 6e 20 |= noErr)| return |
|00002510| 66 61 6c 73 65 3b 0d 09 | 0d 09 69 66 20 28 21 49 |false;..|..if (!I|
|00002520| 6e 70 75 74 42 75 66 66 | 65 72 5f 4e 65 77 28 26 |nputBuff|er_New(&|
|00002530| 76 49 6e 70 75 74 42 75 | 66 66 65 72 29 29 0d 09 |vInputBu|ffer))..|
|00002540| 09 67 6f 74 6f 20 65 72 | 72 6f 72 45 78 69 74 3b |.goto er|rorExit;|
|00002550| 0d 09 0d 09 69 66 20 28 | 21 42 69 6e 48 65 78 42 |....if (|!BinHexB|
|00002560| 75 66 66 65 72 5f 4e 65 | 77 28 26 76 42 69 6e 48 |uffer_Ne|w(&vBinH|
|00002570| 65 78 42 75 66 66 65 72 | 29 29 0d 09 09 67 6f 74 |exBuffer|))...got|
|00002580| 6f 20 65 72 72 6f 72 45 | 78 69 74 32 3b 0d 09 0d |o errorE|xit2;...|
|00002590| 09 2f 2f 20 53 65 61 72 | 63 68 20 66 6f 72 20 74 |.// Sear|ch for t|
|000025a0| 68 65 20 42 69 6e 48 65 | 78 20 68 65 61 64 65 72 |he BinHe|x header|
|000025b0| 0d 09 0d 09 76 45 72 72 | 20 3d 20 49 6e 70 75 74 |....vErr| = Input|
|000025c0| 42 75 66 66 65 72 5f 4c | 6f 61 64 46 72 6f 6d 46 |Buffer_L|oadFromF|
|000025d0| 69 6c 65 28 76 49 6e 70 | 75 74 42 75 66 66 65 72 |ile(vInp|utBuffer|
|000025e0| 2c 20 76 53 6f 75 72 63 | 65 46 69 6c 65 52 65 66 |, vSourc|eFileRef|
|000025f0| 29 3b 0d 09 69 66 20 28 | 76 45 72 72 20 21 3d 20 |);..if (|vErr != |
|00002600| 6e 6f 45 72 72 29 20 67 | 6f 74 6f 20 65 72 72 6f |noErr) g|oto erro|
|00002610| 72 45 78 69 74 33 3b 0d | 0d 20 20 20 20 76 45 72 |rExit3;.|. vEr|
|00002620| 72 20 3d 20 46 69 6e 64 | 42 69 6e 48 65 78 48 65 |r = Find|BinHexHe|
|00002630| 61 64 65 72 28 76 49 6e | 70 75 74 42 75 66 66 65 |ader(vIn|putBuffe|
|00002640| 72 29 3b 0d 09 69 66 20 | 28 76 45 72 72 20 21 3d |r);..if |(vErr !=|
|00002650| 20 6e 6f 45 72 72 29 20 | 67 6f 74 6f 20 65 72 72 | noErr) |goto err|
|00002660| 6f 72 45 78 69 74 33 3b | 0d 09 0d 09 2f 2f 20 52 |orExit3;|....// R|
|00002670| 65 61 64 20 74 68 65 20 | 68 65 61 64 65 72 0d 09 |ead the |header..|
|00002680| 0d 09 76 45 72 72 20 3d | 20 42 69 6e 48 65 78 42 |..vErr =| BinHexB|
|00002690| 75 66 66 65 72 5f 4c 6f | 61 64 46 72 6f 6d 46 69 |uffer_Lo|adFromFi|
|000026a0| 6c 65 28 76 42 69 6e 48 | 65 78 42 75 66 66 65 72 |le(vBinH|exBuffer|
|000026b0| 2c 20 76 49 6e 70 75 74 | 42 75 66 66 65 72 2c 20 |, vInput|Buffer, |
|000026c0| 76 53 6f 75 72 63 65 46 | 69 6c 65 52 65 66 29 3b |vSourceF|ileRef);|
|000026d0| 0d 09 69 66 20 28 76 45 | 72 72 20 21 3d 20 6e 6f |..if (vE|rr != no|
|000026e0| 45 72 72 29 20 67 6f 74 | 6f 20 65 72 72 6f 72 45 |Err) got|o errorE|
|000026f0| 78 69 74 33 3b 0d 09 0d | 20 20 20 20 76 45 72 72 |xit3;...| vErr|
|00002700| 20 3d 20 47 65 74 42 69 | 6e 48 65 78 46 69 6c 65 | = GetBi|nHexFile|
|00002710| 48 65 61 64 65 72 28 76 | 42 69 6e 48 65 78 42 75 |Header(v|BinHexBu|
|00002720| 66 66 65 72 2c 20 26 76 | 48 65 61 64 65 72 49 73 |ffer, &v|HeaderIs|
|00002730| 56 61 6c 69 64 2c 20 26 | 76 48 65 61 64 65 72 29 |Valid, &|vHeader)|
|00002740| 3b 0d 09 69 66 20 28 76 | 45 72 72 20 21 3d 20 6e |;..if (v|Err != n|
|00002750| 6f 45 72 72 29 20 67 6f | 74 6f 20 65 72 72 6f 72 |oErr) go|to error|
|00002760| 45 78 69 74 33 3b 0d 09 | 69 66 20 28 21 76 48 65 |Exit3;..|if (!vHe|
|00002770| 61 64 65 72 49 73 56 61 | 6c 69 64 29 20 67 6f 74 |aderIsVa|lid) got|
|00002780| 6f 20 65 72 72 6f 72 45 | 78 69 74 33 3b 0d 09 0d |o errorE|xit3;...|
|00002790| 09 2f 2f 20 43 72 65 61 | 74 65 20 74 68 65 20 64 |.// Crea|te the d|
|000027a0| 65 73 74 69 6e 61 74 69 | 6f 6e 20 46 53 53 70 65 |estinati|on FSSpe|
|000027b0| 63 0d 09 0d 09 76 44 65 | 73 74 46 69 6c 65 20 3d |c....vDe|stFile =|
|000027c0| 20 2a 70 53 6f 75 72 63 | 65 46 69 6c 65 3b 0d 23 | *pSourc|eFile;.#|
|000027d0| 69 66 20 47 45 4e 45 52 | 41 54 49 4e 47 36 38 4b |if GENER|ATING68K|
|000027e0| 20 0d 09 73 74 72 6e 63 | 70 79 28 28 63 68 61 72 | ..strnc|py((char|
|000027f0| 2a 29 20 26 76 44 65 73 | 74 46 69 6c 65 2e 6e 61 |*) &vDes|tFile.na|
|00002800| 6d 65 5b 31 5d 2c 20 28 | 63 68 61 72 2a 29 20 26 |me[1], (|char*) &|
|00002810| 76 48 65 61 64 65 72 2e | 46 69 6c 65 4e 61 6d 65 |vHeader.|FileName|
|00002820| 5b 31 5d 2c 20 76 48 65 | 61 64 65 72 2e 46 69 6c |[1], vHe|ader.Fil|
|00002830| 65 4e 61 6d 65 5b 30 5d | 29 3b 0d 09 76 44 65 73 |eName[0]|);..vDes|
|00002840| 74 46 69 6c 65 2e 6e 61 | 6d 65 5b 30 5d 20 3d 20 |tFile.na|me[0] = |
|00002850| 76 48 65 61 64 65 72 2e | 46 69 6c 65 4e 61 6d 65 |vHeader.|FileName|
|00002860| 5b 30 5d 3b 0d 23 65 6c | 73 65 0d 09 50 4c 73 74 |[0];.#el|se..PLst|
|00002870| 72 63 70 79 28 76 44 65 | 73 74 46 69 6c 65 2e 6e |rcpy(vDe|stFile.n|
|00002880| 61 6d 65 2c 20 76 48 65 | 61 64 65 72 2e 46 69 6c |ame, vHe|ader.Fil|
|00002890| 65 4e 61 6d 65 29 3b 0d | 23 65 6e 64 69 66 0d 09 |eName);.|#endif..|
|000028a0| 0d 09 2f 2f 20 43 6c 6f | 73 65 20 74 68 65 20 73 |..// Clo|se the s|
|000028b0| 6f 75 72 63 65 20 66 69 | 6c 65 0d 09 0d 09 42 69 |ource fi|le....Bi|
|000028c0| 6e 48 65 78 42 75 66 66 | 65 72 5f 44 69 73 70 6f |nHexBuff|er_Dispo|
|000028d0| 73 65 28 76 42 69 6e 48 | 65 78 42 75 66 66 65 72 |se(vBinH|exBuffer|
|000028e0| 29 3b 0d 09 49 6e 70 75 | 74 42 75 66 66 65 72 5f |);..Inpu|tBuffer_|
|000028f0| 44 69 73 70 6f 73 65 28 | 76 49 6e 70 75 74 42 75 |Dispose(|vInputBu|
|00002900| 66 66 65 72 29 3b 0d 09 | 46 53 43 6c 6f 73 65 28 |ffer);..|FSClose(|
|00002910| 76 53 6f 75 72 63 65 46 | 69 6c 65 52 65 66 29 3b |vSourceF|ileRef);|
|00002920| 0d 09 0d 09 2f 2f 20 52 | 65 74 75 72 6e 0d 09 0d |....// R|eturn...|
|00002930| 09 69 66 20 28 72 44 65 | 73 74 46 69 6c 65 20 21 |.if (rDe|stFile !|
|00002940| 3d 20 6e 69 6c 29 0d 09 | 09 2a 72 44 65 73 74 46 |= nil)..|.*rDestF|
|00002950| 69 6c 65 20 3d 20 76 44 | 65 73 74 46 69 6c 65 3b |ile = vD|estFile;|
|00002960| 0d 09 0d 09 72 65 74 75 | 72 6e 20 74 72 75 65 3b |....retu|rn true;|
|00002970| 0d 0d 65 72 72 6f 72 45 | 78 69 74 33 3a 0d 09 42 |..errorE|xit3:..B|
|00002980| 69 6e 48 65 78 42 75 66 | 66 65 72 5f 44 69 73 70 |inHexBuf|fer_Disp|
|00002990| 6f 73 65 28 76 42 69 6e | 48 65 78 42 75 66 66 65 |ose(vBin|HexBuffe|
|000029a0| 72 29 3b 0d 09 09 0d 65 | 72 72 6f 72 45 78 69 74 |r);....e|rrorExit|
|000029b0| 32 3a 0d 09 49 6e 70 75 | 74 42 75 66 66 65 72 5f |2:..Inpu|tBuffer_|
|000029c0| 44 69 73 70 6f 73 65 28 | 76 49 6e 70 75 74 42 75 |Dispose(|vInputBu|
|000029d0| 66 66 65 72 29 3b 0d 09 | 0d 65 72 72 6f 72 45 78 |ffer);..|.errorEx|
|000029e0| 69 74 3a 0d 09 46 53 43 | 6c 6f 73 65 28 76 53 6f |it:..FSC|lose(vSo|
|000029f0| 75 72 63 65 46 69 6c 65 | 52 65 66 29 3b 0d 09 0d |urceFile|Ref);...|
|00002a00| 09 72 65 74 75 72 6e 20 | 66 61 6c 73 65 3b 0d 7d |.return |false;.}|
|00002a10| 0d 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------|
|00002a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a40| 2d 2d 0d 2f 2f 20 4c 6f | 63 61 6c 20 66 75 6e 63 |--.// Lo|cal func|
|00002a50| 74 69 6f 6e 73 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |tions.//|--------|
|00002a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a80| 2d 2d 2d 2d 2d 2d 0d 0d | 73 74 61 74 69 63 20 4f |------..|static O|
|00002a90| 53 45 72 72 09 53 6b 69 | 70 52 65 74 75 72 6e 28 |SErr.Ski|pReturn(|
|00002aa0| 74 49 6e 70 75 74 42 75 | 66 66 65 72 20 2a 70 42 |tInputBu|ffer *pB|
|00002ab0| 75 66 66 65 72 29 0d 7b | 0d 09 4f 53 45 72 72 09 |uffer).{|..OSErr.|
|00002ac0| 76 45 72 72 3b 0d 09 0d | 09 76 45 72 72 20 3d 20 |vErr;...|.vErr = |
|00002ad0| 6e 6f 45 72 72 3b 0d 09 | 0d 09 64 6f 20 7b 0d 09 |noErr;..|..do {..|
|00002ae0| 09 55 49 6e 74 33 32 09 | 76 49 6e 64 65 78 3b 0d |.UInt32.|vIndex;.|
|00002af0| 09 09 55 49 6e 74 38 20 | 2a 09 76 42 75 66 66 65 |..UInt8 |*.vBuffe|
|00002b00| 72 44 61 74 61 3b 0d 09 | 09 0d 09 09 69 66 20 28 |rData;..|....if (|
|00002b10| 70 42 75 66 66 65 72 2d | 3e 42 79 74 65 73 41 76 |pBuffer-|>BytesAv|
|00002b20| 61 69 6c 61 62 6c 65 20 | 3d 3d 20 30 29 0d 09 09 |ailable |== 0)...|
|00002b30| 09 76 45 72 72 20 3d 20 | 65 6f 66 45 72 72 3b 0d |.vErr = |eofErr;.|
|00002b40| 09 09 0d 09 09 76 42 75 | 66 66 65 72 44 61 74 61 |.....vBu|fferData|
|00002b50| 20 3d 20 26 70 42 75 66 | 66 65 72 2d 3e 42 75 66 | = &pBuf|fer->Buf|
|00002b60| 66 65 72 5b 70 42 75 66 | 66 65 72 2d 3e 42 75 66 |fer[pBuf|fer->Buf|
|00002b70| 66 65 72 4f 66 66 73 65 | 74 5d 3b 0d 09 09 0d 09 |ferOffse|t];.....|
|00002b80| 09 66 6f 72 20 28 76 49 | 6e 64 65 78 20 3d 20 30 |.for (vI|ndex = 0|
|00002b90| 3b 20 76 49 6e 64 65 78 | 20 3c 20 70 42 75 66 66 |; vIndex| < pBuff|
|00002ba0| 65 72 2d 3e 42 79 74 65 | 73 41 76 61 69 6c 61 62 |er->Byte|sAvailab|
|00002bb0| 6c 65 3b 20 76 49 6e 64 | 65 78 2b 2b 29 20 7b 0d |le; vInd|ex++) {.|
|00002bc0| 09 09 09 73 77 69 74 63 | 68 20 28 2a 76 42 75 66 |...switc|h (*vBuf|
|00002bd0| 66 65 72 44 61 74 61 29 | 20 7b 0d 09 09 09 09 63 |ferData)| {.....c|
|00002be0| 61 73 65 20 30 78 30 39 | 3a 0d 09 09 09 09 63 61 |ase 0x09|:.....ca|
|00002bf0| 73 65 20 30 78 30 64 3a | 0d 09 09 09 09 63 61 73 |se 0x0d:|.....cas|
|00002c00| 65 20 30 78 30 61 3a 0d | 09 09 09 09 63 61 73 65 |e 0x0a:.|....case|
|00002c10| 20 27 20 27 3a 0d 09 09 | 09 09 09 62 72 65 61 6b | ' ':...|...break|
|00002c20| 3b 0d 09 09 09 09 0d 09 | 09 09 09 64 65 66 61 75 |;.......|...defau|
|00002c30| 6c 74 3a 0d 09 09 09 09 | 09 70 42 75 66 66 65 72 |lt:.....|.pBuffer|
|00002c40| 2d 3e 42 75 66 66 65 72 | 4f 66 66 73 65 74 20 2b |->Buffer|Offset +|
|00002c50| 3d 20 76 49 6e 64 65 78 | 3b 0d 09 09 09 09 09 70 |= vIndex|;......p|
|00002c60| 42 75 66 66 65 72 2d 3e | 42 79 74 65 73 41 76 61 |Buffer->|BytesAva|
|00002c70| 69 6c 61 62 6c 65 20 2d | 3d 20 76 49 6e 64 65 78 |ilable -|= vIndex|
|00002c80| 3b 0d 09 09 09 09 09 0d | 09 09 09 09 09 72 65 74 |;.......|.....ret|
|00002c90| 75 72 6e 20 6e 6f 45 72 | 72 3b 0d 09 09 09 09 7d |urn noEr|r;.....}|
|00002ca0| 20 2f 2f 20 73 77 69 74 | 63 68 0d 09 09 09 0d 09 | // swit|ch......|
|00002cb0| 09 09 76 42 75 66 66 65 | 72 44 61 74 61 2b 2b 3b |..vBuffe|rData++;|
|00002cc0| 0d 09 09 09 7d 20 2f 2f | 20 66 6f 72 0d 09 09 0d |....} //| for....|
|00002cd0| 09 09 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |..pBuffe|r->Buffe|
|00002ce0| 72 4f 66 66 73 65 74 20 | 3d 20 70 42 75 66 66 65 |rOffset |= pBuffe|
|00002cf0| 72 2d 3e 42 79 74 65 73 | 49 6e 42 75 66 66 65 72 |r->Bytes|InBuffer|
|00002d00| 3b 0d 09 09 70 42 75 66 | 66 65 72 2d 3e 42 79 74 |;...pBuf|fer->Byt|
|00002d10| 65 73 41 76 61 69 6c 61 | 62 6c 65 20 3d 20 30 3b |esAvaila|ble = 0;|
|00002d20| 0d 09 09 0d 09 09 7d 20 | 77 68 69 6c 65 20 28 76 |......} |while (v|
|00002d30| 45 72 72 20 3d 3d 20 6e | 6f 45 72 72 29 3b 0d 09 |Err == n|oErr);..|
|00002d40| 0d 09 72 65 74 75 72 6e | 20 76 45 72 72 3b 0d 7d |..return| vErr;.}|
|00002d50| 0d 0d 73 74 61 74 69 63 | 20 4f 53 45 72 72 09 52 |..static| OSErr.R|
|00002d60| 65 61 64 46 69 6c 65 54 | 6f 52 65 74 75 72 6e 28 |eadFileT|oReturn(|
|00002d70| 74 49 6e 70 75 74 42 75 | 66 66 65 72 20 2a 70 42 |tInputBu|ffer *pB|
|00002d80| 75 66 66 65 72 2c 20 42 | 6f 6f 6c 65 61 6e 20 70 |uffer, B|oolean p|
|00002d90| 4b 65 65 70 53 70 61 63 | 65 73 2c 20 76 6f 69 64 |KeepSpac|es, void|
|00002da0| 20 2a 70 44 61 74 61 2c | 20 6c 6f 6e 67 20 70 4d | *pData,| long pM|
|00002db0| 61 78 4c 65 6e 67 74 68 | 2c 20 6c 6f 6e 67 20 2a |axLength|, long *|
|00002dc0| 72 41 63 74 75 61 6c 4c | 65 6e 67 74 68 29 0d 7b |rActualL|ength).{|
|00002dd0| 0d 09 4f 53 45 72 72 09 | 76 45 72 72 3b 0d 09 55 |..OSErr.|vErr;..U|
|00002de0| 49 6e 74 38 20 2a 09 76 | 52 65 61 64 44 61 74 61 |Int8 *.v|ReadData|
|00002df0| 3b 0d 09 6c 6f 6e 67 09 | 76 41 63 74 75 61 6c 4c |;..long.|vActualL|
|00002e00| 65 6e 67 74 68 3b 0d 09 | 0d 09 76 45 72 72 20 3d |ength;..|..vErr =|
|00002e10| 20 6e 6f 45 72 72 3b 0d | 09 0d 09 76 52 65 61 64 | noErr;.|...vRead|
|00002e20| 44 61 74 61 20 3d 20 28 | 55 49 6e 74 38 20 2a 29 |Data = (|UInt8 *)|
|00002e30| 70 44 61 74 61 3b 0d 09 | 76 41 63 74 75 61 6c 4c |pData;..|vActualL|
|00002e40| 65 6e 67 74 68 20 3d 20 | 30 3b 0d 09 0d 09 64 6f |ength = |0;....do|
|00002e50| 20 7b 0d 09 09 55 49 6e | 74 33 32 09 76 49 6e 64 | {...UIn|t32.vInd|
|00002e60| 65 78 3b 0d 09 09 55 49 | 6e 74 38 20 2a 09 76 42 |ex;...UI|nt8 *.vB|
|00002e70| 75 66 66 65 72 44 61 74 | 61 3b 0d 09 09 0d 09 09 |ufferDat|a;......|
|00002e80| 69 66 20 28 70 42 75 66 | 66 65 72 2d 3e 42 79 74 |if (pBuf|fer->Byt|
|00002e90| 65 73 41 76 61 69 6c 61 | 62 6c 65 20 3d 3d 20 30 |esAvaila|ble == 0|
|00002ea0| 29 0d 09 09 09 76 45 72 | 72 20 3d 20 65 6f 66 45 |)....vEr|r = eofE|
|00002eb0| 72 72 3b 0d 09 09 0d 09 | 09 76 42 75 66 66 65 72 |rr;.....|.vBuffer|
|00002ec0| 44 61 74 61 20 3d 20 26 | 70 42 75 66 66 65 72 2d |Data = &|pBuffer-|
|00002ed0| 3e 42 75 66 66 65 72 5b | 70 42 75 66 66 65 72 2d |>Buffer[|pBuffer-|
|00002ee0| 3e 42 75 66 66 65 72 4f | 66 66 73 65 74 5d 3b 0d |>BufferO|ffset];.|
|00002ef0| 09 09 0d 09 09 66 6f 72 | 20 28 76 49 6e 64 65 78 |.....for| (vIndex|
|00002f00| 20 3d 20 30 3b 20 76 49 | 6e 64 65 78 20 3c 20 70 | = 0; vI|ndex < p|
|00002f10| 42 75 66 66 65 72 2d 3e | 42 79 74 65 73 41 76 61 |Buffer->|BytesAva|
|00002f20| 69 6c 61 62 6c 65 3b 20 | 76 49 6e 64 65 78 2b 2b |ilable; |vIndex++|
|00002f30| 29 20 7b 0d 09 09 09 73 | 77 69 74 63 68 20 28 2a |) {....s|witch (*|
|00002f40| 76 42 75 66 66 65 72 44 | 61 74 61 29 20 7b 0d 09 |vBufferD|ata) {..|
|00002f50| 09 09 09 63 61 73 65 20 | 30 78 30 39 3a 0d 09 09 |...case |0x09:...|
|00002f60| 09 09 63 61 73 65 20 30 | 78 30 64 3a 0d 09 09 09 |..case 0|x0d:....|
|00002f70| 09 63 61 73 65 20 30 78 | 30 61 3a 0d 09 09 09 09 |.case 0x|0a:.....|
|00002f80| 63 61 73 65 20 27 20 27 | 3a 0d 09 09 09 09 09 0d |case ' '|:.......|
|00002f90| 09 09 09 09 09 69 66 20 | 28 28 2a 76 42 75 66 66 |.....if |((*vBuff|
|00002fa0| 65 72 44 61 74 61 20 21 | 3d 20 27 20 27 29 20 7c |erData !|= ' ') ||
|00002fb0| 7c 20 28 21 70 4b 65 65 | 70 53 70 61 63 65 73 29 || (!pKee|pSpaces)|
|00002fc0| 29 20 7b 0d 09 09 09 09 | 09 09 70 42 75 66 66 65 |) {.....|..pBuffe|
|00002fd0| 72 2d 3e 42 75 66 66 65 | 72 4f 66 66 73 65 74 20 |r->Buffe|rOffset |
|00002fe0| 2b 3d 20 76 49 6e 64 65 | 78 20 2b 20 31 3b 0d 09 |+= vInde|x + 1;..|
|00002ff0| 09 09 09 09 09 70 42 75 | 66 66 65 72 2d 3e 42 79 |.....pBu|ffer->By|
|00003000| 74 65 73 41 76 61 69 6c | 61 62 6c 65 20 2d 3d 20 |tesAvail|able -= |
|00003010| 76 49 6e 64 65 78 20 2b | 20 31 3b 0d 09 09 09 09 |vIndex +| 1;.....|
|00003020| 09 09 0d 09 09 09 09 09 | 09 69 66 20 28 72 41 63 |........|.if (rAc|
|00003030| 74 75 61 6c 4c 65 6e 67 | 74 68 20 21 3d 20 6e 69 |tualLeng|th != ni|
|00003040| 6c 29 0d 09 09 09 09 09 | 09 09 2a 72 41 63 74 75 |l)......|..*rActu|
|00003050| 61 6c 4c 65 6e 67 74 68 | 20 3d 20 76 41 63 74 75 |alLength| = vActu|
|00003060| 61 6c 4c 65 6e 67 74 68 | 3b 0d 09 09 09 09 09 09 |alLength|;.......|
|00003070| 0d 09 09 09 09 09 09 72 | 65 74 75 72 6e 20 6e 6f |.......r|eturn no|
|00003080| 45 72 72 3b 0d 09 09 09 | 09 09 09 7d 0d 09 09 09 |Err;....|...}....|
|00003090| 09 09 0d 09 09 09 09 09 | 2f 2f 20 46 61 6c 6c 20 |........|// Fall |
|000030a0| 74 68 72 6f 75 67 68 20 | 74 6f 20 6b 65 65 70 20 |through |to keep |
|000030b0| 73 70 61 63 65 20 63 68 | 61 72 61 63 74 65 72 73 |space ch|aracters|
|000030c0| 0d 09 09 09 09 0d 09 09 | 09 09 64 65 66 61 75 6c |........|..defaul|
|000030d0| 74 3a 0d 09 09 09 09 09 | 2a 76 52 65 61 64 44 61 |t:......|*vReadDa|
|000030e0| 74 61 20 3d 20 2a 76 42 | 75 66 66 65 72 44 61 74 |ta = *vB|ufferDat|
|000030f0| 61 3b 0d 09 09 09 09 09 | 76 52 65 61 64 44 61 74 |a;......|vReadDat|
|00003100| 61 2b 2b 3b 0d 09 09 09 | 09 09 76 41 63 74 75 61 |a++;....|..vActua|
|00003110| 6c 4c 65 6e 67 74 68 2b | 2b 3b 0d 09 09 09 09 09 |lLength+|+;......|
|00003120| 70 4d 61 78 4c 65 6e 67 | 74 68 2d 2d 3b 0d 09 09 |pMaxLeng|th--;...|
|00003130| 09 09 09 0d 09 09 09 09 | 09 69 66 20 28 70 4d 61 |........|.if (pMa|
|00003140| 78 4c 65 6e 67 74 68 20 | 3d 3d 20 30 29 20 7b 0d |xLength |== 0) {.|
|00003150| 09 09 09 09 09 09 70 42 | 75 66 66 65 72 2d 3e 42 |......pB|uffer->B|
|00003160| 75 66 66 65 72 4f 66 66 | 73 65 74 20 2b 3d 20 76 |ufferOff|set += v|
|00003170| 49 6e 64 65 78 20 2b 20 | 31 3b 0d 09 09 09 09 09 |Index + |1;......|
|00003180| 09 70 42 75 66 66 65 72 | 2d 3e 42 79 74 65 73 41 |.pBuffer|->BytesA|
|00003190| 76 61 69 6c 61 62 6c 65 | 20 2d 3d 20 76 49 6e 64 |vailable| -= vInd|
|000031a0| 65 78 20 2b 20 31 3b 0d | 09 09 09 09 09 09 0d 09 |ex + 1;.|........|
|000031b0| 09 09 09 09 09 69 66 20 | 28 72 41 63 74 75 61 6c |.....if |(rActual|
|000031c0| 4c 65 6e 67 74 68 20 21 | 3d 20 6e 69 6c 29 0d 09 |Length !|= nil)..|
|000031d0| 09 09 09 09 09 09 2a 72 | 41 63 74 75 61 6c 4c 65 |......*r|ActualLe|
|000031e0| 6e 67 74 68 20 3d 20 76 | 41 63 74 75 61 6c 4c 65 |ngth = v|ActualLe|
|000031f0| 6e 67 74 68 3b 0d 09 09 | 09 09 09 09 0d 09 09 09 |ngth;...|........|
|00003200| 09 09 09 72 65 74 75 72 | 6e 20 6e 6f 45 72 72 3b |...retur|n noErr;|
|00003210| 0d 09 09 09 09 09 09 7d | 0d 09 09 09 09 09 0d 09 |.......}|........|
|00003220| 09 09 09 09 62 72 65 61 | 6b 3b 0d 09 09 09 09 7d |....brea|k;.....}|
|00003230| 20 2f 2f 20 73 77 69 74 | 63 68 0d 09 09 09 0d 09 | // swit|ch......|
|00003240| 09 09 76 42 75 66 66 65 | 72 44 61 74 61 2b 2b 3b |..vBuffe|rData++;|
|00003250| 0d 09 09 09 7d 20 2f 2f | 20 66 6f 72 0d 09 09 0d |....} //| for....|
|00003260| 09 09 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |..pBuffe|r->Buffe|
|00003270| 72 4f 66 66 73 65 74 20 | 3d 20 70 42 75 66 66 65 |rOffset |= pBuffe|
|00003280| 72 2d 3e 42 79 74 65 73 | 49 6e 42 75 66 66 65 72 |r->Bytes|InBuffer|
|00003290| 3b 0d 09 09 70 42 75 66 | 66 65 72 2d 3e 42 79 74 |;...pBuf|fer->Byt|
|000032a0| 65 73 41 76 61 69 6c 61 | 62 6c 65 20 3d 20 30 3b |esAvaila|ble = 0;|
|000032b0| 0d 09 09 0d 09 09 7d 20 | 77 68 69 6c 65 20 28 76 |......} |while (v|
|000032c0| 45 72 72 20 3d 3d 20 6e | 6f 45 72 72 29 3b 0d 09 |Err == n|oErr);..|
|000032d0| 0d 09 72 65 74 75 72 6e | 20 76 45 72 72 3b 0d 7d |..return| vErr;.}|
|000032e0| 0d 0d 73 74 61 74 69 63 | 20 4f 53 45 72 72 09 52 |..static| OSErr.R|
|000032f0| 65 61 64 4f 6e 65 43 68 | 61 72 61 63 74 65 72 28 |eadOneCh|aracter(|
|00003300| 74 49 6e 70 75 74 42 75 | 66 66 65 72 20 2a 70 42 |tInputBu|ffer *pB|
|00003310| 75 66 66 65 72 2c 20 63 | 68 61 72 20 2a 72 43 68 |uffer, c|har *rCh|
|00003320| 61 72 61 63 74 65 72 29 | 0d 7b 0d 09 69 66 20 28 |aracter)|.{..if (|
|00003330| 70 42 75 66 66 65 72 2d | 3e 42 79 74 65 73 41 76 |pBuffer-|>BytesAv|
|00003340| 61 69 6c 61 62 6c 65 20 | 3d 3d 20 30 29 0d 09 09 |ailable |== 0)...|
|00003350| 72 65 74 75 72 6e 20 65 | 6f 66 45 72 72 3b 0d 09 |return e|ofErr;..|
|00003360| 0d 09 2a 72 43 68 61 72 | 61 63 74 65 72 20 3d 20 |..*rChar|acter = |
|00003370| 70 42 75 66 66 65 72 2d | 3e 42 75 66 66 65 72 5b |pBuffer-|>Buffer[|
|00003380| 70 42 75 66 66 65 72 2d | 3e 42 75 66 66 65 72 4f |pBuffer-|>BufferO|
|00003390| 66 66 73 65 74 5d 3b 0d | 09 70 42 75 66 66 65 72 |ffset];.|.pBuffer|
|000033a0| 2d 3e 42 75 66 66 65 72 | 4f 66 66 73 65 74 2b 2b |->Buffer|Offset++|
|000033b0| 3b 0d 09 70 42 75 66 66 | 65 72 2d 3e 42 79 74 65 |;..pBuff|er->Byte|
|000033c0| 73 41 76 61 69 6c 61 62 | 6c 65 2d 2d 3b 0d 09 0d |sAvailab|le--;...|
|000033d0| 09 72 65 74 75 72 6e 20 | 6e 6f 45 72 72 3b 0d 7d |.return |noErr;.}|
|000033e0| 0d 0d 23 69 66 64 65 66 | 20 5f 4d 53 43 5f 56 45 |..#ifdef| _MSC_VE|
|000033f0| 52 0d 63 68 61 72 20 73 | 7a 42 69 6e 48 65 78 46 |R.char s|zBinHexF|
|00003400| 69 6c 65 48 65 61 64 65 | 72 5b 34 30 5d 20 3d 20 |ileHeade|r[40] = |
|00003410| 22 28 54 68 69 73 20 66 | 69 6c 65 20 6d 75 73 74 |"(This f|ile must|
|00003420| 20 62 65 20 63 6f 6e 76 | 65 72 74 65 64 20 77 69 | be conv|erted wi|
|00003430| 74 68 20 42 69 6e 48 65 | 78 22 3b 0d 23 65 6e 64 |th BinHe|x";.#end|
|00003440| 69 66 0d 0d 73 74 61 74 | 69 63 20 4f 53 45 72 72 |if..stat|ic OSErr|
|00003450| 09 46 69 6e 64 42 69 6e | 48 65 78 48 65 61 64 65 |.FindBin|HexHeade|
|00003460| 72 28 74 49 6e 70 75 74 | 42 75 66 66 65 72 20 2a |r(tInput|Buffer *|
|00003470| 70 42 75 66 66 65 72 29 | 0d 7b 0d 09 53 74 72 32 |pBuffer)|.{..Str2|
|00003480| 35 35 09 09 76 54 65 78 | 74 3b 0d 09 4f 53 45 72 |55..vTex|t;..OSEr|
|00003490| 72 09 09 76 45 72 72 3b | 0d 09 6c 6f 6e 67 09 09 |r..vErr;|..long..|
|000034a0| 76 41 63 74 75 61 6c 4c | 65 6e 67 74 68 3b 0d 09 |vActualL|ength;..|
|000034b0| 42 6f 6f 6c 65 61 6e 09 | 09 76 46 6f 75 6e 64 53 |Boolean.|.vFoundS|
|000034c0| 74 72 69 6e 67 31 3b 0d | 09 0d 09 76 46 6f 75 6e |tring1;.|...vFoun|
|000034d0| 64 53 74 72 69 6e 67 31 | 20 3d 20 66 61 6c 73 65 |dString1| = false|
|000034e0| 3b 0d 09 0d 09 64 6f 20 | 7b 0d 09 09 76 45 72 72 |;....do |{...vErr|
|000034f0| 20 3d 20 53 6b 69 70 52 | 65 74 75 72 6e 28 70 42 | = SkipR|eturn(pB|
|00003500| 75 66 66 65 72 29 3b 0d | 09 09 69 66 20 28 76 45 |uffer);.|..if (vE|
|00003510| 72 72 20 21 3d 20 6e 6f | 45 72 72 29 20 72 65 74 |rr != no|Err) ret|
|00003520| 75 72 6e 20 76 45 72 72 | 3b 0d 09 09 0d 09 09 76 |urn vErr|;......v|
|00003530| 45 72 72 20 3d 20 52 65 | 61 64 46 69 6c 65 54 6f |Err = Re|adFileTo|
|00003540| 52 65 74 75 72 6e 28 70 | 42 75 66 66 65 72 2c 20 |Return(p|Buffer, |
|00003550| 74 72 75 65 2c 20 26 76 | 54 65 78 74 5b 31 5d 2c |true, &v|Text[1],|
|00003560| 20 73 69 7a 65 6f 66 28 | 76 54 65 78 74 29 20 2d | sizeof(|vText) -|
|00003570| 20 31 2c 20 26 76 41 63 | 74 75 61 6c 4c 65 6e 67 | 1, &vAc|tualLeng|
|00003580| 74 68 29 3b 0d 09 09 69 | 66 20 28 76 45 72 72 20 |th);...i|f (vErr |
|00003590| 21 3d 20 6e 6f 45 72 72 | 29 20 72 65 74 75 72 6e |!= noErr|) return|
|000035a0| 20 76 45 72 72 3b 0d 09 | 09 0d 23 69 66 64 65 66 | vErr;..|..#ifdef|
|000035b0| 20 5f 4d 53 43 5f 56 45 | 52 0d 09 09 2f 2f 09 54 | _MSC_VE|R...//.T|
|000035c0| 68 65 20 4d 53 56 43 20 | 72 75 6e 74 69 6d 65 73 |he MSVC |runtimes|
|000035d0| 20 64 6f 6e 27 74 20 69 | 6e 63 6c 75 64 65 20 50 | don't i|nclude P|
|000035e0| 4c 70 6f 73 2c 20 73 6f | 20 68 6f 70 65 66 75 6c |Lpos, so| hopeful|
|000035f0| 6c 79 20 74 68 69 73 20 | 69 73 20 61 0d 09 09 2f |ly this |is a.../|
|00003600| 2f 09 72 65 61 73 6f 6e | 61 62 6c 65 20 63 68 65 |/.reason|able che|
|00003610| 63 6b 20 74 6f 20 73 65 | 65 20 69 66 20 74 68 65 |ck to se|e if the|
|00003620| 20 66 69 6c 65 20 62 65 | 67 69 6e 73 20 77 69 74 | file be|gins wit|
|00003630| 68 20 74 68 69 73 20 6d | 61 67 69 63 20 73 74 72 |h this m|agic str|
|00003640| 69 6e 67 2e 0d 09 09 69 | 66 20 28 76 41 63 74 75 |ing....i|f (vActu|
|00003650| 61 6c 4c 65 6e 67 74 68 | 20 3e 3d 20 73 69 7a 65 |alLength| >= size|
|00003660| 6f 66 28 73 7a 42 69 6e | 48 65 78 46 69 6c 65 48 |of(szBin|HexFileH|
|00003670| 65 61 64 65 72 29 20 26 | 26 0d 09 09 09 6d 65 6d |eader) &|&....mem|
|00003680| 63 6d 70 28 73 7a 42 69 | 6e 48 65 78 46 69 6c 65 |cmp(szBi|nHexFile|
|00003690| 48 65 61 64 65 72 2c 20 | 26 76 54 65 78 74 5b 31 |Header, |&vText[1|
|000036a0| 5d 2c 20 73 69 7a 65 6f | 66 28 73 7a 42 69 6e 48 |], sizeo|f(szBinH|
|000036b0| 65 78 46 69 6c 65 48 65 | 61 64 65 72 29 29 20 3d |exFileHe|ader)) =|
|000036c0| 3d 20 30 29 20 7b 0d 23 | 65 6c 73 65 0d 09 09 76 |= 0) {.#|else...v|
|000036d0| 54 65 78 74 5b 30 5d 20 | 3d 20 76 41 63 74 75 61 |Text[0] |= vActua|
|000036e0| 6c 4c 65 6e 67 74 68 3b | 0d 0d 23 69 66 20 47 45 |lLength;|..#if GE|
|000036f0| 4e 45 52 41 54 49 4e 47 | 36 38 4b 20 0d 09 09 69 |NERATING|68K ...i|
|00003700| 66 20 28 20 73 74 72 6e | 63 6d 70 28 28 63 68 61 |f ( strn|cmp((cha|
|00003710| 72 2a 29 20 26 76 54 65 | 78 74 5b 31 5d 2c 20 22 |r*) &vTe|xt[1], "|
|00003720| 28 54 68 69 73 20 66 69 | 6c 65 20 6d 75 73 74 20 |(This fi|le must |
|00003730| 62 65 20 63 6f 6e 76 65 | 72 74 65 64 20 77 69 74 |be conve|rted wit|
|00003740| 68 20 42 69 6e 48 65 78 | 22 2c 20 34 30 29 20 3d |h BinHex|", 40) =|
|00003750| 3d 20 30 20 29 0d 23 65 | 6c 73 65 09 09 0d 09 09 |= 0 ).#e|lse.....|
|00003760| 69 66 20 28 50 4c 70 6f | 73 28 22 5c 70 28 54 68 |if (PLpo|s("\p(Th|
|00003770| 69 73 20 66 69 6c 65 20 | 6d 75 73 74 20 62 65 20 |is file |must be |
|00003780| 63 6f 6e 76 65 72 74 65 | 64 20 77 69 74 68 20 42 |converte|d with B|
|00003790| 69 6e 48 65 78 22 2c 20 | 76 54 65 78 74 29 20 3d |inHex", |vText) =|
|000037a0| 3d 20 31 29 20 0d 23 65 | 6e 64 69 66 0d 09 09 7b |= 1) .#e|ndif...{|
|000037b0| 0d 23 65 6e 64 69 66 0d | 09 09 09 63 68 61 72 09 |.#endif.|...char.|
|000037c0| 76 43 68 61 72 3b 0d 09 | 09 09 0d 09 09 09 76 45 |vChar;..|......vE|
|000037d0| 72 72 20 3d 20 53 6b 69 | 70 52 65 74 75 72 6e 28 |rr = Ski|pReturn(|
|000037e0| 70 42 75 66 66 65 72 29 | 3b 0d 09 09 09 69 66 20 |pBuffer)|;....if |
|000037f0| 28 76 45 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 |(vErr !=| noErr) |
|00003800| 72 65 74 75 72 6e 20 76 | 45 72 72 3b 0d 09 09 09 |return v|Err;....|
|00003810| 0d 09 09 09 76 45 72 72 | 20 3d 20 52 65 61 64 4f |....vErr| = ReadO|
|00003820| 6e 65 43 68 61 72 61 63 | 74 65 72 28 70 42 75 66 |neCharac|ter(pBuf|
|00003830| 66 65 72 2c 20 26 76 43 | 68 61 72 29 3b 0d 09 09 |fer, &vC|har);...|
|00003840| 09 69 66 20 28 76 45 72 | 72 20 21 3d 20 6e 6f 45 |.if (vEr|r != noE|
|00003850| 72 72 29 20 72 65 74 75 | 72 6e 20 76 45 72 72 3b |rr) retu|rn vErr;|
|00003860| 0d 09 09 09 0d 09 09 09 | 69 66 20 28 76 43 68 61 |........|if (vCha|
|00003870| 72 20 3d 3d 20 27 3a 27 | 29 0d 09 09 09 09 72 65 |r == ':'|).....re|
|00003880| 74 75 72 6e 20 6e 6f 45 | 72 72 3b 0d 09 09 09 7d |turn noE|rr;....}|
|00003890| 0d 09 09 0d 09 09 7d 20 | 77 68 69 6c 65 20 28 76 |......} |while (v|
|000038a0| 45 72 72 20 3d 3d 20 6e | 6f 45 72 72 29 3b 0d 09 |Err == n|oErr);..|
|000038b0| 0d 09 72 65 74 75 72 6e | 20 76 45 72 72 3b 0d 7d |..return| vErr;.}|
|000038c0| 0d 0d 65 78 74 65 72 6e | 20 46 53 53 70 65 63 20 |..extern| FSSpec |
|000038d0| 67 46 69 6c 65 53 70 65 | 63 3b 0d 0d 73 74 61 74 |gFileSpe|c;..stat|
|000038e0| 69 63 20 42 6f 6f 6c 65 | 61 6e 09 42 69 6e 48 65 |ic Boole|an.BinHe|
|000038f0| 78 42 75 66 66 65 72 5f | 4e 65 77 28 74 42 69 6e |xBuffer_|New(tBin|
|00003900| 48 65 78 42 75 66 66 65 | 72 20 2a 2a 42 75 66 66 |HexBuffe|r **Buff|
|00003910| 65 72 29 0d 7b 0d 09 42 | 6f 6f 6c 65 61 6e 09 09 |er).{..B|oolean..|
|00003920| 09 52 65 74 75 72 6e 56 | 61 6c 75 65 3b 0d 09 48 |.ReturnV|alue;..H|
|00003930| 61 6e 64 6c 65 09 09 09 | 49 6e 4d 61 70 54 6f 70 |andle...|InMapTop|
|00003940| 48 6e 64 6c 2c 20 43 6f | 6e 76 65 72 73 69 6f 6e |Hndl, Co|nversion|
|00003950| 54 61 62 6c 65 3b 0d 09 | 73 68 6f 72 74 09 09 09 |Table;..|short...|
|00003960| 49 6e 52 65 73 46 69 6c | 65 2c 20 52 65 73 46 69 |InResFil|e, ResFi|
|00003970| 6c 65 3b 0d 0d 09 49 6e | 4d 61 70 54 6f 70 48 6e |le;...In|MapTopHn|
|00003980| 64 6c 20 3d 20 4c 4d 47 | 65 74 54 6f 70 4d 61 70 |dl = LMG|etTopMap|
|00003990| 48 6e 64 6c 28 29 3b 0d | 09 49 6e 52 65 73 46 69 |Hndl();.|.InResFi|
|000039a0| 6c 65 20 3d 20 43 75 72 | 52 65 73 46 69 6c 65 28 |le = Cur|ResFile(|
|000039b0| 29 3b 0d 09 52 65 73 46 | 69 6c 65 20 3d 20 46 53 |);..ResF|ile = FS|
|000039c0| 70 4f 70 65 6e 52 65 73 | 46 69 6c 65 28 26 67 46 |pOpenRes|File(&gF|
|000039d0| 69 6c 65 53 70 65 63 2c | 20 66 73 52 64 50 65 72 |ileSpec,| fsRdPer|
|000039e0| 6d 29 3b 0d 09 52 65 74 | 75 72 6e 56 61 6c 75 65 |m);..Ret|urnValue|
|000039f0| 20 3d 20 52 65 73 46 69 | 6c 65 20 21 3d 20 2d 31 | = ResFi|le != -1|
|00003a00| 20 26 26 20 52 65 73 45 | 72 72 6f 72 28 29 20 3d | && ResE|rror() =|
|00003a10| 3d 20 6e 6f 45 72 72 3b | 0d 09 69 66 20 28 52 65 |= noErr;|..if (Re|
|00003a20| 74 75 72 6e 56 61 6c 75 | 65 29 0d 09 7b 0d 09 09 |turnValu|e)..{...|
|00003a30| 42 6f 6f 6c 65 61 6e 09 | 4f 70 65 6e 65 64 20 3d |Boolean.|Opened =|
|00003a40| 20 4c 4d 47 65 74 54 6f | 70 4d 61 70 48 6e 64 6c | LMGetTo|pMapHndl|
|00003a50| 28 29 20 21 3d 20 49 6e | 4d 61 70 54 6f 70 48 6e |() != In|MapTopHn|
|00003a60| 64 6c 3b 0d 0d 09 09 2a | 42 75 66 66 65 72 20 3d |dl;....*|Buffer =|
|00003a70| 20 28 74 42 69 6e 48 65 | 78 42 75 66 66 65 72 20 | (tBinHe|xBuffer |
|00003a80| 2a 29 4e 65 77 50 74 72 | 43 6c 65 61 72 28 73 69 |*)NewPtr|Clear(si|
|00003a90| 7a 65 6f 66 28 74 42 69 | 6e 48 65 78 42 75 66 66 |zeof(tBi|nHexBuff|
|00003aa0| 65 72 29 29 3b 0d 09 09 | 52 65 74 75 72 6e 56 61 |er));...|ReturnVa|
|00003ab0| 6c 75 65 20 3d 20 4d 65 | 6d 45 72 72 6f 72 28 29 |lue = Me|mError()|
|00003ac0| 20 3d 3d 20 6e 6f 45 72 | 72 3b 0d 09 09 69 66 20 | == noEr|r;...if |
|00003ad0| 28 52 65 74 75 72 6e 56 | 61 6c 75 65 29 0d 09 09 |(ReturnV|alue)...|
|00003ae0| 7b 0d 09 09 09 55 73 65 | 52 65 73 46 69 6c 65 28 |{....Use|ResFile(|
|00003af0| 52 65 73 46 69 6c 65 29 | 3b 0d 09 09 09 43 6f 6e |ResFile)|;....Con|
|00003b00| 76 65 72 73 69 6f 6e 54 | 61 62 6c 65 20 3d 20 47 |versionT|able = G|
|00003b10| 65 74 31 52 65 73 6f 75 | 72 63 65 28 27 48 51 58 |et1Resou|rce('HQX|
|00003b20| 54 27 2c 20 31 32 38 29 | 3b 0d 09 09 09 42 6c 6f |T', 128)|;....Blo|
|00003b30| 63 6b 4d 6f 76 65 28 2a | 43 6f 6e 76 65 72 73 69 |ckMove(*|Conversi|
|00003b40| 6f 6e 54 61 62 6c 65 2c | 20 28 2a 2a 42 75 66 66 |onTable,| (**Buff|
|00003b50| 65 72 29 2e 43 6f 6e 76 | 65 72 73 69 6f 6e 54 61 |er).Conv|ersionTa|
|00003b60| 62 6c 65 2c 20 32 35 36 | 29 3b 0d 09 09 7d 0d 0d |ble, 256|);...}..|
|00003b70| 09 09 2f 2f 09 69 66 20 | 49 20 6f 70 65 6e 65 64 |..//.if |I opened|
|00003b80| 20 74 68 65 20 72 65 73 | 6f 75 72 63 65 20 66 6f | the res|ource fo|
|00003b90| 72 6b 20 61 62 6f 76 65 | 2c 74 68 65 6e 20 49 20 |rk above|,then I |
|00003ba0| 63 6c 6f 73 65 20 69 74 | 0d 09 09 69 66 20 28 4f |close it|...if (O|
|00003bb0| 70 65 6e 65 64 29 0d 09 | 09 09 43 6c 6f 73 65 52 |pened)..|..CloseR|
|00003bc0| 65 73 46 69 6c 65 28 52 | 65 73 46 69 6c 65 29 3b |esFile(R|esFile);|
|00003bd0| 0d 0d 09 7d 0d 0d 09 2f | 2f 09 62 65 20 61 62 73 |...}.../|/.be abs|
|00003be0| 6f 6c 75 74 65 6c 79 20 | 73 75 72 65 20 74 68 61 |olutely |sure tha|
|00003bf0| 74 20 74 68 65 20 72 65 | 73 6f 75 72 63 65 20 63 |t the re|source c|
|00003c00| 68 61 69 6e 20 69 73 20 | 61 73 20 77 65 20 66 6f |hain is |as we fo|
|00003c10| 75 6e 64 20 69 74 0d 09 | 55 73 65 52 65 73 46 69 |und it..|UseResFi|
|00003c20| 6c 65 28 49 6e 52 65 73 | 46 69 6c 65 29 3b 0d 0d |le(InRes|File);..|
|00003c30| 09 72 65 74 75 72 6e 20 | 52 65 74 75 72 6e 56 61 |.return |ReturnVa|
|00003c40| 6c 75 65 3b 0d 7d 0d 0d | 73 74 61 74 69 63 20 76 |lue;.}..|static v|
|00003c50| 6f 69 64 09 09 42 69 6e | 48 65 78 42 75 66 66 65 |oid..Bin|HexBuffe|
|00003c60| 72 5f 44 69 73 70 6f 73 | 65 28 74 42 69 6e 48 65 |r_Dispos|e(tBinHe|
|00003c70| 78 42 75 66 66 65 72 20 | 2a 70 42 75 66 66 65 72 |xBuffer |*pBuffer|
|00003c80| 29 0d 7b 0d 09 44 69 73 | 70 6f 73 65 50 74 72 28 |).{..Dis|posePtr(|
|00003c90| 28 50 74 72 29 70 42 75 | 66 66 65 72 29 3b 0d 7d |(Ptr)pBu|ffer);.}|
|00003ca0| 0d 0d 73 74 61 74 69 63 | 20 4f 53 45 72 72 09 42 |..static| OSErr.B|
|00003cb0| 69 6e 48 65 78 42 75 66 | 66 65 72 5f 4c 6f 61 64 |inHexBuf|fer_Load|
|00003cc0| 46 72 6f 6d 46 69 6c 65 | 28 74 42 69 6e 48 65 78 |FromFile|(tBinHex|
|00003cd0| 42 75 66 66 65 72 20 2a | 70 42 75 66 66 65 72 2c |Buffer *|pBuffer,|
|00003ce0| 20 74 49 6e 70 75 74 42 | 75 66 66 65 72 20 2a 70 | tInputB|uffer *p|
|00003cf0| 49 6e 70 75 74 42 75 66 | 66 65 72 2c 20 73 68 6f |InputBuf|fer, sho|
|00003d00| 72 74 20 70 46 69 6c 65 | 52 65 66 29 0d 7b 0d 09 |rt pFile|Ref).{..|
|00003d10| 4f 53 45 72 72 09 09 76 | 45 72 72 3b 0d 09 55 49 |OSErr..v|Err;..UI|
|00003d20| 6e 74 33 32 09 09 76 42 | 79 74 65 73 55 73 65 64 |nt32..vB|ytesUsed|
|00003d30| 3b 0d 09 0d 09 2f 2f 20 | 4c 6f 61 64 20 74 68 65 |;....// |Load the|
|00003d40| 20 73 6f 75 72 63 65 20 | 62 75 66 66 65 72 0d 09 | source |buffer..|
|00003d50| 0d 09 69 66 20 28 70 49 | 6e 70 75 74 42 75 66 66 |..if (pI|nputBuff|
|00003d60| 65 72 2d 3e 42 79 74 65 | 73 41 76 61 69 6c 61 62 |er->Byte|sAvailab|
|00003d70| 6c 65 20 3d 3d 20 30 29 | 20 7b 0d 09 09 76 45 72 |le == 0)| {...vEr|
|00003d80| 72 20 3d 20 49 6e 70 75 | 74 42 75 66 66 65 72 5f |r = Inpu|tBuffer_|
|00003d90| 4c 6f 61 64 46 72 6f 6d | 46 69 6c 65 28 70 49 6e |LoadFrom|File(pIn|
|00003da0| 70 75 74 42 75 66 66 65 | 72 2c 20 70 46 69 6c 65 |putBuffe|r, pFile|
|00003db0| 52 65 66 29 3b 0d 09 09 | 69 66 20 28 76 45 72 72 |Ref);...|if (vErr|
|00003dc0| 20 21 3d 20 6e 6f 45 72 | 72 29 20 72 65 74 75 72 | != noEr|r) retur|
|00003dd0| 6e 20 76 45 72 72 3b 0d | 09 09 7d 0d 09 0d 09 69 |n vErr;.|..}....i|
|00003de0| 66 20 28 21 42 69 6e 48 | 65 78 42 75 66 66 65 72 |f (!BinH|exBuffer|
|00003df0| 5f 53 74 75 66 66 28 70 | 42 75 66 66 65 72 2c 20 |_Stuff(p|Buffer, |
|00003e00| 26 70 49 6e 70 75 74 42 | 75 66 66 65 72 2d 3e 42 |&pInputB|uffer->B|
|00003e10| 75 66 66 65 72 5b 70 49 | 6e 70 75 74 42 75 66 66 |uffer[pI|nputBuff|
|00003e20| 65 72 2d 3e 42 75 66 66 | 65 72 4f 66 66 73 65 74 |er->Buff|erOffset|
|00003e30| 5d 2c 20 70 49 6e 70 75 | 74 42 75 66 66 65 72 2d |], pInpu|tBuffer-|
|00003e40| 3e 42 79 74 65 73 41 76 | 61 69 6c 61 62 6c 65 2c |>BytesAv|ailable,|
|00003e50| 20 26 76 42 79 74 65 73 | 55 73 65 64 29 29 0d 09 | &vBytes|Used))..|
|00003e60| 09 72 65 74 75 72 6e 20 | 70 61 72 61 6d 45 72 72 |.return |paramErr|
|00003e70| 3b 0d 09 0d 09 70 49 6e | 70 75 74 42 75 66 66 65 |;....pIn|putBuffe|
|00003e80| 72 2d 3e 42 75 66 66 65 | 72 4f 66 66 73 65 74 20 |r->Buffe|rOffset |
|00003e90| 2b 3d 20 76 42 79 74 65 | 73 55 73 65 64 3b 0d 20 |+= vByte|sUsed;. |
|00003ea0| 20 20 20 70 49 6e 70 75 | 74 42 75 66 66 65 72 2d | pInpu|tBuffer-|
|00003eb0| 3e 42 79 74 65 73 41 76 | 61 69 6c 61 62 6c 65 20 |>BytesAv|ailable |
|00003ec0| 2d 3d 20 76 42 79 74 65 | 73 55 73 65 64 3b 0d 09 |-= vByte|sUsed;..|
|00003ed0| 0d 09 72 65 74 75 72 6e | 20 6e 6f 45 72 72 3b 0d |..return| noErr;.|
|00003ee0| 7d 0d 0d 73 74 61 74 69 | 63 20 42 6f 6f 6c 65 61 |}..stati|c Boolea|
|00003ef0| 6e 09 42 69 6e 48 65 78 | 42 75 66 66 65 72 5f 53 |n.BinHex|Buffer_S|
|00003f00| 74 75 66 66 28 74 42 69 | 6e 48 65 78 42 75 66 66 |tuff(tBi|nHexBuff|
|00003f10| 65 72 20 2a 70 42 75 66 | 66 65 72 2c 20 55 49 6e |er *pBuf|fer, UIn|
|00003f20| 74 38 20 2a 70 44 61 74 | 61 2c 20 55 49 6e 74 33 |t8 *pDat|a, UInt3|
|00003f30| 32 20 70 4e 75 6d 62 65 | 72 4f 66 42 79 74 65 73 |2 pNumbe|rOfBytes|
|00003f40| 2c 20 55 49 6e 74 33 32 | 20 2a 72 42 79 74 65 73 |, UInt32| *rBytes|
|00003f50| 53 74 75 66 66 65 64 29 | 0d 7b 0d 09 55 49 6e 74 |Stuffed)|.{..UInt|
|00003f60| 38 20 2a 09 09 76 4e 65 | 78 74 53 6f 75 72 63 65 |8 *..vNe|xtSource|
|00003f70| 42 79 74 65 3b 0d 09 69 | 6e 74 09 09 09 76 48 6f |Byte;..i|nt...vHo|
|00003f80| 6c 64 69 6e 67 50 68 61 | 73 65 3b 0d 09 69 6e 74 |ldingPha|se;..int|
|00003f90| 09 09 09 76 48 6f 6c 64 | 69 6e 67 42 79 74 65 3b |...vHold|ingByte;|
|00003fa0| 0d 09 55 49 6e 74 38 20 | 2a 09 09 76 4e 65 78 74 |..UInt8 |*..vNext|
|00003fb0| 44 65 73 74 42 79 74 65 | 3b 0d 09 69 6e 74 09 09 |DestByte|;..int..|
|00003fc0| 09 76 50 72 65 76 69 6f | 75 73 42 79 74 65 3b 0d |.vPrevio|usByte;.|
|00003fd0| 09 42 6f 6f 6c 65 61 6e | 09 09 76 52 65 70 65 61 |.Boolean|..vRepea|
|00003fe0| 74 46 6c 61 67 46 6f 75 | 6e 64 3b 0d 09 55 49 6e |tFlagFou|nd;..UIn|
|00003ff0| 74 33 32 09 09 76 42 79 | 74 65 73 41 76 61 69 6c |t32..vBy|tesAvail|
|00004000| 61 62 6c 65 3b 0d 09 0d | 09 69 66 20 28 70 42 75 |able;...|.if (pBu|
|00004010| 66 66 65 72 2d 3e 42 79 | 74 65 73 49 6e 42 75 66 |ffer->By|tesInBuf|
|00004020| 66 65 72 20 3d 3d 20 70 | 42 75 66 66 65 72 2d 3e |fer == p|Buffer->|
|00004030| 42 75 66 66 65 72 4f 66 | 66 73 65 74 29 20 7b 0d |BufferOf|fset) {.|
|00004040| 09 09 70 42 75 66 66 65 | 72 2d 3e 42 79 74 65 73 |..pBuffe|r->Bytes|
|00004050| 49 6e 42 75 66 66 65 72 | 20 3d 20 30 3b 0d 09 09 |InBuffer| = 0;...|
|00004060| 70 42 75 66 66 65 72 2d | 3e 42 75 66 66 65 72 4f |pBuffer-|>BufferO|
|00004070| 66 66 73 65 74 20 3d 20 | 30 3b 0d 09 09 7d 0d 09 |ffset = |0;...}..|
|00004080| 0d 09 69 66 20 28 70 42 | 75 66 66 65 72 2d 3e 54 |..if (pB|uffer->T|
|00004090| 65 72 6d 69 6e 61 74 6f | 72 46 6f 75 6e 64 29 0d |erminato|rFound).|
|000040a0| 09 09 72 65 74 75 72 6e | 20 70 4e 75 6d 62 65 72 |..return| pNumber|
|000040b0| 4f 66 42 79 74 65 73 3b | 0d 09 0d 09 2f 2f 20 52 |OfBytes;|....// R|
|000040c0| 65 73 74 6f 72 65 20 6f | 75 72 20 6c 6f 63 61 6c |estore o|ur local|
|000040d0| 20 76 61 72 69 61 62 6c | 65 73 0d 09 0d 09 76 4e | variabl|es....vN|
|000040e0| 65 78 74 53 6f 75 72 63 | 65 42 79 74 65 20 3d 20 |extSourc|eByte = |
|000040f0| 70 44 61 74 61 3b 0d 09 | 76 4e 65 78 74 44 65 73 |pData;..|vNextDes|
|00004100| 74 42 79 74 65 20 3d 20 | 26 70 42 75 66 66 65 72 |tByte = |&pBuffer|
|00004110| 2d 3e 42 75 66 66 65 72 | 5b 70 42 75 66 66 65 72 |->Buffer|[pBuffer|
|00004120| 2d 3e 42 75 66 66 65 72 | 4f 66 66 73 65 74 5d 3b |->Buffer|Offset];|
|00004130| 0d 09 0d 09 76 48 6f 6c | 64 69 6e 67 50 68 61 73 |....vHol|dingPhas|
|00004140| 65 20 3d 20 70 42 75 66 | 66 65 72 2d 3e 48 6f 6c |e = pBuf|fer->Hol|
|00004150| 64 69 6e 67 50 68 61 73 | 65 3b 0d 09 76 48 6f 6c |dingPhas|e;..vHol|
|00004160| 64 69 6e 67 42 79 74 65 | 20 3d 20 70 42 75 66 66 |dingByte| = pBuff|
|00004170| 65 72 2d 3e 48 6f 6c 64 | 69 6e 67 42 79 74 65 3b |er->Hold|ingByte;|
|00004180| 0d 09 76 50 72 65 76 69 | 6f 75 73 42 79 74 65 20 |..vPrevi|ousByte |
|00004190| 3d 20 70 42 75 66 66 65 | 72 2d 3e 50 72 65 76 69 |= pBuffe|r->Previ|
|000041a0| 6f 75 73 42 79 74 65 3b | 0d 09 76 52 65 70 65 61 |ousByte;|..vRepea|
|000041b0| 74 46 6c 61 67 46 6f 75 | 6e 64 20 3d 20 70 42 75 |tFlagFou|nd = pBu|
|000041c0| 66 66 65 72 2d 3e 52 65 | 70 65 61 74 46 6c 61 67 |ffer->Re|peatFlag|
|000041d0| 46 6f 75 6e 64 3b 0d 09 | 0d 09 76 42 79 74 65 73 |Found;..|..vBytes|
|000041e0| 41 76 61 69 6c 61 62 6c | 65 20 3d 20 70 4e 75 6d |Availabl|e = pNum|
|000041f0| 62 65 72 4f 66 42 79 74 | 65 73 3b 0d 09 0d 09 77 |berOfByt|es;....w|
|00004200| 68 69 6c 65 20 28 28 76 | 42 79 74 65 73 41 76 61 |hile ((v|BytesAva|
|00004210| 69 6c 61 62 6c 65 20 3e | 20 30 29 0d 09 20 26 26 |ilable >| 0).. &&|
|00004220| 20 28 21 70 42 75 66 66 | 65 72 2d 3e 54 65 72 6d | (!pBuff|er->Term|
|00004230| 69 6e 61 74 6f 72 46 6f | 75 6e 64 29 0d 09 20 26 |inatorFo|und).. &|
|00004240| 26 20 28 70 42 75 66 66 | 65 72 2d 3e 42 79 74 65 |& (pBuff|er->Byte|
|00004250| 73 49 6e 42 75 66 66 65 | 72 20 3c 20 63 42 75 66 |sInBuffe|r < cBuf|
|00004260| 66 65 72 5f 53 69 7a 65 | 20 2d 20 32 35 36 29 29 |fer_Size| - 256))|
|00004270| 20 7b 0d 09 09 69 6e 74 | 09 09 09 76 42 79 74 65 | {...int|...vByte|
|00004280| 36 3b 0d 09 09 69 6e 74 | 09 09 09 76 42 79 74 65 |6;...int|...vByte|
|00004290| 3b 0d 09 09 0d 09 09 76 | 42 79 74 65 36 20 3d 20 |;......v|Byte6 = |
|000042a0| 70 42 75 66 66 65 72 2d | 3e 43 6f 6e 76 65 72 73 |pBuffer-|>Convers|
|000042b0| 69 6f 6e 54 61 62 6c 65 | 5b 2a 76 4e 65 78 74 53 |ionTable|[*vNextS|
|000042c0| 6f 75 72 63 65 42 79 74 | 65 2b 2b 5d 3b 0d 09 09 |ourceByt|e++];...|
|000042d0| 76 42 79 74 65 73 41 76 | 61 69 6c 61 62 6c 65 2d |vBytesAv|ailable-|
|000042e0| 2d 3b 0d 09 09 0d 09 09 | 69 66 20 28 76 42 79 74 |-;......|if (vByt|
|000042f0| 65 36 20 3c 20 36 34 29 | 20 7b 0d 09 09 09 73 77 |e6 < 64)| {....sw|
|00004300| 69 74 63 68 20 28 76 48 | 6f 6c 64 69 6e 67 50 68 |itch (vH|oldingPh|
|00004310| 61 73 65 29 20 7b 0d 09 | 09 09 09 63 61 73 65 20 |ase) {..|...case |
|00004320| 30 3a 0d 09 09 09 09 09 | 76 48 6f 6c 64 69 6e 67 |0:......|vHolding|
|00004330| 42 79 74 65 20 3d 20 76 | 42 79 74 65 36 20 3c 3c |Byte = v|Byte6 <<|
|00004340| 20 32 3b 0d 09 09 09 09 | 09 76 48 6f 6c 64 69 6e | 2;.....|.vHoldin|
|00004350| 67 50 68 61 73 65 20 3d | 20 31 3b 0d 09 09 09 09 |gPhase =| 1;.....|
|00004360| 09 0d 09 09 09 09 09 63 | 6f 6e 74 69 6e 75 65 3b |.......c|ontinue;|
|00004370| 0d 09 09 09 09 0d 09 09 | 09 09 63 61 73 65 20 31 |........|..case 1|
|00004380| 3a 0d 09 09 09 09 09 76 | 42 79 74 65 20 3d 20 76 |:......v|Byte = v|
|00004390| 48 6f 6c 64 69 6e 67 42 | 79 74 65 20 7c 20 28 76 |HoldingB|yte | (v|
|000043a0| 42 79 74 65 36 20 3e 3e | 20 34 29 3b 0d 09 09 09 |Byte6 >>| 4);....|
|000043b0| 09 09 0d 09 09 09 09 09 | 76 48 6f 6c 64 69 6e 67 |........|vHolding|
|000043c0| 42 79 74 65 20 3d 20 76 | 42 79 74 65 36 20 3c 3c |Byte = v|Byte6 <<|
|000043d0| 20 34 3b 0d 09 09 09 09 | 09 76 48 6f 6c 64 69 6e | 4;.....|.vHoldin|
|000043e0| 67 50 68 61 73 65 20 3d | 20 32 3b 0d 09 09 09 09 |gPhase =| 2;.....|
|000043f0| 09 62 72 65 61 6b 3b 0d | 09 09 09 09 0d 09 09 09 |.break;.|........|
|00004400| 09 63 61 73 65 20 32 3a | 0d 09 09 09 09 09 76 42 |.case 2:|......vB|
|00004410| 79 74 65 20 3d 20 76 48 | 6f 6c 64 69 6e 67 42 79 |yte = vH|oldingBy|
|00004420| 74 65 20 7c 20 28 76 42 | 79 74 65 36 20 3e 3e 20 |te | (vB|yte6 >> |
|00004430| 32 29 3b 0d 09 09 09 09 | 09 0d 09 09 09 09 09 76 |2);.....|.......v|
|00004440| 48 6f 6c 64 69 6e 67 42 | 79 74 65 20 3d 20 76 42 |HoldingB|yte = vB|
|00004450| 79 74 65 36 20 3c 3c 20 | 36 3b 0d 09 09 09 09 09 |yte6 << |6;......|
|00004460| 76 48 6f 6c 64 69 6e 67 | 50 68 61 73 65 20 3d 20 |vHolding|Phase = |
|00004470| 33 3b 0d 09 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |3;......|break;..|
|00004480| 09 09 09 0d 09 09 09 09 | 63 61 73 65 20 33 3a 0d |........|case 3:.|
|00004490| 09 09 09 09 09 76 42 79 | 74 65 20 3d 20 76 48 6f |.....vBy|te = vHo|
|000044a0| 6c 64 69 6e 67 42 79 74 | 65 20 7c 20 76 42 79 74 |ldingByt|e | vByt|
|000044b0| 65 36 3b 0d 09 09 09 09 | 09 0d 09 09 09 09 09 76 |e6;.....|.......v|
|000044c0| 48 6f 6c 64 69 6e 67 50 | 68 61 73 65 20 3d 20 30 |HoldingP|hase = 0|
|000044d0| 3b 0d 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |;......b|reak;...|
|000044e0| 09 09 7d 20 2f 2f 20 73 | 77 69 74 63 68 0d 09 09 |..} // s|witch...|
|000044f0| 09 0d 09 09 09 76 42 79 | 74 65 20 3d 20 76 42 79 |.....vBy|te = vBy|
|00004500| 74 65 20 26 20 30 78 30 | 66 66 3b 0d 09 09 09 0d |te & 0x0|ff;.....|
|00004510| 09 09 09 69 66 20 28 76 | 52 65 70 65 61 74 46 6c |...if (v|RepeatFl|
|00004520| 61 67 46 6f 75 6e 64 29 | 20 7b 0d 09 09 09 09 76 |agFound)| {.....v|
|00004530| 52 65 70 65 61 74 46 6c | 61 67 46 6f 75 6e 64 20 |RepeatFl|agFound |
|00004540| 3d 20 66 61 6c 73 65 3b | 0d 09 09 09 09 0d 09 09 |= false;|........|
|00004550| 09 09 69 66 20 28 76 42 | 79 74 65 20 3d 3d 20 30 |..if (vB|yte == 0|
|00004560| 29 0d 09 09 09 09 09 76 | 42 79 74 65 20 3d 20 30 |)......v|Byte = 0|
|00004570| 78 39 30 3b 0d 09 09 09 | 09 65 6c 73 65 20 7b 0d |x90;....|.else {.|
|00004580| 09 09 09 09 09 77 68 69 | 6c 65 20 28 2d 2d 76 42 |.....whi|le (--vB|
|00004590| 79 74 65 29 20 7b 0d 09 | 09 09 09 09 09 2a 76 4e |yte) {..|.....*vN|
|000045a0| 65 78 74 44 65 73 74 42 | 79 74 65 20 3d 20 76 50 |extDestB|yte = vP|
|000045b0| 72 65 76 69 6f 75 73 42 | 79 74 65 3b 0d 09 09 09 |reviousB|yte;....|
|000045c0| 09 09 09 76 4e 65 78 74 | 44 65 73 74 42 79 74 65 |...vNext|DestByte|
|000045d0| 2b 2b 3b 0d 09 09 09 09 | 09 09 70 42 75 66 66 65 |++;.....|..pBuffe|
|000045e0| 72 2d 3e 42 79 74 65 73 | 49 6e 42 75 66 66 65 72 |r->Bytes|InBuffer|
|000045f0| 2b 2b 3b 0d 09 09 09 09 | 09 09 7d 20 2f 2f 20 66 |++;.....|..} // f|
|00004600| 6f 72 0d 09 09 09 09 09 | 0d 09 09 09 09 09 63 6f |or......|......co|
|00004610| 6e 74 69 6e 75 65 3b 0d | 09 09 09 09 09 7d 0d 09 |ntinue;.|.....}..|
|00004620| 09 09 09 7d 0d 09 09 09 | 65 6c 73 65 20 7b 0d 09 |...}....|else {..|
|00004630| 09 09 09 69 66 20 28 76 | 42 79 74 65 20 3d 3d 20 |...if (v|Byte == |
|00004640| 30 78 39 30 29 20 7b 0d | 09 09 09 09 09 76 52 65 |0x90) {.|.....vRe|
|00004650| 70 65 61 74 46 6c 61 67 | 46 6f 75 6e 64 20 3d 20 |peatFlag|Found = |
|00004660| 74 72 75 65 3b 0d 09 09 | 09 09 09 63 6f 6e 74 69 |true;...|...conti|
|00004670| 6e 75 65 3b 0d 09 09 09 | 09 09 7d 0d 09 09 09 09 |nue;....|..}.....|
|00004680| 7d 0d 09 09 09 0d 09 09 | 09 2a 76 4e 65 78 74 44 |}.......|.*vNextD|
|00004690| 65 73 74 42 79 74 65 2b | 2b 20 3d 20 76 42 79 74 |estByte+|+ = vByt|
|000046a0| 65 3b 0d 09 09 09 70 42 | 75 66 66 65 72 2d 3e 42 |e;....pB|uffer->B|
|000046b0| 79 74 65 73 49 6e 42 75 | 66 66 65 72 2b 2b 3b 0d |ytesInBu|ffer++;.|
|000046c0| 09 09 09 0d 09 09 09 76 | 50 72 65 76 69 6f 75 73 |.......v|Previous|
|000046d0| 42 79 74 65 20 3d 20 76 | 42 79 74 65 3b 0d 09 09 |Byte = v|Byte;...|
|000046e0| 09 7d 0d 09 09 65 6c 73 | 65 20 7b 0d 09 09 09 73 |.}...els|e {....s|
|000046f0| 77 69 74 63 68 20 28 76 | 42 79 74 65 36 29 20 7b |witch (v|Byte6) {|
|00004700| 0d 09 09 09 09 63 61 73 | 65 20 30 78 66 64 3a 20 |.....cas|e 0xfd: |
|00004710| 2f 2f 20 77 68 69 74 65 | 73 70 61 63 65 20 28 6a |// white|space (j|
|00004720| 75 73 74 20 69 67 6e 6f | 72 65 29 0d 09 09 09 09 |ust igno|re).....|
|00004730| 09 62 72 65 61 6b 3b 0d | 09 09 09 09 0d 09 09 09 |.break;.|........|
|00004740| 09 63 61 73 65 20 30 78 | 66 65 3a 0d 09 09 09 09 |.case 0x|fe:.....|
|00004750| 09 70 42 75 66 66 65 72 | 2d 3e 54 65 72 6d 69 6e |.pBuffer|->Termin|
|00004760| 61 74 6f 72 46 6f 75 6e | 64 20 3d 20 74 72 75 65 |atorFoun|d = true|
|00004770| 3b 0d 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |;......b|reak;...|
|00004780| 09 09 0d 09 09 09 09 63 | 61 73 65 20 30 78 66 66 |.......c|ase 0xff|
|00004790| 3a 0d 09 09 09 09 09 72 | 65 74 75 72 6e 20 66 61 |:......r|eturn fa|
|000047a0| 6c 73 65 3b 0d 09 09 09 | 09 7d 20 2f 2f 20 73 77 |lse;....|.} // sw|
|000047b0| 69 74 63 68 0d 09 09 09 | 7d 0d 0d 09 09 7d 20 2f |itch....|}....} /|
|000047c0| 2f 20 77 68 69 6c 65 0d | 09 0d 09 70 42 75 66 66 |/ while.|...pBuff|
|000047d0| 65 72 2d 3e 48 6f 6c 64 | 69 6e 67 50 68 61 73 65 |er->Hold|ingPhase|
|000047e0| 20 3d 20 76 48 6f 6c 64 | 69 6e 67 50 68 61 73 65 | = vHold|ingPhase|
|000047f0| 3b 0d 09 70 42 75 66 66 | 65 72 2d 3e 48 6f 6c 64 |;..pBuff|er->Hold|
|00004800| 69 6e 67 42 79 74 65 20 | 3d 20 76 48 6f 6c 64 69 |ingByte |= vHoldi|
|00004810| 6e 67 42 79 74 65 3b 0d | 09 70 42 75 66 66 65 72 |ngByte;.|.pBuffer|
|00004820| 2d 3e 50 72 65 76 69 6f | 75 73 42 79 74 65 20 3d |->Previo|usByte =|
|00004830| 20 76 50 72 65 76 69 6f | 75 73 42 79 74 65 3b 0d | vPrevio|usByte;.|
|00004840| 09 70 42 75 66 66 65 72 | 2d 3e 52 65 70 65 61 74 |.pBuffer|->Repeat|
|00004850| 46 6c 61 67 46 6f 75 6e | 64 20 3d 20 76 52 65 70 |FlagFoun|d = vRep|
|00004860| 65 61 74 46 6c 61 67 46 | 6f 75 6e 64 3b 0d 09 0d |eatFlagF|ound;...|
|00004870| 09 70 42 75 66 66 65 72 | 2d 3e 42 79 74 65 73 41 |.pBuffer|->BytesA|
|00004880| 76 61 69 6c 61 62 6c 65 | 20 3d 20 70 42 75 66 66 |vailable| = pBuff|
|00004890| 65 72 2d 3e 42 79 74 65 | 73 49 6e 42 75 66 66 65 |er->Byte|sInBuffe|
|000048a0| 72 20 2d 20 70 42 75 66 | 66 65 72 2d 3e 42 75 66 |r - pBuf|fer->Buf|
|000048b0| 66 65 72 4f 66 66 73 65 | 74 3b 0d 09 0d 09 2a 72 |ferOffse|t;....*r|
|000048c0| 42 79 74 65 73 53 74 75 | 66 66 65 64 20 3d 20 70 |BytesStu|ffed = p|
|000048d0| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 20 2d 20 |NumberOf|Bytes - |
|000048e0| 76 42 79 74 65 73 41 76 | 61 69 6c 61 62 6c 65 3b |vBytesAv|ailable;|
|000048f0| 0d 09 0d 09 72 65 74 75 | 72 6e 20 74 72 75 65 3b |....retu|rn true;|
|00004900| 0d 7d 0d 0d 73 74 61 74 | 69 63 20 4f 53 45 72 72 |.}..stat|ic OSErr|
|00004910| 09 42 69 6e 48 65 78 42 | 75 66 66 65 72 5f 52 65 |.BinHexB|uffer_Re|
|00004920| 61 64 42 79 74 65 28 74 | 42 69 6e 48 65 78 42 75 |adByte(t|BinHexBu|
|00004930| 66 66 65 72 20 2a 70 42 | 75 66 66 65 72 2c 20 55 |ffer *pB|uffer, U|
|00004940| 49 6e 74 38 20 2a 72 42 | 79 74 65 2c 20 55 49 6e |Int8 *rB|yte, UIn|
|00004950| 74 31 36 20 2a 72 43 68 | 65 63 6b 73 75 6d 29 0d |t16 *rCh|ecksum).|
|00004960| 7b 0d 09 69 66 20 28 70 | 42 75 66 66 65 72 2d 3e |{..if (p|Buffer->|
|00004970| 42 79 74 65 73 41 76 61 | 69 6c 61 62 6c 65 20 3d |BytesAva|ilable =|
|00004980| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 65 6f |= 0)...r|eturn eo|
|00004990| 66 45 72 72 3b 0d 09 0d | 09 2a 72 42 79 74 65 20 |fErr;...|.*rByte |
|000049a0| 3d 20 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |= pBuffe|r->Buffe|
|000049b0| 72 5b 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |r[pBuffe|r->Buffe|
|000049c0| 72 4f 66 66 73 65 74 5d | 3b 0d 09 70 42 75 66 66 |rOffset]|;..pBuff|
|000049d0| 65 72 2d 3e 42 75 66 66 | 65 72 4f 66 66 73 65 74 |er->Buff|erOffset|
|000049e0| 2b 2b 3b 0d 09 70 42 75 | 66 66 65 72 2d 3e 42 79 |++;..pBu|ffer->By|
|000049f0| 74 65 73 41 76 61 69 6c | 61 62 6c 65 2d 2d 3b 0d |tesAvail|able--;.|
|00004a00| 09 0d 09 69 66 20 28 72 | 43 68 65 63 6b 73 75 6d |...if (r|Checksum|
|00004a10| 20 21 3d 20 6e 69 6c 29 | 0d 09 09 41 64 64 42 79 | != nil)|...AddBy|
|00004a20| 74 65 54 6f 42 69 6e 48 | 65 78 43 68 65 63 6b 73 |teToBinH|exChecks|
|00004a30| 75 6d 28 2a 72 42 79 74 | 65 2c 20 72 43 68 65 63 |um(*rByt|e, rChec|
|00004a40| 6b 73 75 6d 29 3b 0d 09 | 0d 09 72 65 74 75 72 6e |ksum);..|..return|
|00004a50| 20 6e 6f 45 72 72 3b 0d | 7d 0d 0d 73 74 61 74 69 | noErr;.|}..stati|
|00004a60| 63 20 4f 53 45 72 72 09 | 42 69 6e 48 65 78 42 75 |c OSErr.|BinHexBu|
|00004a70| 66 66 65 72 5f 52 65 61 | 64 42 79 74 65 73 28 74 |ffer_Rea|dBytes(t|
|00004a80| 42 69 6e 48 65 78 42 75 | 66 66 65 72 20 2a 70 42 |BinHexBu|ffer *pB|
|00004a90| 75 66 66 65 72 2c 20 55 | 49 6e 74 38 20 2a 70 52 |uffer, U|Int8 *pR|
|00004aa0| 65 61 64 42 75 66 66 65 | 72 2c 20 55 49 6e 74 33 |eadBuffe|r, UInt3|
|00004ab0| 32 20 70 4e 75 6d 62 65 | 72 4f 66 42 79 74 65 73 |2 pNumbe|rOfBytes|
|00004ac0| 2c 20 55 49 6e 74 31 36 | 20 2a 72 43 68 65 63 6b |, UInt16| *rCheck|
|00004ad0| 73 75 6d 29 0d 7b 0d 09 | 69 66 20 28 70 4e 75 6d |sum).{..|if (pNum|
|00004ae0| 62 65 72 4f 66 42 79 74 | 65 73 20 3e 20 70 42 75 |berOfByt|es > pBu|
|00004af0| 66 66 65 72 2d 3e 42 79 | 74 65 73 41 76 61 69 6c |ffer->By|tesAvail|
|00004b00| 61 62 6c 65 29 0d 09 09 | 72 65 74 75 72 6e 20 65 |able)...|return e|
|00004b10| 6f 66 45 72 72 3b 0d 09 | 0d 09 69 66 20 28 70 4e |ofErr;..|..if (pN|
|00004b20| 75 6d 62 65 72 4f 66 42 | 79 74 65 73 20 3d 3d 20 |umberOfB|ytes == |
|00004b30| 30 29 0d 09 09 72 65 74 | 75 72 6e 20 65 6f 66 45 |0)...ret|urn eofE|
|00004b40| 72 72 3b 0d 09 0d 09 42 | 6c 6f 63 6b 4d 6f 76 65 |rr;....B|lockMove|
|00004b50| 28 26 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |(&pBuffe|r->Buffe|
|00004b60| 72 5b 70 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |r[pBuffe|r->Buffe|
|00004b70| 72 4f 66 66 73 65 74 5d | 2c 20 70 52 65 61 64 42 |rOffset]|, pReadB|
|00004b80| 75 66 66 65 72 2c 20 70 | 4e 75 6d 62 65 72 4f 66 |uffer, p|NumberOf|
|00004b90| 42 79 74 65 73 29 3b 0d | 09 0d 09 69 66 20 28 72 |Bytes);.|...if (r|
|00004ba0| 43 68 65 63 6b 73 75 6d | 20 21 3d 20 6e 69 6c 29 |Checksum| != nil)|
|00004bb0| 0d 09 09 41 64 64 42 79 | 74 65 73 54 6f 42 69 6e |...AddBy|tesToBin|
|00004bc0| 48 65 78 43 68 65 63 6b | 73 75 6d 28 70 52 65 61 |HexCheck|sum(pRea|
|00004bd0| 64 42 75 66 66 65 72 2c | 20 70 4e 75 6d 62 65 72 |dBuffer,| pNumber|
|00004be0| 4f 66 42 79 74 65 73 2c | 20 72 43 68 65 63 6b 73 |OfBytes,| rChecks|
|00004bf0| 75 6d 29 3b 0d 09 0d 09 | 70 42 75 66 66 65 72 2d |um);....|pBuffer-|
|00004c00| 3e 42 75 66 66 65 72 4f | 66 66 73 65 74 20 2b 3d |>BufferO|ffset +=|
|00004c10| 20 70 4e 75 6d 62 65 72 | 4f 66 42 79 74 65 73 3b | pNumber|OfBytes;|
|00004c20| 0d 09 70 42 75 66 66 65 | 72 2d 3e 42 79 74 65 73 |..pBuffe|r->Bytes|
|00004c30| 41 76 61 69 6c 61 62 6c | 65 20 2d 3d 20 70 4e 75 |Availabl|e -= pNu|
|00004c40| 6d 62 65 72 4f 66 42 79 | 74 65 73 3b 0d 09 0d 09 |mberOfBy|tes;....|
|00004c50| 72 65 74 75 72 6e 20 6e | 6f 45 72 72 3b 0d 7d 0d |return n|oErr;.}.|
|00004c60| 0d 73 74 61 74 69 63 20 | 76 6f 69 64 09 09 41 64 |.static |void..Ad|
|00004c70| 64 42 79 74 65 54 6f 42 | 69 6e 48 65 78 43 68 65 |dByteToB|inHexChe|
|00004c80| 63 6b 73 75 6d 28 55 49 | 6e 74 38 20 70 56 61 6c |cksum(UI|nt8 pVal|
|00004c90| 75 65 2c 20 55 49 6e 74 | 31 36 20 2a 72 43 68 65 |ue, UInt|16 *rChe|
|00004ca0| 63 6b 73 75 6d 29 0d 7b | 0d 09 53 49 6e 74 33 32 |cksum).{|..SInt32|
|00004cb0| 09 76 43 68 65 63 6b 73 | 75 6d 3b 0d 09 69 6e 74 |.vChecks|um;..int|
|00004cc0| 09 09 76 49 6e 64 65 78 | 3b 0d 09 53 49 6e 74 33 |..vIndex|;..SInt3|
|00004cd0| 32 09 76 53 65 65 64 56 | 61 6c 75 65 3b 0d 09 0d |2.vSeedV|alue;...|
|00004ce0| 23 69 66 20 63 49 67 6e | 6f 72 65 43 68 65 63 6b |#if cIgn|oreCheck|
|00004cf0| 73 75 6d 73 09 0d 09 72 | 65 74 75 72 6e 3b 0d 23 |sums...r|eturn;.#|
|00004d00| 65 6e 64 69 66 0d 0d 09 | 76 43 68 65 63 6b 73 75 |endif...|vChecksu|
|00004d10| 6d 20 3d 20 28 28 55 49 | 6e 74 33 32 29 2a 72 43 |m = ((UI|nt32)*rC|
|00004d20| 68 65 63 6b 73 75 6d 20 | 3c 3c 20 31 36 29 20 7c |hecksum |<< 16) ||
|00004d30| 20 28 28 55 49 6e 74 33 | 32 29 70 56 61 6c 75 65 | ((UInt3|2)pValue|
|00004d40| 20 3c 3c 20 38 29 3b 0d | 09 76 53 65 65 64 56 61 | << 8);.|.vSeedVa|
|00004d50| 6c 75 65 20 3d 20 30 78 | 31 30 32 31 30 30 30 30 |lue = 0x|10210000|
|00004d60| 3b 0d 09 0d 09 76 49 6e | 64 65 78 20 3d 20 38 3b |;....vIn|dex = 8;|
|00004d70| 0d 09 64 6f 20 7b 0d 09 | 09 69 66 20 28 76 43 68 |..do {..|.if (vCh|
|00004d80| 65 63 6b 73 75 6d 20 3c | 20 30 29 0d 09 09 09 76 |ecksum <| 0)....v|
|00004d90| 43 68 65 63 6b 73 75 6d | 20 3d 20 28 76 43 68 65 |Checksum| = (vChe|
|00004da0| 63 6b 73 75 6d 20 3c 3c | 20 31 29 20 5e 20 76 53 |cksum <<| 1) ^ vS|
|00004db0| 65 65 64 56 61 6c 75 65 | 3b 0d 09 09 65 6c 73 65 |eedValue|;...else|
|00004dc0| 0d 09 09 09 76 43 68 65 | 63 6b 73 75 6d 20 3d 20 |....vChe|cksum = |
|00004dd0| 76 43 68 65 63 6b 73 75 | 6d 20 3c 3c 20 31 3b 0d |vChecksu|m << 1;.|
|00004de0| 09 09 7d 20 77 68 69 6c | 65 20 28 2d 2d 76 49 6e |..} whil|e (--vIn|
|00004df0| 64 65 78 20 3e 20 30 29 | 3b 0d 09 0d 09 2a 72 43 |dex > 0)|;....*rC|
|00004e00| 68 65 63 6b 73 75 6d 20 | 3d 20 76 43 68 65 63 6b |hecksum |= vCheck|
|00004e10| 73 75 6d 20 3e 3e 20 31 | 36 3b 0d 7d 0d 0d 73 74 |sum >> 1|6;.}..st|
|00004e20| 61 74 69 63 20 76 6f 69 | 64 09 09 41 64 64 42 79 |atic voi|d..AddBy|
|00004e30| 74 65 73 54 6f 42 69 6e | 48 65 78 43 68 65 63 6b |tesToBin|HexCheck|
|00004e40| 73 75 6d 28 55 49 6e 74 | 38 20 2a 70 56 61 6c 75 |sum(UInt|8 *pValu|
|00004e50| 65 73 2c 20 55 49 6e 74 | 33 32 20 70 4e 75 6d 62 |es, UInt|32 pNumb|
|00004e60| 65 72 4f 66 42 79 74 65 | 73 2c 20 55 49 6e 74 31 |erOfByte|s, UInt1|
|00004e70| 36 20 2a 72 43 68 65 63 | 6b 73 75 6d 29 0d 7b 0d |6 *rChec|ksum).{.|
|00004e80| 23 69 66 20 63 49 67 6e | 6f 72 65 43 68 65 63 6b |#if cIgn|oreCheck|
|00004e90| 73 75 6d 73 09 0d 09 72 | 65 74 75 72 6e 3b 0d 23 |sums...r|eturn;.#|
|00004ea0| 65 6e 64 69 66 0d 0d 09 | 77 68 69 6c 65 20 28 70 |endif...|while (p|
|00004eb0| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 20 3e 20 |NumberOf|Bytes > |
|00004ec0| 30 29 20 7b 0d 09 09 41 | 64 64 42 79 74 65 54 6f |0) {...A|ddByteTo|
|00004ed0| 42 69 6e 48 65 78 43 68 | 65 63 6b 73 75 6d 28 2a |BinHexCh|ecksum(*|
|00004ee0| 70 56 61 6c 75 65 73 2c | 20 72 43 68 65 63 6b 73 |pValues,| rChecks|
|00004ef0| 75 6d 29 3b 0d 09 09 70 | 56 61 6c 75 65 73 2b 2b |um);...p|Values++|
|00004f00| 3b 0d 09 09 0d 09 09 70 | 4e 75 6d 62 65 72 4f 66 |;......p|NumberOf|
|00004f10| 42 79 74 65 73 2d 2d 3b | 0d 09 09 7d 20 2f 2f 20 |Bytes--;|...} // |
|00004f20| 77 68 69 6c 65 0d 7d 0d | 0d 73 74 61 74 69 63 20 |while.}.|.static |
|00004f30| 4f 53 45 72 72 09 47 65 | 74 42 69 6e 48 65 78 46 |OSErr.Ge|tBinHexF|
|00004f40| 69 6c 65 48 65 61 64 65 | 72 28 74 42 69 6e 48 65 |ileHeade|r(tBinHe|
|00004f50| 78 42 75 66 66 65 72 20 | 2a 70 42 75 66 66 65 72 |xBuffer |*pBuffer|
|00004f60| 2c 20 42 6f 6f 6c 65 61 | 6e 20 2a 72 48 65 61 64 |, Boolea|n *rHead|
|00004f70| 65 72 49 73 56 61 6c 69 | 64 2c 20 74 42 69 6e 48 |erIsVali|d, tBinH|
|00004f80| 65 78 46 69 6c 65 48 65 | 61 64 65 72 20 2a 72 48 |exFileHe|ader *rH|
|00004f90| 65 61 64 65 72 29 0d 7b | 0d 09 55 49 6e 74 31 36 |eader).{|..UInt16|
|00004fa0| 09 76 43 61 6c 63 75 6c | 61 74 65 64 43 68 65 63 |.vCalcul|atedChec|
|00004fb0| 6b 73 75 6d 3b 0d 09 55 | 49 6e 74 38 09 76 54 65 |ksum;..U|Int8.vTe|
|00004fc0| 6d 70 42 79 74 65 3b 0d | 09 4f 53 45 72 72 09 76 |mpByte;.|.OSErr.v|
|00004fd0| 45 72 72 3b 0d 09 55 49 | 6e 74 31 36 09 76 41 63 |Err;..UI|nt16.vAc|
|00004fe0| 74 75 61 6c 43 68 65 63 | 6b 73 75 6d 3b 0d 09 0d |tualChec|ksum;...|
|00004ff0| 09 76 43 61 6c 63 75 6c | 61 74 65 64 43 68 65 63 |.vCalcul|atedChec|
|00005000| 6b 73 75 6d 20 3d 20 30 | 3b 0d 09 0d 09 2a 72 48 |ksum = 0|;....*rH|
|00005010| 65 61 64 65 72 49 73 56 | 61 6c 69 64 20 3d 20 66 |eaderIsV|alid = f|
|00005020| 61 6c 73 65 3b 0d 0d 09 | 76 45 72 72 20 3d 20 42 |alse;...|vErr = B|
|00005030| 69 6e 48 65 78 42 75 66 | 66 65 72 5f 52 65 61 64 |inHexBuf|fer_Read|
|00005040| 42 79 74 65 28 70 42 75 | 66 66 65 72 2c 20 26 72 |Byte(pBu|ffer, &r|
|00005050| 48 65 61 64 65 72 2d 3e | 46 69 6c 65 4e 61 6d 65 |Header->|FileName|
|00005060| 5b 30 5d 2c 20 26 76 43 | 61 6c 63 75 6c 61 74 65 |[0], &vC|alculate|
|00005070| 64 43 68 65 63 6b 73 75 | 6d 29 3b 0d 09 69 66 20 |dChecksu|m);..if |
|00005080| 28 76 45 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 |(vErr !=| noErr) |
|00005090| 72 65 74 75 72 6e 20 76 | 45 72 72 3b 0d 09 0d 09 |return v|Err;....|
|000050a0| 76 45 72 72 20 3d 20 42 | 69 6e 48 65 78 42 75 66 |vErr = B|inHexBuf|
|000050b0| 66 65 72 5f 52 65 61 64 | 42 79 74 65 73 28 70 42 |fer_Read|Bytes(pB|
|000050c0| 75 66 66 65 72 2c 20 26 | 72 48 65 61 64 65 72 2d |uffer, &|rHeader-|
|000050d0| 3e 46 69 6c 65 4e 61 6d | 65 5b 31 5d 2c 20 72 48 |>FileNam|e[1], rH|
|000050e0| 65 61 64 65 72 2d 3e 46 | 69 6c 65 4e 61 6d 65 5b |eader->F|ileName[|
|000050f0| 30 5d 2c 20 26 76 43 61 | 6c 63 75 6c 61 74 65 64 |0], &vCa|lculated|
|00005100| 43 68 65 63 6b 73 75 6d | 29 3b 0d 09 69 66 20 28 |Checksum|);..if (|
|00005110| 76 45 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 72 |vErr != |noErr) r|
|00005120| 65 74 75 72 6e 20 76 45 | 72 72 3b 0d 09 0d 09 76 |eturn vE|rr;....v|
|00005130| 45 72 72 20 3d 20 42 69 | 6e 48 65 78 42 75 66 66 |Err = Bi|nHexBuff|
|00005140| 65 72 5f 52 65 61 64 42 | 79 74 65 28 70 42 75 66 |er_ReadB|yte(pBuf|
|00005150| 66 65 72 2c 20 26 76 54 | 65 6d 70 42 79 74 65 2c |fer, &vT|empByte,|
|00005160| 20 26 76 43 61 6c 63 75 | 6c 61 74 65 64 43 68 65 | &vCalcu|latedChe|
|00005170| 63 6b 73 75 6d 29 3b 0d | 09 69 66 20 28 76 45 72 |cksum);.|.if (vEr|
|00005180| 72 20 21 3d 20 6e 6f 45 | 72 72 29 20 72 65 74 75 |r != noE|rr) retu|
|00005190| 72 6e 20 76 45 72 72 3b | 0d 09 0d 09 69 66 20 28 |rn vErr;|....if (|
|000051a0| 76 54 65 6d 70 42 79 74 | 65 20 21 3d 20 30 29 20 |vTempByt|e != 0) |
|000051b0| 72 65 74 75 72 6e 20 76 | 45 72 72 3b 0d 09 0d 09 |return v|Err;....|
|000051c0| 76 45 72 72 20 3d 20 42 | 69 6e 48 65 78 42 75 66 |vErr = B|inHexBuf|
|000051d0| 66 65 72 5f 52 65 61 64 | 42 79 74 65 73 28 70 42 |fer_Read|Bytes(pB|
|000051e0| 75 66 66 65 72 2c 20 28 | 55 49 6e 74 38 20 2a 29 |uffer, (|UInt8 *)|
|000051f0| 26 72 48 65 61 64 65 72 | 2d 3e 46 69 6c 65 54 79 |&rHeader|->FileTy|
|00005200| 70 65 2c 20 73 69 7a 65 | 6f 66 28 74 42 69 6e 48 |pe, size|of(tBinH|
|00005210| 65 78 46 69 6c 65 48 65 | 61 64 65 72 29 20 2d 20 |exFileHe|ader) - |
|00005220| 73 69 7a 65 6f 66 28 53 | 74 72 36 33 29 2c 20 26 |sizeof(S|tr63), &|
|00005230| 76 43 61 6c 63 75 6c 61 | 74 65 64 43 68 65 63 6b |vCalcula|tedCheck|
|00005240| 73 75 6d 29 3b 0d 09 69 | 66 20 28 76 45 72 72 20 |sum);..i|f (vErr |
|00005250| 21 3d 20 6e 6f 45 72 72 | 29 20 72 65 74 75 72 6e |!= noErr|) return|
|00005260| 20 76 45 72 72 3b 0d 09 | 0d 09 76 45 72 72 20 3d | vErr;..|..vErr =|
|00005270| 20 42 69 6e 48 65 78 42 | 75 66 66 65 72 5f 52 65 | BinHexB|uffer_Re|
|00005280| 61 64 42 79 74 65 73 28 | 70 42 75 66 66 65 72 2c |adBytes(|pBuffer,|
|00005290| 20 28 55 49 6e 74 38 20 | 2a 29 26 76 41 63 74 75 | (UInt8 |*)&vActu|
|000052a0| 61 6c 43 68 65 63 6b 73 | 75 6d 2c 20 73 69 7a 65 |alChecks|um, size|
|000052b0| 6f 66 28 73 68 6f 72 74 | 29 2c 20 6e 69 6c 29 3b |of(short|), nil);|
|000052c0| 0d 09 69 66 20 28 76 45 | 72 72 20 21 3d 20 6e 6f |..if (vE|rr != no|
|000052d0| 45 72 72 29 20 72 65 74 | 75 72 6e 20 76 45 72 72 |Err) ret|urn vErr|
|000052e0| 3b 0d 09 0d 09 41 64 64 | 42 79 74 65 54 6f 42 69 |;....Add|ByteToBi|
|000052f0| 6e 48 65 78 43 68 65 63 | 6b 73 75 6d 28 30 2c 20 |nHexChec|ksum(0, |
|00005300| 26 76 43 61 6c 63 75 6c | 61 74 65 64 43 68 65 63 |&vCalcul|atedChec|
|00005310| 6b 73 75 6d 29 3b 0d 09 | 41 64 64 42 79 74 65 54 |ksum);..|AddByteT|
|00005320| 6f 42 69 6e 48 65 78 43 | 68 65 63 6b 73 75 6d 28 |oBinHexC|hecksum(|
|00005330| 30 2c 20 26 76 43 61 6c | 63 75 6c 61 74 65 64 43 |0, &vCal|culatedC|
|00005340| 68 65 63 6b 73 75 6d 29 | 3b 0d 09 0d 23 69 66 20 |hecksum)|;...#if |
|00005350| 63 49 67 6e 6f 72 65 43 | 68 65 63 6b 73 75 6d 73 |cIgnoreC|hecksums|
|00005360| 09 0d 09 2a 72 48 65 61 | 64 65 72 49 73 56 61 6c |...*rHea|derIsVal|
|00005370| 69 64 20 3d 20 74 72 75 | 65 3b 0d 23 65 6c 73 65 |id = tru|e;.#else|
|00005380| 0d 09 2a 72 48 65 61 64 | 65 72 49 73 56 61 6c 69 |..*rHead|erIsVali|
|00005390| 64 20 3d 20 28 76 41 63 | 74 75 61 6c 43 68 65 63 |d = (vAc|tualChec|
|000053a0| 6b 73 75 6d 20 3d 3d 20 | 76 43 61 6c 63 75 6c 61 |ksum == |vCalcula|
|000053b0| 74 65 64 43 68 65 63 6b | 73 75 6d 29 3b 0d 23 65 |tedCheck|sum);.#e|
|000053c0| 6e 64 69 66 0d 09 72 65 | 74 75 72 6e 20 6e 6f 45 |ndif..re|turn noE|
|000053d0| 72 72 3b 0d 7d 0d 0d 73 | 74 61 74 69 63 20 42 6f |rr;.}..s|tatic Bo|
|000053e0| 6f 6c 65 61 6e 09 43 6f | 70 79 42 69 6e 48 65 78 |olean.Co|pyBinHex|
|000053f0| 54 6f 46 69 6c 65 28 74 | 42 69 6e 48 65 78 42 75 |ToFile(t|BinHexBu|
|00005400| 66 66 65 72 20 2a 70 42 | 75 66 66 65 72 2c 20 74 |ffer *pB|uffer, t|
|00005410| 49 6e 70 75 74 42 75 66 | 66 65 72 20 2a 70 49 6e |InputBuf|fer *pIn|
|00005420| 70 75 74 42 75 66 66 65 | 72 2c 20 73 68 6f 72 74 |putBuffe|r, short|
|00005430| 20 70 53 6f 75 72 63 65 | 46 69 6c 65 52 65 66 2c | pSource|FileRef,|
|00005440| 20 73 68 6f 72 74 20 70 | 44 65 73 74 46 69 6c 65 | short p|DestFile|
|00005450| 52 65 66 2c 20 55 49 6e | 74 33 32 20 70 4e 75 6d |Ref, UIn|t32 pNum|
|00005460| 62 65 72 4f 66 42 79 74 | 65 73 2c 20 55 49 6e 74 |berOfByt|es, UInt|
|00005470| 31 36 20 2a 72 43 68 65 | 63 6b 73 75 6d 29 0d 7b |16 *rChe|cksum).{|
|00005480| 0d 09 4f 53 45 72 72 09 | 76 45 72 72 3b 0d 09 0d |..OSErr.|vErr;...|
|00005490| 09 77 68 69 6c 65 20 28 | 70 4e 75 6d 62 65 72 4f |.while (|pNumberO|
|000054a0| 66 42 79 74 65 73 20 3e | 20 30 29 20 7b 0d 09 09 |fBytes >| 0) {...|
|000054b0| 6c 6f 6e 67 09 76 4e 75 | 6d 62 65 72 4f 66 42 79 |long.vNu|mberOfBy|
|000054c0| 74 65 73 3b 0d 09 09 0d | 09 09 69 66 20 28 70 42 |tes;....|..if (pB|
|000054d0| 75 66 66 65 72 2d 3e 42 | 79 74 65 73 41 76 61 69 |uffer->B|ytesAvai|
|000054e0| 6c 61 62 6c 65 20 3d 3d | 20 30 29 20 7b 0d 09 09 |lable ==| 0) {...|
|000054f0| 09 76 45 72 72 20 3d 20 | 42 69 6e 48 65 78 42 75 |.vErr = |BinHexBu|
|00005500| 66 66 65 72 5f 4c 6f 61 | 64 46 72 6f 6d 46 69 6c |ffer_Loa|dFromFil|
|00005510| 65 28 70 42 75 66 66 65 | 72 2c 20 70 49 6e 70 75 |e(pBuffe|r, pInpu|
|00005520| 74 42 75 66 66 65 72 2c | 20 70 53 6f 75 72 63 65 |tBuffer,| pSource|
|00005530| 46 69 6c 65 52 65 66 29 | 3b 0d 09 09 09 69 66 20 |FileRef)|;....if |
|00005540| 28 76 45 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 |(vErr !=| noErr) |
|00005550| 72 65 74 75 72 6e 20 66 | 61 6c 73 65 3b 3b 0d 09 |return f|alse;;..|
|00005560| 09 09 7d 20 2f 2f 20 69 | 66 0d 09 09 0d 09 09 69 |..} // i|f......i|
|00005570| 66 20 28 70 4e 75 6d 62 | 65 72 4f 66 42 79 74 65 |f (pNumb|erOfByte|
|00005580| 73 20 3e 20 70 42 75 66 | 66 65 72 2d 3e 42 79 74 |s > pBuf|fer->Byt|
|00005590| 65 73 41 76 61 69 6c 61 | 62 6c 65 29 0d 09 09 09 |esAvaila|ble)....|
|000055a0| 76 4e 75 6d 62 65 72 4f | 66 42 79 74 65 73 20 3d |vNumberO|fBytes =|
|000055b0| 20 70 42 75 66 66 65 72 | 2d 3e 42 79 74 65 73 41 | pBuffer|->BytesA|
|000055c0| 76 61 69 6c 61 62 6c 65 | 3b 0d 09 09 65 6c 73 65 |vailable|;...else|
|000055d0| 0d 09 09 09 76 4e 75 6d | 62 65 72 4f 66 42 79 74 |....vNum|berOfByt|
|000055e0| 65 73 20 3d 20 70 4e 75 | 6d 62 65 72 4f 66 42 79 |es = pNu|mberOfBy|
|000055f0| 74 65 73 3b 0d 09 09 09 | 0d 09 09 76 45 72 72 20 |tes;....|...vErr |
|00005600| 3d 20 46 53 57 72 69 74 | 65 28 70 44 65 73 74 46 |= FSWrit|e(pDestF|
|00005610| 69 6c 65 52 65 66 2c 20 | 26 76 4e 75 6d 62 65 72 |ileRef, |&vNumber|
|00005620| 4f 66 42 79 74 65 73 2c | 20 26 70 42 75 66 66 65 |OfBytes,| &pBuffe|
|00005630| 72 2d 3e 42 75 66 66 65 | 72 5b 70 42 75 66 66 65 |r->Buffe|r[pBuffe|
|00005640| 72 2d 3e 42 75 66 66 65 | 72 4f 66 66 73 65 74 5d |r->Buffe|rOffset]|
|00005650| 29 3b 0d 09 09 69 66 20 | 28 76 45 72 72 20 21 3d |);...if |(vErr !=|
|00005660| 20 6e 6f 45 72 72 29 20 | 72 65 74 75 72 6e 20 66 | noErr) |return f|
|00005670| 61 6c 73 65 3b 3b 0d 09 | 09 0d 09 09 69 66 20 28 |alse;;..|....if (|
|00005680| 72 43 68 65 63 6b 73 75 | 6d 20 21 3d 20 6e 69 6c |rChecksu|m != nil|
|00005690| 29 0d 09 09 09 41 64 64 | 42 79 74 65 73 54 6f 42 |)....Add|BytesToB|
|000056a0| 69 6e 48 65 78 43 68 65 | 63 6b 73 75 6d 28 26 70 |inHexChe|cksum(&p|
|000056b0| 42 75 66 66 65 72 2d 3e | 42 75 66 66 65 72 5b 70 |Buffer->|Buffer[p|
|000056c0| 42 75 66 66 65 72 2d 3e | 42 75 66 66 65 72 4f 66 |Buffer->|BufferOf|
|000056d0| 66 73 65 74 5d 2c 20 76 | 4e 75 6d 62 65 72 4f 66 |fset], v|NumberOf|
|000056e0| 42 79 74 65 73 2c 20 72 | 43 68 65 63 6b 73 75 6d |Bytes, r|Checksum|
|000056f0| 29 3b 0d 09 09 0d 09 09 | 70 4e 75 6d 62 65 72 4f |);......|pNumberO|
|00005700| 66 42 79 74 65 73 20 2d | 3d 20 76 4e 75 6d 62 65 |fBytes -|= vNumbe|
|00005710| 72 4f 66 42 79 74 65 73 | 3b 0d 09 09 0d 09 09 70 |rOfBytes|;......p|
|00005720| 42 75 66 66 65 72 2d 3e | 42 75 66 66 65 72 4f 66 |Buffer->|BufferOf|
|00005730| 66 73 65 74 20 2b 3d 20 | 76 4e 75 6d 62 65 72 4f |fset += |vNumberO|
|00005740| 66 42 79 74 65 73 3b 0d | 09 09 70 42 75 66 66 65 |fBytes;.|..pBuffe|
|00005750| 72 2d 3e 42 79 74 65 73 | 41 76 61 69 6c 61 62 6c |r->Bytes|Availabl|
|00005760| 65 20 2d 3d 20 76 4e 75 | 6d 62 65 72 4f 66 42 79 |e -= vNu|mberOfBy|
|00005770| 74 65 73 3b 0d 09 09 7d | 20 2f 2f 20 77 68 69 6c |tes;...}| // whil|
|00005780| 65 0d 09 0d 09 72 65 74 | 75 72 6e 20 74 72 75 65 |e....ret|urn true|
|00005790| 3b 0d 7d 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;.}..//-|--------|
|000057a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057c0| 2d 2d 2d 2d 2d 0d 2f 2f | 20 49 6e 70 75 74 42 75 |-----.//| InputBu|
|000057d0| 66 66 65 72 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ffer.//-|--------|
|000057e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005800| 2d 2d 2d 2d 2d 0d 0d 73 | 74 61 74 69 63 20 42 6f |-----..s|tatic Bo|
|00005810| 6f 6c 65 61 6e 09 49 6e | 70 75 74 42 75 66 66 65 |olean.In|putBuffe|
|00005820| 72 5f 4e 65 77 28 74 49 | 6e 70 75 74 42 75 66 66 |r_New(tI|nputBuff|
|00005830| 65 72 20 2a 2a 72 42 75 | 66 66 65 72 29 0d 7b 0d |er **rBu|ffer).{.|
|00005840| 09 2a 72 42 75 66 66 65 | 72 20 3d 20 28 74 49 6e |.*rBuffe|r = (tIn|
|00005850| 70 75 74 42 75 66 66 65 | 72 20 2a 29 4e 65 77 50 |putBuffe|r *)NewP|
|00005860| 74 72 43 6c 65 61 72 28 | 73 69 7a 65 6f 66 28 74 |trClear(|sizeof(t|
|00005870| 49 6e 70 75 74 42 75 66 | 66 65 72 29 29 3b 0d 09 |InputBuf|fer));..|
|00005880| 69 66 20 28 4d 65 6d 45 | 72 72 6f 72 28 29 20 21 |if (MemE|rror() !|
|00005890| 3d 20 6e 6f 45 72 72 29 | 20 72 65 74 75 72 6e 20 |= noErr)| return |
|000058a0| 66 61 6c 73 65 3b 0d 09 | 0d 09 72 65 74 75 72 6e |false;..|..return|
|000058b0| 20 74 72 75 65 3b 0d 7d | 0d 0d 73 74 61 74 69 63 | true;.}|..static|
|000058c0| 20 76 6f 69 64 09 09 49 | 6e 70 75 74 42 75 66 66 | void..I|nputBuff|
|000058d0| 65 72 5f 44 69 73 70 6f | 73 65 28 74 49 6e 70 75 |er_Dispo|se(tInpu|
|000058e0| 74 42 75 66 66 65 72 20 | 2a 70 42 75 66 66 65 72 |tBuffer |*pBuffer|
|000058f0| 29 0d 7b 0d 09 44 69 73 | 70 6f 73 65 50 74 72 28 |).{..Dis|posePtr(|
|00005900| 28 50 74 72 29 70 42 75 | 66 66 65 72 29 3b 0d 7d |(Ptr)pBu|ffer);.}|
|00005910| 0d 0d 73 74 61 74 69 63 | 20 4f 53 45 72 72 09 49 |..static| OSErr.I|
|00005920| 6e 70 75 74 42 75 66 66 | 65 72 5f 4c 6f 61 64 46 |nputBuff|er_LoadF|
|00005930| 72 6f 6d 46 69 6c 65 28 | 74 49 6e 70 75 74 42 75 |romFile(|tInputBu|
|00005940| 66 66 65 72 20 2a 70 42 | 75 66 66 65 72 2c 20 73 |ffer *pB|uffer, s|
|00005950| 68 6f 72 74 20 70 46 69 | 6c 65 52 65 66 29 0d 7b |hort pFi|leRef).{|
|00005960| 0d 09 4f 53 45 72 72 09 | 76 45 72 72 3b 0d 09 76 |..OSErr.|vErr;..v|
|00005970| 6f 69 64 20 2a 09 76 42 | 75 66 66 65 72 44 61 74 |oid *.vB|ufferDat|
|00005980| 61 3b 0d 09 6c 6f 6e 67 | 09 76 4d 61 78 69 6d 75 |a;..long|.vMaximu|
|00005990| 6d 42 79 74 65 73 3b 0d | 09 6c 6f 6e 67 09 76 46 |mBytes;.|.long.vF|
|000059a0| 69 6c 65 53 69 7a 65 3b | 0d 09 6c 6f 6e 67 09 76 |ileSize;|..long.v|
|000059b0| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 3b 0d 09 |NumberOf|Bytes;..|
|000059c0| 0d 09 2f 2f 20 47 65 74 | 20 74 68 65 20 62 75 66 |..// Get| the buf|
|000059d0| 66 65 72 20 70 6f 69 6e | 74 65 72 20 61 6e 64 20 |fer poin|ter and |
|000059e0| 6d 61 78 69 6d 75 6d 20 | 73 69 7a 65 0d 09 0d 09 |maximum |size....|
|000059f0| 49 6e 70 75 74 42 75 66 | 66 65 72 5f 47 65 74 50 |InputBuf|fer_GetP|
|00005a00| 6f 69 6e 74 65 72 28 70 | 42 75 66 66 65 72 2c 20 |ointer(p|Buffer, |
|00005a10| 26 76 42 75 66 66 65 72 | 44 61 74 61 2c 20 26 76 |&vBuffer|Data, &v|
|00005a20| 4d 61 78 69 6d 75 6d 42 | 79 74 65 73 29 3b 0d 09 |MaximumB|ytes);..|
|00005a30| 0d 09 2f 2f 20 43 61 6c | 63 75 6c 61 74 65 20 74 |..// Cal|culate t|
|00005a40| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 62 79 74 |he numbe|r of byt|
|00005a50| 65 73 20 74 6f 20 72 65 | 61 64 0d 09 0d 09 47 65 |es to re|ad....Ge|
|00005a60| 74 45 4f 46 28 70 46 69 | 6c 65 52 65 66 2c 20 26 |tEOF(pFi|leRef, &|
|00005a70| 76 46 69 6c 65 53 69 7a | 65 29 3b 0d 09 0d 09 76 |vFileSiz|e);....v|
|00005a80| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 20 3d 20 |NumberOf|Bytes = |
|00005a90| 76 46 69 6c 65 53 69 7a | 65 20 2d 20 70 42 75 66 |vFileSiz|e - pBuf|
|00005aa0| 66 65 72 2d 3e 46 69 6c | 65 4f 66 66 73 65 74 3b |fer->Fil|eOffset;|
|00005ab0| 0d 09 69 66 20 28 76 4e | 75 6d 62 65 72 4f 66 42 |..if (vN|umberOfB|
|00005ac0| 79 74 65 73 20 3d 3d 20 | 30 29 0d 09 09 72 65 74 |ytes == |0)...ret|
|00005ad0| 75 72 6e 20 65 6f 66 45 | 72 72 3b 0d 0d 09 69 66 |urn eofE|rr;...if|
|00005ae0| 20 28 76 4e 75 6d 62 65 | 72 4f 66 42 79 74 65 73 | (vNumbe|rOfBytes|
|00005af0| 20 3e 20 76 4d 61 78 69 | 6d 75 6d 42 79 74 65 73 | > vMaxi|mumBytes|
|00005b00| 29 0d 09 09 76 4e 75 6d | 62 65 72 4f 66 42 79 74 |)...vNum|berOfByt|
|00005b10| 65 73 20 3d 20 76 4d 61 | 78 69 6d 75 6d 42 79 74 |es = vMa|ximumByt|
|00005b20| 65 73 3b 0d 09 0d 09 2f | 2f 20 52 65 61 64 20 74 |es;..../|/ Read t|
|00005b30| 68 65 20 64 61 74 61 0d | 09 0d 09 76 45 72 72 20 |he data.|...vErr |
|00005b40| 3d 20 53 65 74 46 50 6f | 73 28 70 46 69 6c 65 52 |= SetFPo|s(pFileR|
|00005b50| 65 66 2c 20 66 73 46 72 | 6f 6d 53 74 61 72 74 2c |ef, fsFr|omStart,|
|00005b60| 20 70 42 75 66 66 65 72 | 2d 3e 46 69 6c 65 4f 66 | pBuffer|->FileOf|
|00005b70| 66 73 65 74 29 3b 0d 09 | 69 66 20 28 76 45 72 72 |fset);..|if (vErr|
|00005b80| 20 21 3d 20 6e 6f 45 72 | 72 29 20 72 65 74 75 72 | != noEr|r) retur|
|00005b90| 6e 20 76 45 72 72 3b 0d | 09 0d 09 76 45 72 72 20 |n vErr;.|...vErr |
|00005ba0| 3d 20 46 53 52 65 61 64 | 28 70 46 69 6c 65 52 65 |= FSRead|(pFileRe|
|00005bb0| 66 2c 20 26 76 4e 75 6d | 62 65 72 4f 66 42 79 74 |f, &vNum|berOfByt|
|00005bc0| 65 73 2c 20 76 42 75 66 | 66 65 72 44 61 74 61 29 |es, vBuf|ferData)|
|00005bd0| 3b 0d 09 69 66 20 28 76 | 45 72 72 20 21 3d 20 6e |;..if (v|Err != n|
|00005be0| 6f 45 72 72 29 20 72 65 | 74 75 72 6e 20 76 45 72 |oErr) re|turn vEr|
|00005bf0| 72 3b 0d 09 0d 09 2f 2f | 20 54 65 6c 6c 20 74 68 |r;....//| Tell th|
|00005c00| 65 20 62 75 66 66 65 72 | 20 61 62 6f 75 74 20 74 |e buffer| about t|
|00005c10| 68 65 20 6e 65 77 20 64 | 61 74 61 0d 09 0d 09 49 |he new d|ata....I|
|00005c20| 6e 70 75 74 42 75 66 66 | 65 72 5f 42 79 74 65 73 |nputBuff|er_Bytes|
|00005c30| 41 64 64 65 64 28 70 42 | 75 66 66 65 72 2c 20 76 |Added(pB|uffer, v|
|00005c40| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 29 3b 0d |NumberOf|Bytes);.|
|00005c50| 09 0d 09 72 65 74 75 72 | 6e 20 6e 6f 45 72 72 3b |...retur|n noErr;|
|00005c60| 0d 7d 0d 0d 23 69 66 64 | 65 66 20 4d 41 43 5f 49 |.}..#ifd|ef MAC_I|
|00005c70| 45 5f 4f 4e 4c 59 0d 73 | 74 61 74 69 63 20 6c 6f |E_ONLY.s|tatic lo|
|00005c80| 6e 67 20 20 20 20 20 49 | 6e 70 75 74 42 75 66 66 |ng I|nputBuff|
|00005c90| 65 72 5f 53 74 75 66 66 | 28 74 49 6e 70 75 74 42 |er_Stuff|(tInputB|
|00005ca0| 75 66 66 65 72 20 2a 70 | 49 6e 70 75 74 42 75 66 |uffer *p|InputBuf|
|00005cb0| 66 65 72 2c 20 76 6f 69 | 64 20 2a 70 44 61 74 61 |fer, voi|d *pData|
|00005cc0| 2c 20 6c 6f 6e 67 20 70 | 4e 75 6d 62 65 72 4f 66 |, long p|NumberOf|
|00005cd0| 42 79 74 65 73 29 0d 7b | 0d 09 76 6f 69 64 20 2a |Bytes).{|..void *|
|00005ce0| 09 76 42 75 66 66 65 72 | 44 61 74 61 3b 0d 09 6c |.vBuffer|Data;..l|
|00005cf0| 6f 6e 67 09 76 4e 75 6d | 62 65 72 4f 66 42 79 74 |ong.vNum|berOfByt|
|00005d00| 65 73 3b 0d 09 0d 09 49 | 6e 70 75 74 42 75 66 66 |es;....I|nputBuff|
|00005d10| 65 72 5f 47 65 74 50 6f | 69 6e 74 65 72 28 70 49 |er_GetPo|inter(pI|
|00005d20| 6e 70 75 74 42 75 66 66 | 65 72 2c 20 26 76 42 75 |nputBuff|er, &vBu|
|00005d30| 66 66 65 72 44 61 74 61 | 2c 20 26 76 4e 75 6d 62 |fferData|, &vNumb|
|00005d40| 65 72 4f 66 42 79 74 65 | 73 29 3b 0d 09 0d 09 69 |erOfByte|s);....i|
|00005d50| 66 20 28 76 4e 75 6d 62 | 65 72 4f 66 42 79 74 65 |f (vNumb|erOfByte|
|00005d60| 73 20 3e 20 70 4e 75 6d | 62 65 72 4f 66 42 79 74 |s > pNum|berOfByt|
|00005d70| 65 73 29 0d 09 09 76 4e | 75 6d 62 65 72 4f 66 42 |es)...vN|umberOfB|
|00005d80| 79 74 65 73 20 3d 20 70 | 4e 75 6d 62 65 72 4f 66 |ytes = p|NumberOf|
|00005d90| 42 79 74 65 73 3b 0d 09 | 0d 09 42 6c 6f 63 6b 4d |Bytes;..|..BlockM|
|00005da0| 6f 76 65 28 70 44 61 74 | 61 2c 20 76 42 75 66 66 |ove(pDat|a, vBuff|
|00005db0| 65 72 44 61 74 61 2c 20 | 76 4e 75 6d 62 65 72 4f |erData, |vNumberO|
|00005dc0| 66 42 79 74 65 73 29 3b | 0d 09 0d 09 49 6e 70 75 |fBytes);|....Inpu|
|00005dd0| 74 42 75 66 66 65 72 5f | 42 79 74 65 73 41 64 64 |tBuffer_|BytesAdd|
|00005de0| 65 64 28 70 49 6e 70 75 | 74 42 75 66 66 65 72 2c |ed(pInpu|tBuffer,|
|00005df0| 20 76 4e 75 6d 62 65 72 | 4f 66 42 79 74 65 73 29 | vNumber|OfBytes)|
|00005e00| 3b 0d 09 0d 09 72 65 74 | 75 72 6e 20 76 4e 75 6d |;....ret|urn vNum|
|00005e10| 62 65 72 4f 66 42 79 74 | 65 73 3b 0d 7d 0d 0d 73 |berOfByt|es;.}..s|
|00005e20| 74 61 74 69 63 20 76 6f | 69 64 09 09 49 6e 70 75 |tatic vo|id..Inpu|
|00005e30| 74 42 75 66 66 65 72 5f | 44 65 6c 65 74 65 4f 6c |tBuffer_|DeleteOl|
|00005e40| 64 44 61 74 61 28 74 49 | 6e 70 75 74 42 75 66 66 |dData(tI|nputBuff|
|00005e50| 65 72 20 2a 70 49 6e 70 | 75 74 42 75 66 66 65 72 |er *pInp|utBuffer|
|00005e60| 29 0d 7b 0d 09 76 6f 69 | 64 20 2a 09 76 53 6f 75 |).{..voi|d *.vSou|
|00005e70| 72 63 65 44 61 74 61 3b | 0d 09 6c 6f 6e 67 09 76 |rceData;|..long.v|
|00005e80| 4e 75 6d 62 65 72 4f 66 | 42 79 74 65 73 3b 0d 09 |NumberOf|Bytes;..|
|00005e90| 0d 09 76 4e 75 6d 62 65 | 72 4f 66 42 79 74 65 73 |..vNumbe|rOfBytes|
|00005ea0| 20 3d 20 70 49 6e 70 75 | 74 42 75 66 66 65 72 2d | = pInpu|tBuffer-|
|00005eb0| 3e 42 79 74 65 73 49 6e | 42 75 66 66 65 72 20 2d |>BytesIn|Buffer -|
|00005ec0| 20 70 49 6e 70 75 74 42 | 75 66 66 65 72 2d 3e 42 | pInputB|uffer->B|
|00005ed0| 75 66 66 65 72 4f 66 66 | 73 65 74 3b 0d 09 0d 09 |ufferOff|set;....|
|00005ee0| 69 66 20 28 76 4e 75 6d | 62 65 72 4f 66 42 79 74 |if (vNum|berOfByt|
|00005ef0| 65 73 20 3d 3d 20 30 29 | 20 7b 0d 09 09 70 49 6e |es == 0)| {...pIn|
|00005f00| 70 75 74 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |putBuffe|r->Buffe|
|00005f10| 72 4f 66 66 73 65 74 20 | 3d 20 30 3b 0d 09 09 70 |rOffset |= 0;...p|
|00005f20| 49 6e 70 75 74 42 75 66 | 66 65 72 2d 3e 42 79 74 |InputBuf|fer->Byt|
|00005f30| 65 73 49 6e 42 75 66 66 | 65 72 20 3d 20 30 3b 0d |esInBuff|er = 0;.|
|00005f40| 09 09 72 65 74 75 72 6e | 3b 0d 09 09 7d 0d 09 0d |..return|;...}...|
|00005f50| 09 76 53 6f 75 72 63 65 | 44 61 74 61 20 3d 20 26 |.vSource|Data = &|
|00005f60| 70 49 6e 70 75 74 42 75 | 66 66 65 72 2d 3e 42 75 |pInputBu|ffer->Bu|
|00005f70| 66 66 65 72 5b 70 49 6e | 70 75 74 42 75 66 66 65 |ffer[pIn|putBuffe|
|00005f80| 72 2d 3e 42 75 66 66 65 | 72 4f 66 66 73 65 74 5d |r->Buffe|rOffset]|
|00005f90| 3b 0d 09 0d 09 42 6c 6f | 63 6b 4d 6f 76 65 28 76 |;....Blo|ckMove(v|
|00005fa0| 53 6f 75 72 63 65 44 61 | 74 61 2c 20 26 70 49 6e |SourceDa|ta, &pIn|
|00005fb0| 70 75 74 42 75 66 66 65 | 72 2d 3e 42 75 66 66 65 |putBuffe|r->Buffe|
|00005fc0| 72 5b 30 5d 2c 20 76 4e | 75 6d 62 65 72 4f 66 42 |r[0], vN|umberOfB|
|00005fd0| 79 74 65 73 29 3b 0d 09 | 0d 09 70 49 6e 70 75 74 |ytes);..|..pInput|
|00005fe0| 42 75 66 66 65 72 2d 3e | 42 75 66 66 65 72 4f 66 |Buffer->|BufferOf|
|00005ff0| 66 73 65 74 20 3d 20 30 | 3b 0d 09 70 49 6e 70 75 |fset = 0|;..pInpu|
|00006000| 74 42 75 66 66 65 72 2d | 3e 42 79 74 65 73 49 6e |tBuffer-|>BytesIn|
|00006010| 42 75 66 66 65 72 20 3d | 20 76 4e 75 6d 62 65 72 |Buffer =| vNumber|
|00006020| 4f 66 42 79 74 65 73 3b | 0d 7d 0d 23 65 6e 64 69 |OfBytes;|.}.#endi|
|00006030| 66 0d 0d 73 74 61 74 69 | 63 20 76 6f 69 64 09 09 |f..stati|c void..|
|00006040| 49 6e 70 75 74 42 75 66 | 66 65 72 5f 47 65 74 50 |InputBuf|fer_GetP|
|00006050| 6f 69 6e 74 65 72 28 74 | 49 6e 70 75 74 42 75 66 |ointer(t|InputBuf|
|00006060| 66 65 72 20 2a 70 49 6e | 70 75 74 42 75 66 66 65 |fer *pIn|putBuffe|
|00006070| 72 2c 20 76 6f 69 64 20 | 2a 2a 72 44 61 74 61 2c |r, void |**rData,|
|00006080| 20 6c 6f 6e 67 20 2a 72 | 4d 61 78 4e 75 6d 62 65 | long *r|MaxNumbe|
|00006090| 72 4f 66 42 79 74 65 73 | 29 0d 7b 0d 09 69 66 20 |rOfBytes|).{..if |
|000060a0| 28 70 49 6e 70 75 74 42 | 75 66 66 65 72 2d 3e 42 |(pInputB|uffer->B|
|000060b0| 75 66 66 65 72 4f 66 66 | 73 65 74 20 3d 3d 20 70 |ufferOff|set == p|
|000060c0| 49 6e 70 75 74 42 75 66 | 66 65 72 2d 3e 42 79 74 |InputBuf|fer->Byt|
|000060d0| 65 73 49 6e 42 75 66 66 | 65 72 29 20 7b 0d 09 09 |esInBuff|er) {...|
|000060e0| 70 49 6e 70 75 74 42 75 | 66 66 65 72 2d 3e 42 75 |pInputBu|ffer->Bu|
|000060f0| 66 66 65 72 4f 66 66 73 | 65 74 20 3d 20 30 3b 0d |fferOffs|et = 0;.|
|00006100| 09 09 70 49 6e 70 75 74 | 42 75 66 66 65 72 2d 3e |..pInput|Buffer->|
|00006110| 42 79 74 65 73 49 6e 42 | 75 66 66 65 72 20 3d 20 |BytesInB|uffer = |
|00006120| 30 3b 0d 09 09 7d 0d 09 | 0d 09 2a 72 44 61 74 61 |0;...}..|..*rData|
|00006130| 20 3d 20 26 70 49 6e 70 | 75 74 42 75 66 66 65 72 | = &pInp|utBuffer|
|00006140| 2d 3e 42 75 66 66 65 72 | 5b 70 49 6e 70 75 74 42 |->Buffer|[pInputB|
|00006150| 75 66 66 65 72 2d 3e 42 | 79 74 65 73 49 6e 42 75 |uffer->B|ytesInBu|
|00006160| 66 66 65 72 5d 3b 0d 09 | 2a 72 4d 61 78 4e 75 6d |ffer];..|*rMaxNum|
|00006170| 62 65 72 4f 66 42 79 74 | 65 73 20 3d 20 63 42 75 |berOfByt|es = cBu|
|00006180| 66 66 65 72 5f 53 69 7a | 65 20 2d 20 70 49 6e 70 |ffer_Siz|e - pInp|
|00006190| 75 74 42 75 66 66 65 72 | 2d 3e 42 79 74 65 73 49 |utBuffer|->BytesI|
|000061a0| 6e 42 75 66 66 65 72 3b | 0d 7d 0d 0d 73 74 61 74 |nBuffer;|.}..stat|
|000061b0| 69 63 20 76 6f 69 64 09 | 09 49 6e 70 75 74 42 75 |ic void.|.InputBu|
|000061c0| 66 66 65 72 5f 42 79 74 | 65 73 41 64 64 65 64 28 |ffer_Byt|esAdded(|
|000061d0| 74 49 6e 70 75 74 42 75 | 66 66 65 72 20 2a 70 49 |tInputBu|ffer *pI|
|000061e0| 6e 70 75 74 42 75 66 66 | 65 72 2c 20 6c 6f 6e 67 |nputBuff|er, long|
|000061f0| 20 70 4e 75 6d 62 65 72 | 4f 66 42 79 74 65 73 29 | pNumber|OfBytes)|
|00006200| 0d 7b 0d 09 70 49 6e 70 | 75 74 42 75 66 66 65 72 |.{..pInp|utBuffer|
|00006210| 2d 3e 42 79 74 65 73 49 | 6e 42 75 66 66 65 72 20 |->BytesI|nBuffer |
|00006220| 2b 3d 20 70 4e 75 6d 62 | 65 72 4f 66 42 79 74 65 |+= pNumb|erOfByte|
|00006230| 73 3b 0d 09 70 49 6e 70 | 75 74 42 75 66 66 65 72 |s;..pInp|utBuffer|
|00006240| 2d 3e 42 79 74 65 73 41 | 76 61 69 6c 61 62 6c 65 |->BytesA|vailable|
|00006250| 20 2b 3d 20 70 4e 75 6d | 62 65 72 4f 66 42 79 74 | += pNum|berOfByt|
|00006260| 65 73 3b 0d 09 70 49 6e | 70 75 74 42 75 66 66 65 |es;..pIn|putBuffe|
|00006270| 72 2d 3e 46 69 6c 65 4f | 66 66 73 65 74 20 2b 3d |r->FileO|ffset +=|
|00006280| 20 70 4e 75 6d 62 65 72 | 4f 66 42 79 74 65 73 3b | pNumber|OfBytes;|
|00006290| 0d 7d 0d 0d 23 69 66 64 | 65 66 20 4d 41 43 5f 49 |.}..#ifd|ef MAC_I|
|000062a0| 45 5f 4f 4e 4c 59 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |E_ONLY./|/-------|
|000062b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062d0| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 42 69 6e 48 65 |-------.|// BinHe|
|000062e0| 78 20 50 61 72 73 65 72 | 0d 2f 2f 2d 2d 2d 2d 2d |x Parser|.//-----|
|000062f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 0d 42 6f 6f 6c 65 |--------|-..Boole|
|00006320| 61 6e 09 42 69 6e 48 65 | 78 50 61 72 73 65 72 5f |an.BinHe|xParser_|
|00006330| 4e 65 77 28 74 42 69 6e | 48 65 78 43 6c 69 65 6e |New(tBin|HexClien|
|00006340| 74 44 61 74 61 20 2a 70 | 43 6c 69 65 6e 74 44 61 |tData *p|ClientDa|
|00006350| 74 61 2c 20 74 42 69 6e | 48 65 78 50 61 72 73 65 |ta, tBin|HexParse|
|00006360| 72 43 61 6c 6c 62 61 63 | 6b 73 20 2a 70 43 61 6c |rCallbac|ks *pCal|
|00006370| 6c 62 61 63 6b 73 2c 20 | 74 42 69 6e 48 65 78 50 |lbacks, |tBinHexP|
|00006380| 61 72 73 65 72 20 2a 2a | 72 50 61 72 73 65 72 29 |arser **|rParser)|
|00006390| 0d 7b 0d 09 74 42 69 6e | 48 65 78 50 61 72 73 65 |.{..tBin|HexParse|
|000063a0| 72 20 2a 09 76 50 61 72 | 73 65 72 3b 0d 09 0d 09 |r *.vPar|ser;....|
|000063b0| 76 50 61 72 73 65 72 20 | 3d 20 28 74 42 69 6e 48 |vParser |= (tBinH|
|000063c0| 65 78 50 61 72 73 65 72 | 20 2a 29 4e 65 77 50 74 |exParser| *)NewPt|
|000063d0| 72 28 73 69 7a 65 6f 66 | 28 73 74 72 75 63 74 20 |r(sizeof|(struct |
|000063e0| 74 42 69 6e 48 65 78 50 | 61 72 73 65 72 29 29 3b |tBinHexP|arser));|
|000063f0| 0d 09 69 66 20 28 4d 65 | 6d 45 72 72 6f 72 28 29 |..if (Me|mError()|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.