cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

sms_8h_source.html (143734B)


      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.8.20"/>
      9<meta name="viewport" content="width=device-width, initial-scale=1"/>
     10<title>GBDK 2020 Docs: sms/sms.h Source File</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_extra.css" rel="stylesheet" type="text/css"/>
     23</head>
     24<body>
     25<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
     26<div id="titlearea">
     27<table cellspacing="0" cellpadding="0">
     28 <tbody>
     29 <tr style="height: 56px;">
     30  <td id="projectalign" style="padding-left: 0.5em;">
     31   <div id="projectname">GBDK 2020 Docs
     32   &#160;<span id="projectnumber">4.0.6</span>
     33   </div>
     34   <div id="projectbrief">API Documentation for GBDK 2020</div>
     35  </td>
     36 </tr>
     37 </tbody>
     38</table>
     39</div>
     40<!-- end header part -->
     41<!-- Generated by Doxygen 1.8.20 -->
     42<script type="text/javascript">
     43/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
     44var searchBox = new SearchBox("searchBox", "search",false,'Search');
     45/* @license-end */
     46</script>
     47<script type="text/javascript" src="menudata.js"></script>
     48<script type="text/javascript" src="menu.js"></script>
     49<script type="text/javascript">
     50/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
     51$(function() {
     52  initMenu('',true,false,'search.php','Search');
     53  $(document).ready(function() { init_search(); });
     54});
     55/* @license-end */</script>
     56<div id="main-nav"></div>
     57</div><!-- top -->
     58<div id="side-nav" class="ui-resizable side-nav-resizable">
     59  <div id="nav-tree">
     60    <div id="nav-tree-contents">
     61      <div id="nav-sync" class="sync"></div>
     62    </div>
     63  </div>
     64  <div id="splitbar" style="-moz-user-select:none;" 
     65       class="ui-resizable-handle">
     66  </div>
     67</div>
     68<script type="text/javascript">
     69/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
     70$(document).ready(function(){initNavTree('sms_8h_source.html',''); initResizable(); });
     71/* @license-end */
     72</script>
     73<div id="doc-content">
     74<!-- window showing the filter options -->
     75<div id="MSearchSelectWindow"
     76     onmouseover="return searchBox.OnSearchSelectShow()"
     77     onmouseout="return searchBox.OnSearchSelectHide()"
     78     onkeydown="return searchBox.OnSearchSelectKey(event)">
     79</div>
     80
     81<!-- iframe showing the search results (closed by default) -->
     82<div id="MSearchResultsWindow">
     83<iframe src="javascript:void(0)" frameborder="0" 
     84        name="MSearchResults" id="MSearchResults">
     85</iframe>
     86</div>
     87
     88<div class="header">
     89  <div class="headertitle">
     90<div class="title">sms.h</div>  </div>
     91</div><!--header-->
     92<div class="contents">
     93<a href="sms_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
     94<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#ifndef _SMS_H</span></div>
     95<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#define _SMS_H</span></div>
     96<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
     97<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;types.h&gt;</span></div>
     98<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="stdint_8h.html">stdint.h</a>&gt;</span></div>
     99<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="version_8h.html">gbdk/version.h</a>&gt;</span></div>
    100<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="sms_2hardware_8h.html">sms/hardware.h</a>&gt;</span></div>
    101<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
    102<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="sms_8h.html#a19e5fbd76b85bf708ec31d55905fc537">   12</a></span>&#160;<span class="preprocessor">#define SEGA</span></div>
    103<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#ifdef NINTENDO</span></div>
    104<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#undef NINTENDO</span></div>
    105<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#endif</span></div>
    106<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#if defined(__TARGET_sms)</span></div>
    107<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define MASTERSYSTEM</span></div>
    108<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#elif defined(__TARGET_gg)</span></div>
    109<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define GAMEGEAR</span></div>
    110<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#endif</span></div>
    111<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
    112<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
    113<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="sms_8h.html#a6bc34abf062d8e3be88170ac106f197f">   23</a></span>&#160;<span class="preprocessor">#define VBK_REG VDP_ATTR_SHIFT</span></div>
    114<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
    115<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="sms_8h.html#a05ca817ab32f6da612c3ae26db5abf02">   38</a></span>&#160;<span class="preprocessor">#define J_UP         0b00000001</span></div>
    116<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="sms_8h.html#ae032c5c544196e37ec0432f6cfad7904">   39</a></span>&#160;<span class="preprocessor">#define J_DOWN       0b00000010</span></div>
    117<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="sms_8h.html#ac70894fecac30c1ca9917f07373cf81c">   40</a></span>&#160;<span class="preprocessor">#define J_LEFT       0b00000100</span></div>
    118<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="sms_8h.html#a3bad91d11ae09ffcbb3cb0a81873d325">   41</a></span>&#160;<span class="preprocessor">#define J_RIGHT      0b00001000</span></div>
    119<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="sms_8h.html#a31af766e3b598eb7a6b63f55a4988e7a">   42</a></span>&#160;<span class="preprocessor">#define J_A          0b00010000</span></div>
    120<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="sms_8h.html#ae47e59a309120f9420993f26816b5e6d">   43</a></span>&#160;<span class="preprocessor">#define J_B          0b00100000</span></div>
    121<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#if defined(__TARGET_sms)</span></div>
    122<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#define J_SELECT     0b00100000</span></div>
    123<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define J_START      0b00010000</span></div>
    124<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#elif defined(__TARGET_gg)</span></div>
    125<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#define J_SELECT     0b00100000</span></div>
    126<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#define J_START      0b10000000</span></div>
    127<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div>
    128<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
    129<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="sms_8h.html#af0e30d6af308ffe5a025fbe85da40f6f">   56</a></span>&#160;<span class="preprocessor">#define M_TEXT_OUT   0x02U</span></div>
    130<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="sms_8h.html#a908826e7180f94a5988ceb8633313a2e">   57</a></span>&#160;<span class="preprocessor">#define M_TEXT_INOUT 0x03U</span></div>
    131<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
    132<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="sms_8h.html#a04382de20738146fe873ddfb0585052b">   63</a></span>&#160;<span class="preprocessor">#define M_NO_SCROLL  0x04U</span></div>
    133<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
    134<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="sms_8h.html#aca2855edd2d28f66be551a0f7ec23f07">   67</a></span>&#160;<span class="preprocessor">#define M_NO_INTERP  0x08U</span></div>
    135<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
    136<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="sms_8h.html#ae97793b4039609f93b0f7f8bddb18011">   71</a></span>&#160;<span class="preprocessor">#define S_FLIPX      0x02U</span></div>
    137<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
    138<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="sms_8h.html#a4bbb9cd6c38b2317de5256d1d889c63b">   74</a></span>&#160;<span class="preprocessor">#define S_FLIPY      0x04U</span></div>
    139<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
    140<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="sms_8h.html#a54572cf6791463b6d60623837e0bb5a6">   77</a></span>&#160;<span class="preprocessor">#define S_PALETTE    0x08U</span></div>
    141<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
    142<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="sms_8h.html#a9506d04c2ec7d2442a52054f67d2b32f">   80</a></span>&#160;<span class="preprocessor">#define S_PRIORITY   0x10U</span></div>
    143<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
    144<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">// VDP helper macros</span></div>
    145<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="sms_8h.html#aa34282113397af810be737df1acec36c">   83</a></span>&#160;<span class="preprocessor">#define __WRITE_VDP_REG(REG, v) shadow_##REG=(v);__critical{VDP_CMD=(shadow_##REG),VDP_CMD=REG;}</span></div>
    146<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="sms_8h.html#a964e713cb2535d7464d0d6ca7677049a">   84</a></span>&#160;<span class="preprocessor">#define __READ_VDP_REG(REG) shadow_##REG</span></div>
    147<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
    148<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="sms_8h.html#a498b148efd22ab8ad9b844b2dc5e5bb8">   86</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a498b148efd22ab8ad9b844b2dc5e5bb8">WRITE_VDP_CMD</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> cmd) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    149<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="sms_8h.html#aa2ddf9662320c4a9d00fd4a94d347570">   87</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aa2ddf9662320c4a9d00fd4a94d347570">WRITE_VDP_DATA</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> data) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    150<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
    151<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="sms_8h.html#a3ea524204d839377cf39842eec23e202">   95</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a3ea524204d839377cf39842eec23e202">mode</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> m) <a class="code" href="asm_2types_8h.html#a0971918860055db2e50dacea4da8f3bc">OLDCALL</a>;</div>
    152<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
    153<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="sms_8h.html#ad9a83378f5ec1f6444c879e4cf1e1a83">  101</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#ad9a83378f5ec1f6444c879e4cf1e1a83">get_mode</a>() <a class="code" href="asm_2types_8h.html#a0971918860055db2e50dacea4da8f3bc">OLDCALL</a>;</div>
    154<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
    155<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">/* Interrupt flags */</span></div>
    156<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="sms_8h.html#aa027abe630d44039f238034bcb2d2f36">  106</a></span>&#160;<span class="preprocessor">#define EMPTY_IFLAG  0x00U</span></div>
    157<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
    158<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="sms_8h.html#a2ca7720b9a5da9b2173e1f74dba85541">  112</a></span>&#160;<span class="preprocessor">#define VBL_IFLAG    0x01U</span></div>
    159<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
    160<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="sms_8h.html#a61a9e2910380de6abb34df14ef634eb4">  116</a></span>&#160;<span class="preprocessor">#define LCD_IFLAG    0x02U</span></div>
    161<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
    162<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="sms_8h.html#a604256210ec5b90b68185e1a18efab49">  119</a></span>&#160;<span class="preprocessor">#define TIM_IFLAG    0x04U</span></div>
    163<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
    164<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="sms_8h.html#ad90564458646c5646b3880b93db3443e">  122</a></span>&#160;<span class="preprocessor">#define SIO_IFLAG    0x08U</span></div>
    165<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
    166<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="sms_8h.html#a2f829cf27d6e3e24c875e9b82dfcb280">  125</a></span>&#160;<span class="preprocessor">#define JOY_IFLAG    0x10U</span></div>
    167<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
    168<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="sms_8h.html#aefda0091b2934571a11e07b512735f50">  127</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aefda0091b2934571a11e07b512735f50">set_interrupts</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> flags) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    169<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
    170<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">/* Limits */</span></div>
    171<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="sms_8h.html#ada0cc738d27aad251151e69cb8d250e1">  132</a></span>&#160;<span class="preprocessor">#define SCREENWIDTH  DEVICE_SCREEN_PX_WIDTH</span></div>
    172<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
    173<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="sms_8h.html#ae189e98d0ef9263c37869ce1ff3710a5">  135</a></span>&#160;<span class="preprocessor">#define SCREENHEIGHT DEVICE_SCREEN_PX_HEIGHT</span></div>
    174<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
    175<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="sms_8h.html#a5a796bbf3e4347d914b83568350143a9">  138</a></span>&#160;<span class="preprocessor">#define MINWNDPOSX   0x00U</span></div>
    176<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
    177<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="sms_8h.html#af3d632ba2d7cef6619df5dfea8730909">  141</a></span>&#160;<span class="preprocessor">#define MINWNDPOSY   0x00U</span></div>
    178<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
    179<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="sms_8h.html#a6dffb66ec1b1d9bb380a1af52a601ec5">  144</a></span>&#160;<span class="preprocessor">#define MAXWNDPOSX   0x00U</span></div>
    180<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
    181<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="sms_8h.html#ad57f2f8c54204687f02801d8ab1bd150">  147</a></span>&#160;<span class="preprocessor">#define MAXWNDPOSY   0x00U</span></div>
    182<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
    183<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
    184<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">  152</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a>)(void) <a class="code" href="asm_2types_8h.html#a7ed081d8dfb6902784b2fc730bbb7f96">NONBANKED</a>;</div>
    185<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
    186<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="sms_8h.html#a98f7ef49e1758c601979bcb0ff19a1f0">  157</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a98f7ef49e1758c601979bcb0ff19a1f0">remove_VBL</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    187<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
    188<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="sms_8h.html#aa8962b27b960bb0c8d3bb899246c690c">  162</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aa8962b27b960bb0c8d3bb899246c690c">remove_LCD</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    189<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; </div>
    190<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="sms_8h.html#a98785a1b0ddc91cd8e8c8fab8de1de20">  164</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a98785a1b0ddc91cd8e8c8fab8de1de20">remove_TIM</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    191<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="sms_8h.html#a98de9141f407585801fcbf55bf6dcc4c">  165</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a98de9141f407585801fcbf55bf6dcc4c">remove_SIO</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    192<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="sms_8h.html#a35a3ff12ab34534b763517576afe38a6">  166</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a35a3ff12ab34534b763517576afe38a6">remove_JOY</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    193<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
    194<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="sms_8h.html#ae59628e2237f301df1341e22bfc8296e">  170</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#ae59628e2237f301df1341e22bfc8296e">add_VBL</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    195<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
    196<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="sms_8h.html#a51add93356a25c71e8c37a73c9065c9d">  174</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a51add93356a25c71e8c37a73c9065c9d">add_LCD</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    197<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
    198<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="sms_8h.html#a6c66a583a8f0744e3985c89725e3dc10">  178</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a6c66a583a8f0744e3985c89725e3dc10">add_TIM</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    199<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
    200<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="sms_8h.html#a3372d61a07e0466bdb909a27f3aaaca9">  182</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a3372d61a07e0466bdb909a27f3aaaca9">add_SIO</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    201<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
    202<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="sms_8h.html#a48163816121cd669526817d3e6266fd9">  186</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a48163816121cd669526817d3e6266fd9">add_JOY</a>(<a class="code" href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    203<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
    204<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="sms_8h.html#ade5d4c955b871b0ed884273cc2b7215a">  190</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#ade5d4c955b871b0ed884273cc2b7215a">cancel_pending_interrupts</a>() {</div>
    205<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordflow">return</span> VDP_STATUS;</div>
    206<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;}</div>
    207<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
    208<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="sms_8h.html#a6261537edc74068e3f7f057e6a3e8a57">  194</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a6261537edc74068e3f7f057e6a3e8a57">move_bkg</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y) {</div>
    209<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <a class="code" href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a9c49833bc96a70b8972027d28c816d2f">VDP_RSCX</a>, -x);</div>
    210<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <a class="code" href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a3cce162b45d638126c478c5b6f7bcbc7">VDP_RSCY</a>, y);</div>
    211<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;}</div>
    212<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160; </div>
    213<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="sms_8h.html#a1f583f7a880daa6145ca78b086a209d1">  199</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a1f583f7a880daa6145ca78b086a209d1">scroll_bkg</a>(<a class="code" href="stdint_8h.html#aef44329758059c91c76d334e8fc09700">int8_t</a> x, <a class="code" href="stdint_8h.html#aef44329758059c91c76d334e8fc09700">int8_t</a> y) {</div>
    214<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a9c49833bc96a70b8972027d28c816d2f">VDP_RSCX</a>, <a class="code" href="sms_8h.html#a964e713cb2535d7464d0d6ca7677049a">__READ_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a9c49833bc96a70b8972027d28c816d2f">VDP_RSCX</a>) - x);</div>
    215<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="stdint_8h.html#a66634143db08bebe9b46ab4cb1fc6fd3">int16_t</a> tmp = <a class="code" href="sms_8h.html#a964e713cb2535d7464d0d6ca7677049a">__READ_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a3cce162b45d638126c478c5b6f7bcbc7">VDP_RSCY</a>) + y;</div>
    216<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a3cce162b45d638126c478c5b6f7bcbc7">VDP_RSCY</a>, (tmp &lt; 0) ? 224 + tmp : tmp % 224u);</div>
    217<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;}</div>
    218<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
    219<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="sms_8h.html#acd186eb292d441f9389e77b545a55619">  215</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#acd186eb292d441f9389e77b545a55619">wait_vbl_done</a>() <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <a class="code" href="sms_8h.html#af79b920bcb642bba2e652874c4f7eeff">l</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    220<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
    221<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="sms_8h.html#a7b09691f25fddd65f12ed199b3f88ef0">  221</a></span>&#160;inline <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a7b09691f25fddd65f12ed199b3f88ef0">display_off</a>() {</div>
    222<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <a class="code" href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a413fdabdacfcda90cc73a04311a2ec6d">VDP_R1</a>, <a class="code" href="sms_8h.html#a964e713cb2535d7464d0d6ca7677049a">__READ_VDP_REG</a>(<a class="code" href="sms_2hardware_8h.html#a413fdabdacfcda90cc73a04311a2ec6d">VDP_R1</a>) &amp;= (~<a class="code" href="sms_2hardware_8h.html#adbfdd7c42539613c371820dffd14906f">R1_DISP_ON</a>));</div>
    223<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;}</div>
    224<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
    225<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="sms_8h.html#a5ae6b05b3e1559c97f0d1b2daaaa0ee4">  228</a></span>&#160;<span class="preprocessor">#define DISPLAY_ON \</span></div>
    226<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">    __WRITE_VDP_REG(VDP_R1, __READ_VDP_REG(VDP_R1) |= R1_DISP_ON)</span></div>
    227<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
    228<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="sms_8h.html#ad2ec9831813c5e7069917aa4455af682">  234</a></span>&#160;<span class="preprocessor">#define DISPLAY_OFF \</span></div>
    229<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">    display_off();</span></div>
    230<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
    231<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="sms_8h.html#a7542d00af674e3c58b6c9887ab01919f">  239</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a7542d00af674e3c58b6c9887ab01919f">refresh_OAM</a>();</div>
    232<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
    233<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="sms_8h.html#a0659212acd317ccdebc0ecf435df330f">  244</a></span>&#160;<span class="preprocessor">#define HIDE_LEFT_COLUMN \</span></div>
    234<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">    __WRITE_VDP_REG(VDP_R0, __READ_VDP_REG(VDP_R0) |= R0_LCB)</span></div>
    235<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
    236<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="sms_8h.html#a5497c2255a9474d397446710189eacbe">  250</a></span>&#160;<span class="preprocessor">#define SHOW_LEFT_COLUMN \</span></div>
    237<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">    __WRITE_VDP_REG(VDP_R0, __READ_VDP_REG(VDP_R0) &amp;= (~R0_LCB))</span></div>
    238<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
    239<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="sms_8h.html#a8e3f36aa68ac036695816757f2a1322c">  256</a></span>&#160;<span class="preprocessor">#define SHOW_BKG</span></div>
    240<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
    241<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="sms_8h.html#a6d25f7c43b1cbbb48b95cda7ab2c3141">  261</a></span>&#160;<span class="preprocessor">#define HIDE_BKG</span></div>
    242<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
    243<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="sms_8h.html#ab19da2ab719bb8897bc0843a84af28f8">  266</a></span>&#160;<span class="preprocessor">#define SHOW_WIN</span></div>
    244<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
    245<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="sms_8h.html#aedb6e32c42d4b1d25ad11adccd7100c3">  271</a></span>&#160;<span class="preprocessor">#define HIDE_WIN</span></div>
    246<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
    247<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="sms_8h.html#a495bc9f405f916f02ad5d97e6e730134">  276</a></span>&#160;<span class="preprocessor">#define SHOW_SPRITES</span></div>
    248<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
    249<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="sms_8h.html#a69ef98aee664b8abd8d1a3d45f016dda">  281</a></span>&#160;<span class="preprocessor">#define HIDE_SPRITES</span></div>
    250<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
    251<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="sms_8h.html#af91d252f07f4764996154820f970c101">  285</a></span>&#160;<span class="preprocessor">#define SPRITES_8x16 \</span></div>
    252<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="preprocessor">    __WRITE_VDP_REG(VDP_R1, __READ_VDP_REG(VDP_R1) |= R1_SPR_8X16)</span></div>
    253<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
    254<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="sms_8h.html#aa87bec0d134136fdb727f52cb773b792">  290</a></span>&#160;<span class="preprocessor">#define SPRITES_8x8 \</span></div>
    255<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor">    __WRITE_VDP_REG(VDP_R1, __READ_VDP_REG(VDP_R1) &amp;= (~R1_SPR_8X16))</span></div>
    256<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
    257<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="sms_8h.html#a231ec05679809190782e61c6e8aaaba4">  296</a></span>&#160;<span class="preprocessor">#define DEVICE_SUPPORTS_COLOR (TRUE)</span></div>
    258<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
    259<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> <a class="code" href="sms_8h.html#a78d2fd18666afec116f176d46debb4e7">sys_time</a>;</div>
    260<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160; </div>
    261<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="sms_8h.html#af0d15cf2a26924d2ef00ac4017e6b1d8">  308</a></span>&#160;<span class="preprocessor">#define _current_bank MAP_FRAME1</span></div>
    262<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="sms_8h.html#ae042588f20bf5a2349c8ad8716245233">  309</a></span>&#160;<span class="preprocessor">#define CURRENT_BANK MAP_FRAME1</span></div>
    263<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160; </div>
    264<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="preprocessor">#ifndef BANK</span></div>
    265<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="sms_8h.html#a42705001e2b9897f5167b67fb36c69dd">  321</a></span>&#160;<span class="preprocessor">#define BANK(VARNAME) ( (uint8_t) &amp; __bank_ ## VARNAME )</span></div>
    266<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#endif</span></div>
    267<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
    268<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="sms_8h.html#a086293f2afb4c7945460a4496b20aea3">  336</a></span>&#160;<span class="preprocessor">#define BANKREF(VARNAME) void __func_ ## VARNAME() __banked __naked { \</span></div>
    269<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">__asm \</span></div>
    270<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">    .local b___func_ ## VARNAME \</span></div>
    271<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">    ___bank_ ## VARNAME = b___func_ ## VARNAME \</span></div>
    272<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">    .globl ___bank_ ## VARNAME \</span></div>
    273<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="preprocessor">__endasm; \</span></div>
    274<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">}</span></div>
    275<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
    276<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="sms_8h.html#a261bba55a07b802baf99346feadd9852">  353</a></span>&#160;<span class="preprocessor">#define BANKREF_EXTERN(VARNAME) extern const void __bank_ ## VARNAME;</span></div>
    277<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
    278<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160; </div>
    279<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="sms_8h.html#af61262bbc05629f31020afce67e1b9ea">  360</a></span>&#160;<span class="preprocessor">#define SWITCH_ROM(b) MAP_FRAME1=(b)</span></div>
    280<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="sms_8h.html#a86d47feb2b999aaabbba9f63f4bb3567">  361</a></span>&#160;<span class="preprocessor">#define SWITCH_ROM1 SWITCH_ROM</span></div>
    281<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160; </div>
    282<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="sms_8h.html#a6d40a15ff27c2a1c8269d3dbe67eae65">  367</a></span>&#160;<span class="preprocessor">#define SWITCH_ROM2(b) MAP_FRAME2=(b)</span></div>
    283<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
    284<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="sms_8h.html#a121feb0c32d124562f52398aa9656e7b">  373</a></span>&#160;<span class="preprocessor">#define SWITCH_RAM(b) RAM_CONTROL=((b)&amp;1)?RAM_CONTROL|RAMCTL_BANK:RAM_CONTROL&amp;(~RAMCTL_BANK)</span></div>
    285<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160; </div>
    286<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="sms_8h.html#a0e9c88657beaac946231a4801481b97f">  378</a></span>&#160;<span class="preprocessor">#define ENABLE_RAM RAM_CONTROL|=RAMCTL_RAM</span></div>
    287<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
    288<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="sms_8h.html#a649d27b5587de16a66176e03a1b8ebd5">  383</a></span>&#160;<span class="preprocessor">#define DISABLE_RAM RAM_CONTROL&amp;=(~RAMCTL_RAM)</span></div>
    289<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
    290<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
    291<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="sms_8h.html#a217232c82eb5f99f7639b5786ce5abc6">  390</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a217232c82eb5f99f7639b5786ce5abc6">delay</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a>;</div>
    292<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
    293<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
    294<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="sms_8h.html#a176c477d759b814664785f3a0ad5e253">  395</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a176c477d759b814664785f3a0ad5e253">joypad</a>() <a class="code" href="asm_2types_8h.html#a0971918860055db2e50dacea4da8f3bc">OLDCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    295<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160; </div>
    296<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="sms_8h.html#a79b565677967da5ef9bf1a00aa6776ce">  399</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a79b565677967da5ef9bf1a00aa6776ce">waitpad</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> mask) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    297<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
    298<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="sms_8h.html#a955d3733e5018f18b17a572aff45cf26">  406</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a955d3733e5018f18b17a572aff45cf26">waitpadup</a>() <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a>, <a class="code" href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a>, <a class="code" href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a>, <a class="code" href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a>, <a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    299<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
    300<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;typedef struct {</div>
    301<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> npads;</div>
    302<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keyword">union </span>{</div>
    303<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <span class="keyword">struct </span>{</div>
    304<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;            <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> joy0, joy1, joy2, joy3;</div>
    305<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        };</div>
    306<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> joypads[4];</div>
    307<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    };</div>
    308<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;} <a class="code" href="structjoypads__t.html">joypads_t</a>;</div>
    309<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
    310<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="sms_8h.html#abe90cc2b5bb10c0ed9e01e548ddf8862">  431</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#abe90cc2b5bb10c0ed9e01e548ddf8862">joypad_init</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> npads, <a class="code" href="structjoypads__t.html">joypads_t</a> * joypads) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a>;</div>
    311<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
    312<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="sms_8h.html#a1d45c65829490c5ec98362f5e60edc20">  439</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a1d45c65829490c5ec98362f5e60edc20">joypad_ex</a>(<a class="code" href="structjoypads__t.html">joypads_t</a> * joypads) <a class="code" href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    313<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
    314<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160; </div>
    315<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="preprocessor">#if defined(__TARGET_sms)</span></div>
    316<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160; </div>
    317<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">#define RGB(r,g,b)        ((r) | ((g) &lt;&lt; 2) | ((b) &lt;&lt; 4))</span></div>
    318<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">#define RGB8(r,g,b)       (((r) &gt;&gt; 6) | (((g) &gt;&gt; 6) &lt;&lt; 2) | (((b) &gt;&gt; 6) &lt;&lt; 4))</span></div>
    319<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">#define RGBHTML(RGB24bit) (((RGB24bit) &gt;&gt; 22) | ((((RGB24bit) &amp; 0xFFFF) &gt;&gt; 14) &lt;&lt; 2) | ((((RGB24bit) &amp; 0xFF) &gt;&gt; 6) &lt;&lt; 4))</span></div>
    320<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
    321<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">#define RGB_RED        RGB( 3,  0,  0)</span></div>
    322<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="preprocessor">#define RGB_DARKRED    RGB( 2,  0,  0)</span></div>
    323<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="preprocessor">#define RGB_GREEN      RGB( 0,  3,  0)</span></div>
    324<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">#define RGB_DARKGREEN  RGB( 0,  2,  0)</span></div>
    325<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">#define RGB_BLUE       RGB( 0,  0,  3)</span></div>
    326<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">#define RGB_DARKBLUE   RGB( 0,  0,  2)</span></div>
    327<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">#define RGB_YELLOW     RGB( 3,  3,  0)</span></div>
    328<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">#define RGB_DARKYELLOW RGB( 2,  2,  0)</span></div>
    329<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">#define RGB_CYAN       RGB( 0,  3,  3)</span></div>
    330<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">#define RGB_AQUA       RGB( 3,  1,  2)</span></div>
    331<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">#define RGB_PINK       RGB( 3,  0,  3)</span></div>
    332<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">#define RGB_PURPLE     RGB( 2,  0,  2)</span></div>
    333<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">#define RGB_BLACK      RGB( 0,  0,  0)</span></div>
    334<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="preprocessor">#define RGB_DARKGRAY   RGB( 1,  1,  1)</span></div>
    335<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="preprocessor">#define RGB_LIGHTGRAY  RGB( 2,  2,  2)</span></div>
    336<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#define RGB_WHITE      RGB( 3,  3,  3)</span></div>
    337<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div>
    338<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="keyword">typedef</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="cgb_8h.html#af868d7cdbd052c6b972ef137e02f6495">palette_color_t</a>;</div>
    339<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160; </div>
    340<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">#elif defined(__TARGET_gg)</span></div>
    341<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160; </div>
    342<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">#define RGB(r,g,b)        ((uint16_t)(r) | (uint16_t)((g) &lt;&lt; 4) | (uint16_t)((b) &lt;&lt; 8))</span></div>
    343<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="preprocessor">#define RGB8(r,g,b)       ((uint16_t)((r) &gt;&gt; 4) | ((uint16_t)((g) &gt;&gt; 4) &lt;&lt; 4) | ((uint16_t)((b) &gt;&gt; 4) &lt;&lt; 8))</span></div>
    344<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">#define RGBHTML(RGB24bit) (((RGB24bit) &gt;&gt; 20) | ((((RGB24bit) &amp; 0xFFFF) &gt;&gt; 12) &lt;&lt; 4)|((((RGB24bit) &amp; 0xFF) &gt;&gt; 4) &lt;&lt; 8))</span></div>
    345<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; </div>
    346<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">#define RGB_RED        RGB(15,  0,  0)</span></div>
    347<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">#define RGB_DARKRED    RGB( 7,  0,  0)</span></div>
    348<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#define RGB_GREEN      RGB( 0, 15,  0)</span></div>
    349<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">#define RGB_DARKGREEN  RGB( 0,  7,  0)</span></div>
    350<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">#define RGB_BLUE       RGB( 0,  0, 15)</span></div>
    351<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#define RGB_DARKBLUE   RGB( 0,  0,  7)</span></div>
    352<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="preprocessor">#define RGB_YELLOW     RGB(15, 15,  0)</span></div>
    353<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">#define RGB_DARKYELLOW RGB( 7,  7,  0)</span></div>
    354<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="preprocessor">#define RGB_CYAN       RGB( 0, 15, 15)</span></div>
    355<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#define RGB_AQUA       RGB(14,  2, 11)</span></div>
    356<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#define RGB_PINK       RGB(15,  0, 15)</span></div>
    357<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="preprocessor">#define RGB_PURPLE     RGB(10,  0, 10)</span></div>
    358<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#define RGB_BLACK      RGB( 0,  0,  0)</span></div>
    359<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="preprocessor">#define RGB_DARKGRAY   RGB( 5,  5,  5)</span></div>
    360<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#define RGB_LIGHTGRAY  RGB(10, 10, 10)</span></div>
    361<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="preprocessor">#define RGB_WHITE      RGB(15, 15, 15)</span></div>
    362<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160; </div>
    363<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="preprocessor">#define RGB_LIGHTFLESH RGB(15, 10,  7)</span></div>
    364<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="preprocessor">#define RGB_BROWN      RGB( 5,  5,  0)</span></div>
    365<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">#define RGB_ORANGE     RGB(15, 10,  0)</span></div>
    366<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="preprocessor">#define RGB_TEAL       RGB( 7,  7,  0)</span></div>
    367<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
    368<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="keyword">typedef</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> <a class="code" href="cgb_8h.html#af868d7cdbd052c6b972ef137e02f6495">palette_color_t</a>;</div>
    369<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160; </div>
    370<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="preprocessor">#else</span></div>
    371<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="preprocessor">#error Unrecognized port</span></div>
    372<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="preprocessor">#endif</span></div>
    373<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
    374<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="sms_8h.html#abd34836339579013c097ae4dea10c014">  505</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#abd34836339579013c097ae4dea10c014">set_default_palette</a>();</div>
    375<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="sms_8h.html#a884a743919b234cd9c37789380784d08">  506</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a884a743919b234cd9c37789380784d08">cpu_fast</a>() {}</div>
    376<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
    377<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="sms_8h.html#a2c9aabf4519e01257b0d0e04e8108164">  508</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a2c9aabf4519e01257b0d0e04e8108164">set_palette_entry</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> palette, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> entry, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> rgb_data) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    378<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="sms_8h.html#a2215732f2ba2ec6406b65d3cca56a200">  509</a></span>&#160;<span class="preprocessor">#define set_bkg_palette_entry set_palette_entry</span></div>
    379<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="sms_8h.html#a8b5c17235a3f65af70492e109a25f237">  510</a></span>&#160;<span class="preprocessor">#define set_sprite_palette_entry(palette,entry,rgb_data) set_palette_entry(1,entry,rgb_data)</span></div>
    380<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="sms_8h.html#a92109adcc20960f26e8bc5fbb141d27e">  511</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a92109adcc20960f26e8bc5fbb141d27e">set_palette</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> first_palette, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb_palettes, <a class="code" href="cgb_8h.html#af868d7cdbd052c6b972ef137e02f6495">palette_color_t</a> *rgb_data) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a>;</div>
    381<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="sms_8h.html#a9f879bd31899f7989f887b6238de24e3">  512</a></span>&#160;<span class="preprocessor">#define set_bkg_palette set_palette</span></div>
    382<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="sms_8h.html#a7d5ed1aed79d8fd2894893d7f6f9b835">  513</a></span>&#160;<span class="preprocessor">#define set_sprite_palette(first_palette,nb_palettes,rgb_data) set_palette(1,1,rgb_data)</span></div>
    383<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160; </div>
    384<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="sms_8h.html#a24764a152441b966ea04a83278c73207">  515</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a24764a152441b966ea04a83278c73207">set_native_tile_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    385<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="sms_8h.html#aeff13dca11be49e8c159820c616016ec">  516</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aeff13dca11be49e8c159820c616016ec">set_bkg_4bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    386<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <a class="code" href="sms_8h.html#a24764a152441b966ea04a83278c73207">set_native_tile_data</a>(start, ntiles, src);</div>
    387<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;}</div>
    388<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="sms_8h.html#a24f53cfe7e25c04fbb5dcb08cfb3b432">  519</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a24f53cfe7e25c04fbb5dcb08cfb3b432">set_sprite_4bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    389<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    <a class="code" href="sms_8h.html#a24764a152441b966ea04a83278c73207">set_native_tile_data</a>((<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>)(start) + 0x100u, ntiles, src);</div>
    390<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;}</div>
    391<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160; </div>
    392<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="sms_8h.html#a67f80e65620470b55a4950e2966eb868">  523</a></span>&#160;<span class="preprocessor">#define COMPAT_PALETTE(C0,C1,C2,C3) (((uint16_t)(C3) &lt;&lt; 12) | ((uint16_t)(C2) &lt;&lt; 8) | ((uint16_t)(C1) &lt;&lt; 4) | (uint16_t)(C0))</span></div>
    393<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="keyword">extern</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a>;</div>
    394<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="sms_8h.html#aa224c9bac27c7fd268e62bdf33338a84">  525</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aa224c9bac27c7fd268e62bdf33338a84">set_2bpp_palette</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> palette) {</div>
    395<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a> = palette;</div>
    396<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;}</div>
    397<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">  528</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> palette) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    398<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="sms_8h.html#a8130306da1177f4fef89e699f8e2add4">  529</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a8130306da1177f4fef89e699f8e2add4">set_bkg_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    399<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <a class="code" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a>(start, ntiles, src, <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a>);</div>
    400<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;}</div>
    401<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="sms_8h.html#a216a3e3d320ee4d8cf4845600487ae39">  532</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a216a3e3d320ee4d8cf4845600487ae39">set_sprite_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    402<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <a class="code" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a>((<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>)(start) + 0x100u, ntiles, src, <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a>);</div>
    403<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;}</div>
    404<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="sms_8h.html#aa7ba76e4d44dbf19da351fd1ea8e3023">  535</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aa7ba76e4d44dbf19da351fd1ea8e3023">set_bkg_2bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    405<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <a class="code" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a>(start, ntiles, src, <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a>);</div>
    406<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;}</div>
    407<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="sms_8h.html#a10ee2919fcab7a5c482816ed718d1c4a">  538</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a10ee2919fcab7a5c482816ed718d1c4a">set_sprite_2bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    408<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <a class="code" href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a>((<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>)(start) + 0x100u, ntiles, src, <a class="code" href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a>);</div>
    409<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;}</div>
    410<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160; </div>
    411<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="keyword">extern</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> <a class="code" href="sms_8h.html#a250f5339e05523912926be566e9eb8c0">_current_1bpp_colors</a>;</div>
    412<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="sms_8h.html#adcb394299a1033616fc7d2faec8bd6ad">  543</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#adcb394299a1033616fc7d2faec8bd6ad">set_1bpp_colors</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> fgcolor, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> bgcolor) {</div>
    413<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <a class="code" href="sms_8h.html#a250f5339e05523912926be566e9eb8c0">_current_1bpp_colors</a> = ((<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a>)bgcolor &lt;&lt; 8) | fgcolor;</div>
    414<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;}</div>
    415<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="sms_8h.html#a747033606e041b45ae09b38fdb06b871">  546</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a747033606e041b45ae09b38fdb06b871">set_tile_1bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> colors) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    416<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="sms_8h.html#a4d5f74eed0489ebfdc2410ee3f9f7f04">  547</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a4d5f74eed0489ebfdc2410ee3f9f7f04">set_bkg_1bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    417<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    <a class="code" href="sms_8h.html#a747033606e041b45ae09b38fdb06b871">set_tile_1bpp_data</a>(start, ntiles, src, <a class="code" href="sms_8h.html#a250f5339e05523912926be566e9eb8c0">_current_1bpp_colors</a>);</div>
    418<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;}</div>
    419<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="sms_8h.html#a2cc121fbeb5570248531b85a8f0b5b97">  550</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a2cc121fbeb5570248531b85a8f0b5b97">set_sprite_1bpp_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> start, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> ntiles, <span class="keyword">const</span> <span class="keywordtype">void</span> *src) {</div>
    420<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <a class="code" href="sms_8h.html#a747033606e041b45ae09b38fdb06b871">set_tile_1bpp_data</a>((<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>)(start) + 0x100u, ntiles, src, <a class="code" href="sms_8h.html#a250f5339e05523912926be566e9eb8c0">_current_1bpp_colors</a>);</div>
    421<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;}</div>
    422<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160; </div>
    423<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160; </div>
    424<div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="sms_8h.html#a8fe17423c7ef7c44f1ccff27d3afbebc">  563</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a8fe17423c7ef7c44f1ccff27d3afbebc">set_data</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> dst, <span class="keyword">const</span> <span class="keywordtype">void</span> *src, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> size) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    425<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="sms_8h.html#a33a749b14dfbd203c460e8d7f3500636">  564</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a33a749b14dfbd203c460e8d7f3500636">vmemcpy</a>(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> dst, <span class="keyword">const</span> <span class="keywordtype">void</span> *src, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> size) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    426<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160; </div>
    427<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="sms_8h.html#a14fc41e69085b5aa3da2fae9a2aa3ef3">  566</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a14fc41e69085b5aa3da2fae9a2aa3ef3">set_tile_map</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *tiles) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    428<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="sms_8h.html#a7c38b146f77eda84981c06c2271fe116">  567</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a7c38b146f77eda84981c06c2271fe116">set_tile_map_compat</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *tiles) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    429<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="sms_8h.html#a9a732aec1b7aec7d10a9d76ca4da2064">  568</a></span>&#160;<span class="preprocessor">#define set_bkg_tiles set_tile_map_compat</span></div>
    430<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="sms_8h.html#a429db030287423012f40a6dca81ae7e3">  569</a></span>&#160;<span class="preprocessor">#define set_win_tiles set_tile_map_compat</span></div>
    431<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160; </div>
    432<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="keyword">extern</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a>;</div>
    433<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="sms_8h.html#a811c386cac0df2d260aacb5a43608be5">  572</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a811c386cac0df2d260aacb5a43608be5">set_bkg_based_tiles</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *tiles, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> base_tile) {</div>
    434<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <a class="code" href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a> = base_tile;</div>
    435<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <a class="code" href="sms_8h.html#a7c38b146f77eda84981c06c2271fe116">set_tile_map_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, tiles);</div>
    436<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <a class="code" href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a> = 0;</div>
    437<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;}</div>
    438<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="sms_8h.html#a739a212609ae60c9c56c095f96b4ea80">  577</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a739a212609ae60c9c56c095f96b4ea80">set_win_based_tiles</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *tiles, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> base_tile) {</div>
    439<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <a class="code" href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a> = base_tile;</div>
    440<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <a class="code" href="sms_8h.html#a7c38b146f77eda84981c06c2271fe116">set_tile_map_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, tiles);</div>
    441<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    <a class="code" href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a> = 0;</div>
    442<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;}</div>
    443<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
    444<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="sms_8h.html#a84774e034fe0e70af62bd17ac716ba34">  583</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a84774e034fe0e70af62bd17ac716ba34">set_tile_submap</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    445<div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">  584</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    446<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="sms_8h.html#a0cfd261bc7a94b1f6093f423bad30298">  585</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a0cfd261bc7a94b1f6093f423bad30298">set_bkg_submap</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w) {</div>
    447<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    <a class="code" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, map_w, map);</div>
    448<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;}</div>
    449<div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="sms_8h.html#abb50a392ca0d0419a080413287ee5d79">  588</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#abb50a392ca0d0419a080413287ee5d79">set_win_submap</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w) {</div>
    450<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <a class="code" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, map_w, map);</div>
    451<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;}</div>
    452<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160; </div>
    453<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="keyword">extern</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a>;</div>
    454<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="sms_8h.html#abc8bc5808620a9717263b8c9ec2237f0">  593</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#abc8bc5808620a9717263b8c9ec2237f0">set_bkg_based_submap</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> base_tile) {</div>
    455<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <a class="code" href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a> = base_tile;</div>
    456<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <a class="code" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, map_w, map);</div>
    457<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    <a class="code" href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a> = 0;</div>
    458<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;}</div>
    459<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="sms_8h.html#a1b8a1026983cb2b2c0bd46334b4692a0">  598</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a1b8a1026983cb2b2c0bd46334b4692a0">set_win_based_submap</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *map, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> map_w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> base_tile) {</div>
    460<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <a class="code" href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a> = base_tile;</div>
    461<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <a class="code" href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a>(x, y, w, <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, map_w, map);</div>
    462<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <a class="code" href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a> = 0;</div>
    463<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;}</div>
    464<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160; </div>
    465<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="sms_8h.html#aba932d128338fb19644842565139a20d">  604</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#aba932d128338fb19644842565139a20d">fill_rect</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> tile) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    466<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="sms_8h.html#af2fc27409f907cfae9583b5ebf0c5ea8">  605</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#af2fc27409f907cfae9583b5ebf0c5ea8">fill_rect_compat</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> w, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a>, <span class="keyword">const</span> <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> tile) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    467<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="sms_8h.html#a3b7ffab8d64e2c345f03221145a935c0">  606</a></span>&#160;<span class="preprocessor">#define fill_bkg_rect fill_rect_compat</span></div>
    468<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="sms_8h.html#a5a69a3129f4faa99857a8b3d80db1d4a">  607</a></span>&#160;<span class="preprocessor">#define fill_win_rect fill_rect_compat</span></div>
    469<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160; </div>
    470<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[];</div>
    471<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160; </div>
    472<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a5435fd985412934e96a490e103c6bc49">_shadow_OAM_base</a>;</div>
    473<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; </div>
    474<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;<span class="keyword">extern</span> <span class="keyword">volatile</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a388d1dff2698172ba8574e43f5c77c93">_shadow_OAM_OFF</a>;</div>
    475<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160; </div>
    476<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="sms_8h.html#abfd70bf31185a4900680977c9fb5a5ec">  645</a></span>&#160;<span class="preprocessor">#define DISABLE_VBL_TRANSFER \</span></div>
    477<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="preprocessor">    _shadow_OAM_base = 0</span></div>
    478<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160; </div>
    479<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="sms_8h.html#a77d516c9d3f86f100eddea5e0d133a76">  650</a></span>&#160;<span class="preprocessor">#define ENABLE_VBL_TRANSFER \</span></div>
    480<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="preprocessor">    _shadow_OAM_base = (uint8_t)((uint16_t)&amp;shadow_OAM &gt;&gt; 8)</span></div>
    481<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160; </div>
    482<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="sms_8h.html#a8b77608c87a9aef65a03531482b2163b">  655</a></span>&#160;<span class="preprocessor">#define MAX_HARDWARE_SPRITES 64</span></div>
    483<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160; </div>
    484<div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="sms_8h.html#a7e0cdfd6b9a2ae1b7f30384f132d8687">  659</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a7e0cdfd6b9a2ae1b7f30384f132d8687">SET_SHADOW_OAM_ADDRESS</a>(<span class="keywordtype">void</span> * address) {</div>
    485<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    <a class="code" href="sms_8h.html#a5435fd985412934e96a490e103c6bc49">_shadow_OAM_base</a> = (<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>)((<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a>)address &gt;&gt; 8);</div>
    486<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;}</div>
    487<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160; </div>
    488<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="sms_8h.html#a05bf0b9f1328de7b568a19a2a428bcfe">  679</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a05bf0b9f1328de7b568a19a2a428bcfe">set_sprite_tile</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> tile) {</div>
    489<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[0x41+(nb &lt;&lt; 1)] = tile;</div>
    490<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;}</div>
    491<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
    492<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160; </div>
    493<div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="sms_8h.html#af5c0beff7d7a7d8641b51fd95c811b2a">  690</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#af5c0beff7d7a7d8641b51fd95c811b2a">get_sprite_tile</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb) {</div>
    494<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[0x41+(nb &lt;&lt; 1)];</div>
    495<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;}</div>
    496<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160; </div>
    497<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="sms_8h.html#a99ea3252469e3614e977cce2aa1d06f7">  694</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a99ea3252469e3614e977cce2aa1d06f7">set_sprite_prop</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> prop) {</div>
    498<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    nb; prop;</div>
    499<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;}</div>
    500<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; </div>
    501<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="sms_8h.html#a6b873c807c9e2c90fb574951e85fdf88">  698</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="sms_8h.html#a6b873c807c9e2c90fb574951e85fdf88">get_sprite_prop</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb) {</div>
    502<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    nb;</div>
    503<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    <span class="keywordflow">return</span> 0;</div>
    504<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;}</div>
    505<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160; </div>
    506<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="sms_8h.html#ab42c12c1d9aed3fd963248fbea9830cd">  715</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#ab42c12c1d9aed3fd963248fbea9830cd">move_sprite</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y) {</div>
    507<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[nb] = (y &lt; <a class="code" href="sms_2hardware_8h.html#ad3b833661b103edc2648258dd741c92c">VDP_SAT_TERM</a>) ? y : 0xC0;</div>
    508<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[0x40+(nb &lt;&lt; 1)] = x;</div>
    509<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;}</div>
    510<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160; </div>
    511<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160; </div>
    512<div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="sms_8h.html#a6c59aa9a4f9ea42bed6ca6940b2741fe">  731</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#a6c59aa9a4f9ea42bed6ca6940b2741fe">scroll_sprite</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb, <a class="code" href="stdint_8h.html#aef44329758059c91c76d334e8fc09700">int8_t</a> x, <a class="code" href="stdint_8h.html#aef44329758059c91c76d334e8fc09700">int8_t</a> y) {</div>
    513<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> new_y = <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[nb] + y;</div>
    514<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[nb] = (new_y &lt; <a class="code" href="sms_2hardware_8h.html#ad3b833661b103edc2648258dd741c92c">VDP_SAT_TERM</a>) ? new_y : 0xC0;</div>
    515<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[0x40+(nb &lt;&lt; 1)] = x;</div>
    516<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;}</div>
    517<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; </div>
    518<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160; </div>
    519<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="sms_8h.html#ad22c51635d052399bbbe1777999c794d">  742</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="sms_8h.html#ad22c51635d052399bbbe1777999c794d">hide_sprite</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> nb) {</div>
    520<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <a class="code" href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a>[nb] = 0xC0;</div>
    521<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;}</div>
    522<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
    523<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="sms_8h.html#afe1bc7117a68cd0939c2d03baaa06b89">  752</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="sms_8h.html#afe1bc7117a68cd0939c2d03baaa06b89">set_vram_byte</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> * addr, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> v) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    524<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160; </div>
    525<div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="sms_8h.html#a476f433ea736a1dd610490238f2a6250">  761</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> * <a class="code" href="sms_8h.html#a476f433ea736a1dd610490238f2a6250">set_attributed_tile_xy</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> t) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    526<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
    527<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="sms_8h.html#a5834057f6297c0fa8f8e9a6b714f1ff7">  770</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> * <a class="code" href="sms_8h.html#a5834057f6297c0fa8f8e9a6b714f1ff7">set_tile_xy</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> t) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    528<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="sms_8h.html#adcd40a58f7c7d348d506cc400cd94739">  771</a></span>&#160;<span class="preprocessor">#define set_bkg_tile_xy set_tile_xy</span></div>
    529<div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="sms_8h.html#a95d929d964d9988f4dc5a25ed399ae08">  772</a></span>&#160;<span class="preprocessor">#define set_win_tile_xy set_tile_xy</span></div>
    530<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160; </div>
    531<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="sms_8h.html#a66b4bfb8c1ea3005ff01ce040a778e63">  777</a></span>&#160;<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> * <a class="code" href="sms_8h.html#a66b4bfb8c1ea3005ff01ce040a778e63">get_bkg_xy_addr</a>(<a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> x, <a class="code" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> y) <a class="code" href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a> <a class="code" href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a>(<a class="code" href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a>, <a class="code" href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a>);</div>
    532<div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="sms_8h.html#a6eaafdbe6cf1695d30724ce75acb9412">  778</a></span>&#160;<span class="preprocessor">#define get_win_xy_addr get_bkg_xy_addr</span></div>
    533<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160; </div>
    534<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* _SMS_H */</span><span class="preprocessor"></span></div>
    535</div><!-- fragment --></div><!-- contents -->
    536</div><!-- doc-content -->
    537<div class="ttc" id="asms_8h_html_a8fe17423c7ef7c44f1ccff27d3afbebc"><div class="ttname"><a href="sms_8h.html#a8fe17423c7ef7c44f1ccff27d3afbebc">set_data</a></div><div class="ttdeci">void set_data(uint16_t dst, const void *src, uint16_t size) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    538<div class="ttc" id="asms_8h_html_a10ee2919fcab7a5c482816ed718d1c4a"><div class="ttname"><a href="sms_8h.html#a10ee2919fcab7a5c482816ed718d1c4a">set_sprite_2bpp_data</a></div><div class="ttdeci">void set_sprite_2bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:538</div></div>
    539<div class="ttc" id="asms_8h_html_a811c386cac0df2d260aacb5a43608be5"><div class="ttname"><a href="sms_8h.html#a811c386cac0df2d260aacb5a43608be5">set_bkg_based_tiles</a></div><div class="ttdeci">void set_bkg_based_tiles(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *tiles, uint8_t base_tile)</div><div class="ttdef"><b>Definition:</b> sms.h:572</div></div>
    540<div class="ttc" id="astdint_8h_html_aba7bc1797add20fe3efdf37ced1182c5"><div class="ttname"><a href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></div><div class="ttdeci">unsigned char uint8_t</div><div class="ttdef"><b>Definition:</b> stdint.h:51</div></div>
    541<div class="ttc" id="asms_8h_html_aa7ba76e4d44dbf19da351fd1ea8e3023"><div class="ttname"><a href="sms_8h.html#aa7ba76e4d44dbf19da351fd1ea8e3023">set_bkg_2bpp_data</a></div><div class="ttdeci">void set_bkg_2bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:535</div></div>
    542<div class="ttc" id="astdint_8h_html_aef44329758059c91c76d334e8fc09700"><div class="ttname"><a href="stdint_8h.html#aef44329758059c91c76d334e8fc09700">int8_t</a></div><div class="ttdeci">signed char int8_t</div><div class="ttdef"><b>Definition:</b> stdint.h:43</div></div>
    543<div class="ttc" id="asms_8h_html_a51add93356a25c71e8c37a73c9065c9d"><div class="ttname"><a href="sms_8h.html#a51add93356a25c71e8c37a73c9065c9d">add_LCD</a></div><div class="ttdeci">void add_LCD(int_handler h) Z88DK_FASTCALL PRESERVES_REGS(b</div></div>
    544<div class="ttc" id="asms_8h_html_a6c66a583a8f0744e3985c89725e3dc10"><div class="ttname"><a href="sms_8h.html#a6c66a583a8f0744e3985c89725e3dc10">add_TIM</a></div><div class="ttdeci">void add_TIM(int_handler h) Z88DK_FASTCALL</div></div>
    545<div class="ttc" id="asms_8h_html_a14fc41e69085b5aa3da2fae9a2aa3ef3"><div class="ttname"><a href="sms_8h.html#a14fc41e69085b5aa3da2fae9a2aa3ef3">set_tile_map</a></div><div class="ttdeci">void set_tile_map(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *tiles) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    546<div class="ttc" id="asms_8h_html_aeff13dca11be49e8c159820c616016ec"><div class="ttname"><a href="sms_8h.html#aeff13dca11be49e8c159820c616016ec">set_bkg_4bpp_data</a></div><div class="ttdeci">void set_bkg_4bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:516</div></div>
    547<div class="ttc" id="astructjoypads__t_html"><div class="ttname"><a href="structjoypads__t.html">joypads_t</a></div><div class="ttdef"><b>Definition:</b> gb.h:615</div></div>
    548<div class="ttc" id="asms_8h_html_a7b09691f25fddd65f12ed199b3f88ef0"><div class="ttname"><a href="sms_8h.html#a7b09691f25fddd65f12ed199b3f88ef0">display_off</a></div><div class="ttdeci">void display_off()</div><div class="ttdef"><b>Definition:</b> sms.h:221</div></div>
    549<div class="ttc" id="asms_8h_html_a955d3733e5018f18b17a572aff45cf26"><div class="ttname"><a href="sms_8h.html#a955d3733e5018f18b17a572aff45cf26">waitpadup</a></div><div class="ttdeci">void waitpadup() PRESERVES_REGS(b</div></div>
    550<div class="ttc" id="asms_8h_html_a05bf0b9f1328de7b568a19a2a428bcfe"><div class="ttname"><a href="sms_8h.html#a05bf0b9f1328de7b568a19a2a428bcfe">set_sprite_tile</a></div><div class="ttdeci">void set_sprite_tile(uint8_t nb, uint8_t tile)</div><div class="ttdef"><b>Definition:</b> sms.h:679</div></div>
    551<div class="ttc" id="asms_8h_html_a0a3d95ad0ab8ad213016101d2e9c3d3e"><div class="ttname"><a href="sms_8h.html#a0a3d95ad0ab8ad213016101d2e9c3d3e">d</a></div><div class="ttdeci">void d</div><div class="ttdef"><b>Definition:</b> sms.h:86</div></div>
    552<div class="ttc" id="asms_2hardware_8h_html"><div class="ttname"><a href="sms_2hardware_8h.html">hardware.h</a></div></div>
    553<div class="ttc" id="asms_8h_html_ad22c51635d052399bbbe1777999c794d"><div class="ttname"><a href="sms_8h.html#ad22c51635d052399bbbe1777999c794d">hide_sprite</a></div><div class="ttdeci">void hide_sprite(uint8_t nb)</div><div class="ttdef"><b>Definition:</b> sms.h:742</div></div>
    554<div class="ttc" id="asms_8h_html_a35a3ff12ab34534b763517576afe38a6"><div class="ttname"><a href="sms_8h.html#a35a3ff12ab34534b763517576afe38a6">remove_JOY</a></div><div class="ttdeci">void remove_JOY(int_handler h) Z88DK_FASTCALL</div></div>
    555<div class="ttc" id="asms_8h_html_ab472d9bbb1bcfd141374f5babc71934c"><div class="ttname"><a href="sms_8h.html#ab472d9bbb1bcfd141374f5babc71934c">_submap_tile_offset</a></div><div class="ttdeci">uint8_t _submap_tile_offset</div></div>
    556<div class="ttc" id="asms_8h_html_a739a212609ae60c9c56c095f96b4ea80"><div class="ttname"><a href="sms_8h.html#a739a212609ae60c9c56c095f96b4ea80">set_win_based_tiles</a></div><div class="ttdeci">void set_win_based_tiles(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *tiles, uint8_t base_tile)</div><div class="ttdef"><b>Definition:</b> sms.h:577</div></div>
    557<div class="ttc" id="asms_8h_html_a4d5f74eed0489ebfdc2410ee3f9f7f04"><div class="ttname"><a href="sms_8h.html#a4d5f74eed0489ebfdc2410ee3f9f7f04">set_bkg_1bpp_data</a></div><div class="ttdeci">void set_bkg_1bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:547</div></div>
    558<div class="ttc" id="asms_2hardware_8h_html_a413fdabdacfcda90cc73a04311a2ec6d"><div class="ttname"><a href="sms_2hardware_8h.html#a413fdabdacfcda90cc73a04311a2ec6d">VDP_R1</a></div><div class="ttdeci">#define VDP_R1</div><div class="ttdef"><b>Definition:</b> hardware.h:74</div></div>
    559<div class="ttc" id="asms_8h_html_abb50a392ca0d0419a080413287ee5d79"><div class="ttname"><a href="sms_8h.html#abb50a392ca0d0419a080413287ee5d79">set_win_submap</a></div><div class="ttdeci">void set_win_submap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *map, uint8_t map_w)</div><div class="ttdef"><b>Definition:</b> sms.h:588</div></div>
    560<div class="ttc" id="asms_8h_html_a78d2fd18666afec116f176d46debb4e7"><div class="ttname"><a href="sms_8h.html#a78d2fd18666afec116f176d46debb4e7">sys_time</a></div><div class="ttdeci">volatile uint16_t sys_time</div></div>
    561<div class="ttc" id="asms_8h_html_a0cfd261bc7a94b1f6093f423bad30298"><div class="ttname"><a href="sms_8h.html#a0cfd261bc7a94b1f6093f423bad30298">set_bkg_submap</a></div><div class="ttdeci">void set_bkg_submap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *map, uint8_t map_w)</div><div class="ttdef"><b>Definition:</b> sms.h:585</div></div>
    562<div class="ttc" id="asms_8h_html_af79b920bcb642bba2e652874c4f7eeff"><div class="ttname"><a href="sms_8h.html#af79b920bcb642bba2e652874c4f7eeff">l</a></div><div class="ttdeci">void l</div><div class="ttdef"><b>Definition:</b> sms.h:215</div></div>
    563<div class="ttc" id="asms_8h_html_ade5d4c955b871b0ed884273cc2b7215a"><div class="ttname"><a href="sms_8h.html#ade5d4c955b871b0ed884273cc2b7215a">cancel_pending_interrupts</a></div><div class="ttdeci">uint8_t cancel_pending_interrupts()</div><div class="ttdef"><b>Definition:</b> sms.h:190</div></div>
    564<div class="ttc" id="asms_8h_html_a79b565677967da5ef9bf1a00aa6776ce"><div class="ttname"><a href="sms_8h.html#a79b565677967da5ef9bf1a00aa6776ce">waitpad</a></div><div class="ttdeci">uint8_t waitpad(uint8_t mask) Z88DK_FASTCALL PRESERVES_REGS(b</div></div>
    565<div class="ttc" id="asms_8h_html_a1b8a1026983cb2b2c0bd46334b4692a0"><div class="ttname"><a href="sms_8h.html#a1b8a1026983cb2b2c0bd46334b4692a0">set_win_based_submap</a></div><div class="ttdeci">void set_win_based_submap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *map, uint8_t map_w, uint8_t base_tile)</div><div class="ttdef"><b>Definition:</b> sms.h:598</div></div>
    566<div class="ttc" id="astdint_8h_html_adf4d876453337156dde61095e1f20223"><div class="ttname"><a href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a></div><div class="ttdeci">unsigned short int uint16_t</div><div class="ttdef"><b>Definition:</b> stdint.h:52</div></div>
    567<div class="ttc" id="asms_8h_html_aa2ddf9662320c4a9d00fd4a94d347570"><div class="ttname"><a href="sms_8h.html#aa2ddf9662320c4a9d00fd4a94d347570">WRITE_VDP_DATA</a></div><div class="ttdeci">void WRITE_VDP_DATA(uint16_t data) Z88DK_FASTCALL PRESERVES_REGS(b</div></div>
    568<div class="ttc" id="asms_8h_html_ab752b1bb0f58da2a6d52e9747c4b3dd8"><div class="ttname"><a href="sms_8h.html#ab752b1bb0f58da2a6d52e9747c4b3dd8">set_tile_2bpp_data</a></div><div class="ttdeci">void set_tile_2bpp_data(uint16_t start, uint16_t ntiles, const void *src, uint16_t palette) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    569<div class="ttc" id="asms_8h_html_afe1bc7117a68cd0939c2d03baaa06b89"><div class="ttname"><a href="sms_8h.html#afe1bc7117a68cd0939c2d03baaa06b89">set_vram_byte</a></div><div class="ttdeci">void set_vram_byte(uint8_t *addr, uint8_t v) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    570<div class="ttc" id="aversion_8h_html"><div class="ttname"><a href="version_8h.html">version.h</a></div></div>
    571<div class="ttc" id="asms_8h_html_a7542d00af674e3c58b6c9887ab01919f"><div class="ttname"><a href="sms_8h.html#a7542d00af674e3c58b6c9887ab01919f">refresh_OAM</a></div><div class="ttdeci">void refresh_OAM()</div></div>
    572<div class="ttc" id="asms_8h_html_a48163816121cd669526817d3e6266fd9"><div class="ttname"><a href="sms_8h.html#a48163816121cd669526817d3e6266fd9">add_JOY</a></div><div class="ttdeci">void add_JOY(int_handler h) Z88DK_FASTCALL</div></div>
    573<div class="ttc" id="asms_2hardware_8h_html_adbfdd7c42539613c371820dffd14906f"><div class="ttname"><a href="sms_2hardware_8h.html#adbfdd7c42539613c371820dffd14906f">R1_DISP_ON</a></div><div class="ttdeci">#define R1_DISP_ON</div><div class="ttdef"><b>Definition:</b> hardware.h:79</div></div>
    574<div class="ttc" id="asms_8h_html_a5834057f6297c0fa8f8e9a6b714f1ff7"><div class="ttname"><a href="sms_8h.html#a5834057f6297c0fa8f8e9a6b714f1ff7">set_tile_xy</a></div><div class="ttdeci">uint8_t * set_tile_xy(uint8_t x, uint8_t y, uint8_t t) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    575<div class="ttc" id="asms_8h_html_a66b4bfb8c1ea3005ff01ce040a778e63"><div class="ttname"><a href="sms_8h.html#a66b4bfb8c1ea3005ff01ce040a778e63">get_bkg_xy_addr</a></div><div class="ttdeci">uint8_t * get_bkg_xy_addr(uint8_t x, uint8_t y) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    576<div class="ttc" id="asms_8h_html_af5c0beff7d7a7d8641b51fd95c811b2a"><div class="ttname"><a href="sms_8h.html#af5c0beff7d7a7d8641b51fd95c811b2a">get_sprite_tile</a></div><div class="ttdeci">uint8_t get_sprite_tile(uint8_t nb)</div><div class="ttdef"><b>Definition:</b> sms.h:690</div></div>
    577<div class="ttc" id="asms_8h_html_aba932d128338fb19644842565139a20d"><div class="ttname"><a href="sms_8h.html#aba932d128338fb19644842565139a20d">fill_rect</a></div><div class="ttdeci">void fill_rect(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint16_t tile) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    578<div class="ttc" id="asms_8h_html_a0b3366755f3276b0243c1e0497471b7a"><div class="ttname"><a href="sms_8h.html#a0b3366755f3276b0243c1e0497471b7a">c</a></div><div class="ttdeci">void c</div><div class="ttdef"><b>Definition:</b> sms.h:86</div></div>
    579<div class="ttc" id="asms_8h_html_a3372d61a07e0466bdb909a27f3aaaca9"><div class="ttname"><a href="sms_8h.html#a3372d61a07e0466bdb909a27f3aaaca9">add_SIO</a></div><div class="ttdeci">void add_SIO(int_handler h) Z88DK_FASTCALL</div></div>
    580<div class="ttc" id="asms_8h_html_a747033606e041b45ae09b38fdb06b871"><div class="ttname"><a href="sms_8h.html#a747033606e041b45ae09b38fdb06b871">set_tile_1bpp_data</a></div><div class="ttdeci">void set_tile_1bpp_data(uint16_t start, uint16_t ntiles, const void *src, uint16_t colors) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    581<div class="ttc" id="aasm_2z80_2types_8h_html_aa19670cfef9fe1cc31f28fafb0e1000a"><div class="ttname"><a href="asm_2z80_2types_8h.html#aa19670cfef9fe1cc31f28fafb0e1000a">Z88DK_CALLEE</a></div><div class="ttdeci">#define Z88DK_CALLEE</div><div class="ttdef"><b>Definition:</b> types.h:42</div></div>
    582<div class="ttc" id="asms_8h_html_aba0308b5e8e154cc920f041a185ac770"><div class="ttname"><a href="sms_8h.html#aba0308b5e8e154cc920f041a185ac770">set_tile_submap_compat</a></div><div class="ttdeci">void set_tile_submap_compat(uint8_t x, uint8_t y, uint8_t w, uint8_t h, uint8_t map_w, const uint8_t *map) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    583<div class="ttc" id="asms_2hardware_8h_html_a9c49833bc96a70b8972027d28c816d2f"><div class="ttname"><a href="sms_2hardware_8h.html#a9c49833bc96a70b8972027d28c816d2f">VDP_RSCX</a></div><div class="ttdeci">#define VDP_RSCX</div><div class="ttdef"><b>Definition:</b> hardware.h:124</div></div>
    584<div class="ttc" id="astdint_8h_html_a66634143db08bebe9b46ab4cb1fc6fd3"><div class="ttname"><a href="stdint_8h.html#a66634143db08bebe9b46ab4cb1fc6fd3">int16_t</a></div><div class="ttdeci">short int int16_t</div><div class="ttdef"><b>Definition:</b> stdint.h:44</div></div>
    585<div class="ttc" id="asms_8h_html_af2fc27409f907cfae9583b5ebf0c5ea8"><div class="ttname"><a href="sms_8h.html#af2fc27409f907cfae9583b5ebf0c5ea8">fill_rect_compat</a></div><div class="ttdeci">void fill_rect_compat(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint16_t tile) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    586<div class="ttc" id="asms_8h_html_a6261537edc74068e3f7f057e6a3e8a57"><div class="ttname"><a href="sms_8h.html#a6261537edc74068e3f7f057e6a3e8a57">move_bkg</a></div><div class="ttdeci">void move_bkg(uint8_t x, uint8_t y)</div><div class="ttdef"><b>Definition:</b> sms.h:194</div></div>
    587<div class="ttc" id="asms_8h_html_a33a749b14dfbd203c460e8d7f3500636"><div class="ttname"><a href="sms_8h.html#a33a749b14dfbd203c460e8d7f3500636">vmemcpy</a></div><div class="ttdeci">void vmemcpy(uint16_t dst, const void *src, uint16_t size) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    588<div class="ttc" id="asms_8h_html_a99ea3252469e3614e977cce2aa1d06f7"><div class="ttname"><a href="sms_8h.html#a99ea3252469e3614e977cce2aa1d06f7">set_sprite_prop</a></div><div class="ttdeci">void set_sprite_prop(uint8_t nb, uint8_t prop)</div><div class="ttdef"><b>Definition:</b> sms.h:694</div></div>
    589<div class="ttc" id="asms_8h_html_a92109adcc20960f26e8bc5fbb141d27e"><div class="ttname"><a href="sms_8h.html#a92109adcc20960f26e8bc5fbb141d27e">set_palette</a></div><div class="ttdeci">void set_palette(uint8_t first_palette, uint8_t nb_palettes, palette_color_t *rgb_data) Z88DK_CALLEE</div></div>
    590<div class="ttc" id="asms_8h_html_a498b148efd22ab8ad9b844b2dc5e5bb8"><div class="ttname"><a href="sms_8h.html#a498b148efd22ab8ad9b844b2dc5e5bb8">WRITE_VDP_CMD</a></div><div class="ttdeci">void WRITE_VDP_CMD(uint16_t cmd) Z88DK_FASTCALL PRESERVES_REGS(b</div></div>
    591<div class="ttc" id="asms_8h_html_a964e713cb2535d7464d0d6ca7677049a"><div class="ttname"><a href="sms_8h.html#a964e713cb2535d7464d0d6ca7677049a">__READ_VDP_REG</a></div><div class="ttdeci">#define __READ_VDP_REG(REG)</div><div class="ttdef"><b>Definition:</b> sms.h:84</div></div>
    592<div class="ttc" id="asms_8h_html_a3ea524204d839377cf39842eec23e202"><div class="ttname"><a href="sms_8h.html#a3ea524204d839377cf39842eec23e202">mode</a></div><div class="ttdeci">void mode(uint8_t m) OLDCALL</div></div>
    593<div class="ttc" id="asms_8h_html_ae59628e2237f301df1341e22bfc8296e"><div class="ttname"><a href="sms_8h.html#ae59628e2237f301df1341e22bfc8296e">add_VBL</a></div><div class="ttdeci">void add_VBL(int_handler h) Z88DK_FASTCALL PRESERVES_REGS(d</div></div>
    594<div class="ttc" id="asms_8h_html_aa34282113397af810be737df1acec36c"><div class="ttname"><a href="sms_8h.html#aa34282113397af810be737df1acec36c">__WRITE_VDP_REG</a></div><div class="ttdeci">#define __WRITE_VDP_REG(REG, v)</div><div class="ttdef"><b>Definition:</b> sms.h:83</div></div>
    595<div class="ttc" id="asms_8h_html_ad9a83378f5ec1f6444c879e4cf1e1a83"><div class="ttname"><a href="sms_8h.html#ad9a83378f5ec1f6444c879e4cf1e1a83">get_mode</a></div><div class="ttdeci">uint8_t get_mode() OLDCALL</div></div>
    596<div class="ttc" id="astdint_8h_html"><div class="ttname"><a href="stdint_8h.html">stdint.h</a></div></div>
    597<div class="ttc" id="asms_2hardware_8h_html_a3cce162b45d638126c478c5b6f7bcbc7"><div class="ttname"><a href="sms_2hardware_8h.html#a3cce162b45d638126c478c5b6f7bcbc7">VDP_RSCY</a></div><div class="ttdeci">#define VDP_RSCY</div><div class="ttdef"><b>Definition:</b> hardware.h:129</div></div>
    598<div class="ttc" id="asms_8h_html_abc8bc5808620a9717263b8c9ec2237f0"><div class="ttname"><a href="sms_8h.html#abc8bc5808620a9717263b8c9ec2237f0">set_bkg_based_submap</a></div><div class="ttdeci">void set_bkg_based_submap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *map, uint8_t map_w, uint8_t base_tile)</div><div class="ttdef"><b>Definition:</b> sms.h:593</div></div>
    599<div class="ttc" id="asms_8h_html_a6c59aa9a4f9ea42bed6ca6940b2741fe"><div class="ttname"><a href="sms_8h.html#a6c59aa9a4f9ea42bed6ca6940b2741fe">scroll_sprite</a></div><div class="ttdeci">void scroll_sprite(uint8_t nb, int8_t x, int8_t y)</div><div class="ttdef"><b>Definition:</b> sms.h:731</div></div>
    600<div class="ttc" id="asms_8h_html_a884a743919b234cd9c37789380784d08"><div class="ttname"><a href="sms_8h.html#a884a743919b234cd9c37789380784d08">cpu_fast</a></div><div class="ttdeci">void cpu_fast()</div><div class="ttdef"><b>Definition:</b> sms.h:506</div></div>
    601<div class="ttc" id="asms_8h_html_adcb394299a1033616fc7d2faec8bd6ad"><div class="ttname"><a href="sms_8h.html#adcb394299a1033616fc7d2faec8bd6ad">set_1bpp_colors</a></div><div class="ttdeci">void set_1bpp_colors(uint8_t fgcolor, uint8_t bgcolor)</div><div class="ttdef"><b>Definition:</b> sms.h:543</div></div>
    602<div class="ttc" id="acgb_8h_html_af868d7cdbd052c6b972ef137e02f6495"><div class="ttname"><a href="cgb_8h.html#af868d7cdbd052c6b972ef137e02f6495">palette_color_t</a></div><div class="ttdeci">uint16_t palette_color_t</div><div class="ttdef"><b>Definition:</b> cgb.h:85</div></div>
    603<div class="ttc" id="asms_8h_html_a24764a152441b966ea04a83278c73207"><div class="ttname"><a href="sms_8h.html#a24764a152441b966ea04a83278c73207">set_native_tile_data</a></div><div class="ttdeci">void set_native_tile_data(uint16_t start, uint16_t ntiles, const void *src) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    604<div class="ttc" id="asms_8h_html_a5435fd985412934e96a490e103c6bc49"><div class="ttname"><a href="sms_8h.html#a5435fd985412934e96a490e103c6bc49">_shadow_OAM_base</a></div><div class="ttdeci">volatile uint8_t _shadow_OAM_base</div><div class="ttdef"><b>Definition:</b> gb.h:1404</div></div>
    605<div class="ttc" id="agb_8h_html_a4c2e4adef74067fdbb49005bc73de937"><div class="ttname"><a href="gb_8h.html#a4c2e4adef74067fdbb49005bc73de937">b</a></div><div class="ttdeci">void b</div><div class="ttdef"><b>Definition:</b> gb.h:608</div></div>
    606<div class="ttc" id="asms_8h_html_a24f53cfe7e25c04fbb5dcb08cfb3b432"><div class="ttname"><a href="sms_8h.html#a24f53cfe7e25c04fbb5dcb08cfb3b432">set_sprite_4bpp_data</a></div><div class="ttdeci">void set_sprite_4bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:519</div></div>
    607<div class="ttc" id="aasm_2types_8h_html_a0971918860055db2e50dacea4da8f3bc"><div class="ttname"><a href="asm_2types_8h.html#a0971918860055db2e50dacea4da8f3bc">OLDCALL</a></div><div class="ttdeci">#define OLDCALL</div><div class="ttdef"><b>Definition:</b> types.h:19</div></div>
    608<div class="ttc" id="asms_8h_html_a476f433ea736a1dd610490238f2a6250"><div class="ttname"><a href="sms_8h.html#a476f433ea736a1dd610490238f2a6250">set_attributed_tile_xy</a></div><div class="ttdeci">uint8_t * set_attributed_tile_xy(uint8_t x, uint8_t y, uint16_t t) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    609<div class="ttc" id="asms_8h_html_a216a3e3d320ee4d8cf4845600487ae39"><div class="ttname"><a href="sms_8h.html#a216a3e3d320ee4d8cf4845600487ae39">set_sprite_data</a></div><div class="ttdeci">void set_sprite_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:532</div></div>
    610<div class="ttc" id="asms_8h_html_a1d45c65829490c5ec98362f5e60edc20"><div class="ttname"><a href="sms_8h.html#a1d45c65829490c5ec98362f5e60edc20">joypad_ex</a></div><div class="ttdeci">void joypad_ex(joypads_t *joypads) Z88DK_FASTCALL PRESERVES_REGS(iyh</div></div>
    611<div class="ttc" id="asms_8h_html_abe90cc2b5bb10c0ed9e01e548ddf8862"><div class="ttname"><a href="sms_8h.html#abe90cc2b5bb10c0ed9e01e548ddf8862">joypad_init</a></div><div class="ttdeci">uint8_t joypad_init(uint8_t npads, joypads_t *joypads) Z88DK_CALLEE</div></div>
    612<div class="ttc" id="aasm_2z80_2types_8h_html_af45e54cf59a5202abc9125c07b64abf1"><div class="ttname"><a href="asm_2z80_2types_8h.html#af45e54cf59a5202abc9125c07b64abf1">Z88DK_FASTCALL</a></div><div class="ttdeci">#define Z88DK_FASTCALL</div><div class="ttdef"><b>Definition:</b> types.h:43</div></div>
    613<div class="ttc" id="asms_8h_html_af02f9e73bd894cc25e03aedb0a10a91d"><div class="ttname"><a href="sms_8h.html#af02f9e73bd894cc25e03aedb0a10a91d">shadow_OAM</a></div><div class="ttdeci">volatile uint8_t shadow_OAM[]</div></div>
    614<div class="ttc" id="asms_8h_html_a8130306da1177f4fef89e699f8e2add4"><div class="ttname"><a href="sms_8h.html#a8130306da1177f4fef89e699f8e2add4">set_bkg_data</a></div><div class="ttdeci">void set_bkg_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:529</div></div>
    615<div class="ttc" id="asms_8h_html_aa8962b27b960bb0c8d3bb899246c690c"><div class="ttname"><a href="sms_8h.html#aa8962b27b960bb0c8d3bb899246c690c">remove_LCD</a></div><div class="ttdeci">void remove_LCD(int_handler h) Z88DK_FASTCALL PRESERVES_REGS(b</div></div>
    616<div class="ttc" id="asms_8h_html_a7e0cdfd6b9a2ae1b7f30384f132d8687"><div class="ttname"><a href="sms_8h.html#a7e0cdfd6b9a2ae1b7f30384f132d8687">SET_SHADOW_OAM_ADDRESS</a></div><div class="ttdeci">void SET_SHADOW_OAM_ADDRESS(void *address)</div><div class="ttdef"><b>Definition:</b> sms.h:659</div></div>
    617<div class="ttc" id="asms_8h_html_a217232c82eb5f99f7639b5786ce5abc6"><div class="ttname"><a href="sms_8h.html#a217232c82eb5f99f7639b5786ce5abc6">delay</a></div><div class="ttdeci">void delay(uint16_t d) Z88DK_FASTCALL</div></div>
    618<div class="ttc" id="asms_8h_html_a98de9141f407585801fcbf55bf6dcc4c"><div class="ttname"><a href="sms_8h.html#a98de9141f407585801fcbf55bf6dcc4c">remove_SIO</a></div><div class="ttdeci">void remove_SIO(int_handler h) Z88DK_FASTCALL</div></div>
    619<div class="ttc" id="asms_8h_html_a250f5339e05523912926be566e9eb8c0"><div class="ttname"><a href="sms_8h.html#a250f5339e05523912926be566e9eb8c0">_current_1bpp_colors</a></div><div class="ttdeci">uint16_t _current_1bpp_colors</div></div>
    620<div class="ttc" id="asms_8h_html_ab42c12c1d9aed3fd963248fbea9830cd"><div class="ttname"><a href="sms_8h.html#ab42c12c1d9aed3fd963248fbea9830cd">move_sprite</a></div><div class="ttdeci">void move_sprite(uint8_t nb, uint8_t x, uint8_t y)</div><div class="ttdef"><b>Definition:</b> sms.h:715</div></div>
    621<div class="ttc" id="asms_8h_html_a6b873c807c9e2c90fb574951e85fdf88"><div class="ttname"><a href="sms_8h.html#a6b873c807c9e2c90fb574951e85fdf88">get_sprite_prop</a></div><div class="ttdeci">uint8_t get_sprite_prop(uint8_t nb)</div><div class="ttdef"><b>Definition:</b> sms.h:698</div></div>
    622<div class="ttc" id="asms_8h_html_a22dc57e538f0f49e2dc7d1c73f67fc8f"><div class="ttname"><a href="sms_8h.html#a22dc57e538f0f49e2dc7d1c73f67fc8f">_current_2bpp_palette</a></div><div class="ttdeci">uint16_t _current_2bpp_palette</div></div>
    623<div class="ttc" id="asms_8h_html_a98f7ef49e1758c601979bcb0ff19a1f0"><div class="ttname"><a href="sms_8h.html#a98f7ef49e1758c601979bcb0ff19a1f0">remove_VBL</a></div><div class="ttdeci">void remove_VBL(int_handler h) Z88DK_FASTCALL PRESERVES_REGS(iyh</div></div>
    624<div class="ttc" id="asms_2hardware_8h_html_ad3b833661b103edc2648258dd741c92c"><div class="ttname"><a href="sms_2hardware_8h.html#ad3b833661b103edc2648258dd741c92c">VDP_SAT_TERM</a></div><div class="ttdeci">#define VDP_SAT_TERM</div><div class="ttdef"><b>Definition:</b> hardware.h:188</div></div>
    625<div class="ttc" id="asms_8h_html_aa224c9bac27c7fd268e62bdf33338a84"><div class="ttname"><a href="sms_8h.html#aa224c9bac27c7fd268e62bdf33338a84">set_2bpp_palette</a></div><div class="ttdeci">void set_2bpp_palette(uint16_t palette)</div><div class="ttdef"><b>Definition:</b> sms.h:525</div></div>
    626<div class="ttc" id="asms_8h_html_a388d1dff2698172ba8574e43f5c77c93"><div class="ttname"><a href="sms_8h.html#a388d1dff2698172ba8574e43f5c77c93">_shadow_OAM_OFF</a></div><div class="ttdeci">volatile uint8_t _shadow_OAM_OFF</div></div>
    627<div class="ttc" id="asms_8h_html_af279c752a3b15c4bd5c67f54b92e553f"><div class="ttname"><a href="sms_8h.html#af279c752a3b15c4bd5c67f54b92e553f">iyl</a></div><div class="ttdeci">void iyl</div><div class="ttdef"><b>Definition:</b> sms.h:86</div></div>
    628<div class="ttc" id="asms_8h_html_a176c477d759b814664785f3a0ad5e253"><div class="ttname"><a href="sms_8h.html#a176c477d759b814664785f3a0ad5e253">joypad</a></div><div class="ttdeci">uint8_t joypad() OLDCALL PRESERVES_REGS(b</div></div>
    629<div class="ttc" id="asms_8h_html_a7c38b146f77eda84981c06c2271fe116"><div class="ttname"><a href="sms_8h.html#a7c38b146f77eda84981c06c2271fe116">set_tile_map_compat</a></div><div class="ttdeci">void set_tile_map_compat(uint8_t x, uint8_t y, uint8_t w, uint8_t h, const uint8_t *tiles) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    630<div class="ttc" id="aasm_2types_8h_html_a7ed081d8dfb6902784b2fc730bbb7f96"><div class="ttname"><a href="asm_2types_8h.html#a7ed081d8dfb6902784b2fc730bbb7f96">NONBANKED</a></div><div class="ttdeci">#define NONBANKED</div><div class="ttdef"><b>Definition:</b> types.h:36</div></div>
    631<div class="ttc" id="asms_8h_html_abd34836339579013c097ae4dea10c014"><div class="ttname"><a href="sms_8h.html#abd34836339579013c097ae4dea10c014">set_default_palette</a></div><div class="ttdeci">void set_default_palette()</div></div>
    632<div class="ttc" id="asms_8h_html_acd186eb292d441f9389e77b545a55619"><div class="ttname"><a href="sms_8h.html#acd186eb292d441f9389e77b545a55619">wait_vbl_done</a></div><div class="ttdeci">void wait_vbl_done() PRESERVES_REGS(b</div></div>
    633<div class="ttc" id="asms_8h_html_a1f583f7a880daa6145ca78b086a209d1"><div class="ttname"><a href="sms_8h.html#a1f583f7a880daa6145ca78b086a209d1">scroll_bkg</a></div><div class="ttdeci">void scroll_bkg(int8_t x, int8_t y)</div><div class="ttdef"><b>Definition:</b> sms.h:199</div></div>
    634<div class="ttc" id="asms_8h_html_a98785a1b0ddc91cd8e8c8fab8de1de20"><div class="ttname"><a href="sms_8h.html#a98785a1b0ddc91cd8e8c8fab8de1de20">remove_TIM</a></div><div class="ttdeci">void remove_TIM(int_handler h) Z88DK_FASTCALL</div></div>
    635<div class="ttc" id="aasm_2types_8h_html_acb825e83a33fcc06482c59b4ab2cf961"><div class="ttname"><a href="asm_2types_8h.html#acb825e83a33fcc06482c59b4ab2cf961">PRESERVES_REGS</a></div><div class="ttdeci">#define PRESERVES_REGS(...)</div><div class="ttdef"><b>Definition:</b> types.h:29</div></div>
    636<div class="ttc" id="asms_8h_html_aa82205e9629f984d0b3dc8055c211522"><div class="ttname"><a href="sms_8h.html#aa82205e9629f984d0b3dc8055c211522">_map_tile_offset</a></div><div class="ttdeci">uint8_t _map_tile_offset</div></div>
    637<div class="ttc" id="asms_8h_html_a2cc121fbeb5570248531b85a8f0b5b97"><div class="ttname"><a href="sms_8h.html#a2cc121fbeb5570248531b85a8f0b5b97">set_sprite_1bpp_data</a></div><div class="ttdeci">void set_sprite_1bpp_data(uint16_t start, uint16_t ntiles, const void *src)</div><div class="ttdef"><b>Definition:</b> sms.h:550</div></div>
    638<div class="ttc" id="asms_8h_html_a2c9aabf4519e01257b0d0e04e8108164"><div class="ttname"><a href="sms_8h.html#a2c9aabf4519e01257b0d0e04e8108164">set_palette_entry</a></div><div class="ttdeci">void set_palette_entry(uint8_t palette, uint8_t entry, uint16_t rgb_data) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    639<div class="ttc" id="asms_8h_html_a1f1dfeb2f802fe99f37fe91867b84456"><div class="ttname"><a href="sms_8h.html#a1f1dfeb2f802fe99f37fe91867b84456">h</a></div><div class="ttdeci">void h</div><div class="ttdef"><b>Definition:</b> sms.h:215</div></div>
    640<div class="ttc" id="asms_8h_html_aade844cba18122ad48cb2f92b1c87ab0"><div class="ttname"><a href="sms_8h.html#aade844cba18122ad48cb2f92b1c87ab0">iyh</a></div><div class="ttdeci">void iyh</div><div class="ttdef"><b>Definition:</b> sms.h:86</div></div>
    641<div class="ttc" id="asms_8h_html_a9508f919d9482d1d51534ccac212454d"><div class="ttname"><a href="sms_8h.html#a9508f919d9482d1d51534ccac212454d">int_handler</a></div><div class="ttdeci">void(* int_handler)(void) NONBANKED</div><div class="ttdef"><b>Definition:</b> sms.h:152</div></div>
    642<div class="ttc" id="asms_8h_html_aefda0091b2934571a11e07b512735f50"><div class="ttname"><a href="sms_8h.html#aefda0091b2934571a11e07b512735f50">set_interrupts</a></div><div class="ttdeci">void set_interrupts(uint8_t flags) Z88DK_FASTCALL</div></div>
    643<div class="ttc" id="asms_8h_html_a84774e034fe0e70af62bd17ac716ba34"><div class="ttname"><a href="sms_8h.html#a84774e034fe0e70af62bd17ac716ba34">set_tile_submap</a></div><div class="ttdeci">void set_tile_submap(uint8_t x, uint8_t y, uint8_t w, uint8_t h, uint8_t map_w, const uint8_t *map) Z88DK_CALLEE PRESERVES_REGS(iyh</div></div>
    644<div class="ttc" id="asms_8h_html_aeda4515a31485c9688c4601ac5ce2d79"><div class="ttname"><a href="sms_8h.html#aeda4515a31485c9688c4601ac5ce2d79">e</a></div><div class="ttdeci">void e</div><div class="ttdef"><b>Definition:</b> sms.h:86</div></div>
    645<!-- HTML footer for doxygen 1.8.14-->
    646<!-- start footer part -->
    647<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
    648</div>
    649</body>
    650</html>