Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!cbmvax!higgin From: higgin@cbmvax.cbm.UUCP (Paul Higginbottom GUEST) Newsgroups: comp.sys.amiga Subject: Re: MANX bugs with Tasking Message-ID: <1146@cbmvax.cbmvax.cbm.UUCP> Date: Thu, 18-Dec-86 19:09:50 EST Article-I.D.: cbmvax.1146 Posted: Thu Dec 18 19:09:50 1986 Date-Received: Fri, 19-Dec-86 07:08:14 EST References: <2226@bacall.UUCP> <865@ulowell.UUCP> Reply-To: higgin@cbmvax.UUCP (Paul Higginbottom GUEST) Organization: PDH, Inc. Lines: 45 In article <2226@bacall.UUCP> papa@bacall.UUCP (Marco Papa) writes: >Has anybody gotten tasking to work with MANX? All examples from C-A, that work >with Lattice, crash the Amiga with MANX... initask.c and tasking.c from the >Amiga Developer's Newsletter...task creation with MANX, please let me know. >Note that all tasking examples that I have crash with ALL versions of >MANX (3.20a through 3.30e). >-- Marco Papa > Felsina Software Ok - the problem is almost certainly due to a4 not being initialized correctly. I have only tried a little on tasks, and gave up in frustration, and tried Processes which are trivial (LoadSeg, CreateProc, send 'em a dummy workbench message to kick them into life... voila). We must work together to lick this problem! It's as if NO-ONE at Commodore-Amiga has ever written something that starts up a task! This of course is impossible (one would think!) because Exec WAS written by Amiga. However, note - the WorkBench doesn't multi-task! Why should I have to WAAAIIIIITT while it loads a directory? Surely a task should get fired up to do that while I can do say an Info on another icon, or format a disk or whatever, but noooo. [Stepping off bandstand]... for a task to exist it must have.... memory where the program exists memory where the data exists and the a4 reg (for Manx) must be pointing into the middle of it. True is can inheret the a4 of the parent, but this forces the parent to stick around while the child runs (pain). memory for a stack (presumably malloc'ed by the parent). I guess one of the problems is that the C compilers we use assume the programs are going to run as Processes with CLI structs and other crud associated with them. Therefore I suspect _main() and _exit()/exit() will need to be re-written. Comments? If this can be accomplished, it would seem to me that a program with this special _main etc could be LoadSeg'ed, given a stack, and AddTask'ed. Comments? I'd give a lot for two things ---- decent BCPL and tasking documentation and EXAMPLES OF WORKING PROGRAMS! However that might not be sufficient either due to the differences in Manx/GreenHills/Lattice. Sigh, Paul. Disclaimer: I work for myself and my opinions are my own.