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

From WikiTI
Jump to: navigation, search
 
m (Fixed the memory layout to show that $FFFF is a scrap byte.)
 
(2 intermediate revisions by 2 users not shown)
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]]-[[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]]-([[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]])-([[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]])-([[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>
  
<tr><td>([[83Plus:RAM:9824|FPS]])-([[83Plus:RAM:9828|OPS]])</td>
+
<tr><td>([[83Plus:RAM:9824|FPS]]) to ([[83Plus:RAM:9828|OPS]])</td>
 
<td>Free RAM.</td></tr>
 
<td>Free RAM.</td></tr>
  
<tr><td>([[83Plus:RAM:9828|OPS]])-([[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]])-([[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]])-([[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]])-[[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>
  
<tr><td>[[83Plus:RAM:FE66|symTable]]+1 - FFFF</td>
+
<tr><td>[[83Plus:RAM:FE66|symTable]]+1 to $FFFE</td>
 
<td>Hardware Stack</td></tr>
 
<td>Hardware Stack</td></tr>
 
</table>
 
</table>
 +
the_mad_joob found that $FFFF is unused by the system. It is an extra scrap byte.

Latest revision as of 10:36, 9 December 2020

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 $FFFE Hardware Stack

the_mad_joob found that $FFFF is unused by the system. It is an extra scrap byte.