please dont rip this site PIC <--> TI Calc interfacing for the mac

All TI calculators have two open-drain lines. There is a method under Fargo to access each line individually for input and output (see "lowlevel.txt"), but in most cases where byte-transfers are needed, TI's built-in link routines are simple and effective to use. The protocol used by these routines will be described here:

When the lines are not active they are high. You should remember that if an end of an open-drain line is pulled-down (connected to the ground) by a device, all devices that are attached to that line (including the device that pulled the line down) will read a low signal even if they are trying to pull the line up.

We will assume that Calculator1 (C1) want to send a byte to Calculator2 (C2). The lines will be refered by L1 and L2. In the text "10" means L1 high and L2 low, and "01" means L1 low and L2 high.

This will be repeated 8 times in order to transfer a bit.

This protocol used by TI on their calculators, is an effective protocol. But in most cases you do not need to go through those details when programming, since everything is made by the built-in ROM routines. To learn more on the byte level protocol, look at \doc\ti-prot.txt

'PBASIC code for the STAMP to display data from a TI-83 from Jack [goflo at]
'  Connector: Red = Gnd, Purple = Pin0, White-Green = Pin1

dirs = %00000000
pins = %00000000

symbol BitCount = B1

Init:    if pin0 = 0 and pin1 = 0 then Init
         pause 2000                     ' pause to connect Link

Start:   BitCount = 0
         B0 = 0

Loop:    if pin0 = 1 and pin1 = 1 then Loop
         if pin0 = 0 then TLow

RLow:    low 0
         branch BitCount,(R0,R1,R2,R3,R4,R5,R6,R7)
R0:      bit0 = 1 : goto Rloop
R1:      bit1 = 1 : goto Rloop
R2:      bit2 = 1 : goto Rloop
R3:      bit3 = 1 : goto Rloop
R4:      bit4 = 1 : goto Rloop
R5:      bit5 = 1 : goto Rloop
R6:      bit6 = 1 : goto Rloop
R7:      bit7 = 1
Rloop:   if pin1 = 0 then Rloop
         BitCount = BitCount + 1
         input 0
         if BitCount = 8 then Display
         goto Loop

TLow:    low 1
Tloop:   if pin0 = 0 then Tloop
         BitCount = BitCount + 1
         input 1
         if BitCount = 8 then Display
         goto Loop

Display: debug B0
         goto Start

file: /Techref/ti/calc/sio.htm, 3KB, , updated: 2013/7/22 18:13, local time: 2024/7/17 10:02,

 ©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
Please DO link to this page! Digg it! / MAKE!

<A HREF=""> ti calc sio</A>

After you find an appropriate page, you are invited to your to this massmind site! (posts will be visible only to you before review) Just type a nice message (short messages are blocked as spam) in the box and press the Post button. (HTML welcomed, but not the <A tag: Instead, use the link box to link to another page. A tutorial is available Members can login to post directly, become page editors, and be credited for their posts.

Link? Put it here: 
if you want a response, please enter your email address: 
Attn spammers: All posts are reviewed before being made visible to anyone other than the poster.
Did you find what you needed?


Welcome to!

Site supported by
sales, advertizing,
& kind contributors
just like you!

Please don't rip/copy
(here's why

Copies of the site on CD
are available at minimal cost.

Welcome to!