10.02_devices/2_src/uda.cpp
//
// DMAWrite():
//  Write data from the provided buffer to Qbus/Unibus memory.  Returns true
//  on success; if false is returned this is due to an NXM condition.
//  The address specified in 'address' must be word-aligned and the
//  length must be even.
//
Write data from the provided buffer to Qbus/Unibus memory.  Returns true
on success; if false is returned this is due to an NXM condition.
The address specified in 'address' must be word-aligned and the
length must be even.
Write data from the provided buffer to Qbus / Unibus memory . Returns true on success ; if false is returned this is due to an NXM condition . The address specified in ' address ' must be word - aligned and the length must be even .
bool
uda_c::DMAWrite(
    uint32_t address,
    size_t lengthInBytes,
    uint8_t* buffer)
{
    assert ((lengthInBytes % 2) == 0);
    assert (address < 2* qunibus->addr_space_word_count); 
    qunibusadapter->DMA(dma_request, true,
            QUNIBUS_CYCLE_DATO,
            address,
            reinterpret_cast<uint16_t*>(buffer),
            lengthInBytes >> 1);
	return dma_request.success ;
}
bool uda_c :: DMAWrite ( uint32_t address , size_t lengthInBytes , uint8_t * buffer ) { assert ( ( lengthInBytes % 2 ) == 0 ) ; assert ( address < 2 * qunibus -> addr_space_word_count ) ; qunibusadapter -> DMA ( dma_request , true , QUNIBUS_CYCLE_DATO , address , reinterpret_cast < uint16_t * > ( buffer ) , lengthInBytes >> 1 ) ; return dma_request . success ; }
DMAWrite():
Write data from the provided buffer to Qbus/Unibus memory.
DMAWrite () : Write data from the provided buffer to Qbus / Unibus memory .
// exceeds address space? test for IOpage too?