User`s guide

BDOS FUNCTION 26: SET DMA ADDRESS
Entry Parameters:
Registers C: 1AH
DE: DMA Address
DMA is an acronym for Direct Memory Address, which is often used in connec-
tion with disk controllers that directly access the memory of the computer to transfer
data to and from the disk subsystem. Under CP/M 3, the current DMA is usually
defined as the buffer in memory where a record resides before a disk write, and after
a disk read operation. If the BDOS Multi-Sector Count is equal to one (see Function
44), the size of the buffer is 128 bytes. However, if the BDOS Multi-Sector Count is
greater than one, the size of the buffer must equal N * 128, where N equals the
Multi-Sector Count.
Some BDOS functions also use the current DMA to pass parameters, and to return
values. For example, BDOS functions that check and assign file passwords require
that the password be placed in the current DMA. As another example, Function 46,
Get Disk Free Space, returns its results in the first 3 bytes of the current DMA. When
the current DMA is used in this context, the size of the buffer in memory is deter-
mined by the specific requirements of the called function.
When a transient program is initiated by the CCP, its DMA address is set to
0080H. The BDOS Reset Disk System function, Function 13, also sets the DMA
address to 0080H. The Set DMA function can change this default value to another
memory address. The DMA address is set to the value passed in the register pair DE.
The DMA address remains at this value until it is changed by another Set DMA
Address, or Reset Disk System call.
3-40
BDOS Function Calls CP/M 3 Programmers Guide