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

From WikiTI
Jump to: navigation, search
m (resolve -1/+1 ambiguity)
m (Fixed the memory layout to show that $FFFF is a scrap byte.)
 
Line 33: Line 33:
 
<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 to $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 11: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.