.. | .. |
---|
31 | 31 | #define CSW fd_routine[can_use_virtual_dma & 1] |
---|
32 | 32 | |
---|
33 | 33 | |
---|
34 | | -#define fd_inb(port) inb_p(port) |
---|
35 | | -#define fd_outb(value, port) outb_p(value, port) |
---|
| 34 | +#define fd_inb(base, reg) inb_p((base) + (reg)) |
---|
| 35 | +#define fd_outb(value, base, reg) outb_p(value, (base) + (reg)) |
---|
36 | 36 | |
---|
37 | 37 | #define fd_request_dma() CSW._request_dma(FLOPPY_DMA, "floppy") |
---|
38 | 38 | #define fd_free_dma() CSW._free_dma(FLOPPY_DMA) |
---|
.. | .. |
---|
77 | 77 | st = 1; |
---|
78 | 78 | for (lcount = virtual_dma_count, lptr = virtual_dma_addr; |
---|
79 | 79 | lcount; lcount--, lptr++) { |
---|
80 | | - st = inb(virtual_dma_port + 4) & 0xa0; |
---|
81 | | - if (st != 0xa0) |
---|
| 80 | + st = inb(virtual_dma_port + FD_STATUS); |
---|
| 81 | + st &= STATUS_DMA | STATUS_READY; |
---|
| 82 | + if (st != (STATUS_DMA | STATUS_READY)) |
---|
82 | 83 | break; |
---|
83 | 84 | if (virtual_dma_mode) |
---|
84 | | - outb_p(*lptr, virtual_dma_port + 5); |
---|
| 85 | + outb_p(*lptr, virtual_dma_port + FD_DATA); |
---|
85 | 86 | else |
---|
86 | | - *lptr = inb_p(virtual_dma_port + 5); |
---|
| 87 | + *lptr = inb_p(virtual_dma_port + FD_DATA); |
---|
87 | 88 | } |
---|
88 | 89 | virtual_dma_count = lcount; |
---|
89 | 90 | virtual_dma_addr = lptr; |
---|
90 | | - st = inb(virtual_dma_port + 4); |
---|
| 91 | + st = inb(virtual_dma_port + FD_STATUS); |
---|
91 | 92 | } |
---|
92 | 93 | |
---|
93 | 94 | #ifdef TRACE_FLPY_INT |
---|
94 | 95 | calls++; |
---|
95 | 96 | #endif |
---|
96 | | - if (st == 0x20) |
---|
| 97 | + if (st == STATUS_DMA) |
---|
97 | 98 | return IRQ_HANDLED; |
---|
98 | | - if (!(st & 0x20)) { |
---|
| 99 | + if (!(st & STATUS_DMA)) { |
---|
99 | 100 | virtual_dma_residue += virtual_dma_count; |
---|
100 | 101 | virtual_dma_count = 0; |
---|
101 | 102 | #ifdef TRACE_FLPY_INT |
---|