1 |
dashley |
71 |
//$Header$ |
2 |
|
|
//------------------------------------------------------------------------------------------------- |
3 |
|
|
//This file is part of "David T. Ashley's Shared Source Code", a set of shared components |
4 |
|
|
//integrated into many of David T. Ashley's projects. |
5 |
|
|
//------------------------------------------------------------------------------------------------- |
6 |
|
|
//This source code and any program in which it is compiled/used is provided under the MIT License, |
7 |
|
|
//reproduced below. |
8 |
|
|
//------------------------------------------------------------------------------------------------- |
9 |
|
|
//Permission is hereby granted, free of charge, to any person obtaining a copy of |
10 |
|
|
//this software and associated documentation files(the "Software"), to deal in the |
11 |
|
|
//Software without restriction, including without limitation the rights to use, |
12 |
|
|
//copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the |
13 |
|
|
//Software, and to permit persons to whom the Software is furnished to do so, |
14 |
|
|
//subject to the following conditions : |
15 |
|
|
// |
16 |
|
|
//The above copyright notice and this permission notice shall be included in all |
17 |
|
|
//copies or substantial portions of the Software. |
18 |
|
|
// |
19 |
|
|
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
20 |
|
|
//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
21 |
|
|
//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE |
22 |
|
|
//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
23 |
|
|
//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
24 |
|
|
//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
25 |
|
|
//SOFTWARE. |
26 |
|
|
//------------------------------------------------------------------------------------------------- |
27 |
|
|
#define MODULE_CHARFUNC |
28 |
|
|
|
29 |
|
|
#include <assert.h> |
30 |
|
|
#include <stddef.h> |
31 |
|
|
|
32 |
|
|
#include "charfunc.h" |
33 |
|
|
|
34 |
|
|
|
35 |
|
|
int CHARFUNC_digit_to_val(char digit) |
36 |
|
|
{ |
37 |
|
|
switch (digit) |
38 |
|
|
{ |
39 |
|
|
case '0': return(0); |
40 |
|
|
break; |
41 |
|
|
case '1': return(1); |
42 |
|
|
break; |
43 |
|
|
case '2': return(2); |
44 |
|
|
break; |
45 |
|
|
case '3': return(3); |
46 |
|
|
break; |
47 |
|
|
case '4': return(4); |
48 |
|
|
break; |
49 |
|
|
case '5': return(5); |
50 |
|
|
break; |
51 |
|
|
case '6': return(6); |
52 |
|
|
break; |
53 |
|
|
case '7': return(7); |
54 |
|
|
break; |
55 |
|
|
case '8': return(8); |
56 |
|
|
break; |
57 |
|
|
case '9': return(9); |
58 |
|
|
break; |
59 |
|
|
default: return(-1); |
60 |
|
|
break; |
61 |
|
|
} |
62 |
|
|
} |
63 |
|
|
|
64 |
|
|
|
65 |
|
|
char CHARFUNC_nibble_to_lc_hex_digit(int nibble) |
66 |
|
|
{ |
67 |
|
|
switch (nibble & 0x0F) |
68 |
|
|
{ |
69 |
|
|
case 0: |
70 |
|
|
return('0'); |
71 |
|
|
break; |
72 |
|
|
case 1: |
73 |
|
|
return('1'); |
74 |
|
|
break; |
75 |
|
|
case 2: |
76 |
|
|
return('2'); |
77 |
|
|
break; |
78 |
|
|
case 3: |
79 |
|
|
return('3'); |
80 |
|
|
break; |
81 |
|
|
case 4: |
82 |
|
|
return('4'); |
83 |
|
|
break; |
84 |
|
|
case 5: |
85 |
|
|
return('5'); |
86 |
|
|
break; |
87 |
|
|
case 6: |
88 |
|
|
return('6'); |
89 |
|
|
break; |
90 |
|
|
case 7: |
91 |
|
|
return('7'); |
92 |
|
|
break; |
93 |
|
|
case 8: |
94 |
|
|
return('8'); |
95 |
|
|
break; |
96 |
|
|
case 9: |
97 |
|
|
return('9'); |
98 |
|
|
break; |
99 |
|
|
case 10: |
100 |
|
|
return('a'); |
101 |
|
|
break; |
102 |
|
|
case 11: |
103 |
|
|
return('b'); |
104 |
|
|
break; |
105 |
|
|
case 12: |
106 |
|
|
return('c'); |
107 |
|
|
break; |
108 |
|
|
case 13: |
109 |
|
|
return('d'); |
110 |
|
|
break; |
111 |
|
|
case 14: |
112 |
|
|
return('e'); |
113 |
|
|
break; |
114 |
|
|
case 15: |
115 |
|
|
return('f'); |
116 |
|
|
break; |
117 |
|
|
default: |
118 |
|
|
assert(0); |
119 |
|
|
return('?'); |
120 |
|
|
break; |
121 |
|
|
} |
122 |
|
|
} |
123 |
|
|
|
124 |
|
|
|
125 |
|
|
void CHARFUNC_int_to_lc_hex_rev(int arg, char *s) |
126 |
|
|
{ |
127 |
|
|
int i; |
128 |
|
|
|
129 |
|
|
assert(s != NULL); |
130 |
|
|
|
131 |
|
|
for (i=0; i<8; i++) |
132 |
|
|
{ |
133 |
|
|
s[i] = CHARFUNC_nibble_to_lc_hex_digit(arg); |
134 |
|
|
arg >>= 4; |
135 |
|
|
} |
136 |
|
|
} |
137 |
|
|
|
138 |
|
|
const char *CHARFUNC_cvcinfo(void) |
139 |
|
|
{ |
140 |
|
|
return("$Header$"); |
141 |
|
|
} |
142 |
|
|
|
143 |
|
|
|
144 |
|
|
const char *CHARFUNC_hvcinfo(void) |
145 |
|
|
{ |
146 |
|
|
return(CHARFUNC_H_VERSION); |
147 |
|
|
} |
148 |
|
|
|
149 |
|
|
//End of charfunc.c. |