<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wikiti.brandonw.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wikiti.brandonw.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.119.3.181</id>
		<title>WikiTI - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wikiti.brandonw.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=24.119.3.181"/>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Special:Contributions/24.119.3.181"/>
		<updated>2026-04-23T23:02:25Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:Ports:00</id>
		<title>83Plus:Ports:00</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:Ports:00"/>
				<updated>2006-01-16T17:38:39Z</updated>
		
		<summary type="html">&lt;p&gt;24.119.3.181: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83Plus:Ports:By_Address|00 - Link]] [[Category:83Plus:Ports:By_Name|Link]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 00h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' Link&lt;br /&gt;
&lt;br /&gt;
This port controls the calculator's serial link port (the standard link port present on the 83+, 83+ SE, 84+ and 84+ SE - do not confuse this with the 84+/84+SE's USB link port).&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* Bits 0 and 1: The low 2 bits indicate the state of the link port's two lines. A 1 bit indicates a high line, and a 0 bit indicates a low line. When idle (no transfer in progress, no cable plugged in, etc), both lines are usually high (1). When a cable is connected on both ends, a line reads high if and only if both ends have set the line high. The line will read low if either calculator sets it low.&lt;br /&gt;
*'''83+ only:''' Bit 2: Set means link receive assist is active.&lt;br /&gt;
*'''83+ only:''' Bit 3: Set when link assist has received a complete byte. The only way to reset this bit is to read [[83Plus:Ports:05|port 5]].&lt;br /&gt;
* Bit 4 and 5: Bits 4 and 5 indicate which lines are pulled low by the calculator (unlike bits 0 and 1 they are not influenced by the other calculator). A 1 bit indicates your calculator is holding the line low. A 0 bit indicates your calculator is not holding the line low. (When both calculators have a 0 bit here, the corresponding line will read 1.) In other words, these bits reflect bits 0 and 1 from the most recent write to this port.&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bits 0 and 1: The low 2 bits indicate what state the lines should be put into. A 1 bit will pull the line low. A 0 bit will stop holding the line low (allowing it to go high if the other calculator is not holding it low).&lt;br /&gt;
*'''83+ only:''' Bit 2: Set this bit to enable the link receive assist. After setting this bit, poll port 0 until bit 3 is high, at which point read from [[83Plus:Ports:05|port 5]] to get the byte.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comments ==&lt;br /&gt;
&lt;br /&gt;
=== Ti-OS interference ===&lt;br /&gt;
One thing to keep in mind when writing link port related software is that the Ti-OS checks for silent transfers in the background. When two calculators are connected and one pulls a line low, the other calculator will respond by pulling the other line low to acknowledge that it has received a bit. This phenomenon is known to cause severe headaches for programmers who attempt to write synchronization routines :). It's unclear if this is only when the other calculator is in the homescreen, or if it is part of the default interrupt routine at $0038.&lt;br /&gt;
&lt;br /&gt;
=== Data transfer ===&lt;br /&gt;
Transferring an entire byte requires you to implement some form of protocol. Examples include TI's official linking protocol, and [http://www.ticalc.org/archives/files/fileinfo/277/27718.html Michael Vincent's TachyonLink protocol].&lt;br /&gt;
&lt;br /&gt;
Other useful information on linking in general:&lt;br /&gt;
*  [http://www.ticalc.org/archives/files/fileinfo/247/24750.html TI Link Protocol &amp;amp; File Format Guide]&amp;lt;br&amp;gt;&lt;br /&gt;
*  [http://www.ticalc.org/archives/files/fileinfo/294/29418.html Ti-83 Link Port Tutorial]&lt;br /&gt;
*  [http://www.ticalc.org/archives/files/fileinfo/242/24244.html All about the Ti-86 link port]&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
=== Sending/Setting ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; ld a,0     ; Set both lines high&lt;br /&gt;
 out (0),a&lt;br /&gt;
&lt;br /&gt;
 ld a,2     ; Set tip high, ring low&lt;br /&gt;
 out (0),a&lt;br /&gt;
&lt;br /&gt;
 ld a,1     ; Set tip low, ring high&lt;br /&gt;
 out (0),a&lt;br /&gt;
&lt;br /&gt;
 ld a,3     ; Set both low&lt;br /&gt;
 out (0),a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Receiving/Reading ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; in a,(0)        ; Get the link port value&lt;br /&gt;
&lt;br /&gt;
 bit 0,a         ; Check tip&lt;br /&gt;
 jr z,tip_low&lt;br /&gt;
 jr nz,tip_high&lt;br /&gt;
&lt;br /&gt;
 bit 1,a         ; Check ring&lt;br /&gt;
 jr z,ring_low&lt;br /&gt;
 jr nz,ring_high&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>24.119.3.181</name></author>	</entry>

	</feed>