<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.1" xml:lang="en-US">
  <compounddef id="keyboard_8h" kind="file" language="C++">
    <compoundname>keyboard.h</compoundname>
    <includedby refid="kernel_8h" local="yes">kernel.h</includedby>
    <invincdepgraph>
      <node id="28">
        <label>ramdisk.h</label>
        <link refid="ramdisk_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>acpi.h</label>
        <link refid="acpi_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>arp.h</label>
        <link refid="arp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="10">
        <label>dns.h</label>
        <link refid="dns_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="14">
        <label>fat32.h</label>
        <link refid="fat32_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="32">
        <label>udp.h</label>
        <link refid="udp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>tcp.h</label>
        <link refid="tcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>devicename.h</label>
        <link refid="devicename_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>idt.h</label>
        <link refid="idt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>drawing.h</label>
        <link refid="drawing_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="6">
        <label>basic_tokenizer.h</label>
        <link refid="basic__tokenizer_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="30">
        <label>rtl8139.h</label>
        <link refid="rtl8139_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>keyboard.h</label>
        <link refid="keyboard_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="27">
        <label>printf.h</label>
        <link refid="printf_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>e1000.h</label>
        <link refid="e1000_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="19">
        <label>initialisation-functions.h</label>
        <link refid="initialisation-functions_8h"/>
      </node>
      <node id="15">
        <label>fpu.h</label>
        <link refid="fpu_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="17">
        <label>icmp.h</label>
        <link refid="icmp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="21">
        <label>ip.h</label>
        <link refid="ip_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="22">
        <label>maths.h</label>
        <link refid="maths_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="13">
        <label>ethernet.h</label>
        <link refid="ethernet_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>kernel.h</label>
        <link refid="kernel_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
      </node>
      <node id="23">
        <label>memcpy.h</label>
        <link refid="memcpy_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="25">
        <label>partition.h</label>
        <link refid="partition_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="29">
        <label>random.h</label>
        <link refid="random_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>hashmap.h</label>
        <link refid="hashmap_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="24">
        <label>net.h</label>
        <link refid="net_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="20">
        <label>interrupt.h</label>
        <link refid="interrupt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>ahci.h</label>
        <link refid="ahci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="9">
        <label>dhcp.h</label>
        <link refid="dhcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="7">
        <label>clock.h</label>
        <link refid="clock_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
      <sectiondef kind="enum">
      <memberdef kind="enum" id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0b" prot="public" static="no" strong="no">
        <type></type>
        <name>extended_key_t</name>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba5d9c9ba1d8f2c6f6737db37d3f449071" prot="public">
          <name>KEY_PAGEUP</name>
          <initializer>= 245</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba5996c34d86df2b3c1be741aeb35bdbc4" prot="public">
          <name>KEY_PAGEDOWN</name>
          <initializer>= 246</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba5adcbb7ea7c9c7405c50fe2a3e7c2629" prot="public">
          <name>KEY_DEL</name>
          <initializer>= 247</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba2eb57cc422cad9808960658c9ebc987a" prot="public">
          <name>KEY_INS</name>
          <initializer>= 248</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0baa8adb6fcb92dec58fb19410eacfdd403" prot="public">
          <name>KEY_END</name>
          <initializer>= 249</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba0848a442d907968b211b97bc2bd88acd" prot="public">
          <name>KEY_UP</name>
          <initializer>= 250</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0baa9cdac7967bf7d88fdb761138a2a3416" prot="public">
          <name>KEY_DOWN</name>
          <initializer>= 251</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba612120b69c7dfd46086db7aaebdbcf65" prot="public">
          <name>KEY_LEFT</name>
          <initializer>= 252</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0ba6504370d9c6391e1a9da6a1a529b089d" prot="public">
          <name>KEY_RIGHT</name>
          <initializer>= 253</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="keyboard_8h_1a28ea8f371588faf8c0f361fd56c0db0bad5b83418c285e43af5d3a87b4d4049d7" prot="public">
          <name>KEY_HOME</name>
          <initializer>= 254</initializer>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
<para>Extended keys. BASIC reports these keypresses directly via INKEY$. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="12" column="1" bodyfile="include/keyboard.h" bodystart="12" bodyend="23"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="keyboard_8h_1ac3a72156d4bbba013e4d62801992794d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void init_keyboard</definition>
        <argsstring>()</argsstring>
        <name>init_keyboard</name>
        <briefdescription>
<para>Claim keyboard interrupt. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="28" column="6" declfile="include/keyboard.h" declline="28" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="keyboard_8h_1af186c1d48613bd858b7f774e5bd47935" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>unsigned char</type>
        <definition>unsigned char kgetc</definition>
        <argsstring>(console *cons)</argsstring>
        <name>kgetc</name>
        <param>
          <type><ref refid="structconsole" kindref="compound">console</ref> *</type>
          <declname>cons</declname>
        </param>
        <briefdescription>
<para>Returns next key in circular buffer, or 255 if no key available. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cons</parametername>
</parameternamelist>
<parameterdescription>
<para>current console </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>unsigned char key from circular buffer </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="36" column="15" declfile="include/keyboard.h" declline="36" declcolumn="15"/>
      </memberdef>
      <memberdef kind="function" id="keyboard_8h_1afdb02475d45b894eb5ec2a57b4100eea" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool ctrl_held</definition>
        <argsstring>()</argsstring>
        <name>ctrl_held</name>
        <briefdescription>
<para>Returns true if the CTRL key is held down. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>true if CTRL key held </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="43" column="6" declfile="include/keyboard.h" declline="43" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="keyboard_8h_1a91e9663f1e43e4aca8439739c3b10c69" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool shift_held</definition>
        <argsstring>()</argsstring>
        <name>shift_held</name>
        <briefdescription>
<para>Returns true if the SHIFT key is held down. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>true if SHIFT key held </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="50" column="6" declfile="include/keyboard.h" declline="50" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="keyboard_8h_1ac7d5ba52d15d8a0066ee06b39399411f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool alt_held</definition>
        <argsstring>()</argsstring>
        <name>alt_held</name>
        <briefdescription>
<para>Returns true if the ALT key is held down. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>true if ALT key held </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="57" column="6" declfile="include/keyboard.h" declline="57" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="keyboard_8h_1af491f52ce63929279d3733c13ba771d2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool caps_lock_on</definition>
        <argsstring>()</argsstring>
        <name>caps_lock_on</name>
        <briefdescription>
<para>Returns true if the CAPS LOCK key is enganged. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>true if CAPS LOCK is on </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/keyboard.h" line="64" column="6" declfile="include/keyboard.h" declline="64" declcolumn="6"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para><simplesect kind="author"><para>Craig Edwards (<ulink url="mailto:craigedwards@brainbox.cc">craigedwards@brainbox.cc</ulink>) </para>
</simplesect>
<simplesect kind="copyright"><para>Copyright (c) 2012-2023 </para>
</simplesect>
</para>
    </detaileddescription>
    <location file="include/keyboard.h"/>
  </compounddef>
</doxygen>
