Difference between revisions of "83Plus:OS:Memory Layout"
From WikiTI
m |
NonstickAtom (Talk | contribs) m (Fixed the memory layout to show that $FFFF is a scrap byte.) |
||
(One intermediate revision by one other user 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]] 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> | ||
− | <tr><td>[[83Plus:RAM:FE66|symTable]]+1 to $ | + | <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.
Address | Description |
---|---|
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.