Because of the way that FLEX was originally written, there is no effective way to put the emulator to "sleep" while it is running and guarantee that this is not severely debilitating a process.
Several issues prevent this; for instance, when the screen editor runs, it constantly checks the ACIA for input while redrawing the display. Putting the task to "sleep" until a character is input would stop the editor from functioning.
The Win95 version of the emulator does obey the Win95 "bible" for multitasking as a busy process; that means other software will share time properly with the emulator.
There is an option in the Execute menu called Suspend which tells the emulator to stop execution until the next time Win95 gives it a time slice, each time it checks to see if a character is ready, unless there actually is a character ready, in which case the emulator continues to process. This appears to be the best compromise between full-time execution and "sleep on wait for input" for the emulator. Using the Suspend option will not, in most cases, significantly affect the emulator. The default is on - the emulator will give up the thread when checking for a character and no character is input.
The way the Suspend mechanism is implemented ensures that each time Win95 gives the emulator a time slice when the Chunky option is on, enough 6809 code will run to re-check for a character, ensuring an immediate response to the user. If Chunky is off, response may be a little slow.
Finally, if the RUN item in the control panel is not checked (that is, if the emulator is not running, but is in single-step mode), then ReFLEX is completely multitasking friendly.
Please consider supporting my Reflex efforts via a small PayPal donation. |