silent.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974
  1. <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux 2.4.0-test6 i586) [Netscape]">
  6. <title>TI-89 Link Protocol Guide - Silent Transfers</title>
  7. </head>
  8. <body bgcolor="#FFFFE8">
  9. <b>TI-89 Link Protocol Guide</b> - Silent Variable Transfers
  10. <center>
  11. <h2>
  12. <hr ALIGN="CENTER">Silent Variable Transfers</h2></center>
  13. "Silent Linking" is a capability that Texas Instruments built into the
  14. TI-83, TI-83+, TI-92, TI-89, TI-92 and TI-92+. It enables the calculator
  15. to transfer data to and from a computer without any special preparation
  16. required on the calculator end. The only drawback to the silent linking
  17. method is that when using this protocol, the calculator will automatically
  18. overwrite any data in a variable that has the same name as one being sent
  19. to it. Any program that incorporates silent linking must check for this;
  20. otherwise data may be lost.
  21. <p>Because silent linking protocols are one-sided (i.e. the user interaction
  22. is solely on the computer), there are three different transfer sequences
  23. required. First a <a href="#dir">directory listing</a> must be downloaded
  24. from the calculator in order to choose the variables to transfer or to
  25. check for duplicate names and out-of-memory conditions. Then, if variables
  26. are to be downloaded, a <a href="#request">variable request</a> action
  27. must be initiated by the computer. Finally, if variables are to be uploaded,
  28. a <a href="#rts">request-to-send</a> action must be sent by the computer.
  29. <h4>
  30. <a NAME="dir"></a>Directory Listing</h4>
  31. A directory listing is a list of all user variables in the calculator's
  32. memory and a number specifying how many bytes of free memory are left.
  33. <br>
  34. On the TI89/92+/V200 calculator, the directory list is done in 2 phase: <br>
  35. - the first, the computer request a main directory list which lists only the folders
  36. (and the FLASH apps, too (see note))<br>
  37. - the second, the computer request a local directory list in each folder
  38. listed by the phase 1.
  39. <p>The protocol for requesting a directory listing is shown below. For
  40. information on packet formats, <a href="packet.html">click here</a>.
  41. <table BORDER CELLSPACING=0 WIDTH="92%" BGCOLOR="#FFFFFF" NOSAVE >
  42. <tr>
  43. <th WIDTH="7%" BGCOLOR="#008800"><font color="#FFFFFF">Step</font></th>
  44. <th COLSPAN="3" BGCOLOR="#008800"><font color="#FFFFFF">Direction</font></th>
  45. <th WIDTH="80%" BGCOLOR="#008800"><font color="#FFFFFF">Packet</font></th>
  46. </tr>
  47. <tr NOSAVE>
  48. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  49. <center>1&nbsp;</center>
  50. </td>
  51. <td ROWSPAN="10" NOSAVE>
  52. <center><img SRC="graphics/comp.gif" ALT="Computer" BORDER=0 height=33 width=30 align=BOTTOM></center>
  53. </td>
  54. <td BGCOLOR="#FFFFFF">
  55. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  56. </td>
  57. <td ROWSPAN="10" NOSAVE>
  58. <center><img SRC="graphics/calc.gif" ALT="Calculator" BORDER=0 height=35 width=60 align=BOTTOM></center>
  59. </td>
  60. <td WIDTH="80%" BGCOLOR="#FFFFFF">REQ with data type=1Ah (see <a href="packet.html#19h">note
  61. under Type ID's</a> for variable header format) and with a particular filter.</td>
  62. </tr>
  63. <tr>
  64. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  65. <center>2&nbsp;</center>
  66. </td>
  67. <td BGCOLOR="#FFFFFF">
  68. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  69. </td>
  70. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  71. </tr>
  72. <tr>
  73. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  74. <center>3&nbsp;</center>
  75. </td>
  76. <td BGCOLOR="#FFFFFF">
  77. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  78. </td>
  79. <td WIDTH="80%" BGCOLOR="#FFFFFF">VAR - a variable information packet (see
  80. format below)</td>
  81. </tr>
  82. <tr>
  83. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  84. <center>4&nbsp;</center>
  85. </td>
  86. <td BGCOLOR="#FFFFFF">
  87. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  88. </td>
  89. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  90. </tr>
  91. <tr>
  92. <td WIDTH="7%">
  93. <center>5&nbsp;</center>
  94. </td>
  95. <td>
  96. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  97. </td>
  98. <td WIDTH="80%">CTS</td>
  99. </tr>
  100. <tr>
  101. <td WIDTH="7%">
  102. <center>6&nbsp;</center>
  103. </td>
  104. <td>
  105. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  106. </td>
  107. <td WIDTH="80%">ACK</td>
  108. </tr>
  109. <tr>
  110. <td WIDTH="7%">
  111. <center>7&nbsp;</center>
  112. </td>
  113. <td>
  114. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  115. </td>
  116. <td WIDTH="80%">DATA - a variable entry (see format below).</td>
  117. </tr>
  118. <tr>
  119. <td WIDTH="7%">
  120. <center>8&nbsp;</center>
  121. </td>
  122. <td>
  123. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  124. </td>
  125. <td WIDTH="80%">ACK</td>
  126. </tr>
  127. <tr>
  128. <td WIDTH="7%">
  129. <center>9&nbsp;</center>
  130. </td>
  131. <td>
  132. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  133. </td>
  134. <td WIDTH="80%">CONT or EOT - if CONT, then go to step 4.</td>
  135. </tr>
  136. <tr>
  137. <td WIDTH="7%">
  138. <center>10&nbsp;</center>
  139. </td>
  140. <td>
  141. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  142. </td>
  143. <td WIDTH="80%">ACK</td>
  144. </tr>
  145. </table>
  146. <p>The request has the following format according to the operation (global
  147. directory list or local directory list):
  148. <table BORDER CELLSPACING=0 WIDTH="92%" >
  149. <tr>
  150. <th WIDTH="7%" BGCOLOR="#DDDDDD">Offset</th>
  151. <th WIDTH="8%" BGCOLOR="#DDDDDD">Length</th>
  152. <th WIDTH="85%" BGCOLOR="#DDDDDD">Description</th>
  153. </tr>
  154. <tr>
  155. <td WIDTH="7%">0</td>
  156. <td WIDTH="8%">4 bytes</td>
  157. <td WIDTH="85%">Always {00h, 00h, 00h, Fl} where Fl is a vartype filter.
  158. This allow to only list variable of a given type. It is always 1Fh (directory
  159. type) when a global dirlist is required or 1Bh when a local directory list
  160. is required in a particular folder.</td>
  161. </tr>
  162. <tr>
  163. <td WIDTH="7%">4</td>
  164. <td WIDTH="8%">1 bytes</td>
  165. <td WIDTH="85%">This byte always has a value of 1Ah (directory list request).</td>
  166. </tr>
  167. <tr>
  168. <td WIDTH="7%">5</td>
  169. <td WIDTH="8%">1 byte</td>
  170. <td WIDTH="85%">The length, in characters, of the name field. Here, it
  171. is always 0.&nbsp;</td>
  172. </tr>
  173. </table>
  174. <p>The data in the variable information packet has the following format:
  175. <table BORDER CELLSPACING=0 WIDTH="92%" >
  176. <tr>
  177. <th WIDTH="7%" BGCOLOR="#DDDDDD">Offset</th>
  178. <th WIDTH="8%" BGCOLOR="#DDDDDD">Length</th>
  179. <th WIDTH="85%" BGCOLOR="#DDDDDD">Description</th>
  180. </tr>
  181. <tr>
  182. <td WIDTH="7%">0</td>
  183. <td WIDTH="8%">4 bytes</td>
  184. <td WIDTH="85%">Unknown.</td>
  185. </tr>
  186. <tr>
  187. <td WIDTH="7%">4</td>
  188. <td WIDTH="8%">1 bytes</td>
  189. <td WIDTH="85%">This byte always has a value of 1Ah (directory list type).</td>
  190. </tr>
  191. <tr>
  192. <td WIDTH="7%">5</td>
  193. <td WIDTH="8%">1 byte</td>
  194. <td WIDTH="85%">The length, in characters, of the name field. Always 04h.</td>
  195. </tr>
  196. <tr>
  197. <td WIDTH="7%">6</td>
  198. <td WIDTH="8%">4 bytes</td>
  199. <td WIDTH="85%">The name of the current folder. Always "main".&nbsp;</td>
  200. </tr>
  201. <tr>
  202. <td WIDTH="7%">10</td>
  203. <td WIDTH="8%">1 byte</td>
  204. <td WIDTH="85%">Unknown, always 03h.</td>
  205. </tr>
  206. </table>
  207. <p>The var section (data packet) is made up of several entries.
  208. <table BORDER CELLSPACING=0 WIDTH="92%" >
  209. <tr>
  210. <th WIDTH="7%" BGCOLOR="#DDDDDD">Offset</th>
  211. <th WIDTH="8%" BGCOLOR="#DDDDDD">Length</th>
  212. <th WIDTH="85%" BGCOLOR="#DDDDDD">Description</th>
  213. </tr>
  214. <tr>
  215. <td WIDTH="7%">0</td>
  216. <td WIDTH="8%">4 bytes</td>
  217. <td WIDTH="85%">These four bytes always have a value of 0.</td>
  218. </tr>
  219. <tr>
  220. <td WIDTH="7%">4</td>
  221. <td WIDTH="8%">n bytes</td>
  222. <td WIDTH="85%">Data section: variables, FLASH applications and folder entries
  223. are listed here.</td>
  224. </tr>
  225. </table>
  226. <br>
  227. Data section is made up of several blocks which take the following format (always
  228. 18 bytes long):
  229. <table border cellspacing=0 width="92%" >
  230. <tr>
  231. <th width="7%" bgcolor="#DDDDDD">Offset</th>
  232. <th width="8%" bgcolor="#DDDDDD">Length</th>
  233. <th width="85%" bgcolor="#DDDDDD">Description</th>
  234. </tr>
  235. <tr>
  236. <td width="7%">0</td>
  237. <td width="8%">8 bytes</td>
  238. <td width="85%">Variable name padded with NULL chars if necessary.</td>
  239. </tr>
  240. <tr>
  241. <td width="7%">8</td>
  242. <td width="8%">1 byte</td>
  243. <td width="85%">Variable type ID.</td>
  244. </tr>
  245. <tr>
  246. <td width="7%">9</td>
  247. <td width="8%">1 byte</td>
  248. <td width="85%">Variable attribute: 00h = unlocked, 01h = locked, 03 = archived.</td>
  249. </tr>
  250. <tr>
  251. <td width="7%">10</td>
  252. <td width="8%">4 bytes</td>
  253. <td width="85%">If folders are listed (phase 1), this field contains the number
  254. of variables in this folder. <br>
  255. If variables are listed (phase 2), this field contains the length, in bytes,
  256. of the variable data for this variable without the extra four bytes at the
  257. beginning of the data packet.</td>
  258. </tr>
  259. <tr>
  260. <td width="7%">14</td>
  261. <td width="8%">8 bytes</td>
  262. <td width="85%">(V200 only) These eight bytes always have a value of 0.</td>
  263. </tr>
  264. </table>
  265. <p><i>Note:<br>
  266. </i>- with AMS &lt; 2.08 :<i> </i>FLASH applications entries are listed both
  267. in phase 1 and phase 2,<br>
  268. - with AMS &gt;=2.08: FLASH applications entries are listed only in phase 2.</p>
  269. <p><u>Example:</u> <br>
  270. &nbsp;
  271. <table BORDER=0 CELLSPACING=0 WIDTH="100%" BGCOLOR="#FFFFFF" NOSAVE >
  272. <tr>
  273. <td BGCOLOR="#CCFFCC">PC:</td>
  274. <td WIDTH="50%" BGCOLOR="#CCFFCC"><tt><b>08 A2 06 00 </b>00 00 00 1F 1A
  275. 00 <b>39 00</b></tt></td>
  276. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Global directory request (phase 1)</i></td>
  277. </tr>
  278. <tr>
  279. <td BGCOLOR="#FFCCCC">TI:</td>
  280. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 56 00 00</tt></b></td>
  281. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of request</i></td>
  282. </tr>
  283. <tr>
  284. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  285. <td WIDTH="50%" BGCOLOR="#FFCCCC"><tt><b>98 06 0B 00 </b>7E 00 00 0E 1A
  286. 04 6D 61 69 6E 03 <b>52 02</b></tt></td>
  287. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Variable header - complete directory
  288. starting with "main".</i></td>
  289. </tr>
  290. <tr>
  291. <td BGCOLOR="#CCFFCC">PC:</td>
  292. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  293. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of header</i></td>
  294. </tr>
  295. <tr BGCOLOR="#99FFCC" NOSAVE>
  296. <td BGCOLOR="#CCFFCC">&nbsp;</td>
  297. <td WIDTH="50%" BGCOLOR="#CCFFCC" NOSAVE><b><tt>08 09 FF FF</tt></b></td>
  298. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Clear to send</i></td>
  299. </tr>
  300. <tr>
  301. <td BGCOLOR="#FFCCCC">TI:</td>
  302. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 56 00 00</tt></b></td>
  303. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of clear to send</i></td>
  304. </tr>
  305. <tr BGCOLOR="#FFCCCC" NOSAVE>
  306. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  307. <td WIDTH="50%" BGCOLOR="#FFCCCC" NOSAVE><tt><b>98 15 12 00</b> 00 00 00 00
  308. 6D 61 69 6E 00 00 00 00 1F 00 00 00 00 03 <b>66 13</b></tt></td>
  309. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Variable entry - Unlocked folder "main"
  310. with threevariable</i></td>
  311. </tr>
  312. <tr>
  313. <td BGCOLOR="#CCFFCC">PC:</td>
  314. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  315. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of variable entry</i></td>
  316. </tr>
  317. <tr>
  318. <td BGCOLOR="#FFCCCC">TI:</td>
  319. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 92 00 00</tt></b></td>
  320. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Continue - more variables in directory</i></td>
  321. </tr>
  322. <tr>
  323. <td BGCOLOR="#CCFFCC">PC:</td>
  324. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  325. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of continue</i></td>
  326. </tr>
  327. <tr BGCOLOR="#99FFCC" NOSAVE>
  328. <td NOSAVE>PC:</td>
  329. <td><b><tt>08 68 00 00</tt></b></td>
  330. <td><i>Check if TI is ready</i></td>
  331. </tr>
  332. <tr BGCOLOR="#FFCCCC" NOSAVE>
  333. <td NOSAVE>TI:</td>
  334. <td><b><tt>98 92 00 00</tt></b></td>
  335. <td><i>The calc is ready</i></td>
  336. </tr>
  337. <tr>
  338. <td BGCOLOR="#CCFFCC">PC:&nbsp;</td>
  339. <td WIDTH="50%" BGCOLOR="#CCFFCC"><tt><b>08 A2 0A 00</b> 00 00 00 1B 1A 04 6D
  340. 61 69 6E <b>DE 01</b></tt></td>
  341. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Local dirlist request in folder 'main'
  342. (phase 2)</i></td>
  343. </tr>
  344. <tr BGCOLOR="#FFCCCC" NOSAVE>
  345. <td NOSAVE>TI:</td>
  346. <td><b><tt>98 56 00 00</tt></b></td>
  347. <td><i>Acknowledgement of request</i></td>
  348. </tr>
  349. <tr>
  350. <td BGCOLOR="#FFCCCC">TI:</td>
  351. <td WIDTH="50%" BGCOLOR="#FFCCCC"><tt><b>98 06 0B 00</b> 38 00 00 0E 1A 04 6D
  352. 61 69 6E <b>03 A6</b></tt></td>
  353. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Variable entry - "main" folder</i></td>
  354. </tr>
  355. <tr>
  356. <td BGCOLOR="#CCFFCC">PC:</td>
  357. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  358. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of continue</i></td>
  359. </tr>
  360. <tr>
  361. <td BGCOLOR="#CCFFCC">&nbsp;</td>
  362. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 09 FF FF</tt></b></td>
  363. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Clear to send</i></td>
  364. </tr>
  365. <tr>
  366. <td BGCOLOR="#FFCCCC">TI:</td>
  367. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 56 00 00</tt></b></td>
  368. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of clear to send</i></td>
  369. </tr>
  370. <tr>
  371. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  372. <td WIDTH="50%" BGCOLOR="#FFCCCC"><tt><b>98 15 3C 00</b> 00 00 00 00 <br>
  373. 6D 61 69 6E 00 00 00 00 1F 00 00 00 00 03 <br>
  374. 78 00 00 00 00 00 00 00 00 00 05 00 00 00 <br>
  375. 79 00 00 00 00 00 00 00 00 01 05 00 00 00 <br>
  376. 7A 00 00 00 00 00 00 00 00 03 05 00 00 00 <b>45 03</b> </tt></td>
  377. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Folder entry - Folder &quot;main&quot;<br>
  378. Variable entries - Normal variable &quot;x&quot;, Locked variable &quot;y&quot;
  379. and Archiveded variable "z"</i></td>
  380. </tr>
  381. <tr>
  382. <td BGCOLOR="#CCFFCC">PC:</td>
  383. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  384. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of variable entry</i></td>
  385. </tr>
  386. <tr>
  387. <td BGCOLOR="#FFCCCC">TI:</td>
  388. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 92 00 00</tt></b></td>
  389. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>End of transmission - no more variables</i></td>
  390. </tr>
  391. <tr>
  392. <td BGCOLOR="#CCFFCC">PC:</td>
  393. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  394. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of EOT</i></td>
  395. </tr>
  396. </table>
  397. <h4>
  398. <a NAME="request"></a>Requesting a Variable</h4>
  399. The protocol for requesting and receiving a variable from the calculator
  400. is shown below.
  401. <table BORDER CELLSPACING=0 WIDTH="92%" BGCOLOR="#FFFFFF" NOSAVE >
  402. <tr>
  403. <th WIDTH="7%" BGCOLOR="#008800"><font color="#FFFFFF">Step</font></th>
  404. <th COLSPAN="3" BGCOLOR="#008800"><font color="#FFFFFF">Direction</font></th>
  405. <th WIDTH="80%" BGCOLOR="#008800"><font color="#FFFFFF">Packet</font></th>
  406. </tr>
  407. <tr NOSAVE>
  408. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  409. <center>1&nbsp;</center>
  410. </td>
  411. <td ROWSPAN="10" NOSAVE>
  412. <center><img SRC="graphics/comp.gif" ALT="Computer" BORDER=0 height=33 width=30 align=BOTTOM></center>
  413. </td>
  414. <td BGCOLOR="#FFFFFF">
  415. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  416. </td>
  417. <td ROWSPAN="10" NOSAVE>
  418. <center><img SRC="graphics/calc.gif" ALT="Calculator" BORDER=0 height=35 width=60 align=BOTTOM></center>
  419. </td>
  420. <td WIDTH="80%" BGCOLOR="#FFFFFF">REQ with expected header including the
  421. folder name, if necessary</td>
  422. </tr>
  423. <tr>
  424. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  425. <center>2&nbsp;</center>
  426. </td>
  427. <td BGCOLOR="#FFFFFF">
  428. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  429. </td>
  430. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK (see note below)</td>
  431. </tr>
  432. <tr>
  433. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  434. <center>3&nbsp;</center>
  435. </td>
  436. <td BGCOLOR="#FFFFFF">
  437. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  438. </td>
  439. <td WIDTH="80%" BGCOLOR="#FFFFFF">VAR (specifing the size without the extra
  440. four bytes) with actual header and no folder name</td>
  441. </tr>
  442. <tr>
  443. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  444. <center>4&nbsp;</center>
  445. </td>
  446. <td BGCOLOR="#FFFFFF">
  447. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  448. </td>
  449. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  450. </tr>
  451. <tr>
  452. <td WIDTH="7%">
  453. <center>5&nbsp;</center>
  454. </td>
  455. <td>
  456. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  457. </td>
  458. <td WIDTH="80%">CTS</td>
  459. </tr>
  460. <tr>
  461. <td WIDTH="7%">
  462. <center>6&nbsp;</center>
  463. </td>
  464. <td>
  465. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  466. </td>
  467. <td WIDTH="80%">ACK</td>
  468. </tr>
  469. <tr>
  470. <td WIDTH="7%">
  471. <center>7&nbsp;</center>
  472. </td>
  473. <td>
  474. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  475. </td>
  476. <td WIDTH="80%">DATA with an extra four bytes at the beginning of the packet</td>
  477. </tr>
  478. <tr>
  479. <td WIDTH="7%">
  480. <center>8&nbsp;</center>
  481. </td>
  482. <td>
  483. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  484. </td>
  485. <td WIDTH="80%">ACK</td>
  486. </tr>
  487. <tr>
  488. <td WIDTH="7%">
  489. <center>9&nbsp;</center>
  490. </td>
  491. <td>
  492. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  493. </td>
  494. <td WIDTH="80%">EOT</td>
  495. </tr>
  496. <tr>
  497. <td WIDTH="7%">
  498. <center>10&nbsp;</center>
  499. </td>
  500. <td>
  501. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  502. </td>
  503. <td WIDTH="80%">ACK</td>
  504. </tr>
  505. </table>
  506. <i>Note: If the requested variable does not exist, step 2 will be the end
  507. of the transfer.</i>
  508. <p>As with manual transfers, the data section contains the variable data.
  509. For information on variable formats,
  510. <a href="vars.html">click here</a>.
  511. <p><u>Example:</u>
  512. <table BORDER=0 CELLSPACING=0 WIDTH="100%" BGCOLOR="#FFCCCC" NOSAVE >
  513. <tr>
  514. <td BGCOLOR="#CCFFCC">PC:</td>
  515. <td WIDTH="50%" BGCOLOR="#CCFFCC"><tt><b>08 A2 0C 00 </b>00 00 00 00 00 06
  516. 6D 61 69 6E 5C 79 <b>80 02</b></tt></td>
  517. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Request Known Variable&nbsp; "x" in the
  518. "main folder</i></td>
  519. </tr>
  520. <tr>
  521. <td BGCOLOR="#FFCCCC">TI:</td>
  522. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 56 00 00</tt></b></td>
  523. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of request</i></td>
  524. </tr>
  525. <tr>
  526. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  527. <td WIDTH="50%" BGCOLOR="#FFCCCC"><tt><b>98 06 08 00 </b>05 00 00 00 00 01
  528. 79 00 <b>7F 00</b></tt></td> <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Variable Header: Real "x" (locked)</i></td>
  529. </tr>
  530. <tr>
  531. <td BGCOLOR="#CCFFCC">PC:</td>
  532. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  533. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of variable header</i></td>
  534. </tr>
  535. <tr>
  536. <td BGCOLOR="#CCFFCC">&nbsp;</td>
  537. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 09 FF FF</tt></b></td>
  538. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Clear to send variable</i></td>
  539. </tr>
  540. <tr>
  541. <td BGCOLOR="#FFCCCC">TI:</td>
  542. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>98 56 00 00</tt></b></td>
  543. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of CTS</i></td>
  544. </tr>
  545. <tr>
  546. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  547. <td WIDTH="50%" BGCOLOR="#FFCCCC"><tt><b>98 15 09 00 </b>00 00 00 00 00 03
  548. 0D 01 1F <b>30 00</b></tt></td> <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Variable data: x=12</i></td>
  549. </tr>
  550. <tr>
  551. <td BGCOLOR="#CCFFCC">PC:</td>
  552. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>08 56 00 00</tt></b></td>
  553. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of variable data</i></td>
  554. </tr>
  555. <tr NOSAVE>
  556. <td BGCOLOR="#FFCCCC">TI:</td>
  557. <td WIDTH="50%" BGCOLOR="#FFCCCC" NOSAVE><b><tt>98 92 00 00</tt></b></td>
  558. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>End Of Transmission</i></td>
  559. </tr>
  560. <tr BGCOLOR="#99FFCC" NOSAVE>
  561. <td BGCOLOR="#CCFFCC">PC:</td>
  562. <td WIDTH="50%" BGCOLOR="#CCFFCC" NOSAVE><b><tt>08 56 00 00</tt></b></td>
  563. <td WIDTH="50%" BGCOLOR="#CCFFCC" NOSAVE><i>Acknowledgement of EOT</i></td>
  564. </tr>
  565. </table>
  566. <h4>
  567. <a NAME="rts"></a>Sending a Variable</h4>
  568. There are two ways to send a variable: with a folder name (such as 'main\str')
  569. or without a folder name (such as 'str'). If no folder is specified, the
  570. variable is sent to the current directory on the calculator.
  571. <p>The protocol for sending a variable to the calculator is shown below.
  572. <table BORDER CELLSPACING=0 WIDTH="92%" BGCOLOR="#FFFFFF" >
  573. <tr>
  574. <th WIDTH="7%" BGCOLOR="#008800"><font color="#FFFFFF">Step</font></th>
  575. <th COLSPAN="3" BGCOLOR="#008800"><font color="#FFFFFF">Direction</font></th>
  576. <th WIDTH="80%" BGCOLOR="#008800"><font color="#FFFFFF">Packet</font></th>
  577. </tr>
  578. <tr>
  579. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  580. <center>1&nbsp;</center>
  581. </td>
  582. <td ROWSPAN="8">
  583. <center><img SRC="graphics/comp.gif" ALT="Computer" BORDER=0 height=33 width=30 align=BOTTOM></center>
  584. </td>
  585. <td BGCOLOR="#FFFFFF">
  586. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  587. </td>
  588. <td ROWSPAN="8">
  589. <center><img SRC="graphics/calc.gif" ALT="Calculator" BORDER=0 height=35 width=60 align=BOTTOM></center>
  590. </td>
  591. <td WIDTH="80%" BGCOLOR="#FFFFFF">RTS (specifing the size with the extra
  592. four bytes)</td>
  593. </tr>
  594. <tr>
  595. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  596. <center>2&nbsp;</center>
  597. </td>
  598. <td BGCOLOR="#FFFFFF">
  599. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  600. </td>
  601. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  602. </tr>
  603. <tr>
  604. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  605. <center>3&nbsp;</center>
  606. </td>
  607. <td BGCOLOR="#FFFFFF">
  608. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  609. </td>
  610. <td WIDTH="80%" BGCOLOR="#FFFFFF">CTS or SKIP/EXIT (see note below)</td>
  611. </tr>
  612. <tr>
  613. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  614. <center>4&nbsp;</center>
  615. </td>
  616. <td BGCOLOR="#FFFFFF">
  617. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  618. </td>
  619. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  620. </tr>
  621. <tr>
  622. <td WIDTH="7%">
  623. <center>5&nbsp;</center>
  624. </td>
  625. <td>
  626. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  627. </td>
  628. <td WIDTH="80%">DATA</td>
  629. </tr>
  630. <tr>
  631. <td WIDTH="7%">
  632. <center>6&nbsp;</center>
  633. </td>
  634. <td>
  635. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  636. </td>
  637. <td WIDTH="80%">ACK</td>
  638. </tr>
  639. <tr>
  640. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  641. <center>7&nbsp;</center>
  642. </td>
  643. <td BGCOLOR="#FFFFFF">
  644. <center><img SRC="graphics/right.gif" ALT="===>" BORDER=0 height=13 width=22 align=BOTTOM></center>
  645. </td>
  646. <td WIDTH="80%" BGCOLOR="#FFFFFF">EOT<i> -</i> if there are several variables
  647. to transmit, steps 7 and 8 can be skipped until the last variable.</td>
  648. </tr>
  649. <tr>
  650. <td WIDTH="7%" BGCOLOR="#FFFFFF">
  651. <center>8&nbsp;</center>
  652. </td>
  653. <td BGCOLOR="#FFFFFF">
  654. <center><img SRC="graphics/left.gif" ALT="<===" BORDER=0 height=13 width=22 align=BOTTOM></center>
  655. </td>
  656. <td WIDTH="80%" BGCOLOR="#FFFFFF">ACK</td>
  657. </tr>
  658. </table>
  659. <i>Note: If the calculator sends a MEM packet in step 3, it does not have
  660. enough free memory to accomodate the variable. In this case, step 3 will
  661. be the end of the transfer.</i>
  662. <p>Again, the data section contains the variable data.
  663. <p><u>Example:</u> (to do, my sample file is corrupted (strange, grrr!))
  664. <table BORDER=0 CELLSPACING=0 WIDTH="100%" >
  665. <tr>
  666. <td BGCOLOR="#CCFFCC">PC:</td>
  667. <td WIDTH="50%" BGCOLOR="#CCFFCC"><tt><b>09 C9 0D 00 </b>05 00 00 00 00 06
  668. 6D 61 69 6E 5C 78 03 <b>87 02</b></tt></td>
  669. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Request to send Real "x" in the "main"
  670. folder</i></td>
  671. </tr>
  672. <tr>
  673. <td BGCOLOR="#FFCCCC">TI:</td>
  674. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>89 56 00 00</tt></b></td>
  675. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of request</i></td>
  676. </tr>
  677. <tr>
  678. <td BGCOLOR="#FFCCCC">&nbsp;</td>
  679. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>89 09 00 00</tt></b></td>
  680. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Clear to send variable</i></td>
  681. </tr>
  682. <tr>
  683. <td BGCOLOR="#CCFFCC">PC:</td>
  684. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>09 56 00 00</tt></b></td>
  685. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Acknowledgement of CTS</i></td>
  686. </tr>
  687. <tr>
  688. <td BGCOLOR="#CCFFCC">&nbsp;</td>
  689. <td WIDTH="50%" BGCOLOR="#CCFFCC"><tt><b>09 15 0C 00 </b>00 00 00 00 00 03
  690. 0C 01 1F <b>2F 00</b></tt></td>
  691. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>Variable data: 12</i></td>
  692. </tr>
  693. <tr>
  694. <td BGCOLOR="#FFCCCC">TI:</td>
  695. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>89 56 00 00</tt></b></td>
  696. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of data</i></td>
  697. </tr>
  698. <tr>
  699. <td BGCOLOR="#CCFFCC">PC:</td>
  700. <td WIDTH="50%" BGCOLOR="#CCFFCC"><b><tt>09 92 00 00</tt></b></td>
  701. <td WIDTH="50%" BGCOLOR="#CCFFCC"><i>End Of Transmission</i></td>
  702. </tr>
  703. <tr>
  704. <td BGCOLOR="#FFCCCC">TI:</td>
  705. <td WIDTH="50%" BGCOLOR="#FFCCCC"><b><tt>89 56 00 00</tt></b></td>
  706. <td WIDTH="50%" BGCOLOR="#FFCCCC"><i>Acknowledgement of EOT</i></td>
  707. </tr>
  708. </table>
  709. <table BORDER=0 CELLSPACING=0 WIDTH="100%" >
  710. <tr>
  711. <td WIDTH="32%">
  712. <center><a href="manual.html"><img SRC="graphics/prevpage.gif" ALT="[previous page]" BORDER=2 height=32 width=32 align=BOTTOM></a>
  713. <br><a href="manual.html">Manual Transfers</a></center>
  714. </td>
  715. <td WIDTH="34%">
  716. <center><a href="index.html"><img SRC="graphics/home.gif" ALT="[home]" BORDER=2 height=32 width=32 align=BOTTOM></a>
  717. <br><a href="index.html">Table of Contents</a></center>
  718. </td>
  719. <td WIDTH="34%">
  720. <center><a href="backup.html"><img SRC="graphics/nextpage.gif" ALT="[next page]" BORDER=2 height=32 width=32 align=BOTTOM></a>
  721. <br><a href="backup.html">Backups</a></center>
  722. </td>
  723. </tr>
  724. </table>
  725. <hr ALIGN="CENTER"><i>Site maintained by Romain Li&eacute;vin (<a href="mailto:roms@lpg.ticalc.org">roms@lpg.ticalc.org</a>)
  726. and Tim Singer (<a href="mailto:tsinger@gladstone.uoregon.edu">tsinger@gladstone.uoregon.edu</a>)</i>
  727. </body>
  728. </html>