Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!mit-eddie!ll-xn!ames!ucbcad!ucbvax!CORY.BERKELEY.EDU!dillon
From: dillon@CORY.BERKELEY.EDU (Matt Dillon)
Newsgroups: comp.sys.amiga
Subject: Big Enhancements for 1.3
Message-ID: <8712070010.AA21837@cory.Berkeley.EDU>
Date: Sun, 6-Dec-87 19:10:09 EST
Article-I.D.: cory.8712070010.AA21837
Posted: Sun Dec  6 19:10:09 1987
Date-Received: Fri, 11-Dec-87 20:45:56 EST
Sender: daemon@ucbvax.BERKELEY.EDU
Lines: 69


	How About (Big enhancements):

	-Allow windows to be partially off the screen.  Quite simple, really.
	 First limit a window's maximum size to be that of the blitter's
	 maximum handling capabilities (1024x1024?).  Then allow the window
	 to be moved off the screen top, bottom, left, and right.  This 
	 requires changes only to Layers and workbench + minor checking of
	 related code making sure nothing blows up with negative screen
	 coordinates.

	-Allow user gadgets in the top screen border.

	-Allow programs to access other program's custom screens if those
	 other programs allow it.  Access is by name.  Cause CloseScreen()
	 NOT to close a screen if windows still exist on it, and if so to
	 flag the screen as "CLOSE_AFTER_LAST_WINDOW" rather than block.

	-Blitter:  Allow one level of asyncronous control over graphics
	 calls.  It is too late to make a device out of it.

			Gasync(Rp,1);
			Move(Rp, a, b);
			Draw(Rp, c, d);
			Draw(Rp, c, d);
			Gasync(Rp, 0);

		I.e. if the first draw must do several blitter runs due to
		overlapping windows, it returns after starting the LAST run
		in the series.  This would work extremely well for area fills
		and other routines allowing fast 3D packages to use the 
		graphics library rather than write their own custom blitter 
		routines.

	-Gfx Calls: Better bounds checking.  Should never crash when rendering
 	 into clipped rastports no matter what coordinate arguments are given.
	 ALSO, if the structures required for Area routines are not present,
	 do not crash, simply return an error.

	-Protect critical library calls from software interrupts.  For 
	 instance, I want to be able to set the exception mask for intuition
	 messages and handle them (via GetMsg()) from the SOFTWARE interrupt
	 routine for that task... even to ReplyMsg() them... Also to be able
	 to call exit() from the routine (assuming Aztec and Lattice were
	 to suitably update their libraries).  Have a quick system call to
	 enable/disable critical in-task areas available to programmers.

	 (Note: This is NOT Forbid()/Permit())

	-Provide system calls to control software interrupt routines (abort
	 and beyond current support) and provide better documentation of the
	 calling sequence to software interrupts.

	-Provide a new DOS call which creates a process for a SegList giving
	 it a specified input stream and output stream, and a CLI, and 
	 creating (or using) a message port from which the return value can be
	 retrieved after execution completes.

	 Allow said DOS process to execute another DOS call which simulates an
	 exit (writing a return value to the message port) but allows the DOS
	 process to continue to run.  The final exit code would be lost.  Have
	 the restriction that once a process simulates an exit it may no longer
	 use it's original input and output stream.

	-Provide a new DOS call which DUPlicates a FileHandle!!!!.  Provide
	 a new message for DOS device drivers supporting this call.


						-Matt