\hypertarget{unihex2bmp_8c_source}{}\doxysection{unihex2bmp.\+c}
\label{unihex2bmp_8c_source}\index{src/unihex2bmp.c@{src/unihex2bmp.c}}
\mbox{\hyperlink{unihex2bmp_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00001}00001 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00002}00002 \textcolor{comment}{   @file unihex2bmp.c}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00003}00003 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00004}00004 \textcolor{comment}{   @brief unihex2bmp -\/ Turn a GNU Unifont hex glyph page of 256 code points}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00005}00005 \textcolor{comment}{                       into a bitmap for editing}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00006}00006 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00007}00007 \textcolor{comment}{   @author Paul Hardy, unifoundry <at> unifoundry.com, December 2007}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00008}00008 \textcolor{comment}{   }}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00009}00009 \textcolor{comment}{   @copyright Copyright (C) 2007, 2008, 2013, 2017 Paul Hardy}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00010}00010 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00011}00011 \textcolor{comment}{   This program reads in a GNU Unifont .hex file, extracts a range of}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00012}00012 \textcolor{comment}{   256 code points, and converts it a Microsoft Bitmap (.bmp) or Wireless}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00013}00013 \textcolor{comment}{   Bitmap file.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00014}00014 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00015}00015 \textcolor{comment}{   Synopsis: unihex2bmp [-\/iin\_file.hex] [-\/oout\_file.bmp]}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00016}00016 \textcolor{comment}{                [-\/f] [-\/phex\_page\_num] [-\/w]}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00017}00017 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00018}00018 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00019}00019 \textcolor{comment}{   LICENSE:}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00020}00020 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00021}00021 \textcolor{comment}{      This program is free software: you can redistribute it and/or modify}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00022}00022 \textcolor{comment}{      it under the terms of the GNU General Public License as published by}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00023}00023 \textcolor{comment}{      the Free Software Foundation, either version 2 of the License, or}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00024}00024 \textcolor{comment}{      (at your option) any later version.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00025}00025 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00026}00026 \textcolor{comment}{      This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00027}00027 \textcolor{comment}{      but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00028}00028 \textcolor{comment}{      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00029}00029 \textcolor{comment}{      GNU General Public License for more details.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00030}00030 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00031}00031 \textcolor{comment}{      You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00032}00032 \textcolor{comment}{      along with this program.  If not, see <http://www.gnu.org/licenses/>.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00033}00033 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00035}00035 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00036}00036 \textcolor{comment}{   20 June 2017 [Paul Hardy]:}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00037}00037 \textcolor{comment}{   -\/ Adds capability to output triple-\/width and quadruple-\/width (31 pixels}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00038}00038 \textcolor{comment}{     wide, not 32) glyphs.  The 32nd column in a glyph cell is occupied by}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00039}00039 \textcolor{comment}{     the vertical cell border, so a quadruple-\/width glyph can only occupy}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00040}00040 \textcolor{comment}{     the first 31 columns; the 32nd column is ignored.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00041}00041 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00042}00042 \textcolor{comment}{   21 October 2023 [Paul Hardy]:}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00043}00043 \textcolor{comment}{   -\/ Added full prototypes in main function for init and hex2bit functions.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00044}00044 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <stdio.h>}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <string.h>}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00050}00050 \textcolor{preprocessor}{\#define MAXBUF 256}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00051}00051 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00052}00052 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00053}00053 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00054}00054 \textcolor{comment}{   @brief GNU Unifont bitmaps for hexadecimal digits.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00055}00055 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00056}00056 \textcolor{comment}{   These are the GNU Unifont hex strings for '0'-\/'9' and 'A'-\/'F',}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00057}00057 \textcolor{comment}{   for encoding as bit strings in row and column headers.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00058}00058 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00059}00059 \textcolor{comment}{   Looking at the final bitmap as a grid of 32*32 bit tiles, the}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00060}00060 \textcolor{comment}{   first row contains a hexadecimal character string of the first}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00061}00061 \textcolor{comment}{   3 hex digits in a 4 digit Unicode character name; the top column}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00062}00062 \textcolor{comment}{   contains a hex character string of the 4th (low-\/order) hex digit}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00063}00063 \textcolor{comment}{   of the Unicode character.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00064}00064 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00065}\mbox{\hyperlink{unihex2bmp_8c_aeb8bd6e54b538e3e803e1e431c21fcf7}{00065}} \textcolor{keywordtype}{char} *\mbox{\hyperlink{unihex2bmp_8c_aeb8bd6e54b538e3e803e1e431c21fcf7}{hex}}[18]= \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00066}00066       \textcolor{stringliteral}{"{}0030:00000000182442424242424224180000"{}},  \textcolor{comment}{/* Hex digit 0 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00067}00067       \textcolor{stringliteral}{"{}0031:000000000818280808080808083E0000"{}},  \textcolor{comment}{/* Hex digit 1 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00068}00068       \textcolor{stringliteral}{"{}0032:000000003C4242020C102040407E0000"{}},  \textcolor{comment}{/* Hex digit 2 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00069}00069       \textcolor{stringliteral}{"{}0033:000000003C4242021C020242423C0000"{}},  \textcolor{comment}{/* Hex digit 3 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00070}00070       \textcolor{stringliteral}{"{}0034:00000000040C142444447E0404040000"{}},  \textcolor{comment}{/* Hex digit 4 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00071}00071       \textcolor{stringliteral}{"{}0035:000000007E4040407C020202423C0000"{}},  \textcolor{comment}{/* Hex digit 5 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00072}00072       \textcolor{stringliteral}{"{}0036:000000001C2040407C424242423C0000"{}},  \textcolor{comment}{/* Hex digit 6 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00073}00073       \textcolor{stringliteral}{"{}0037:000000007E0202040404080808080000"{}},  \textcolor{comment}{/* Hex digit 7 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00074}00074       \textcolor{stringliteral}{"{}0038:000000003C4242423C424242423C0000"{}},  \textcolor{comment}{/* Hex digit 8 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00075}00075       \textcolor{stringliteral}{"{}0039:000000003C4242423E02020204380000"{}},  \textcolor{comment}{/* Hex digit 9 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00076}00076       \textcolor{stringliteral}{"{}0041:0000000018242442427E424242420000"{}},  \textcolor{comment}{/* Hex digit A */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00077}00077       \textcolor{stringliteral}{"{}0042:000000007C4242427C424242427C0000"{}},  \textcolor{comment}{/* Hex digit B */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00078}00078       \textcolor{stringliteral}{"{}0043:000000003C42424040404042423C0000"{}},  \textcolor{comment}{/* Hex digit C */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00079}00079       \textcolor{stringliteral}{"{}0044:00000000784442424242424244780000"{}},  \textcolor{comment}{/* Hex digit D */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00080}00080       \textcolor{stringliteral}{"{}0045:000000007E4040407C404040407E0000"{}},  \textcolor{comment}{/* Hex digit E */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00081}00081       \textcolor{stringliteral}{"{}0046:000000007E4040407C40404040400000"{}},  \textcolor{comment}{/* Hex digit F */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00082}00082       \textcolor{stringliteral}{"{}0055:000000004242424242424242423C0000"{}},  \textcolor{comment}{/* Unicode 'U' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00083}00083       \textcolor{stringliteral}{"{}002B:0000000000000808087F080808000000"{}}   \textcolor{comment}{/* Unicode '+' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00084}00084    \};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00085}\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{00085}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[18][32]; \textcolor{comment}{///< The digits converted into bitmaps.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00087}\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{00087}} \textcolor{keywordtype}{unsigned} \mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}}=0;   \textcolor{comment}{///< Unicode page number, 0x00..0xff.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00088}\mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{00088}} \textcolor{keywordtype}{int} \mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}}=1;           \textcolor{comment}{///< Transpose entire matrix as in Unicode book.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00090}00090 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00091}00091 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00092}00092 \textcolor{comment}{   @brief The main function.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00093}00093 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00094}00094 \textcolor{comment}{   @param[in] argc The count of command line arguments.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00095}00095 \textcolor{comment}{   @param[in] argv Pointer to array of command line arguments.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00096}00096 \textcolor{comment}{   @return This program exits with status 0.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00097}00097 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00098}00098 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00099}\mbox{\hyperlink{unihex2bmp_8c_a0ddf1224851353fc92bfbff6f499fa97}{00099}} \mbox{\hyperlink{unihex2bmp_8c_a0ddf1224851353fc92bfbff6f499fa97}{main}} (\textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} *argv[])}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00100}00100 \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00102}00102    \textcolor{keywordtype}{int} i, j;                  \textcolor{comment}{/* loop variables                    */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00103}00103    \textcolor{keywordtype}{unsigned} k0;               \textcolor{comment}{/* temp Unicode char variable        */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00104}00104    \textcolor{keywordtype}{unsigned} swap;             \textcolor{comment}{/* temp variable for swapping values */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00105}00105    \textcolor{keywordtype}{char} inbuf[256];           \textcolor{comment}{/* input buffer                      */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00106}00106    \textcolor{keywordtype}{unsigned} filesize;         \textcolor{comment}{/* size of file in bytes             */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00107}00107    \textcolor{keywordtype}{unsigned} bitmapsize;       \textcolor{comment}{/* size of bitmap image in bytes     */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00108}00108    \textcolor{keywordtype}{unsigned} thischar;         \textcolor{comment}{/* the current character             */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00109}00109    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} thischarbyte; \textcolor{comment}{/* unsigned char lowest byte of Unicode char */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00110}00110    \textcolor{keywordtype}{int} thischarrow;           \textcolor{comment}{/* row 0..15 where this character belongs  */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00111}00111    \textcolor{keywordtype}{int} thiscol;               \textcolor{comment}{/* column 0..15 where this character belongs */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00112}00112    \textcolor{keywordtype}{int} toppixelrow;           \textcolor{comment}{/* pixel row, 0..16*32-\/1               */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00113}00113    \textcolor{keywordtype}{unsigned} lastpage=0;       \textcolor{comment}{/* the last Unicode page read in font file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00114}00114    \textcolor{keywordtype}{int} wbmp=0;                \textcolor{comment}{/* set to 1 if writing .wbmp format file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00116}00116    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} bitmap[17*32][18*4]; \textcolor{comment}{/* final bitmap */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00117}00117    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} charbits[32][4];  \textcolor{comment}{/* bitmap for one character, 4 bytes/row */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00119}00119    \textcolor{keywordtype}{char} *infile=\textcolor{stringliteral}{"{}"{}}, *outfile=\textcolor{stringliteral}{"{}"{}};  \textcolor{comment}{/* names of input and output files */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00120}00120    FILE *infp, *outfp;      \textcolor{comment}{/* file pointers of input and output files */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00122}00122    \textcolor{comment}{/* initializes bitmap row/col labeling, \&c. */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00123}00123    \textcolor{keywordtype}{int} \mbox{\hyperlink{unihex2bmp_8c_a0ae74e74805cbaa4bf60ff3c8df15512}{init}} (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} bitmap[17*32][18*4]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00124}00124 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00125}00125    \textcolor{comment}{/* convert hex string -\/-\/> bitmap */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00126}00126    \textcolor{keywordtype}{int} \mbox{\hyperlink{unihex2bmp_8c_a62ecfabc9a441d36b570aae42755b232}{hex2bit}} (\textcolor{keywordtype}{char} *instring, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} character[32][4]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00128}00128    bitmapsize = 17*32*18*4;  \textcolor{comment}{/* 17 rows by 18 cols, each 4 bytes */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00130}00130    \textcolor{keywordflow}{if} (argc > 1) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00131}00131       \textcolor{keywordflow}{for} (i = 1; i < argc; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00132}00132          \textcolor{keywordflow}{if} (argv[i][0] == \textcolor{charliteral}{'-\/'}) \{  \textcolor{comment}{/* this is an option argument */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00133}00133             \textcolor{keywordflow}{switch} (argv[i][1]) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00134}00134                \textcolor{keywordflow}{case} \textcolor{charliteral}{'f'}:  \textcolor{comment}{/* flip (transpose) glyphs in bitmap as in standard */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00135}00135                   \mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}} = !\mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00136}00136                   \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00137}00137                \textcolor{keywordflow}{case} \textcolor{charliteral}{'i'}:  \textcolor{comment}{/* name of input file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00138}00138                   infile = \&argv[i][2];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00139}00139                   \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00140}00140                \textcolor{keywordflow}{case} \textcolor{charliteral}{'o'}:  \textcolor{comment}{/* name of output file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00141}00141                   outfile = \&argv[i][2];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00142}00142                   \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00143}00143                \textcolor{keywordflow}{case} \textcolor{charliteral}{'p'}:  \textcolor{comment}{/* specify a Unicode page other than default of 0 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00144}00144                   sscanf (\&argv[i][2], \textcolor{stringliteral}{"{}\%x"{}}, \&\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}}); \textcolor{comment}{/* Get Unicode page */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00145}00145                   \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00146}00146                \textcolor{keywordflow}{case} \textcolor{charliteral}{'w'}:  \textcolor{comment}{/* write a .wbmp file instead of a .bmp file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00147}00147                   wbmp = 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00148}00148                   \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00149}00149                \textcolor{keywordflow}{default}:   \textcolor{comment}{/* if unrecognized option, print list and exit */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00150}00150                   fprintf (stderr, \textcolor{stringliteral}{"{}\(\backslash\)nSyntax:\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00151}00151                   fprintf (stderr, \textcolor{stringliteral}{"{}   \%s -\/p<Unicode\_Page> "{}}, argv[0]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00152}00152                   fprintf (stderr, \textcolor{stringliteral}{"{}-\/i<Input\_File> -\/o<Output\_File> -\/w\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00153}00153                   fprintf (stderr, \textcolor{stringliteral}{"{}   -\/w specifies .wbmp output instead of "{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00154}00154                   fprintf (stderr, \textcolor{stringliteral}{"{}default Windows .bmp output.\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00155}00155                   fprintf (stderr, \textcolor{stringliteral}{"{}   -\/p is followed by 1 to 6 "{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00156}00156                   fprintf (stderr, \textcolor{stringliteral}{"{}Unicode page hex digits "{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00157}00157                   fprintf (stderr, \textcolor{stringliteral}{"{}(default is Page 0).\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00158}00158                   fprintf (stderr, \textcolor{stringliteral}{"{}\(\backslash\)nExample:\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00159}00159                   fprintf (stderr, \textcolor{stringliteral}{"{}   \%s -\/p83 -\/iunifont.hex -\/ou83.bmp\(\backslash\)n\(\backslash\)n\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00160}00160                          argv[0]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00161}00161                   exit (1);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00162}00162             \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00163}00163          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00164}00164       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00165}00165    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00166}00166    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00167}00167 \textcolor{comment}{      Make sure we can open any I/O files that were specified before}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00168}00168 \textcolor{comment}{      doing anything else.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00169}00169 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00170}00170    \textcolor{keywordflow}{if} (strlen (infile) > 0) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00171}00171       \textcolor{keywordflow}{if} ((infp = fopen (infile, \textcolor{stringliteral}{"{}r"{}})) == NULL) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00172}00172          fprintf (stderr, \textcolor{stringliteral}{"{}Error: can't open \%s for input.\(\backslash\)n"{}}, infile);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00173}00173          exit (1);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00174}00174       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00175}00175    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00176}00176    \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00177}00177       infp = stdin;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00178}00178    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00179}00179    \textcolor{keywordflow}{if} (strlen (outfile) > 0) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00180}00180       \textcolor{keywordflow}{if} ((outfp = fopen (outfile, \textcolor{stringliteral}{"{}w"{}})) == NULL) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00181}00181          fprintf (stderr, \textcolor{stringliteral}{"{}Error: can't open \%s for output.\(\backslash\)n"{}}, outfile);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00182}00182          exit (1);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00183}00183       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00184}00184    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00185}00185    \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00186}00186       outfp = stdout;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00187}00187    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00189}00189    (void)\mbox{\hyperlink{unihex2bmp_8c_a0ae74e74805cbaa4bf60ff3c8df15512}{init}}(bitmap); \textcolor{comment}{/* initialize bitmap with row/column headers, etc. */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00191}00191    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00192}00192 \textcolor{comment}{      Read in the characters in the page}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00193}00193 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00194}00194    \textcolor{keywordflow}{while} (lastpage <= \mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} \&\& fgets (inbuf, \mbox{\hyperlink{unibdf2hex_8c_ad7871643c05865c80f5d8050aead2b57}{MAXBUF}}-\/1, infp) != NULL) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00195}00195       sscanf (inbuf, \textcolor{stringliteral}{"{}\%x"{}}, \&thischar);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00196}00196       lastpage = thischar >> 8; \textcolor{comment}{/* keep Unicode page to see if we can stop */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00197}00197       \textcolor{keywordflow}{if} (lastpage == \mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}}) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00198}00198          thischarbyte = (\textcolor{keywordtype}{unsigned} char)(thischar \& 0xff);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00199}00199          \textcolor{keywordflow}{for} (k0=0; inbuf[k0] != \textcolor{charliteral}{':'}; k0++);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00200}00200          k0++;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00201}00201          \mbox{\hyperlink{unihex2bmp_8c_a62ecfabc9a441d36b570aae42755b232}{hex2bit}} (\&inbuf[k0], charbits);  \textcolor{comment}{/* convert hex string to 32*4 bitmap */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00202}00202 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00203}00203          \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00204}00204 \textcolor{comment}{            Now write character bitmap upside-\/down in page array, to match}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00205}00205 \textcolor{comment}{            .bmp file order.  In the .wbmp` and .bmp files, white is a '1'}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00206}00206 \textcolor{comment}{            bit and black is a '0' bit, so complement charbits[][].}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00207}00207 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00208}00208 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00209}00209          thiscol = (thischarbyte \& 0xf) + 2;  \textcolor{comment}{/* column number will be 1..16  */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00210}00210          thischarrow = thischarbyte >> 4;     \textcolor{comment}{/* charcter row number, 0..15   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00211}00211          \textcolor{keywordflow}{if} (\mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}}) \{  \textcolor{comment}{/* swap row and column placement */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00212}00212             swap = thiscol;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00213}00213             thiscol = thischarrow;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00214}00214             thischarrow = swap;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00215}00215             thiscol += 2;       \textcolor{comment}{/* column index starts at 1 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00216}00216             thischarrow -\/= 2;   \textcolor{comment}{/* row index starts at 0    */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00217}00217          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00218}00218          toppixelrow = 32 * (thischarrow + 1) -\/ 1; \textcolor{comment}{/* from bottom to top    */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00219}00219    }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00220}00220          \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00221}00221 \textcolor{comment}{            Copy the center of charbits[][] because hex characters only}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00222}00222 \textcolor{comment}{            occupy rows 8 to 23 and column byte 2 (and for 16 bit wide}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00223}00223 \textcolor{comment}{            characters, byte 3).  The charbits[][] array was given 32 rows}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00224}00224 \textcolor{comment}{            and 4 column bytes for completeness in the beginning.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00225}00225 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00226}00226          \textcolor{keywordflow}{for} (i=8; i<24; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00227}00227             bitmap[toppixelrow + i][(thiscol << 2) | 0] =}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00228}00228                \string~charbits[i][0] \& 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00229}00229             bitmap[toppixelrow + i][(thiscol << 2) | 1] =}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00230}00230                \string~charbits[i][1] \& 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00231}00231             bitmap[toppixelrow + i][(thiscol << 2) | 2] =}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00232}00232                \string~charbits[i][2] \& 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00233}00233             \textcolor{comment}{/* Only use first 31 bits; leave vertical rule in 32nd column */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00234}00234             bitmap[toppixelrow + i][(thiscol << 2) | 3] =}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00235}00235                \string~charbits[i][3] \& 0xfe;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00236}00236          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00237}00237          \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00238}00238 \textcolor{comment}{            Leave white space in 32nd column of rows 8, 14, 15, and 23}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00239}00239 \textcolor{comment}{            to leave 16 pixel height upper, middle, and lower guides.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00240}00240 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00241}00241          bitmap[toppixelrow +  8][(thiscol << 2) | 3] |= 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00242}00242          bitmap[toppixelrow + 14][(thiscol << 2) | 3] |= 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00243}00243          bitmap[toppixelrow + 15][(thiscol << 2) | 3] |= 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00244}00244          bitmap[toppixelrow + 23][(thiscol << 2) | 3] |= 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00245}00245       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00246}00246    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00247}00247    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00248}00248 \textcolor{comment}{      Now write the appropriate bitmap file format, either}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00249}00249 \textcolor{comment}{      Wireless Bitmap or Microsoft Windows bitmap.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00250}00250 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00251}00251    \textcolor{keywordflow}{if} (wbmp) \{  \textcolor{comment}{/* Write a Wireless Bitmap .wbmp format file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00252}00252       \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00253}00253 \textcolor{comment}{         Write WBMP header}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00254}00254 \textcolor{comment}{      */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00255}00255       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, 0x00); \textcolor{comment}{/* Type of image; always 0 (monochrome) */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00256}00256       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, 0x00); \textcolor{comment}{/* Reserved; always 0                   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00257}00257       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c"{}}, 0x84, 0x40); \textcolor{comment}{/* Width  = 576 pixels          */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00258}00258       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c"{}}, 0x84, 0x20); \textcolor{comment}{/* Height = 544 pixels          */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00259}00259       \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00260}00260 \textcolor{comment}{         Write bitmap image}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00261}00261 \textcolor{comment}{      */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00262}00262       \textcolor{keywordflow}{for} (toppixelrow=0; toppixelrow <= 17*32-\/1; toppixelrow++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00263}00263          \textcolor{keywordflow}{for} (j=0; j<18; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00264}00264             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2)    ]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00265}00265             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 1]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00266}00266             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 2]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00267}00267             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 3]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00268}00268          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00269}00269       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00270}00270    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00271}00271    \textcolor{keywordflow}{else} \{  \textcolor{comment}{/* otherwise, write a Microsoft Windows .bmp format file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00272}00272       \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00273}00273 \textcolor{comment}{         Write the .bmp file -\/-\/ start with the header, then write the bitmap}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00274}00274 \textcolor{comment}{      */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00275}00275 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00276}00276       \textcolor{comment}{/* 'B', 'M' appears at start of every .bmp file */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00277}00277       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c"{}}, 0x42, 0x4d);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00278}00278 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00279}00279       \textcolor{comment}{/* Write file size in bytes */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00280}00280       filesize   = 0x3E + bitmapsize;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00281}00281       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((filesize        ) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00282}00282       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((filesize >> 0x08) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00283}00283       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((filesize >> 0x10) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00284}00284       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((filesize >> 0x18) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00286}00286       \textcolor{comment}{/* Reserved -\/ 0's */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00287}00287       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x00, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00289}00289       \textcolor{comment}{/* Offset from start of file to bitmap data */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00290}00290       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x3E, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00292}00292       \textcolor{comment}{/* Length of bitmap info header */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00293}00293       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x28, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00294}00294 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00295}00295       \textcolor{comment}{/* Width of bitmap in pixels */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00296}00296       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x40, 0x02, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00297}00297 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00298}00298       \textcolor{comment}{/* Height of bitmap in pixels */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00299}00299       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x20, 0x02, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00300}00300 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00301}00301       \textcolor{comment}{/* Planes in bitmap (fixed at 1) */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00302}00302       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c"{}}, 0x01, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00303}00303 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00304}00304       \textcolor{comment}{/* bits per pixel (1 = monochrome) */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00305}00305       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c"{}}, 0x01, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00306}00306 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00307}00307       \textcolor{comment}{/* Compression (0 = none) */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00308}00308       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x00, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00309}00309 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00310}00310       \textcolor{comment}{/* Size of bitmap data in bytes */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00311}00311       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((bitmapsize        ) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00312}00312       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((bitmapsize >> 0x08) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00313}00313       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((bitmapsize >> 0x10) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00314}00314       fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char})((bitmapsize >> 0x18) \& 0xff));}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00316}00316       \textcolor{comment}{/* Horizontal resolution in pixels per meter */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00317}00317       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0xC4, 0x0E, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00318}00318 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00319}00319       \textcolor{comment}{/* Vertical resolution in pixels per meter */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00320}00320       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0xC4, 0x0E, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00321}00321 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00322}00322       \textcolor{comment}{/* Number of colors used */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00323}00323       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x02, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00324}00324 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00325}00325       \textcolor{comment}{/* Number of important colors */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00326}00326       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x02, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00327}00327 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00328}00328       \textcolor{comment}{/* The color black: B=0x00, G=0x00, R=0x00, Filler=0xFF */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00329}00329       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0x00, 0x00, 0x00, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00330}00330 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00331}00331       \textcolor{comment}{/* The color white: B=0xFF, G=0xFF, R=0xFF, Filler=0xFF */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00332}00332       fprintf (outfp, \textcolor{stringliteral}{"{}\%c\%c\%c\%c"{}}, 0xFF, 0xFF, 0xFF, 0x00);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00333}00333 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00334}00334       \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00335}00335 \textcolor{comment}{         Now write the raw data bits.  Data is written from the lower}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00336}00336 \textcolor{comment}{         left-\/hand corner of the image to the upper right-\/hand corner}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00337}00337 \textcolor{comment}{         of the image.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00338}00338 \textcolor{comment}{      */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00339}00339       \textcolor{keywordflow}{for} (toppixelrow=17*32-\/1; toppixelrow >= 0; toppixelrow-\/-\/) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00340}00340          \textcolor{keywordflow}{for} (j=0; j<18; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00341}00341             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2)    ]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00342}00342             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 1]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00343}00343             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 2]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00344}00344 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00345}00345             fprintf (outfp, \textcolor{stringliteral}{"{}\%c"{}}, bitmap[toppixelrow][(j<<2) | 3]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00346}00346          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00347}00347       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00348}00348    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00349}00349    exit (0);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00350}00350 \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00351}00351 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00352}00352 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00353}00353 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00354}00354 \textcolor{comment}{   @brief Generate a bitmap for one glyph.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00355}00355 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00356}00356 \textcolor{comment}{   Convert the portion of a hex string after the ':' into a character bitmap.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00357}00357 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00358}00358 \textcolor{comment}{   If string is >= 128 characters, it will fill all 4 bytes per row.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00359}00359 \textcolor{comment}{   If string is >= 64 characters and < 128, it will fill 2 bytes per row.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00360}00360 \textcolor{comment}{   Otherwise, it will fill 1 byte per row.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00361}00361 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00362}00362 \textcolor{comment}{   @param[in] instring The character array containing the glyph bitmap.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00363}00363 \textcolor{comment}{   @param[out] character Glyph bitmap, 8, 16, or 32 columns by 16 rows tall.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00364}00364 \textcolor{comment}{   @return Always returns 0.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00365}00365 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00366}00366 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00367}\mbox{\hyperlink{unihex2bmp_8c_a62ecfabc9a441d36b570aae42755b232}{00367}} \mbox{\hyperlink{unihex2bmp_8c_a62ecfabc9a441d36b570aae42755b232}{hex2bit}} (\textcolor{keywordtype}{char} *instring, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} character[32][4])}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00368}00368 \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00369}00369 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00370}00370    \textcolor{keywordtype}{int} i;  \textcolor{comment}{/* current row in bitmap character */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00371}00371    \textcolor{keywordtype}{int} j;  \textcolor{comment}{/* current character in input string */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00372}00372    \textcolor{keywordtype}{int} k;  \textcolor{comment}{/* current byte in bitmap character */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00373}00373    \textcolor{keywordtype}{int} width;  \textcolor{comment}{/* number of output bytes to fill -\/ 1: 0, 1, 2, or 3 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00374}00374 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00375}00375    \textcolor{keywordflow}{for} (i=0; i<32; i++)  \textcolor{comment}{/* erase previous character */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00376}00376       character[i][0] = character[i][1] = character[i][2] = character[i][3] = 0; }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00377}00377    j=0;  \textcolor{comment}{/* current location is at beginning of instring */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00378}00378 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00379}00379    \textcolor{keywordflow}{if} (strlen (instring) <= 34)  \textcolor{comment}{/* 32 + possible '\(\backslash\)r', '\(\backslash\)n' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00380}00380       width = 0;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00381}00381    \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strlen (instring) <= 66)  \textcolor{comment}{/* 64 + possible '\(\backslash\)r', '\(\backslash\)n' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00382}00382       width = 1;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00383}00383    \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strlen (instring) <= 98)  \textcolor{comment}{/* 96 + possible '\(\backslash\)r', '\(\backslash\)n' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00384}00384       width = 3;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00385}00385    \textcolor{keywordflow}{else}  \textcolor{comment}{/* the maximum allowed is quadruple-\/width */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00386}00386       width = 4;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00387}00387 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00388}00388    k = (width > 1) ? 0 : 1; \textcolor{comment}{/* if width > double, start at index 1 else at 0 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00389}00389 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00390}00390    \textcolor{keywordflow}{for} (i=8; i<24; i++) \{  \textcolor{comment}{/* 16 rows per input character, rows 8..23 */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00391}00391       sscanf (\&instring[j], \textcolor{stringliteral}{"{}\%2hhx"{}}, \&character[i][k]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00392}00392       j += 2;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00393}00393       \textcolor{keywordflow}{if} (width > 0) \{ \textcolor{comment}{/* add next pair of hex digits to this row */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00394}00394          sscanf (\&instring[j], \textcolor{stringliteral}{"{}\%2hhx"{}}, \&character[i][k+1]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00395}00395          j += 2;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00396}00396          \textcolor{keywordflow}{if} (width > 1) \{ \textcolor{comment}{/* add next pair of hex digits to this row */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00397}00397             sscanf (\&instring[j], \textcolor{stringliteral}{"{}\%2hhx"{}}, \&character[i][k+2]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00398}00398             j += 2;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00399}00399             \textcolor{keywordflow}{if} (width > 2) \{  \textcolor{comment}{/* quadruple-\/width is maximum width */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00400}00400                sscanf (\&instring[j], \textcolor{stringliteral}{"{}\%2hhx"{}}, \&character[i][k+3]);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00401}00401                j += 2;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00402}00402             \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00403}00403          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00404}00404       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00405}00405    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00406}00406 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00407}00407    \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00408}00408 \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00409}00409 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00410}00410 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00411}00411 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00412}00412 \textcolor{comment}{   @brief Initialize the bitmap grid.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00413}00413 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00414}00414 \textcolor{comment}{   @param[out] bitmap The bitmap to generate, with 32x32 pixel glyph areas.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00415}00415 \textcolor{comment}{   @return Always returns 0.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00416}00416 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00417}00417 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00418}\mbox{\hyperlink{unihex2bmp_8c_a0ae74e74805cbaa4bf60ff3c8df15512}{00418}} \mbox{\hyperlink{unihex2bmp_8c_a0ae74e74805cbaa4bf60ff3c8df15512}{init}} (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} bitmap[17*32][18*4])}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00419}00419 \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00420}00420    \textcolor{keywordtype}{int} i, j;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00421}00421    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} charbits[32][4];  \textcolor{comment}{/* bitmap for one character, 4 bytes/row */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00422}00422    \textcolor{keywordtype}{unsigned} toppixelrow;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00423}00423    \textcolor{keywordtype}{unsigned} thiscol;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00424}00424    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} pnybble0, pnybble1, pnybble2, pnybble3;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00425}00425 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00426}00426    \textcolor{keywordflow}{for} (i=0; i<18; i++) \{ \textcolor{comment}{/* bitmaps for '0'..'9', 'A'-\/'F', 'u', '+' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00427}00427 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00428}00428       \mbox{\hyperlink{unihex2bmp_8c_a62ecfabc9a441d36b570aae42755b232}{hex2bit}} (\&\mbox{\hyperlink{unihex2bmp_8c_aeb8bd6e54b538e3e803e1e431c21fcf7}{hex}}[i][5], charbits);  \textcolor{comment}{/* convert hex string to 32*4 bitmap */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00429}00429 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00430}00430       \textcolor{keywordflow}{for} (j=0; j<32; j++) \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j] = \string~charbits[j][1];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00431}00431    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00432}00432 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00433}00433    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00434}00434 \textcolor{comment}{      Initialize bitmap to all white.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00435}00435 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00436}00436    \textcolor{keywordflow}{for} (toppixelrow=0; toppixelrow < 17*32; toppixelrow++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00437}00437       \textcolor{keywordflow}{for} (thiscol=0; thiscol<18; thiscol++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00438}00438          bitmap[toppixelrow][(thiscol << 2)    ] = 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00439}00439          bitmap[toppixelrow][(thiscol << 2) | 1] = 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00440}00440          bitmap[toppixelrow][(thiscol << 2) | 2] = 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00441}00441          bitmap[toppixelrow][(thiscol << 2) | 3] = 0xff;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00442}00442       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00443}00443    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00444}00444    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00445}00445 \textcolor{comment}{      Write the "{}u+nnnn"{} table header in the upper left-\/hand corner,}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00446}00446 \textcolor{comment}{      where nnnn is the upper 16 bits of a 32-\/bit Unicode assignment.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00447}00447 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00448}00448    pnybble3 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} >> 20);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00449}00449    pnybble2 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} >> 16) \& 0xf;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00450}00450    pnybble1 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} >> 12) \& 0xf;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00451}00451    pnybble0 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} >>  8) \& 0xf;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00452}00452    \textcolor{keywordflow}{for} (i=0; i<32; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00453}00453       bitmap[i][1] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[16][i];  \textcolor{comment}{/* copy 'u' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00454}00454       bitmap[i][2] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[17][i];  \textcolor{comment}{/* copy '+' */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00455}00455       bitmap[i][3] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble3][i];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00456}00456       bitmap[i][4] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble2][i];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00457}00457       bitmap[i][5] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble1][i];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00458}00458       bitmap[i][6] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble0][i];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00459}00459    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00460}00460    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00461}00461 \textcolor{comment}{      Write low-\/order 2 bytes of Unicode number assignments, as hex labels}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00462}00462 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00463}00463    pnybble3 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}} >> 4) \& 0xf;  \textcolor{comment}{/* Highest-\/order hex digit */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00464}00464    pnybble2 = (\mbox{\hyperlink{unihex2bmp_8c_a725bf527e95e9b9ac1168abcaff63dc9}{unipage}}     ) \& 0xf;  \textcolor{comment}{/* Next highest-\/order hex digit */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00465}00465    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00466}00466 \textcolor{comment}{      Write the column headers in bitmap[][] (row headers if flipped)}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00467}00467 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00468}00468    toppixelrow = 32 * 17 -\/ 1; \textcolor{comment}{/* maximum pixel row number */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00469}00469    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00470}00470 \textcolor{comment}{      Label the column headers. The hexbits[][] bytes are split across two}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00471}00471 \textcolor{comment}{      bitmap[][] entries to center a the hex digits in a column of 4 bytes.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00472}00472 \textcolor{comment}{      OR highest byte with 0xf0 and lowest byte with 0x0f to make outer}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00473}00473 \textcolor{comment}{      nybbles white (0=black, 1-\/white).}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00474}00474 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00475}00475    \textcolor{keywordflow}{for} (i=0; i<16; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00476}00476       \textcolor{keywordflow}{for} (j=0; j<32; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00477}00477          \textcolor{keywordflow}{if} (\mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}}) \{  \textcolor{comment}{/* transpose matrix */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00478}00478             bitmap[j][((i+2) << 2) | 0]  = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble3][j] >> 4) | 0xf0;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00479}00479             bitmap[j][((i+2) << 2) | 1]  = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble3][j] << 4) |}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00480}00480                                            (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble2][j] >> 4);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00481}00481             bitmap[j][((i+2) << 2) | 2]  = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble2][j] << 4) |}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00482}00482                                            (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j] >> 4);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00483}00483             bitmap[j][((i+2) << 2) | 3]  = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j] << 4) | 0x0f;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00484}00484          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00485}00485          \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00486}00486             bitmap[j][((i+2) << 2) | 1] = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j] >> 4) | 0xf0;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00487}00487             bitmap[j][((i+2) << 2) | 2] = (\mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j] << 4) | 0x0f;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00488}00488          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00489}00489       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00490}00490    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00491}00491    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00492}00492 \textcolor{comment}{      Now use the single hex digit column graphics to label the row headers.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00493}00493 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00494}00494    \textcolor{keywordflow}{for} (i=0; i<16; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00495}00495       toppixelrow = 32 * (i + 1) -\/ 1; \textcolor{comment}{/* from bottom to top    */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00496}00496 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00497}00497       \textcolor{keywordflow}{for} (j=0; j<32; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00498}00498          \textcolor{keywordflow}{if} (!\mbox{\hyperlink{unihex2bmp_8c_a8b05735de97cfd5336895936c06b293a}{flip}}) \{  \textcolor{comment}{/* if not transposing matrix */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00499}00499             bitmap[toppixelrow + j][4] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble3][j];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00500}00500             bitmap[toppixelrow + j][5] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[pnybble2][j];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00501}00501          \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00502}00502          bitmap[toppixelrow + j][6] = \mbox{\hyperlink{unihex2bmp_8c_aeae48f98967f7227522bea4cb3821192}{hexbits}}[i][j];}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00503}00503       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00504}00504    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00505}00505    \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00506}00506 \textcolor{comment}{      Now draw grid lines in bitmap, around characters we just copied.}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00507}00507 \textcolor{comment}{   */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00508}00508    \textcolor{comment}{/* draw vertical lines 2 pixels wide */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00509}00509    \textcolor{keywordflow}{for} (i=1*32; i<17*32; i++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00510}00510       \textcolor{keywordflow}{if} ((i \& 0x1f) == 7)}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00511}00511          i++;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00512}00512       \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((i \& 0x1f) == 14)}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00513}00513          i += 2;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00514}00514       \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((i \& 0x1f) == 22)}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00515}00515          i++;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00516}00516       \textcolor{keywordflow}{for} (j=1; j<18; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00517}00517          bitmap[i][(j << 2) | 3] \&= 0xfe;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00518}00518       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00519}00519    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00520}00520    \textcolor{comment}{/* draw horizontal lines 1 pixel tall */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00521}00521    \textcolor{keywordflow}{for} (i=1*32-\/1; i<18*32-\/1; i+=32) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00522}00522       \textcolor{keywordflow}{for} (j=2; j<18; j++) \{}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00523}00523          bitmap[i][(j << 2)    ] = 0x00;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00524}00524          bitmap[i][(j << 2) | 1] = 0x81;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00525}00525          bitmap[i][(j << 2) | 2] = 0x81;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00526}00526          bitmap[i][(j << 2) | 3] = 0x00;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00527}00527       \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00528}00528    \}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00529}00529    \textcolor{comment}{/* fill in top left corner pixel of grid */}}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00530}00530    bitmap[31][7] = 0xfe;}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00531}00531 }
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00532}00532    \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{unihex2bmp_8c_source_l00533}00533 \}}

\end{DoxyCode}
