Pat,
I wrote some 6502 assembler to handle Hayes Micromodem (300 baud speed
demon) on an interrupt, not polling, basis. Also wrote a minimalist
"messaging" functionality to send one-liner messages between Apple ]['s on
a
Corvus network. Both the Hayes micromodem and the Corvus card could be
jumpered or soddered to generate interrupts. Then you set the appropriate
vector to point to your interrupt handler 6502 routine and enable
interrupts.
That means you could have multi-tasking on 6502's both cooperative and
preemptive.
Hmmmm. So you boot OS9 and run a ported Hercules IBM mainframe emulator (in
C) and really destroy some folks' hold on reality. {giggle} - Jim
Jim Keohane, Multi-Platforms, Inc.
"It's not whether you win or lose. It's whether you win!"
----- Original Message -----
From: "Patrick Finnegan" <pat(a)purdueriots.com>
To: <cctalk(a)classiccmp.org>
Sent: Saturday, February 08, 2003 16:41
Subject: Designing around a 6502 (was Re: Assembly on a Apple IIc+)
On Sat, 8 Feb 2003, Jim Keohane wrote:
=====excerpt=2======================
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. You
could even implement kernel and user mode into the MMU, making it swap
pages automatically on an interrupt or 'memory write' to signal a syscall
(and a swapping of pages, interrupt to the CPU and transition to 'kernel
mode').
I think I'm going to need to start playing with designing a 6502-based
machine now... Or maybe I should just get back to working on putting
machines into racks so I have some floorspace around here to work in.
Pat
--
Purdue Universtiy ITAP/RCS
Information Technology at Purdue
Research Computing and Storage
http://www-rcd.cc.purdue.edu