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

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:Calculator_Variables</id>
		<title>83Plus:OS:Calculator Variables</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:Calculator_Variables"/>
				<updated>2010-09-16T22:58:17Z</updated>
		
		<summary type="html">&lt;p&gt;Turtlbrdr: Started a page devoted to describing TI variable formats on the calc, will finish when time allows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is devoted to describing the TI-83+ series' variables and their structure.&lt;br /&gt;
&lt;br /&gt;
==Real &amp;amp; Complex==&lt;br /&gt;
Real and Complex variables are argueably the most easy to understand variables on the calculator. With a simple structure and only a few major differences between the two. It is also good practice to master the format of the real and complex variables before moving onto the more complex matrix and list variables.&lt;br /&gt;
&lt;br /&gt;
The real variable is the easiest to understand. In Ram it is laid out as such:&lt;br /&gt;
 (LOW MEMORY) | Flag | Size (LSB) | Size (MSB) | VAT entry (9 bytes) | Floating Point number (9 bytes) | (HIGH MEMORY)&lt;br /&gt;
&lt;br /&gt;
The entry &amp;quot;Floating Point Number&amp;quot; here obviously denotes the number being stored into the real variable. This is also how it is stored. The calculator naturally uses floating point numbers for most, if not all, user interactions. &lt;br /&gt;
&lt;br /&gt;
TI uses a fourteen-digit (7 byte) number space in their floating point number(the mantissa), with 2 bytes placed before the actual number for modification. The second byte is the exponent byte, and it is signed, allowing you to place the mantissa to 10^(-127) or 10^(128). &lt;br /&gt;
&lt;br /&gt;
The first byte after the VAT entry is very import to us and it is used to differentiate between the normal real variable and a complex one.&lt;br /&gt;
This byte has several parts which are laid out as such:&lt;br /&gt;
 bit | Use&lt;br /&gt;
 0-4 | Complex indicator (0 for real number, C for part of a complex number)&lt;br /&gt;
 5-6 | No/Future use&lt;br /&gt;
  7  | Mantissa sign bit&lt;br /&gt;
&lt;br /&gt;
The Mantissa sign bit is used to give the floating point number of either the real or complex variable, if reset the value of the mantissa is positive, if set the value of the mantissa is negative.&lt;br /&gt;
&lt;br /&gt;
The Complex indicator (unoffical name) is allocated to the first four bits of any nine byte floating point number the Calculator uses, and it is how one tells the difference between a real variable, and a complex one. If the last four bits are reset ($0) then the following floating point number is a real number, and is on floating point unit long. However, if the value of the last four bits is $C (%1100) then the following floating point number is a complex number, and it requires two floating point units (numbers). The two numbers need for a complex number represent the real and imaginary parts for them. It may be important to note that both the complex real part, and the complex imaginary parts are marked with their complex indicator being $C.&lt;br /&gt;
&lt;br /&gt;
This represents a real number&lt;br /&gt;
 80 | 80 | 23 45 00 00 00 00 00 = -2.345&lt;br /&gt;
&lt;br /&gt;
This represents a complex number&lt;br /&gt;
 8C | 82 | 23 45 00 00 00 00 00&lt;br /&gt;
 0C | 7F | 25 00 00 00 00 00 00 = -234.5 + 0.25i&lt;br /&gt;
&lt;br /&gt;
==Real &amp;amp; Complex List==&lt;br /&gt;
The Real and Complex List format is very similar to the simple Real and Complex variable format. They are, in essence, a string of real and/or complex variables. &lt;br /&gt;
&lt;br /&gt;
They are formatted simply:&lt;br /&gt;
 (LOW MEMORY) | Flag | Size (LSB) | Size (MSB) | VAT entry (9 bytes) | list length (LSB) | list length (MSB) | Data | (HIGH MEMORY)&lt;br /&gt;
&lt;br /&gt;
After the VAT copy, there are two bytes that define the list's length. People familiar with programming with Lists will note, that while two bytes allows for 65536 elements in a list, and barring not having enough memory, it is not currently know why there is a list limit at 999 elements. It is important to note that in complex lists, the imaginary part of a number does '''not''' take up space in the list number (ie, Real part + Complex part = only one element.)&lt;br /&gt;
&lt;br /&gt;
This represents a real list with two elements:&lt;br /&gt;
 size  | element number 1            |  element number 2&lt;br /&gt;
 02 00   80 82 23 45 00 00 00 00 00    80 81 23 45 00 00 00 00 00 = {-234.5,-23.45}&lt;br /&gt;
&lt;br /&gt;
This represents a complex list with two elements:&lt;br /&gt;
 02 00   8C 82 23 45 00 00 00 00 00    0C 7F 25 00 00 00 00 00 00 &lt;br /&gt;
         8C 81 23 45 00 00 00 00 00    0C 7E 25 00 00 00 00 00 00 = {-234.5 + 0.25i, -23.45 + 0.025}&lt;br /&gt;
&lt;br /&gt;
==Matrix==&lt;br /&gt;
The matrix format is very similar to the list structure, and somewhat more simple due to the fact that there is no complex matrix format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:83Plus:OS_Information]]&lt;/div&gt;</summary>
		<author><name>Turtlbrdr</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:System_Table</id>
		<title>83Plus:OS:System Table</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:System_Table"/>
				<updated>2010-09-16T14:53:06Z</updated>
		
		<summary type="html">&lt;p&gt;Turtlbrdr: corrected category mistake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==System Table (VAT)==&lt;br /&gt;
The system table, or the VAT (Variable Allocation Table,) is the location where the entry for each variable is cataloged in memory. &lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
The structure of the system table is comparable to that of the stack. In fact, the system table exists in memory between the operator stack and the hardware stack. When a variable is added to the table the stack grows down, and the variables entry is added to one of two partitions inside of the system table's allocated space. &lt;br /&gt;
&lt;br /&gt;
There are three pointers in the system table, which maps out three partitions. Real, Cplx, Mat, Pict, GDB, and EQU variables (which I shall call, collectively, the &amp;quot;A&amp;quot; group for our purposes) are stored in a separate space from programs, lists, appvars, groups (which I shall call the &amp;quot;B&amp;quot; group.) &amp;quot;A&amp;quot; group variables are stored beginning at the pointer symTable, and ends at the address progPtr+1. &amp;quot;B&amp;quot; Group variables are stored beginning at the address progPtr, and end at the address pTemp+1. pTemp begins the third partition where only temporary variables are stored; this partition ends at OPBase+1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Entries===&lt;br /&gt;
Each entry, which may extend up to 14 bytes long, is loaded from high to low memory in one of several different ways depending on what variable is stored. Most of the information that follows has been more or less copied from TI's SDK:&lt;br /&gt;
&lt;br /&gt;
====Program, AppVar, Group:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | NL | Variable Name (8 Characters Max) | (LOW MEMORY)&lt;br /&gt;
&lt;br /&gt;
====Lists:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | NL | tVarLst ($5D) | Variable Name (5 Characters Max) | F | (LOW MEMORY) &lt;br /&gt;
&lt;br /&gt;
====Real, Cplx, Mat, EQU, GDB, Pict:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | First token of name | Second token of name | ($00) | (LOW MEMORY)&lt;br /&gt;
&lt;br /&gt;
====Entry Parts====&lt;br /&gt;
* T = Object type where:&lt;br /&gt;
 '''bit | flag'''&lt;br /&gt;
 -----------------------------&lt;br /&gt;
 0-4 | Object Type&lt;br /&gt;
  5  | Graph Equation selected&lt;br /&gt;
  6  | Variable used during graphing&lt;br /&gt;
  7  | Link Transfer flag&lt;br /&gt;
&lt;br /&gt;
Where Object Type:&lt;br /&gt;
  '''Object Type Value  |    Object Type     | Object Type Equate'''&lt;br /&gt;
 --------------------------------------------------------------&lt;br /&gt;
        $00          |       Real         |   RealObj &lt;br /&gt;
        $01          |       List         |   ListObj&lt;br /&gt;
        $02          |      Matrix        |   MatObj&lt;br /&gt;
        $03          |     Equation       |   EquObj&lt;br /&gt;
        $04          |      String        |   StrngObj&lt;br /&gt;
        $05          |     Program        |   ProgObj&lt;br /&gt;
        $06          | Protected Program  |   ProtProgObj&lt;br /&gt;
        $07          |     Picture        |   PictObj&lt;br /&gt;
        $08          |   Graph Database   |   GDBObj&lt;br /&gt;
        $0B          |    New EQU Obj     |   NewEquObj&lt;br /&gt;
        $0C          |    Complex Obj     |   CplxObj&lt;br /&gt;
        $0D          |  Complex List Obj  |   ClistObj&lt;br /&gt;
        $14          |  Application Obj   |   AppObj&lt;br /&gt;
        $15          |    AppVar Obj      |   AppVarObj&lt;br /&gt;
        $17          |     Group Obj      |   GroupObj&lt;br /&gt;
&lt;br /&gt;
* T2 = Reserved for future use&lt;br /&gt;
&lt;br /&gt;
* Ver = Version number&lt;br /&gt;
 - Determines the scope of a variables compatibility with future and past versions of the TI-OS or Hardware.&lt;br /&gt;
 - Made for when/if &amp;quot;A future TI-83 Plus release may create a new data type that the earlier releases do not know how to handle.&amp;quot;&lt;br /&gt;
 - A variable with a version number higher than the Calculator's will be rejected.&lt;br /&gt;
&lt;br /&gt;
* DAL = Data structure pointer's low (LSB) byte&lt;br /&gt;
&lt;br /&gt;
* DAH = Data structure pointer's high (MSB) byte&lt;br /&gt;
&lt;br /&gt;
* PAGE = Rom page the data structure resides on.&lt;br /&gt;
 Only if archived.&lt;br /&gt;
 If it resides in RAM, this byte is zero ($00).&lt;br /&gt;
&lt;br /&gt;
* NL = Name length of the variable&lt;br /&gt;
 Include the byte tVarLst ($5D) for a list&lt;br /&gt;
&lt;br /&gt;
* F = Formula number attached to a list&lt;br /&gt;
 - If this value is 0, the list is unattached to any formula&lt;br /&gt;
 - Allows lists to have a formula attached to them that is executed every time the list is accessed. The result of the execution is stored into the list's data structure.&lt;br /&gt;
 - Used to generate a unique name for the formula attached to the list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:83Plus:OS_Information]]&lt;/div&gt;</summary>
		<author><name>Turtlbrdr</name></author>	</entry>

	<entry>
		<id>https://wikiti.brandonw.net/index.php?title=83Plus:OS:System_Table</id>
		<title>83Plus:OS:System Table</title>
		<link rel="alternate" type="text/html" href="https://wikiti.brandonw.net/index.php?title=83Plus:OS:System_Table"/>
				<updated>2010-09-16T14:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;Turtlbrdr: Started a page devtoed to describing the system table (VAT), and it's entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==System Table (VAT)==&lt;br /&gt;
The system table, or the VAT (Variable Allocation Table,) is the location where the entry for each variable is cataloged in memory. &lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
The structure of the system table is comparable to that of the stack. In fact, the system table exists in memory between the operator stack and the hardware stack. When a variable is added to the table the stack grows down, and the variables entry is added to one of two partitions inside of the system table's allocated space. &lt;br /&gt;
&lt;br /&gt;
There are three pointers in the system table, which maps out three partitions. Real, Cplx, Mat, Pict, GDB, and EQU variables (which I shall call, collectively, the &amp;quot;A&amp;quot; group for our purposes) are stored in a separate space from programs, lists, appvars, groups (which I shall call the &amp;quot;B&amp;quot; group.) &amp;quot;A&amp;quot; group variables are stored beginning at the pointer symTable, and ends at the address progPtr+1. &amp;quot;B&amp;quot; Group variables are stored beginning at the address progPtr, and end at the address pTemp+1. pTemp begins the third partition where only temporary variables are stored; this partition ends at OPBase+1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Entries===&lt;br /&gt;
Each entry, which may extend up to 14 bytes long, is loaded from high to low memory in one of several different ways depending on what variable is stored. Most of the information that follows has been more or less copied from TI's SDK:&lt;br /&gt;
&lt;br /&gt;
====Program, AppVar, Group:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | NL | Variable Name (8 Characters Max) | (LOW MEMORY)&lt;br /&gt;
&lt;br /&gt;
====Lists:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | NL | tVarLst ($5D) | Variable Name (5 Characters Max) | F | (LOW MEMORY) &lt;br /&gt;
&lt;br /&gt;
====Real, Cplx, Mat, EQU, GDB, Pict:====&lt;br /&gt;
 (HIGH MEMORY) | T | T2 | Ver | DAL | DAH | Page | First token of name | Second token of name | ($00) | (LOW MEMORY)&lt;br /&gt;
&lt;br /&gt;
====Entry Parts====&lt;br /&gt;
* T = Object type where:&lt;br /&gt;
 '''bit | flag'''&lt;br /&gt;
 -----------------------------&lt;br /&gt;
 0-4 | Object Type&lt;br /&gt;
  5  | Graph Equation selected&lt;br /&gt;
  6  | Variable used during graphing&lt;br /&gt;
  7  | Link Transfer flag&lt;br /&gt;
&lt;br /&gt;
Where Object Type:&lt;br /&gt;
  '''Object Type Value  |    Object Type     | Object Type Equate'''&lt;br /&gt;
 --------------------------------------------------------------&lt;br /&gt;
        $00          |       Real         |   RealObj &lt;br /&gt;
        $01          |       List         |   ListObj&lt;br /&gt;
        $02          |      Matrix        |   MatObj&lt;br /&gt;
        $03          |     Equation       |   EquObj&lt;br /&gt;
        $04          |      String        |   StrngObj&lt;br /&gt;
        $05          |     Program        |   ProgObj&lt;br /&gt;
        $06          | Protected Program  |   ProtProgObj&lt;br /&gt;
        $07          |     Picture        |   PictObj&lt;br /&gt;
        $08          |   Graph Database   |   GDBObj&lt;br /&gt;
        $0B          |    New EQU Obj     |   NewEquObj&lt;br /&gt;
        $0C          |    Complex Obj     |   CplxObj&lt;br /&gt;
        $0D          |  Complex List Obj  |   ClistObj&lt;br /&gt;
        $14          |  Application Obj   |   AppObj&lt;br /&gt;
        $15          |    AppVar Obj      |   AppVarObj&lt;br /&gt;
        $17          |     Group Obj      |   GroupObj&lt;br /&gt;
&lt;br /&gt;
* T2 = Reserved for future use&lt;br /&gt;
&lt;br /&gt;
* Ver = Version number&lt;br /&gt;
 - Determines the scope of a variables compatibility with future and past versions of the TI-OS or Hardware.&lt;br /&gt;
 - Made for when/if &amp;quot;A future TI-83 Plus release may create a new data type that the earlier releases do not know how to handle.&amp;quot;&lt;br /&gt;
 - A variable with a version number higher than the Calculator's will be rejected.&lt;br /&gt;
&lt;br /&gt;
* DAL = Data structure pointer's low (LSB) byte&lt;br /&gt;
&lt;br /&gt;
* DAH = Data structure pointer's high (MSB) byte&lt;br /&gt;
&lt;br /&gt;
* PAGE = Rom page the data structure resides on.&lt;br /&gt;
 Only if archived.&lt;br /&gt;
 If it resides in RAM, this byte is zero ($00).&lt;br /&gt;
&lt;br /&gt;
* NL = Name length of the variable&lt;br /&gt;
 Include the byte tVarLst ($5D) for a list&lt;br /&gt;
&lt;br /&gt;
* F = Formula number attached to a list&lt;br /&gt;
 - If this value is 0, the list is unattached to any formula&lt;br /&gt;
 - Allows lists to have a formula attached to them that is executed every time the list is accessed. The result of the execution is stored into the list's data structure.&lt;br /&gt;
 - Used to generate a unique name for the formula attached to the list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:83Plus:0S_Information]]&lt;/div&gt;</summary>
		<author><name>Turtlbrdr</name></author>	</entry>

	</feed>