From kodiak Tue Feb 23 17:13:26 1988
Return-Path: <kodiak>
Received: by tooter.amiga.uucp (1.1/SMI-3.0DEV3)
	id AA01715; Tue, 23 Feb 88 17:12:53 PST
Date: Tue, 23 Feb 88 17:12:53 PST
From: kodiak (Robert Burns)
Message-Id: <8802240112.AA01715@tooter.amiga.uucp>
To: bart, cbmvax!andy, cbmvax!carolyn, cbmvax!daveb, cbmvax!eric,
        cbmvax!steveb, dale, jimm
Subject: Narrator & trashed icons
Cc: kodiak
Status: R

Just want to review a bug that I've been working on, 'cause it deals in
the (mysterious, not understood) narrator device.

The symptom is that when you run SAY, and give it a slew of consonents
(e.g. 75 characters from the bottom row of the keyboard), then pick up
a workbench icon and drag it over the borders while the letters are
being said, the border is corrupted with shifted images and trails of
the icon.

The reason this happens is because of a "misfeature" in the old chips.
When blitter DMA is turned off, and a blit is started, the "blit in
progress" bit (BBUSY) is not set.  This causes the graphics WaitBlit
routines to think that the blit is done, when it in fact really
has not started yet.  This has been fixed in the new chips -- BBUSY is
set immediately.  This fixed was performed to eliminate the "need to check
BBUSY more than once" bug in the old chips.

Now, the narrator device is a relic of the old Amiga game days.  It turns
off blitter dma when it's synthesizing the voice so as to get all the
processor cycles it needs.

Meanwhile, a BOB is being used to render the dragging icon.  BOBs use QBlits.  
QBlits fire up new blits from interrupt code, and will continue to fire
them up if they're completed immediately, which they looked like they did
in the areas where the narrator device had turned off dma.  Hence, the icon
was trashed.

What I've done is removed the code from the narrator device that disabled
blitter dma.  The narrator device did not avail itself of any other mechanism
to ensure processor bandwidth: it had Disable/Enable pairs only around list
management routines, no Forbid/Permits, and a task priority of zero.  I
therefore concluded that it could live with blitter contention as well.

But I don't know who uses the narrator device and under what circumstances.
I do know that teaching instances of WaitBlit to check if dma is off would
be costly.  It would also be another kluge to hide an obsolete chip problem.
I feel adding blitter contention to the narrator code is a better risk and
affects less users.

Comments welcome.

- Kodiak

From dale@superman Tue Feb 23 17:18:30 1988
Return-Path: <dale@superman>
Received: from superman.amiga.uucp by tooter.amiga.uucp (1.1/SMI-3.0DEV3)
	id AA01734; Tue, 23 Feb 88 17:18:25 PST
Received: by superman.amiga.uucp (1.1/SMI-3.0DEV3)
	id AA07388; Tue, 23 Feb 88 17:07:00 PST
Date: Tue, 23 Feb 88 17:07:00 PST
From: dale@superman (Dale Luck)
Message-Id: <8802240107.AA07388@superman.amiga.uucp>
To: kodiak@tooter
Subject: Re:  Narrator & trashed icons
Status: R

I concur with your conclusion.
Dale

From cbmvax!carolyn Tue Feb 23 18:31:01 1988
Received: from amiga.uucp by tooter.amiga.uucp (1.1/SMI-3.0DEV3)
	id AA01826; Tue, 23 Feb 88 18:30:54 PST
Received: by amiga.uucp (1.1/3.14)
	id AA00380; Tue, 23 Feb 88 18:25:16 PST
Return-Path: <cbmvax!carolyn>
Received: by cbmvax.UUCP (4.12/UUCP-Project/Commodore 12/21/87))
	id AA21441; Tue, 23 Feb 88 21:32:14 est
Date: Tue, 23 Feb 88 21:32:14 est
From: cbmvax!carolyn (Carolyn Scheppner CATS)
Message-Id: <8802240232.AA21441@cbmvax.UUCP>
To: bart@amiga.uucp, dale@amiga.uucp, jimm@amiga.uucp, kodiak@amiga.uucp,
        cbmvax!andy, cbmvax!daveb, cbmvax!eric, cbmvax!steveb
Subject: Re:  Narrator & trashed icons
Status: R

Many developers who use speech also use the highest resolution and number
of bitplanes that don't trash speech for them.

(ie. speech stinks with a 4-bitplane hires screen.  speech is somewhat
degraded with a 3-bitplane hires screen.  Speech with a 2-bitplane
hires screen like workbench is fine, as is speech with any number of
lores bitplanes.)

If the above rules change, then many speech programs will be degraded.

