Difference between revisions of "83Plus:OS:Memory Layout"

From WikiTI
Jump to: navigation, search
m
m (resolve -1/+1 ambiguity)
Line 6: Line 6:
 
<tr><th>Address</th><th>Description</th></tr>
 
<tr><th>Address</th><th>Description</th></tr>
  
<tr><td>[[83Plus:RAM:8000|appData]] to [[83Plus:RAM:9D95|userMem]]</td>
+
<tr><td>[[83Plus:RAM:8000|appData]] to [[83Plus:RAM:9D95|userMem]]-1</td>
 
<td>System RAM: Used by the OS to store various pointers, settings, buffers, etc.</td></tr>
 
<td>System RAM: Used by the OS to store various pointers, settings, buffers, etc.</td></tr>
  
<tr><td>[[83Plus:RAM:9D95|userMem]] to ([[83Plus:RAM:9820|tempMem]])</td>
+
<tr><td>[[83Plus:RAM:9D95|userMem]] to ([[83Plus:RAM:9820|tempMem]])-1</td>
 
<td>User Memory: This is where all variables are stored.</td></tr>
 
<td>User Memory: This is where all variables are stored.</td></tr>
  
<tr><td>([[83Plus:RAM:9820|tempMem]]) to ([[83Plus:RAM:9822|FPBase]])</td>
+
<tr><td>([[83Plus:RAM:9820|tempMem]]) to ([[83Plus:RAM:9822|FPBase]])-1</td>
 
<td>Temp Memory: This is where the OS stores temporary variables.</td></tr>
 
<td>Temp Memory: This is where the OS stores temporary variables.</td></tr>
  
<tr><td>([[83Plus:RAM:9822|FPBase]]) to ([[83Plus:RAM:9824|FPS]])</td>
+
<tr><td>([[83Plus:RAM:9822|FPBase]]) to ([[83Plus:RAM:9824|FPS]])-1</td>
 
<td>Floating Point Stack: A LIFO stack for floating point number (or variable names).</td></tr>
 
<td>Floating Point Stack: A LIFO stack for floating point number (or variable names).</td></tr>
  
Line 21: Line 21:
 
<td>Free RAM.</td></tr>
 
<td>Free RAM.</td></tr>
  
<tr><td>([[83Plus:RAM:9828|OPS]]) to ([[83Plus:RAM:9826|OPBase]])</td>
+
<tr><td>([[83Plus:RAM:9828|OPS]])+1 to ([[83Plus:RAM:9826|OPBase]])</td>
 
<td>Operator Stack: A LIFO stack used to parse expressions and to store return information when a TI-Basic program is called from another TI-Basic program. TI won't tell anything about this.</td></tr>
 
<td>Operator Stack: A LIFO stack used to parse expressions and to store return information when a TI-Basic program is called from another TI-Basic program. TI won't tell anything about this.</td></tr>
  
<tr><td>([[83Plus:RAM:9826|OPBase]]) to ([[83Plus:RAM:982E|pTemp]])</td>
+
<tr><td>([[83Plus:RAM:9826|OPBase]])+1 to ([[83Plus:RAM:982E|pTemp]])</td>
 
<td>Variable Allocation Table (VAT) for temporary variables.</td></tr>
 
<td>Variable Allocation Table (VAT) for temporary variables.</td></tr>
  
<tr><td>([[83Plus:RAM:982E|pTemp]]) to ([[83Plus:RAM:9830|progPtr]])</td>
+
<tr><td>([[83Plus:RAM:982E|pTemp]])+1 to ([[83Plus:RAM:9830|progPtr]])</td>
 
<td>Variable Allocation Table (VAT) for programs,appvars,groups and lists with variable length names.</td></tr>
 
<td>Variable Allocation Table (VAT) for programs,appvars,groups and lists with variable length names.</td></tr>
  
<tr><td>([[83Plus:RAM:9830|progPtr]]) to [[83Plus:RAM:FE66|symTable]]</td>
+
<tr><td>([[83Plus:RAM:9830|progPtr]])+1 to [[83Plus:RAM:FE66|symTable]]</td>
 
<td>Variable Allocation Table (VAT) for all variables with a fixed name: reals, strings, ans, functions, matrices, etc.</td></tr>
 
<td>Variable Allocation Table (VAT) for all variables with a fixed name: reals, strings, ans, functions, matrices, etc.</td></tr>
  

Revision as of 12:58, 9 July 2007

Memory Layout

This table describes how the RAM is organized.

AddressDescription
appData to userMem-1 System RAM: Used by the OS to store various pointers, settings, buffers, etc.
userMem to (tempMem)-1 User Memory: This is where all variables are stored.
(tempMem) to (FPBase)-1 Temp Memory: This is where the OS stores temporary variables.
(FPBase) to (FPS)-1 Floating Point Stack: A LIFO stack for floating point number (or variable names).
(FPS) to (OPS) Free RAM.
(OPS)+1 to (OPBase) Operator Stack: A LIFO stack used to parse expressions and to store return information when a TI-Basic program is called from another TI-Basic program. TI won't tell anything about this.
(OPBase)+1 to (pTemp) Variable Allocation Table (VAT) for temporary variables.
(pTemp)+1 to (progPtr) Variable Allocation Table (VAT) for programs,appvars,groups and lists with variable length names.
(progPtr)+1 to symTable Variable Allocation Table (VAT) for all variables with a fixed name: reals, strings, ans, functions, matrices, etc.
symTable+1 to $FFFF Hardware Stack