Path: utzoo!attcan!uunet!decwrl!sdd.hp.com!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!pt.cs.cmu.edu!o.gp.cs.cmu.edu!andrew.cmu.edu!jh4o+ From: jh4o+@andrew.cmu.edu (Jeffrey T. Hutzelman) Newsgroups: comp.sys.apple2 Subject: Re: GS multitasking Message-ID: Date: 9 Oct 90 16:20:02 GMT References: <9010080345.aa20655@generic.UUCP> <1990Oct9.010137.22766@ux1.cso.uiuc.edu>, <1990Oct9.093924.918@nntp-server.caltech.edu> Organization: Carnegie Mellon, Pittsburgh, PA Lines: 25 In-Reply-To: <1990Oct9.093924.918@nntp-server.caltech.edu> Todd (and anyone else interested in multitasking for the IIgs). Andy McFadden has already developed context-switching code for the IIgs that works, and I have modified it to properly avoid switching in the middle of Toolbox or O/S calls. It requires GS/OS 4.0 or later, but that's not too bad. Unfortunately, it is currently implemented only as a library that allows an application to set up context-switching within itself. I would love to see this expanded to allow true pre-emptive multitasking, but there are problems, such as OS settings and ToolBox conflicts (read: programs will try to draw into someone else's GrafPort). I think there will need to be a lot of little workarounds to get it to work, but it might be worth it. I am still working on interprocess communication and a couple of other things, but I will try to release a preliminary version soon. I would really like to see someone turn this into a true multitasking system for the IIgs. Incidentally, you can't use Run Queue or HeartBeat for context switching, because you don't have access to the context of the program being interrupted. LWP does it by patching directly into the VBL interrupt vector, because of the unusual nature of what it does. ----------------- Jeffrey Hutzelman America Online: JeffreyH11 Internet/BITNET:jh4o+@andrew.cmu.edu, jhutz@drycas.club.cc.cmu.edu, jh4o@cmuccvma >> Apple // Forever!!! <<