MirageOS uses an AppVar which is a variable specially assigned for Flash
Application use, to keep track of all the user options and folder information.
The AppVar is named "MirageOS", which you can find near the bottom of your
Mem menu above the FlashApps, and it has an initial size of 42 bytes. It will
grow in size as you create more folders within the shell, and the name lengths
of those folders also varry the size of the AppVar. To the right you will find
a picture of the Mem menu of the TI-83 Plus where you can see our AppVar
located after the shell has been executed once.
All of the options found on the Options Screen are stored within the AppVar,
so the custom state of the last time you executed MirageOS will be restored
the next time it is started. The AppVar is stored in FlashROM so that it
does not have to reside in Ram, wasting FreeRam, and having the risk of being
accidentally deleted or lost upon a Ram Reset. If you have set a Password,
that data is also stored within the AppVar, and if it is deleted, the Password
is lost and then anyone will be able to get into MirageOS. To protect your
AppVar from malicious deletion, you can block access to the Mem menu of the
TI-OS by enabling one of the Key Hooks located in the Options Screen under
the category "Tasker And Key Hooks". If you do this and forget your Password,
you will have to reset the Ram in order to disable the Key Hook that is set
to block access to the Mem menu.
The shell unarchives and rearchives the AppVar whenever needed, however, we
are cautious about the number of writes the FlashROM can take, so we do this
as infrequently as possible. The contents of the AppVar are copied to Ram
when you enter the Options Screen, and if any options have a different state
upon leaving the Options Screen, that is when we rearchive the AppVar.
This includes switching the current interface as well.
MirageOS alters the contents of the AppVar forcing it to be rearchived,
whenever the user Creates, Renames, or Deletes a folder. The Sort states
of each of your folders are also kept within the appvar, so that sort
method will be carried out on your folders each time the shell is
started and a new program is introduced into memory. Whenever the user
changes the sort state of a folder, we have to rearchive the AppVar, but we
don't expect for such a process to occur often.
If you ever want to reset MirageOS options and folders completely back to
the default, you should choose the command "Reset System Defaults" from
the Main Options screen. This will return all options to their starting
states, and delete all folders that have been created, returning all programs
to the MAIN folder. If you want to reset defaults but can't get into MirageOS
for some reason (like you forgot your Password), you can delete the MirageOS
AppVar and all settings and folders will be reset to the default.
MirageOS is a FlashROM Application requiring one full Rompage (16 KB) of
your Archive memory. This is beneficial to TI-83 Plus users since the
amount of FreeRAM available is not as great as the size of the Archive.
Since MirageOS resides in FlashROM, more potential Ram space is allowed
for Assembly programs to execute in, therefor allowing the possibility
of larger programs (about 24 KB). The shell requires a small amount of
extra FreeRAM and ROM space for AppVar management, that is space in Ram
to copy the AppVar data to, and space in the Archive where the AppVar
is stored. The remaining space on your calculator, RAM and FlashROM,
can be used to store any other programs, variables, or applications that
you want. To remove MirageOS from your TI-83 Plus, you can just delete
it from memory through the Mem menu. The AppVar will not be deleted,
so you will have to delete that manually as well.
Most users of the TI-83 Plus will archive their programs into FlashROM,
and MirageOS can handle executing those programs by moving them to RAM
first, and then rearchiving the program once it is finished executing.
Some programs use a method of storing data back to themselves for safe
keeping of recent data such as high scores, and this programming technique
is called Program-Writeback. Our shell cannot disallow the ability for
programs to write back to themselves since it is a vital aspect of ASM
development in several cases, and these changes are meant to be saved,
so our shell rearchives programs that are initially located in FlashROM.
We have implemented a system to help protect the FlashROM memory though,
by allowing programs to not be rearchived upon the user's choice. First, programs are only rearchived if any changes have been made that requrie saving. Second, there
is an Option in the "Miscellaneous Options" section, which says to
"Allow Write-Back In Archived Progs". If this option is Unchecked, then
we do not unarchive the program and simply copy its data to RAM for
execution, then no rearchive is necessary. The one downside to this
feature is that Assembly programs will not be able to store their current
data such as high scores. Some users do not mind losing the latest score
from a program, and would rather have this better management of the
Archive memory. Turning off this option will decrease loading and
unloading time, and prevent wear of your Flash memory.