Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!prls!pyramid!amiga!dale From: dale@amiga.UUCP (Dale Luck) Newsgroups: net.micro.atari16 Subject: Re: DMA port information for DSP and other needs. Message-ID: <1065@amiga.amiga.UUCP> Date: Wed, 30-Apr-86 18:21:07 EDT Article-I.D.: amiga.1065 Posted: Wed Apr 30 18:21:07 1986 Date-Received: Sat, 3-May-86 04:29:16 EDT References: <1815@utecfa.UUCP> <274@apollo.mentor.UUCP> Reply-To: dale@tooter.UUCP (Dale Luck) Organization: Commodore-Amiga Inc., 983 University Ave #D, Los Gatos CA 95030 Lines: 31 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