home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: dither
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| C source text
| default
| |
99%
| file
| C source, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 43 6f 6c 6f 72 20 44 |Subject:| Color D|
|00000010| 69 74 68 65 72 20 28 76 | 65 72 20 31 2e 31 29 0a |ither (v|er 1.1).|
|00000020| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 6d 6f 64 2e |Newsgrou|ps: mod.|
|00000030| 73 6f 75 72 63 65 73 0a | 41 70 70 72 6f 76 65 64 |sources.|Approved|
|00000040| 3a 20 6a 70 6e 40 70 61 | 6e 64 61 2e 55 55 43 50 |: jpn@pa|nda.UUCP|
|00000050| 0a 0a 4d 6f 64 2e 73 6f | 75 72 63 65 73 3a 20 20 |..Mod.so|urces: |
|00000060| 56 6f 6c 75 6d 65 20 35 | 2c 20 49 73 73 75 65 20 |Volume 5|, Issue |
|00000070| 33 0a 53 75 62 6d 69 74 | 74 65 64 20 62 79 3a 20 |3.Submit|ted by: |
|00000080| 74 61 6c 63 6f 74 74 21 | 73 65 69 73 6d 6f 21 73 |talcott!|seismo!s|
|00000090| 33 73 75 6e 21 73 64 63 | 73 76 61 78 21 68 75 74 |3sun!sdc|svax!hut|
|000000a0| 63 68 20 28 4a 69 6d 20 | 48 75 74 63 68 69 73 6f |ch (Jim |Hutchiso|
|000000b0| 6e 29 0a 0a 0a 54 68 69 | 73 20 77 6f 72 6b 73 20 |n)...Thi|s works |
|000000c0| 77 65 6c 6c 20 6f 6e 20 | 61 20 73 75 6e 2c 20 69 |well on |a sun, i|
|000000d0| 74 20 63 6f 6e 76 65 72 | 74 73 20 32 34 62 69 74 |t conver|ts 24bit|
|000000e0| 20 69 6d 61 67 65 73 20 | 73 74 6f 72 65 64 20 69 | images |stored i|
|000000f0| 6e 0a 33 20 66 69 6c 65 | 73 20 69 6e 74 6f 20 61 |n.3 file|s into a|
|00000100| 20 73 63 72 65 65 6e 20 | 69 6d 61 67 65 2e 0a 0a | screen |image...|
|00000110| 54 68 65 20 75 73 61 67 | 65 20 69 73 3a 20 64 69 |The usag|e is: di|
|00000120| 73 70 6c 61 79 20 66 69 | 6c 65 6e 61 6d 65 20 5b |splay fi|lename [|
|00000130| 77 69 64 65 20 5b 68 69 | 67 68 5d 5d 0a 0a 22 66 |wide [hi|gh]].."f|
|00000140| 69 6c 65 6e 61 6d 65 22 | 20 69 73 20 61 73 73 75 |ilename"| is assu|
|00000150| 6d 65 64 20 74 6f 20 62 | 65 20 61 20 6e 61 6d 65 |med to b|e a name|
|00000160| 20 66 6f 72 20 33 20 66 | 69 6c 65 73 20 66 69 6c | for 3 f|iles fil|
|00000170| 65 6e 61 6d 65 7b 52 2c | 47 2c 42 7d 20 54 68 65 |ename{R,|G,B} The|
|00000180| 0a 64 65 66 61 75 6c 74 | 20 77 69 64 74 68 20 69 |.default| width i|
|00000190| 73 20 73 65 74 20 74 6f | 20 35 31 32 2e 20 20 54 |s set to| 512. T|
|000001a0| 68 65 20 70 61 74 68 20 | 68 61 73 20 61 20 6d 61 |he path |has a ma|
|000001b0| 78 69 6d 75 6d 20 6c 65 | 6e 67 74 68 28 31 30 32 |ximum le|ngth(102|
|000001c0| 34 0a 63 75 72 72 65 6e | 74 6c 79 29 2e 20 20 48 |4.curren|tly). H|
|000001d0| 65 69 67 68 74 20 64 65 | 66 61 75 6c 74 73 20 74 |eight de|faults t|
|000001e0| 6f 20 77 69 64 74 68 20 | 75 6e 6c 65 73 73 20 73 |o width |unless s|
|000001f0| 70 65 63 69 66 69 65 64 | 2e 20 20 54 68 65 20 70 |pecified|. The p|
|00000200| 72 6f 67 72 61 6d 0a 63 | 61 6e 20 62 65 20 63 6f |rogram.c|an be co|
|00000210| 6e 66 69 67 75 72 65 64 | 20 66 6f 72 20 76 61 72 |nfigured| for var|
|00000220| 69 6f 75 73 20 63 6f 6c | 6f 72 20 6c 69 6d 69 74 |ious col|or limit|
|00000230| 61 74 69 6f 6e 73 20 28 | 61 6e 64 20 68 61 73 20 |ations (|and has |
|00000240| 62 65 65 6e 20 74 65 73 | 74 65 64 20 61 74 0a 31 |been tes|ted at.1|
|00000250| 2f 31 2f 31 2c 20 32 2f | 32 2f 31 2c 20 61 6e 64 |/1/1, 2/|2/1, and|
|00000260| 20 33 2f 33 2f 32 20 62 | 69 74 73 20 6f 66 20 52 | 3/3/2 b|its of R|
|00000270| 47 42 29 20 74 68 69 73 | 20 66 69 74 73 20 69 6e |GB) this| fits in|
|00000280| 20 77 69 74 68 20 73 6f | 6d 65 20 72 67 62 0a 70 | with so|me rgb.p|
|00000290| 72 69 6e 74 65 72 73 2c | 20 74 68 65 20 41 6d 69 |rinters,| the Ami|
|000002a0| 67 61 2c 20 61 6e 64 20 | 74 68 65 20 53 75 6e 20 |ga, and |the Sun |
|000002b0| 63 6f 6c 6f 72 20 66 72 | 61 6d 65 20 62 75 66 66 |color fr|ame buff|
|000002c0| 65 72 20 72 65 73 70 65 | 63 74 69 76 65 6c 79 2e |er respe|ctively.|
|000002d0| 0a 0a 54 68 69 73 20 63 | 6f 64 65 20 77 61 73 20 |..This c|ode was |
|000002e0| 70 6f 73 74 65 64 20 74 | 6f 20 6e 65 74 2e 73 6f |posted t|o net.so|
|000002f0| 75 72 63 65 73 20 61 20 | 66 65 77 20 77 65 65 6b |urces a |few week|
|00000300| 73 20 61 67 6f 2c 20 62 | 75 74 20 68 61 73 20 69 |s ago, b|ut has i|
|00000310| 6d 70 72 6f 76 65 64 0a | 69 6e 20 75 73 61 62 69 |mproved.|in usabi|
|00000320| 6c 69 74 79 20 61 6e 64 | 20 72 65 61 64 61 62 69 |lity and| readabi|
|00000330| 6c 69 74 79 20 73 69 6e | 63 65 20 74 68 65 6e 20 |lity sin|ce then |
|00000340| 28 6e 6f 74 20 74 6f 20 | 6d 65 6e 74 69 6f 6e 20 |(not to |mention |
|00000350| 73 70 65 65 64 20 61 6e | 64 0a 63 6f 6e 66 69 67 |speed an|d.config|
|00000360| 75 72 61 62 69 6c 69 74 | 79 29 2e 0a 0a 09 09 4a |urabilit|y).....J|
|00000370| 69 6d 20 48 75 74 63 68 | 69 73 6f 6e 09 68 75 74 |im Hutch|ison.hut|
|00000380| 63 68 40 73 64 63 73 76 | 61 78 2e 55 55 43 50 0a |ch@sdcsv|ax.UUCP.|
|00000390| 0a 23 21 20 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |.#! /bin|/sh.# Th|
|000003a0| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|000003b0| 63 68 69 76 65 2c 20 6d | 65 61 6e 69 6e 67 3a 0a |chive, m|eaning:.|
|000003c0| 23 20 31 2e 20 52 65 6d | 6f 76 65 20 65 76 65 72 |# 1. Rem|ove ever|
|000003d0| 79 74 68 69 6e 67 20 61 | 62 6f 76 65 20 74 68 65 |ything a|bove the|
|000003e0| 20 23 21 20 2f 62 69 6e | 2f 73 68 20 6c 69 6e 65 | #! /bin|/sh line|
|000003f0| 2e 0a 23 20 32 2e 20 53 | 61 76 65 20 74 68 65 20 |..# 2. S|ave the |
|00000400| 72 65 73 75 6c 74 69 6e | 67 20 74 65 78 74 20 69 |resultin|g text i|
|00000410| 6e 20 61 20 66 69 6c 65 | 2e 0a 23 20 33 2e 20 45 |n a file|..# 3. E|
|00000420| 78 65 63 75 74 65 20 74 | 68 65 20 66 69 6c 65 20 |xecute t|he file |
|00000430| 77 69 74 68 20 2f 62 69 | 6e 2f 73 68 20 28 6e 6f |with /bi|n/sh (no|
|00000440| 74 20 63 73 68 29 20 74 | 6f 20 63 72 65 61 74 65 |t csh) t|o create|
|00000450| 3a 0a 23 09 74 63 64 2e | 63 0a 23 20 54 68 69 73 |:.#.tcd.|c.# This|
|00000460| 20 61 72 63 68 69 76 65 | 20 63 72 65 61 74 65 64 | archive| created|
|00000470| 3a 20 54 75 65 20 4d 61 | 79 20 31 33 20 30 33 3a |: Tue Ma|y 13 03:|
|00000480| 33 36 3a 33 33 20 31 39 | 38 36 0a 65 78 70 6f 72 |36:33 19|86.expor|
|00000490| 74 20 50 41 54 48 3b 20 | 50 41 54 48 3d 2f 62 69 |t PATH; |PATH=/bi|
|000004a0| 6e 3a 2f 75 73 72 2f 62 | 69 6e 3a 24 50 41 54 48 |n:/usr/b|in:$PATH|
|000004b0| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 74 63 64 |.if test| -f 'tcd|
|000004c0| 2e 63 27 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |.c'.then|..echo s|
|000004d0| 68 61 72 3a 20 22 77 69 | 6c 6c 20 6e 6f 74 20 6f |har: "wi|ll not o|
|000004e0| 76 65 72 2d 77 72 69 74 | 65 20 65 78 69 73 74 69 |ver-writ|e existi|
|000004f0| 6e 67 20 66 69 6c 65 20 | 27 74 63 64 2e 63 27 22 |ng file |'tcd.c'"|
|00000500| 0a 65 6c 73 65 0a 63 61 | 74 20 3c 3c 20 5c 53 48 |.else.ca|t << \SH|
|00000510| 41 52 5f 45 4f 46 20 3e | 20 27 74 63 64 2e 63 27 |AR_EOF >| 'tcd.c'|
|00000520| 0a 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 64 69 6f |.#includ|e <stdio|
|00000530| 2e 68 3e 0a 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |.h>.#inc|lude <sy|
|00000540| 73 2f 66 69 6c 65 2e 68 | 3e 0a 23 69 6e 63 6c 75 |s/file.h|>.#inclu|
|00000550| 64 65 20 3c 70 69 78 72 | 65 63 74 2f 70 69 78 72 |de <pixr|ect/pixr|
|00000560| 65 63 74 5f 68 73 2e 68 | 3e 0a 0a 2f 2a 0a 20 2a |ect_hs.h|>../*. *|
|00000570| 09 44 69 74 68 65 72 21 | 20 20 43 6f 6c 6f 72 20 |.Dither!| Color |
|00000580| 64 69 74 68 65 72 20 61 | 20 55 2e 53 2e 43 2e 20 |dither a| U.S.C. |
|00000590| 74 61 70 65 20 69 6d 61 | 67 65 2e 0a 20 2a 0a 20 |tape ima|ge.. *. |
|000005a0| 2a 09 4f 72 69 67 69 6e | 61 6c 20 54 61 70 65 20 |*.Origin|al Tape |
|000005b0| 63 6f 64 65 20 62 79 20 | 42 72 69 61 6e 20 4b 61 |code by |Brian Ka|
|000005c0| 6e 74 6f 72 2e 0a 20 2a | 0a 20 2a 09 54 68 65 20 |ntor.. *|. *.The |
|000005d0| 64 69 74 68 65 72 69 6e | 67 20 69 73 20 74 68 65 |ditherin|g is the|
|000005e0| 20 70 72 6f 64 75 63 74 | 20 6f 66 20 6d 61 64 6e | product| of madn|
|000005f0| 65 73 73 20 61 6e 64 20 | 65 78 74 72 61 70 6f 6c |ess and |extrapol|
|00000600| 61 74 69 6f 6e 0a 20 2a | 09 66 72 6f 6d 20 74 68 |ation. *|.from th|
|00000610| 65 20 63 6f 6e 63 65 70 | 74 73 20 65 6d 70 6c 6f |e concep|ts emplo|
|00000620| 79 65 64 20 66 6f 72 20 | 62 6c 61 63 6b 20 61 6e |yed for |black an|
|00000630| 64 20 77 68 69 74 65 20 | 64 69 74 68 65 72 73 2c |d white |dithers,|
|00000640| 0a 20 2a 09 4a 69 6d 20 | 48 75 74 63 68 69 73 6f |. *.Jim |Hutchiso|
|00000650| 6e 2e 20 50 72 65 73 75 | 6d 65 73 20 38 62 69 74 |n. Presu|mes 8bit|
|00000660| 20 62 79 74 65 73 2e 0a | 20 2a 2f 0a 0a 23 64 65 | bytes..| */..#de|
|00000670| 66 69 6e 65 20 4c 41 52 | 47 45 53 54 09 09 28 30 |fine LAR|GEST..(0|
|00000680| 78 66 66 29 09 09 09 2f | 2a 20 38 20 62 69 74 73 |xff).../|* 8 bits|
|00000690| 20 70 65 72 20 63 6f 6c | 6f 72 20 2a 2f 0a 23 64 | per col|or */.#d|
|000006a0| 65 66 69 6e 65 20 55 4e | 55 53 45 44 5f 42 49 54 |efine UN|USED_BIT|
|000006b0| 53 09 30 09 09 09 2f 2a | 20 75 6e 75 73 65 64 20 |S.0.../*| unused |
|000006c0| 62 69 74 73 20 20 20 20 | 20 20 2a 2f 0a 0a 23 64 |bits | */..#d|
|000006d0| 65 66 69 6e 65 20 52 5f | 42 49 54 53 09 09 33 09 |efine R_|BITS..3.|
|000006e0| 09 09 2f 2a 20 42 69 74 | 73 20 6f 66 20 72 65 64 |../* Bit|s of red|
|000006f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00000700| 2f 0a 23 64 65 66 69 6e | 65 20 52 5f 45 52 52 09 |/.#defin|e R_ERR.|
|00000710| 09 28 38 20 2d 20 52 5f | 42 49 54 53 29 09 09 2f |.(8 - R_|BITS)../|
|00000720| 2a 20 42 69 74 73 20 6f | 66 20 65 72 72 6f 72 2c |* Bits o|f error,|
|00000730| 20 66 72 6f 6d 20 74 72 | 75 65 20 20 2a 2f 0a 23 | from tr|ue */.#|
|00000740| 64 65 66 69 6e 65 20 52 | 5f 53 48 49 46 54 09 09 |define R|_SHIFT..|
|00000750| 28 38 20 2d 20 52 5f 42 | 49 54 53 29 09 09 2f 2a |(8 - R_B|ITS)../*|
|00000760| 20 73 68 69 66 74 20 74 | 6f 20 67 65 74 20 75 73 | shift t|o get us|
|00000770| 65 66 75 6c 6c 20 62 69 | 74 73 20 2a 2f 0a 23 64 |efull bi|ts */.#d|
|00000780| 65 66 69 6e 65 20 52 5f | 4d 41 53 4b 09 09 28 4c |efine R_|MASK..(L|
|00000790| 41 52 47 45 53 54 20 3e | 3e 20 52 5f 42 49 54 53 |ARGEST >|> R_BITS|
|000007a0| 29 09 2f 2a 20 6d 61 73 | 6b 65 64 20 6f 66 66 20 |)./* mas|ked off |
|000007b0| 62 69 74 73 20 20 20 20 | 20 20 20 20 20 20 20 2a |bits | *|
|000007c0| 2f 0a 23 64 65 66 69 6e | 65 20 52 5f 4e 45 58 54 |/.#defin|e R_NEXT|
|000007d0| 09 09 28 52 5f 4d 41 53 | 4b 20 2d 20 31 29 09 09 |..(R_MAS|K - 1)..|
|000007e0| 2f 2a 20 62 61 73 65 5f | 63 6f 6c 6f 72 20 2b 20 |/* base_|color + |
|000007f0| 6e 65 78 74 20 3d 20 6c | 65 66 74 20 20 2a 2f 0a |next = l|eft */.|
|00000800| 23 64 65 66 69 6e 65 20 | 52 5f 54 4f 50 09 09 28 |#define |R_TOP..(|
|00000810| 4c 41 52 47 45 53 54 20 | 26 20 7e 52 5f 4d 41 53 |LARGEST |& ~R_MAS|
|00000820| 4b 29 09 2f 2a 20 6d 61 | 78 69 6d 61 6c 20 76 61 |K)./* ma|ximal va|
|00000830| 6c 75 65 2c 20 72 65 64 | 20 20 20 20 20 20 20 20 |lue, red| |
|00000840| 2a 2f 0a 23 64 65 66 69 | 6e 65 20 52 5f 4e 56 41 |*/.#defi|ne R_NVA|
|00000850| 4c 09 09 28 4c 41 52 47 | 45 53 54 20 3e 3e 20 52 |L..(LARG|EST >> R|
|00000860| 5f 53 48 49 46 54 29 09 | 2f 2a 20 73 68 61 64 65 |_SHIFT).|/* shade|
|00000870| 73 20 6f 66 20 72 65 64 | 20 2b 20 62 6c 61 63 6b |s of red| + black|
|00000880| 20 20 20 20 20 2a 2f 0a | 23 64 65 66 69 6e 65 20 | */.|#define |
|00000890| 52 5f 4d 41 50 09 09 30 | 78 30 37 09 09 09 2f 2a |R_MAP..0|x07.../*|
|000008a0| 20 6d 61 73 6b 20 74 6f | 20 67 65 74 20 63 6f 6c | mask to| get col|
|000008b0| 6f 72 20 74 61 62 6c 65 | 20 20 20 2a 2f 0a 0a 23 |or table| */..#|
|000008c0| 64 65 66 69 6e 65 20 47 | 5f 42 49 54 53 09 09 33 |define G|_BITS..3|
|000008d0| 09 09 09 2f 2a 20 42 69 | 74 73 20 6f 66 20 67 72 |.../* Bi|ts of gr|
|000008e0| 65 65 6e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |een | |
|000008f0| 2a 2f 0a 23 64 65 66 69 | 6e 65 20 47 5f 45 52 52 |*/.#defi|ne G_ERR|
|00000900| 09 09 28 38 20 2d 20 47 | 5f 42 49 54 53 29 09 09 |..(8 - G|_BITS)..|
|00000910| 2f 2a 20 42 69 74 73 20 | 6f 66 20 65 72 72 6f 72 |/* Bits |of error|
|00000920| 2c 20 66 72 6f 6d 20 74 | 72 75 65 20 20 2a 2f 0a |, from t|rue */.|
|00000930| 23 64 65 66 69 6e 65 20 | 47 5f 53 48 49 46 54 09 |#define |G_SHIFT.|
|00000940| 09 28 38 20 2d 20 47 5f | 42 49 54 53 29 09 09 2f |.(8 - G_|BITS)../|
|00000950| 2a 20 73 68 69 66 74 20 | 74 6f 20 67 65 74 20 75 |* shift |to get u|
|00000960| 73 65 66 75 6c 6c 20 62 | 69 74 73 20 2a 2f 0a 23 |sefull b|its */.#|
|00000970| 64 65 66 69 6e 65 20 47 | 5f 4d 41 53 4b 09 09 28 |define G|_MASK..(|
|00000980| 4c 41 52 47 45 53 54 20 | 3e 3e 20 47 5f 42 49 54 |LARGEST |>> G_BIT|
|00000990| 53 29 09 2f 2a 20 6d 61 | 73 6b 65 64 20 6f 66 66 |S)./* ma|sked off|
|000009a0| 20 62 69 74 73 20 20 20 | 20 20 20 20 20 20 20 20 | bits | |
|000009b0| 2a 2f 0a 23 64 65 66 69 | 6e 65 20 47 5f 4e 45 58 |*/.#defi|ne G_NEX|
|000009c0| 54 09 09 28 47 5f 4d 41 | 53 4b 20 2d 20 31 29 09 |T..(G_MA|SK - 1).|
|000009d0| 09 2f 2a 20 62 61 73 65 | 5f 63 6f 6c 6f 72 20 2b |./* base|_color +|
|000009e0| 20 6e 65 78 74 20 3d 20 | 6c 65 66 74 20 20 2a 2f | next = |left */|
|000009f0| 0a 23 64 65 66 69 6e 65 | 20 47 5f 54 4f 50 09 09 |.#define| G_TOP..|
|00000a00| 28 4c 41 52 47 45 53 54 | 20 26 20 7e 47 5f 4d 41 |(LARGEST| & ~G_MA|
|00000a10| 53 4b 29 09 2f 2a 20 6d | 61 78 69 6d 61 6c 20 76 |SK)./* m|aximal v|
|00000a20| 61 6c 75 65 2c 20 67 72 | 65 65 6e 20 20 20 20 20 |alue, gr|een |
|00000a30| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 47 5f 4e 56 | */.#def|ine G_NV|
|00000a40| 41 4c 09 09 28 4c 41 52 | 47 45 53 54 20 3e 3e 20 |AL..(LAR|GEST >> |
|00000a50| 47 5f 53 48 49 46 54 29 | 09 2f 2a 20 73 68 61 64 |G_SHIFT)|./* shad|
|00000a60| 65 73 20 6f 66 20 67 72 | 65 65 6e 20 2b 20 62 6c |es of gr|een + bl|
|00000a70| 61 63 6b 20 20 20 2a 2f | 0a 23 64 65 66 69 6e 65 |ack */|.#define|
|00000a80| 20 47 5f 4d 41 50 09 09 | 28 30 78 30 37 20 3c 3c | G_MAP..|(0x07 <<|
|00000a90| 20 33 29 09 09 2f 2a 20 | 6d 61 73 6b 20 74 6f 20 | 3)../* |mask to |
|00000aa0| 67 65 74 20 63 6f 6c 6f | 72 20 74 61 62 6c 65 20 |get colo|r table |
|00000ab0| 20 20 2a 2f 0a 0a 23 64 | 65 66 69 6e 65 20 42 5f | */..#d|efine B_|
|00000ac0| 42 49 54 53 09 09 32 09 | 09 09 2f 2a 20 42 69 74 |BITS..2.|../* Bit|
|00000ad0| 73 20 6f 66 20 62 6c 75 | 65 20 20 20 20 20 20 20 |s of blu|e |
|00000ae0| 20 20 20 20 20 20 20 2a | 2f 0a 23 64 65 66 69 6e | *|/.#defin|
|00000af0| 65 20 42 5f 45 52 52 09 | 09 28 38 20 2d 20 42 5f |e B_ERR.|.(8 - B_|
|00000b00| 42 49 54 53 29 09 09 2f | 2a 20 42 69 74 73 20 6f |BITS)../|* Bits o|
|00000b10| 66 20 65 72 72 6f 72 2c | 20 66 72 6f 6d 20 74 72 |f error,| from tr|
|00000b20| 75 65 20 20 2a 2f 0a 23 | 64 65 66 69 6e 65 20 42 |ue */.#|define B|
|00000b30| 5f 53 48 49 46 54 09 09 | 28 38 20 2d 20 42 5f 42 |_SHIFT..|(8 - B_B|
|00000b40| 49 54 53 29 09 09 2f 2a | 20 73 68 69 66 74 20 74 |ITS)../*| shift t|
|00000b50| 6f 20 67 65 74 20 75 73 | 65 66 75 6c 6c 20 62 69 |o get us|efull bi|
|00000b60| 74 73 20 2a 2f 0a 23 64 | 65 66 69 6e 65 20 42 5f |ts */.#d|efine B_|
|00000b70| 4d 41 53 4b 09 09 28 4c | 41 52 47 45 53 54 20 3e |MASK..(L|ARGEST >|
|00000b80| 3e 20 42 5f 42 49 54 53 | 29 09 2f 2a 20 6d 61 73 |> B_BITS|)./* mas|
|00000b90| 6b 65 64 20 6f 66 66 20 | 62 69 74 73 20 20 20 20 |ked off |bits |
|00000ba0| 20 20 20 20 20 20 20 2a | 2f 0a 23 64 65 66 69 6e | *|/.#defin|
|00000bb0| 65 20 42 5f 4e 45 58 54 | 09 09 28 42 5f 4d 41 53 |e B_NEXT|..(B_MAS|
|00000bc0| 4b 20 2d 20 31 29 09 09 | 2f 2a 20 62 61 73 65 5f |K - 1)..|/* base_|
|00000bd0| 63 6f 6c 6f 72 20 2b 20 | 6e 65 78 74 20 3d 20 6c |color + |next = l|
|00000be0| 65 66 74 20 20 2a 2f 0a | 23 64 65 66 69 6e 65 20 |eft */.|#define |
|00000bf0| 42 5f 54 4f 50 09 09 28 | 4c 41 52 47 45 53 54 20 |B_TOP..(|LARGEST |
|00000c00| 26 20 7e 42 5f 4d 41 53 | 4b 29 09 2f 2a 20 6d 61 |& ~B_MAS|K)./* ma|
|00000c10| 78 69 6d 61 6c 20 76 61 | 6c 75 65 2c 20 62 6c 75 |ximal va|lue, blu|
|00000c20| 65 20 20 20 20 20 20 20 | 2a 2f 0a 23 64 65 66 69 |e |*/.#defi|
|00000c30| 6e 65 20 42 5f 4e 56 41 | 4c 09 09 28 4c 41 52 47 |ne B_NVA|L..(LARG|
|00000c40| 45 53 54 20 3e 3e 20 42 | 5f 53 48 49 46 54 29 09 |EST >> B|_SHIFT).|
|00000c50| 2f 2a 20 73 68 61 64 65 | 73 20 6f 66 20 62 6c 75 |/* shade|s of blu|
|00000c60| 65 20 2b 20 62 6c 61 63 | 6b 20 20 20 20 2a 2f 0a |e + blac|k */.|
|00000c70| 23 64 65 66 69 6e 65 20 | 42 5f 4d 41 50 09 09 28 |#define |B_MAP..(|
|00000c80| 30 78 30 33 20 3c 3c 20 | 36 29 09 09 2f 2a 20 6d |0x03 << |6)../* m|
|00000c90| 61 73 6b 20 74 6f 20 67 | 65 74 20 63 6f 6c 6f 72 |ask to g|et color|
|00000ca0| 20 74 61 62 6c 65 20 20 | 20 2a 2f 0a 0a 2f 2a 0a | table | */../*.|
|00000cb0| 20 2a 09 32 28 34 28 38 | 29 29 20 62 79 20 32 28 | *.2(4(8|)) by 2(|
|00000cc0| 34 28 38 29 29 20 6f 72 | 64 65 72 65 64 20 64 69 |4(8)) or|dered di|
|00000cd0| 74 68 65 72 2c 20 69 74 | 20 61 6c 6c 20 68 69 6e |ther, it| all hin|
|00000ce0| 67 65 73 20 6f 6e 20 74 | 68 69 73 20 64 69 74 68 |ges on t|his dith|
|00000cf0| 65 72 2c 0a 20 2a 09 61 | 6e 64 20 74 68 65 20 63 |er,. *.a|nd the c|
|00000d00| 6f 6c 6f 72 2d 74 61 62 | 6c 65 2e 20 20 4e 6f 74 |olor-tab|le. Not|
|00000d10| 65 20 74 68 61 74 20 64 | 69 74 68 65 72 73 20 6c |e that d|ithers l|
|00000d20| 61 72 67 65 72 20 74 68 | 61 6e 20 34 78 34 0a 20 |arger th|an 4x4. |
|00000d30| 2a 09 72 65 71 75 69 72 | 65 20 63 68 61 6e 67 65 |*.requir|e change|
|00000d40| 73 20 69 6e 20 6c 6f 77 | 65 72 20 63 6f 64 65 2e |s in low|er code.|
|00000d50| 0a 20 2a 2f 0a 0a 23 69 | 66 64 65 66 09 4c 41 52 |. */..#i|fdef.LAR|
|00000d60| 47 45 5f 44 49 54 48 45 | 52 0a 0a 23 64 65 66 69 |GE_DITHE|R..#defi|
|00000d70| 6e 65 20 44 53 49 5a 45 | 09 09 34 09 2f 2a 20 6d |ne DSIZE|..4./* m|
|00000d80| 75 73 74 20 62 65 20 61 | 20 70 6f 77 65 72 20 6f |ust be a| power o|
|00000d90| 66 20 32 20 2a 2f 0a 23 | 64 65 66 69 6e 65 20 44 |f 2 */.#|define D|
|00000da0| 49 54 48 5f 4c 4f 47 09 | 34 09 2f 2a 20 6c 6f 67 |ITH_LOG.|4./* log|
|00000db0| 5b 32 5d 28 44 53 49 5a | 45 2a 44 53 49 5a 45 29 |[2](DSIZ|E*DSIZE)|
|00000dc0| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 44 4d 41 53 | */.#def|ine DMAS|
|00000dd0| 4b 09 09 44 53 49 5a 45 | 2d 31 09 2f 2a 20 44 69 |K..DSIZE|-1./* Di|
|00000de0| 74 68 65 72 20 6d 61 73 | 6b 20 74 6f 20 67 65 74 |ther mas|k to get|
|00000df0| 20 70 6f 73 69 74 69 6f | 6e 20 69 6e 20 64 69 74 | positio|n in dit|
|00000e00| 68 65 72 20 2a 2f 0a 0a | 73 68 6f 72 74 20 64 69 |her */..|short di|
|00000e10| 74 68 65 72 5b 44 53 49 | 5a 45 5d 5b 44 53 49 5a |ther[DSI|ZE][DSIZ|
|00000e20| 45 5d 20 3d 20 7b 0a 09 | 30 2c 09 38 2c 09 33 2c |E] = {..|0,.8,.3,|
|00000e30| 09 31 31 2c 0a 09 31 32 | 2c 09 34 2c 09 31 35 2c |.11,..12|,.4,.15,|
|00000e40| 09 37 2c 0a 09 32 2c 09 | 31 30 2c 09 31 2c 09 39 |.7,..2,.|10,.1,.9|
|00000e50| 2c 0a 09 31 34 2c 09 36 | 2c 09 31 33 2c 09 35 0a |,..14,.6|,.13,.5.|
|00000e60| 7d 3b 0a 0a 23 65 6c 73 | 65 09 2f 2a 20 4c 41 52 |};..#els|e./* LAR|
|00000e70| 47 45 5f 44 49 54 48 45 | 52 20 2a 2f 0a 0a 23 64 |GE_DITHE|R */..#d|
|00000e80| 65 66 69 6e 65 20 44 53 | 49 5a 45 09 09 32 09 2f |efine DS|IZE..2./|
|00000e90| 2a 20 6d 75 73 74 20 62 | 65 20 61 20 70 6f 77 65 |* must b|e a powe|
|00000ea0| 72 20 6f 66 20 32 20 2a | 2f 0a 23 64 65 66 69 6e |r of 2 *|/.#defin|
|00000eb0| 65 20 44 49 54 48 5f 4c | 4f 47 09 32 09 2f 2a 20 |e DITH_L|OG.2./* |
|00000ec0| 6c 6f 67 5b 32 5d 28 44 | 53 49 5a 45 2a 44 53 49 |log[2](D|SIZE*DSI|
|00000ed0| 5a 45 29 20 2a 2f 0a 23 | 64 65 66 69 6e 65 20 44 |ZE) */.#|define D|
|00000ee0| 4d 41 53 4b 09 09 44 53 | 49 5a 45 2d 31 09 2f 2a |MASK..DS|IZE-1./*|
|00000ef0| 20 44 69 74 68 65 72 20 | 6d 61 73 6b 20 74 6f 20 | Dither |mask to |
|00000f00| 67 65 74 20 70 6f 73 69 | 74 69 6f 6e 20 69 6e 20 |get posi|tion in |
|00000f10| 64 69 74 68 65 72 20 2a | 2f 0a 0a 73 68 6f 72 74 |dither *|/..short|
|00000f20| 20 64 69 74 68 65 72 5b | 44 53 49 5a 45 5d 5b 44 | dither[|DSIZE][D|
|00000f30| 53 49 5a 45 5d 20 3d 20 | 7b 0a 20 20 20 20 30 2c |SIZE] = |{. 0,|
|00000f40| 09 33 2c 0a 20 20 20 20 | 32 2c 20 20 31 0a 7d 3b |.3,. |2, 1.};|
|00000f50| 0a 0a 23 65 6e 64 69 66 | 09 2f 2a 20 4c 41 52 47 |..#endif|./* LARG|
|00000f60| 45 5f 44 49 54 48 45 52 | 20 2a 2f 0a 0a 2f 2a 20 |E_DITHER| */../* |
|00000f70| 48 75 67 65 20 64 69 74 | 68 65 72 20 74 6f 20 75 |Huge dit|her to u|
|00000f80| 73 65 20 77 69 74 68 20 | 74 68 65 20 32 20 62 69 |se with |the 2 bi|
|00000f90| 74 20 63 6f 6c 6f 72 2c | 20 62 6c 75 65 0a 2a 2f |t color,| blue.*/|
|00000fa0| 0a 23 69 66 64 65 66 09 | 42 4c 55 45 5f 44 49 54 |.#ifdef.|BLUE_DIT|
|00000fb0| 48 45 52 0a 0a 23 64 65 | 66 69 6e 65 20 42 44 53 |HER..#de|fine BDS|
|00000fc0| 49 5a 45 09 09 38 09 2f | 2a 20 6d 75 73 74 20 62 |IZE..8./|* must b|
|00000fd0| 65 20 61 20 70 6f 77 65 | 72 20 6f 66 20 32 20 2a |e a powe|r of 2 *|
|00000fe0| 2f 0a 23 64 65 66 69 6e | 65 20 42 44 49 54 48 5f |/.#defin|e BDITH_|
|00000ff0| 4c 4f 47 09 36 09 2f 2a | 20 6c 6f 67 5b 32 5d 28 |LOG.6./*| log[2](|
|00001000| 42 44 53 49 5a 45 2a 42 | 44 53 49 5a 45 29 20 2a |BDSIZE*B|DSIZE) *|
|00001010| 2f 0a 23 64 65 66 69 6e | 65 20 42 44 4d 41 53 4b |/.#defin|e BDMASK|
|00001020| 09 09 42 44 53 49 5a 45 | 2d 31 2f 2a 20 44 69 74 |..BDSIZE|-1/* Dit|
|00001030| 68 65 72 20 6d 61 73 6b | 20 74 6f 20 67 65 74 20 |her mask| to get |
|00001040| 70 6f 73 69 74 69 6f 6e | 20 69 6e 20 64 69 74 68 |position| in dith|
|00001050| 65 72 20 2a 2f 0a 0a 73 | 68 6f 72 74 20 62 64 69 |er */..s|hort bdi|
|00001060| 74 68 65 72 5b 42 44 53 | 49 5a 45 5d 5b 42 44 53 |ther[BDS|IZE][BDS|
|00001070| 49 5a 45 5d 20 3d 20 7b | 0a 09 30 2c 09 33 32 2c |IZE] = {|..0,.32,|
|00001080| 09 31 32 2c 09 34 34 2c | 09 33 2c 09 33 35 2c 09 |.12,.44,|.3,.35,.|
|00001090| 31 35 2c 09 34 37 2c 0a | 09 34 38 2c 09 31 36 2c |15,.47,.|.48,.16,|
|000010a0| 09 36 30 2c 09 32 38 2c | 09 35 31 2c 09 31 39 2c |.60,.28,|.51,.19,|
|000010b0| 09 36 33 2c 09 33 31 2c | 0a 09 38 2c 09 34 30 2c |.63,.31,|..8,.40,|
|000010c0| 09 34 2c 09 33 36 2c 09 | 31 31 2c 09 34 33 2c 09 |.4,.36,.|11,.43,.|
|000010d0| 37 2c 09 33 39 2c 0a 09 | 35 36 2c 09 32 34 2c 09 |7,.39,..|56,.24,.|
|000010e0| 35 32 2c 09 32 30 2c 09 | 35 39 2c 09 32 37 2c 09 |52,.20,.|59,.27,.|
|000010f0| 35 35 2c 09 32 33 2c 0a | 09 32 2c 09 33 34 2c 09 |55,.23,.|.2,.34,.|
|00001100| 31 34 2c 09 34 36 2c 09 | 31 2c 09 33 33 2c 09 31 |14,.46,.|1,.33,.1|
|00001110| 33 2c 09 34 35 2c 0a 09 | 35 30 2c 09 31 38 2c 09 |3,.45,..|50,.18,.|
|00001120| 36 32 2c 09 33 30 2c 09 | 34 39 2c 09 31 37 2c 09 |62,.30,.|49,.17,.|
|00001130| 36 31 2c 09 32 39 2c 0a | 09 31 30 2c 09 34 32 2c |61,.29,.|.10,.42,|
|00001140| 09 36 2c 09 33 38 2c 09 | 39 2c 09 34 31 2c 09 35 |.6,.38,.|9,.41,.5|
|00001150| 2c 09 33 37 2c 0a 09 35 | 38 2c 09 32 36 2c 09 35 |,.37,..5|8,.26,.5|
|00001160| 34 2c 09 32 32 2c 09 35 | 37 2c 09 32 35 2c 09 35 |4,.22,.5|7,.25,.5|
|00001170| 33 2c 09 32 31 0a 7d 3b | 0a 0a 23 65 6c 73 65 09 |3,.21.};|..#else.|
|00001180| 2f 2a 20 42 4c 55 45 5f | 44 49 54 48 45 52 20 2a |/* BLUE_|DITHER *|
|00001190| 2f 0a 23 64 65 66 69 6e | 65 20 42 44 49 54 48 5f |/.#defin|e BDITH_|
|000011a0| 4c 4f 47 09 44 49 54 48 | 5f 4c 4f 47 0a 23 65 6e |LOG.DITH|_LOG.#en|
|000011b0| 64 69 66 09 2f 2a 20 42 | 4c 55 45 5f 44 49 54 48 |dif./* B|LUE_DITH|
|000011c0| 45 52 20 2a 2f 0a 0a 2f | 2a 0a 20 2a 20 44 65 74 |ER */../|*. * Det|
|000011d0| 65 72 6d 69 6e 65 20 69 | 66 20 77 65 20 68 61 76 |ermine i|f we hav|
|000011e0| 65 20 6d 6f 72 65 20 65 | 72 72 6f 72 20 74 68 61 |e more e|rror tha|
|000011f0| 6e 20 77 65 20 68 61 76 | 65 20 64 69 74 68 65 72 |n we hav|e dither|
|00001200| 2c 20 61 6e 64 0a 20 2a | 20 67 69 76 65 20 74 68 |, and. *| give th|
|00001210| 65 20 6e 75 6d 62 65 72 | 20 6f 66 20 62 69 74 73 |e number| of bits|
|00001220| 20 77 65 20 73 68 61 6c | 6c 20 68 61 76 65 20 74 | we shal|l have t|
|00001230| 6f 20 73 68 69 66 74 20 | 64 6f 77 6e 2e 0a 20 2a |o shift |down.. *|
|00001240| 2f 0a 23 69 66 20 28 52 | 5f 45 52 52 20 2d 20 44 |/.#if (R|_ERR - D|
|00001250| 49 54 48 5f 4c 4f 47 29 | 20 3e 20 30 0a 23 64 65 |ITH_LOG)| > 0.#de|
|00001260| 66 69 6e 65 20 52 5f 49 | 53 48 49 46 54 09 28 52 |fine R_I|SHIFT.(R|
|00001270| 5f 45 52 52 20 2d 20 44 | 49 54 48 5f 4c 4f 47 29 |_ERR - D|ITH_LOG)|
|00001280| 0a 23 65 6c 73 65 0a 23 | 64 65 66 69 6e 65 20 52 |.#else.#|define R|
|00001290| 5f 49 53 48 49 46 54 09 | 28 30 29 0a 23 65 6e 64 |_ISHIFT.|(0).#end|
|000012a0| 69 66 0a 0a 23 69 66 20 | 28 47 5f 45 52 52 20 2d |if..#if |(G_ERR -|
|000012b0| 20 44 49 54 48 5f 4c 4f | 47 29 20 3e 20 30 0a 23 | DITH_LO|G) > 0.#|
|000012c0| 64 65 66 69 6e 65 20 47 | 5f 49 53 48 49 46 54 09 |define G|_ISHIFT.|
|000012d0| 28 47 5f 45 52 52 20 2d | 20 44 49 54 48 5f 4c 4f |(G_ERR -| DITH_LO|
|000012e0| 47 29 0a 23 65 6c 73 65 | 0a 23 64 65 66 69 6e 65 |G).#else|.#define|
|000012f0| 20 47 5f 49 53 48 49 46 | 54 09 28 30 29 0a 23 65 | G_ISHIF|T.(0).#e|
|00001300| 6e 64 69 66 0a 0a 23 69 | 66 20 28 42 5f 45 52 52 |ndif..#i|f (B_ERR|
|00001310| 20 2d 20 42 44 49 54 48 | 5f 4c 4f 47 29 20 3e 20 | - BDITH|_LOG) > |
|00001320| 30 0a 23 64 65 66 69 6e | 65 20 42 5f 49 53 48 49 |0.#defin|e B_ISHI|
|00001330| 46 54 09 28 42 5f 45 52 | 52 20 2d 20 42 44 49 54 |FT.(B_ER|R - BDIT|
|00001340| 48 5f 4c 4f 47 29 0a 23 | 65 6c 73 65 0a 23 64 65 |H_LOG).#|else.#de|
|00001350| 66 69 6e 65 20 42 5f 49 | 53 48 49 46 54 09 28 30 |fine B_I|SHIFT.(0|
|00001360| 29 0a 23 65 6e 64 69 66 | 0a 0a 2f 2a 0a 20 2a 20 |).#endif|../*. * |
|00001370| 49 6d 61 67 65 2f 63 6f | 6c 6f 72 6d 61 70 20 64 |Image/co|lormap d|
|00001380| 65 66 69 6e 69 74 69 6f | 6e 73 2e 0a 20 2a 2f 0a |efinitio|ns.. */.|
|00001390| 23 64 65 66 69 6e 65 09 | 4d 41 50 53 49 5a 45 09 |#define.|MAPSIZE.|
|000013a0| 09 32 35 36 09 09 09 2f | 2a 20 73 69 7a 65 20 6f |.256.../|* size o|
|000013b0| 66 20 70 61 6c 6c 65 74 | 20 20 20 20 20 2a 2f 0a |f pallet| */.|
|000013c0| 23 64 65 66 69 6e 65 09 | 43 4f 4c 4f 52 53 09 09 |#define.|COLORS..|
|000013d0| 32 35 36 09 09 09 2f 2a | 20 6e 75 6d 62 65 72 20 |256.../*| number |
|000013e0| 6f 66 20 63 6f 6c 6f 72 | 73 20 20 20 2a 2f 0a 23 |of color|s */.#|
|000013f0| 64 65 66 69 6e 65 20 49 | 4d 41 47 45 53 49 5a 45 |define I|MAGESIZE|
|00001400| 09 35 31 32 09 09 09 2f | 2a 20 73 69 7a 65 20 6f |.512.../|* size o|
|00001410| 66 20 74 61 70 65 20 69 | 6d 61 67 65 20 2a 2f 0a |f tape i|mage */.|
|00001420| 23 64 65 66 69 6e 65 20 | 49 4d 41 47 45 5f 56 4f |#define |IMAGE_VO|
|00001430| 4c 09 28 49 4d 41 47 45 | 53 49 5a 45 2a 49 4d 41 |L.(IMAGE|SIZE*IMA|
|00001440| 47 45 53 49 5a 45 29 09 | 2f 2a 20 76 6f 6c 75 6d |GESIZE).|/* volum|
|00001450| 65 20 6f 66 20 69 6d 61 | 67 65 20 20 20 20 2a 2f |e of ima|ge */|
|00001460| 0a 0a 23 64 65 66 69 6e | 65 20 4d 41 58 50 41 54 |..#defin|e MAXPAT|
|00001470| 48 09 09 31 30 32 34 09 | 09 09 2f 2a 20 6d 61 78 |H..1024.|../* max|
|00001480| 20 6c 65 6e 67 74 68 20 | 6f 66 20 66 69 6c 65 6e | length |of filen|
|00001490| 61 6d 65 20 2a 2f 0a 0a | 73 74 72 75 63 74 20 70 |ame */..|struct p|
|000014a0| 69 78 72 65 63 74 20 2a | 64 69 73 70 6c 61 79 3b |ixrect *|display;|
|000014b0| 0a 73 74 72 75 63 74 20 | 70 69 78 72 65 63 74 20 |.struct |pixrect |
|000014c0| 2a 6d 65 6d 6f 72 79 5f | 66 72 61 6d 65 3b 0a 0a |*memory_|frame;..|
|000014d0| 2f 2a 20 66 6f 72 20 70 | 61 6c 65 74 74 65 20 28 |/* for p|alette (|
|000014e0| 73 75 6e 29 20 67 65 6e | 65 72 61 74 69 6f 6e 20 |sun) gen|eration |
|000014f0| 2a 2f 0a 0a 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |*/..unsi|gned cha|
|00001500| 72 20 72 65 64 5b 4d 41 | 50 53 49 5a 45 5d 2c 20 |r red[MA|PSIZE], |
|00001510| 67 72 6e 5b 4d 41 50 53 | 49 5a 45 5d 2c 20 62 6c |grn[MAPS|IZE], bl|
|00001520| 75 5b 4d 41 50 53 49 5a | 45 5d 3b 0a 0a 2f 2a 20 |u[MAPSIZ|E];../* |
|00001530| 73 68 61 64 65 20 74 61 | 62 6c 65 73 20 28 66 6f |shade ta|bles (fo|
|00001540| 72 20 73 70 65 65 64 29 | 20 2a 2f 0a 0a 73 74 61 |r speed)| */..sta|
|00001550| 74 69 63 20 75 6e 73 69 | 67 6e 65 64 20 69 6e 74 |tic unsi|gned int|
|00001560| 20 72 5f 62 61 73 65 5f | 72 69 67 68 74 5b 43 4f | r_base_|right[CO|
|00001570| 4c 4f 52 53 5d 3b 0a 73 | 74 61 74 69 63 20 75 6e |LORS];.s|tatic un|
|00001580| 73 69 67 6e 65 64 20 69 | 6e 74 20 72 5f 62 61 73 |signed i|nt r_bas|
|00001590| 65 5f 6c 65 66 74 5b 43 | 4f 4c 4f 52 53 5d 3b 0a |e_left[C|OLORS];.|
|000015a0| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|000015b0| 69 6e 74 20 72 5f 64 76 | 61 6c 5b 43 4f 4c 4f 52 |int r_dv|al[COLOR|
|000015c0| 53 5d 3b 0a 0a 73 74 61 | 74 69 63 20 75 6e 73 69 |S];..sta|tic unsi|
|000015d0| 67 6e 65 64 20 63 68 61 | 72 20 67 5f 62 61 73 65 |gned cha|r g_base|
|000015e0| 5f 72 69 67 68 74 5b 43 | 4f 4c 4f 52 53 5d 3b 0a |_right[C|OLORS];.|
|000015f0| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|00001600| 63 68 61 72 20 67 5f 62 | 61 73 65 5f 6c 65 66 74 |char g_b|ase_left|
|00001610| 5b 43 4f 4c 4f 52 53 5d | 3b 0a 73 74 61 74 69 63 |[COLORS]|;.static|
|00001620| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 67 | unsigne|d char g|
|00001630| 5f 64 76 61 6c 5b 43 4f | 4c 4f 52 53 5d 3b 0a 0a |_dval[CO|LORS];..|
|00001640| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|00001650| 63 68 61 72 20 62 5f 62 | 61 73 65 5f 72 69 67 68 |char b_b|ase_righ|
|00001660| 74 5b 43 4f 4c 4f 52 53 | 5d 3b 0a 73 74 61 74 69 |t[COLORS|];.stati|
|00001670| 63 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 |c unsign|ed char |
|00001680| 62 5f 62 61 73 65 5f 6c | 65 66 74 5b 43 4f 4c 4f |b_base_l|eft[COLO|
|00001690| 52 53 5d 3b 0a 73 74 61 | 74 69 63 20 75 6e 73 69 |RS];.sta|tic unsi|
|000016a0| 67 6e 65 64 20 63 68 61 | 72 20 62 5f 64 76 61 6c |gned cha|r b_dval|
|000016b0| 5b 43 4f 4c 4f 52 53 5d | 3b 0a 0a 2f 2a 20 6e 61 |[COLORS]|;../* na|
|000016c0| 73 74 79 20 70 72 6f 63 | 65 64 75 72 65 73 20 2a |sty proc|edures *|
|000016d0| 2f 0a 69 6e 74 0a 6d 69 | 6e 28 61 2c 62 29 0a 20 |/.int.mi|n(a,b). |
|000016e0| 20 20 20 69 6e 74 20 61 | 2c 62 3b 0a 7b 0a 20 20 | int a|,b;.{. |
|000016f0| 20 20 72 65 74 75 72 6e | 28 28 61 20 3e 20 62 29 | return|((a > b)|
|00001700| 3f 20 62 20 3a 20 61 29 | 3b 0a 7d 0a 0a 69 6e 74 |? b : a)|;.}..int|
|00001710| 0a 6d 61 78 28 61 2c 62 | 29 0a 20 20 20 20 69 6e |.max(a,b|). in|
|00001720| 74 20 61 2c 62 3b 0a 7b | 0a 20 20 20 20 72 65 74 |t a,b;.{|. ret|
|00001730| 75 72 6e 28 28 61 20 3e | 20 62 29 3f 20 61 20 3a |urn((a >| b)? a :|
|00001740| 20 62 29 3b 0a 7d 0a 0a | 6d 61 69 6e 28 61 72 67 | b);.}..|main(arg|
|00001750| 63 2c 61 72 67 76 29 0a | 20 20 20 20 69 6e 74 20 |c,argv).| int |
|00001760| 61 72 67 63 3b 0a 20 20 | 20 20 63 68 61 72 20 2a |argc;. | char *|
|00001770| 2a 61 72 67 76 3b 0a 7b | 0a 20 20 20 20 72 65 67 |*argv;.{|. reg|
|00001780| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 69 |ister un|signed i|
|00001790| 6e 74 20 63 6f 6c 6f 72 | 2c 20 64 69 74 68 5f 76 |nt color|, dith_v|
|000017a0| 61 6c 75 65 3b 0a 20 20 | 20 20 72 65 67 69 73 74 |alue;. | regist|
|000017b0| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 20 |er unsig|ned int |
|000017c0| 72 5f 63 6f 6c 6f 72 2c | 20 67 5f 63 6f 6c 6f 72 |r_color,| g_color|
|000017d0| 2c 20 62 5f 63 6f 6c 6f | 72 3b 0a 20 20 20 20 72 |, b_colo|r;. r|
|000017e0| 65 67 69 73 74 65 72 20 | 75 6e 73 69 67 6e 65 64 |egister |unsigned|
|000017f0| 20 63 68 61 72 20 2a 70 | 72 2c 20 2a 70 67 2c 20 | char *p|r, *pg, |
|00001800| 2a 70 62 3b 0a 0a 23 69 | 66 64 65 66 09 42 4c 55 |*pb;..#i|fdef.BLU|
|00001810| 45 5f 44 49 54 48 45 52 | 0a 20 20 20 20 75 6e 73 |E_DITHER|. uns|
|00001820| 69 67 6e 65 64 20 69 6e | 74 20 62 5f 64 69 74 68 |igned in|t b_dith|
|00001830| 5f 76 61 6c 75 65 3b 0a | 23 65 6e 64 69 66 09 2f |_value;.|#endif./|
|00001840| 2a 20 42 4c 55 45 5f 44 | 49 54 48 45 52 20 2a 2f |* BLUE_D|ITHER */|
|00001850| 0a 0a 20 20 20 20 69 6e | 74 20 78 5f 69 6d 61 67 |.. in|t x_imag|
|00001860| 65 73 69 7a 65 2c 20 79 | 5f 69 6d 61 67 65 73 69 |esize, y|_imagesi|
|00001870| 7a 65 2c 20 69 6d 61 67 | 65 5f 76 6f 6c 3b 0a 0a |ze, imag|e_vol;..|
|00001880| 20 20 20 20 69 6e 74 20 | 66 72 2c 20 66 67 2c 20 | int |fr, fg, |
|00001890| 66 62 3b 0a 20 20 20 20 | 69 6e 74 20 69 2c 20 70 |fb;. |int i, p|
|000018a0| 6c 65 6e 3b 0a 20 20 20 | 20 69 6e 74 20 78 2c 20 |len;. | int x, |
|000018b0| 79 3b 0a 20 20 20 20 63 | 68 61 72 20 62 75 66 5b |y;. c|har buf[|
|000018c0| 4d 41 58 50 41 54 48 5d | 3b 0a 20 20 20 20 75 6e |MAXPATH]|;. un|
|000018d0| 73 69 67 6e 65 64 20 63 | 68 61 72 20 2a 70 69 63 |signed c|har *pic|
|000018e0| 74 75 72 65 2c 20 2a 70 | 69 63 74 5f 72 6f 77 3b |ture, *p|ict_row;|
|000018f0| 09 2f 2a 20 6b 65 65 70 | 20 72 6f 77 20 74 6f 20 |./* keep| row to |
|00001900| 61 76 6f 69 64 20 70 61 | 64 64 69 6e 67 20 70 72 |avoid pa|dding pr|
|00001910| 6f 62 6c 65 6d 73 20 2a | 2f 0a 20 20 20 20 69 6e |oblems *|/. in|
|00001920| 74 20 72 6f 77 5f 62 79 | 74 65 73 3b 09 09 09 2f |t row_by|tes;.../|
|00001930| 2a 20 62 79 74 65 73 20 | 70 65 72 20 73 63 61 6e |* bytes |per scan|
|00001940| 2d 6c 69 6e 65 20 2a 2f | 0a 0a 20 20 20 20 69 66 |-line */|.. if|
|00001950| 20 28 61 72 67 63 20 3c | 20 32 29 20 7b 0a 09 66 | (argc <| 2) {..f|
|00001960| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00001970| 55 73 61 67 65 3a 20 25 | 73 20 72 67 62 2d 69 6d |Usage: %|s rgb-im|
|00001980| 61 67 65 66 69 6c 65 20 | 5b 68 73 69 7a 65 5d 20 |agefile |[hsize] |
|00001990| 5b 76 73 69 7a 65 5d 5c | 6e 22 2c 20 61 72 67 76 |[vsize]\|n", argv|
|000019a0| 5b 30 5d 29 3b 0a 09 65 | 78 69 74 28 2d 31 29 3b |[0]);..e|xit(-1);|
|000019b0| 0a 20 20 20 20 7d 0a 0a | 20 20 20 20 69 66 20 28 |. }..| if (|
|000019c0| 61 72 67 63 20 3e 20 32 | 29 20 7b 0a 09 78 5f 69 |argc > 2|) {..x_i|
|000019d0| 6d 61 67 65 73 69 7a 65 | 20 3d 20 61 74 6f 69 28 |magesize| = atoi(|
|000019e0| 61 72 67 76 5b 32 5d 29 | 3b 0a 0a 09 69 66 20 28 |argv[2])|;...if (|
|000019f0| 61 72 67 63 20 3e 20 33 | 29 20 7b 0a 09 20 20 20 |argc > 3|) {.. |
|00001a00| 20 79 5f 69 6d 61 67 65 | 73 69 7a 65 20 3d 20 61 | y_image|size = a|
|00001a10| 74 6f 69 28 61 72 67 76 | 5b 33 5d 29 3b 0a 09 7d |toi(argv|[3]);..}|
|00001a20| 20 65 6c 73 65 20 7b 0a | 09 20 20 20 20 79 5f 69 | else {.|. y_i|
|00001a30| 6d 61 67 65 73 69 7a 65 | 20 3d 20 78 5f 69 6d 61 |magesize| = x_ima|
|00001a40| 67 65 73 69 7a 65 3b 0a | 09 7d 0a 0a 09 69 6d 61 |gesize;.|.}...ima|
|00001a50| 67 65 5f 76 6f 6c 20 3d | 20 79 5f 69 6d 61 67 65 |ge_vol =| y_image|
|00001a60| 73 69 7a 65 20 2a 20 78 | 5f 69 6d 61 67 65 73 69 |size * x|_imagesi|
|00001a70| 7a 65 3b 0a 0a 09 70 72 | 20 3d 20 28 75 6e 73 69 |ze;...pr| = (unsi|
|00001a80| 67 6e 65 64 20 63 68 61 | 72 20 2a 29 20 6d 61 6c |gned cha|r *) mal|
|00001a90| 6c 6f 63 28 69 6d 61 67 | 65 5f 76 6f 6c 20 2a 20 |loc(imag|e_vol * |
|00001aa0| 73 69 7a 65 6f 66 28 75 | 6e 73 69 67 6e 65 64 20 |sizeof(u|nsigned |
|00001ab0| 63 68 61 72 29 29 3b 0a | 09 70 67 20 3d 20 28 75 |char));.|.pg = (u|
|00001ac0| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 2a 29 20 |nsigned |char *) |
|00001ad0| 6d 61 6c 6c 6f 63 28 69 | 6d 61 67 65 5f 76 6f 6c |malloc(i|mage_vol|
|00001ae0| 20 2a 20 73 69 7a 65 6f | 66 28 75 6e 73 69 67 6e | * sizeo|f(unsign|
|00001af0| 65 64 20 63 68 61 72 29 | 29 3b 0a 09 70 62 20 3d |ed char)|);..pb =|
|00001b00| 20 28 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 | (unsign|ed char |
|00001b10| 2a 29 20 6d 61 6c 6c 6f | 63 28 69 6d 61 67 65 5f |*) mallo|c(image_|
|00001b20| 76 6f 6c 20 2a 20 73 69 | 7a 65 6f 66 28 75 6e 73 |vol * si|zeof(uns|
|00001b30| 69 67 6e 65 64 20 63 68 | 61 72 29 29 3b 0a 20 20 |igned ch|ar));. |
|00001b40| 20 20 7d 20 65 6c 73 65 | 20 7b 0a 09 78 5f 69 6d | } else| {..x_im|
|00001b50| 61 67 65 73 69 7a 65 20 | 3d 20 79 5f 69 6d 61 67 |agesize |= y_imag|
|00001b60| 65 73 69 7a 65 20 3d 20 | 49 4d 41 47 45 53 49 5a |esize = |IMAGESIZ|
|00001b70| 45 3b 0a 09 70 72 20 3d | 20 28 75 6e 73 69 67 6e |E;..pr =| (unsign|
|00001b80| 65 64 20 63 68 61 72 20 | 2a 29 20 6d 61 6c 6c 6f |ed char |*) mallo|
|00001b90| 63 28 49 4d 41 47 45 5f | 56 4f 4c 29 3b 0a 09 70 |c(IMAGE_|VOL);..p|
|00001ba0| 67 20 3d 20 28 75 6e 73 | 69 67 6e 65 64 20 63 68 |g = (uns|igned ch|
|00001bb0| 61 72 20 2a 29 20 6d 61 | 6c 6c 6f 63 28 49 4d 41 |ar *) ma|lloc(IMA|
|00001bc0| 47 45 5f 56 4f 4c 29 3b | 0a 09 70 62 20 3d 20 28 |GE_VOL);|..pb = (|
|00001bd0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 20 2a 29 |unsigned| char *)|
|00001be0| 20 6d 61 6c 6c 6f 63 28 | 49 4d 41 47 45 5f 56 4f | malloc(|IMAGE_VO|
|00001bf0| 4c 29 3b 0a 09 69 6d 61 | 67 65 5f 76 6f 6c 20 3d |L);..ima|ge_vol =|
|00001c00| 20 49 4d 41 47 45 5f 56 | 4f 4c 3b 0a 20 20 20 20 | IMAGE_V|OL;. |
|00001c10| 7d 0a 0a 20 20 20 20 70 | 72 69 6e 74 66 28 22 68 |}.. p|rintf("h|
|00001c20| 69 67 68 20 25 64 20 77 | 69 64 65 20 25 64 20 76 |igh %d w|ide %d v|
|00001c30| 6f 6c 20 25 64 5c 6e 22 | 2c 20 79 5f 69 6d 61 67 |ol %d\n"|, y_imag|
|00001c40| 65 73 69 7a 65 2c 20 78 | 5f 69 6d 61 67 65 73 69 |esize, x|_imagesi|
|00001c50| 7a 65 2c 20 69 6d 61 67 | 65 5f 76 6f 6c 29 3b 0a |ze, imag|e_vol);.|
|00001c60| 0a 20 20 20 20 73 74 72 | 63 70 79 28 62 75 66 2c |. str|cpy(buf,|
|00001c70| 61 72 67 76 5b 31 5d 29 | 3b 0a 20 20 20 20 70 6c |argv[1])|;. pl|
|00001c80| 65 6e 20 3d 20 73 74 72 | 6c 65 6e 28 62 75 66 29 |en = str|len(buf)|
|00001c90| 3b 0a 20 20 20 20 62 75 | 66 5b 70 6c 65 6e 5d 20 |;. bu|f[plen] |
|00001ca0| 3d 20 27 52 27 3b 0a 20 | 20 20 20 66 72 20 3d 20 |= 'R';. | fr = |
|00001cb0| 6f 70 65 6e 28 62 75 66 | 2c 20 4f 5f 52 44 4f 4e |open(buf|, O_RDON|
|00001cc0| 4c 59 2c 20 30 34 34 34 | 29 3b 0a 20 20 20 20 69 |LY, 0444|);. i|
|00001cd0| 66 20 28 66 72 20 3c 20 | 30 29 20 7b 0a 09 70 65 |f (fr < |0) {..pe|
|00001ce0| 72 72 6f 72 28 62 75 66 | 29 3b 0a 09 65 78 69 74 |rror(buf|);..exit|
|00001cf0| 28 31 29 3b 0a 20 20 20 | 20 7d 0a 0a 20 20 20 20 |(1);. | }.. |
|00001d00| 62 75 66 5b 70 6c 65 6e | 5d 20 3d 20 27 47 27 3b |buf[plen|] = 'G';|
|00001d10| 0a 20 20 20 20 66 67 20 | 3d 20 6f 70 65 6e 28 62 |. fg |= open(b|
|00001d20| 75 66 2c 20 4f 5f 52 44 | 4f 4e 4c 59 2c 20 30 34 |uf, O_RD|ONLY, 04|
|00001d30| 34 34 29 3b 0a 20 20 20 | 20 69 66 20 28 66 67 20 |44);. | if (fg |
|00001d40| 3d 3d 20 30 29 20 7b 0a | 09 70 65 72 72 6f 72 28 |== 0) {.|.perror(|
|00001d50| 62 75 66 29 3b 0a 09 65 | 78 69 74 28 31 29 3b 0a |buf);..e|xit(1);.|
|00001d60| 20 20 20 20 7d 0a 0a 20 | 20 20 20 62 75 66 5b 70 | }.. | buf[p|
|00001d70| 6c 65 6e 5d 20 3d 20 27 | 42 27 3b 0a 20 20 20 20 |len] = '|B';. |
|00001d80| 66 62 20 3d 20 6f 70 65 | 6e 28 62 75 66 2c 20 4f |fb = ope|n(buf, O|
|00001d90| 5f 52 44 4f 4e 4c 59 2c | 20 30 34 34 34 29 3b 0a |_RDONLY,| 0444);.|
|00001da0| 20 20 20 20 69 66 20 28 | 66 62 20 3c 20 30 29 20 | if (|fb < 0) |
|00001db0| 7b 0a 09 70 65 72 72 6f | 72 28 62 75 66 29 3b 0a |{..perro|r(buf);.|
|00001dc0| 09 65 78 69 74 28 31 29 | 3b 0a 20 20 20 20 7d 0a |.exit(1)|;. }.|
|00001dd0| 0a 20 20 20 20 64 69 73 | 70 6c 61 79 20 3d 20 70 |. dis|play = p|
|00001de0| 72 5f 6f 70 65 6e 28 22 | 2f 64 65 76 2f 63 67 6f |r_open("|/dev/cgo|
|00001df0| 6e 65 30 22 29 3b 0a 20 | 20 20 20 69 66 20 28 64 |ne0");. | if (d|
|00001e00| 69 73 70 6c 61 79 20 3d | 3d 20 4e 55 4c 4c 29 20 |isplay =|= NULL) |
|00001e10| 7b 0a 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |{..fprin|tf(stder|
|00001e20| 72 2c 22 43 6f 6c 6f 72 | 20 44 69 73 70 6c 61 79 |r,"Color| Display|
|00001e30| 20 6e 6f 74 20 61 76 61 | 69 6c 61 62 6c 65 2c 20 | not ava|ilable, |
|00001e40| 73 6f 72 72 79 5c 6e 22 | 29 3b 0a 09 65 78 69 74 |sorry\n"|);..exit|
|00001e50| 20 28 2d 31 29 3b 0a 20 | 20 20 20 7d 0a 0a 20 20 | (-1);. | }.. |
|00001e60| 20 20 70 75 74 73 28 22 | 52 65 61 64 69 6e 67 20 | puts("|Reading |
|00001e70| 52 47 42 20 66 69 6c 65 | 73 22 29 3b 0a 0a 20 20 |RGB file|s");.. |
|00001e80| 20 20 69 66 20 28 72 65 | 61 64 28 66 72 2c 20 70 | if (re|ad(fr, p|
|00001e90| 72 2c 20 69 6d 61 67 65 | 5f 76 6f 6c 29 20 3c 3d |r, image|_vol) <=|
|00001ea0| 20 30 29 0a 09 20 20 20 | 20 70 65 72 72 6f 72 28 | 0).. | perror(|
|00001eb0| 22 72 65 64 22 29 3b 0a | 20 20 20 20 69 66 20 28 |"red");.| if (|
|00001ec0| 72 65 61 64 28 66 67 2c | 20 70 67 2c 20 69 6d 61 |read(fg,| pg, ima|
|00001ed0| 67 65 5f 76 6f 6c 29 20 | 3c 3d 20 30 29 0a 09 20 |ge_vol) |<= 0).. |
|00001ee0| 20 20 20 70 65 72 72 6f | 72 28 22 67 72 6e 22 29 | perro|r("grn")|
|00001ef0| 3b 0a 20 20 20 20 69 66 | 20 28 72 65 61 64 28 66 |;. if| (read(f|
|00001f00| 62 2c 20 70 62 2c 20 69 | 6d 61 67 65 5f 76 6f 6c |b, pb, i|mage_vol|
|00001f10| 29 20 3c 3d 20 30 29 0a | 09 20 20 20 20 70 65 72 |) <= 0).|. per|
|00001f20| 72 6f 72 28 22 62 6c 75 | 22 29 3b 0a 0a 20 20 20 |ror("blu|");.. |
|00001f30| 20 70 75 74 73 28 22 43 | 72 65 61 74 69 6e 67 20 | puts("C|reating |
|00001f40| 6d 65 6d 6f 72 79 20 70 | 69 78 72 65 63 74 22 29 |memory p|ixrect")|
|00001f50| 3b 0a 0a 20 20 20 20 2f | 2a 20 47 65 74 20 61 20 |;.. /|* Get a |
|00001f60| 70 6f 69 6e 74 65 72 20 | 74 6f 20 61 20 6d 65 6d |pointer |to a mem|
|00001f70| 6f 72 79 20 70 69 78 72 | 65 63 74 20 2a 2f 0a 20 |ory pixr|ect */. |
|00001f80| 20 20 20 6d 65 6d 6f 72 | 79 5f 66 72 61 6d 65 20 | memor|y_frame |
|00001f90| 3d 20 6d 65 6d 5f 63 72 | 65 61 74 65 28 78 5f 69 |= mem_cr|eate(x_i|
|00001fa0| 6d 61 67 65 73 69 7a 65 | 2c 20 79 5f 69 6d 61 67 |magesize|, y_imag|
|00001fb0| 65 73 69 7a 65 2c 20 38 | 29 3b 0a 0a 20 20 20 20 |esize, 8|);.. |
|00001fc0| 2f 2a 20 47 65 74 20 61 | 20 70 6f 69 6e 74 65 72 |/* Get a| pointer|
|00001fd0| 20 74 6f 20 74 68 65 20 | 69 6d 61 67 65 20 62 75 | to the |image bu|
|00001fe0| 66 66 65 72 20 61 73 73 | 6f 63 69 61 74 65 64 20 |ffer ass|ociated |
|00001ff0| 77 69 74 68 20 74 68 65 | 20 6d 65 6d 6f 72 79 20 |with the| memory |
|00002000| 70 69 78 72 65 63 74 20 | 2a 2f 0a 20 20 20 20 70 |pixrect |*/. p|
|00002010| 69 63 74 5f 72 6f 77 20 | 3d 20 70 69 63 74 75 72 |ict_row |= pictur|
|00002020| 65 20 3d 20 28 75 6e 73 | 69 67 6e 65 64 20 63 68 |e = (uns|igned ch|
|00002030| 61 72 20 2a 29 20 6d 70 | 72 5f 64 28 6d 65 6d 6f |ar *) mp|r_d(memo|
|00002040| 72 79 5f 66 72 61 6d 65 | 29 2d 3e 6d 64 5f 69 6d |ry_frame|)->md_im|
|00002050| 61 67 65 3b 0a 0a 20 20 | 20 20 2f 2a 20 47 65 74 |age;.. | /* Get|
|00002060| 20 62 79 74 65 73 20 70 | 65 72 20 73 63 61 6e 2d | bytes p|er scan-|
|00002070| 6c 69 6e 65 20 28 6e 6f | 74 65 20 74 68 61 74 20 |line (no|te that |
|00002080| 70 61 64 64 69 6e 67 20 | 65 78 69 73 74 73 29 20 |padding |exists) |
|00002090| 2a 2f 0a 20 20 20 20 72 | 6f 77 5f 62 79 74 65 73 |*/. r|ow_bytes|
|000020a0| 20 3d 20 6d 70 72 5f 64 | 28 6d 65 6d 6f 72 79 5f | = mpr_d|(memory_|
|000020b0| 66 72 61 6d 65 29 2d 3e | 6d 64 5f 6c 69 6e 65 62 |frame)->|md_lineb|
|000020c0| 79 74 65 73 3b 0a 0a 20 | 20 20 20 70 75 74 73 28 |ytes;.. | puts(|
|000020d0| 22 49 6e 69 74 69 61 6c | 69 7a 69 6e 67 20 74 61 |"Initial|izing ta|
|000020e0| 62 6c 65 73 22 29 3b 0a | 0a 20 20 20 20 69 6e 69 |bles");.|. ini|
|000020f0| 74 5f 74 61 62 6c 65 73 | 28 29 3b 0a 0a 20 20 20 |t_tables|();.. |
|00002100| 20 70 75 74 73 28 22 50 | 72 6f 63 65 73 73 69 6e | puts("P|rocessin|
|00002110| 67 20 69 6d 61 67 65 22 | 29 3b 0a 0a 20 20 20 20 |g image"|);.. |
|00002120| 66 6f 72 20 28 79 20 3d | 20 30 3b 20 79 20 3c 20 |for (y =| 0; y < |
|00002130| 79 5f 69 6d 61 67 65 73 | 69 7a 65 3b 20 79 2b 2b |y_images|ize; y++|
|00002140| 2c 20 70 69 63 74 75 72 | 65 20 3d 20 70 69 63 74 |, pictur|e = pict|
|00002150| 5f 72 6f 77 20 2b 3d 20 | 72 6f 77 5f 62 79 74 65 |_row += |row_byte|
|00002160| 73 29 20 7b 0a 09 66 6f | 72 20 28 78 20 3d 20 30 |s) {..fo|r (x = 0|
|00002170| 3b 20 78 20 3c 20 78 5f | 69 6d 61 67 65 73 69 7a |; x < x_|imagesiz|
|00002180| 65 3b 20 78 2b 2b 29 20 | 7b 0a 0a 09 20 20 20 20 |e; x++) |{... |
|00002190| 72 5f 63 6f 6c 6f 72 20 | 3d 20 2a 70 72 2b 2b 3b |r_color |= *pr++;|
|000021a0| 0a 09 20 20 20 20 67 5f | 63 6f 6c 6f 72 20 3d 20 |.. g_|color = |
|000021b0| 2a 70 67 2b 2b 3b 0a 09 | 20 20 20 20 62 5f 63 6f |*pg++;..| b_co|
|000021c0| 6c 6f 72 20 3d 20 2a 70 | 62 2b 2b 3b 0a 0a 23 69 |lor = *p|b++;..#i|
|000021d0| 66 64 65 66 09 42 4c 55 | 45 5f 44 49 54 48 45 52 |fdef.BLU|E_DITHER|
|000021e0| 0a 09 20 20 20 20 62 5f | 64 69 74 68 5f 76 61 6c |.. b_|dith_val|
|000021f0| 75 65 20 3d 20 62 64 69 | 74 68 65 72 5b 78 20 26 |ue = bdi|ther[x &|
|00002200| 20 42 44 4d 41 53 4b 5d | 5b 79 20 26 20 42 44 4d | BDMASK]|[y & BDM|
|00002210| 41 53 4b 5d 3b 0a 23 65 | 6e 64 69 66 09 2f 2a 20 |ASK];.#e|ndif./* |
|00002220| 42 4c 55 45 5f 44 49 54 | 48 45 52 20 2a 2f 0a 0a |BLUE_DIT|HER */..|
|00002230| 09 20 20 20 20 64 69 74 | 68 5f 76 61 6c 75 65 20 |. dit|h_value |
|00002240| 3d 20 64 69 74 68 65 72 | 5b 78 20 26 20 44 4d 41 |= dither|[x & DMA|
|00002250| 53 4b 5d 5b 79 20 26 20 | 44 4d 41 53 4b 5d 3b 0a |SK][y & |DMASK];.|
|00002260| 0a 09 20 20 20 20 69 66 | 20 28 72 5f 64 76 61 6c |.. if| (r_dval|
|00002270| 5b 72 5f 63 6f 6c 6f 72 | 5d 20 3e 20 64 69 74 68 |[r_color|] > dith|
|00002280| 5f 76 61 6c 75 65 29 0a | 09 09 63 6f 6c 6f 72 20 |_value).|..color |
|00002290| 3d 20 72 5f 62 61 73 65 | 5f 6c 65 66 74 5b 72 5f |= r_base|_left[r_|
|000022a0| 63 6f 6c 6f 72 5d 3b 0a | 09 20 20 20 20 65 6c 73 |color];.|. els|
|000022b0| 65 0a 09 09 63 6f 6c 6f | 72 20 3d 20 72 5f 62 61 |e...colo|r = r_ba|
|000022c0| 73 65 5f 72 69 67 68 74 | 5b 72 5f 63 6f 6c 6f 72 |se_right|[r_color|
|000022d0| 5d 3b 0a 0a 09 20 20 20 | 20 69 66 20 28 67 5f 64 |];... | if (g_d|
|000022e0| 76 61 6c 5b 67 5f 63 6f | 6c 6f 72 5d 20 3e 20 64 |val[g_co|lor] > d|
|000022f0| 69 74 68 5f 76 61 6c 75 | 65 29 0a 09 09 63 6f 6c |ith_valu|e)...col|
|00002300| 6f 72 20 7c 3d 20 67 5f | 62 61 73 65 5f 6c 65 66 |or |= g_|base_lef|
|00002310| 74 5b 67 5f 63 6f 6c 6f | 72 5d 3b 0a 09 20 20 20 |t[g_colo|r];.. |
|00002320| 20 65 6c 73 65 0a 09 09 | 63 6f 6c 6f 72 20 7c 3d | else...|color |=|
|00002330| 20 67 5f 62 61 73 65 5f | 72 69 67 68 74 5b 67 5f | g_base_|right[g_|
|00002340| 63 6f 6c 6f 72 5d 3b 0a | 0a 23 69 66 64 65 66 09 |color];.|.#ifdef.|
|00002350| 42 4c 55 45 5f 44 49 54 | 48 45 52 0a 09 20 20 20 |BLUE_DIT|HER.. |
|00002360| 20 69 66 20 28 62 5f 64 | 76 61 6c 5b 62 5f 63 6f | if (b_d|val[b_co|
|00002370| 6c 6f 72 5d 20 3e 20 62 | 5f 64 69 74 68 5f 76 61 |lor] > b|_dith_va|
|00002380| 6c 75 65 29 0a 23 65 6c | 73 65 0a 09 20 20 20 20 |lue).#el|se.. |
|00002390| 69 66 20 28 62 5f 64 76 | 61 6c 5b 62 5f 63 6f 6c |if (b_dv|al[b_col|
|000023a0| 6f 72 5d 20 3e 20 64 69 | 74 68 5f 76 61 6c 75 65 |or] > di|th_value|
|000023b0| 29 0a 23 65 6e 64 69 66 | 09 2f 2a 20 42 4c 55 45 |).#endif|./* BLUE|
|000023c0| 5f 44 49 54 48 45 52 20 | 2a 2f 0a 09 09 63 6f 6c |_DITHER |*/...col|
|000023d0| 6f 72 20 7c 3d 20 62 5f | 62 61 73 65 5f 6c 65 66 |or |= b_|base_lef|
|000023e0| 74 5b 62 5f 63 6f 6c 6f | 72 5d 3b 0a 09 20 20 20 |t[b_colo|r];.. |
|000023f0| 20 65 6c 73 65 0a 09 09 | 63 6f 6c 6f 72 20 7c 3d | else...|color |=|
|00002400| 20 62 5f 62 61 73 65 5f | 72 69 67 68 74 5b 62 5f | b_base_|right[b_|
|00002410| 63 6f 6c 6f 72 5d 3b 0a | 0a 09 20 20 20 20 2a 70 |color];.|.. *p|
|00002420| 69 63 74 75 72 65 2b 2b | 20 3d 20 63 6f 6c 6f 72 |icture++| = color|
|00002430| 3b 0a 09 7d 0a 20 20 20 | 20 7d 0a 0a 20 20 20 20 |;..}. | }.. |
|00002440| 2f 2a 0a 20 20 20 20 20 | 2a 09 47 65 6e 65 72 61 |/*. |*.Genera|
|00002450| 74 65 20 63 6f 6c 6f 72 | 6d 61 70 20 77 69 74 68 |te color|map with|
|00002460| 20 28 63 79 63 6c 65 20 | 69 73 20 38 20 76 61 6c | (cycle |is 8 val|
|00002470| 75 65 73 29 3a 0a 20 20 | 20 20 20 2a 09 09 33 32 |ues):. | *..32|
|00002480| 20 20 63 79 63 6c 65 73 | 20 6f 66 20 72 65 64 0a | cycles| of red.|
|00002490| 20 20 20 20 20 2a 09 09 | 31 20 20 20 63 79 63 6c | *..|1 cycl|
|000024a0| 65 20 20 6f 66 20 67 72 | 65 65 6e 0a 20 20 20 20 |e of gr|een. |
|000024b0| 20 2a 09 09 31 2f 32 20 | 63 79 63 6c 65 20 20 6f | *..1/2 |cycle o|
|000024c0| 66 20 62 6c 75 65 0a 20 | 20 20 20 20 2a 09 61 6c |f blue. | *.al|
|000024d0| 6c 20 76 61 72 79 69 6e | 67 20 73 6d 6f 6f 74 68 |l varyin|g smooth|
|000024e0| 65 6c 79 2c 20 6e 6f 74 | 65 20 74 68 61 74 20 61 |ely, not|e that a|
|000024f0| 6e 20 69 6d 70 72 6f 76 | 65 64 0a 20 20 20 20 20 |n improv|ed. |
|00002500| 2a 09 6d 61 70 20 77 68 | 69 63 68 20 65 6d 70 6c |*.map wh|ich empl|
|00002510| 6f 79 73 20 62 65 74 74 | 65 72 20 67 72 61 64 75 |oys bett|er gradu|
|00002520| 61 74 69 6f 6e 20 6f 66 | 20 63 6f 6c 6f 72 0a 20 |ation of| color. |
|00002530| 20 20 20 20 2a 09 63 61 | 6e 20 62 65 20 65 6d 70 | *.ca|n be emp|
|00002540| 6c 6f 79 65 64 2c 20 62 | 75 74 20 6f 6e 20 6f 75 |loyed, b|ut on ou|
|00002550| 72 20 69 6e 74 65 72 6c | 61 63 65 64 20 6d 6f 6e |r interl|aced mon|
|00002560| 69 74 6f 72 0a 20 20 20 | 20 20 2a 09 74 68 69 73 |itor. | *.this|
|00002570| 20 63 61 75 73 65 64 20 | 61 6e 20 65 78 74 72 65 | caused |an extre|
|00002580| 6d 65 6c 79 20 70 61 69 | 6e 66 75 6c 20 66 6c 69 |mely pai|nful fli|
|00002590| 63 6b 65 72 2e 0a 20 20 | 20 20 20 2a 2f 0a 0a 20 |cker.. | */.. |
|000025a0| 20 20 20 70 75 74 73 28 | 22 42 75 69 6c 64 69 6e | puts(|"Buildin|
|000025b0| 67 20 63 6f 6c 6f 72 20 | 6c 6f 6f 6b 75 70 20 74 |g color |lookup t|
|000025c0| 61 62 6c 65 22 29 3b 0a | 0a 20 20 20 20 66 6f 72 |able");.|. for|
|000025d0| 20 28 69 3d 30 3b 20 69 | 20 3c 20 4d 41 50 53 49 | (i=0; i| < MAPSI|
|000025e0| 5a 45 3b 20 69 2b 2b 29 | 20 7b 0a 09 72 65 64 5b |ZE; i++)| {..red[|
|000025f0| 69 5d 20 3d 20 28 69 20 | 26 20 52 5f 4d 41 50 29 |i] = (i |& R_MAP)|
|00002600| 20 3c 3c 20 52 5f 53 48 | 49 46 54 3b 0a 09 67 72 | << R_SH|IFT;..gr|
|00002610| 6e 5b 69 5d 20 3d 20 28 | 69 20 26 20 47 5f 4d 41 |n[i] = (|i & G_MA|
|00002620| 50 29 20 3c 3c 20 28 47 | 5f 53 48 49 46 54 20 2d |P) << (G|_SHIFT -|
|00002630| 20 52 5f 42 49 54 53 29 | 3b 0a 09 62 6c 75 5b 69 | R_BITS)|;..blu[i|
|00002640| 5d 20 3d 20 28 69 20 26 | 20 42 5f 4d 41 50 29 20 |] = (i &| B_MAP) |
|00002650| 3c 3c 20 28 42 5f 53 48 | 49 46 54 20 2d 20 52 5f |<< (B_SH|IFT - R_|
|00002660| 42 49 54 53 20 2d 20 47 | 5f 42 49 54 53 29 3b 0a |BITS - G|_BITS);.|
|00002670| 20 20 20 20 7d 0a 0a 20 | 20 20 20 70 72 5f 70 75 | }.. | pr_pu|
|00002680| 74 63 6f 6c 6f 72 6d 61 | 70 28 64 69 73 70 6c 61 |tcolorma|p(displa|
|00002690| 79 2c 20 30 2c 20 4d 41 | 50 53 49 5a 45 2c 20 72 |y, 0, MA|PSIZE, r|
|000026a0| 65 64 2c 20 67 72 6e 2c | 20 62 6c 75 29 3b 0a 0a |ed, grn,| blu);..|
|000026b0| 20 20 20 20 2f 2a 20 63 | 6f 70 79 20 74 68 65 20 | /* c|opy the |
|000026c0| 63 6f 6d 70 6c 65 74 65 | 20 69 6d 61 67 65 20 74 |complete| image t|
|000026d0| 6f 20 74 68 65 20 64 69 | 73 70 6c 61 79 2c 20 63 |o the di|splay, c|
|000026e0| 65 6e 74 65 72 20 69 74 | 20 61 6c 73 6f 2e 0a 20 |enter it| also.. |
|000026f0| 20 20 20 2a 2f 0a 0a 20 | 20 20 20 70 75 74 73 28 | */.. | puts(|
|00002700| 22 44 69 73 70 6c 61 79 | 69 6e 67 22 29 3b 0a 0a |"Display|ing");..|
|00002710| 20 20 20 20 70 72 5f 72 | 6f 70 28 64 69 73 70 6c | pr_r|op(displ|
|00002720| 61 79 2c 0a 09 20 20 20 | 6d 61 78 28 28 64 69 73 |ay,.. |max((dis|
|00002730| 70 6c 61 79 2d 3e 70 72 | 5f 77 69 64 74 68 20 2d |play->pr|_width -|
|00002740| 20 78 5f 69 6d 61 67 65 | 73 69 7a 65 29 20 3e 3e | x_image|size) >>|
|00002750| 20 31 2c 20 30 29 2c 0a | 09 20 20 20 6d 61 78 28 | 1, 0),.|. max(|
|00002760| 28 64 69 73 70 6c 61 79 | 2d 3e 70 72 5f 68 65 69 |(display|->pr_hei|
|00002770| 67 68 74 20 2d 20 79 5f | 69 6d 61 67 65 73 69 7a |ght - y_|imagesiz|
|00002780| 65 29 20 3e 3e 20 31 2c | 30 29 2c 0a 09 20 20 20 |e) >> 1,|0),.. |
|00002790| 6d 69 6e 28 64 69 73 70 | 6c 61 79 2d 3e 70 72 5f |min(disp|lay->pr_|
|000027a0| 77 69 64 74 68 2c 20 78 | 5f 69 6d 61 67 65 73 69 |width, x|_imagesi|
|000027b0| 7a 65 29 2c 0a 09 20 20 | 20 6d 69 6e 28 64 69 73 |ze),.. | min(dis|
|000027c0| 70 6c 61 79 2d 3e 70 72 | 5f 68 65 69 67 68 74 2c |play->pr|_height,|
|000027d0| 20 79 5f 69 6d 61 67 65 | 73 69 7a 65 29 2c 0a 09 | y_image|size),..|
|000027e0| 20 20 20 28 50 49 58 5f | 53 52 43 7c 50 49 58 5f | (PIX_|SRC|PIX_|
|000027f0| 44 4f 4e 54 43 4c 49 50 | 29 2c 20 6d 65 6d 6f 72 |DONTCLIP|), memor|
|00002800| 79 5f 66 72 61 6d 65 2c | 20 30 2c 20 30 29 3b 0a |y_frame,| 0, 0);.|
|00002810| 0a 20 20 20 20 70 72 5f | 63 6c 6f 73 65 28 64 69 |. pr_|close(di|
|00002820| 73 70 6c 61 79 29 3b 0a | 20 20 20 20 63 6c 6f 73 |splay);.| clos|
|00002830| 65 28 66 72 29 3b 0a 20 | 20 20 20 63 6c 6f 73 65 |e(fr);. | close|
|00002840| 28 66 67 29 3b 0a 20 20 | 20 20 63 6c 6f 73 65 28 |(fg);. | close(|
|00002850| 66 62 29 3b 0a 7d 0a 0a | 69 6e 69 74 5f 74 61 62 |fb);.}..|init_tab|
|00002860| 6c 65 73 28 29 0a 7b 0a | 20 20 20 20 72 65 67 69 |les().{.| regi|
|00002870| 73 74 65 72 20 75 6e 73 | 69 67 6e 65 64 20 69 6e |ster uns|igned in|
|00002880| 74 20 69 6e 74 65 6e 73 | 69 74 79 2c 20 69 3b 0a |t intens|ity, i;.|
|00002890| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 64 6f 75 | regi|ster dou|
|000028a0| 62 6c 65 20 74 72 75 65 | 5f 69 3b 0a 20 20 20 20 |ble true|_i;. |
|000028b0| 72 65 67 69 73 74 65 72 | 20 64 6f 75 62 6c 65 20 |register| double |
|000028c0| 72 66 61 63 74 6f 72 2c | 20 67 66 61 63 74 6f 72 |rfactor,| gfactor|
|000028d0| 2c 20 62 66 61 63 74 6f | 72 3b 0a 0a 20 20 20 20 |, bfacto|r;.. |
|000028e0| 72 66 61 63 74 6f 72 20 | 3d 20 28 28 64 6f 75 62 |rfactor |= ((doub|
|000028f0| 6c 65 29 52 5f 4e 56 41 | 4c 29 20 2f 20 28 28 64 |le)R_NVA|L) / ((d|
|00002900| 6f 75 62 6c 65 29 52 5f | 4e 56 41 4c 2b 31 29 3b |ouble)R_|NVAL+1);|
|00002910| 0a 20 20 20 20 67 66 61 | 63 74 6f 72 20 3d 20 28 |. gfa|ctor = (|
|00002920| 28 64 6f 75 62 6c 65 29 | 47 5f 4e 56 41 4c 29 20 |(double)|G_NVAL) |
|00002930| 2f 20 28 28 64 6f 75 62 | 6c 65 29 47 5f 4e 56 41 |/ ((doub|le)G_NVA|
|00002940| 4c 2b 31 29 3b 0a 20 20 | 20 20 62 66 61 63 74 6f |L+1);. | bfacto|
|00002950| 72 20 3d 20 28 28 64 6f | 75 62 6c 65 29 42 5f 4e |r = ((do|uble)B_N|
|00002960| 56 41 4c 29 20 2f 20 28 | 28 64 6f 75 62 6c 65 29 |VAL) / (|(double)|
|00002970| 42 5f 4e 56 41 4c 2b 31 | 29 3b 0a 0a 20 20 20 20 |B_NVAL+1|);.. |
|00002980| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|00002990| 32 35 36 3b 20 69 2b 2b | 29 20 7b 0a 09 74 72 75 |256; i++|) {..tru|
|000029a0| 65 5f 69 20 3d 20 28 64 | 6f 75 62 6c 65 29 20 69 |e_i = (d|ouble) i|
|000029b0| 3b 0a 0a 09 2f 2a 0a 09 | 20 2a 20 73 63 61 6c 65 |;.../*..| * scale|
|000029c0| 20 63 6f 6c 6f 72 20 74 | 6f 20 66 69 74 20 69 6e | color t|o fit in|
|000029d0| 73 69 64 65 20 6f 66 20 | 72 61 6e 67 65 0a 09 20 |side of |range.. |
|000029e0| 2a 20 63 61 6c 63 75 6c | 61 74 65 20 72 69 67 68 |* calcul|ate righ|
|000029f0| 74 20 62 61 73 65 20 73 | 68 61 64 65 20 62 79 20 |t base s|hade by |
|00002a00| 74 72 69 6d 6d 69 6e 67 | 20 6f 66 66 20 65 72 72 |trimming| off err|
|00002a10| 6f 72 2e 0a 09 20 2a 2f | 0a 09 69 6e 74 65 6e 73 |or... */|..intens|
|00002a20| 69 74 79 20 3d 20 28 75 | 6e 73 69 67 6e 65 64 20 |ity = (u|nsigned |
|00002a30| 69 6e 74 29 28 74 72 75 | 65 5f 69 20 2a 20 72 66 |int)(tru|e_i * rf|
|00002a40| 61 63 74 6f 72 29 3b 0a | 09 72 5f 62 61 73 65 5f |actor);.|.r_base_|
|00002a50| 72 69 67 68 74 5b 69 5d | 20 3d 20 69 6e 74 65 6e |right[i]| = inten|
|00002a60| 73 69 74 79 20 26 20 7e | 52 5f 4d 41 53 4b 3b 0a |sity & ~|R_MASK;.|
|00002a70| 0a 09 69 66 20 28 72 5f | 62 61 73 65 5f 72 69 67 |..if (r_|base_rig|
|00002a80| 68 74 5b 69 5d 20 21 3d | 20 52 5f 54 4f 50 29 20 |ht[i] !=| R_TOP) |
|00002a90| 7b 0a 09 20 20 20 20 72 | 5f 64 76 61 6c 5b 69 5d |{.. r|_dval[i]|
|00002aa0| 20 3d 20 28 69 6e 74 65 | 6e 73 69 74 79 20 26 20 | = (inte|nsity & |
|00002ab0| 52 5f 4d 41 53 4b 29 20 | 3e 3e 20 52 5f 49 53 48 |R_MASK) |>> R_ISH|
|00002ac0| 49 46 54 3b 0a 09 20 20 | 20 20 72 5f 62 61 73 65 |IFT;.. | r_base|
|00002ad0| 5f 6c 65 66 74 5b 69 5d | 20 3d 0a 09 09 28 28 69 |_left[i]| =...((i|
|00002ae0| 6e 74 65 6e 73 69 74 79 | 20 2b 20 52 5f 4e 45 58 |ntensity| + R_NEX|
|00002af0| 54 29 20 26 20 52 5f 54 | 4f 50 29 20 3e 3e 20 28 |T) & R_T|OP) >> (|
|00002b00| 55 4e 55 53 45 44 5f 42 | 49 54 53 2b 47 5f 42 49 |UNUSED_B|ITS+G_BI|
|00002b10| 54 53 2b 42 5f 42 49 54 | 53 29 3b 0a 09 7d 20 65 |TS+B_BIT|S);..} e|
|00002b20| 6c 73 65 0a 09 20 20 20 | 20 72 5f 64 76 61 6c 5b |lse.. | r_dval[|
|00002b30| 69 5d 20 3d 20 30 3b 0a | 0a 09 72 5f 62 61 73 65 |i] = 0;.|..r_base|
|00002b40| 5f 72 69 67 68 74 5b 69 | 5d 20 3e 3e 3d 20 28 55 |_right[i|] >>= (U|
|00002b50| 4e 55 53 45 44 5f 42 49 | 54 53 20 2b 20 47 5f 42 |NUSED_BI|TS + G_B|
|00002b60| 49 54 53 20 2b 20 42 5f | 42 49 54 53 29 3b 0a 0a |ITS + B_|BITS);..|
|00002b70| 09 2f 2a 0a 09 20 2a 20 | 73 63 61 6c 65 20 63 6f |./*.. * |scale co|
|00002b80| 6c 6f 72 20 74 6f 20 66 | 69 74 20 69 6e 73 69 64 |lor to f|it insid|
|00002b90| 65 20 6f 66 20 72 61 6e | 67 65 0a 09 20 2a 20 63 |e of ran|ge.. * c|
|00002ba0| 61 6c 63 75 6c 61 74 65 | 20 72 69 67 68 74 20 62 |alculate| right b|
|00002bb0| 61 73 65 20 73 68 61 64 | 65 20 62 79 20 74 72 69 |ase shad|e by tri|
|00002bc0| 6d 6d 69 6e 67 20 6f 66 | 66 20 65 72 72 6f 72 2e |mming of|f error.|
|00002bd0| 0a 09 20 2a 2f 0a 09 69 | 6e 74 65 6e 73 69 74 79 |.. */..i|ntensity|
|00002be0| 20 3d 20 28 75 6e 73 69 | 67 6e 65 64 20 69 6e 74 | = (unsi|gned int|
|00002bf0| 29 28 74 72 75 65 5f 69 | 20 2a 20 67 66 61 63 74 |)(true_i| * gfact|
|00002c00| 6f 72 29 3b 0a 09 67 5f | 62 61 73 65 5f 72 69 67 |or);..g_|base_rig|
|00002c10| 68 74 5b 69 5d 20 3d 20 | 69 6e 74 65 6e 73 69 74 |ht[i] = |intensit|
|00002c20| 79 20 26 20 7e 47 5f 4d | 41 53 4b 3b 0a 0a 09 69 |y & ~G_M|ASK;...i|
|00002c30| 66 20 28 67 5f 62 61 73 | 65 5f 72 69 67 68 74 5b |f (g_bas|e_right[|
|00002c40| 69 5d 20 21 3d 20 47 5f | 54 4f 50 29 20 7b 0a 09 |i] != G_|TOP) {..|
|00002c50| 20 20 20 20 67 5f 64 76 | 61 6c 5b 69 5d 20 3d 20 | g_dv|al[i] = |
|00002c60| 28 69 6e 74 65 6e 73 69 | 74 79 20 26 20 47 5f 4d |(intensi|ty & G_M|
|00002c70| 41 53 4b 29 20 3e 3e 20 | 47 5f 49 53 48 49 46 54 |ASK) >> |G_ISHIFT|
|00002c80| 3b 0a 09 20 20 20 20 67 | 5f 62 61 73 65 5f 6c 65 |;.. g|_base_le|
|00002c90| 66 74 5b 69 5d 20 3d 0a | 09 09 28 28 69 6e 74 65 |ft[i] =.|..((inte|
|00002ca0| 6e 73 69 74 79 20 2b 20 | 47 5f 4e 45 58 54 29 20 |nsity + |G_NEXT) |
|00002cb0| 26 20 47 5f 54 4f 50 29 | 20 3e 3e 20 28 55 4e 55 |& G_TOP)| >> (UNU|
|00002cc0| 53 45 44 5f 42 49 54 53 | 20 2b 20 42 5f 42 49 54 |SED_BITS| + B_BIT|
|00002cd0| 53 29 3b 0a 09 7d 20 65 | 6c 73 65 0a 09 20 20 20 |S);..} e|lse.. |
|00002ce0| 20 67 5f 64 76 61 6c 5b | 69 5d 20 3d 20 30 3b 0a | g_dval[|i] = 0;.|
|00002cf0| 0a 09 67 5f 62 61 73 65 | 5f 72 69 67 68 74 5b 69 |..g_base|_right[i|
|00002d00| 5d 20 3e 3e 3d 20 28 55 | 4e 55 53 45 44 5f 42 49 |] >>= (U|NUSED_BI|
|00002d10| 54 53 20 2b 20 42 5f 42 | 49 54 53 29 3b 0a 0a 09 |TS + B_B|ITS);...|
|00002d20| 2f 2a 0a 09 20 2a 20 73 | 63 61 6c 65 20 63 6f 6c |/*.. * s|cale col|
|00002d30| 6f 72 20 74 6f 20 66 69 | 74 20 69 6e 73 69 64 65 |or to fi|t inside|
|00002d40| 20 6f 66 20 72 61 6e 67 | 65 0a 09 20 2a 20 63 61 | of rang|e.. * ca|
|00002d50| 6c 63 75 6c 61 74 65 20 | 72 69 67 68 74 20 62 61 |lculate |right ba|
|00002d60| 73 65 20 73 68 61 64 65 | 20 62 79 20 74 72 69 6d |se shade| by trim|
|00002d70| 6d 69 6e 67 20 6f 66 66 | 20 65 72 72 6f 72 2e 0a |ming off| error..|
|00002d80| 09 20 2a 2f 0a 09 69 6e | 74 65 6e 73 69 74 79 20 |. */..in|tensity |
|00002d90| 3d 20 28 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 29 |= (unsig|ned int)|
|00002da0| 28 74 72 75 65 5f 69 20 | 2a 20 62 66 61 63 74 6f |(true_i |* bfacto|
|00002db0| 72 29 3b 0a 09 62 5f 62 | 61 73 65 5f 72 69 67 68 |r);..b_b|ase_righ|
|00002dc0| 74 5b 69 5d 20 3d 20 69 | 6e 74 65 6e 73 69 74 79 |t[i] = i|ntensity|
|00002dd0| 20 26 20 7e 42 5f 4d 41 | 53 4b 3b 0a 0a 09 69 66 | & ~B_MA|SK;...if|
|00002de0| 20 28 62 5f 62 61 73 65 | 5f 72 69 67 68 74 5b 69 | (b_base|_right[i|
|00002df0| 5d 20 21 3d 20 42 5f 54 | 4f 50 29 20 7b 0a 09 20 |] != B_T|OP) {.. |
|00002e00| 20 20 20 62 5f 64 76 61 | 6c 5b 69 5d 20 3d 20 28 | b_dva|l[i] = (|
|00002e10| 69 6e 74 65 6e 73 69 74 | 79 20 26 20 42 5f 4d 41 |intensit|y & B_MA|
|00002e20| 53 4b 29 20 3e 3e 20 42 | 5f 49 53 48 49 46 54 3b |SK) >> B|_ISHIFT;|
|00002e30| 0a 09 20 20 20 20 62 5f | 62 61 73 65 5f 6c 65 66 |.. b_|base_lef|
|00002e40| 74 5b 69 5d 20 3d 0a 09 | 09 28 28 69 6e 74 65 6e |t[i] =..|.((inten|
|00002e50| 73 69 74 79 20 2b 20 42 | 5f 4e 45 58 54 29 20 26 |sity + B|_NEXT) &|
|00002e60| 20 42 5f 54 4f 50 29 20 | 3e 3e 20 55 4e 55 53 45 | B_TOP) |>> UNUSE|
|00002e70| 44 5f 42 49 54 53 3b 0a | 09 7d 20 65 6c 73 65 0a |D_BITS;.|.} else.|
|00002e80| 09 20 20 20 20 62 5f 64 | 76 61 6c 5b 69 5d 20 3d |. b_d|val[i] =|
|00002e90| 20 30 3b 0a 0a 09 62 5f | 62 61 73 65 5f 72 69 67 | 0;...b_|base_rig|
|00002ea0| 68 74 5b 69 5d 20 3e 3e | 3d 20 55 4e 55 53 45 44 |ht[i] >>|= UNUSED|
|00002eb0| 5f 42 49 54 53 3b 0a 20 | 20 20 20 7d 0a 7d 0a 53 |_BITS;. | }.}.S|
|00002ec0| 48 41 52 5f 45 4f 46 0a | 66 69 0a 69 66 20 74 65 |HAR_EOF.|fi.if te|
|00002ed0| 73 74 20 2d 66 20 27 4d | 61 6b 65 66 69 6c 65 27 |st -f 'M|akefile'|
|00002ee0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00002ef0| 3a 20 22 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |: "will |not over|
|00002f00| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00002f10| 66 69 6c 65 20 27 4d 61 | 6b 65 66 69 6c 65 27 22 |file 'Ma|kefile'"|
|00002f20| 0a 65 6c 73 65 0a 63 61 | 74 20 3c 3c 20 5c 53 48 |.else.ca|t << \SH|
|00002f30| 41 52 5f 45 4f 46 20 3e | 20 27 4d 61 6b 65 66 69 |AR_EOF >| 'Makefi|
|00002f40| 6c 65 27 0a 23 0a 23 09 | 4d 61 6b 65 66 69 6c 65 |le'.#.#.|Makefile|
|00002f50| 20 66 6f 72 20 74 63 64 | 20 28 54 61 70 65 20 63 | for tcd| (Tape c|
|00002f60| 6f 6c 6f 72 20 64 69 74 | 68 65 72 29 0a 23 0a 43 |olor dit|her).#.C|
|00002f70| 43 09 3d 20 2f 62 69 6e | 2f 63 63 0a 43 46 4c 41 |C.= /bin|/cc.CFLA|
|00002f80| 47 53 09 3d 20 2d 4f 0a | 0a 74 63 64 3a 20 74 63 |GS.= -O.|.tcd: tc|
|00002f90| 64 2e 63 0a 09 24 28 43 | 43 29 20 24 28 43 46 4c |d.c..$(C|C) $(CFL|
|00002fa0| 41 47 53 29 20 2d 6f 20 | 24 40 20 74 63 64 2e 63 |AGS) -o |$@ tcd.c|
|00002fb0| 20 2d 6c 70 69 78 72 65 | 63 74 0a 0a 63 6c 65 61 | -lpixre|ct..clea|
|00002fc0| 6e 3a 0a 09 72 6d 20 2d | 66 20 74 63 64 2e 6f 0a |n:..rm -|f tcd.o.|
|00002fd0| 53 48 41 52 5f 45 4f 46 | 0a 66 69 0a 65 78 69 74 |SHAR_EOF|.fi.exit|
|00002fe0| 20 30 0a 23 09 45 6e 64 | 20 6f 66 20 73 68 65 6c | 0.#.End| of shel|
|00002ff0| 6c 20 61 72 63 68 69 76 | 65 0a 0a |l archiv|e.. |
+--------+-------------------------+-------------------------+--------+--------+