<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Watcher7</id>
		<title>ComputerCraft Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.computercraft.info/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Watcher7"/>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/Special:Contributions/Watcher7"/>
		<updated>2026-07-11T07:56:29Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=OS_(API)&amp;diff=5823</id>
		<title>OS (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=OS_(API)&amp;diff=5823"/>
				<updated>2013-07-12T02:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number. Changed nonexistent type float to type number. Fixed inconsistent spacing of parentheses around arguments.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Operating System API allows for interfacing with the Lua based Operating System itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
OS (API)&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.version]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the version of the OS the computer is running.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.getComputerID]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the unique ID of this computer. [[os.computerID]]() also behaves exactly the same as [[os.getComputerID]]().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.getComputerLabel]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the label of this computer. [[os.computerLabel]]() also behaves exactly the same as [[os.getComputerLabel]]().&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.setComputerLabel]]({{type|string}} label)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Set the label of this computer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.run]]({{type|table}} environment, {{type|string}} program path [, {{type|string}} arguments])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;An advanced way of starting programs. A started program will have a given &amp;lt;var&amp;gt;environment&amp;lt;/var&amp;gt; table which determines what functions it has available, as well as any variables it will be able to access by default. You may prefer to use the [[Shell (API)]] unless you need to do something special.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[#APIs|os.loadAPI]]({{type|string}} name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Loads a Lua script as an API in its own namespace (see example). It will be available to '''all''' programs that run on the terminal.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[#APIs|os.unloadAPI]]({{type|string}} name)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Unloads a previously loaded API.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[Os.pullEvent|os.pullEvent]]({{type|string}} target-event)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Blocks until the computer receives an event, or if &amp;lt;var&amp;gt;target-event&amp;lt;/var&amp;gt; is specified, will block until an instance of &amp;lt;var&amp;gt;target-event&amp;lt;/var&amp;gt; occurs. [[Os.pullEvent|os.pullEvent]](target-event) returns the event and any parameters the event may have. If a &amp;lt;var&amp;gt;target-event&amp;lt;/var&amp;gt; is specified, the computer will not break for any other events (except termination).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[#pullEvent|os.pullEventRaw]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Advanced version of pullEvent(). [[#pullEvent|os.pullEventRaw]]() will block until an event occurs, and then returns the event (any any parameters the event may have). Unlike [[Os.pullEvent|os.pullEvent]](target-event), this function will not break for system events, and can be used to handle termination events.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.queueEvent]]({{type|string}} event, param1, param2, ...)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Adds an event to the event queue with the name &amp;lt;var&amp;gt;event&amp;lt;/var&amp;gt; and the given parameters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.clock]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns CPU time.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.startTimer]]({{Type|number}} timeout)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Queues an event to be triggered after a number of seconds (&amp;lt;var&amp;gt;timeout&amp;lt;/var&amp;gt;). The ID of the timer is returned from this function to differentiate multiple timers. Timers are one-shot; once they have fired an event you will need to start another one if you need a recurring timer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.sleep]]({{Type|number}} timeout)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Makes the system wait a number of seconds before continuing in the program. [[os.sleep]](timeout) may also be used as simply &amp;quot;sleep( timeout )&amp;quot;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.time]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the current Minecraft world time.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.day]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Returns the current Minecraft day.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.setAlarm]]({{Type|number}} time)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Queues an event to be triggered at the specified Minecraft world &amp;lt;var&amp;gt;time&amp;lt;/var&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.shutdown]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Turns off the computer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[os.reboot]]()&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Reboots the computer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;br /&gt;
&lt;br /&gt;
== APIs ==&lt;br /&gt;
&lt;br /&gt;
APIs are Lua files which are loaded into the OS itself, and expose functions which other programs may use. The stock [[:Category:APIs|APIs]] that ship with ComputerCraft are loaded in this way, and may be replaced by a computer’s user or programs.&lt;br /&gt;
&lt;br /&gt;
The following is an example of a valid implementation of an API, and its usage after being registered:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  -- &amp;quot;apiTest&amp;quot; file&lt;br /&gt;
  function foo(bar)&lt;br /&gt;
    print(bar)&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  -- &amp;quot;program&amp;quot; file&lt;br /&gt;
  os.loadAPI(&amp;quot;apiTest&amp;quot;)&lt;br /&gt;
  apiTest.foo(&amp;quot;this is a test&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div id=&amp;quot;pullEvent&amp;quot;&amp;gt;os.pullEvent()&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
os.pullEvent() causes the current program to pause, retrieving the next event from the computer's queue of events. If there is no event to read, then the program will stall until such an event becomes available. Note that if a program has not attempted to pull an event in the past ten seconds, it will be forcefully terminated to prevent CPU waste in SMP environments.&lt;br /&gt;
&lt;br /&gt;
os.pullEvent() returns the name of the event that was read, as well as up to five parameters:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local event, p1, p2, p3, p4, p5 = os.pullEvent()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
os.pullEvent() is usually run inside a 'while true do' loop.&lt;br /&gt;
&lt;br /&gt;
An advanced version of this method &amp;lt;code&amp;gt;os.pullEventRaw&amp;lt;/code&amp;gt; bypasses the normal handling of events from the OS. You may use this to act on the &amp;quot;Terminate&amp;quot; event (triggered when holding Ctrl-T) for custom termination logic.&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Keys.getName&amp;diff=5822</id>
		<title>Keys.getName</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Keys.getName&amp;diff=5822"/>
				<updated>2013-07-12T01:59:03Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=keys.getName&lt;br /&gt;
|args={{Type|number}} code&lt;br /&gt;
|api=keys&lt;br /&gt;
|returns={{type|string}} the name of the key, or [[nil]] if not a valid key code&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Translates a numerical key code to a human-readable name. The human-readable name is one of the constants in the [[Keys (API)|keys API]].&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Look up the name of key code 42.&lt;br /&gt;
|code=print(keys.getName(42))&lt;br /&gt;
|output=leftShift&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Keys_(API)&amp;diff=5821</id>
		<title>Keys (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Keys_(API)&amp;diff=5821"/>
				<updated>2013-07-12T01:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Keys API provides a table of numerical codes corresponding to keyboard keys, suitable for decoding [[Key (event)|key events]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
keys (API)&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 100px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Return&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{type|string}} keyName&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[keys.getName]]({{Type|number}} code)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Translates a numerical key code to a human-readable name.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although this API contains only one method, it also contains a vast number of constants, one per key, containing the numerical key codes for those keys. As of ComputerCraft 1.52, the following constants are defined:&lt;br /&gt;
* a&lt;br /&gt;
* b&lt;br /&gt;
* c&lt;br /&gt;
* d&lt;br /&gt;
* e&lt;br /&gt;
* f&lt;br /&gt;
* g&lt;br /&gt;
* h&lt;br /&gt;
* i&lt;br /&gt;
* j&lt;br /&gt;
* k&lt;br /&gt;
* l&lt;br /&gt;
* m&lt;br /&gt;
* n&lt;br /&gt;
* o&lt;br /&gt;
* p&lt;br /&gt;
* q&lt;br /&gt;
* r&lt;br /&gt;
* s&lt;br /&gt;
* t&lt;br /&gt;
* u&lt;br /&gt;
* v&lt;br /&gt;
* w&lt;br /&gt;
* x&lt;br /&gt;
* y&lt;br /&gt;
* z&lt;br /&gt;
* one&lt;br /&gt;
* two&lt;br /&gt;
* three&lt;br /&gt;
* four&lt;br /&gt;
* five&lt;br /&gt;
* six&lt;br /&gt;
* seven&lt;br /&gt;
* eight&lt;br /&gt;
* nine&lt;br /&gt;
* zero&lt;br /&gt;
* minus&lt;br /&gt;
* equals&lt;br /&gt;
* backspace&lt;br /&gt;
* tab&lt;br /&gt;
* leftBracket&lt;br /&gt;
* rightBracket&lt;br /&gt;
* enter&lt;br /&gt;
* leftCtrl&lt;br /&gt;
* semiColon&lt;br /&gt;
* apostrophe&lt;br /&gt;
* grave&lt;br /&gt;
* leftShift&lt;br /&gt;
* backslash&lt;br /&gt;
* comma&lt;br /&gt;
* period&lt;br /&gt;
* slash&lt;br /&gt;
* rightShift&lt;br /&gt;
* multiply&lt;br /&gt;
* leftAlt&lt;br /&gt;
* space&lt;br /&gt;
* capsLock&lt;br /&gt;
* f1&lt;br /&gt;
* f2&lt;br /&gt;
* f3&lt;br /&gt;
* f4&lt;br /&gt;
* f5&lt;br /&gt;
* f6&lt;br /&gt;
* f7&lt;br /&gt;
* f8&lt;br /&gt;
* f9&lt;br /&gt;
* f10&lt;br /&gt;
* numLock&lt;br /&gt;
* scollLock&lt;br /&gt;
* numPad7&lt;br /&gt;
* numPad8&lt;br /&gt;
* numPad9&lt;br /&gt;
* numPadSubtract&lt;br /&gt;
* numPad4&lt;br /&gt;
* numPad5&lt;br /&gt;
* numPad6&lt;br /&gt;
* numPadAdd&lt;br /&gt;
* numPad1&lt;br /&gt;
* numPad2&lt;br /&gt;
* numPad3&lt;br /&gt;
* numPad0&lt;br /&gt;
* numPadDecimal&lt;br /&gt;
* f11&lt;br /&gt;
* f12&lt;br /&gt;
* f13&lt;br /&gt;
* f14&lt;br /&gt;
* f15&lt;br /&gt;
* kana&lt;br /&gt;
* convert&lt;br /&gt;
* noconvert&lt;br /&gt;
* yen&lt;br /&gt;
* numPadEquals&lt;br /&gt;
* cimcumflex&lt;br /&gt;
* at&lt;br /&gt;
* colon&lt;br /&gt;
* underscore&lt;br /&gt;
* kanji&lt;br /&gt;
* stop&lt;br /&gt;
* ax&lt;br /&gt;
* numPadEnter&lt;br /&gt;
* rightCtrl&lt;br /&gt;
* numPadComma&lt;br /&gt;
* numPadDivide&lt;br /&gt;
* rightAlt&lt;br /&gt;
* pause&lt;br /&gt;
* home&lt;br /&gt;
* up&lt;br /&gt;
* pageUp&lt;br /&gt;
* left&lt;br /&gt;
* right&lt;br /&gt;
* end&lt;br /&gt;
* down&lt;br /&gt;
* pageDown&lt;br /&gt;
* insert&lt;br /&gt;
* delete&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.tonumb&amp;diff=5820</id>
		<title>Bit.tonumb</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.tonumb&amp;diff=5820"/>
				<updated>2013-07-12T01:53:48Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
&lt;br /&gt;
{{Deprecated&lt;br /&gt;
|type=This function&lt;br /&gt;
|version=1.42&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.tonumb&lt;br /&gt;
|args={{Type|table}} bit_tbl&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the number resulting from the conversion of &amp;lt;var&amp;gt;bit_tbl&amp;lt;/var&amp;gt; from binary&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Converts an array (numerically-indexed table) containing binary bit values to a number (the inverse of [[bit.tobits]])&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Convert the binary representation 10010 into its corresponding value, 18&lt;br /&gt;
|code=t = {}&amp;lt;br&amp;gt;t[1] = 0&amp;lt;br&amp;gt;t[2] = 1&amp;lt;br&amp;gt;t[3] = 0&amp;lt;br&amp;gt;t[4] = 0&amp;lt;br&amp;gt;t[5] = 1&amp;lt;br&amp;gt;print(bit.tonumb(t))&lt;br /&gt;
|output=18&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.tobits&amp;diff=5819</id>
		<title>Bit.tobits</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.tobits&amp;diff=5819"/>
				<updated>2013-07-12T01:52:03Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
&lt;br /&gt;
{{Deprecated&lt;br /&gt;
|type=This function&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.tobits&lt;br /&gt;
|args={{Type|number}} n&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|table}} the bits making up the value &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;, with entries up to the most-significant 1 bit in &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Converts a number to an array (numerically-indexed table) containing the corresponding binary bit values (the inverse of [[bit.tonumb]])&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Convert the number 18 into its binary representation (10010)&lt;br /&gt;
|code=for k, v in pairs(bit.tobits(18)) do print(k, &amp;quot;, &amp;quot;, v) end&lt;br /&gt;
|output=1, 0&amp;lt;br&amp;gt;2, 1&amp;lt;br&amp;gt;3, 0&amp;lt;br&amp;gt;4, 0&amp;lt;br&amp;gt;5, 1&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
As of ComputerCraft 1.42 the bit library has moved to Java code, and as such this function is no longer required or included.&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.bnot&amp;diff=5818</id>
		<title>Bit.bnot</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.bnot&amp;diff=5818"/>
				<updated>2013-07-12T01:51:14Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.bnot&lt;br /&gt;
|args={{Type|number}} n&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of NOT &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Computes the bitwise NOT of a number, taken in the domain and range of 32-bit unsigned integers&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=NOT the number 18 (10010), yielding 4294967277 (11111111111111111111111111101101, 32 bits in length)&lt;br /&gt;
|code=print(bit.bnot(18))&lt;br /&gt;
|output=4294967277&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
All bit operations operate in binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system]. A NOT operation yields a 1 if its input is 0 and a 0 if its input is 1. This function produces an output by computing the NOT of each bit of its input independently. So, for the example above:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit index:&lt;br /&gt;
| 31&lt;br /&gt;
| 30&lt;br /&gt;
| 29&lt;br /&gt;
| 28&lt;br /&gt;
| 27&lt;br /&gt;
| 26&lt;br /&gt;
| 25&lt;br /&gt;
| 24&lt;br /&gt;
| 23&lt;br /&gt;
| 22&lt;br /&gt;
| 21&lt;br /&gt;
| 20&lt;br /&gt;
| 19&lt;br /&gt;
| 18&lt;br /&gt;
| 17&lt;br /&gt;
| 16&lt;br /&gt;
| 15&lt;br /&gt;
| 14&lt;br /&gt;
| 13&lt;br /&gt;
| 12&lt;br /&gt;
| 11&lt;br /&gt;
| 10&lt;br /&gt;
| 9&lt;br /&gt;
| 8&lt;br /&gt;
| 7&lt;br /&gt;
| 6&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input (18):&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Output (4294967277):&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.band&amp;diff=5817</id>
		<title>Bit.band</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.band&amp;diff=5817"/>
				<updated>2013-07-12T01:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.band&lt;br /&gt;
|args={{Type|number}} m, {{Type|number}} n&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;m&amp;lt;/var&amp;gt; AND &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Computes the bitwise AND of two numbers&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=AND the number 18 (10010) with the number 3 (00011), yielding 2 (00010)&lt;br /&gt;
|code=print(bit.band(18, 3))&lt;br /&gt;
|output=2&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
All bit operations operate in binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system]. An AND operation between two bits yields a 1 if the bits are both 1 and a 0 if either of the bits is 0. This function produces an output by computing the AND of each bit of its two inputs independently. So, for the example above:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit index:&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 1 (18):&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 2 (3):&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! Calculation:&lt;br /&gt;
| 3 has a 0&lt;br /&gt;
| Both 0&lt;br /&gt;
| Both 0&lt;br /&gt;
| Both 1&lt;br /&gt;
| 18 has a 0&lt;br /&gt;
|-&lt;br /&gt;
! Output (2):&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.bor&amp;diff=5816</id>
		<title>Bit.bor</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.bor&amp;diff=5816"/>
				<updated>2013-07-12T01:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.bor&lt;br /&gt;
|args={{Type|number}} m, {{Type|number}} n&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;m&amp;lt;/var&amp;gt; OR &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Computes the bitwise inclusive OR of two numbers&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=OR the number 18 (10010) with the number 3 (00011), yielding 19 (10011)&lt;br /&gt;
|code=print(bit.bor(18, 3))&lt;br /&gt;
|output=19&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
All bit operations operate in binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system]. An inclusive OR operation between two bits yields a 1 if either of the bits is 1 and a 0 if they are both 0. This function produces an output by computing the OR of each bit of its two inputs independently. So, for the example above:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit index:&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 1 (18):&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 2 (3):&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! Calculation:&lt;br /&gt;
| 18 has a 1&lt;br /&gt;
| Both 0&lt;br /&gt;
| Both 0&lt;br /&gt;
| Both 1&lt;br /&gt;
| 3 has a 1&lt;br /&gt;
|-&lt;br /&gt;
! Output (19):&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.bxor&amp;diff=5815</id>
		<title>Bit.bxor</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.bxor&amp;diff=5815"/>
				<updated>2013-07-12T01:21:30Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.bxor&lt;br /&gt;
|args={{Type|number}} m, {{Type|number}} n&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;m&amp;lt;/var&amp;gt; XOR &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Computes the bitwise exclusive OR of two numbers&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=XOR the number 18 (10010) with the number 3 (00011), yielding 17 (10001)&lt;br /&gt;
|code=print(bit.bxor(18, 3))&lt;br /&gt;
|output=17&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
All bit operations operate in binary numeral system [http://en.wikipedia.org/wiki/Binary_numeral_system]. An exclusive OR operation between two bits yields a 1 if the bits are unequal and a 0 if they are equal. This function produces an output by computing the XOR of each bit of its two inputs independently. So, for the example above:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bit index:&lt;br /&gt;
| 4&lt;br /&gt;
| 3&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 1 (18):&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Input 2 (3):&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! Calculation:&lt;br /&gt;
| 1 ≠ 0&lt;br /&gt;
| 0 = 0&lt;br /&gt;
| 0 = 0&lt;br /&gt;
| 1 = 1&lt;br /&gt;
| 0 ≠ 1&lt;br /&gt;
|-&lt;br /&gt;
! Output (17):&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.blogic_rshift&amp;diff=5814</id>
		<title>Bit.blogic rshift</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.blogic_rshift&amp;diff=5814"/>
				<updated>2013-07-12T01:16:54Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.blogic_rshift&lt;br /&gt;
|args={{Type|number}} n, {{Type|number}} bits&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt; shifted right by &amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt; bits, with the shifted-in bits all being zero, which is equivalent to ⌊&amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;÷2&amp;lt;sup&amp;gt;&amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt;&amp;lt;/sup&amp;gt;⌋ for nonnegative numbers&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Shifts a number right logically by a specified number of bits&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Shift the number 73 (1001001) right by 2 bits, yielding 18 (10010)&lt;br /&gt;
|code=print(bit.blogic_rshift(73, 2))&lt;br /&gt;
|output=18&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Shift the number 2,147,483,648 (10000000000000000000000000000000) right by 2 bits, yielding 536,870,912 (00100000000000000000000000000000)&lt;br /&gt;
|code=print(bit.blogic_rshift(2147483648, 2))&lt;br /&gt;
|output=536870912&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.brshift&amp;diff=5813</id>
		<title>Bit.brshift</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.brshift&amp;diff=5813"/>
				<updated>2013-07-12T01:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.brshift&lt;br /&gt;
|args={{Type|number}} n, {{Type|number}} bits&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt; shifted right by &amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt; bits, with the shifted-in bits being equal to the original number’s 31st bit, which is equivalent to ⌊&amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;÷2&amp;lt;sup&amp;gt;&amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt;&amp;lt;/sup&amp;gt;⌋&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Shifts a number right arithmetically by a specified number of bits&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Shift the number 73 (1001001) right by 2 bits, yielding 18 (10010)&lt;br /&gt;
|code=print(bit.brshift(73, 2))&lt;br /&gt;
|output=18&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Shift the number 2,147,483,648 (10000000000000000000000000000000) right by 2 bits, yielding 3,758,096,384 (11100000000000000000000000000000)&lt;br /&gt;
|code=print(bit.brshift(2147483648, 2))&lt;br /&gt;
|output=3758096384&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit.blshift&amp;diff=5812</id>
		<title>Bit.blshift</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit.blshift&amp;diff=5812"/>
				<updated>2013-07-12T01:00:06Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Changed nonexistent type int to type number.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=bit.blshift&lt;br /&gt;
|args={{Type|number}} n, {{Type|number}} bits&lt;br /&gt;
|api=bit&lt;br /&gt;
|returns={{Type|number}} the value of &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt; shifted left by &amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt; bits, which is equivalent to &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;×2&amp;lt;sup&amp;gt;&amp;lt;var&amp;gt;bits&amp;lt;/var&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Shifts a number left by a specified number of bits&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Shift the number 18 (10010) left by 2 bits, yielding 72 (1001000)&lt;br /&gt;
|code=print(bit.blshift(18, 2))&lt;br /&gt;
|output=72&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Gps_(API)&amp;diff=5811</id>
		<title>Gps (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Gps_(API)&amp;diff=5811"/>
				<updated>2013-07-12T00:55:13Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}}, Float -&amp;gt; {{type|number}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The GPS API provides a method for turtles and computers to retrieve their own locations.&lt;br /&gt;
&lt;br /&gt;
It broadcasts a PING message over [[Rednet_(API)|rednet]] and wait for responses. In order for this system to work, there must be at least 4 computers used as gps ''hosts'' which will respond and allow [[Wikipedia:Trilateration|trilateration]]. Three of these hosts should be in a plane, and the fourth should be either above or below the other three. You can set up hosts using the [[Gps (program)|gps program]].&lt;br /&gt;
&lt;br /&gt;
Note:  When entering in the coordinates for the ''host'' you need to put in the x,y,z of the computer, not the modem, as all rednet distances are measured from the block the computer is in. &lt;br /&gt;
&amp;lt;!-- do not edit this without actually testing it yourself --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
Gps (API)&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 100px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Return&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method Name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;({{Type|number}} x, {{Type|number}} y, {{Type|number}} z), or [[nil]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;gps.locate(&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;{{Type|number}} timeout [, {{Type|boolean}} debug]])&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Tries to retrieve the computer or turtles own location. On success, returns the location of the turtle’s modem. On failure (if no responses are received for &amp;lt;var&amp;gt;timeout&amp;lt;/var&amp;gt; seconds, by default 2), returns [[nil]]. If &amp;lt;var&amp;gt;debug&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, debug messages are printed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
  print(&amp;quot;Man I am so lost right now!&amp;quot;)&lt;br /&gt;
  local x, y, z = gps.locate(5)&lt;br /&gt;
  if x == nil then&lt;br /&gt;
    print(&amp;quot;Nope, still lost :(&amp;quot;)&lt;br /&gt;
  else&lt;br /&gt;
    print(&amp;quot;I am at &amp;quot;,x,&amp;quot; &amp;quot;,y,&amp;quot; &amp;quot;,z)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
== Vector Example ==&lt;br /&gt;
GPS position and navigation can be handled more easily using a [[vector (API)|vector]].&lt;br /&gt;
&lt;br /&gt;
  local home = vector.new(45, 85, 20)&lt;br /&gt;
  local position = vector.new(gps.locate(5))&lt;br /&gt;
  local displacement = position - home&lt;br /&gt;
  &lt;br /&gt;
  print(&amp;quot;I am &amp;quot;, displacement.tostring(), &amp;quot; away from home!!!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
code&amp;gt;true&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit_(API)&amp;diff=5810</id>
		<title>Bit (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit_(API)&amp;diff=5810"/>
				<updated>2013-07-12T00:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Bit API is for manipulating numbers using bitwise binary operations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;Bit (API)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 100px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Return&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.blshift]]({{Type|number}} n, {{Type|number}} bits)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Shifts a number left by a specified number of bits.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.brshift]]({{Type|number}} n, {{Type|number}} bits)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Shifts a number right arithmetically by a specified number of bits.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.blogic_rshift]]({{Type|number}} n, {{Type|number}} bits)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Shifts a number right logically by a specified number of bits.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.bxor]]({{Type|number}} m, {{Type|number}} n)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Computes the bitwise exclusive OR of two numbers.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.bor]]({{Type|number}} m, {{Type|number}} n)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Computes the bitwise inclusive OR of two numbers.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.band]]({{Type|number}} m, {{Type|number}} n)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Computes the bitwise AND of two numbers.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.bnot]]({{Type|number}} n)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Computes the bitwise NOT of a number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Deprecated Functions =&lt;br /&gt;
{{Deprecated&lt;br /&gt;
|plural=yes&lt;br /&gt;
|type=These functions&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;3&amp;quot; style=&amp;quot;font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px;&amp;quot;&amp;gt;[[File:Grid_disk.png|24px]]&amp;amp;nbsp;&amp;amp;nbsp;Bit (API)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 100px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Return&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Method name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background: #E0E0E0; padding: .4em; font-weight:bold;&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #FFFFFF;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|table}} bit_tbl&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.tobits]]({{Type|number}} n)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Converts a number to an array (numerically-indexed table) containing the corresponding binary bit values.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #E8E8E8;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;{{Type|number}} value&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;[[bit.tonumb]]({{Type|table}} bit_tbl)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-top: solid #C9C9C9 1px; padding: .4em;&amp;quot;&amp;gt;Converts an array (numerically-indexed table) of 0 and 1 values representing a number in binary into that number.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Colors.test&amp;diff=5809</id>
		<title>Colors.test</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Colors.test&amp;diff=5809"/>
				<updated>2013-07-12T00:47:21Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=colors.test&lt;br /&gt;
|args={{Type|number}} colors, {{Type|number}} color&lt;br /&gt;
|api=colors&lt;br /&gt;
|returns={{Type|boolean}} whether or not all elements of &amp;lt;var&amp;gt;color&amp;lt;/var&amp;gt; are contained in the set &amp;lt;var&amp;gt;colors&amp;lt;/var&amp;gt;&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Tests whether &amp;lt;var&amp;gt;color&amp;lt;/var&amp;gt; is contained within &amp;lt;var&amp;gt;colors&amp;lt;/var&amp;gt;; &amp;lt;var&amp;gt;color&amp;lt;/var&amp;gt; may be a single color or may be a set of colors (in the latter case, &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; is returned only if &amp;lt;em&amp;gt;all&amp;lt;/em&amp;gt; colors in &amp;lt;var&amp;gt;color&amp;lt;/var&amp;gt; are contained in &amp;lt;var&amp;gt;colors&amp;lt;/var&amp;gt;)&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Combine white, magenta, and light blue, then check if light blue is within the set&lt;br /&gt;
|code=[[print]](colors.test(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.lightBlue))&lt;br /&gt;
|output=true&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Colors.combine&amp;diff=5808</id>
		<title>Colors.combine</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Colors.combine&amp;diff=5808"/>
				<updated>2013-07-12T00:46:12Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=colors.combine&lt;br /&gt;
|args={{Type|number}} color1, {{Type|number}} color2, …&lt;br /&gt;
|api=colors&lt;br /&gt;
|returns={{Type|number}} the union of sets &amp;lt;var&amp;gt;color1&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;color2&amp;lt;/var&amp;gt;, …&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Combines a set of colors (or sets of colors) into a larger set.&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Combine white, magenta, and light blue to yield 13 (the bitwise combination of the colors)&lt;br /&gt;
|code=print(colors.combine(colors.white, colors.magenta, colours.lightBlue))&lt;br /&gt;
|output=13&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Colors.subtract&amp;diff=5807</id>
		<title>Colors.subtract</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Colors.subtract&amp;diff=5807"/>
				<updated>2013-07-12T00:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}} (Boo! I missed one!)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=colors.subtract&lt;br /&gt;
|args={{Type|number}} colors, {{Type|number}} color1, {{Type|number}} color2, …&lt;br /&gt;
|api=colors&lt;br /&gt;
|returns={{Type|number}} the set &amp;lt;var&amp;gt;colors&amp;lt;/var&amp;gt; after removing sets &amp;lt;var&amp;gt;color1&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;color2&amp;lt;/var&amp;gt;, …&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Removes one or more colors (or sets of colors) from an initial set; each parameter beyond the first may be a single color or may be a set of colors (in the latter case, all colors in the set are removed from the original set).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Beginning with white, magenta, and light blue, remove magenta to yield 9 (the bitwise combination of white and light blue)&lt;br /&gt;
|code=print(colors.subtract(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.magenta))&lt;br /&gt;
|output=9&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Colors.subtract&amp;diff=5805</id>
		<title>Colors.subtract</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Colors.subtract&amp;diff=5805"/>
				<updated>2013-07-12T00:40:15Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Int -&amp;gt; {{type|number}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=colors.subtract&lt;br /&gt;
|args={{Type|number}} colors, {{Type|number}} color1, {{Type|number}} color2, …&lt;br /&gt;
|api=colors&lt;br /&gt;
|returns={{Type|int}} the set &amp;lt;var&amp;gt;colors&amp;lt;/var&amp;gt; after removing sets &amp;lt;var&amp;gt;color1&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;color2&amp;lt;/var&amp;gt;, …&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Removes one or more colors (or sets of colors) from an initial set; each parameter beyond the first may be a single color or may be a set of colors (in the latter case, all colors in the set are removed from the original set).&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Beginning with white, magenta, and light blue, remove magenta to yield 9 (the bitwise combination of white and light blue)&lt;br /&gt;
|code=print(colors.subtract(colors.combine(colors.white, colors.magenta, colours.lightBlue), colors.magenta))&lt;br /&gt;
|output=9&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Download&amp;diff=4664</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Download&amp;diff=4664"/>
				<updated>2012-12-04T18:50:04Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4661 by 85.115.3.242 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== You can download the latest version of ComputerCraft [http://www.minecraftforum.net/topic/892282- here]. ===&lt;br /&gt;
&lt;br /&gt;
==Changelog:==&lt;br /&gt;
&lt;br /&gt;
{{Changelog}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Category:APIs&amp;diff=4663</id>
		<title>Category:APIs</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Category:APIs&amp;diff=4663"/>
				<updated>2012-12-04T18:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4662 by 205.158.23.125 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Apis.png|thumb|350px|API's being listed with the &amp;quot;apis&amp;quot; command run in a computer.]]An API (Application Programming Interface) is a collection of code that, rather than being run directly by the user as a program, is meant to be used by other programs. This is different from a function in that an API may contain many functions that perform related tasks; the API groups them together.  It is a library of functions.&lt;br /&gt;
There are two reasons why one might want to use an API:&lt;br /&gt;
* The API may provide a function that you could write yourself if you had to, but using the one from the API means you don't have to do that work.&lt;br /&gt;
	&lt;br /&gt;
* The API may provide something it's impossible to do yourself because it has to be done in Java rather than Lua.&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
ComputerCraft itself ships with a collection of APIs of both types. For example:&lt;br /&gt;
	&lt;br /&gt;
* The [[color (API)|color API]] provides names for the various numbers used in RedPower bundled cable, and functions that manipulate those numbers. The names for the numbers are just variables, and the functions are written in Lua (you can find this in &amp;quot;rom/apis/colors&amp;quot;). You could write the same variables and functions in your own code if you wanted, but using the API saves you from doing that.&lt;br /&gt;
	&lt;br /&gt;
* The [[fs (API)|fs API]] provides functions to work with files. You couldn't write the functions from this API in Lua because they have to access the corresponding files in your real computer (the one running Minecraft), and the only way to do that from Lua is… through the fs API (or the [[IO (API)|io API]], but that's just a wrapper around fs).&lt;br /&gt;
	&lt;br /&gt;
All the stock APIs of the first kind, those that are implemented in Lua, can be found in your &amp;quot;mods/ComputerCraft/lua/rom/apis&amp;quot; directory. Inside Minecraft, on a ComputerCraft computer, these appear in the directory &amp;quot;rom/apis&amp;quot;. All the built-in APIs of both kinds (Lua and Java) are automatically loaded, so you don't have to use &amp;quot;[[OS (API)|os]].loadAPI&amp;quot; on them.&lt;br /&gt;
&lt;br /&gt;
ComputerCraft mods, for example mods that add custom peripherals, might also add APIs that help you work with those peripherals.&lt;br /&gt;
&lt;br /&gt;
You can view a list of un-official API's at the [[:Category:Unofficial_APIs]] page.&lt;br /&gt;
&lt;br /&gt;
Finally, you might find APIs written by other people that you can download, or you might write APIs yourself if you'll be using a function in many different programs and don't want to keep rewriting it. If you're playing single-player or you're running the multiplayer server, you can add those APIs to &amp;quot;rom/apis&amp;quot; and they will automatically be loaded on every computer in the world. Normally, though, you would leave the APIs somewhere else and use &amp;quot;os.loadAPI&amp;quot; to make them available to your program.&lt;br /&gt;
&lt;br /&gt;
You can see a list of APIs built-in to ComputerCraft by typing &amp;quot;apis&amp;quot; in the terminal.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Download&amp;diff=4660</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Download&amp;diff=4660"/>
				<updated>2012-12-04T18:30:39Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4659 by 193.23.123.194 (talk) faggotry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== You can download the latest version of ComputerCraft [http://www.minecraftforum.net/topic/892282- here]. ===&lt;br /&gt;
&lt;br /&gt;
==Changelog:==&lt;br /&gt;
&lt;br /&gt;
{{Changelog}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4600</id>
		<title>Making a Password Protected Door</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4600"/>
				<updated>2012-12-04T12:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4599 by Cocks (talk) derp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This tutorial covers on how to make a computer output redstone current when the right password is typed in. The current is then used to trigger an iron door.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
= How to make it =&lt;br /&gt;
&lt;br /&gt;
A password protected door is actually pretty easy, if you break it into steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, you need to craft a computer, and connect the back to an iron door with redstone. Like this:&lt;br /&gt;
&lt;br /&gt;
The front: [[File:Tutorial1.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
The back: [[File:cTutorial2.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can put the computer adjacent to the iron door without using redstone.Once you're done with the basics, open the computer and edit the &amp;quot;startup&amp;quot; file. (type in 'edit startup')&lt;br /&gt;
This will make it so the program will be executed when the computer boots.&lt;br /&gt;
&lt;br /&gt;
Once you access the startup file, enter in these five lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line opens a loop that will continue running forever, or until we explicitly exit it with the 'break' keyword. The second and third lines clear the screen of whatever may have been on it, and then set the cursor position to the top-left corner of the screen. This ensures that each time the program loops, the text appears in the same place. The fifth line assigns whatever the user types to the variable 'input'. So for example, if I typed &amp;quot;qwerty&amp;quot;, it would be assigning &amp;quot;qwerty&amp;quot; to the 'input' variable. In the read call on the third line ('read(&amp;quot;*&amp;quot;)'), the asterisk character will be used to replace each letter typed by the user, so that the password stays hidden.&lt;br /&gt;
&lt;br /&gt;
Here are the next few lines added on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
  if input == &amp;quot;password&amp;quot; then&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, true)&lt;br /&gt;
   [[os.sleep|sleep]](2)&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, false)&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
''where &amp;quot;password&amp;quot; is the password needed to open the door. You can modify it.''&lt;br /&gt;
&lt;br /&gt;
The first line we add, 'if input == &amp;quot;password&amp;quot; then' checks whether or not the 'input' variable contains the string &amp;quot;password&amp;quot;. The three lines immediately following are only executed if the password is correct. So if it's correct, 'redstone.setOutput(&amp;quot;back&amp;quot;, true)' sets the redstone output on the back side to true (on), which opens the door. The program then wait two seconds ('sleep(2)'), and turns the redstone output back off again. The program then reaches the end of the loop and repeats.&lt;br /&gt;
&lt;br /&gt;
Please note that this is the basic format for a computer protection program as well. We would put this program in the startup file and instead of outputting redstone signals if the password was correct, we would use the break keyword instead to exit the loop and allow access to the rest of the computer.&lt;br /&gt;
&lt;br /&gt;
Note also that if the program fails somehow, pressing and holding Ctrl + T will terminate it and allow you to edit it, see the [http://computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door#Stop_people_from_terminating_your_lock No termination section] to stop people from exiting your lock.&lt;br /&gt;
&lt;br /&gt;
= Easier to understand code =&lt;br /&gt;
&lt;br /&gt;
Type 'edit startup' and type in this code: &lt;br /&gt;
(Use Ctrl + T to terminate the program, all code is explained in the comments, the --'s. It's good to read the comments, so you actually know what the code does, you do not need to have the comments in your code, of course)&lt;br /&gt;
 local side = &amp;quot;left&amp;quot; -- Change left to whatever side your door / redstone is on, E.G: left, right, front, back, bottom, top. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local password = &amp;quot;bacon&amp;quot; -- Change bacon to what you want your password to be. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local opentime = 5 -- Change 5 to how long (in seconds) you want the redstone current to be on. Don't put &amp;quot;s around it, though&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do &lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]() -- Clears the screen&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1) -- Fixes the cursor position&lt;br /&gt;
  [[write]](&amp;quot;Password: &amp;quot;) -- Prints 'Password: ' to the screen&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;) -- Makes the variable 'input' have the contents of what the user types in, the &amp;quot;*&amp;quot; part censors out the password&lt;br /&gt;
  if input == password then -- Checks if the user inputted the correct password&lt;br /&gt;
   [[term_(API)|term]].[[term.clear|clear]]() -- Already explained up top&lt;br /&gt;
   [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1)&lt;br /&gt;
   [[print]](&amp;quot;Password correct!&amp;quot;) -- Prints 'Password correct!' to the screen&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,true) -- Output a redstone current to the side you specified&lt;br /&gt;
   [[os.sleep|sleep]](opentime) -- Wait the amount of seconds you specifed, then..&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,false) -- Stop outputting a redstone current&lt;br /&gt;
  else -- Checks if the user didn't input the correct password&lt;br /&gt;
   [[print]](&amp;quot;Password incorrect!&amp;quot;) -- Prints 'Password incorrect!' to the screen&lt;br /&gt;
   [[os.sleep|sleep]](2) -- Waits 2 seconds&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
= Stop people from terminating your lock =&lt;br /&gt;
&lt;br /&gt;
If you don't want people holding CTRL+T and quitting your lock, use this code at the top of your program:&lt;br /&gt;
&amp;lt;pre&amp;gt;os.pullEvent = os.pullEventRaw&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you don't add this code to the top of your program, someone could terminate the lock and enter in a command and they can unlock your door without knowing the password. Adding the code is useful in Multiplayer.&lt;br /&gt;
&lt;br /&gt;
To re-enable the ability to terminate the program, you must first make a copy of &amp;lt;i&amp;gt;os.pullEvent&amp;lt;/i&amp;gt;, then you can restore it later.&lt;br /&gt;
&amp;lt;pre&amp;gt;local pullEvent = os.pullEvent&lt;br /&gt;
os.pullEvent = os.pullEventRaw&lt;br /&gt;
&lt;br /&gt;
-- If the desired conditions are met, you can run this line to allow the program to be terminated.&lt;br /&gt;
os.pullEvent = pullEvent&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4599</id>
		<title>Making a Password Protected Door</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4599"/>
				<updated>2012-12-04T12:54:34Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This tutorial covers on how to make a computer output redstone current when the right password is typed in. The current is then used to trigger an iron door.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
= How to make it =&lt;br /&gt;
&lt;br /&gt;
A password protected door is actually pretty easy, if you break it into steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, you need to craft a computer, and connect the back to an iron door with redstone. Like this:&lt;br /&gt;
&lt;br /&gt;
The front: [[File:Tutorial1.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
The back: [[File:cTutorial2.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can put the computer adjacent to the iron door without using redstone.Once you're done with the basics, open the computer and edit the &amp;quot;startup&amp;quot; file. (type in 'edit startup')&lt;br /&gt;
This will make it so the program will be executed when the computer boots.&lt;br /&gt;
&lt;br /&gt;
Once you access the startup file, enter in these five lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line opens a loop that will continue running forever, or until we explicitly exit it with the 'break' keyword. The second and third lines clear the screen of whatever may have been on it, and then set the cursor position to the top-left corner of the screen. This ensures that each time the program loops, the text appears in the same place. The fifth line assigns whatever the user types to the variable 'input'. So for example, if I typed &amp;quot;qwerty&amp;quot;, it would be assigning &amp;quot;qwerty&amp;quot; to the 'input' variable. In the read call on the third line ('read(&amp;quot;*&amp;quot;)'), the asterisk character will be used to replace each letter typed by the user, so that the password stays hidden.&lt;br /&gt;
&lt;br /&gt;
Here are the next few lines added on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
  if input == &amp;quot;password&amp;quot; then&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, true)&lt;br /&gt;
   [[os.sleep|sleep]](2)&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, false)&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
''where &amp;quot;password&amp;quot; is the password needed to open the door. You can modify it.''&lt;br /&gt;
&lt;br /&gt;
The first line we add, 'if input == &amp;quot;password&amp;quot; then' checks whether or not the 'input' variable contains the string &amp;quot;password&amp;quot;. The three lines immediately following are only executed if the password is correct. So if it's correct, 'redstone.setOutput(&amp;quot;back&amp;quot;, true)' sets the redstone output on the back side to true (on), which opens the door. The program then wait two seconds ('sleep(2)'), and turns the redstone output back off again. The program then reaches the end of the loop and repeats.&lt;br /&gt;
&lt;br /&gt;
Please note that this is the basic format for a computer protection program as well. We would put this program in the startup file and instead of outputting redstone signals if the password was correct, we would use the break keyword instead to exit the loop and allow access to the rest of the computer.&lt;br /&gt;
&lt;br /&gt;
Note also that if the program fails somehow, pressing and holding Ctrl + T will terminate it and allow you to edit it, see the [http://computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door#Stop_people_from_terminating_your_lock No termination section] to stop people from exiting your lock.&lt;br /&gt;
&lt;br /&gt;
= Easier to understand code =&lt;br /&gt;
&lt;br /&gt;
Type 'edit startup' and type in this code: &lt;br /&gt;
(Use Ctrl + T to terminate the program, all code is explained in the comments, the --'s. It's good to read the comments, so you actually know what the code does, you do not need to have the comments in your code, of course)&lt;br /&gt;
 local side = &amp;quot;left&amp;quot; -- Change left to whatever side your door / redstone is on, E.G: left, right, front, back, bottom, top. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local password = &amp;quot;bacon&amp;quot; -- Change bacon to what you want your password to be. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local opentime = 5 -- Change 5 to how long (in seconds) you want the redstone current to be on. Don't put &amp;quot;s around it, though&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do &lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]() -- Clears the screen&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1) -- Fixes the cursor position&lt;br /&gt;
  [[write]](&amp;quot;Password: &amp;quot;) -- Prints 'Password: ' to the screen&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;) -- Makes the variable 'input' have the contents of what the user types in, the &amp;quot;*&amp;quot; part censors out the password&lt;br /&gt;
  if input == password then -- Checks if the user inputted the correct password&lt;br /&gt;
   [[term_(API)|term]].[[term.clear|clear]]() -- Already explained up top&lt;br /&gt;
   [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1)&lt;br /&gt;
   [[print]](&amp;quot;Password correct!&amp;quot;) -- Prints 'Password correct!' to the screen&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,true) -- Output a redstone current to the side you specified&lt;br /&gt;
   [[os.sleep|sleep]](opentime) -- Wait the amount of seconds you specifed, then..&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,false) -- Stop outputting a redstone current&lt;br /&gt;
  else -- Checks if the user didn't input the correct password&lt;br /&gt;
   [[print]](&amp;quot;Password incorrect!&amp;quot;) -- Prints 'Password incorrect!' to the screen&lt;br /&gt;
   [[os.sleep|sleep]](2) -- Waits 2 seconds&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
= Stop people from terminating your lock =&lt;br /&gt;
&lt;br /&gt;
If you don't want people holding CTRL+T and quitting your lock, use this code at the top of your program:&lt;br /&gt;
&amp;lt;pre&amp;gt;os.pullEvent = os.pullEventRaw&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you don't add this code to the top of your program, someone could terminate the lock and enter in a command and they can unlock your door without knowing the password. Adding the code is useful in Multiplayer.&lt;br /&gt;
&lt;br /&gt;
To re-enable the ability to terminate the program, you must first make a copy of &amp;lt;i&amp;gt;os.pullEvent&amp;lt;/i&amp;gt;, then you can restore it later.&lt;br /&gt;
&amp;lt;pre&amp;gt;local pullEvent = os.pullEvent&lt;br /&gt;
os.pullEvent = os.pullEventRaw&lt;br /&gt;
&lt;br /&gt;
-- If the desired conditions are met, you can run this line to allow the program to be terminated.&lt;br /&gt;
os.pullEvent = pullEvent&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4598</id>
		<title>Making a Password Protected Door</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door&amp;diff=4598"/>
				<updated>2012-12-04T12:53:43Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4597 by 207.104.28.181 (talk) possible SE thank-you bot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This tutorial covers on how to make a computer output redstone current when the right password is typed in. The current is then used to trigger an iron door.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
= How to make it =&lt;br /&gt;
&lt;br /&gt;
A password protected door is actually pretty easy, if you break it into steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, you need to craft a computer, and connect the back to an iron door with redstone. Like this:&lt;br /&gt;
&lt;br /&gt;
The front: [[File:Tutorial1.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
The back: [[File:cTutorial2.png|border|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can put the computer adjacent to the iron door without using redstone.Once you're done with the basics, open the computer and edit the &amp;quot;startup&amp;quot; file. (type in 'edit startup')&lt;br /&gt;
This will make it so the program will be executed when the computer boots.&lt;br /&gt;
&lt;br /&gt;
Once you access the startup file, enter in these five lines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first line opens a loop that will continue running forever, or until we explicitly exit it with the 'break' keyword. The second and third lines clear the screen of whatever may have been on it, and then set the cursor position to the top-left corner of the screen. This ensures that each time the program loops, the text appears in the same place. The fifth line assigns whatever the user types to the variable 'input'. So for example, if I typed &amp;quot;qwerty&amp;quot;, it would be assigning &amp;quot;qwerty&amp;quot; to the 'input' variable. In the read call on the third line ('read(&amp;quot;*&amp;quot;)'), the asterisk character will be used to replace each letter typed by the user, so that the password stays hidden.&lt;br /&gt;
&lt;br /&gt;
Here are the next few lines added on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do&lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]()&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1, 1)&lt;br /&gt;
  [[print]](&amp;quot;Please Enter Password:&amp;quot;)&lt;br /&gt;
  input = [[read]](&amp;quot;*&amp;quot;)&lt;br /&gt;
  if input == &amp;quot;password&amp;quot; then&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, true)&lt;br /&gt;
   [[os.sleep|sleep]](2)&lt;br /&gt;
   [[redstone_(API)|redstone]].[[redstone.setOutput|setOutput]](&amp;quot;back&amp;quot;, false)&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
''where &amp;quot;password&amp;quot; is the password needed to open the door. You can modify it.''&lt;br /&gt;
&lt;br /&gt;
The first line we add, 'if input == &amp;quot;password&amp;quot; then' checks whether or not the 'input' variable contains the string &amp;quot;password&amp;quot;. The three lines immediately following are only executed if the password is correct. So if it's correct, 'redstone.setOutput(&amp;quot;back&amp;quot;, true)' sets the redstone output on the back side to true (on), which opens the door. The program then wait two seconds ('sleep(2)'), and turns the redstone output back off again. The program then reaches the end of the loop and repeats.&lt;br /&gt;
&lt;br /&gt;
Please note that this is the basic format for a computer protection program as well. We would put this program in the startup file and instead of outputting redstone signals if the password was correct, we would use the break keyword instead to exit the loop and allow access to the rest of the computer.&lt;br /&gt;
&lt;br /&gt;
Note also that if the program fails somehow, pressing and holding Ctrl + T will terminate it and allow you to edit it, see the [http://computercraft.info/wiki/index.php?title=Making_a_Password_Protected_Door#Stop_people_from_terminating_your_lock No termination section] to stop people from exiting your lock.&lt;br /&gt;
&lt;br /&gt;
= Easier to understand code =&lt;br /&gt;
&lt;br /&gt;
Type 'edit startup' and type in this code: &lt;br /&gt;
(Use Ctrl + T to terminate the program, all code is explained in the comments, the --'s. It's good to read the comments, so you actually know what the code does, you do not need to have the comments in your code, of course)&lt;br /&gt;
 local side = &amp;quot;left&amp;quot; -- Change left to whatever side your door / redstone is on, E.G: left, right, front, back, bottom, top. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local password = &amp;quot;bacon&amp;quot; -- Change bacon to what you want your password to be. Be sure to leave the &amp;quot;s around it, though&lt;br /&gt;
 local opentime = 5 -- Change 5 to how long (in seconds) you want the redstone current to be on. Don't put &amp;quot;s around it, though&lt;br /&gt;
 [[Loops#The_While_loop|while]] true do &lt;br /&gt;
  [[term_(API)|term]].[[term.clear|clear]]() -- Clears the screen&lt;br /&gt;
  [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1) -- Fixes the cursor position&lt;br /&gt;
  [[write]](&amp;quot;Password: &amp;quot;) -- Prints 'Password: ' to the screen&lt;br /&gt;
  local input = [[read]](&amp;quot;*&amp;quot;) -- Makes the variable 'input' have the contents of what the user types in, the &amp;quot;*&amp;quot; part censors out the password&lt;br /&gt;
  if input == password then -- Checks if the user inputted the correct password&lt;br /&gt;
   [[term_(API)|term]].[[term.clear|clear]]() -- Already explained up top&lt;br /&gt;
   [[term_(API)|term]].[[term.setCursorPos|setCursorPos]](1,1)&lt;br /&gt;
   [[print]](&amp;quot;Password correct!&amp;quot;) -- Prints 'Password correct!' to the screen&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,true) -- Output a redstone current to the side you specified&lt;br /&gt;
   [[os.sleep|sleep]](opentime) -- Wait the amount of seconds you specifed, then..&lt;br /&gt;
   [[redstone_(API)|rs]].[[redstone.setOutput|setOutput]](side,false) -- Stop outputting a redstone current&lt;br /&gt;
  else -- Checks if the user didn't input the correct password&lt;br /&gt;
   [[print]](&amp;quot;Password incorrect!&amp;quot;) -- Prints 'Password incorrect!' to the screen&lt;br /&gt;
   [[os.sleep|sleep]](2) -- Waits 2 seconds&lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
= Stop people from terminating your lock =&lt;br /&gt;
&lt;br /&gt;
If you don't want people holding CTRL+T and quitting your lock, use this code at the top of your program:&lt;br /&gt;
&amp;lt;pre&amp;gt;os.pullEvent = os.pullEventRaw&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you don't add this code to the top of your program, someone could terminate the lock and enter in a command and they can unlock your door without knowing the password. Adding the code is useful in Multiplayer.&lt;br /&gt;
&lt;br /&gt;
To re-enable the ability to terminate the program, you must first make a copy of &amp;lt;i&amp;gt;os.pullEvent&amp;lt;/i&amp;gt;, then you can restore it later.&lt;br /&gt;
&amp;lt;pre&amp;gt;local pullEvent = os.pullEvent&lt;br /&gt;
os.pullEvent = os.pullEventRaw&lt;br /&gt;
&lt;br /&gt;
-- If the desired conditions are met, you can run this line to allow the program to be terminated.&lt;br /&gt;
os.pullEvent = pullEvent&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=ComputerCraft_IRC&amp;diff=4595</id>
		<title>ComputerCraft IRC</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=ComputerCraft_IRC&amp;diff=4595"/>
				<updated>2012-12-04T12:18:49Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Undo revision 4591 by 184.171.168.202 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
The ComputerCraft IRC is the official IRC. Its channel is #computercraft. A link to it is [http://webchat.esper.net/?channels=#computercraft here.] Most development information is gained from this.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=4524</id>
		<title>Turtle (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Turtle_(API)&amp;diff=4524"/>
				<updated>2012-12-03T11:01:30Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Bleh, fixed parans, someone needs to fix the rest of this later /lazy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Turtle API is used to work with your [[Turtle|Turtles]].&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0|&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &amp;lt;center&amp;gt;&amp;lt;b&amp;gt;KEY&amp;lt;/b&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Color&lt;br /&gt;
! Turtles that can perform this&lt;br /&gt;
|-&lt;br /&gt;
|White&lt;br /&gt;
|All&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|Green&lt;br /&gt;
|Crafty&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|Yellow&lt;br /&gt;
|Mining, Felling, Digging, Farming&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|Red&lt;br /&gt;
|Any tool&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- ##################&lt;br /&gt;
To add additional colors, visit Template:row-lightgreen, copy the source, do a search for Template:row-yourcolor and hit Create Page. ################## --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0|&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;100px&amp;quot;|Return&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Min version&lt;br /&gt;
|-{{row-lightgreen}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.craft]]()&lt;br /&gt;
|Craft items using ingredients anywhere in the Turtle's inventory and place results in the active slot&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.forward]]()&lt;br /&gt;
|Let the Turtle move forward&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.back]]()&lt;br /&gt;
|Let the Turtle move back&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.up]]()&lt;br /&gt;
|Let the Turtle move up&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.down]]()&lt;br /&gt;
|Let the Turtle move down &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;true&amp;quot;&lt;br /&gt;
|[[turtle.turnLeft]]()&lt;br /&gt;
|The Turtle turns left&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;true&amp;quot;&lt;br /&gt;
|[[turtle.turnRight]]()&lt;br /&gt;
|The Turtle turns right&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;slot &amp;gt; 16&amp;quot;&lt;br /&gt;
|[[turtle.select]](slotNum)&lt;br /&gt;
|The Turtle selects the given Slot (1 is top left, 16 (9 in 1.33 and earlier) is bottom right)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|int &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.getItemCount]](slotNum)&lt;br /&gt;
|Counts how many items are in the given Slot&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|int &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.getItemSpace]](slotNum)&lt;br /&gt;
|Counts how many remaining items you need to fill the stack in the given Slot&lt;br /&gt;
|&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.attack]]()&lt;br /&gt;
|Attacks in front of the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot; &lt;br /&gt;
|[[turtle.attackUp]]()&lt;br /&gt;
|Attacks over the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightred}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.attackDown]]()&lt;br /&gt;
|Attacks under the turtle.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.dig]]()&lt;br /&gt;
|Breaks the Block in front. With hoe: tills the dirt in front of it.&lt;br /&gt;
|&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.digUp]]()&lt;br /&gt;
|Breaks the Block above. With hoe: tills the dirt above it.&lt;br /&gt;
|&lt;br /&gt;
|-{{row-lightyellow}}&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.digDown]]()&lt;br /&gt;
|Breaks the Block below. With hoe: tills the dirt below it.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.place]]([signText])&lt;br /&gt;
|Places a Block of the selected slot in front. Engrave [signText] on signs if provided.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.placeUp]]()&lt;br /&gt;
|Places a Block of the selected slot above&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.placeDown]]()&lt;br /&gt;
|Places a Block of the selected slot below&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.detect]]()&lt;br /&gt;
|Detects if there is a Block in front.  Does not detect mobs.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.detectUp]]()&lt;br /&gt;
|Detects if there is a Block above&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.detectDown]]()&lt;br /&gt;
|Detects if there is a Block below&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.compare]]()&lt;br /&gt;
|Detects if the block in front is the same as the one in the currently selected slot&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.compareUp]]()&lt;br /&gt;
|Detects if the block above is the same as the one in the currently selected slot&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.compareDown]]()&lt;br /&gt;
|Detects if the block below is the same as the one in the currently selected slot&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;result&amp;quot;&lt;br /&gt;
|[[turtle.compareTo]]([slot])&lt;br /&gt;
|Compare the current selected slot and the given slot to see if the items are the same, yields true if they are the same, and false if not.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.drop]]([count])&lt;br /&gt;
|Drops all items in the selected slot, or if [count] is specified, drops that many items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e in front of the turtle) it will try to place into the inventory, returning false if the inventory is full.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.drop|turtle.dropUp]]([count])&lt;br /&gt;
|Drops all items in the selected slot, or if [count] is specified, drops that many items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e above the turtle) it will try to place into the inventory, returning false if the inventory is full. If below a furnace, will place item in the bottom slot.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.drop|turtle.dropDown]]([count])&lt;br /&gt;
|Drops all items in the selected slot, or if [count] is specified, drops that many items.&amp;lt;br /&amp;gt;[&amp;gt;= 1.4 only:] If there is a inventory on the side (i.e below the turtle) it will try to place into the inventory, returning false if the inventory is full. If above a furnace, will place item in the top slot.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.suck]]()&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory in front of the turtle. If the turtle can't pick up the item, the function yields false.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.suckUp]]()&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory above the turtle. If the turtle can't pick up the item, the function yields false.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.suckDown]]()&lt;br /&gt;
|Picks up an item stack of any number, from the ground or an inventory below the turtle. If the turtle can't pick up the item, the function yields false.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.refuel]]([quantity])&lt;br /&gt;
|If the current selected slot contains a fuel item, it will consume it to give the turtle the ability to move.&amp;lt;br /&amp;gt;Added in 1.4  and is only needed in needfuel mode. If the current slot doesn't contain a fuel item, it yields false. Fuel values for different items can be found at [[Turtle.refuel#Fuel_Values]]. If a quantity is specified, it will refuel only up to that many items, otherwise, it will consume all the items in the slot.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|int &amp;quot;fuel&amp;quot;&lt;br /&gt;
|[[turtle.getFuelLevel]]()&lt;br /&gt;
|Returns the current fuel level of the turtle, this is the number of blocks the turtle can move.&amp;lt;br /&amp;gt;If turtleNeedFuel = 0 then it yields &amp;quot;unlimited&amp;quot;.&lt;br /&gt;
| 1.4&lt;br /&gt;
|-&lt;br /&gt;
|bool &amp;quot;success&amp;quot;&lt;br /&gt;
|[[turtle.transferTo]]([slot], [quantity])&lt;br /&gt;
|Transfers items from the selected slot to the specified [slot] in the [quantity] inputted.&lt;br /&gt;
| 1.45&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Trivia:&lt;br /&gt;
During the 1.4 beta, turtle.getFuelLevel() in softcore(that is now turtleneedsfuel = 0) returned 9000.&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Rednet.receive&amp;diff=4507</id>
		<title>Rednet.receive</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Rednet.receive&amp;diff=4507"/>
				<updated>2012-12-03T06:54:36Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=rednet.receive&lt;br /&gt;
|args=[[float (type)|float]] timeoutSeconds&lt;br /&gt;
|returns=senderID, message, distance-to-sender (or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; if using redpower bundled cable instead of a modem)&lt;br /&gt;
|api=rednet&lt;br /&gt;
|addon=ComputerCraft&lt;br /&gt;
|desc=Waits for &amp;lt;var&amp;gt;timeoutSeconds&amp;lt;/var&amp;gt; or until another computer sends a message to this computer. (see [[rednet.broadcast|rednet.broadcast( message )]] and [[rednet.send|rednet.send( receiverID, message )]].  If a Timeout occurs the return id and message are set to nil.  If timeout is nil, waits forever.&amp;lt;br /&amp;gt;To get the id from a computer see  [[Os.getComputerID|os.getComputerID()]], or the [[id]] program.&amp;lt;br/&amp;gt;You must be calling this function at the moment a message is sent, or you will miss it.  If you need to watch for messages while doing something else at the same time, see [[Parallel.waitForAny|parallel.waitForAny()]]&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Waits forever until someone sends a message to this computer and displays it.&lt;br /&gt;
|code=local senderId, message, distance = rednet.receive()&amp;lt;br&amp;gt;term.write(message)&lt;br /&gt;
|output=The received message.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:API_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Fs.list&amp;diff=4486</id>
		<title>Fs.list</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Fs.list&amp;diff=4486"/>
				<updated>2012-12-02T18:05:37Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
|name=fs.list&lt;br /&gt;
|args=[[string (type)|string]] path&lt;br /&gt;
|api=fs&lt;br /&gt;
|returns=[[table (type)|table]] list of files and folders in &amp;lt;var&amp;gt;path&amp;lt;/var&amp;gt;, which must be a directory&lt;br /&gt;
|desc=Returns a list of all the files contained in a directory, in table format&lt;br /&gt;
|examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=Displays a list of all files and folders in the root directory of a computer&lt;br /&gt;
|code=local FileList = fs.list(&amp;quot;&amp;quot;) --Table with all the files and directories available&lt;br /&gt;
 &lt;br /&gt;
 for _, file in ipairs(FileList) do --Loop. Underscore because we don't use the key, ipairs so it's in order&lt;br /&gt;
   print(file) --Print the file name&lt;br /&gt;
 end --End the loop&lt;br /&gt;
&lt;br /&gt;
|output=A list of all files and folders in the root directory as a table. Note that fs.list() could also be inserted directly into ipairs() or pairs(). Using pairs would list hidden files as ipairs would not.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=4055</id>
		<title>Os.queueEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=4055"/>
				<updated>2012-11-28T18:54:33Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.queueEvent&lt;br /&gt;
 |args=[[string]] eventName, param1, param2, param3&lt;br /&gt;
 |api=os&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Adds an event &amp;lt;var&amp;gt;eventName&amp;lt;/var&amp;gt; with the specified parameters to the event queue.&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program adds an event which it will eventually pull.&lt;br /&gt;
|code=&lt;br /&gt;
 os.queueEvent(&amp;quot;abc&amp;quot;, 2, &amp;quot;meow&amp;quot;)&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1, param2 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;abc&amp;quot; then&lt;br /&gt;
         print(&amp;quot;ABC EVENT! Parameters: &amp;quot; .. param1 .. &amp;quot; / &amp;quot; .. param2)&lt;br /&gt;
     else&lt;br /&gt;
         print(&amp;quot;Event: &amp;quot; .. event)&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=To easily have a redstone and a key input do the same,&amp;lt;br /&amp;gt;&lt;br /&gt;
it queues a key event with the appropriate key if a redstone event happens.&lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;redstone&amp;quot; then&lt;br /&gt;
         if rs.getInput(&amp;quot;left&amp;quot;) then&lt;br /&gt;
             os.queueEvent(&amp;quot;key&amp;quot;, 28)&lt;br /&gt;
         end&lt;br /&gt;
     elseif event == &amp;quot;key&amp;quot; then&lt;br /&gt;
         if param1 == 28 then&lt;br /&gt;
             print(&amp;quot;Hello&amp;quot;)&lt;br /&gt;
         end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Lua_Core_Functions]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3999</id>
		<title>Os.queueEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3999"/>
				<updated>2012-11-28T18:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Block fix.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.queueEvent&lt;br /&gt;
 |args=[[string]] eventName, param1, param2, param3&lt;br /&gt;
 |api=os&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Adds an event &amp;lt;var&amp;gt;eventName&amp;lt;/var&amp;gt; with the specified parameters to the event queue.&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program adds an event which it will eventually pull.&lt;br /&gt;
|code=&lt;br /&gt;
 os.queueEvent(&amp;quot;abc&amp;quot;, 2, &amp;quot;meow&amp;quot;)&lt;br /&gt;
 while true do&lt;br /&gt;
    local event, param1, param2 = os.pullEvent()&lt;br /&gt;
    if event == &amp;quot;abc&amp;quot; then&lt;br /&gt;
       print(&amp;quot;ABC EVENT! Parameters: &amp;quot; .. param1 .. &amp;quot; / &amp;quot; .. param2)&lt;br /&gt;
    else&lt;br /&gt;
       print(&amp;quot;Event: &amp;quot; .. event)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=To easily have a redstone and a key input do the same,&amp;lt;br /&amp;gt;&lt;br /&gt;
it queues a key event with the appropriate key if a redstone event happens.&lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;redstone&amp;quot; then&lt;br /&gt;
       if rs.getInput(&amp;quot;left&amp;quot;) then&lt;br /&gt;
         os.queueEvent(&amp;quot;key&amp;quot;, 28)&lt;br /&gt;
       end&lt;br /&gt;
     elseif event == &amp;quot;key&amp;quot; then&lt;br /&gt;
       if param1 == 28 then&lt;br /&gt;
         print(&amp;quot;Hello&amp;quot;)&lt;br /&gt;
       end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3995</id>
		<title>Os.queueEvent</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Os.queueEvent&amp;diff=3995"/>
				<updated>2012-11-28T18:48:26Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Fixed minor format inconsistencies within the code snippets.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
{{Function&lt;br /&gt;
 |name=os.queueEvent&lt;br /&gt;
 |args=[[string]] eventName, param1, param2, param3&lt;br /&gt;
 |api=os&lt;br /&gt;
 |addon=ComputerCraft&lt;br /&gt;
 |desc=Adds an event &amp;lt;var&amp;gt;eventName&amp;lt;/var&amp;gt; with the specified parameters to the event queue.&lt;br /&gt;
 |examples=&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=The program adds an event which it will eventually pull.&lt;br /&gt;
|code=&lt;br /&gt;
 os.queueEvent(&amp;quot;abc&amp;quot;, 2, &amp;quot;meow&amp;quot;)&lt;br /&gt;
    while true do&lt;br /&gt;
    local event, param1, param2 = os.pullEvent()&lt;br /&gt;
    if event == &amp;quot;abc&amp;quot; then&lt;br /&gt;
       print(&amp;quot;ABC EVENT! Parameters: &amp;quot; .. param1 .. &amp;quot; / &amp;quot; .. param2)&lt;br /&gt;
    else&lt;br /&gt;
       print(&amp;quot;Event: &amp;quot; .. event)&lt;br /&gt;
    end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Example&lt;br /&gt;
|desc=To easily have a redstone and a key input do the same,&amp;lt;br /&amp;gt;&lt;br /&gt;
it queues a key event with the appropriate key if a redstone event happens.&lt;br /&gt;
|code=&lt;br /&gt;
 while true do&lt;br /&gt;
     local event, param1 = os.pullEvent()&lt;br /&gt;
     if event == &amp;quot;redstone&amp;quot; then&lt;br /&gt;
       if rs.getInput(&amp;quot;left&amp;quot;) then&lt;br /&gt;
         os.queueEvent(&amp;quot;key&amp;quot;, 28)&lt;br /&gt;
       end&lt;br /&gt;
     elseif event == &amp;quot;key&amp;quot; then&lt;br /&gt;
       if param1 == 28 then&lt;br /&gt;
         print(&amp;quot;Hello&amp;quot;)&lt;br /&gt;
       end&lt;br /&gt;
     end&lt;br /&gt;
 end&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=User:Watcher7&amp;diff=3853</id>
		<title>User:Watcher7</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=User:Watcher7&amp;diff=3853"/>
				<updated>2012-11-26T09:34:20Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: imo user-page changes should be ignored&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;wangs&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Textutils_(API)&amp;diff=3840</id>
		<title>Textutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Textutils_(API)&amp;diff=3840"/>
				<updated>2012-11-25T09:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Text utilities is used to mess around with text easier.&lt;br /&gt;
&lt;br /&gt;
Its functions include:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.slowPrint|textutils.slowPrint]]([[string (type)|string]] text, [[number (type)|number]] rate)&lt;br /&gt;
|Slowly prints the text. Only difference is, it leaves a new-line after it.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.slowWrite|textutils.slowWrite]]([[string (type)|string]] text, [[number (type)|number]] rate)&lt;br /&gt;
|Slowly writes the text.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.formatTime|textutils.formatTime]]([[number (type)|number]] time, [[boolean (type)|bool]] TwentyFourHour)&lt;br /&gt;
|Put a time into it, and it spews it out in a different format. For example:&lt;br /&gt;
local time = os.time()&lt;br /&gt;
&lt;br /&gt;
print(textutils.formatTime(time, false))&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.tabulate|textutils.tabulate]]([[table (type)|table]] table, [[table (type)|table]] table2, ...)&lt;br /&gt;
|Prints tables in an ordered form. Each table is a row, columns' width is auto-adjusted.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.pagedTabulate|textutils.pagedTabulate]]([[table (type)|table]] table, [[table (type)|table]] table2, ...)&lt;br /&gt;
|&amp;lt;no description given&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.pagedPrint|textutils.pagedPrint]]([[string (type)|string]] string, [[string (type)|string]] confirmation_lines)&lt;br /&gt;
|Prints a string onto the screen, but waits for confirmation before scrolling down.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.serialize|textutils.serialize]]([[table (type)|table]] table)&lt;br /&gt;
|Returns a string representation of the table t for storage or transmission.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.unserialize|textutils.unserialize]]([[string (type)|string]] text)&lt;br /&gt;
|Returns a table reassembled from the string s.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.urlEncode|textutils.urlEncode]]([[string (type)|string]] text)&lt;br /&gt;
|Makes a string safe to encode into a url. Spaces are replaced with +s. Unsafe characters such as '\', '£' and '}' are translated into ASCII code and preceded with a % for transmission. For reference visit: [http://www.blooberry.com/indexdot/html/topics/urlencoding.htm].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Textutils_(API)&amp;diff=3839</id>
		<title>Textutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Textutils_(API)&amp;diff=3839"/>
				<updated>2012-11-25T09:13:15Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Text utilities is used to mess around with text easier.&lt;br /&gt;
&lt;br /&gt;
Its functions include:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.slowPrint|textutils.slowPrint]]([[string (type)|string]] text, [[number (type)|number]] rate)&lt;br /&gt;
|Slowly prints the text. Only difference is, it leaves a new-line after it.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.slowWrite|textutils.slowWrite]]([[string (type)|string]] text, [[number (type)|number]] rate)&lt;br /&gt;
|Slowly writes the text.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.formatTime|textutils.formatTime]]([[number (type)|number]] time, [[boolean (type)|bool]] TwentyFourHour)&lt;br /&gt;
|Put a time into it, and it spews it out in a different format. For example:&lt;br /&gt;
local time = os.time()&lt;br /&gt;
&lt;br /&gt;
print(textutils.formatTime(time, false))&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.tabulate|textutils.tabulate]]([[table (type)|table]] table, [[table (type)|table]] table2, ...)&lt;br /&gt;
|Prints tables in an ordered form. Each table is a row, columns' width is auto-adjusted.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.pagedTabulate|textutils.pagedTabulate]]([[table (type)|table]] table, [[table (type)|table]]table2, ...)&lt;br /&gt;
|&amp;lt;no description given&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.pagedPrint|textutils.pagedPrint]]([[string (type)|string]] string, [[string (type)|string]] confirmation_lines)&lt;br /&gt;
|Prints a string onto the screen, but waits for confirmation before scrolling down.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.serialize|textutils.serialize]]([[table (type)|table]] table)&lt;br /&gt;
|Returns a string representation of the table t for storage or transmission.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.unserialize|textutils.unserialize]]([[string (type)|string]] text)&lt;br /&gt;
|Returns a table reassembled from the string s.&lt;br /&gt;
|-&lt;br /&gt;
|[[textutils.urlEncode|textutils.urlEncode]]([[string (type)|string]] text)&lt;br /&gt;
|Makes a string safe to encode into a url. Spaces are replaced with +s. Unsafe characters such as '\', '£' and '}' are translated into ASCII code and preceded with a % for transmission. For reference visit: [http://www.blooberry.com/indexdot/html/topics/urlencoding.htm].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Bit_(API)&amp;diff=3838</id>
		<title>Bit (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Bit_(API)&amp;diff=3838"/>
				<updated>2012-11-25T08:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods: type listing inconsistencie fix. Bleh. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Bit API is for manipulating numbers using bitwise binary operations.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.tobits]]([[number (type)|number]] n)&lt;br /&gt;
|Converts a number to an array (numerically-indexed table) containing the corresponding binary bit values&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.blshift]]([[number (type)|number]] n, [[number (type)|number]] bits)&lt;br /&gt;
|Shifts a number left by a specified number of bits&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.brshift]]([[number (type)|number]] n, [[number (type)|number]] bits)&lt;br /&gt;
|Shifts a number right by a specified number of bits&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.bxor]]([[number (type)|number]] m, [[number (type)|number]] n)&lt;br /&gt;
|Computes the bitwise exclusive OR of two numbers&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.bor]]([[number (type)|number]] m, [[number (type)|number]] n)&lt;br /&gt;
|Computes the bitwise inclusive OR of two numbers&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.band]]([[number (type)|number]] m, [[number (type)|number]] n)&lt;br /&gt;
|Computes the bitwise AND of two numbers&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.bnot]]([[number (type)|number]] n)&lt;br /&gt;
|Computes the bitwise NOT of a number&lt;br /&gt;
|-&lt;br /&gt;
|[[bit.tonumb]]([[table (type)|table]] bit_tbl)&lt;br /&gt;
|Converts an array (numerically-indexed table) of 0 and 1 values representing a number in binary into that number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Term_(API)&amp;diff=3837</id>
		<title>Term (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Term_(API)&amp;diff=3837"/>
				<updated>2012-11-25T08:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Terminal API provides functions for ASCII graphics.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|term.write]](text)&lt;br /&gt;
|Writes text to the screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|term.clear]]()&lt;br /&gt;
|Clears the entire screen&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|term.clearLine]]()&lt;br /&gt;
|Clears the line the cursor is on&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|term.getCursorPos]]()&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.setCursorPos|term.setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor's position.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.setCursorBlink|term.setCursorBlink]]()&lt;br /&gt;
|Disables the blinking or turns it on.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.isColor|term.isColor]]()&lt;br /&gt;
|Returns if the computer supports color. (Used to determine whether or not an advanced computer is being used)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|term.getSize]]()&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the screen. (Good for if you're making something to be compatible with both [[Turtles]] and [[Consoles]].)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|term.scroll]](n)&lt;br /&gt;
|Scrolls the terminal ''n'' lines.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.redirect|term.redirect]](target)&lt;br /&gt;
|Redirects terminal output to a monitor or other redirect target. (Use [[peripheral.wrap]] to acquire a monitor &amp;quot;object&amp;quot;.)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.restore|term.restore]]()&lt;br /&gt;
|Restores terminal output to the previous target.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setTextColor|term.setTextColor]]([[Colors#Colors|color]])&lt;br /&gt;
|Sets the foreground color for text subsequently written to the terminal. '''Note:''' only available on [[Advanced Computer|Advanced Computers]].&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setBackgroundColor]]([[Colors#Colors|color]])&lt;br /&gt;
|Sets the background color for text subsequently written to the terminal. '''Note:''' only available on [[Advanced Computer|Advanced Computers]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Shell_(API)&amp;diff=3836</id>
		<title>Shell (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Shell_(API)&amp;diff=3836"/>
				<updated>2012-11-25T08:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The shell API allows you to interface with the [http://en.wikipedia.org/wiki/Shell_%28computing%29 shell].&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.exit]]()&lt;br /&gt;
|Exits the current shell&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.dir]]()&lt;br /&gt;
|Returns the directory&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.setDir]](path)&lt;br /&gt;
|Sets the directory&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.path]]()&lt;br /&gt;
|Returns the path&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.setPath]](path)&lt;br /&gt;
|Sets the path&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.resolve]](localpath)&lt;br /&gt;
|Resolves a local path to an absolute path.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.resolveProgram]](name)&lt;br /&gt;
|Resolves the absolute path to the program whose name you provided.&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
|[[shell.aliases]]()&lt;br /&gt;
|Returns aliases.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.setAlias]](alias, command)&lt;br /&gt;
|Sets an alias.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.clearAlias]](alias, command)&lt;br /&gt;
|Clears an alias.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.programs]]()&lt;br /&gt;
|Returns programs.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.run]](program, arguments)&lt;br /&gt;
|Runs a program.&lt;br /&gt;
|-&lt;br /&gt;
|[[shell.getRunningProgram]]()&lt;br /&gt;
|Returns the absolute path to the currently-executing program.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=3835</id>
		<title>Rednet (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Rednet_(API)&amp;diff=3835"/>
				<updated>2012-11-25T08:43:46Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Events fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The rednet API allows computers to communicate between themselves without using redstone wires. In order to send and receive data, a [[modem]] is required. The data is received immediately after sending it, but only by computers within a certain range. That range depends on the altitude of the sending computer increasing with higher altitudes to a max of 384.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
Before the creation of the in-game wireless networking API, the term &amp;quot;Rednet&amp;quot; referred to a system created by one of the ComputerCraft users based on bundled cables from a popular Minecraft mod - RedPower. It also allowed communication between computers, but the data was transferred slowly - every bit was converted to redstone signal, that lasted about 0,1 seconds. On the release of ComputerCraft 1.3, the system became useless, as the wireless networking was officially implemented to the mod.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;80px&amp;quot;|Return type&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.open]](side)&lt;br /&gt;
|Tells the computer that the side can be used for networking.&lt;br /&gt;
|nil&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.close]](side)&lt;br /&gt;
|Tells the computer that the side can no longer be used for networking.&lt;br /&gt;
|nil&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.announce]]()&lt;br /&gt;
|Broadcasts an empty rednet message.&lt;br /&gt;
|success&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.send]](receiverID, message)&lt;br /&gt;
|Sends a message to the computer using the opened sides. The receiver ID is the ID (number, not string) of the computer you're sending the message to. ID as nil will do the same as a broadcast.&lt;br /&gt;
|success&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.broadcast]](message)&lt;br /&gt;
|Sends the message to ALL connected and open computers.&lt;br /&gt;
|success&lt;br /&gt;
|-&lt;br /&gt;
|[[rednet.receive]](timeout)&lt;br /&gt;
|Waits until it received a rednet message or &amp;lt;var&amp;gt;timeout&amp;lt;/var&amp;gt; has passed. Leave args empty to wait for a message forever.&lt;br /&gt;
|senderId, message, distance&lt;br /&gt;
|-&lt;br /&gt;
|rednet.isOpen(side)&lt;br /&gt;
|Returns true if the wireless modem is open or nil if not. Returns 1 always.&lt;br /&gt;
|Boolean, integer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Event name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Parameters&lt;br /&gt;
|-&lt;br /&gt;
|rednet_message&lt;br /&gt;
|Fired when a rednet message is received (can be used as alternative for rednet.receive())&lt;br /&gt;
|senderId, message, distance&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3834</id>
		<title>Peripheral (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3834"/>
				<updated>2012-11-25T08:41:34Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The peripheral API is for interacting with external [http://en.wikipedia.org/wiki/Peripheral peripherals], such as the disk drive and monitor.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Console|Consoles]] and [[Turtle|Turtles]] are also considered peripherals and you can interface two adjacent computers, although in a more limited fashion compared to [[Rednet (API)|rednet]]. Both Computers and Turtles provide the same methods: ''turnOn'', ''shutdown'', ''reboot'', ''getID''.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.isPresent]](side)&lt;br /&gt;
|Returns '''true''' if a peripheral is present on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getType]](side)&lt;br /&gt;
|Returns the type or peripheral present on ''side'', nothing returned if ''side'' is empty.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getMethods]](side)&lt;br /&gt;
|Returns a table containing all methods for peripheral on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.call]](side, methodName, param1, param2, ...)&lt;br /&gt;
|Sends a function call to peripheral located on ''side''. Return values match those of called method.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note:''' ''methodName'' is a string.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.wrap]](side)&lt;br /&gt;
|Returns a handle to the peripheral located on ''side''. If assigned to a variable, it can be used to call all methods available from that peripheral, as if calling '''peripheral.call()''', e.g.:&amp;lt;br /&amp;gt;&lt;br /&gt;
m = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
m.someMethod()&amp;lt;br /&amp;gt;&lt;br /&gt;
''- is the same as -''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[peripheral.call]](&amp;quot;left&amp;quot;,&amp;quot;someMethod&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Event name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Parameters&lt;br /&gt;
|-&lt;br /&gt;
|peripheral&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|side&lt;br /&gt;
|-&lt;br /&gt;
|peripheral_detach&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|side&lt;br /&gt;
|}&lt;br /&gt;
==Monitor==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''monitor'' stands for the variable you wrapped the monitor to.'''&lt;br /&gt;
''Example:'' monitor = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|''monitor''.write]]()&lt;br /&gt;
|Write to the Monitor's screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|''monitor''.scroll]](n)&lt;br /&gt;
|Scrolls the monitor screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorPos|''monitor''.setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor position on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorBlink|''monitor''.setCursorBlink]](b)&lt;br /&gt;
|Enables or disables cursor blinking.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|''monitor''.getCursorPos]]()&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|''monitor''.getSize]]()&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the Monitor. &lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|''monitor''.clear]]()&lt;br /&gt;
|Clears the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|''monitor''.clearLine]]()&lt;br /&gt;
|Clears the line the cursor is on.&lt;br /&gt;
|-&lt;br /&gt;
|[[monitor.setTextScale|''monitor''.setTextScale]](scale)&lt;br /&gt;
|Sets the size of the text on the Monitor. Textscale can be between 0.5 and 5.0, with increments of 0.5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Printer==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''printer'' stands for the variable you wrapped the printer to.'''&lt;br /&gt;
''Example:'' printer = peripheral.wrap( &amp;quot;right&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.newPage]]()&lt;br /&gt;
|Starts a new page. Returns true if page got started, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.endPage]]()&lt;br /&gt;
|Ends the page and prints the page to the output tray. Returns true if page was ended, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.write]](text)&lt;br /&gt;
|Writes text to the paper, works the same way as [[term.write()]]&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.setPageTitle]](text)&lt;br /&gt;
|Sets the title of the page.&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.getPaperLevel]]()&lt;br /&gt;
|Returns the amount of paper available in the paper tray.&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.getInkLevel]]()&lt;br /&gt;
|Returns the amount of ink in the ink slot.&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.getCursorPos]]()&lt;br /&gt;
|Returns the coordinates of the cursor on the paper, works the same way as [[term.getCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor pos, works the same way as [[term.setCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|[[printer.getPageSize]]()&lt;br /&gt;
|Returns the size of the paper, works the same way as [[term.getSize()]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''computer'' stands for the variable you wrapped the computer to.'''&lt;br /&gt;
''Example:'' computer = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.turnOn()&lt;br /&gt;
|Turns on the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.shutdown()&lt;br /&gt;
|Shuts off the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.reboot()&lt;br /&gt;
|Reboots the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.getID()&lt;br /&gt;
|Gets the ID of the Computer or Turtle.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3833</id>
		<title>Peripheral (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3833"/>
				<updated>2012-11-25T08:37:53Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The peripheral API is for interacting with external [http://en.wikipedia.org/wiki/Peripheral peripherals], such as the disk drive and monitor.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Console|Consoles]] and [[Turtle|Turtles]] are also considered peripherals and you can interface two adjacent computers, although in a more limited fashion compared to [[Rednet (API)|rednet]]. Both Computers and Turtles provide the same methods: ''turnOn'', ''shutdown'', ''reboot'', ''getID''.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.isPresent]](side)&lt;br /&gt;
|Returns '''true''' if a peripheral is present on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getType]](side)&lt;br /&gt;
|Returns the type or peripheral present on ''side'', nothing returned if ''side'' is empty.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getMethods]](side)&lt;br /&gt;
|Returns a table containing all methods for peripheral on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.call]](side, methodName, param1, param2, ...)&lt;br /&gt;
|Sends a function call to peripheral located on ''side''. Return values match those of called method.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note:''' ''methodName'' is a string.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.wrap]](side)&lt;br /&gt;
|Returns a handle to the peripheral located on ''side''. If assigned to a variable, it can be used to call all methods available from that peripheral, as if calling '''peripheral.call()''', e.g.:&amp;lt;br /&amp;gt;&lt;br /&gt;
m = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
m.someMethod()&amp;lt;br /&amp;gt;&lt;br /&gt;
''- is the same as -''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[peripheral.call]](&amp;quot;left&amp;quot;,&amp;quot;someMethod&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Event name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Parameters&lt;br /&gt;
|-&lt;br /&gt;
|peripheral&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|side&lt;br /&gt;
|-&lt;br /&gt;
|peripheral_detach&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|side&lt;br /&gt;
|}&lt;br /&gt;
==Monitor==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''monitor'' stands for the variable you wrapped the monitor to.'''&lt;br /&gt;
''Example:'' monitor = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|''monitor''.write]]()&lt;br /&gt;
|Write to the Monitor's screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|''monitor''.scroll]](n)&lt;br /&gt;
|Scrolls the monitor screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorPos|''monitor''.setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor position on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorBlink|''monitor''.setCursorBlink]](b)&lt;br /&gt;
|Enables or disables cursor blinking.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|''monitor''.getCursorPos]]()&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|''monitor''.getSize]]()&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the Monitor. &lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|''monitor''.clear]]()&lt;br /&gt;
|Clears the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|''monitor''.clearLine]]()&lt;br /&gt;
|Clears the line the cursor is on.&lt;br /&gt;
|-&lt;br /&gt;
|[[monitor.setTextScale|''monitor''.setTextScale]](scale)&lt;br /&gt;
|Sets the size of the text on the Monitor. Textscale can be between 0.5 and 5.0, with increments of 0.5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Printer==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''printer'' stands for the variable you wrapped the printer to.'''&lt;br /&gt;
''Example:'' printer = peripheral.wrap( &amp;quot;right&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.newPage|newPage]]()&lt;br /&gt;
|Starts a new page. Returns true if page got started, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.endPage|endPage]]()&lt;br /&gt;
|Ends the page and prints the page to the output tray. Returns true if page was ended, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.write|write]](text)&lt;br /&gt;
|Writes text to the paper, works the same way as [[term.write()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setPageTitle|setPageTitle]](text)&lt;br /&gt;
|Sets the title of the page.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPaperLevel|getPaperLevel]]()&lt;br /&gt;
|Returns the amount of paper available in the paper tray.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getInkLevel|getInkLevel]]()&lt;br /&gt;
|Returns the amount of ink in the ink slot.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getCursorPos|getCursorPos]]()&lt;br /&gt;
|Returns the coordinates of the cursor on the paper, works the same way as [[term.getCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setCursorPos|setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor pos, works the same way as [[term.setCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPageSize|getPageSize]]()&lt;br /&gt;
|Returns the size of the paper, works the same way as [[term.getSize()]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''computer'' stands for the variable you wrapped the computer to.'''&lt;br /&gt;
''Example:'' computer = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.turnOn()&lt;br /&gt;
|Turns on the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.shutdown()&lt;br /&gt;
|Shuts off the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.reboot()&lt;br /&gt;
|Reboots the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.getID()&lt;br /&gt;
|Gets the ID of the Computer or Turtle.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3832</id>
		<title>Peripheral (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3832"/>
				<updated>2012-11-25T08:37:10Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The peripheral API is for interacting with external [http://en.wikipedia.org/wiki/Peripheral peripherals], such as the disk drive and monitor.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Console|Consoles]] and [[Turtle|Turtles]] are also considered peripherals and you can interface two adjacent computers, although in a more limited fashion compared to [[Rednet (API)|rednet]]. Both Computers and Turtles provide the same methods: ''turnOn'', ''shutdown'', ''reboot'', ''getID''.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.isPresent]](side)&lt;br /&gt;
|Returns '''true''' if a peripheral is present on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getType]](side)&lt;br /&gt;
|Returns the type or peripheral present on ''side'', nothing returned if ''side'' is empty.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getMethods]](side)&lt;br /&gt;
|Returns a table containing all methods for peripheral on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.call]](side, methodName, param1, param2, ...)&lt;br /&gt;
|Sends a function call to peripheral located on ''side''. Return values match those of called method.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note:''' ''methodName'' is a string.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.wrap]](side)&lt;br /&gt;
|Returns a handle to the peripheral located on ''side''. If assigned to a variable, it can be used to call all methods available from that peripheral, as if calling '''peripheral.call()''', e.g.:&amp;lt;br /&amp;gt;&lt;br /&gt;
m = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
m.someMethod()&amp;lt;br /&amp;gt;&lt;br /&gt;
''- is the same as -''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[peripheral.call]](&amp;quot;left&amp;quot;,&amp;quot;someMethod&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Event name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Parameters&lt;br /&gt;
|-&lt;br /&gt;
|peripheral&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|side&lt;br /&gt;
|-&lt;br /&gt;
|peripheral_detach&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|side&lt;br /&gt;
|}&lt;br /&gt;
==Monitor==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''monitor'' stands for the variable you wrapped the monitor to.'''&lt;br /&gt;
''Example:'' monitor = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|''monitor''.write]]()&lt;br /&gt;
|Write to the Monitor's screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|''monitor''.scroll]](n)&lt;br /&gt;
|Scrolls the monitor screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorPos|''monitor''.setCursorPos]](x, y)&lt;br /&gt;
|Sets the cursor position on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorBlink|''monitor''.setCursorBlink]](b)&lt;br /&gt;
|Enables or disables cursor blinking.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|''monitor''.getCursorPos]]()&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|''monitor''.getSize]]()&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the Monitor. &lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|''monitor''.clear]]()&lt;br /&gt;
|Clears the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|''monitor''.clearLine]]()&lt;br /&gt;
|Clears the line the cursor is on.&lt;br /&gt;
|-&lt;br /&gt;
|[[monitor.setTextScale|''monitor''.setTextScale]](scale)&lt;br /&gt;
|Sets the size of the text on the Monitor. Textscale can be between 0.5 and 5.0, with increments of 0.5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Printer==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''printer'' stands for the variable you wrapped the printer to.'''&lt;br /&gt;
''Example:'' printer = peripheral.wrap( &amp;quot;right&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.newPage|newPage]]()&lt;br /&gt;
|Starts a new page. Returns true if page got started, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.endPage|endPage]]()&lt;br /&gt;
|Ends the page and prints the page to the output tray. Returns true if page was ended, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.write|write]]( text )&lt;br /&gt;
|Writes text to the paper, works the same way as [[term.write()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setPageTitle|setPageTitle]]( text )&lt;br /&gt;
|Sets the title of the page.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPaperLevel|getPaperLevel]]()&lt;br /&gt;
|Returns the amount of paper available in the paper tray.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getInkLevel|getInkLevel]]()&lt;br /&gt;
|Returns the amount of ink in the ink slot.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getCursorPos|getCursorPos]]()&lt;br /&gt;
|Returns the coordinates of the cursor on the paper, works the same way as [[term.getCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setCursorPos|setCursorPos]]( x, y )&lt;br /&gt;
|Sets the cursor pos, works the same way as [[term.setCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPageSize|getPageSize]]()&lt;br /&gt;
|Returns the size of the paper, works the same way as [[term.getSize()]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''computer'' stands for the variable you wrapped the computer to.'''&lt;br /&gt;
''Example:'' computer = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.turnOn()&lt;br /&gt;
|Turns on the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.shutdown()&lt;br /&gt;
|Shuts off the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.reboot()&lt;br /&gt;
|Reboots the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.getID()&lt;br /&gt;
|Gets the ID of the Computer or Turtle.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3831</id>
		<title>Peripheral (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Peripheral_(API)&amp;diff=3831"/>
				<updated>2012-11-25T08:36:29Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The peripheral API is for interacting with external [http://en.wikipedia.org/wiki/Peripheral peripherals], such as the disk drive and monitor.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Console|Consoles]] and [[Turtle|Turtles]] are also considered peripherals and you can interface two adjacent computers, although in a more limited fashion compared to [[Rednet (API)|rednet]]. Both Computers and Turtles provide the same methods: ''turnOn'', ''shutdown'', ''reboot'', ''getID''.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.isPresent]](side)&lt;br /&gt;
|Returns '''true''' if a peripheral is present on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getType]](side)&lt;br /&gt;
|Returns the type or peripheral present on ''side'', nothing returned if ''side'' is empty.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.getMethods]](side)&lt;br /&gt;
|Returns a table containing all methods for peripheral on ''side''.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.call]](side, methodName, param1, param2, ...)&lt;br /&gt;
|Sends a function call to peripheral located on ''side''. Return values match those of called method.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Note:''' ''methodName'' is a string.&lt;br /&gt;
|-&lt;br /&gt;
|[[peripheral.wrap]](side)&lt;br /&gt;
|Returns a handle to the peripheral located on ''side''. If assigned to a variable, it can be used to call all methods available from that peripheral, as if calling '''peripheral.call()''', e.g.:&amp;lt;br /&amp;gt;&lt;br /&gt;
m = [[peripheral.wrap]](&amp;quot;left&amp;quot;)&amp;lt;br /&amp;gt;&lt;br /&gt;
m.someMethod()&amp;lt;br /&amp;gt;&lt;br /&gt;
''- is the same as -''&amp;lt;br /&amp;gt;&lt;br /&gt;
[[peripheral.call]](&amp;quot;left&amp;quot;,&amp;quot;someMethod&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Events==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Event name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Parameters&lt;br /&gt;
|-&lt;br /&gt;
|peripheral&lt;br /&gt;
|Fired when peripheral is attached&lt;br /&gt;
|side&lt;br /&gt;
|-&lt;br /&gt;
|peripheral_detach&lt;br /&gt;
|Fired when peripheral is removed&lt;br /&gt;
|side&lt;br /&gt;
|}&lt;br /&gt;
==Monitor==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''monitor'' stands for the variable you wrapped the monitor to.'''&lt;br /&gt;
''Example:'' monitor = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|''monitor''.write]]()&lt;br /&gt;
|Write to the Monitor's screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|''monitor''.scroll]]( n )&lt;br /&gt;
|Scrolls the monitor screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorPos|''monitor''.setCursorPos]]( x, y )&lt;br /&gt;
|Sets the cursor position on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setCursorBlink|''monitor''.setCursorBlink]]( b )&lt;br /&gt;
|Enables or disables cursor blinking.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|''monitor''.getCursorPos]]()&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor on the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|''monitor''.getSize]]()&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the Monitor. &lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|''monitor''.clear]]()&lt;br /&gt;
|Clears the Monitor.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|''monitor''.clearLine]]()&lt;br /&gt;
|Clears the line the cursor is on.&lt;br /&gt;
|-&lt;br /&gt;
|[[monitor.setTextScale|''monitor''.setTextScale]]( scale )&lt;br /&gt;
|Sets the size of the text on the Monitor. Textscale can be between 0.5 and 5.0, with increments of 0.5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Printer==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''printer'' stands for the variable you wrapped the printer to.'''&lt;br /&gt;
''Example:'' printer = peripheral.wrap( &amp;quot;right&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.newPage|newPage]]()&lt;br /&gt;
|Starts a new page. Returns true if page got started, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.endPage|endPage]]()&lt;br /&gt;
|Ends the page and prints the page to the output tray. Returns true if page was ended, false if not.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.write|write]]( text )&lt;br /&gt;
|Writes text to the paper, works the same way as [[term.write()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setPageTitle|setPageTitle]]( text )&lt;br /&gt;
|Sets the title of the page.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPaperLevel|getPaperLevel]]()&lt;br /&gt;
|Returns the amount of paper available in the paper tray.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getInkLevel|getInkLevel]]()&lt;br /&gt;
|Returns the amount of ink in the ink slot.&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getCursorPos|getCursorPos]]()&lt;br /&gt;
|Returns the coordinates of the cursor on the paper, works the same way as [[term.getCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.setCursorPos|setCursorPos]]( x, y )&lt;br /&gt;
|Sets the cursor pos, works the same way as [[term.setCursorPos()]]&lt;br /&gt;
|-&lt;br /&gt;
|''printer''.[[printer.getPageSize|getPageSize]]()&lt;br /&gt;
|Returns the size of the paper, works the same way as [[term.getSize()]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Computers==&lt;br /&gt;
List of methods:&lt;br /&gt;
&lt;br /&gt;
'''''computer'' stands for the variable you wrapped the computer to.'''&lt;br /&gt;
''Example:'' computer = peripheral.wrap( &amp;quot;top&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;210px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.turnOn()&lt;br /&gt;
|Turns on the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.shutdown()&lt;br /&gt;
|Shuts off the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.reboot()&lt;br /&gt;
|Reboots the Computer or Turtle.&lt;br /&gt;
|-&lt;br /&gt;
|''computer''.getID()&lt;br /&gt;
|Gets the ID of the Computer or Turtle.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Parallel_(API)&amp;diff=3830</id>
		<title>Parallel (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Parallel_(API)&amp;diff=3830"/>
				<updated>2012-11-25T08:35:16Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Parallel is an API which allows you to multitask.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[parallel.waitForAny]](function1, function2, ...)&lt;br /&gt;
|Runs all the functions at the same time, and stops when any of them returns.&lt;br /&gt;
|-&lt;br /&gt;
|[[parallel.waitForAll]](function1, function2, ...)&lt;br /&gt;
|Runs all the functions at the same time, and stops when all of them have returned.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Paintutils_(API)&amp;diff=3829</id>
		<title>Paintutils (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Paintutils_(API)&amp;diff=3829"/>
				<updated>2012-11-25T08:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix, shit was all over the place. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paintutils is an API to draw and load images&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;300px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[paintutils.loadImage]](path)&lt;br /&gt;
|Returns an image object.&lt;br /&gt;
|-&lt;br /&gt;
|[[paintutils.drawImage]](image, x, y)&lt;br /&gt;
|Draws an image at (x, y) where image is an image object.&lt;br /&gt;
|-&lt;br /&gt;
|[[paintutils.drawPixel]](x, y, colour)&lt;br /&gt;
|Draws a pixel at (x, y) in the colour specified.&lt;br /&gt;
|-&lt;br /&gt;
|[[paintutils.drawLine]](startX, startY, endX, endY, colour)&lt;br /&gt;
|Draws a line from (startX, startY) to (endX, endY) in the colour specified.&lt;br /&gt;
&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Help_(API)&amp;diff=3828</id>
		<title>Help (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Help_(API)&amp;diff=3828"/>
				<updated>2012-11-25T08:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: /* Methods fix. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Help API allows you to mess around with the help files.&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[help.path]]()&lt;br /&gt;
|Returns the path the help API has been set to &lt;br /&gt;
|-&lt;br /&gt;
|[[help.setPath]]([[string (type)|string]] path)&lt;br /&gt;
|Sets the path of the API to ''path''&lt;br /&gt;
|-&lt;br /&gt;
|[[help.lookup]]([[string (type)|string]] topic)&lt;br /&gt;
|Looks up the help file for ''topic''&lt;br /&gt;
|-&lt;br /&gt;
|[[help.topics]]()&lt;br /&gt;
|Returns a table of valid help topics&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	<entry>
		<id>https://www.computercraft.info/wiki/index.php?title=Term_(API)&amp;diff=3823</id>
		<title>Term (API)</title>
		<link rel="alternate" type="text/html" href="https://www.computercraft.info/wiki/index.php?title=Term_(API)&amp;diff=3823"/>
				<updated>2012-11-24T10:04:49Z</updated>
		
		<summary type="html">&lt;p&gt;Watcher7: Paran-spacing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Terminal API provides functions for ASCII graphics.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;200px&amp;quot;|Method name&lt;br /&gt;
!style=&amp;quot;background:#EEE&amp;quot; width=&amp;quot;*&amp;quot;|Description&lt;br /&gt;
|-&lt;br /&gt;
|[[term.write|term.write( text )]]&lt;br /&gt;
|Writes text to the screen.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clear|term.clear()]]&lt;br /&gt;
|Clears the entire screen&lt;br /&gt;
|-&lt;br /&gt;
|[[term.clearLine|term.clearLine()]]&lt;br /&gt;
|Clears the line the cursor is on&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getCursorPos|term.getCursorPos()]]&lt;br /&gt;
|Returns two arguments containing the x and the y position of the cursor.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.setCursorPos|term.setCursorPos( x, y )]]&lt;br /&gt;
|Sets the cursor's position.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.setCursorBlink|term.setCursorBlink( b )]]&lt;br /&gt;
|Disables the blinking or turns it on.&lt;br /&gt;
|-&lt;br /&gt;
|[[Term.isColor|term.isColor()]]&lt;br /&gt;
|Returns if the computer supports color. (Used to determine whether or not an advanced computer is being used)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.getSize|term.getSize()]]&lt;br /&gt;
|Returns two arguments containing the x and the y values stating the size of the screen. (Good for if you're making something to be compatible with both [[Turtles]] and [[Consoles]].)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.scroll|term.scroll( n )]]&lt;br /&gt;
|Scrolls the terminal ''n'' lines.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.redirect|term.redirect( target )]]&lt;br /&gt;
|Redirects terminal output to a monitor or other redirect target. (Use [[peripheral.wrap]] to acquire a monitor &amp;quot;object&amp;quot;.)&lt;br /&gt;
|-&lt;br /&gt;
|[[term.restore|term.restore()]]&lt;br /&gt;
|Restores terminal output to the previous target.&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setTextColor|term.setTextColor]]( [[Colors#Colors|color]] )&lt;br /&gt;
|Sets the foreground color for text subsequently written to the terminal. '''Note:''' only available on [[Advanced Computer|Advanced Computers]].&lt;br /&gt;
|-&lt;br /&gt;
|[[term.setBackgroundColor]]( [[Colors#Colors|color]] )&lt;br /&gt;
|Sets the background color for text subsequently written to the terminal. '''Note:''' only available on [[Advanced Computer|Advanced Computers]].&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:APIs]]&lt;/div&gt;</summary>
		<author><name>Watcher7</name></author>	</entry>

	</feed>