<?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=195.56.94.159</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=195.56.94.159"/>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=Special:Contributions/195.56.94.159"/>
		<updated>2026-04-05T23:57:52Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:14</id>
		<title>83:Ports:14</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:14"/>
				<updated>2005-03-30T10:28:51Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83:Ports:By_Address|14 - Battery status]] [[Category:83:Ports:By_Name|Battery status]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 14h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' Battery status checking&lt;br /&gt;
&lt;br /&gt;
This is a read-only port indicating battery status. It also acts as a mirror of the link port on the rest of the bits.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* Bit 0: Reads 1 if batteries are high; 0 if they are low.&lt;br /&gt;
* Bits 1 to 7: Mirror of the [[83:Ports:00|link port]].&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:02</id>
		<title>83:Ports:02</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:02"/>
				<updated>2005-03-30T10:25:48Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Synopsis ==&lt;br /&gt;
'''Port Number:''' 02h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' ROM and RAM Pager&lt;br /&gt;
&lt;br /&gt;
This port controls what page is swapped into the 4000h to 7FFFh range.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
Always the last value output is read back.&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bits 0 to 2: The lower 3 bits of the desired ROM page (bit 3 can be set through bit 4 of the [[83:Ports:00|link port]])&lt;br /&gt;
* Bit 3: Must be 1, otherwise the the calculator crashes&lt;br /&gt;
* Bit 4: 0 - the specified ROM page is swapped in, 1 - the RAM page specified by bit 0 swapped in (0 causes it to mirror the page at C000h, 1 mirrors the page at 8000h)&lt;br /&gt;
* Bit 5: Unknown, harmless&lt;br /&gt;
* Bit 6: Unknown, harmless&lt;br /&gt;
* Bit 7: Must be 1, otherwise the the calculator crashes&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
* created by CoBB&lt;br /&gt;
&lt;br /&gt;
[[Category:83:Ports:By Address|02 - ROM and RAM pager]]&lt;br /&gt;
[[Category:83:Ports:By Name|ROM and RAM pager]]&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:00</id>
		<title>83:Ports:00</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:00"/>
				<updated>2005-03-30T10:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: /* Read Values */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83:Ports:By_Address|00 - Link]] [[Category:83: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.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* Bit 0 and 1: The inverse of the values output to the link port.&lt;br /&gt;
* Bit 2 and 3: These two 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;
* Bit 4: Bit 3 of the current ROM page&lt;br /&gt;
* Bit 5-7: Zero&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bit 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;
* Bit 4: Bit 3 of the current ROM page&lt;br /&gt;
* Bit 6 and 7: These bits should be 1 for unknown reasons&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;
&amp;lt;p&amp;gt;Other useful information on linking in general:&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
=== Sending/Setting ===&lt;br /&gt;
&amp;lt;pre&amp;gt;ld a,$D0     ; Set both lines high&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D2     ; Set tip high, ring low&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D1     ; Set tip low, ring high&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D3     ; Set both low&lt;br /&gt;
out (0),a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Receiving/Reading ===&lt;br /&gt;
&amp;lt;pre&amp;gt;in a,(0)        ; Get the link port value&lt;br /&gt;
&lt;br /&gt;
bit 2,a         ; Check tip&lt;br /&gt;
jr z,tip_low&lt;br /&gt;
jr nz,tip_high&lt;br /&gt;
&lt;br /&gt;
bit 3,a         ; Check ring&lt;br /&gt;
jr z,ring_low&lt;br /&gt;
jr nz,ring_high&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:02</id>
		<title>83:Ports:02</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:02"/>
				<updated>2005-03-30T10:23:55Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Synopsis ==&lt;br /&gt;
'''Port Number:''' 02h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' ROM and RAM Pager&lt;br /&gt;
&lt;br /&gt;
This port controls what page is swapped into the 4000h to 7FFFh range.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
Always the last value output is read back.&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bits 0 to 2: The lower 3 bits of the desired ROM page (bit 3 can be set through bit 4 of the [[83:Ports:00|link port]])&lt;br /&gt;
* Bit 3: Must be 1, otherwise the the calculator crashes&lt;br /&gt;
* Bit 4: 0 - the specified ROM page is swapped in, 1 - the RAM page specified by bit 0 swapped in (0 causes it to mirror the page at C000h, 1 mirrors the page at 8000h)&lt;br /&gt;
* Bit 5: Unknown, harmless&lt;br /&gt;
* Bit 6: Unknown, harmless&lt;br /&gt;
* Bit 7: Must be 1, otherwise the the calculator crashes&lt;br /&gt;
&lt;br /&gt;
== Credits and Contributions ==&lt;br /&gt;
* created by CoBB&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:Mirrors</id>
		<title>83:Ports:Mirrors</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:Mirrors"/>
				<updated>2005-03-30T10:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
When addressing the ports of the 83, only bits 0, 1, 2 and 4 make a difference, so every port has at least 15 mirrors by altering bits 3, 5, 6 or 7 (e. g. LCD status is available at port 38 as well). These variations are not listed below. All addresses are hexadecimal.&lt;br /&gt;
&lt;br /&gt;
== Input ports ==&lt;br /&gt;
* [[83:Ports:00|Link and pager]]: 00, 04&lt;br /&gt;
* [[83:Ports:01|Keyboard status]]: 01, 05&lt;br /&gt;
* [[83:Ports:02|Pager]]: 02, 06, 16&lt;br /&gt;
* [[83:Ports:03|Interrupt status]]: 03, 07, 17&lt;br /&gt;
* [[83:Ports:10|LCD status]]: 10, 12&lt;br /&gt;
* [[83:Ports:11|LCD data]]: 11, 13&lt;br /&gt;
* [[83:Ports:14|Battery and link status]]: 14&lt;br /&gt;
* [[83:Ports:15|Unknown]]: 15&lt;br /&gt;
&lt;br /&gt;
== Output ports ==&lt;br /&gt;
* [[83:Ports:00|Link and pager]]: 00&lt;br /&gt;
* [[83:Ports:01|Keyboard mask]]: 01&lt;br /&gt;
* [[83:Ports:02|Pager]]: 02&lt;br /&gt;
* [[83:Ports:03|Interrupt mask]]: 03&lt;br /&gt;
* [[83:Ports:04|Timer frequency]]: 04&lt;br /&gt;
* [[83:Ports:10|LCD command]]: 10, 12&lt;br /&gt;
* [[83:Ports:11|LCD data]]: 11, 13&lt;br /&gt;
&lt;br /&gt;
[[Category:83:Ports|Mirrors]]&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:00</id>
		<title>83:Ports:00</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:00"/>
				<updated>2005-03-30T09:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83:Ports:By_Address|00 - Link]] [[Category:83: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.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* Bit 0 and 1: The inverse of the values output to the link port.&lt;br /&gt;
* Bit 2 and 3: These two 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;
* Bit 4: Bit 3 of hte current ROM page&lt;br /&gt;
* Bit 5-7: Zero&lt;br /&gt;
&lt;br /&gt;
=== Write Values ===&lt;br /&gt;
* Bit 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;
* Bit 4: Bit 3 of the current ROM page&lt;br /&gt;
* Bit 6 and 7: These bits should be 1 for unknown reasons&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;
&amp;lt;p&amp;gt;Other useful information on linking in general:&amp;lt;br&amp;gt;&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;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
=== Sending/Setting ===&lt;br /&gt;
&amp;lt;pre&amp;gt;ld a,$D0     ; Set both lines high&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D2     ; Set tip high, ring low&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D1     ; Set tip low, ring high&lt;br /&gt;
out (0),a&lt;br /&gt;
&lt;br /&gt;
ld a,$D3     ; Set both low&lt;br /&gt;
out (0),a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Receiving/Reading ===&lt;br /&gt;
&amp;lt;pre&amp;gt;in a,(0)        ; Get the link port value&lt;br /&gt;
&lt;br /&gt;
bit 2,a         ; Check tip&lt;br /&gt;
jr z,tip_low&lt;br /&gt;
jr nz,tip_high&lt;br /&gt;
&lt;br /&gt;
bit 3,a         ; Check ring&lt;br /&gt;
jr z,ring_low&lt;br /&gt;
jr nz,ring_high&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83:Ports:14</id>
		<title>83:Ports:14</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83:Ports:14"/>
				<updated>2005-03-30T09:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;195.56.94.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:83:Ports:By_Address|14 - Battery status]] [[Category:83:Ports:By_Name|Battery status]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
'''Port Number:''' 14h&lt;br /&gt;
&lt;br /&gt;
'''Function:''' Battery status checking&lt;br /&gt;
&lt;br /&gt;
This is a read-only port indicating battery status. It also acts as a mirror of the link port on the rest of the bits.&lt;br /&gt;
&lt;br /&gt;
=== Read Values ===&lt;br /&gt;
* bit 0: Reads 1 if batteries are high; 0 if they are low.&lt;/div&gt;</summary>
		<author><name>195.56.94.159</name></author>	</entry>

	</feed>