Hi,
Related to "multi tasking", there is an Applesoft extension I designed which offers a concurrent coroutine behavior with a round robin strategy to switch from routine to routine.
It is not a "true" multi tasking monitor as:
a) it is not based on some hardware interrupt signals and thus can run on every Apple 2 model with Applesoft in ROM;
b) it does not have to save the *whole stack* content upon every context switch; only a tiny part of it and a bunch of page zero locations (Applesoft context description like text pointers, line numbers, error handling settings, ...)
c) it plays with the interpreter eval loop within Applesoft: the switching occurs as the count of Applesoft instructions processed by current co routine since it was entered reaches a threshold value; however a "protection" mechanism exists which forbids such switch while a "critical" section of Applesoft code is run for instance;
d) As the co routines do not have to be designed to release the CPU at multiple points in time, the mechanism could be considered as "preemptive mutli tasking";
e) As Applesoft is a flavour of MS Basic, it can be easily ported to other MS BASIC versions whether written for 6502 archictectures or not. Briefly stated, the way it works is illustrated by the sample screen dumps below (as you can see it provides other enhancements like variable default typing according to name's 1st character, but I disgress
).
g) The mechanism described here is going to be developed further in the months to come (given my contingencies) in order to implement further abilities within the engine (like resource allocation such as the keyboard or the disk drive or part of the screen or any peripheral card).
h.1) The URL to download from is this one:
http://bgilon.free.fr/apple2h.2) The files are: "D34Peersoftv15.do" for the executable and "D34Merlin - Peersoftv15.do" for the assembly source files (Merlin format) and "ShrinkIt_1.5.2.2mg" for the hard disk image to be used with CiderPress and finally a CFFA board (compact flash interface) in a real Apple2 hardware.
HTHATS (HopeThisHelpsAsTheySay)
Benoît