<!doctypehtml><html class=client-nojs dir=ltr lang=en><meta charset=utf-8><title>
   Modem (API) - ComputerCraft Wiki
  </title><meta content="MediaWiki 1.24.1"name=generator><link rel="shortcut icon"href=/favicon.ico><link title="ComputerCraft Wiki (en)"href=/wiki/opensearch_desc.php rel=search type=application/opensearchdescription+xml><link href=http://www.computercraft.info/wiki/api.php?action=rsd rel=EditURI type=application/rsd+xml><link href=/wiki/Modem_(API) hreflang=x-default rel=alternate><link title="ComputerCraft Wiki Atom feed"href=/wiki/index.php?title=Special:RecentChanges&feed=atom rel=alternate type=application/atom+xml><link href=http://www.computercraft.info/wiki/load.php?debug=false&lang=en&modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.skinning.interface%7Cmediawiki.ui.button%7Cskins.vector.styles&only=styles&skin=vector&* rel=stylesheet><meta name=ResourceLoaderDynamicStyles><link href=http://www.computercraft.info/wiki/load.php?debug=false&lang=en&modules=site&only=styles&skin=vector&* rel=stylesheet><style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}
/* cache key: ccraft_wiki-mw_:resourceloader:filter:minify-css:7:90882d5799eb89c805a87e803445a228 */</style><script src=http://www.computercraft.info/wiki/load.php?debug=false&lang=en&modules=startup&only=scripts&skin=vector&*></script><script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Modem_(API)","wgTitle":"Modem (API)","wgCurRevisionId":7369,"wgRevisionId":7369,"wgArticleId":988,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Events","Peripheral APIs"],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Modem_(API)","wgIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"editfont":"default","editondblclick":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":1,"extendwatchlist":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nickname":"","norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"rcdays":7,"rclimit":50,"rows":25,"showhiddencats":0,"shownumberswatching":1,"showtoolbar":1,"skin":"vector","stubthreshold":0,"thumbsize":5,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":1,"watchdefault":1,"watchdeletion":0,"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"watchrollback":0,
"wllimit":250,"useeditwarning":1,"prefershttps":1,"language":"en","variant-gan":"gan","variant-iu":"iu","variant-kk":"kk","variant-ku":"ku","variant-shi":"shi","variant-sr":"sr","variant-tg":"tg","variant-uz":"uz","variant-zh":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"variant":"en"});},{},{});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\"});},{},{});
/* cache key: ccraft_wiki-mw_:resourceloader:filter:minify-js:7:2ffb09fddb30ef53a64cefb237597916 */
}</script><script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax","skins.vector.js"]);
}</script><body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Modem_API skin-vector action-view vector-animateLayout"><div class=noprint id=mw-page-base></div><div class=noprint id=mw-head-base></div><div class=mw-body id=content role=main><a id=top> </a><h1 class=firstHeading id=firstHeading lang=en><span dir=auto> Modem (API) </span></h1><div class=mw-body-content id=bodyContent><div id=siteSub>From ComputerCraft Wiki</div><div id=contentSub></div><div class=mw-jump id=jump-to-nav>Jump to: <a href=#mw-navigation> navigation </a> , <a href=#p-search> search </a></div><div class=mw-content-ltr dir=ltr id=mw-content-text lang=en><dl><dd><i> This page is for the modem API. For the blocks, see <a href=/wiki/Modem title=Modem> Modem </a> . </i></dl><table style="background-color: #CCEEFF; border: 2px solid #616161; padding: 3px 12px 3px 7px; margin: 0 auto 1em; text-align:center;"class=msgbox><tbody><tr><td style="vertical-align: middle; border: none"><td style="border: none"><b> This API requires the use of a wrapped peripheral! </b> <div>This API does not behave like a regular API, to use it you must first wrap the peripheral and call the methods on the wrapped object. For more information see <a title="Category:Peripheral APIs"href=/wiki/Category:Peripheral_APIs> this page </a> .</div></table><p><br> Available to <a href=/wiki/Peripheral.wrap title=Peripheral.wrap> wrapped </a> <a title="Wireless Modem"href=/wiki/Wireless_Modem> Wireless </a> , <a title="Ender Modem"href=/wiki/Ender_Modem> Ender </a> , or <a title="Wired Modem"href=/wiki/Wired_Modem> Wired </a> Modems.<p>Direct use of modems requires understanding of the "channels" system - these are essentially networks which can be <a href=/wiki/Modem.open title=Modem.open> opened </a> , <a href=/wiki/Modem.close title=Modem.close> closed </a> and <a title="Modem message (event)"href=/wiki/Modem_message_(event)> listened </a> on by any <a href=/wiki/Computer title=Computer> Computer </a> within range, without need of independent computer IDs. To interact with channels, one must <a href=/wiki/Peripheral.wrap title=Peripheral.wrap> wrap </a> or otherwise interact directly with the peripheral. The <a title="Rednet (API)"href=/wiki/Rednet_(API)> Rednet API </a> acts as a wrapper for your modem's functionality, handling the channel system for you (basically by having each system listen on a channel equal to its ID number).<p>Functions in <i> italics </i> are only available to <a title="Wired Modem"href=/wiki/Wired_Modem> Wired Modems </a> , which are able to connect to remote peripherals and control them from afar.<p><br><table style="width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;"><tbody><tr><th style="font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #D3FFC2; line-height:28px; text-align: left"colspan=3><a class=image href=/wiki/File:Grid_disk.png> <img alt="Grid disk.png"srcset="/wiki/images/c/c9/Grid_disk.png 1.5x, /wiki/images/c/c9/Grid_disk.png 2x"height=24 src=/wiki/images/thumb/c/c9/Grid_disk.png/24px-Grid_disk.png width=24> </a>   Modem (API)<tr><td style="width: 350px; background: #E0E0E0; padding: .4em; font-weight:bold;">Function<td style="width: 150px; background: #E0E0E0; padding: .4em; font-weight:bold;">Return values<td style="background: #E0E0E0; padding: .4em; font-weight:bold;">Description<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.isOpen title=Modem.isOpen> <i> modem </i> .isOpen </a> ( <a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> channel)<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Boolean (type)"href=/wiki/Boolean_(type)> <span style="color: darkgreen; font-style: italic"> boolean </span> </a> isChannelOpen<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Checks to see if <i> channel </i> is open.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.open title=Modem.open> <i> modem </i> .open </a> ( <a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> channel)<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Nil (type)"href=/wiki/Nil_(type)> <span style="color: darkgreen; font-style: italic"> nil </span> </a><td style="border-top: solid #C9C9C9 1px; padding: .4em;">Opens <i> channel </i> to allow for listening. The channel specified must be larger than 0 and less than 65535.<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.close title=Modem.close> <i> modem </i> .close </a> ( <a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> channel)<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Nil (type)"href=/wiki/Nil_(type)> <span style="color: darkgreen; font-style: italic"> nil </span> </a><td style="border-top: solid #C9C9C9 1px; padding: .4em;">Closes an open channel to disallow listening.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.closeAll title=Modem.closeAll> <i> modem </i> .closeAll </a> ()<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Nil (type)"href=/wiki/Nil_(type)> <span style="color: darkgreen; font-style: italic"> nil </span> </a><td style="border-top: solid #C9C9C9 1px; padding: .4em;">Closes all open channels.<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.transmit title=Modem.transmit> <i> modem </i> .transmit </a> ( <a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> channel, <a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> replyChannel, <a title="Any (type)"href=/wiki/Any_(type)> <span style="color: darkgreen; font-style: italic"> any </span> </a> message)<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Nil (type)"href=/wiki/Nil_(type)> <span style="color: darkgreen; font-style: italic"> nil </span> </a><td style="border-top: solid #C9C9C9 1px; padding: .4em;">Transmits a message on the specified channel.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a href=/wiki/Modem.isWireless title=Modem.isWireless> <i> modem </i> .isWireless </a> ()<td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Boolean (type)"href=/wiki/Boolean_(type)> <span style="color: darkgreen; font-style: italic"> boolean </span> </a> isWireless<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Returns if the modem is wireless or wired.<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><i> <a href=/wiki/Modem.getNamesRemote title=Modem.getNamesRemote> modem.getNamesRemote </a> () </i><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Table (type)"href=/wiki/Table_(type)> <span style="color: darkgreen; font-style: italic"> table </span> </a> peripheralNames<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Returns a table containing the network names of the peripherals connected to the modem.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><i> <a href=/wiki/Modem.getTypeRemote title=Modem.getTypeRemote> modem.getTypeRemote </a> ( <a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> peripheralName) </i><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> type<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Returns the type of a given peripheral connected to the modem.<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><i> <a href=/wiki/Modem.isPresentRemote title=Modem.isPresentRemote> modem.isPresentRemote </a> ( <a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> peripheralName) </i><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Boolean (type)"href=/wiki/Boolean_(type)> <span style="color: darkgreen; font-style: italic"> boolean </span> </a> present<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Returns whether a given peripheral is actively connected to the modem.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><i> <a title="Modem.getMethodsRemote (page does not exist)"class=new href=/wiki/index.php?title=Modem.getMethodsRemote&action=edit&redlink=1> modem.getMethodsRemote </a> ( <a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> peripheralName) </i><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><a title="Table (type)"href=/wiki/Table_(type)> <span style="color: darkgreen; font-style: italic"> table </span> </a> methodNames<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Returns a list strings naming the functions available to the specified peripheral.<tr style="background-color: #FFFFFF;"><td style="border-top: solid #C9C9C9 1px; padding: .4em;"><i> <a title="Modem.callRemote (page does not exist)"class=new href=/wiki/index.php?title=Modem.callRemote&action=edit&redlink=1> modem.callRemote </a> ( <a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> peripheralName, <a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> method, ...) </i><td style="border-top: solid #C9C9C9 1px; padding: .4em;">any<td style="border-top: solid #C9C9C9 1px; padding: .4em;">Has the remote peripheral execute its specified function.</table><table style="width: 100%; border: solid 1px black; margin: 2px; border-spacing: 0px;"><tbody><tr><td style="font-weight: bold; font-size: large; padding-bottom: .3em; border-bottom: solid #C9C9C9 1px; background: #DBE5FF; line-height:28px;"colspan=2><a class=image href=/wiki/File:Grid_Modem.png> <img alt="Grid Modem.png"srcset="/wiki/images/8/86/Grid_Modem.png 1.5x, /wiki/images/8/86/Grid_Modem.png 2x"height=24 src=/wiki/images/thumb/8/86/Grid_Modem.png/24px-Grid_Modem.png width=24> </a>   Event modem_message<tr><td style="border-color: black; padding: .4em; padding-left: .4em;"colspan=2>Fired when a modem message is received.<tr style="background-color: #E8E8E8;"><td style="border-top: solid #C9C9C9 1px; border-right: solid #C9C9C9 1px; padding: .4em; width: 175px; font-weight: bold;">Returned Object 1<td style="border-top: solid #C9C9C9 1px; padding: .4em; padding-left: .4em;"><a title="String (type)"href=/wiki/String_(type)> <span style="color: darkgreen; font-style: italic"> string </span> </a> modemSide<tr style="background-color: #FFFFFF;"><td style="border-right: solid #C9C9C9 1px; padding: .4em; width: 175px; font-weight: bold;">Returned Object 2<td style="border-color: black; padding: .4em; padding-left: .4em;"><a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> senderChannel<tr style="background-color: #E8E8E8;"><td style="border-right: solid #C9C9C9 1px; padding: .4em; width: 175px; font-weight: bold;">Returned Object 3<td style="border-color: black; padding: .4em; padding-left: .4em;"><a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> replyChannel<tr style="background-color: #FFFFFF;"><td style="border-right: solid #C9C9C9 1px; padding: .4em; width: 175px; font-weight: bold;">Returned Object 4<td style="border-color: black; padding: .4em; padding-left: .4em;">message<tr style="background-color: #E8E8E8;"><td style="border-right: solid #C9C9C9 1px; padding: .4em; width: 175px; font-weight: bold;">Returned Object 5<td style="border-color: black; padding: .4em; padding-left: .4em;"><a title="Number (type)"href=/wiki/Number_(type)> <span style="color: darkgreen; font-style: italic"> number </span> </a> distance</table><p><br><h2><span class=mw-headline id=Sending_Messages> Sending Messages </span></h2><p>Sending a message is simple and does not require that you open any channels. Simply use the transmit function like so:<pre>local modem = <a href=/wiki/Peripheral.wrap title=Peripheral.wrap>peripheral.wrap</a>("right") -- Wraps the modem on the right side.
<a href=/wiki/Modem.transmit title=Modem.transmit>modem.transmit</a>(3, 1, "Hello world!") 

<a href=/wiki/Peripheral.call title=Peripheral.call>peripheral.call</a>("right", "transmit", 3, 1, "This will also work!")
</pre><p>What did that do? First I wrapped the peripheral in order to interact with it. Second, I used <a href=/wiki/Modem.transmit title=Modem.transmit> modem.transmit </a> (channel, replyChannel, message) in order to send my message. In case you were wondering, the reply channel is captured by the listening computer and suggests which channel they should reply on.<h2><span class=mw-headline id=Receiving_Messages> Receiving Messages </span></h2><p>Receiving a message requires that you be familiar with <a href=/wiki/Os.pullEvent title=Os.pullEvent> events </a> . An example:<pre>local modem = <a href=/wiki/Peripheral.wrap title=Peripheral.wrap>peripheral.wrap</a>("left")
<a href=/wiki/Modem.open title=Modem.open>modem.open</a>(3)  -- Open channel 3 so that we can listen on it
local event, modemSide, senderChannel, 
  replyChannel, message, senderDistance = <a href=/wiki/Os.pullEvent title=Os.pullEvent>os.pullEvent</a>("modem_message")

print("I just received a message on channel: "..senderChannel)
print("I should apparently reply on channel: "..replyChannel)
print("The modem receiving this is located on my "..modemSide.." side")
print("The message was: "..message)
print("The sender is: "..(senderDistance or "an unknown number of").." blocks away from me.")
</pre><p>So what did I do? Quite simply, I called <a href=/wiki/Os.pullEvent title=Os.pullEvent> os.pullEvent </a> () with the string argument "modem_message", which blocks all other events from being returned. When <a title="Modem message (event)"href=/wiki/Modem_message_(event)> the "modem_message" event </a> is captured, it returns the arguments: event, modemSide, senderChannel, replyChannel, message, senderDistance. I captured these and then printed them out.<h2><span class=mw-headline id=Modem_Limitations> Modem Limitations </span></h2><ul><li>You can only open 128 channels at any given time, per modem.<li>The highest channel you can open is 65535.<li>You can listen on more than one channel at a time. For example, if the modem has channel 3 and channel 5 open, and somebody sends a message on channel 5, the modem will receive it. If a message is sent on channel 3, the modem will also receive the message.<li>Sending messages does not require you to open any channels prior to sending it.<li>If you aren't receiving a message when you think you should, check to make sure that you have opened the channel first.<li>Modems and channels are not secure - if you are sending a message using the Modem API, messages are still available to any computer listening on the sent channel. By extension, the <a title="Rednet (API)"href=/wiki/Rednet_(API)> Rednet API </a> (which handles your modems for you using their peripheral APIs) is also insecure.</ul></div><div class=printfooter>Retrieved from " <a dir=ltr href=http://www.computercraft.info/wiki/index.php?title=Modem_(API)&oldid=7369> http://www.computercraft.info/wiki/index.php?title=Modem_(API)&oldid=7369 </a> "</div><div class=catlinks id=catlinks><div class=mw-normal-catlinks id=mw-normal-catlinks><a href=/wiki/Special:Categories title=Special:Categories> Categories </a> : <ul><li><a href=/wiki/Category:Events title=Category:Events> Events </a><li><a title="Category:Peripheral APIs"href=/wiki/Category:Peripheral_APIs> Peripheral APIs </a></ul></div></div><div class=visualClear></div></div></div><div id=mw-navigation><h2>Navigation menu</h2><div id=mw-head><div aria-labelledby=p-personal-label id=p-personal role=navigation><h3 id=p-personal-label>Personal tools</h3><ul><li id=pt-login><a title="You are encouraged to log in; however, it is not mandatory [o]"accesskey=o href=/wiki/index.php?title=Special:UserLogin&returnto=Modem+%28API%29> Log in </a></ul></div><div id=left-navigation><div aria-labelledby=p-namespaces-label class=vectorTabs id=p-namespaces role=navigation><h3 id=p-namespaces-label>Namespaces</h3><ul><li class=selected id=ca-nstab-main><span> <a title="View the content page [c]"accesskey=c href=/wiki/Modem_(API)> Page </a> </span><li class=new id=ca-talk><span> <a title="Discussion about the content page [t]"accesskey=t href=/wiki/index.php?title=Talk:Modem_(API)&action=edit&redlink=1> Discussion </a> </span></ul></div><div class="vectorMenu emptyPortlet"aria-labelledby=p-variants-label id=p-variants role=navigation><h3 id=p-variants-label><span> Variants </span> <a href=#> </a></h3><div class=menu><ul></ul></div></div></div><div id=right-navigation><div aria-labelledby=p-views-label class=vectorTabs id=p-views role=navigation><h3 id=p-views-label>Views</h3><ul><li class=selected id=ca-view><span> <a href=/wiki/Modem_(API)> Read </a> </span><li id=ca-viewsource><span> <a title="This page is protected.
You can view its source [e]"accesskey=e href=/wiki/index.php?title=Modem_(API)&action=edit> View source </a> </span><li class=collapsible id=ca-history><span> <a title="Past revisions of this page [h]"accesskey=h href=/wiki/index.php?title=Modem_(API)&action=history> View history </a> </span></ul></div><div class="vectorMenu emptyPortlet"aria-labelledby=p-cactions-label id=p-cactions role=navigation><h3 id=p-cactions-label><span> More </span> <a href=#> </a></h3><div class=menu><ul></ul></div></div><div id=p-search role=search><h3><label for=searchInput>Search</label></h3><form action=/wiki/index.php id=searchform><div id=simpleSearch><input title="Search ComputerCraft Wiki [f]"accesskey=f id=searchInput name=search placeholder=Search type=search><input name=title type=hidden value=Special:Search><input class="searchButton mw-fallbackSearchButton"title="Search the pages for this text"id=mw-searchButton name=fulltext type=submit value=Search><input title="Go to a page with this exact name if exists"class=searchButton id=searchButton name=go type=submit value=Go></div></form></div></div></div><div id=mw-panel><div id=p-logo role=banner><a style="background-image: url(/wiki/images/d/da/Ccblink.gif);"title="Visit the main page"href=/wiki/Main_Page> </a></div><div aria-labelledby=p-navigation-label class=portal id=p-navigation role=navigation><h3 id=p-navigation-label>Navigation</h3><div class=body><ul><li id=n-mainpage-description><a title="Visit the main page [z]"accesskey=z href=/wiki/Main_Page> Main page </a><li id=n-recentchanges><a title="A list of recent changes in the wiki [r]"accesskey=r href=/wiki/Special:RecentChanges> Recent changes </a><li id=n-randompage><a title="Load a random page [x]"accesskey=x href=/wiki/Special:Random> Random page </a></ul></div></div><div aria-labelledby=p-Links-label class=portal id=p-Links role=navigation><h3 id=p-Links-label>Links</h3><div class=body><ul><li id=n-Main-Site><a href=http://computercraft.info rel=nofollow> Main Site </a><li id=n-Forums><a href=http://computercraft.info/forums2 rel=nofollow> Forums </a></ul></div></div><div aria-labelledby=p-tb-label class=portal id=p-tb role=navigation><h3 id=p-tb-label>Tools</h3><div class=body><ul><li id=t-whatlinkshere><a title="A list of all wiki pages that link here [j]"accesskey=j href=/wiki/Special:WhatLinksHere/Modem_(API)> What links here </a><li id=t-recentchangeslinked><a title="Recent changes in pages linked from this page [k]"accesskey=k href=/wiki/Special:RecentChangesLinked/Modem_(API)> Related changes </a><li id=t-specialpages><a title="A list of all special pages [q]"accesskey=q href=/wiki/Special:SpecialPages> Special pages </a><li id=t-print><a title="Printable version of this page [p]"accesskey=p href=/wiki/index.php?title=Modem_(API)&printable=yes rel=alternate> Printable version </a><li id=t-permalink><a title="Permanent link to this revision of the page"href=/wiki/index.php?title=Modem_(API)&oldid=7369> Permanent link </a><li id=t-info><a href=/wiki/index.php?title=Modem_(API)&action=info> Page information </a></ul></div></div></div></div><div id=footer role=contentinfo><ul id=footer-info><li id=footer-info-lastmod>This page was last modified on 9 January 2016, at 03:33.<li id=footer-info-viewcount>This page has been accessed 215,757 times.</ul><ul id=footer-places><li id=footer-places-privacy><a title="ComputerCraft Wiki:Privacy policy"href=/wiki/ComputerCraft_Wiki:Privacy_policy> Privacy policy </a><li id=footer-places-about><a title="ComputerCraft Wiki:About"href=/wiki/ComputerCraft_Wiki:About> About ComputerCraft Wiki </a><li id=footer-places-disclaimer><a title="ComputerCraft Wiki:General disclaimer"href=/wiki/ComputerCraft_Wiki:General_disclaimer> Disclaimers </a></ul><ul class=noprint id=footer-icons><li id=footer-poweredbyico><a href=//www.mediawiki.org/> <img alt="Powered by MediaWiki"height=31 src=/wiki/resources/assets/poweredby_mediawiki_88x31.png width=88> </a></ul><div style=clear:both></div></div><script>/*<![CDATA[*/window.jQuery && jQuery.ready();/*]]>*/</script><script>if(window.mw){
mw.loader.state({"site":"loading","user":"ready","user.groups":"ready"});
}</script><script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest"],null,true);
}</script><script>if(window.mw){
document.write("\u003Cscript src=\"http://www.computercraft.info/wiki/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=site\u0026amp;only=scripts\u0026amp;skin=vector\u0026amp;*\"\u003E\u003C/script\u003E");
}</script><script>if(window.mw){
mw.config.set({"wgBackendResponseTime":168});
}</script>