I remember trying to write a multi-user OS on a BBC Micro, back in the
early 80's. It was complicated by the machine being almost entirely
interrupt driven already, so there was a lot going on to take account
of. It was never finished; I did end up with a workable MUG though - using
multiple client computers across an econet network.
There was various bits of commercial software however that took advantage
of the timing interrupt (at 50Hz, to match the screen refresh frequency) to
do various cool things 'simultaneously' to the normal user. I don't know
if this counts.
At 22:53 08/02/2003 -0500, Jim Keohane wrote:
Yup, the 6502B I think it was. A nice system. - Jim
Jim Keohane, Multi-Platforms, Inc.
"It's not whether you win or lose. It's whether you win!"
----- Original Message -----
From: "Eric Smith" <eric(a)brouhaha.com>
To: <cctalk(a)classiccmp.org>
Sent: Saturday, February 08, 2003 19:45
Subject: Re: Designing around a 6502 (was Re: Assembly on a Apple IIc+)
Jim Keohane wrote:
> 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.
Pat Finnegan wrote:
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.