> >> A 6502 task context
> >> would therefore require moving about 1KB, which would take about 4,500
> >> instructions (at one instruction per cycle.) On a circa-1980's
> >> machine, with a 1MHz clock, that would take about 4.5 msec.
> > This gives me awfully devious ideas...
First, were there any
> > 'multitasking machines' designed around the 6502? If you wanted to do
> > multitasking, it seems like you could design a fairly simple MMU that
> > would swap out the zero-page and stack (or all of the memory pages) for
> > different ones, depending on the running task. Leaving only a few
> > registers that need to be saved, it would leave a very small overhead
> > for task swapping.
> The Apple /// hardware supports this. It allows
you to select an
> alternate
> pair of pages to replace page zero and page one. AFAIK, it was never used
> for user-level multitasking, but was used to provide separate user and
> OS contexts.
Yup, the 6502B I think it was. A nice system. - Jim
Not to forget the 65802/816, where Stack and Zero Page could
be located anywhere in the first 64k.
Gruss
H.
--
VCF Europa 4.0 am 03./04. Mai 2003 in Muenchen
http://www.vcfe.org/