[net.micro.atari16] DMA port information for DSP and other needs.

mugc@utecfa.UUCP (ModemUserGroupChairman) (04/16/86)

{(*/*   Pure-E-net Line (eater) Chow   */*)}

Hello!

For my undergraduate thesis, I'm doing work in the area of speech
recognition (isolated word). In order to do the high speed data
acquisition and analysis that is needed, I was thinking of putting a
TMS320 series signal processor, and some other support chips on the
high-speed DMA port on the ST. Now, I don't have any hardware
documentation for the ST, other than a book published by Abacus
Software called "ST Internals". Unfortunately, this book has only one
page on the DMA interface which does not have much meat in it. However,
it does say the following:

	"Since most of the external devices will use a Controller IC,
	the signal CS, Chip Select on pin9, must also be available. The
	signal A1 is also to be seen in connection with this, because
	it is then important if the controller has more than one
	register. This signal can distinguish between two registers."

This seems (to me) to imply that the DMA port can address only two
registers. Is this true, or are they missing something (am I missing
something?)?. I found this surprising because a while ago, from a
SASI/SCSI discussion on this net (net.micro.atari) there was talk about
this port being able to address 256 external devices or something like
that. How?

Would somebody please shed some light on this? Has anyone done any
interfacing with this port, could they please tell us what their
experiences were like, any pitfalls etc. I'm sure there are others on
the net who are interested in this as well, so email or post to the
net. Also, if there is sufficient interest in this, I'll summarize the
replies I get via email.

	Thank you for your time,

		Anees Munshi



-- 
			Anees Munshi
			@ University of Toronto Engineering Comp. Facility :A
			{allegra,ihnp4,linus,decvax}!utzoo!utcsri!utecfa!mugc
                        {ihnp4|decvax|utzoo|utcsri}!utecfa!utecfb!munshi

dale@amiga.UUCP (Dale Luck) (05/01/86)

In article <274@apollo.mentor.UUCP> dclemans@mentor.UUCP (Dave Clemans) writes:
>/*	NOTE:								   */
>/*	  The 'asm' command in the 'FIFO_RD()' procedure may be required   */
>/*	  if your compiler uses a 'CLR' to zero a memory location.  The	   */
>/*	  two lines must store a LONG 0 into 'FIFO'.  A 'CLR' (what	   */
>/*	  Megamax compiles the commented out line to) will NOT WORK.	   */
>VOID
>fifo_rd(count)
>WORD	count;
>{
>
>	*fifo = 0x90;
>	*fifo = 0x190;
>	*fifo = 0x90;
>	*diskctl_w = count;
>	*fifo = 0x8a;
>/*	*diskctl_l = 0x0L;    DONT use this -- compiler does it WRONG */
>	asm{
>	move.l	#0x00ff8604,A0
>	move.l	#0x00000000,(A0)
>	}
>}
>		*diskctl_l  = ( (LONG) dma << 21) | (sectno & 0x1f0000) | 0x8a;
Whatever you do is a hack to fix the 68000 clr instruction. But for
those that do not have the asm{} feature you might try:
{
	long qwe;
	qwe = 0;
	*diskctrl_l = qwe;
}
Dale Luck