dma_outb
dma_outb(dmanr, DMA1_MASK_REG);
dma_outb(dmanr & 3, DMA2_MASK_REG);
dma_outb(dmanr | 4, DMA1_MASK_REG);
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
dma_outb(0, DMA1_CLEAR_FF_REG);
dma_outb(0, DMA2_CLEAR_FF_REG);
dma_outb(mode | dmanr, DMA1_MODE_REG);
dma_outb(mode | (dmanr&3), DMA2_MODE_REG);
dma_outb(ext_mode | dmanr, DMA1_EXT_MODE_REG);
dma_outb(ext_mode | (dmanr&3), DMA2_EXT_MODE_REG);
dma_outb(pagenr, DMA_PAGE_0);
dma_outb((pagenr >> 8), DMA_HIPAGE_0);
dma_outb(pagenr, DMA_PAGE_1);
dma_outb((pagenr >> 8), DMA_HIPAGE_1);
dma_outb(pagenr, DMA_PAGE_2);
dma_outb((pagenr >> 8), DMA_HIPAGE_2);
dma_outb(pagenr, DMA_PAGE_3);
dma_outb((pagenr >> 8), DMA_HIPAGE_3);
dma_outb(pagenr & 0xfe, DMA_PAGE_5);
dma_outb((pagenr >> 8), DMA_HIPAGE_5);
dma_outb(pagenr & 0xfe, DMA_PAGE_6);
dma_outb((pagenr >> 8), DMA_HIPAGE_6);
dma_outb(pagenr & 0xfe, DMA_PAGE_7);
dma_outb((pagenr >> 8), DMA_HIPAGE_7);
dma_outb( a & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
dma_outb( (a>>8) & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
dma_outb( (a>>1) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
dma_outb( (a>>9) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
dma_outb(dmanr, DMA1_MASK_REG);
dma_outb(dmanr & 3, DMA2_MASK_REG);
dma_outb(dmanr | 4, DMA1_MASK_REG);
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
dma_outb(0, DMA1_CLEAR_FF_REG);
dma_outb(0, DMA2_CLEAR_FF_REG);
dma_outb(mode | dmanr, DMA1_MODE_REG);
dma_outb(mode | (dmanr&3), DMA2_MODE_REG);
dma_outb(pagenr, DMA_PAGE_0);
dma_outb(pagenr, DMA_PAGE_1);
dma_outb(pagenr, DMA_PAGE_2);
dma_outb(pagenr, DMA_PAGE_3);
dma_outb(pagenr & 0xfe, DMA_PAGE_5);
dma_outb(pagenr & 0xfe, DMA_PAGE_6);
dma_outb(pagenr & 0xfe, DMA_PAGE_7);
dma_outb( a & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
dma_outb( (a>>8) & 0xff, ((dmanr&3)<<1) + IO_DMA1_BASE );
dma_outb( (a>>1) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
dma_outb( (a>>9) & 0xff, ((dmanr&3)<<2) + IO_DMA2_BASE );
dma_outb( count & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
dma_outb( (count>>8) & 0xff, ((dmanr&3)<<1) + 1 + IO_DMA1_BASE );
dma_outb( (count>>1) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
dma_outb( (count>>9) & 0xff, ((dmanr&3)<<2) + 2 + IO_DMA2_BASE );
dma_outb(dmanr, DMA1_MASK_REG);
dma_outb(dmanr & 3, DMA2_MASK_REG);
dma_outb(dmanr | 4, DMA1_MASK_REG);
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
dma_outb(0, DMA2_MASK_REG); /* This may not be enabled */
dma_outb(ucDmaCmd, DMA2_CMD_REG); /* Enable group */
dma_outb(dmanr, DMA1_MASK_REG);
dma_outb(ucDmaCmd, DMA1_CMD_REG); /* Enable group */
dma_outb(dmanr & 3, DMA2_MASK_REG);
dma_outb(dmanr | 4, DMA1_MASK_REG);
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
dma_outb(0, DMA1_CLEAR_FF_REG);
dma_outb(0, DMA2_CLEAR_FF_REG);
dma_outb(mode | dmanr, DMA1_MODE_REG);
dma_outb(mode | (dmanr & 3), DMA2_MODE_REG);
dma_outb(pagenr, DMA_LO_PAGE_0);
dma_outb(pagenr >> 8, DMA_HI_PAGE_0);
dma_outb(pagenr, DMA_LO_PAGE_1);
dma_outb(pagenr >> 8, DMA_HI_PAGE_1);
dma_outb(pagenr, DMA_LO_PAGE_2);
dma_outb(pagenr >> 8, DMA_HI_PAGE_2);
dma_outb(pagenr, DMA_LO_PAGE_3);
dma_outb(pagenr >> 8, DMA_HI_PAGE_3);
dma_outb(pagenr & 0xfe, DMA_LO_PAGE_5);
dma_outb(pagenr >> 8, DMA_HI_PAGE_5);
dma_outb(pagenr & 0xfe, DMA_LO_PAGE_6);
dma_outb(pagenr >> 8, DMA_HI_PAGE_6);
dma_outb(pagenr & 0xfe, DMA_LO_PAGE_7);
dma_outb(pagenr >> 8, DMA_HI_PAGE_7);
dma_outb(phys & 0xff,
dma_outb((phys >> 8) & 0xff,
dma_outb((phys >> 1) & 0xff,
dma_outb((phys >> 9) & 0xff,
dma_outb(count & 0xff,
dma_outb((count >> 8) & 0xff,
dma_outb((count >> 1) & 0xff,
dma_outb((count >> 9) & 0xff,
dma_outb(dmanr, DMA1_MASK_REG);
dma_outb(dmanr & 3, DMA2_MASK_REG);
dma_outb(dmanr | 4, DMA1_MASK_REG);
dma_outb((dmanr & 3) | 4, DMA2_MASK_REG);
dma_outb(0, DMA1_CLEAR_FF_REG);
dma_outb(0, DMA2_CLEAR_FF_REG);
dma_outb(mode | dmanr, DMA1_MODE_REG);
dma_outb(mode | (dmanr & 3), DMA2_MODE_REG);
dma_outb(pagenr, DMA_PAGE_0);
dma_outb(pagenr, DMA_PAGE_1);
dma_outb(pagenr, DMA_PAGE_2);
dma_outb(pagenr, DMA_PAGE_3);
dma_outb(pagenr & 0xfe, DMA_PAGE_5);
dma_outb(pagenr & 0xfe, DMA_PAGE_6);
dma_outb(pagenr & 0xfe, DMA_PAGE_7);
dma_outb(a & 0xff, ((dmanr & 3) << 1) + IO_DMA1_BASE);
dma_outb((a >> 8) & 0xff, ((dmanr & 3) << 1) + IO_DMA1_BASE);
dma_outb((a >> 1) & 0xff, ((dmanr & 3) << 2) + IO_DMA2_BASE);
dma_outb((a >> 9) & 0xff, ((dmanr & 3) << 2) + IO_DMA2_BASE);
dma_outb(count & 0xff, ((dmanr & 3) << 1) + 1 + IO_DMA1_BASE);
dma_outb((count >> 8) & 0xff,
dma_outb((count >> 1) & 0xff,
dma_outb((count >> 9) & 0xff,
dma_outb(0, DMA1_RESET_REG);
dma_outb(0, DMA2_RESET_REG);