{
struct _CR * cr = (struct _CR*)&(regs->cr);
uint_t packet_size = size + 16;
- regs->cr = 0x21;
+ regs->cr = 0x21; /* Turn off remote DMA, stop command */
cr->stp = 0x0; //toggle start on
cr->sta = 0x1;
Out_Byte(NE2K_CR, regs->cr);
Out_Byte(NE2K_RSAR0, 0x00);
Out_Byte(NE2K_RSAR1, TX_START_BUFF);
- regs->cr = 0x16;
+ cr->rd = 0x02; /* Set remote DMA to write */
Out_Byte(NE2K_CR, regs->cr);
/* Destination Address */
Out_Word(NE2K_CR + 0x10, (*(data + i + 1) << 8) | *(data + i));
}
+ cr->txp = 0x1; /* Start transmission */
+ Out_Byte(NE2K_CR, regs->cr);
+
return 0;
}