Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-release > by-pkgid > 1af184c486f5d5f476d50602700ee0a0 > files > 27

lib64zvbi-devel-0.2.33-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ZVBI Library: BCD arithmetic for Teletext page numbers</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>BCD arithmetic for Teletext page numbers<br>
<small>
[<a class="el" href="group__HiDec.html">High Level Decoding</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#ga19b8103cc48b617476b4a690b2855bb">vbi_bin2bcd</a>(n)&nbsp;&nbsp;&nbsp;vbi_dec2bcd(n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#g5944d69bf5506c7b3e54f5fad5df1845">vbi_bcd2bin</a>(n)&nbsp;&nbsp;&nbsp;vbi_bcd2dec(n)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#g92ef99808a256e491dc4c4e799c5d1c7">vbi_dec2bcd</a> (unsigned int dec)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#gaab48eea04af25bcfb69dd27a9a6be28">vbi_bcd2dec</a> (unsigned int bcd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#g3a82b6744642f1d5be836914ce01a2e1">vbi_add_bcd</a> (unsigned int a, unsigned int b)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline vbi_bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#g557e0e23dd907e1aa77e8b2112b43d5c">vbi_is_bcd</a> (unsigned int bcd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_vbi_inline vbi_bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BCD.html#g23963822415da5f4516a5a61113106d1">vbi_bcd_digits_greater</a> (unsigned int bcd, unsigned int maximum)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Teletext page numbers are expressed as packed binary coded decimal numbers in range 0x100 to 0x8FF. The bcd format encodes one decimal digit in every hex nibble (four bits) of the number. Page numbers containing digits 0xA to 0xF are reserved for various system purposes and not intended for display. <hr><h2>Define Documentation</h2>
<a class="anchor" name="ga19b8103cc48b617476b4a690b2855bb"></a><!-- doxytag: member="bcd.h::vbi_bin2bcd" ref="ga19b8103cc48b617476b4a690b2855bb" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define vbi_bin2bcd          </td>
          <td>(</td>
          <td class="paramtype">n&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;vbi_dec2bcd(n)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.28 </dd></dl>

</div>
</div><p>
<a class="anchor" name="g5944d69bf5506c7b3e54f5fad5df1845"></a><!-- doxytag: member="bcd.h::vbi_bcd2bin" ref="g5944d69bf5506c7b3e54f5fad5df1845" args="(n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define vbi_bcd2bin          </td>
          <td>(</td>
          <td class="paramtype">n&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;vbi_bcd2dec(n)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.28 </dd></dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g92ef99808a256e491dc4c4e799c5d1c7"></a><!-- doxytag: member="bcd.h::vbi_dec2bcd" ref="g92ef99808a256e491dc4c4e799c5d1c7" args="(unsigned int dec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_dec2bcd           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>dec</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dec</em>&nbsp;</td><td>Decimal number.</td></tr>
  </table>
</dl>
Converts a two's complement binary between 0 ... 999 to a packed bcd number in range 0x000 ... 0x999. Extra digits in the input will be discarded.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>BCD number. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gaab48eea04af25bcfb69dd27a9a6be28"></a><!-- doxytag: member="bcd.h::vbi_bcd2dec" ref="gaab48eea04af25bcfb69dd27a9a6be28" args="(unsigned int bcd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_bcd2dec           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bcd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bcd</em>&nbsp;</td><td>BCD number.</td></tr>
  </table>
</dl>
Converts a packed bcd number between 0x000 ... 0xFFF to a two's complement binary in range 0 ... 999. Extra digits in the input will be discarded.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Decimal number. The result is undefined when the bcd number contains hex digits 0xA ... 0xF. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g3a82b6744642f1d5be836914ce01a2e1"></a><!-- doxytag: member="bcd.h::vbi_add_bcd" ref="g3a82b6744642f1d5be836914ce01a2e1" args="(unsigned int a, unsigned int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline unsigned int vbi_add_bcd           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>b</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>BCD number. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>BCD number.</td></tr>
  </table>
</dl>
Adds two packed bcd numbers, returning a packed bcd sum. Arguments and result are in range 0xF000&nbsp;0000 ... 0x0999&nbsp;9999, that is -10**7 ... +10**7 - 1 in decimal notation. To subtract you can add the 10's complement, e. g. -1 = 0xF999&nbsp;9999.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Packed bcd number. The result is undefined when any of the arguments contain hex digits 0xA ... 0xF. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g557e0e23dd907e1aa77e8b2112b43d5c"></a><!-- doxytag: member="bcd.h::vbi_is_bcd" ref="g557e0e23dd907e1aa77e8b2112b43d5c" args="(unsigned int bcd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline vbi_bool vbi_is_bcd           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bcd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bcd</em>&nbsp;</td><td>BCD number.</td></tr>
  </table>
</dl>
Tests if <em>bcd</em> forms a valid BCD number. The argument must be in range 0x0000&nbsp;0000 ... 0x0999&nbsp;9999.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>FALSE</code> if <em>bcd</em> contains hex digits 0xA ... 0xF. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g23963822415da5f4516a5a61113106d1"></a><!-- doxytag: member="bcd.h::vbi_bcd_digits_greater" ref="g23963822415da5f4516a5a61113106d1" args="(unsigned int bcd, unsigned int maximum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_vbi_inline vbi_bool vbi_bcd_digits_greater           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>bcd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>maximum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bcd</em>&nbsp;</td><td>Unsigned BCD number. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maximum</em>&nbsp;</td><td>Unsigned maximum value.</td></tr>
  </table>
</dl>
Compares an unsigned packed bcd number digit-wise against a maximum value, for example 0x295959. <em>maximum</em> can contain digits 0x0 ... 0xF.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>TRUE</code> if any digit of <em>bcd</em> is greater than the corresponding digit of <em>maximum</em>.</dd></dl>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.2.28 </dd></dl>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 27 04:47:58 2009 for ZVBI Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>