Re: read floppy problem



> When i want to use int 0x13 to read 65 sectors a time, it give me
> error 9 data boundary error (attempted DMA across 64K boundary or >80h
> sectors).
Yes, the DMA doesn not use segments like the CPU. It can only handle a 64K
address space. Therefor the 1MB or 16MB address space of the PC-XT/AT is
split up into 64KB (128KB for 16-bit transfer) blocks, which do NOT overlap,
like on a CPU. A DMA transfer cannot cross that boundary.
Either split up your reads or use a different address for your buffer.


H


.



Relevant Pages

  • Re: A simple question about DMA, please help me.
    ... held by the DMA controller and the CPU is set idle until this transfer ... memory to fetch instructions while the DMA transfer is continuing. ... The PCI bus changed that -- it eliminated the separate lines for each ...
    (comp.lang.asm.x86)
  • Re: Volatile variables
    ... I/O methods ("DMA" and the like) that completely bypass the CPU. ... then DMA bypasses the on-chip cache. ... memory. ...
    (comp.lang.c)
  • Re: performance problem
    ... DMA is enabled on all drives. ... USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ... > problematic daemon running. ...
    (Debian-User)
  • PROBLEM: DMA over CPU" memory leak in Kernel 2.6.8.1
    ... "DMA over CPU" memory leak if I burn Audio-CDs ... d0000000-dfffffff: PCI Bus #01 ...
    (Linux-Kernel)
  • Re: Poor Performance on Oracle9i - 9.2.0.7
    ... Hot blocks in the SGA could mean the cpu is spending a lot of time just ... there and in as few segments as possible. ... Having been 64 bit for a long time, I don't recall ... means tune your app, if your app is defining its own pipe then it may ...
    (comp.databases.oracle.server)