Detached Solutions Title

The MirageOS User's Manual

Tasker Interrupt :  General Information

The Tasker Interrupt is a great, innovative feature we have incorporated into MirageOS, which allows for the user to do specific Tasks during the execution of ION and MirageOS programs. We use the technology that the Z80 Assembly processor allows us, and enable an Interrupt routine that constantly executes behind the regular execution of the current program. In this Interrupt routine, we check for the ON key to be pressed and when it is, our routine Pauses program and scans the keypad for other keys to be pressed. Specific tasks that are assigned to those keys are then carried out, which can be very beneficial to the User of the calculator.

The different processes we have programmed into the Tasker Interrupt are: 1.) Immediatly quit to the shell, 2.) Immediatly quit to the Homescreen, 3.) Power Down the calculator at any point in a program, 4.) Change the contrast level of the display, 5.) Take a screenshot of the contents of the LCD screen, and store it to a picture variable, and 6.) Alter the execution speed of the program, with two settings of speeding it up, and two settings of slowing down the program. Look below in the next section of this page to find out the details on each of these processes, and to see which keys activate them during the executing of a program.

This Tasker Interrupt is similar to the one used in the TI-86 shell, YAS, however we have chosen to make our Interrupt routine be non-graphical, since the TI-83 Plus has limitations that the TI-86 doesn't. The TI-83 Plus has an LCD Driver, rather than a memory-mapped display like the TI-86, and this prevents us from writing anything to the screen, which would certainly mess up the display of the currently running program. There is not an easy way of saving the contents of the current screen and being able to restore it later, so we have chosen not to allow a type of visable menu, but instead make the Tasker Interrupt a system of Hotkeys. You must memorize which keys do what processes, however, the keys we have assigned are fairly obvious for what they do, so you shouldn't have too much difficulty there.

We do not garuntee that the Tasker Interrupt will work flawlessly in all programs or even activate at all. This is due to the fact that some ION programs purposely disable the Interrupt, because they think it gains speed in their programs, or they may use an Interrupt of their own which could temporarily overwrite ours. All programs that are made for MirageOS should be able to use the Tasker Interrupt, since we have set standards for MirageOS developers on how to manage the Interrupt routine so that it will work properly. We have purposely disallowed this feature from working in TI-82 or BASIC programs, because it is far too complicated for us to make this work. TI-82 programs use many different memory locations from the TI-83 Plus, so it isnt possible for us to setup an Interrupt routine in a fixed location while the shell is emulating TI-82 programs. BASIC programs are greatly involved with the TI-OS, which does a great amount of work to run these type of programs. We are unable to control all the things that the TI-OS may do in a BASIC program, which could disrupt the function of the Tasker Interrupt in working properly. Despite some of the limitations mentioned here, we believe for our Tasker Interrupt to work in most cases, and be a great asset to the users of MirageOS.

Tasker Interrupt :  Tasker Key Processes

Here is a list of all the processes that we have allowed the Tasker Interrupt to carry out from ION and MirageOS programs. In this table you will find the category of the specific process, the keypress on how to acheive that, and then detailed information pertaining to each of the Tasks.

Exit Back To MirageOS ON + CLEAR
This task will immediatly break execution of the current running program and return the user back to the shell. This is helpful for exiting a program quickly, so you dont have to follow its own path of exiting, and lets you return to the shell to run another program. Using on+^ instead of on+clear will exit immediately and disallow program writeback. See Note Below.
Exit To The Homescreen ON + MODE
This task will immediatly break execution of the current running program and send you to the Homescreen of the TI-OS. This type of task has been known as a "Teacher Key" or "Boss Key", so you can quickly exit a program and look as if you are doing mathmatical computations from the Homescreen. :) See Note Below.
Power Down Calculator ON + DEL
This task lets you Power Down the calculator at any point in a program, the same way the calc is shut down from the homescreen with 2nd+ON. This is beneficial for halting the program and turning off your calculator for the time being so you can come back to it later. The ON key will turn the calculator back on again, to resume the program.
Change Contrast Level ON + PLUS/MINUS
This task lets you alter the Contrast Level of the display from any point in a program, by using the Plus and Minus keys, the way contrast is altered from the shell. This is helpful in some fast action games where a lot of the activity is blurry, and you would like to alter your contrast level to improve the visability of the game.
Take Screenshot To PicX ON + NUMBER
This task lets you capture the current contents of the LCD screen, and send that picture to one of the PicX variables on the calculator, where X is the value 0-9. For example, you would press ON+1 to send the screen to Pic1, and be able to view that from the TI-OS later. Note: You must have the particular PicX variable already created in order to store the screen to that variable. If it has not been created, the Tasker Interrupt will not carry out this process.
Alter Execution Speed ON + TOP KEY
This task allows you to Speed Up or Slow Down the execution of the current running program. By pressing ON+YEquals or ON+Window, the program will run faster in some cases. Pressing ON+Trace or ON+Graph, the program will run slower, and pressing ON+Zoom will return the program to its regular execution speed.

 Fastest     Fast     Normal     Slow     Slowest

To make a program faster, we change the value of the Interrupt port, so that Interrupts are called less often, and the program runs its code more often, and we don't garuntee for this to work in all programs. To make a program slower, we add in more delays in the Interrupt routine, so there are slight pauses constantly, which makes the program run slower as a whole.

NOTE: When using the "Exit Back To MirageOS" and "Exit To The Homescreen" tasks, most programs will be aborted without having a chance to clean up anything they altered in the TI-OS, so some oddities may be present after using these processes. In MirageOS programs, however, we give developers the ability to finish up what they need to in their programs, before MirageOS aborts it. The results will be better for these two Exiting Tasks in those cases.

Key Hooks :  TI-OS Special Hotkeys

In MirageOS, we have implmented the ability for special Hotkeys to be used during the TI-OS, which have specific purposes relating to our shell. Since MirageOS is a Flash Application at a fixed location in ROM, it has the ability to add Key Hooks to the key routine of the TI-OS (that uses 2nd and Alpha as shift keys), and normal Assembly programs do not have this ability.

The first thing we have programmed that uses Key Hooks in the TI-OS and relates to Hotkeys is the Quick Key Repeat feature. This option can be enabled from the Options Screen, and its purpose is to remove the delay that occurs during the TI-OS when you hold down a key. An example of this working is when you are in the PRGM menu and press down, there becomes a slight delay and the keypress of Down does not repeat immediatly. Setting this flag will alleviate the delay and repeat the key quickly. This Key Hook is beneficial when doing some typing of commands or text and you want to shift from one character or token to the next, without having the pause in there that can sometimes be annoying. In some instances, this Quick Key Repeat is too fast, so you may not want to enable this Key Hook all the time. Note: This feature does not affect the keys during the shell or programs, but only during the TI-OS.

The next Hotkey we have implemented is the ability to Power Down the calculator from anywhere in the TI-OS by pressing ALPHA then ON, and being able to resume where you left off in the TI-OS. If you shut down the normal way by pressing 2ND then ON, turning the calculator will send you back to the Homescreen, and not let you resume where you last left off. This Hotkey is beneficial to use in some cases when you are working on the calculator, such as when typing code into the BASIC editor, and you want to come back to that place later without having to search through the BASIC program again. Other examples are when working in the Matrix, List, or Function editors, where you may want to temporarily Power Down, and resume there later.

Another Hotkey we have added allows the user to start up MirageOS from anywhere in the TI-OS by pressing the APPS key and then ON, or holding ON and then pressing APPS. This is faster than pressing APPS, waiting for the menu of applications to load, and then selecting MirageOS from the list. Note that if you are on the APPS menu, the previous Hotkey of powering down with ALPHA+ON will not work, since the APPS key Hotkey will be activated first and start up the shell when you press ON. This Hotkey and the previous ones can be turned on and off from the Options menu of our MirageOS under the category "Tasker And Key Hooks".

The last thing we have implemented that relates to Key Hooks in the TI-OS is the ability to block access from the Memory menu. We use Hotkeys in a way to detect if 2nd+PLUS had been pressed, which would take the user to the Mem menu, and we cancel out that key process. This is beneficial to the user of the calculator if they want to block out anyone from accessing their programs and variables, especially the AppVar named "MirageOS" that our shell uses, and contains the currently set Password. If another person were to have your calculator and be inside the TI-OS, they could not get into MirageOS without the Password you have set. However, if they get to the Mem menu to delete your appvar, the Password will be erased. To prevent this from happening, we have implemented this Hotkey, which you can activate from the Options menu in MirageOS.

Here is a summary of the Keys and their Functions we have allowed as Special Hotkeys in the TI-OS through the use of Key Hooks:
  • Quick Key Repeat : Removes the delay of a keypress in the TI-OS.
  • ALPHA+ON : Shut down the calculator from anywhere in the TI-OS.
  • APPS+ON or ON+APPS : Quickly start up our Flash Application shell.
  • 2ND+PLUS : Block any access to the Memory menu for protection.
Copyright © 2000-2019  Detached Solutions
Last Modified: 2004-05-10 19:02:16 GMT