git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

docs/api/gb_2bcd_8h.html

      1 <!-- HTML header for doxygen 1.8.14-->
      2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      3 <html xmlns="http://www.w3.org/1999/xhtml">
      4 <head>
      5 <meta http-equiv="cache-control" content="max-age=86400"/>
      6 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
      7 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
      8 <meta name="generator" content="Doxygen 1.9.2"/>
      9 <meta name="viewport" content="width=device-width, initial-scale=1"/>
     10 <title>GBDK 2020 Docs: gbdk-lib/include/gb/bcd.h File Reference</title>
     11 <link href="tabs.css" rel="stylesheet" type="text/css"/>
     12 <script type="text/javascript" src="jquery.js"></script>
     13 <script type="text/javascript" src="dynsections.js"></script>
     14 <link href="navtree.css" rel="stylesheet" type="text/css"/>
     15 <script type="text/javascript" src="resize.js"></script>
     16 <script type="text/javascript" src="navtreedata.js"></script>
     17 <script type="text/javascript" src="navtree.js"></script>
     18 <link href="search/search.css" rel="stylesheet" type="text/css"/>
     19 <script type="text/javascript" src="search/searchdata.js"></script>
     20 <script type="text/javascript" src="search/search.js"></script>
     21 <link href="doxygen.css" rel="stylesheet" type="text/css" />
     22 <link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
     23 <link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
     24 <link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
     25 <!-- BEGIN: doxygen-awesome-css -->
     26         <script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
     27         <script type="text/javascript">
     28             DoxygenAwesomeDarkModeToggle.init()
     29         </script>
     30         <script type="text/javascript" src="doxygen-awesome-paragraph-link.js"></script>
     31         <script type="text/javascript">
     32             DoxygenAwesomeParagraphLink.init()
     33         </script>        
     34 <!-- END: doxygen-awesome-css -->
     35 </head>
     36 <body>
     37 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
     38 <div id="titlearea">
     39 <table cellspacing="0" cellpadding="0">
     40  <tbody>
     41  <tr style="height: 56px;">
     42   <td id="projectalign" style="padding-left: 0.5em;">
     43    <div id="projectname">GBDK 2020 Docs
     44    &#160;<span id="projectnumber">4.5.0</span>
     45    </div>
     46    <div id="projectbrief">API Documentation for GBDK 2020</div>
     47   </td>
     48  </tr>
     49  </tbody>
     50 </table>
     51 </div>
     52 <!-- end header part -->
     53 <!-- Generated by Doxygen 1.9.2 -->
     54 <script type="text/javascript">
     55 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
     56 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
     57 /* @license-end */
     58 </script>
     59 <script type="text/javascript" src="menudata.js"></script>
     60 <script type="text/javascript" src="menu.js"></script>
     61 <script type="text/javascript">
     62 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
     63 $(function() {
     64   initMenu('',true,false,'search.php','Search');
     65   $(document).ready(function() { init_search(); });
     66 });
     67 /* @license-end */
     68 </script>
     69 <div id="main-nav"></div>
     70 </div><!-- top -->
     71 <div id="side-nav" class="ui-resizable side-nav-resizable">
     72   <div id="nav-tree">
     73     <div id="nav-tree-contents">
     74       <div id="nav-sync" class="sync"></div>
     75     </div>
     76   </div>
     77   <div id="splitbar" style="-moz-user-select:none;" 
     78        class="ui-resizable-handle">
     79   </div>
     80 </div>
     81 <script type="text/javascript">
     82 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
     83 $(document).ready(function(){initNavTree('gb_2bcd_8h.html',''); initResizable(); });
     84 /* @license-end */
     85 </script>
     86 <div id="doc-content">
     87 <!-- window showing the filter options -->
     88 <div id="MSearchSelectWindow"
     89      onmouseover="return searchBox.OnSearchSelectShow()"
     90      onmouseout="return searchBox.OnSearchSelectHide()"
     91      onkeydown="return searchBox.OnSearchSelectKey(event)">
     92 </div>
     93 
     94 <!-- iframe showing the search results (closed by default) -->
     95 <div id="MSearchResultsWindow">
     96 <iframe src="javascript:void(0)" frameborder="0" 
     97         name="MSearchResults" id="MSearchResults">
     98 </iframe>
     99 </div>
    100 
    101 <div class="header">
    102   <div class="summary">
    103 <a href="#define-members">Macros</a> &#124;
    104 <a href="#typedef-members">Typedefs</a> &#124;
    105 <a href="#func-members">Functions</a>  </div>
    106   <div class="headertitle"><div class="title">bcd.h File Reference</div></div>
    107 </div><!--header-->
    108 <div class="contents">
    109 <div class="textblock"><code>#include &lt;types.h&gt;</code><br />
    110 <code>#include &lt;<a class="el" href="stdint_8h_source.html">stdint.h</a>&gt;</code><br />
    111 </div>
    112 <p><a href="gb_2bcd_8h_source.html">Go to the source code of this file.</a></p>
    113 <table class="memberdecls">
    114 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
    115 Macros</h2></td></tr>
    116 <tr class="memitem:BCD_HEX"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#BCD_HEX">BCD_HEX</a>(v)&#160;&#160;&#160;((<a class="el" href="gb_2bcd_8h.html#BCD">BCD</a>)(v))</td></tr>
    117 <tr class="separator:BCD_HEX"><td class="memSeparator" colspan="2">&#160;</td></tr>
    118 <tr class="memitem:MAKE_BCD"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#MAKE_BCD">MAKE_BCD</a>(v)&#160;&#160;&#160;<a class="el" href="sms_2bcd_8h.html#BCD_HEX">BCD_HEX</a>(0x ## v)</td></tr>
    119 <tr class="separator:MAKE_BCD"><td class="memSeparator" colspan="2">&#160;</td></tr>
    120 </table><table class="memberdecls">
    121 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
    122 Typedefs</h2></td></tr>
    123 <tr class="memitem:BCD"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="stdint_8h.html#uint32_t">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#BCD">BCD</a></td></tr>
    124 <tr class="separator:BCD"><td class="memSeparator" colspan="2">&#160;</td></tr>
    125 </table><table class="memberdecls">
    126 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
    127 Functions</h2></td></tr>
    128 <tr class="memitem:uint2bcd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#uint2bcd">uint2bcd</a> (<a class="el" href="stdint_8h.html#uint16_t">uint16_t</a> i, <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *value) <a class="el" href="asm_2types_8h.html#OLDCALL">OLDCALL</a></td></tr>
    129 <tr class="separator:uint2bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
    130 <tr class="memitem:bcd_add"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#bcd_add">bcd_add</a> (<a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *sour, const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *value) <a class="el" href="asm_2types_8h.html#OLDCALL">OLDCALL</a></td></tr>
    131 <tr class="separator:bcd_add"><td class="memSeparator" colspan="2">&#160;</td></tr>
    132 <tr class="memitem:bcd_sub"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#bcd_sub">bcd_sub</a> (<a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *sour, const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *value) <a class="el" href="asm_2types_8h.html#OLDCALL">OLDCALL</a></td></tr>
    133 <tr class="separator:bcd_sub"><td class="memSeparator" colspan="2">&#160;</td></tr>
    134 <tr class="memitem:bcd2text"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdint_8h.html#uint8_t">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gb_2bcd_8h.html#bcd2text">bcd2text</a> (const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *bcd, <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> tile_offset, <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> *buffer) <a class="el" href="asm_2types_8h.html#OLDCALL">OLDCALL</a></td></tr>
    135 <tr class="separator:bcd2text"><td class="memSeparator" colspan="2">&#160;</td></tr>
    136 </table>
    137 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
    138 <div class="textblock"><p >Support for working with BCD (Binary Coded Decimal)</p>
    139 <p >See the example BCD project for additional details. </p>
    140 </div><h2 class="groupheader">Macro Definition Documentation</h2>
    141 <a id="BCD_HEX" name="BCD_HEX"></a>
    142 <h2 class="memtitle"><span class="permalink"><a href="#BCD_HEX">&#9670;&nbsp;</a></span>BCD_HEX</h2>
    143 
    144 <div class="memitem">
    145 <div class="memproto">
    146       <table class="memname">
    147         <tr>
    148           <td class="memname">#define BCD_HEX</td>
    149           <td>(</td>
    150           <td class="paramtype">&#160;</td>
    151           <td class="paramname">v</td><td>)</td>
    152           <td>&#160;&#160;&#160;((<a class="el" href="gb_2bcd_8h.html#BCD">BCD</a>)(v))</td>
    153         </tr>
    154       </table>
    155 </div><div class="memdoc">
    156 
    157 </div>
    158 </div>
    159 <a id="MAKE_BCD" name="MAKE_BCD"></a>
    160 <h2 class="memtitle"><span class="permalink"><a href="#MAKE_BCD">&#9670;&nbsp;</a></span>MAKE_BCD</h2>
    161 
    162 <div class="memitem">
    163 <div class="memproto">
    164       <table class="memname">
    165         <tr>
    166           <td class="memname">#define MAKE_BCD</td>
    167           <td>(</td>
    168           <td class="paramtype">&#160;</td>
    169           <td class="paramname">v</td><td>)</td>
    170           <td>&#160;&#160;&#160;<a class="el" href="sms_2bcd_8h.html#BCD_HEX">BCD_HEX</a>(0x ## v)</td>
    171         </tr>
    172       </table>
    173 </div><div class="memdoc">
    174 <p >Converts an integer value into BCD format</p>
    175 <p >A maximum of 8 digits may be used </p>
    176 
    177 </div>
    178 </div>
    179 <h2 class="groupheader">Typedef Documentation</h2>
    180 <a id="BCD" name="BCD"></a>
    181 <h2 class="memtitle"><span class="permalink"><a href="#BCD">&#9670;&nbsp;</a></span>BCD</h2>
    182 
    183 <div class="memitem">
    184 <div class="memproto">
    185       <table class="memname">
    186         <tr>
    187           <td class="memname">typedef <a class="el" href="stdint_8h.html#uint32_t">uint32_t</a> <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a></td>
    188         </tr>
    189       </table>
    190 </div><div class="memdoc">
    191 
    192 </div>
    193 </div>
    194 <h2 class="groupheader">Function Documentation</h2>
    195 <a id="uint2bcd" name="uint2bcd"></a>
    196 <h2 class="memtitle"><span class="permalink"><a href="#uint2bcd">&#9670;&nbsp;</a></span>uint2bcd()</h2>
    197 
    198 <div class="memitem">
    199 <div class="memproto">
    200       <table class="memname">
    201         <tr>
    202           <td class="memname">void uint2bcd </td>
    203           <td>(</td>
    204           <td class="paramtype"><a class="el" href="stdint_8h.html#uint16_t">uint16_t</a>&#160;</td>
    205           <td class="paramname"><em>i</em>, </td>
    206         </tr>
    207         <tr>
    208           <td class="paramkey"></td>
    209           <td></td>
    210           <td class="paramtype"><a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    211           <td class="paramname"><em>value</em>&#160;</td>
    212         </tr>
    213         <tr>
    214           <td></td>
    215           <td>)</td>
    216           <td></td><td></td>
    217         </tr>
    218       </table>
    219 </div><div class="memdoc">
    220 <p >Converts integer <b>i</b> into BCD format (Binary Coded Decimal) </p><dl class="params"><dt>Parameters</dt><dd>
    221   <table class="params">
    222     <tr><td class="paramname">i</td><td>Numeric value to convert </td></tr>
    223     <tr><td class="paramname">value</td><td>Pointer to a BCD variable to store the converted result </td></tr>
    224   </table>
    225   </dd>
    226 </dl>
    227 
    228 </div>
    229 </div>
    230 <a id="bcd_add" name="bcd_add"></a>
    231 <h2 class="memtitle"><span class="permalink"><a href="#bcd_add">&#9670;&nbsp;</a></span>bcd_add()</h2>
    232 
    233 <div class="memitem">
    234 <div class="memproto">
    235       <table class="memname">
    236         <tr>
    237           <td class="memname">void bcd_add </td>
    238           <td>(</td>
    239           <td class="paramtype"><a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    240           <td class="paramname"><em>sour</em>, </td>
    241         </tr>
    242         <tr>
    243           <td class="paramkey"></td>
    244           <td></td>
    245           <td class="paramtype">const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    246           <td class="paramname"><em>value</em>&#160;</td>
    247         </tr>
    248         <tr>
    249           <td></td>
    250           <td>)</td>
    251           <td></td><td></td>
    252         </tr>
    253       </table>
    254 </div><div class="memdoc">
    255 <p >Adds two numbers in BCD format: <b>sour</b> += <b>value</b> </p><dl class="params"><dt>Parameters</dt><dd>
    256   <table class="params">
    257     <tr><td class="paramname">sour</td><td>Pointer to a BCD value to add to (and where the result is stored) </td></tr>
    258     <tr><td class="paramname">value</td><td>Pointer to the BCD value to add to <b>sour</b> </td></tr>
    259   </table>
    260   </dd>
    261 </dl>
    262 
    263 </div>
    264 </div>
    265 <a id="bcd_sub" name="bcd_sub"></a>
    266 <h2 class="memtitle"><span class="permalink"><a href="#bcd_sub">&#9670;&nbsp;</a></span>bcd_sub()</h2>
    267 
    268 <div class="memitem">
    269 <div class="memproto">
    270       <table class="memname">
    271         <tr>
    272           <td class="memname">void bcd_sub </td>
    273           <td>(</td>
    274           <td class="paramtype"><a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    275           <td class="paramname"><em>sour</em>, </td>
    276         </tr>
    277         <tr>
    278           <td class="paramkey"></td>
    279           <td></td>
    280           <td class="paramtype">const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    281           <td class="paramname"><em>value</em>&#160;</td>
    282         </tr>
    283         <tr>
    284           <td></td>
    285           <td>)</td>
    286           <td></td><td></td>
    287         </tr>
    288       </table>
    289 </div><div class="memdoc">
    290 <p >Subtracts two numbers in BCD format: <b>sour</b> -= <b>value</b> </p><dl class="params"><dt>Parameters</dt><dd>
    291   <table class="params">
    292     <tr><td class="paramname">sour</td><td>Pointer to a BCD value to subtract from (and where the result is stored) </td></tr>
    293     <tr><td class="paramname">value</td><td>Pointer to the BCD value to subtract from <b>sour</b> </td></tr>
    294   </table>
    295   </dd>
    296 </dl>
    297 
    298 </div>
    299 </div>
    300 <a id="bcd2text" name="bcd2text"></a>
    301 <h2 class="memtitle"><span class="permalink"><a href="#bcd2text">&#9670;&nbsp;</a></span>bcd2text()</h2>
    302 
    303 <div class="memitem">
    304 <div class="memproto">
    305       <table class="memname">
    306         <tr>
    307           <td class="memname"><a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> bcd2text </td>
    308           <td>(</td>
    309           <td class="paramtype">const <a class="el" href="gb_2bcd_8h.html#BCD">BCD</a> *&#160;</td>
    310           <td class="paramname"><em>bcd</em>, </td>
    311         </tr>
    312         <tr>
    313           <td class="paramkey"></td>
    314           <td></td>
    315           <td class="paramtype"><a class="el" href="stdint_8h.html#uint8_t">uint8_t</a>&#160;</td>
    316           <td class="paramname"><em>tile_offset</em>, </td>
    317         </tr>
    318         <tr>
    319           <td class="paramkey"></td>
    320           <td></td>
    321           <td class="paramtype"><a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> *&#160;</td>
    322           <td class="paramname"><em>buffer</em>&#160;</td>
    323         </tr>
    324         <tr>
    325           <td></td>
    326           <td>)</td>
    327           <td></td><td></td>
    328         </tr>
    329       </table>
    330 </div><div class="memdoc">
    331 <p >Convert a BCD number into an asciiz (null terminated) string and return the length </p><dl class="params"><dt>Parameters</dt><dd>
    332   <table class="params">
    333     <tr><td class="paramname">bcd</td><td>Pointer to BCD value to convert </td></tr>
    334     <tr><td class="paramname">tile_offset</td><td>Optional per-character offset value to add (use 0 for none) </td></tr>
    335     <tr><td class="paramname">buffer</td><td>Buffer to store the result in</td></tr>
    336   </table>
    337   </dd>
    338 </dl>
    339 <p>Returns: Length in characters (always 8)</p>
    340 <p ><b>buffer</b> should be large enough to store the converted string (9 bytes: 8 characters + 1 for terminator)</p>
    341 <p >There are a couple different ways to use <b>tile_offset</b>. For example: </p><ul>
    342 <li>It can be the Index of the Font Tile '0' in VRAM to allow the buffer to be used directly with <a class="el" href="nes_8h.html#set_bkg_tiles">set_bkg_tiles</a>. </li>
    343 <li>It can also be set to the ascii value for character '0' so that the buffer is a normal string that can be passed to <a class="el" href="stdio_8h.html#printf">printf</a>. </li>
    344 </ul>
    345 
    346 </div>
    347 </div>
    348 </div><!-- contents -->
    349 </div><!-- doc-content -->
    350 <!-- start footer part -->
    351 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
    352   <ul>
    353     <li class="navelem"><a class="el" href="dir_8bd3092e915ccc8a773a74e0a10d4d15.html">gbdk-lib</a></li><li class="navelem"><a class="el" href="dir_a9f896cff747ba031115e41245385c17.html">include</a></li><li class="navelem"><a class="el" href="dir_bdfe001eb73b667f67d57fb851301eb1.html">gb</a></li><li class="navelem"><a class="el" href="gb_2bcd_8h.html">bcd.h</a></li>
    354     <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
    355   </ul>
    356 </div>
    357 </body>
    358 </html>

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.