fformat.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  2. <html>
  3. <head>
  4. <meta name="GENERATOR" content="Visual Page 1.0 for Windows">
  5. <meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1">
  6. <title>TI-83 Link Protocol Guide - File formats</title>
  7. </head>
  8. <body bgcolor="#ffffe8">
  9. <p><b>TI-83+ Link Protocol Guide v1.1</b> - File formats</p>
  10. <center>
  11. <h2>
  12. <hr align="center"> File Formats</h2>
  13. </center>
  14. <p>The TI-83+ Graph Link software stores variables in several types of
  15. files. Single variables are stored in files that have an extension that
  16. corresponds with their type. Groups of variables are stored in files
  17. with the extension ".8Xg". However, all of these file types have a
  18. common format.</p>
  19. <p>The different file types and contents that the TI-83+ Graph Link
  20. software
  21. can read and write are shown below.</p>
  22. <p>
  23. <table border="1" cellspacing="0" width="66%">
  24. <tbody>
  25. <tr>
  26. <th bgcolor="#dddddd" width="13%">Extension</th>
  27. <th bgcolor="#dddddd">Description</th>
  28. </tr>
  29. <tr>
  30. <td width="13%">
  31. <p align="center">.8Xc </p>
  32. </td>
  33. <td>TI-83+ complex number</td>
  34. </tr>
  35. <tr>
  36. <td width="13%">
  37. <p align="center">.8Xd </p>
  38. </td>
  39. <td>TI-83+ GDB (function, polar, parametric or sequence)</td>
  40. </tr>
  41. <tr>
  42. <td width="13%">
  43. <p align="center">.8Xg </p>
  44. </td>
  45. <td>Multiple TI-83+ variables of varying types (group)</td>
  46. </tr>
  47. <tr>
  48. <td width="13%">
  49. <div align="center">.8Xgrp</div>
  50. </td>
  51. <td>TiLP only: TI83+ 'group' variable</td>
  52. </tr>
  53. <tr>
  54. <td width="13%">
  55. <p align="center">.8Xi </p>
  56. </td>
  57. <td>TI-83+ picture (image)</td>
  58. </tr>
  59. <tr>
  60. <td width="13%">
  61. <p align="center">.8Xk </p>
  62. </td>
  63. <td>TI-83+ FLASH application</td>
  64. </tr>
  65. <tr>
  66. <td width="13%">
  67. <p align="center">.8Xl </p>
  68. </td>
  69. <td>TI-83+ list</td>
  70. </tr>
  71. <tr>
  72. <td width="13%">
  73. <p align="center">.8Xm </p>
  74. </td>
  75. <td>TI-83+ matrix</td>
  76. </tr>
  77. <tr>
  78. <td width="13%">
  79. <p align="center">.8Xn </p>
  80. </td>
  81. <td>TI-83+ real number</td>
  82. </tr>
  83. <tr>
  84. <td width="13%">
  85. <p align="center">.8Xp </p>
  86. </td>
  87. <td>TI-83+ program</td>
  88. </tr>
  89. <tr>
  90. <td width="13%">
  91. <p align="center">.8Xq </p>
  92. </td>
  93. <td>TI-83+ FLASH certificate</td>
  94. </tr>
  95. <tr>
  96. <td width="13%">
  97. <p align="center">.8Xs </p>
  98. </td>
  99. <td>TI-83+ string</td>
  100. </tr>
  101. <tr>
  102. <td width="13%">
  103. <p align="center">.8Xt </p>
  104. </td>
  105. <td>TI-83+ table setup</td>
  106. </tr>
  107. <tr>
  108. <td width="13%">
  109. <p align="center">.8Xu </p>
  110. </td>
  111. <td>TI-83+ FLASH Operating System</td>
  112. </tr>
  113. <tr>
  114. <td width="13%">
  115. <p align="center">.8Xv </p>
  116. </td>
  117. <td>TI-83+ Application Variable</td>
  118. </tr>
  119. <tr>
  120. <td width="13%">
  121. <p align="center">.8Xw </p>
  122. </td>
  123. <td>TI-83+ window settings (Window or RclWindow)</td>
  124. </tr>
  125. <tr>
  126. <td width="13%">
  127. <p align="center">.8Xy </p>
  128. </td>
  129. <td>TI-83+ Y-Variable (equation)</td>
  130. </tr>
  131. <tr>
  132. <td width="13%">
  133. <p align="center">.8Xz </p>
  134. </td>
  135. <td>TI-83+ zoom (saved window settings)</td>
  136. </tr>
  137. </tbody>
  138. </table>
  139. </p>
  140. <p></p>
  141. <p> </p>
  142. <hr align="center">
  143. <p></p>
  144. <h3>The TI-83+ variable file format</h3>
  145. <p>The TI-83+ variable file format has two parts: a header and several
  146. variable
  147. entries.</p>
  148. <p>The header appears at the beginning of the file and takes the
  149. following
  150. format:<br>
  151. <i>Note - All 2-byte integers are stored little-endian Intel-style
  152. (least
  153. significant byte first).</i></p>
  154. <p>
  155. <table border="1" cellspacing="0" width="92%">
  156. <tbody>
  157. <tr>
  158. <th bgcolor="#008800" width="8%"><font color="#ffffff">Offset</font></th>
  159. <th bgcolor="#008800" width="11%"><font color="#ffffff">Length</font></th>
  160. <th bgcolor="#008800" width="81%"><font color="#ffffff">Description</font></th>
  161. </tr>
  162. <tr>
  163. <td bgcolor="#ffffff" width="8%">0</td>
  164. <td bgcolor="#ffffff" width="11%">8 bytes</td>
  165. <td bgcolor="#ffffff" width="81%">8-character signature. The
  166. signature
  167. is always "<tt>**TI83F*</tt>".</td>
  168. </tr>
  169. <tr>
  170. <td bgcolor="#ffffff" width="8%">8</td>
  171. <td bgcolor="#ffffff" width="11%">3 bytes</td>
  172. <td bgcolor="#ffffff" width="81%">3-byte further signature. These
  173. three
  174. bytes always contain {1Ah, 0Ah, 00h} = {26, 10, 0}</td>
  175. </tr>
  176. <tr>
  177. <td bgcolor="#ffffff" width="8%">11 (Bh)</td>
  178. <td bgcolor="#ffffff" width="11%">42&nbsp;(2Ah)&nbsp;bytes</td>
  179. <td bgcolor="#ffffff" width="81%">Comment. The comment is either
  180. zero-terminated
  181. or padded on the right with space characters.</td>
  182. </tr>
  183. <tr>
  184. <td bgcolor="#ffffff" width="8%">53 (35h)</td>
  185. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  186. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the data
  187. section
  188. of the file. This number should be 57 (39h) bytes less than the file
  189. size.</td>
  190. </tr>
  191. <tr>
  192. <td bgcolor="#ffffff" width="8%">55 (37h)</td>
  193. <td bgcolor="#ffffff" width="11%"><i>n</i> bytes</td>
  194. <td bgcolor="#ffffff" width="81%">Data section - consists of a
  195. number
  196. of variable entries (described below).</td>
  197. </tr>
  198. <tr>
  199. <td bgcolor="#ffffff" width="8%">55&nbsp;(37h)+<i>n</i></td>
  200. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  201. <td bgcolor="#ffffff" width="81%">File checksum. This is the
  202. lower 16
  203. bits of the sum of all bytes in the data section.</td>
  204. </tr>
  205. </tbody>
  206. </table>
  207. </p>
  208. <p></p>
  209. <p>Each variable entry follows this format:</p>
  210. <p>
  211. <table border="1" cellspacing="0" width="92%">
  212. <tbody>
  213. <tr>
  214. <th bgcolor="#008800" width="8%"><font color="#ffffff">Offset</font></th>
  215. <th bgcolor="#008800" width="11%"><font color="#ffffff">Length</font></th>
  216. <th bgcolor="#008800" width="81%"><font color="#ffffff">Description</font></th>
  217. </tr>
  218. <tr>
  219. <td bgcolor="#ffffff" width="8%">0</td>
  220. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  221. <td bgcolor="#ffffff" width="81%">Always has a value of 11 or 13
  222. (Bh or Dh).</td>
  223. </tr>
  224. <tr>
  225. <td bgcolor="#ffffff" width="8%">2</td>
  226. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  227. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the
  228. variable
  229. data.</td>
  230. </tr>
  231. <tr>
  232. <td bgcolor="#ffffff" width="8%">4</td>
  233. <td bgcolor="#ffffff" width="11%">1 byte</td>
  234. <td bgcolor="#ffffff" width="81%">variable type ID byte (see <a
  235. href="vars.html#vartypes">variable type ID's</a>)</td>
  236. </tr>
  237. <tr>
  238. <td bgcolor="#ffffff" width="8%">5</td>
  239. <td bgcolor="#ffffff" width="11%">8 bytes</td>
  240. <td bgcolor="#ffffff" width="81%">Variable name, padded with NULL
  241. characters (0h) on the right.</td>
  242. </tr>
  243. <tr>
  244. <td bgcolor="#ffffff" width="8%">13 (Dh)</td>
  245. <td bgcolor="#ffffff" width="11%">1 byte</td>
  246. <td bgcolor="#ffffff" width="81%">Version. Usually set to 0
  247. (present if first bytes are Dh).<br>
  248. </td>
  249. </tr>
  250. <tr>
  251. <td bgcolor="#ffffff" width="8%">14 (Eh)</td>
  252. <td bgcolor="#ffffff" width="11%">1 byte</td>
  253. <td bgcolor="#ffffff" width="81%">Flag. Set to 80h if variable is
  254. archived, 00h else (present if first bytes are Dh).</td>
  255. </tr>
  256. <tr>
  257. <td bgcolor="#ffffff" width="8%">15 (Fh)</td>
  258. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  259. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the
  260. variable
  261. data. (This is a copy of the value in offset 2)</td>
  262. </tr>
  263. <tr>
  264. <td bgcolor="#ffffff" width="8%">17 (11h)</td>
  265. <td bgcolor="#ffffff" width="11%"><i>n</i> bytes</td>
  266. <td bgcolor="#ffffff" width="81%">Variable data. <a
  267. href="vars.html">Click here</a> for variable data formats.</td>
  268. </tr>
  269. </tbody>
  270. </table>
  271. </p>
  272. <p></p>
  273. <p> </p>
  274. <hr align="center">
  275. <p></p>
  276. <h3>The TI-83+ backup file format</h3>
  277. <p>The TI-Graph Link software for the TI-83 does not have backup
  278. capability. However, the calculator itself does. The following format
  279. is not readable
  280. by TI's software.</p>
  281. <p>Here is the format for backup files that FastLink &amp; TiLP uses
  282. (it's
  283. the same format than the TI82/83 one):</p>
  284. <p>
  285. <table border="1" cellspacing="0" width="92%">
  286. <tbody>
  287. <tr>
  288. <th bgcolor="#008800" width="15%"><font color="#ffffff">Offset</font></th>
  289. <th bgcolor="#008800" width="11%"><font color="#ffffff">Length</font></th>
  290. <th bgcolor="#008800" width="74%"><font color="#ffffff">Description</font></th>
  291. </tr>
  292. <tr>
  293. <td bgcolor="#ffffff" width="15%">0</td>
  294. <td bgcolor="#ffffff" width="11%">8 bytes</td>
  295. <td bgcolor="#ffffff" width="74%">8-character signature. The
  296. signature
  297. is always "<tt>**TI83F*</tt>".</td>
  298. </tr>
  299. <tr>
  300. <td bgcolor="#ffffff" width="15%">8</td>
  301. <td bgcolor="#ffffff" width="11%">3 bytes</td>
  302. <td bgcolor="#ffffff" width="74%">3-byte further signature. These
  303. three
  304. bytes always contain {1Ah, 0Ah, 00h} = {26, 10, 0}</td>
  305. </tr>
  306. <tr>
  307. <td bgcolor="#ffffff" width="15%">11 (Bh)</td>
  308. <td bgcolor="#ffffff" width="11%">42&nbsp;(2Ah)&nbsp;bytes</td>
  309. <td bgcolor="#ffffff" width="74%">Comment. The comment is either
  310. zero-terminated or padded on the right with space characters.</td>
  311. </tr>
  312. <tr>
  313. <td bgcolor="#ffffff" width="15%">53 (35h)</td>
  314. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  315. <td bgcolor="#ffffff" width="74%">Length, in bytes, of the backup
  316. header
  317. and the data sections. This number should be 17 (11h) bytes more than
  318. the sum of the lengths of the three data sections as reported in the
  319. backup header.</td>
  320. </tr>
  321. <tr>
  322. <td bgcolor="#ffffff" width="15%">55 (37h)</td>
  323. <td bgcolor="#ffffff" width="11%">11 bytes</td>
  324. <td bgcolor="#ffffff" width="74%">The backup header (format
  325. described
  326. below).</td>
  327. </tr>
  328. <tr>
  329. <td bgcolor="#ffffff" width="15%">66 (42h)</td>
  330. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  331. <td bgcolor="#ffffff" width="74%">Length, in bytes, of the first
  332. data
  333. section.</td>
  334. </tr>
  335. <tr>
  336. <td bgcolor="#ffffff" width="15%">68&nbsp;(44h)</td>
  337. <td bgcolor="#ffffff" width="11%"><i>x</i> bytes</td>
  338. <td bgcolor="#ffffff" width="74%">First data section.</td>
  339. </tr>
  340. <tr>
  341. <td bgcolor="#eeeeee" width="15%">68 (44h)+<i>x</i></td>
  342. <td bgcolor="#eeeeee" width="11%">2 bytes</td>
  343. <td bgcolor="#eeeeee" width="74%">Length, in bytes, of the second
  344. data
  345. section</td>
  346. </tr>
  347. <tr>
  348. <td bgcolor="#eeeeee" width="15%">70 (46h)+<i>x</i></td>
  349. <td bgcolor="#eeeeee" width="11%"><i>y</i> bytes</td>
  350. <td bgcolor="#eeeeee" width="74%">Second data section.</td>
  351. </tr>
  352. <tr>
  353. <td bgcolor="#ffffff" width="15%">70 (46h)+<i>x</i>+<i>y</i></td>
  354. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  355. <td bgcolor="#ffffff" width="74%">Length, in bytes, of the third
  356. data
  357. section</td>
  358. </tr>
  359. <tr>
  360. <td bgcolor="#ffffff" width="15%">72 (48h)+<i>x</i>+<i>y</i></td>
  361. <td bgcolor="#ffffff" width="11%"><i>z</i> bytes</td>
  362. <td bgcolor="#ffffff" width="74%">Third data section</td>
  363. </tr>
  364. <tr>
  365. <td bgcolor="#ffffff" width="15%">72 (48h)+<i>x</i>+<i>y</i>+<i>z</i></td>
  366. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  367. <td bgcolor="#ffffff" width="74%">Checksum. This is the lower 16
  368. bits
  369. of the sum of all bytes from offset 55 (37h).</td>
  370. </tr>
  371. </tbody>
  372. </table>
  373. </p>
  374. <p></p>
  375. <p>The backup header has this format:</p>
  376. <p>
  377. <table border="1" cellspacing="0" width="92%">
  378. <tbody>
  379. <tr>
  380. <th bgcolor="#008800" width="8%"><font color="#ffffff">Offset</font></th>
  381. <th bgcolor="#008800" width="11%"><font color="#ffffff">Length</font></th>
  382. <th bgcolor="#008800" width="81%"><font color="#ffffff">Description</font></th>
  383. </tr>
  384. <tr>
  385. <td bgcolor="#ffffff" width="8%">0</td>
  386. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  387. <td bgcolor="#ffffff" width="81%">Offset to data length: Always
  388. has
  389. a value of 9.</td>
  390. </tr>
  391. <tr>
  392. <td bgcolor="#ffffff" width="8%">2</td>
  393. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  394. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the first
  395. data
  396. section.</td>
  397. </tr>
  398. <tr>
  399. <td bgcolor="#ffffff" width="8%">4</td>
  400. <td bgcolor="#ffffff" width="11%">1&nbsp;byte</td>
  401. <td bgcolor="#ffffff" width="81%">Type ID: Always has a value of
  402. 19
  403. (13h).</td>
  404. </tr>
  405. <tr>
  406. <td bgcolor="#ffffff" width="8%">5</td>
  407. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  408. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the second
  409. data
  410. section.</td>
  411. </tr>
  412. <tr>
  413. <td bgcolor="#ffffff" width="8%">7</td>
  414. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  415. <td bgcolor="#ffffff" width="81%">Length, in bytes, of the third
  416. data
  417. section.</td>
  418. </tr>
  419. <tr>
  420. <td bgcolor="#ffffff" width="8%">9</td>
  421. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  422. <td bgcolor="#ffffff" width="81%">Memory address</td>
  423. </tr>
  424. </tbody>
  425. </table>
  426. </p>
  427. <h3>
  428. <hr align="center"> The TI-83+ FLASH file format</h3>
  429. <p>A FLASH file usually contains between 1 and 3 headers with data and
  430. the header has
  431. the same format than the TI89/92+ one.<br>
  432. Headers can contains : license or data (app/os/certificate).<br>
  433. </p>
  434. <p>The header takes the following format : <br>
  435. <i>Note - All 2-byte and 4-byte integers are stored little-endian
  436. Intel-style (least significant byte first).</i>
  437. <table border="1" cellspacing="0" width="92%">
  438. <tbody>
  439. <tr>
  440. <th bgcolor="#008800" width="8%"><font color="#ffffff">Offset</font></th>
  441. <th bgcolor="#008800" width="11%"><font color="#ffffff">Length</font></th>
  442. <th bgcolor="#008800" width="81%"><font color="#ffffff">Description</font></th>
  443. </tr>
  444. <tr>
  445. <td bgcolor="#ffffff" width="8%">0</td>
  446. <td bgcolor="#ffffff" width="11%">8 bytes</td>
  447. <td bgcolor="#ffffff" width="81%">8-character signature. The
  448. signature
  449. is always "<tt>**TIFL**</tt>".</td>
  450. </tr>
  451. <tr>
  452. <td bgcolor="#ffffff" width="8%">8</td>
  453. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  454. <td bgcolor="#ffffff" width="81%">Revision number (BCD coded):
  455. major.minor.</td>
  456. </tr>
  457. <tr>
  458. <td bgcolor="#ffffff" width="8%">9</td>
  459. <td bgcolor="#ffffff" width="11%">1 byte</td>
  460. <td bgcolor="#ffffff" width="81%">Flags (usually set to 00h).</td>
  461. </tr>
  462. <tr>
  463. <td bgcolor="#ffffff" width="8%">10 (Ah)</td>
  464. <td bgcolor="#ffffff" width="11%">1 byte</td>
  465. <td bgcolor="#ffffff" width="81%">Object type (00h).</td>
  466. </tr>
  467. <tr>
  468. <td bgcolor="#ffffff" width="8%">12 (Ch)</td>
  469. <td bgcolor="#ffffff" width="11%">4 bytes</td>
  470. <td bgcolor="#ffffff" width="81%">Binary-Coded-Decimal date such
  471. as
  472. {dd, mm, yy, yy} for 'dd/mm/yyyy'.</td>
  473. </tr>
  474. <tr>
  475. <td bgcolor="#ffffff" width="8%">16 (10h)</td>
  476. <td bgcolor="#ffffff" width="11%">1 bytes</td>
  477. <td bgcolor="#ffffff" width="81%">Name length</td>
  478. </tr>
  479. <tr>
  480. <td bgcolor="#ffffff" width="8%">17 (11h)</td>
  481. <td bgcolor="#ffffff" width="11%">8 bytes</td>
  482. <td bgcolor="#ffffff" width="81%">Application name or 'basecode'
  483. for
  484. OS (zero terminated unless 8 characters long).</td>
  485. </tr>
  486. <tr>
  487. <td bgcolor="#ffffff" width="8%">25 (19h)</td>
  488. <td bgcolor="#ffffff" width="11%">23 bytes</td>
  489. <td bgcolor="#ffffff" width="81%">Filler (unused, set to 00h).</td>
  490. </tr>
  491. <tr>
  492. <td bgcolor="#ffffff" width="8%">48 (30h)</td>
  493. <td bgcolor="#ffffff" width="11%">1 byte</td>
  494. <td bgcolor="#ffffff" width="81%">Device type (TI73: 74h, TI83+:
  495. 73h,
  496. TI89: 98h, TI92+: 88h)</td>
  497. </tr>
  498. <tr>
  499. <td bgcolor="#ffffff" width="8%">49 (31h)</td>
  500. <td bgcolor="#ffffff" width="11%">1 byte</td>
  501. <td bgcolor="#ffffff" width="81%">Data type (os: 23h,
  502. application: 24h,
  503. certificate: 25h, license: 3Eh)</td>
  504. </tr>
  505. <tr>
  506. <td bgcolor="#ffffff" width="8%">50 (32H)</td>
  507. <td bgcolor="#ffffff" width="11%">24 bytes</td>
  508. <td bgcolor="#ffffff" width="81%">Filler (unused, set to 00h).</td>
  509. </tr>
  510. <tr>
  511. <td bgcolor="#ffffff" width="8%">74 (4Ah)</td>
  512. <td bgcolor="#ffffff" width="11%">4 bytes</td>
  513. <td bgcolor="#ffffff" width="81%">Size of data in bytes. Beware:
  514. this is size of intelhexa data (in characters), not of pure data (in
  515. bytes).<br>
  516. </td>
  517. </tr>
  518. <tr>
  519. <td bgcolor="#ffffff" width="8%">78 (4Eh)</td>
  520. <td bgcolor="#ffffff" width="11%"><i>n</i> bytes</td>
  521. <td bgcolor="#ffffff" width="81%">Data.</td>
  522. </tr>
  523. <tr>
  524. <td bgcolor="#ffffff" width="8%">78 (4Eh)+<i>n</i></td>
  525. <td bgcolor="#ffffff" width="11%">2 bytes</td>
  526. <td bgcolor="#ffffff" width="81%">Checksum. This is the lower 16
  527. bits
  528. of the sum of all bytes in the variable data.</td>
  529. </tr>
  530. </tbody>
  531. </table>
  532. </p>
  533. <p><i>By roms: the part below is preliminary, I will have to finish
  534. it...<br>
  535. You are strongly encouraged to take a look at the TI's "TI83+ SDK
  536. guide" (sdk83pguide.pdf) and more particularly the "Hardware Layer"
  537. section.<br>
  538. </i> </p>
  539. <p>1) Data encoding: </p>
  540. <p>Data are formatted in a particular way. TI used the 'INTEL Intellec
  541. 8/MDS' format, a very popular format used for transferring data to
  542. EPROM programmers, CPU emulators, ... <br>
  543. Format: </p>
  544. <pre> <br><br> +--Number of bytes <br> | +--Address (called 'page address' or 'address field' in this doc) <br> | | +--Block type (00: data, 01: end) <br> | | | +--Data <br> | | | | +-- Checksum <br><br> | | | | |<br>: 10 0000 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 CR/LF <br>: 10 0010 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 CR/LF <br>: 10 0020 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF E0 CR/LF <br>: 00 0000 01 FF -&gt; end block</pre>
  545. <p>Meaning: </p>
  546. <p>- TI specific block, contains the FLASH page number (1D here): :02
  547. 0000
  548. 02 001D FC </p>
  549. <p>- data block (page address = 4000h): :20 4000 00 80 0F 00 00 6C 24
  550. 80
  551. 12 01 04 80 21 01 80 31 01 80 48 43 42 4C 45 78 70 6D 74 80 81 02 80 90
  552. 03 D9 <br>
  553. </p>
  554. <p>- end block: :00 0000 01 FF </p>
  555. <p>Each block has an address field. Depending on the operation (App or
  556. Os)
  557. and the part, the address of the data block can be used as is (absolute
  558. addressing without using offset) or not (relative addressing, relocated
  559. at @4000h if offset=4000h for instance). Page number is sent as encoded
  560. in the specific block. </p>
  561. <p> 2) Parts </p>
  562. <p>An app has one part. The part is made up of several blocks: specific
  563. blocks, data blocks and an end block. Data are sent with page adress
  564. 4000h aka
  565. @4000h (offset=0). The page number is specified in the specific block.
  566. The flag always equals 80h (FLASH). </p>
  567. <p>An OS has several parts:<br>
  568. - the first part is the OS header information. It is made up of a data
  569. and an end block. It is sent with page address 0000h aka @0000h
  570. (offset=0),
  571. page number 0000h. <br>
  572. - the second part is the data. It is made up of a specific, a data and
  573. an end block. It is sent with page address 0000h modulo 4000h (offset
  574. 4000h) aka @4000h. <br>
  575. - and the third part is the digital signature of the data block. It is
  576. made up of a data and an end block. It is sent with page address 0000h
  577. aka @0000h (offset=0), page number 0000h. About flag, the first and
  578. third
  579. block have Fl=80 (FLASH), the second one has always Fl=00 (RAM). </p>
  580. <p>Data are sent to calcs block per block. A incomplete block may need
  581. to
  582. be filled. <br>
  583. It will be filled with: <br>
  584. - 0x00 for App, <br>
  585. - 0xff for OS.<br>
  586. </p>
  587. <p>&nbsp; <br>
  588. <table border="0" cellspacing="0" width="100%">
  589. <tbody>
  590. <tr>
  591. <td width="32%">
  592. <p align="center"><a href="vars.html"><img
  593. src="graphics/prevpage.gif" alt="[previous page]" align="bottom"
  594. border="2" height="32" width="32"> <br>
  595. Variable Formats</a> </p>
  596. </td>
  597. <td width="34%">
  598. <p align="center"><a href="index.html"><img
  599. src="graphics/home.gif" alt="[home]" align="bottom" border="2"
  600. height="32" width="32"> <br>
  601. Table of Contents</a> </p>
  602. </td>
  603. <td width="34%">
  604. <p align="center"><a href="tokens.html"><img
  605. src="graphics/nextpage.gif" alt="[next page]" align="bottom" border="2"
  606. height="32" width="32"> <br>
  607. Tokens and Characters</a> </p>
  608. </td>
  609. </tr>
  610. </tbody>
  611. </table>
  612. </p>
  613. <hr align="center"> <i>Site maintained by Romain Li&eacute;vin (</i><a
  614. href="mailto:roms@lpg.ticalc.org"><i>roms@lpg.ticalc.org</i></a><i>)
  615. and
  616. Tim Singer (</i><a href="mailto:tsinger@gladstone.uoregon.edu"><i>tsinger@gladstone.uoregon.edu</i></a><i>)</i>
  617. <br>
  618. </body>
  619. </html>