PC DMA Question - compressed DMA cycles?

PC DMA Question - compressed DMA cycles?

Post by Joseph J. Kubic » Thu, 10 Jun 1993 03:37:07



There's a bit in the 8237 DMA controller command register that
selects a "Special Compressed DMA Bus Cycle" (bit 3).  However,
my book (Interfacing to the IBM PC...) says not to use it because
it will cause the DMA to violate some specified limits for access
time.  It seems like it would probably work anyway, given most
cards are capable of pretty fast I/O access these days.  Has anyone
ever tried this?

Thanks,
Jay Kubicky

 
 
 

1. Help! Question about PC DMA controller programming

Would anybody help me with DMA controller programming?

I wrote a driver for my ADC/DAC card using DMA in IBM PC/AT for DOS.
There were a code in it:

  unsigned p1 , p2 ;
    ...
  asm {
    mov al,59h //DMA channel1 mode setting, single byte input, autoinitialization
    out 8,al }
    ...
  do
    p1 = DMApos() ;
    printf("%x\n",p1);
  while( p1 < p2 ) ;

    ...

where:

  unsigned DMApos() {   //getting current address of channel 1
    asm {
      cli
      out  0ch,al       //clear low byte flip/flop
      in   al,2         //read channel 1 current address low byte
      mov  ah,al
      in   al,2         //read channel 1 current address high byte
      xchg al,ah
      sti }
    return _AX ; }

When I remove printf or redirect it to nul: some data incoming from
ADC are lost :-(. WHY?!

The DMA controller was programed to single byte input,
autoinitialization ( out 8,59h ), period of DRQ's was about
10 - 100 microseconds.

So, the questions:
  1. What do 8237 do with DRQ's between port 2 readings?
     Can it loss DRQ's in this time?
  2. Can it loss DRQ's while other DRQ treatment or memory refresh?
     In my computer DRQ0 seems to be unused.
  3. Can it loss DRQ's during autoinitialization?

                                        Best regards,
                                        Waldemar G. Saitseff
Speech Technology Center
Phone: (812)532-5903

2. HP Precision Scan / PDF file

3. C(++) library for low level PC stuff (serial, DMA, video , you know) recommendations

4. Port speed on Dial-up connections:DecServer

5. Software Interface for PC DMA controler?

6. Money 2002 Income Tax Rates

7. Problems programming PC DMA (cache coherency, etc.)...

8. OS/2 Warp 4 and Cogeco Wave

9. DMA control registers PC vs 386

10. Software Interface for PC DMA Controller?

11. Help needed programming PC-AT DMA controller

12. Programming the PC's DMA controller

13. 8237A DMA Chip on the PC