In most respects, programming Assembly Language for MirageOS is similar to
programming for the TI-83/83+ shell, ION. You still use the bcall() macro
when calling ROM routines, and the familiar ION libraries routines are still
available. In addition to these ION library routines, more built-in subroutines
have been made available to MirageOS developers.
There are a few things you must be aware of when programming for MirageOS:
Development Tools And Files:
- There are new development tools for MirageOS than what you use for
ION development. We have provided another Batch file, and a Linker called
DevPac8X, which generates TI-83 Plus files correctly now. The latest
development tools are located below.
- There are new Include files which make development easier, and more
accessible to TI-83 Plus romcalls than what ION provided. There is also
a new Header required for MirageOS programs, which ties in with the
new features of our shell.
- You may not alter any of the data in cmdShadow. This data is used by
MirageOS for its internal variables and pointers that must be kept in
tact between program executions. This area also contains the ION vector
table for libraries, and variable space for use by GUIs, which must keep
their data intact also.
- TextShadow is a copy of the Homescreen, and any changes you make to
TextShadow will be reflected on the Homescreen after the program runs. We
recommend that you do not use this area for saferam because we wish to
leave the previous contents of the Homescreen the same for the user, when
they are done running the shell and programs.
- By default, there will be an Interrupt routine running during your
program. This Interrupt contains the Tasker Interrupt code we have
implemented, and is located in the StatVars memory location. If you wish
to use StatVars for variable storage, you must disable Interrupts or set
IM 1 before doing so.
- You may use all of SavesScreen, appBackUpScreen, and TempSwapArea for
variable storage. These areas combined allowed you 1859 bytes of saferam,
but which will not be kept intact between program runs. Other programs
will make use of this area also, and is not intended for long-term data
To anyone who reads this, we are sorry for not having this section of our
webpage done by the initial release of the shell, but we felt it was more
important to get the shell and programs out before completing all the
online documentation, which would've and still is taking a while to get
together. For now, here are two text files in a zip that explain the
MirageOS header, and then another file containing most of our built-in
subroutines, and their Input/Output info:
The new Include file, Batch file, and Linker program were included in the
MirageOS.zip that you have downloaded to use the shell.
MirageOS Program Header Info:
Info Coming Soon
Customizable Interrupt Routine:
One of the new features of MirageOS is the User Interrupt routines we have built
into the shell for developers to use. By using the "setupint" subroutine with
certain parameters, you can customize what interrupts you want running during your
program. By default, only the Tasker Interrupt will be running when the program
starts, and others can be set up to executre. Here is a description of what each
Info Coming Soon