home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1989-03-13 | 8.4 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: bitpackunit.p
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| ZX81 Sinclair BASIC (image/sinclairBASIC)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Mar 13 16:55:12 1989, modified Mon Mar 13 16:55:12 1989, creator 'MPS ', type ASCII, 7947 bytes "bitpackunit.p" , at 0x1f8b 382 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 | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0d 62 69 74 70 61 63 | 6b 75 6e 69 74 2e 70 00 |..bitpac|kunit.p.|
|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 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 1f 0b 00 | 00 01 7e a0 41 e9 40 a0 |........|..~.A.@.|
|00000060| 41 e9 40 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |A.@.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 44 f2 00 00 |........|....D...|
|00000080| 75 6e 69 74 20 62 69 74 | 70 61 63 6b 75 6e 69 74 |unit bit|packunit|
|00000090| 3b 0d 7b 0d 09 43 6f 70 | 79 72 69 67 68 74 20 a9 |;.{..Cop|yright .|
|000000a0| 20 31 39 38 39 20 41 6c | 62 65 72 74 20 4c 75 6e | 1989 Al|bert Lun|
|000000b0| 64 65 2c 20 4e 6f 72 74 | 68 77 65 73 74 65 72 6e |de, Nort|hwestern|
|000000c0| 20 55 6e 69 76 65 72 73 | 69 74 79 0d 09 41 6c 6c | Univers|ity..All|
|000000d0| 20 52 69 67 68 74 73 20 | 52 65 73 65 72 76 65 64 | Rights |Reserved|
|000000e0| 0d 7d 0d 0d 7b 70 61 63 | 6b 20 61 6e 64 20 75 6e |.}..{pac|k and un|
|000000f0| 70 61 63 6b 20 73 74 72 | 65 61 6d 73 20 6f 66 20 |pack str|eams of |
|00000100| 62 69 74 73 7d 0d 69 6e | 74 65 72 66 61 63 65 0d |bits}.in|terface.|
|00000110| 75 73 65 73 20 6d 65 6d | 74 79 70 65 73 2c 71 75 |uses mem|types,qu|
|00000120| 69 63 6b 64 72 61 77 2c | 6f 73 69 6e 74 66 2c 74 |ickdraw,|osintf,t|
|00000130| 6f 6f 6c 69 6e 74 66 2c | 70 61 63 6b 69 6e 74 66 |oolintf,|packintf|
|00000140| 3b 20 0d 0d 70 72 6f 63 | 65 64 75 72 65 20 6c 6f |; ..proc|edure lo|
|00000150| 6e 67 74 6f 68 65 78 28 | 6c 6c 3a 6c 6f 6e 67 69 |ngtohex(|ll:longi|
|00000160| 6e 74 3b 76 61 72 20 68 | 65 78 3a 73 74 72 32 35 |nt;var h|ex:str25|
|00000170| 35 29 3b 0d 0d 70 72 6f | 63 65 64 75 72 65 20 64 |5);..pro|cedure d|
|00000180| 75 6d 70 68 65 78 28 6c | 6c 3a 6c 6f 6e 67 69 6e |umphex(l|l:longin|
|00000190| 74 29 3b 20 7b 77 72 69 | 74 65 20 6c 6f 6e 67 69 |t); {wri|te longi|
|000001a0| 6e 74 20 61 73 20 68 65 | 78 20 66 6f 72 20 64 65 |nt as he|x for de|
|000001b0| 62 75 67 7d 0d 0d 70 72 | 6f 63 65 64 75 72 65 20 |bug}..pr|ocedure |
|000001c0| 73 74 72 69 70 62 69 74 | 73 28 73 6f 75 72 63 65 |stripbit|s(source|
|000001d0| 3a 70 74 72 3b 0d 20 20 | 20 20 20 20 20 20 20 20 |:ptr;. | |
|000001e0| 20 20 20 20 20 20 20 20 | 20 20 73 6f 75 72 63 65 | | source|
|000001f0| 5f 62 69 74 73 5f 70 65 | 72 5f 69 74 65 6d 3a 69 |_bits_pe|r_item:i|
|00000200| 6e 74 65 67 65 72 3b 0d | 09 09 09 09 09 73 6f 75 |nteger;.|.....sou|
|00000210| 72 63 65 5f 62 79 74 65 | 73 69 7a 65 3a 6c 6f 6e |rce_byte|size:lon|
|00000220| 67 69 6e 74 3b 0d 09 09 | 09 09 09 64 65 73 74 3a |gint;...|...dest:|
|00000230| 70 74 72 3b 0d 09 09 09 | 09 09 64 65 73 74 5f 62 |ptr;....|..dest_b|
|00000240| 69 74 73 5f 70 65 72 5f | 69 74 65 6d 3a 69 6e 74 |its_per_|item:int|
|00000250| 65 67 65 72 3b 0d 09 09 | 09 09 09 64 65 73 74 5f |eger;...|...dest_|
|00000260| 62 79 74 65 73 69 7a 65 | 3a 6c 6f 6e 67 69 6e 74 |bytesize|:longint|
|00000270| 3b 0d 09 09 09 09 09 66 | 69 72 73 74 5f 69 74 65 |;......f|irst_ite|
|00000280| 6d 3a 6c 6f 6e 67 69 6e | 74 3b 0d 09 09 09 09 09 |m:longin|t;......|
|00000290| 6c 61 73 74 5f 69 74 65 | 6d 3a 6c 6f 6e 67 69 6e |last_ite|m:longin|
|000002a0| 74 3b 0d 09 09 09 09 09 | 69 6e 76 65 72 74 3a 62 |t;......|invert:b|
|000002b0| 6f 6f 6c 65 61 6e 29 3b | 0d 09 09 09 09 09 0d 0d |oolean);|........|
|000002c0| 70 72 6f 63 65 64 75 72 | 65 20 62 69 74 73 74 72 |procedur|e bitstr|
|000002d0| 65 61 6d 5f 75 6e 70 61 | 63 6b 28 09 73 6f 75 72 |eam_unpa|ck(.sour|
|000002e0| 63 65 3a 70 74 72 3b 7b | 69 6e 70 75 74 20 62 79 |ce:ptr;{|input by|
|000002f0| 74 65 73 7d 0d 09 09 09 | 09 09 09 09 73 6f 75 72 |tes}....|....sour|
|00000300| 63 65 5f 69 74 65 6d 5f | 63 6f 75 6e 74 3a 6c 6f |ce_item_|count:lo|
|00000310| 6e 67 69 6e 74 3b 0d 09 | 09 09 09 09 09 09 73 6f |ngint;..|......so|
|00000320| 75 72 63 65 5f 62 69 74 | 73 5f 70 65 72 5f 69 74 |urce_bit|s_per_it|
|00000330| 65 6d 3a 69 6e 74 65 67 | 65 72 3b 7b 32 34 20 6f |em:integ|er;{24 o|
|00000340| 72 20 6c 65 73 73 7d 0d | 09 09 09 09 09 09 09 64 |r less}.|.......d|
|00000350| 65 73 74 3a 70 74 72 3b | 7b 6f 75 74 70 75 74 20 |est:ptr;|{output |
|00000360| 62 79 74 65 73 2c 77 6f | 72 64 73 2c 20 6f 72 20 |bytes,wo|rds, or |
|00000370| 6c 6f 6e 67 77 6f 72 64 | 73 7d 0d 09 09 09 09 09 |longword|s}......|
|00000380| 09 09 64 65 73 74 5f 6d | 61 78 5f 62 79 74 65 73 |..dest_m|ax_bytes|
|00000390| 3a 6c 6f 6e 67 69 6e 74 | 3b 0d 09 09 09 09 09 09 |:longint|;.......|
|000003a0| 09 76 61 72 20 64 65 73 | 74 5f 69 74 65 6d 5f 63 |.var des|t_item_c|
|000003b0| 6f 75 6e 74 3a 6c 6f 6e | 67 69 6e 74 3b 0d 09 09 |ount:lon|gint;...|
|000003c0| 09 09 09 09 09 64 65 73 | 74 5f 62 79 74 65 73 5f |.....des|t_bytes_|
|000003d0| 70 65 72 5f 69 74 65 6d | 3a 69 6e 74 65 67 65 72 |per_item|:integer|
|000003e0| 3b 7b 31 2c 32 2c 34 7d | 0d 09 09 09 09 09 09 09 |;{1,2,4}|........|
|000003f0| 64 65 73 74 5f 6c 6f 77 | 5f 62 69 74 5f 61 6c 69 |dest_low|_bit_ali|
|00000400| 67 6e 6d 65 6e 74 3a 69 | 6e 74 65 67 65 72 29 3b |gnment:i|nteger);|
|00000410| 0d 0d 70 72 6f 63 65 64 | 75 72 65 20 62 69 74 73 |..proced|ure bits|
|00000420| 74 72 65 61 6d 5f 70 61 | 63 6b 28 09 73 6f 75 72 |tream_pa|ck(.sour|
|00000430| 63 65 3a 70 74 72 3b 7b | 69 6e 70 75 74 20 62 79 |ce:ptr;{|input by|
|00000440| 74 65 73 7d 0d 09 09 09 | 09 09 09 09 73 6f 75 72 |tes}....|....sour|
|00000450| 63 65 5f 69 74 65 6d 5f | 63 6f 75 6e 74 3a 6c 6f |ce_item_|count:lo|
|00000460| 6e 67 69 6e 74 3b 0d 09 | 09 09 09 09 09 09 73 6f |ngint;..|......so|
|00000470| 75 72 63 65 5f 62 79 74 | 65 73 5f 70 65 72 5f 69 |urce_byt|es_per_i|
|00000480| 74 65 6d 3a 69 6e 74 65 | 67 65 72 3b 7b 31 2c 32 |tem:inte|ger;{1,2|
|00000490| 2c 34 7d 0d 09 09 09 09 | 09 09 09 73 6f 75 72 63 |,4}.....|...sourc|
|000004a0| 65 5f 6c 6f 77 5f 62 69 | 74 5f 61 6c 69 67 6e 6d |e_low_bi|t_alignm|
|000004b0| 65 6e 74 3a 69 6e 74 65 | 67 65 72 3b 0d 09 09 09 |ent:inte|ger;....|
|000004c0| 09 09 09 09 64 65 73 74 | 3a 70 74 72 3b 7b 6f 75 |....dest|:ptr;{ou|
|000004d0| 74 70 75 74 20 62 79 74 | 65 73 2c 77 6f 72 64 73 |tput byt|es,words|
|000004e0| 2c 20 6f 72 20 6c 6f 6e | 67 77 6f 72 64 73 7d 0d |, or lon|gwords}.|
|000004f0| 09 09 09 09 09 09 09 64 | 65 73 74 5f 6d 61 78 5f |.......d|est_max_|
|00000500| 62 79 74 65 73 3a 6c 6f | 6e 67 69 6e 74 3b 0d 09 |bytes:lo|ngint;..|
|00000510| 09 09 09 09 09 09 64 65 | 73 74 5f 62 69 74 73 5f |......de|st_bits_|
|00000520| 70 65 72 5f 69 74 65 6d | 3a 69 6e 74 65 67 65 72 |per_item|:integer|
|00000530| 3b 7b 32 34 20 6f 72 20 | 6c 65 73 73 7d 0d 09 09 |;{24 or |less}...|
|00000540| 09 09 09 09 09 76 61 72 | 20 64 65 73 74 5f 69 74 |.....var| dest_it|
|00000550| 65 6d 5f 63 6f 75 6e 74 | 3a 6c 6f 6e 67 69 6e 74 |em_count|:longint|
|00000560| 29 3b 0d 69 6d 70 6c 65 | 6d 65 6e 74 61 74 69 6f |);.imple|mentatio|
|00000570| 6e 0d 0d 70 72 6f 63 65 | 64 75 72 65 20 6c 6f 6e |n..proce|dure lon|
|00000580| 67 74 6f 68 65 78 28 6c | 6c 3a 6c 6f 6e 67 69 6e |gtohex(l|l:longin|
|00000590| 74 3b 76 61 72 20 68 65 | 78 3a 73 74 72 32 35 35 |t;var he|x:str255|
|000005a0| 29 3b 0d 63 6f 6e 73 74 | 20 6d 61 73 6b 3d 24 30 |);.const| mask=$0|
|000005b0| 30 30 30 30 30 30 46 3b | 0d 76 61 72 20 69 2c 64 |000000F;|.var i,d|
|000005c0| 64 3a 69 6e 74 65 67 65 | 72 3b 0d 62 65 67 69 6e |d:intege|r;.begin|
|000005d0| 0d 68 65 78 3a 3d 27 27 | 3b 0d 66 6f 72 20 69 3a |.hex:=''|;.for i:|
|000005e0| 3d 31 20 74 6f 20 38 20 | 64 6f 0d 20 20 20 62 65 |=1 to 8 |do. be|
|000005f0| 67 69 6e 0d 20 20 20 64 | 64 3a 3d 69 6e 74 65 67 |gin. d|d:=integ|
|00000600| 65 72 28 62 69 74 61 6e | 64 28 6c 6c 2c 6d 61 73 |er(bitan|d(ll,mas|
|00000610| 6b 29 29 3b 0d 20 20 20 | 68 65 78 3a 3d 63 6f 6e |k));. |hex:=con|
|00000620| 63 61 74 28 43 6f 70 79 | 28 27 30 31 32 33 34 35 |cat(Copy|('012345|
|00000630| 36 37 38 39 41 42 43 44 | 45 46 27 2c 64 64 2b 31 |6789ABCD|EF',dd+1|
|00000640| 2c 31 29 2c 68 65 78 29 | 3b 0d 20 20 20 6c 6c 3a |,1),hex)|;. ll:|
|00000650| 3d 62 69 74 73 68 69 66 | 74 28 6c 6c 2c 2d 34 29 |=bitshif|t(ll,-4)|
|00000660| 3b 0d 20 20 20 65 6e 64 | 3b 0d 65 6e 64 3b 7b 6c |;. end|;.end;{l|
|00000670| 6f 6e 67 74 6f 68 65 78 | 7d 0d 0d 70 72 6f 63 65 |ongtohex|}..proce|
|00000680| 64 75 72 65 20 64 75 6d | 70 68 65 78 7b 28 6c 6c |dure dum|phex{(ll|
|00000690| 3a 6c 6f 6e 67 69 6e 74 | 29 7d 3b 0d 76 61 72 20 |:longint|)};.var |
|000006a0| 73 73 3a 73 74 72 32 35 | 35 3b 0d 62 65 67 69 6e |ss:str25|5;.begin|
|000006b0| 0d 6c 6f 6e 67 74 6f 68 | 65 78 28 6c 6c 2c 73 73 |.longtoh|ex(ll,ss|
|000006c0| 29 3b 0d 77 72 69 74 65 | 28 73 73 2c 27 20 27 29 |);.write|(ss,' ')|
|000006d0| 3b 0d 65 6e 64 3b 7b 64 | 75 6d 70 68 65 78 7d 0d |;.end;{d|umphex}.|
|000006e0| 0d 70 72 6f 63 65 64 75 | 72 65 20 73 74 72 69 70 |.procedu|re strip|
|000006f0| 62 69 74 73 28 2a 20 28 | 73 6f 75 72 63 65 3a 70 |bits(* (|source:p|
|00000700| 74 72 3b 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |tr;. | |
|00000710| 20 20 20 20 20 20 20 20 | 73 6f 75 72 63 65 5f 62 | |source_b|
|00000720| 69 74 73 5f 70 65 72 5f | 69 74 65 6d 3a 69 6e 74 |its_per_|item:int|
|00000730| 65 67 65 72 3b 0d 09 09 | 09 09 09 73 6f 75 72 63 |eger;...|...sourc|
|00000740| 65 5f 62 79 74 65 73 69 | 7a 65 3a 6c 6f 6e 67 69 |e_bytesi|ze:longi|
|00000750| 6e 74 3b 0d 09 09 09 09 | 09 64 65 73 74 3a 70 74 |nt;.....|.dest:pt|
|00000760| 72 3b 0d 09 09 09 09 09 | 64 65 73 74 5f 62 69 74 |r;......|dest_bit|
|00000770| 73 5f 70 65 72 5f 69 74 | 65 6d 3a 69 6e 74 65 67 |s_per_it|em:integ|
|00000780| 65 72 3b 0d 09 09 09 09 | 09 64 65 73 74 5f 62 79 |er;.....|.dest_by|
|00000790| 74 65 73 69 7a 65 3a 6c | 6f 6e 67 69 6e 74 3b 0d |tesize:l|ongint;.|
|000007a0| 09 09 09 09 09 66 69 72 | 73 74 5f 69 74 65 6d 3a |.....fir|st_item:|
|000007b0| 6c 6f 6e 67 69 6e 74 3b | 0d 09 09 09 09 09 6c 61 |longint;|......la|
|000007c0| 73 74 5f 69 74 65 6d 3a | 6c 6f 6e 67 69 6e 74 3b |st_item:|longint;|
|000007d0| 0d 09 09 09 09 09 69 6e | 76 65 72 74 3a 62 6f 6f |......in|vert:boo|
|000007e0| 6c 65 61 6e 29 20 2a 29 | 3b 0d 09 09 09 09 09 0d |lean) *)|;.......|
|000007f0| 7b 74 72 75 6e 63 61 74 | 65 20 6f 72 20 70 61 64 |{truncat|e or pad|
|00000800| 20 61 20 73 74 72 65 61 | 6d 20 6f 66 20 62 69 74 | a strea|m of bit|
|00000810| 73 7d 0d 6c 61 62 65 6c | 20 39 39 3b 0d 76 61 72 |s}.label| 99;.var|
|00000820| 20 73 62 69 74 2c 64 62 | 69 74 3a 6c 6f 6e 67 69 | sbit,db|it:longi|
|00000830| 6e 74 3b 0d 20 20 20 20 | 73 6f 75 72 63 65 62 79 |nt;. |sourceby|
|00000840| 74 65 3a 6c 6f 6e 67 69 | 6e 74 3b 0d 20 20 20 20 |te:longi|nt;. |
|00000850| 64 65 73 74 62 79 74 65 | 3a 6c 6f 6e 67 69 6e 74 |destbyte|:longint|
|00000860| 3b 0d 20 20 20 20 73 6f | 66 66 2c 64 6f 66 66 3a |;. so|ff,doff:|
|00000870| 69 6e 74 65 67 65 72 3b | 0d 09 69 2c 6a 2c 64 69 |integer;|..i,j,di|
|00000880| 3a 6c 6f 6e 67 69 6e 74 | 3b 0d 09 6d 69 6e 62 69 |:longint|;..minbi|
|00000890| 74 73 3a 69 6e 74 65 67 | 65 72 3b 0d 09 62 69 74 |ts:integ|er;..bit|
|000008a0| 3a 62 6f 6f 6c 65 61 6e | 3b 0d 62 65 67 69 6e 0d |:boolean|;.begin.|
|000008b0| 69 66 20 73 6f 75 72 63 | 65 5f 62 69 74 73 5f 70 |if sourc|e_bits_p|
|000008c0| 65 72 5f 69 74 65 6d 3c | 64 65 73 74 5f 62 69 74 |er_item<|dest_bit|
|000008d0| 73 5f 70 65 72 5f 69 74 | 65 6d 20 74 68 65 6e 0d |s_per_it|em then.|
|000008e0| 20 20 20 20 20 6d 69 6e | 62 69 74 73 3a 3d 73 6f | min|bits:=so|
|000008f0| 75 72 63 65 5f 62 69 74 | 73 5f 70 65 72 5f 69 74 |urce_bit|s_per_it|
|00000900| 65 6d 0d 20 20 20 65 6c | 73 65 0d 20 20 20 20 20 |em. el|se. |
|00000910| 6d 69 6e 62 69 74 73 3a | 3d 64 65 73 74 5f 62 69 |minbits:|=dest_bi|
|00000920| 74 73 5f 70 65 72 5f 69 | 74 65 6d 3b 0d 6d 69 6e |ts_per_i|tem;.min|
|00000930| 62 69 74 73 3a 3d 6d 69 | 6e 62 69 74 73 2d 31 3b |bits:=mi|nbits-1;|
|00000940| 0d 64 69 3a 3d 30 3b 7b | 64 65 73 74 69 6e 61 74 |.di:=0;{|destinat|
|00000950| 69 6f 6e 20 69 74 65 6d | 20 63 6f 75 6e 74 7d 0d |ion item| count}.|
|00000960| 66 6f 72 20 69 3a 3d 66 | 69 72 73 74 5f 69 74 65 |for i:=f|irst_ite|
|00000970| 6d 2d 31 20 74 6f 20 6c | 61 73 74 5f 69 74 65 6d |m-1 to l|ast_item|
|00000980| 2d 31 20 64 6f 0d 20 20 | 20 62 65 67 69 6e 0d 20 |-1 do. | begin. |
|00000990| 20 20 20 20 66 6f 72 20 | 6a 3a 3d 30 20 74 6f 20 | for |j:=0 to |
|000009a0| 6d 69 6e 62 69 74 73 20 | 64 6f 0d 09 09 20 20 20 |minbits |do... |
|000009b0| 62 65 67 69 6e 0d 09 09 | 09 20 20 20 73 62 69 74 |begin...|. sbit|
|000009c0| 3a 3d 6a 2b 69 2a 73 6f | 75 72 63 65 5f 62 69 74 |:=j+i*so|urce_bit|
|000009d0| 73 5f 70 65 72 5f 69 74 | 65 6d 3b 0d 09 09 09 20 |s_per_it|em;.... |
|000009e0| 20 20 64 62 69 74 3a 3d | 6a 2b 64 69 2a 64 65 73 | dbit:=|j+di*des|
|000009f0| 74 5f 62 69 74 73 5f 70 | 65 72 5f 69 74 65 6d 3b |t_bits_p|er_item;|
|00000a00| 0d 09 09 09 20 20 20 73 | 6f 75 72 63 65 62 79 74 |.... s|ourcebyt|
|00000a10| 65 3a 3d 62 73 72 28 73 | 62 69 74 2c 33 29 3b 0d |e:=bsr(s|bit,3);.|
|00000a20| 09 09 09 20 20 20 64 65 | 73 74 62 79 74 65 3a 3d |... de|stbyte:=|
|00000a30| 62 73 72 28 64 62 69 74 | 2c 33 29 3b 0d 09 09 09 |bsr(dbit|,3);....|
|00000a40| 20 20 20 69 66 20 73 6f | 75 72 63 65 62 79 74 65 | if so|urcebyte|
|00000a50| 3c 73 6f 75 72 63 65 5f | 62 79 74 65 73 69 7a 65 |<source_|bytesize|
|00000a60| 20 74 68 65 6e 0d 09 09 | 09 09 20 20 62 65 67 69 | then...|.. begi|
|00000a70| 6e 0d 09 09 09 09 09 62 | 69 74 3a 3d 62 69 74 74 |n......b|it:=bitt|
|00000a80| 73 74 28 73 6f 75 72 63 | 65 2c 73 62 69 74 29 3b |st(sourc|e,sbit);|
|00000a90| 0d 09 09 09 09 09 69 66 | 20 69 6e 76 65 72 74 20 |......if| invert |
|00000aa0| 74 68 65 6e 20 62 69 74 | 3a 3d 6e 6f 74 20 62 69 |then bit|:=not bi|
|00000ab0| 74 3b 0d 09 09 09 09 20 | 20 65 6e 64 0d 09 09 09 |t;..... | end....|
|00000ac0| 20 20 20 65 6c 73 65 0d | 09 09 09 09 20 20 62 65 | else.|.... be|
|00000ad0| 67 69 6e 0d 09 09 09 09 | 09 62 69 74 3a 3d 66 61 |gin.....|.bit:=fa|
|00000ae0| 6c 73 65 3b 0d 09 09 09 | 09 20 20 65 6e 64 3b 0d |lse;....|. end;.|
|00000af0| 09 09 09 09 69 66 20 64 | 65 73 74 62 79 74 65 3c |....if d|estbyte<|
|00000b00| 64 65 73 74 5f 62 79 74 | 65 73 69 7a 65 20 74 68 |dest_byt|esize th|
|00000b10| 65 6e 0d 09 09 09 09 20 | 20 62 65 67 69 6e 0d 09 |en..... | begin..|
|00000b20| 09 09 09 09 69 66 20 62 | 69 74 20 74 68 65 6e 0d |....if b|it then.|
|00000b30| 09 09 09 09 09 20 20 62 | 69 74 73 65 74 28 64 65 |..... b|itset(de|
|00000b40| 73 74 2c 64 62 69 74 29 | 0d 09 09 09 09 09 65 6c |st,dbit)|......el|
|00000b50| 73 65 0d 09 09 09 09 09 | 20 20 62 69 74 63 6c 72 |se......| bitclr|
|00000b60| 28 64 65 73 74 2c 64 62 | 69 74 29 3b 0d 09 09 09 |(dest,db|it);....|
|00000b70| 09 20 20 65 6e 64 0d 09 | 09 09 09 65 6c 73 65 0d |. end..|...else.|
|00000b80| 09 09 09 09 20 20 62 65 | 67 69 6e 0d 09 09 09 09 |.... be|gin.....|
|00000b90| 09 67 6f 74 6f 20 39 39 | 3b 0d 09 09 09 09 20 20 |.goto 99|;..... |
|00000ba0| 65 6e 64 3b 0d 09 09 20 | 20 20 65 6e 64 3b 7b 62 |end;... | end;{b|
|00000bb0| 69 74 20 63 6f 70 79 20 | 6c 6f 6f 70 7d 0d 09 09 |it copy |loop}...|
|00000bc0| 20 20 20 0d 09 09 66 6f | 72 20 6a 3a 3d 6d 69 6e | ...fo|r j:=min|
|00000bd0| 62 69 74 73 2b 31 20 74 | 6f 20 64 65 73 74 5f 62 |bits+1 t|o dest_b|
|00000be0| 69 74 73 5f 70 65 72 5f | 69 74 65 6d 2d 31 20 64 |its_per_|item-1 d|
|00000bf0| 6f 0d 09 09 20 20 20 62 | 65 67 69 6e 0d 09 09 20 |o... b|egin... |
|00000c00| 20 20 7b 63 6c 65 61 72 | 20 75 6e 75 73 65 64 20 | {clear| unused |
|00000c10| 62 69 74 73 20 69 6e 20 | 64 65 73 74 69 6e 61 74 |bits in |destinat|
|00000c20| 69 6f 6e 7d 0d 09 09 09 | 20 20 20 64 62 69 74 3a |ion}....| dbit:|
|00000c30| 3d 6a 2b 64 69 2a 64 65 | 73 74 5f 62 69 74 73 5f |=j+di*de|st_bits_|
|00000c40| 70 65 72 5f 69 74 65 6d | 3b 0d 09 09 09 20 20 20 |per_item|;.... |
|00000c50| 64 65 73 74 62 79 74 65 | 3a 3d 62 73 72 28 64 62 |destbyte|:=bsr(db|
|00000c60| 69 74 2c 33 29 3b 0d 09 | 09 09 09 69 66 20 64 65 |it,3);..|...if de|
|00000c70| 73 74 62 79 74 65 3c 64 | 65 73 74 5f 62 79 74 65 |stbyte<d|est_byte|
|00000c80| 73 69 7a 65 20 74 68 65 | 6e 0d 09 09 09 09 20 20 |size the|n..... |
|00000c90| 62 65 67 69 6e 0d 09 09 | 09 09 09 20 20 62 69 74 |begin...|... bit|
|00000ca0| 63 6c 72 28 64 65 73 74 | 2c 64 62 69 74 29 3b 0d |clr(dest|,dbit);.|
|00000cb0| 09 09 09 09 20 20 65 6e | 64 0d 09 09 09 09 65 6c |.... en|d.....el|
|00000cc0| 73 65 0d 09 09 09 09 20 | 20 62 65 67 69 6e 0d 09 |se..... | begin..|
|00000cd0| 09 09 09 09 67 6f 74 6f | 20 39 39 3b 0d 09 09 09 |....goto| 99;....|
|00000ce0| 09 20 20 65 6e 64 3b 0d | 09 09 20 20 20 65 6e 64 |. end;.|.. end|
|00000cf0| 3b 7b 62 69 74 20 66 69 | 6c 6c 20 6c 6f 6f 70 7d |;{bit fi|ll loop}|
|00000d00| 0d 09 09 20 20 20 0d 20 | 20 20 64 69 3a 3d 64 69 |... . | di:=di|
|00000d10| 2b 31 3b 7b 64 65 73 74 | 69 6e 61 74 69 6f 6e 20 |+1;{dest|ination |
|00000d20| 69 74 65 6d 20 63 6f 75 | 6e 74 7d 0d 20 20 20 65 |item cou|nt}. e|
|00000d30| 6e 64 3b 7b 69 74 65 6d | 20 6c 6f 6f 70 7d 0d 39 |nd;{item| loop}.9|
|00000d40| 39 3a 0d 65 6e 64 3b 0d | 0d 0d 70 72 6f 63 65 64 |9:.end;.|..proced|
|00000d50| 75 72 65 20 62 69 74 73 | 74 72 65 61 6d 5f 75 6e |ure bits|tream_un|
|00000d60| 70 61 63 6b 28 2a 28 09 | 73 6f 75 72 63 65 3a 70 |pack(*(.|source:p|
|00000d70| 74 72 3b 7b 69 6e 70 75 | 74 20 62 79 74 65 73 7d |tr;{inpu|t bytes}|
|00000d80| 0d 09 09 09 09 09 09 09 | 73 6f 75 72 63 65 5f 69 |........|source_i|
|00000d90| 74 65 6d 5f 63 6f 75 6e | 74 3a 6c 6f 6e 67 69 6e |tem_coun|t:longin|
|00000da0| 74 3b 0d 09 09 09 09 09 | 09 09 73 6f 75 72 63 65 |t;......|..source|
|00000db0| 5f 62 69 74 73 5f 70 65 | 72 5f 69 74 65 6d 3a 69 |_bits_pe|r_item:i|
|00000dc0| 6e 74 65 67 65 72 3b 7b | 32 34 20 6f 72 20 6c 65 |nteger;{|24 or le|
|00000dd0| 73 73 7d 0d 09 09 09 09 | 09 09 09 64 65 73 74 3a |ss}.....|...dest:|
|00000de0| 70 74 72 3b 7b 6f 75 74 | 70 75 74 20 62 79 74 65 |ptr;{out|put byte|
|00000df0| 73 2c 77 6f 72 64 73 2c | 20 6f 72 20 6c 6f 6e 67 |s,words,| or long|
|00000e00| 77 6f 72 64 73 7d 0d 09 | 09 09 09 09 09 09 64 65 |words}..|......de|
|00000e10| 73 74 5f 6d 61 78 5f 62 | 79 74 65 73 3a 6c 6f 6e |st_max_b|ytes:lon|
|00000e20| 67 69 6e 74 3b 0d 09 09 | 09 09 09 09 09 76 61 72 |gint;...|.....var|
|00000e30| 20 64 65 73 74 5f 69 74 | 65 6d 5f 63 6f 75 6e 74 | dest_it|em_count|
|00000e40| 3a 6c 6f 6e 67 69 6e 74 | 3b 0d 09 09 09 09 09 09 |:longint|;.......|
|00000e50| 09 64 65 73 74 5f 62 79 | 74 65 73 5f 70 65 72 5f |.dest_by|tes_per_|
|00000e60| 69 74 65 6d 3a 69 6e 74 | 65 67 65 72 3b 7b 31 2c |item:int|eger;{1,|
|00000e70| 32 2c 34 7d 0d 09 09 09 | 09 09 09 09 64 65 73 74 |2,4}....|....dest|
|00000e80| 5f 6c 6f 77 5f 62 69 74 | 5f 61 6c 69 67 6e 6d 65 |_low_bit|_alignme|
|00000e90| 6e 74 3a 69 6e 74 65 67 | 65 72 29 2a 29 3b 0d 7b |nt:integ|er)*);.{|
|00000ea0| 75 6e 70 61 63 6b 20 61 | 20 73 74 72 65 61 6d 20 |unpack a| stream |
|00000eb0| 6f 66 20 62 69 74 73 20 | 69 6e 74 6f 20 61 6e 20 |of bits |into an |
|00000ec0| 61 72 72 61 79 20 6f 66 | 20 62 79 74 65 73 2c 77 |array of| bytes,w|
|00000ed0| 6f 72 64 73 20 6f 72 20 | 6c 6f 6e 67 69 6e 74 7d |ords or |longint}|
|00000ee0| 0d 7b 75 73 65 20 68 69 | 67 68 20 74 6f 20 6c 6f |.{use hi|gh to lo|
|00000ef0| 77 20 6c 65 66 74 20 74 | 6f 20 72 69 67 68 74 20 |w left t|o right |
|00000f00| 63 6f 6f 64 69 6e 61 74 | 65 73 20 66 6f 72 20 62 |coodinat|es for b|
|00000f10| 69 74 73 20 61 6e 64 20 | 62 79 74 65 73 0d 20 65 |its and |bytes. e|
|00000f20| 78 63 65 70 74 20 66 6f | 72 20 64 65 73 74 5f 6c |xcept fo|r dest_l|
|00000f30| 6f 77 5f 62 69 74 5f 61 | 6c 69 67 6e 6d 65 6e 74 |ow_bit_a|lignment|
|00000f40| 20 77 68 69 63 68 20 69 | 73 20 61 6e 20 6f 66 66 | which i|s an off|
|00000f50| 73 65 74 20 66 72 6f 6d | 20 74 68 65 20 72 69 67 |set from| the rig|
|00000f60| 68 74 7d 0d 76 61 72 20 | 69 74 65 6d 3a 6c 6f 6e |ht}.var |item:lon|
|00000f70| 67 69 6e 74 3b 0d 20 20 | 20 20 73 74 61 72 74 62 |gint;. | startb|
|00000f80| 69 74 2c 65 6e 64 62 69 | 74 3a 6c 6f 6e 67 69 6e |it,endbi|t:longin|
|00000f90| 74 3b 0d 09 73 74 61 72 | 74 62 79 74 65 2c 65 6e |t;..star|tbyte,en|
|00000fa0| 64 62 79 74 65 2c 62 79 | 74 65 63 6f 75 6e 74 3a |dbyte,by|tecount:|
|00000fb0| 6c 6f 6e 67 69 6e 74 3b | 0d 09 64 65 73 74 62 79 |longint;|..destby|
|00000fc0| 74 65 3a 6c 6f 6e 67 69 | 6e 74 3b 0d 09 65 6e 64 |te:longi|nt;..end|
|00000fd0| 70 68 61 73 65 3a 69 6e | 74 65 67 65 72 3b 0d 09 |phase:in|teger;..|
|00000fe0| 77 6f 72 6b 2c 64 65 73 | 74 6d 61 73 6b 3a 6c 6f |work,des|tmask:lo|
|00000ff0| 6e 67 69 6e 74 3b 0d 09 | 73 6f 75 72 63 65 73 74 |ngint;..|sourcest|
|00001000| 72 69 70 2c 64 65 73 74 | 73 74 72 69 70 3a 6c 6f |rip,dest|strip:lo|
|00001010| 6e 67 69 6e 74 3b 7b 61 | 64 64 72 65 73 73 20 66 |ngint;{a|ddress f|
|00001020| 6f 72 20 70 6f 69 6e 74 | 65 72 20 61 72 69 74 68 |or point|er arith|
|00001030| 6d 65 74 69 63 7d 0d 09 | 77 70 74 72 2c 6f 75 74 |metic}..|wptr,out|
|00001040| 70 74 72 3a 70 74 72 3b | 0d 09 69 3a 6c 6f 6e 67 |ptr:ptr;|..i:long|
|00001050| 69 6e 74 3b 0d 09 6d 6f | 72 65 70 68 61 73 65 3a |int;..mo|rephase:|
|00001060| 69 6e 74 65 67 65 72 3b | 0d 62 65 67 69 6e 0d 64 |integer;|.begin.d|
|00001070| 65 73 74 62 79 74 65 3a | 3d 30 3b 0d 0d 7b 73 74 |estbyte:|=0;..{st|
|00001080| 72 69 70 20 61 64 64 72 | 65 73 73 20 74 6f 20 61 |rip addr|ess to a|
|00001090| 6c 6c 6f 77 20 70 6f 69 | 6e 74 65 72 20 61 72 69 |llow poi|nter ari|
|000010a0| 74 68 6d 65 74 69 63 7d | 0d 73 6f 75 72 63 65 73 |thmetic}|.sources|
|000010b0| 74 72 69 70 3a 3d 6f 72 | 64 34 28 73 74 72 69 70 |trip:=or|d4(strip|
|000010c0| 61 64 64 72 65 73 73 28 | 73 6f 75 72 63 65 29 29 |address(|source))|
|000010d0| 3b 0d 64 65 73 74 73 74 | 72 69 70 3a 3d 6f 72 64 |;.destst|rip:=ord|
|000010e0| 34 28 73 74 72 69 70 61 | 64 64 72 65 73 73 28 64 |4(stripa|ddress(d|
|000010f0| 65 73 74 29 29 3b 0d 0d | 7b 6d 61 6b 65 20 64 65 |est));..|{make de|
|00001100| 73 74 69 6e 61 74 69 6f | 6e 20 6d 61 73 6b 7d 0d |stinatio|n mask}.|
|00001110| 64 65 73 74 6d 61 73 6b | 3a 3d 62 73 72 28 24 46 |destmask|:=bsr($F|
|00001120| 46 46 46 46 46 46 46 2c | 33 32 2d 73 6f 75 72 63 |FFFFFFF,|32-sourc|
|00001130| 65 5f 62 69 74 73 5f 70 | 65 72 5f 69 74 65 6d 29 |e_bits_p|er_item)|
|00001140| 3b 0d 6f 75 74 70 74 72 | 3a 3d 70 6f 69 6e 74 65 |;.outptr|:=pointe|
|00001150| 72 28 6f 72 64 28 40 77 | 6f 72 6b 29 2b 34 2d 64 |r(ord(@w|ork)+4-d|
|00001160| 65 73 74 5f 62 79 74 65 | 73 5f 70 65 72 5f 69 74 |est_byte|s_per_it|
|00001170| 65 6d 29 3b 7b 70 6f 69 | 6e 74 65 72 20 74 6f 20 |em);{poi|nter to |
|00001180| 69 74 65 6d 20 74 6f 20 | 6f 75 74 70 75 74 7d 0d |item to |output}.|
|00001190| 69 66 20 73 6f 75 72 63 | 65 5f 62 69 74 73 5f 70 |if sourc|e_bits_p|
|000011a0| 65 72 5f 69 74 65 6d 3e | 31 20 74 68 65 6e 0d 09 |er_item>|1 then..|
|000011b0| 62 65 67 69 6e 0d 09 7b | 6d 75 6c 74 69 20 62 69 |begin..{|multi bi|
|000011c0| 74 20 75 6e 70 61 63 6b | 20 6c 6f 6f 70 7d 0d 09 |t unpack| loop}..|
|000011d0| 66 6f 72 20 69 3a 3d 31 | 20 74 6f 20 73 6f 75 72 |for i:=1| to sour|
|000011e0| 63 65 5f 69 74 65 6d 5f | 63 6f 75 6e 74 20 64 6f |ce_item_|count do|
|000011f0| 0d 09 20 20 62 65 67 69 | 6e 0d 09 09 77 6f 72 6b |.. begi|n...work|
|00001200| 3a 3d 30 3b 0d 09 20 7b | 30 31 32 33 34 35 36 37 |:=0;.. {|01234567|
|00001210| 38 39 30 31 32 33 34 35 | 36 37 38 39 30 31 32 33 |89012345|67890123|
|00001220| 34 35 36 37 38 39 30 31 | 32 33 34 35 36 37 38 39 |45678901|23456789|
|00001230| 20 62 69 74 20 63 6f 75 | 6e 74 0d 09 20 20 30 31 | bit cou|nt.. 01|
|00001240| 32 33 34 35 36 37 30 31 | 32 33 34 35 36 37 30 31 |23456701|23456701|
|00001250| 32 33 34 35 36 37 30 31 | 32 33 34 35 36 37 30 31 |23456701|23456701|
|00001260| 32 33 34 35 36 37 20 62 | 69 74 20 66 72 6f 6d 20 |234567 b|it from |
|00001270| 6c 65 66 74 20 69 6e 20 | 62 79 74 65 0d 09 20 20 |left in |byte.. |
|00001280| 37 36 35 34 33 32 31 30 | 37 36 35 34 33 32 31 30 |76543210|76543210|
|00001290| 37 36 35 34 33 32 31 30 | 37 36 35 34 33 32 31 30 |76543210|76543210|
|000012a0| 37 36 35 34 33 32 31 30 | 20 62 69 74 20 66 72 6f |76543210| bit fro|
|000012b0| 6d 20 72 69 67 68 74 20 | 69 6e 20 62 79 74 65 0d |m right |in byte.|
|000012c0| 09 20 20 30 30 30 30 30 | 30 30 30 31 31 31 31 31 |. 00000|00011111|
|000012d0| 31 31 31 32 32 32 32 32 | 32 32 32 33 33 33 33 33 |11122222|22233333|
|000012e0| 33 33 33 34 34 34 34 34 | 34 34 34 20 62 79 74 65 |33344444|444 byte|
|000012f0| 20 63 6f 75 6e 74 0d 09 | 20 20 31 31 31 32 32 32 | count..| 111222|
|00001300| 33 33 33 34 34 34 35 35 | 35 36 36 36 37 37 37 38 |33344455|56667778|
|00001310| 38 38 39 39 39 30 30 30 | 31 31 31 32 32 32 33 33 |88999000|11122233|
|00001320| 33 20 20 69 74 65 6d 20 | 63 6f 75 6e 74 20 28 33 |3 item |count (3|
|00001330| 20 62 69 74 73 20 70 65 | 72 20 69 74 65 6d 29 0d | bits pe|r item).|
|00001340| 09 20 20 7d 0d 09 09 73 | 74 61 72 74 62 69 74 3a |. }...s|tartbit:|
|00001350| 3d 73 6f 75 72 63 65 5f | 62 69 74 73 5f 70 65 72 |=source_|bits_per|
|00001360| 5f 69 74 65 6d 2a 28 69 | 2d 31 29 3b 0d 09 09 65 |_item*(i|-1);...e|
|00001370| 6e 64 62 69 74 3a 3d 28 | 73 6f 75 72 63 65 5f 62 |ndbit:=(|source_b|
|00001380| 69 74 73 5f 70 65 72 5f | 69 74 65 6d 2a 69 29 2d |its_per_|item*i)-|
|00001390| 31 3b 0d 09 09 73 74 61 | 72 74 62 79 74 65 3a 3d |1;...sta|rtbyte:=|
|000013a0| 62 73 72 28 73 74 61 72 | 74 62 69 74 2c 33 29 3b |bsr(star|tbit,3);|
|000013b0| 0d 09 09 09 09 7b 20 64 | 69 76 20 38 20 28 72 6f |.....{ d|iv 8 (ro|
|000013c0| 75 6e 64 20 64 6f 77 6e | 20 74 6f 20 62 79 74 65 |und down| to byte|
|000013d0| 29 7d 0d 09 09 65 6e 64 | 62 79 74 65 3a 3d 62 73 |)}...end|byte:=bs|
|000013e0| 72 28 65 6e 64 62 69 74 | 2c 33 29 3b 0d 09 09 09 |r(endbit|,3);....|
|000013f0| 09 7b 64 69 76 20 38 20 | 28 72 6f 75 6e 64 20 64 |.{div 8 |(round d|
|00001400| 6f 77 6e 20 74 6f 20 62 | 79 74 65 29 7d 0d 09 09 |own to b|yte)}...|
|00001410| 65 6e 64 70 68 61 73 65 | 3a 3d 28 62 73 6c 28 65 |endphase|:=(bsl(e|
|00001420| 6e 64 62 79 74 65 2c 33 | 29 2b 37 29 2d 65 6e 64 |ndbyte,3|)+7)-end|
|00001430| 62 69 74 3b 0d 09 09 09 | 09 7b 61 6d 6f 75 6e 74 |bit;....|.{amount|
|00001440| 20 6e 65 65 64 65 64 20 | 74 6f 20 72 69 67 68 74 | needed |to right|
|00001450| 20 6a 75 73 74 69 66 79 | 20 74 6f 20 61 20 62 79 | justify| to a by|
|00001460| 74 65 7d 0d 09 09 62 79 | 74 65 63 6f 75 6e 74 3a |te}...by|tecount:|
|00001470| 3d 65 6e 64 62 79 74 65 | 2d 73 74 61 72 74 62 79 |=endbyte|-startby|
|00001480| 74 65 2b 31 3b 0d 09 09 | 6d 6f 72 65 70 68 61 73 |te+1;...|morephas|
|00001490| 65 3a 3d 62 73 6c 28 34 | 2d 62 79 74 65 63 6f 75 |e:=bsl(4|-bytecou|
|000014a0| 6e 74 2c 33 29 3b 0d 09 | 09 09 09 7b 61 6d 6f 75 |nt,3);..|...{amou|
|000014b0| 6e 74 20 6e 65 65 64 65 | 64 20 74 6f 20 72 69 67 |nt neede|d to rig|
|000014c0| 68 74 20 6a 75 73 74 69 | 66 79 20 69 6e 20 6c 6f |ht justi|fy in lo|
|000014d0| 6e 67 69 6e 74 7d 0d 09 | 20 28 2a 20 20 20 77 72 |ngint}..| (* wr|
|000014e0| 69 74 65 6c 6e 28 27 73 | 74 61 72 74 62 69 74 3d |iteln('s|tartbit=|
|000014f0| 27 2c 73 74 61 72 74 62 | 69 74 29 3b 0d 09 20 20 |',startb|it);.. |
|00001500| 20 20 77 72 69 74 65 6c | 6e 28 27 65 6e 64 62 69 | writel|n('endbi|
|00001510| 74 3d 27 2c 65 6e 64 62 | 69 74 29 3b 0d 09 09 77 |t=',endb|it);...w|
|00001520| 72 69 74 65 6c 6e 28 27 | 73 74 61 72 74 62 79 74 |riteln('|startbyt|
|00001530| 65 3d 27 2c 73 74 61 72 | 74 62 79 74 65 29 3b 0d |e=',star|tbyte);.|
|00001540| 09 09 77 72 69 74 65 6c | 6e 28 27 65 6e 64 62 79 |..writel|n('endby|
|00001550| 74 65 3d 27 2c 65 6e 64 | 62 79 74 65 29 3b 0d 09 |te=',end|byte);..|
|00001560| 09 77 72 69 74 65 6c 6e | 28 27 62 79 74 65 63 6f |.writeln|('byteco|
|00001570| 75 6e 74 3d 27 2c 62 79 | 74 65 63 6f 75 6e 74 29 |unt=',by|tecount)|
|00001580| 3b 0d 09 09 77 72 69 74 | 65 6c 6e 28 27 70 68 61 |;...writ|eln('pha|
|00001590| 73 65 3d 27 2c 65 6e 64 | 70 68 61 73 65 2c 27 20 |se=',end|phase,' |
|000015a0| 2b 20 27 2c 6d 6f 72 65 | 70 68 61 73 65 29 3b 2a |+ ',more|phase);*|
|000015b0| 29 0d 09 09 0d 09 09 77 | 70 74 72 3a 3d 70 6f 69 |)......w|ptr:=poi|
|000015c0| 6e 74 65 72 28 73 6f 75 | 72 63 65 73 74 72 69 70 |nter(sou|rcestrip|
|000015d0| 2b 73 74 61 72 74 62 79 | 74 65 29 3b 0d 09 09 62 |+startby|te);...b|
|000015e0| 6c 6f 63 6b 6d 6f 76 65 | 28 77 70 74 72 2c 40 77 |lockmove|(wptr,@w|
|000015f0| 6f 72 6b 2c 62 79 74 65 | 63 6f 75 6e 74 29 3b 0d |ork,byte|count);.|
|00001600| 09 09 28 2a 64 75 6d 70 | 68 65 78 28 77 6f 72 6b |..(*dump|hex(work|
|00001610| 29 3b 0d 09 09 77 72 69 | 74 65 6c 6e 28 77 6f 72 |);...wri|teln(wor|
|00001620| 6b 29 3b 2a 29 0d 09 09 | 77 6f 72 6b 3a 3d 62 73 |k);*)...|work:=bs|
|00001630| 6c 28 62 61 6e 64 28 62 | 73 72 28 77 6f 72 6b 2c |l(band(b|sr(work,|
|00001640| 65 6e 64 70 68 61 73 65 | 2b 6d 6f 72 65 70 68 61 |endphase|+morepha|
|00001650| 73 65 29 2c 64 65 73 74 | 6d 61 73 6b 29 2c 64 65 |se),dest|mask),de|
|00001660| 73 74 5f 6c 6f 77 5f 62 | 69 74 5f 61 6c 69 67 6e |st_low_b|it_align|
|00001670| 6d 65 6e 74 29 3b 0d 09 | 09 28 2a 64 75 6d 70 68 |ment);..|.(*dumph|
|00001680| 65 78 28 77 6f 72 6b 29 | 3b 0d 09 09 77 72 69 74 |ex(work)|;...writ|
|00001690| 65 6c 6e 28 77 6f 72 6b | 29 3b 2a 29 0d 09 09 69 |eln(work|);*)...i|
|000016a0| 66 20 64 65 73 74 62 79 | 74 65 2b 64 65 73 74 5f |f destby|te+dest_|
|000016b0| 62 79 74 65 73 5f 70 65 | 72 5f 69 74 65 6d 3c 3d |bytes_pe|r_item<=|
|000016c0| 64 65 73 74 5f 6d 61 78 | 5f 62 79 74 65 73 20 74 |dest_max|_bytes t|
|000016d0| 68 65 6e 20 7b 3f 3f 3f | 3f 3f 3f 7d 0d 09 09 09 |hen {???|???}....|
|000016e0| 62 65 67 69 6e 0d 09 09 | 09 09 64 65 73 74 5f 69 |begin...|..dest_i|
|000016f0| 74 65 6d 5f 63 6f 75 6e | 74 3a 3d 64 65 73 74 5f |tem_coun|t:=dest_|
|00001700| 69 74 65 6d 5f 63 6f 75 | 6e 74 2b 31 3b 0d 09 09 |item_cou|nt+1;...|
|00001710| 09 09 28 2a 77 72 69 74 | 65 6c 6e 28 27 64 65 73 |..(*writ|eln('des|
|00001720| 74 62 79 74 65 3d 27 2c | 64 65 73 74 62 79 74 65 |tbyte=',|destbyte|
|00001730| 29 3b 2a 29 0d 09 09 09 | 09 77 70 74 72 3a 3d 70 |);*)....|.wptr:=p|
|00001740| 6f 69 6e 74 65 72 28 64 | 65 73 74 73 74 72 69 70 |ointer(d|eststrip|
|00001750| 2b 64 65 73 74 62 79 74 | 65 29 3b 0d 09 09 09 09 |+destbyt|e);.....|
|00001760| 62 6c 6f 63 6b 6d 6f 76 | 65 28 6f 75 74 70 74 72 |blockmov|e(outptr|
|00001770| 2c 77 70 74 72 2c 64 65 | 73 74 5f 62 79 74 65 73 |,wptr,de|st_bytes|
|00001780| 5f 70 65 72 5f 69 74 65 | 6d 29 3b 0d 09 09 09 65 |_per_ite|m);....e|
|00001790| 6e 64 3b 0d 09 09 64 65 | 73 74 62 79 74 65 3a 3d |nd;...de|stbyte:=|
|000017a0| 64 65 73 74 62 79 74 65 | 2b 64 65 73 74 5f 62 79 |destbyte|+dest_by|
|000017b0| 74 65 73 5f 70 65 72 5f | 69 74 65 6d 3b 0d 09 20 |tes_per_|item;.. |
|000017c0| 20 65 6e 64 3b 7b 66 6f | 72 7d 0d 09 65 6e 64 7b | end;{fo|r}..end{|
|000017d0| 6d 75 6c 74 69 62 69 74 | 7d 0d 65 6c 73 65 0d 09 |multibit|}.else..|
|000017e0| 62 65 67 69 6e 0d 09 7b | 73 69 6e 67 6c 65 20 62 |begin..{|single b|
|000017f0| 69 74 20 75 6e 70 61 63 | 6b 20 6c 6f 6f 70 7d 0d |it unpac|k loop}.|
|00001800| 09 66 6f 72 20 69 3a 3d | 31 20 74 6f 20 73 6f 75 |.for i:=|1 to sou|
|00001810| 72 63 65 5f 69 74 65 6d | 5f 63 6f 75 6e 74 20 64 |rce_item|_count d|
|00001820| 6f 0d 09 20 20 62 65 67 | 69 6e 0d 09 09 73 74 61 |o.. beg|in...sta|
|00001830| 72 74 62 69 74 3a 3d 28 | 69 2d 31 29 3b 0d 09 09 |rtbit:=(|i-1);...|
|00001840| 69 66 20 62 69 74 74 73 | 74 28 73 6f 75 72 63 65 |if bitts|t(source|
|00001850| 2c 73 74 61 72 74 62 69 | 74 29 20 74 68 65 6e 20 |,startbi|t) then |
|00001860| 77 6f 72 6b 3a 3d 31 20 | 65 6c 73 65 20 77 6f 72 |work:=1 |else wor|
|00001870| 6b 3a 3d 30 3b 0d 09 09 | 77 6f 72 6b 3a 3d 62 73 |k:=0;...|work:=bs|
|00001880| 6c 28 77 6f 72 6b 2c 64 | 65 73 74 5f 6c 6f 77 5f |l(work,d|est_low_|
|00001890| 62 69 74 5f 61 6c 69 67 | 6e 6d 65 6e 74 29 3b 0d |bit_alig|nment);.|
|000018a0| 09 09 7b 74 68 69 73 20 | 69 73 20 61 20 63 6c 6f |..{this |is a clo|
|000018b0| 6e 65 20 6f 66 20 63 6f | 64 65 20 61 62 6f 76 65 |ne of co|de above|
|000018c0| 3a 7d 0d 09 09 69 66 20 | 64 65 73 74 62 79 74 65 |:}...if |destbyte|
|000018d0| 2b 64 65 73 74 5f 62 79 | 74 65 73 5f 70 65 72 5f |+dest_by|tes_per_|
|000018e0| 69 74 65 6d 3c 3d 64 65 | 73 74 5f 6d 61 78 5f 62 |item<=de|st_max_b|
|000018f0| 79 74 65 73 20 74 68 65 | 6e 20 7b 3f 3f 3f 3f 3f |ytes the|n {?????|
|00001900| 3f 7d 0d 09 09 09 62 65 | 67 69 6e 0d 09 09 09 09 |?}....be|gin.....|
|00001910| 64 65 73 74 5f 69 74 65 | 6d 5f 63 6f 75 6e 74 3a |dest_ite|m_count:|
|00001920| 3d 64 65 73 74 5f 69 74 | 65 6d 5f 63 6f 75 6e 74 |=dest_it|em_count|
|00001930| 2b 31 3b 0d 09 09 09 09 | 77 70 74 72 3a 3d 70 6f |+1;.....|wptr:=po|
|00001940| 69 6e 74 65 72 28 64 65 | 73 74 73 74 72 69 70 2b |inter(de|ststrip+|
|00001950| 64 65 73 74 62 79 74 65 | 29 3b 0d 09 09 09 09 62 |destbyte|);.....b|
|00001960| 6c 6f 63 6b 6d 6f 76 65 | 28 6f 75 74 70 74 72 2c |lockmove|(outptr,|
|00001970| 77 70 74 72 2c 64 65 73 | 74 5f 62 79 74 65 73 5f |wptr,des|t_bytes_|
|00001980| 70 65 72 5f 69 74 65 6d | 29 3b 0d 09 09 09 65 6e |per_item|);....en|
|00001990| 64 3b 0d 09 09 64 65 73 | 74 62 79 74 65 3a 3d 64 |d;...des|tbyte:=d|
|000019a0| 65 73 74 62 79 74 65 2b | 64 65 73 74 5f 62 79 74 |estbyte+|dest_byt|
|000019b0| 65 73 5f 70 65 72 5f 69 | 74 65 6d 3b 0d 0d 09 20 |es_per_i|tem;... |
|000019c0| 20 65 6e 64 3b 7b 66 6f | 72 7d 0d 09 65 6e 64 3b | end;{fo|r}..end;|
|000019d0| 7b 73 69 6e 67 6c 65 62 | 69 74 7d 0d 65 6e 64 3b |{singleb|it}.end;|
|000019e0| 7b 70 72 6f 63 20 62 69 | 74 73 74 72 65 61 6d 5f |{proc bi|tstream_|
|000019f0| 75 6e 70 61 63 6b 7d 0d | 0d 70 72 6f 63 65 64 75 |unpack}.|.procedu|
|00001a00| 72 65 20 62 69 74 73 74 | 72 65 61 6d 5f 70 61 63 |re bitst|ream_pac|
|00001a10| 6b 20 28 2a 28 09 73 6f | 75 72 63 65 3a 70 74 72 |k (*(.so|urce:ptr|
|00001a20| 3b 7b 69 6e 70 75 74 20 | 62 79 74 65 73 7d 0d 09 |;{input |bytes}..|
|00001a30| 09 09 09 09 09 09 73 6f | 75 72 63 65 5f 69 74 65 |......so|urce_ite|
|00001a40| 6d 5f 63 6f 75 6e 74 3a | 6c 6f 6e 67 69 6e 74 3b |m_count:|longint;|
|00001a50| 0d 09 09 09 09 09 09 09 | 73 6f 75 72 63 65 5f 62 |........|source_b|
|00001a60| 79 74 65 73 5f 70 65 72 | 5f 69 74 65 6d 3a 69 6e |ytes_per|_item:in|
|00001a70| 74 65 67 65 72 3b 7b 31 | 2c 32 2c 34 7d 0d 09 09 |teger;{1|,2,4}...|
|00001a80| 09 09 09 09 09 73 6f 75 | 72 63 65 5f 6c 6f 77 5f |.....sou|rce_low_|
|00001a90| 62 69 74 5f 61 6c 69 67 | 6e 6d 65 6e 74 3a 69 6e |bit_alig|nment:in|
|00001aa0| 74 65 67 65 72 3b 0d 09 | 09 09 09 09 09 09 64 65 |teger;..|......de|
|00001ab0| 73 74 3a 70 74 72 3b 7b | 6f 75 74 70 75 74 20 62 |st:ptr;{|output b|
|00001ac0| 79 74 65 73 2c 77 6f 72 | 64 73 2c 20 6f 72 20 6c |ytes,wor|ds, or l|
|00001ad0| 6f 6e 67 77 6f 72 64 73 | 7d 0d 09 09 09 09 09 09 |ongwords|}.......|
|00001ae0| 09 64 65 73 74 5f 6d 61 | 78 5f 62 79 74 65 73 3a |.dest_ma|x_bytes:|
|00001af0| 6c 6f 6e 67 69 6e 74 3b | 0d 09 09 09 09 09 09 09 |longint;|........|
|00001b00| 64 65 73 74 5f 62 69 74 | 73 5f 70 65 72 5f 69 74 |dest_bit|s_per_it|
|00001b10| 65 6d 3a 69 6e 74 65 67 | 65 72 3b 7b 32 34 20 6f |em:integ|er;{24 o|
|00001b20| 72 20 6c 65 73 73 7d 0d | 09 09 09 09 09 09 09 76 |r less}.|.......v|
|00001b30| 61 72 20 64 65 73 74 5f | 69 74 65 6d 5f 63 6f 75 |ar dest_|item_cou|
|00001b40| 6e 74 3a 6c 6f 6e 67 69 | 6e 74 29 20 2a 29 3b 0d |nt:longi|nt) *);.|
|00001b50| 7b 71 75 69 63 6b 20 61 | 6e 64 20 64 69 72 74 79 |{quick a|nd dirty|
|00001b60| 20 76 65 72 73 69 6f 6e | 20 62 61 73 65 64 20 6f | version| based o|
|00001b70| 6e 20 74 68 65 20 74 6f | 6f 6c 62 6f 78 20 62 69 |n the to|olbox bi|
|00001b80| 74 20 74 65 73 74 69 6e | 67 20 72 6f 75 74 69 6e |t testin|g routin|
|00001b90| 65 73 7d 0d 6c 61 62 65 | 6c 20 39 39 3b 0d 76 61 |es}.labe|l 99;.va|
|00001ba0| 72 20 69 74 65 6d 3a 6c | 6f 6e 67 69 6e 74 3b 0d |r item:l|ongint;.|
|00001bb0| 20 20 20 20 73 6f 75 72 | 63 65 62 69 74 2c 73 62 | sour|cebit,sb|
|00001bc0| 2c 64 62 3a 6c 6f 6e 67 | 69 6e 74 3b 0d 20 20 20 |,db:long|int;. |
|00001bd0| 20 73 74 61 72 74 6f 66 | 66 73 65 74 2c 65 6e 64 | startof|fset,end|
|00001be0| 6f 66 66 73 65 74 2c 73 | 6f 75 72 63 65 5f 62 69 |offset,s|ource_bi|
|00001bf0| 74 73 5f 70 65 72 5f 75 | 6e 69 74 3a 69 6e 74 65 |ts_per_u|nit:inte|
|00001c00| 67 65 72 3b 0d 09 64 65 | 73 74 62 79 74 65 3a 6c |ger;..de|stbyte:l|
|00001c10| 6f 6e 67 69 6e 74 3b 0d | 09 69 3a 6c 6f 6e 67 69 |ongint;.|.i:longi|
|00001c20| 6e 74 3b 0d 62 65 67 69 | 6e 0d 64 65 73 74 5f 69 |nt;.begi|n.dest_i|
|00001c30| 74 65 6d 5f 63 6f 75 6e | 74 3a 3d 30 3b 0d 7b 63 |tem_coun|t:=0;.{c|
|00001c40| 6f 6d 70 75 74 65 20 6f | 66 66 73 65 74 73 20 77 |ompute o|ffsets w|
|00001c50| 69 74 68 69 6e 20 74 68 | 65 20 73 6f 75 72 63 65 |ithin th|e source|
|00001c60| 20 75 6e 69 74 73 28 62 | 79 74 65 73 2c 77 6f 72 | units(b|ytes,wor|
|00001c70| 64 73 2c 6c 6f 6e 67 77 | 72 64 73 29 0d 66 6f 72 |ds,longw|rds).for|
|00001c80| 20 74 68 65 20 62 6c 6f | 63 6b 20 6f 66 20 62 69 | the blo|ck of bi|
|00001c90| 74 73 20 74 6f 20 62 65 | 20 63 6f 70 69 65 64 7d |ts to be| copied}|
|00001ca0| 0d 0d 20 73 6f 75 72 63 | 65 5f 62 69 74 73 5f 70 |.. sourc|e_bits_p|
|00001cb0| 65 72 5f 75 6e 69 74 3a | 3d 38 2a 73 6f 75 72 63 |er_unit:|=8*sourc|
|00001cc0| 65 5f 62 79 74 65 73 5f | 70 65 72 5f 69 74 65 6d |e_bytes_|per_item|
|00001cd0| 3b 0d 20 65 6e 64 6f 66 | 66 73 65 74 3a 3d 73 6f |;. endof|fset:=so|
|00001ce0| 75 72 63 65 5f 62 69 74 | 73 5f 70 65 72 5f 75 6e |urce_bit|s_per_un|
|00001cf0| 69 74 2d 31 2d 73 6f 75 | 72 63 65 5f 6c 6f 77 5f |it-1-sou|rce_low_|
|00001d00| 62 69 74 5f 61 6c 69 67 | 6e 6d 65 6e 74 3b 0d 20 |bit_alig|nment;. |
|00001d10| 73 74 61 72 74 6f 66 66 | 73 65 74 3a 3d 65 6e 64 |startoff|set:=end|
|00001d20| 6f 66 66 73 65 74 2d 64 | 65 73 74 5f 62 69 74 73 |offset-d|est_bits|
|00001d30| 5f 70 65 72 5f 69 74 65 | 6d 2b 31 3b 0d 20 0d 66 |_per_ite|m+1;. .f|
|00001d40| 6f 72 20 69 3a 3d 31 20 | 74 6f 20 73 6f 75 72 63 |or i:=1 |to sourc|
|00001d50| 65 5f 69 74 65 6d 5f 63 | 6f 75 6e 74 20 64 6f 0d |e_item_c|ount do.|
|00001d60| 20 20 62 65 67 69 6e 0d | 20 20 28 2a 77 72 69 74 | begin.| (*writ|
|00001d70| 65 6c 6e 28 27 69 74 65 | 6d 3d 27 2c 69 29 3b 2a |eln('ite|m=',i);*|
|00001d80| 29 0d 20 20 73 6f 75 72 | 63 65 62 69 74 3a 3d 28 |). sour|cebit:=(|
|00001d90| 69 2d 31 29 2a 73 6f 75 | 72 63 65 5f 62 69 74 73 |i-1)*sou|rce_bits|
|00001da0| 5f 70 65 72 5f 75 6e 69 | 74 3b 0d 20 20 64 62 3a |_per_uni|t;. db:|
|00001db0| 3d 28 69 2d 31 29 2a 64 | 65 73 74 5f 62 69 74 73 |=(i-1)*d|est_bits|
|00001dc0| 5f 70 65 72 5f 69 74 65 | 6d 3b 0d 20 20 66 6f 72 |_per_ite|m;. for|
|00001dd0| 20 73 62 3a 3d 73 6f 75 | 72 63 65 62 69 74 2b 73 | sb:=sou|rcebit+s|
|00001de0| 74 61 72 74 6f 66 66 73 | 65 74 20 74 6f 20 73 6f |tartoffs|et to so|
|00001df0| 75 72 63 65 62 69 74 2b | 65 6e 64 6f 66 66 73 65 |urcebit+|endoffse|
|00001e00| 74 20 64 6f 0d 20 20 20 | 20 20 62 65 67 69 6e 0d |t do. | begin.|
|00001e10| 09 20 64 65 73 74 62 79 | 74 65 3a 3d 42 53 52 28 |. destby|te:=BSR(|
|00001e20| 64 62 2c 33 29 3b 0d 09 | 20 28 2a 77 72 69 74 65 |db,3);..| (*write|
|00001e30| 6c 6e 28 27 73 62 3d 27 | 2c 73 62 29 3b 0d 09 20 |ln('sb='|,sb);.. |
|00001e40| 77 72 69 74 65 6c 6e 28 | 27 64 62 3d 27 2c 64 62 |writeln(|'db=',db|
|00001e50| 29 3b 2a 29 0d 09 20 69 | 66 28 64 62 3c 3d 64 65 |);*).. i|f(db<=de|
|00001e60| 73 74 5f 6d 61 78 5f 62 | 79 74 65 73 29 74 68 65 |st_max_b|ytes)the|
|00001e70| 6e 0d 09 09 62 65 67 69 | 6e 0d 09 09 09 69 66 20 |n...begi|n....if |
|00001e80| 62 69 74 74 73 74 28 73 | 6f 75 72 63 65 2c 73 62 |bittst(s|ource,sb|
|00001e90| 29 20 74 68 65 6e 0d 09 | 09 09 09 62 65 67 69 6e |) then..|...begin|
|00001ea0| 0d 09 09 09 09 09 62 69 | 74 73 65 74 28 64 65 73 |......bi|tset(des|
|00001eb0| 74 2c 64 62 29 3b 0d 09 | 09 09 09 65 6e 64 0d 09 |t,db);..|...end..|
|00001ec0| 09 09 20 65 6c 73 65 0d | 09 09 09 09 62 65 67 69 |.. else.|....begi|
|00001ed0| 6e 0d 09 09 09 09 09 62 | 69 74 63 6c 72 28 64 65 |n......b|itclr(de|
|00001ee0| 73 74 2c 64 62 29 3b 0d | 09 09 09 09 65 6e 64 0d |st,db);.|....end.|
|00001ef0| 09 09 65 6e 64 0d 09 20 | 65 6c 73 65 0d 09 20 20 |..end.. |else.. |
|00001f00| 20 62 65 67 69 6e 0d 09 | 20 20 20 20 67 6f 74 6f | begin..| goto|
|00001f10| 20 39 39 3b 0d 09 20 20 | 20 65 6e 64 3b 0d 09 20 | 99;.. | end;.. |
|00001f20| 64 62 3a 3d 64 62 2b 31 | 3b 0d 09 20 65 6e 64 3b |db:=db+1|;.. end;|
|00001f30| 0d 09 20 64 65 73 74 5f | 69 74 65 6d 5f 63 6f 75 |.. dest_|item_cou|
|00001f40| 6e 74 3a 3d 64 65 73 74 | 5f 69 74 65 6d 5f 63 6f |nt:=dest|_item_co|
|00001f50| 75 6e 74 2b 31 3b 0d 20 | 20 65 6e 64 3b 0d 39 39 |unt+1;. | end;.99|
|00001f60| 3a 7b 62 72 65 61 6b 6f | 75 74 7d 0d 65 6e 64 3b |:{breako|ut}.end;|
|00001f70| 7b 70 72 6f 63 20 62 69 | 74 73 74 72 65 61 6d 5f |{proc bi|tstream_|
|00001f80| 70 61 63 6b 7d 0d 0d 65 | 6e 64 2e 00 00 00 00 00 |pack}..e|nd......|
|00001f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002000| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 32 |.......L|...L...2|
|00002010| 3b 0d 7b 70 61 63 6b 20 | 61 6e 64 20 75 6e 70 61 |;.{pack |and unpa|
|00002020| 63 6b 20 73 74 72 65 61 | 6d 73 20 6f 66 20 62 69 |ck strea|ms of bi|
|00002030| 0d 62 69 74 70 61 63 6b | 75 6e 69 74 2e 70 02 00 |.bitpack|unit.p..|
|00002040| 00 00 54 45 58 54 4d 50 | 53 20 01 00 00 00 00 70 |..TEXTMP|S .....p|
|00002050| 00 00 54 45 58 54 4d 50 | 53 20 01 00 00 00 00 70 |..TEXTMP|S .....p|
|00002060| 00 00 45 65 00 00 00 00 | 00 00 00 00 00 00 00 00 |..Ee....|........|
|00002070| 00 00 a0 0b 5c 9e 00 00 | 1f 0b 00 00 01 7e 70 61 |....\...|.....~pa|
|00002080| 63 6b 28 09 73 6f 75 72 | 63 65 3a 70 74 72 3b 7b |ck(.sour|ce:ptr;{|
|00002090| 69 6e 70 75 74 20 62 79 | 74 65 73 7d 0d 09 09 09 |input by|tes}....|
|000020a0| 09 09 09 09 73 6f 75 72 | 63 65 5f 69 74 65 6d 5f |....sour|ce_item_|
|000020b0| 63 6f 75 6e 74 3a 6c 6f | 6e 67 69 6e 74 3b 0d 09 |count:lo|ngint;..|
|000020c0| 09 09 09 09 09 09 64 65 | 73 74 3a 70 74 72 3b 7b |......de|st:ptr;{|
|000020d0| 6f 75 74 70 75 74 20 62 | 79 74 65 73 2c 77 6f 72 |output b|ytes,wor|
|000020e0| 64 73 2c 20 6f 72 20 6c | 6f 6e 67 77 6f 72 64 73 |ds, or l|ongwords|
|000020f0| 7d 0d 09 09 09 09 09 09 | 09 64 65 73 74 5f 6d 61 |}.......|.dest_ma|
|00002100| 00 00 00 48 00 0a 43 6f | 75 72 69 65 72 00 70 61 |...H..Co|urier.pa|
|00002110| 63 6b 69 6e 74 66 3b 20 | 0d 0d 70 72 6f 63 65 64 |ckintf; |..proced|
|00002120| 75 72 65 20 62 69 00 06 | 00 04 00 46 00 d3 01 70 |ure bi..|...F...p|
|00002130| 02 cd 00 51 00 11 01 7b | 02 0b a0 41 b1 00 00 00 |...Q...{|...A....|
|00002140| 1b a9 00 00 1b a9 00 00 | 00 f5 01 00 00 00 01 00 |........|........|
|00002150| 00 00 01 4c 00 00 00 4c | 00 00 00 32 00 02 2e b0 |...L...L|...2....|
|00002160| 03 ae 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.......2|..MPSR..|
|00002170| 00 0a 03 ed ff ff 00 00 | 00 00 00 03 30 96 00 00 |........|....0...|
+--------+-------------------------+-------------------------+--------+--------+