|
|
| version 1.5, 2004/08/14 12:16:17 | version 1.7, 2008/06/02 20:07:31 |
|---|---|
| Line 1 | Line 1 |
| #define DMAS_STOIC | |
| #if defined(BYTESEX_LITTLE) | #if defined(BYTESEX_LITTLE) |
| typedef union { | typedef union { |
| struct { | struct { |
| UINT8 l; | UINT8 flag; |
| UINT8 h; | UINT8 padding; |
| } b; | UINT8 addrl; |
| UINT16 w; | UINT8 addrh; |
| } DMAPAIR; | } b; |
| struct { | |
| UINT8 flag; | |
| UINT8 padding; | |
| UINT16 addr; | |
| } w; | |
| } DMACNT; | |
| typedef union { | |
| struct { | |
| UINT8 ll; | |
| UINT8 lh; | |
| UINT8 nl; | |
| UINT8 nh; | |
| } b; | |
| struct { | |
| UINT16 l; | |
| UINT16 n; | |
| } w; | |
| } DMALENG; | |
| typedef union { | |
| struct { | |
| UINT8 al; | |
| UINT8 ah; | |
| UINT8 bl; | |
| UINT8 bh; | |
| } b; | |
| struct { | |
| UINT16 a; | |
| UINT16 b; | |
| } w; | |
| } DMAADDR; | |
| #else | #else |
| typedef union { | typedef union { |
| struct { | struct { |
| UINT8 h; | UINT8 flag; |
| UINT8 l; | UINT8 padding; |
| } b; | UINT8 addrh; |
| UINT16 w; | UINT8 addrl; |
| } DMAPAIR; | } b; |
| struct { | |
| UINT8 flag; | |
| UINT8 padding; | |
| UINT16 addr; | |
| } w; | |
| } DMACNT; | |
| typedef union { | |
| struct { | |
| UINT8 lh; | |
| UINT8 ll; | |
| UINT8 nh; | |
| UINT8 nl; | |
| } b; | |
| struct { | |
| UINT16 l; | |
| UINT16 n; | |
| } w; | |
| } DMALENG; | |
| typedef union { | |
| struct { | |
| UINT8 ah; | |
| UINT8 al; | |
| UINT8 bh; | |
| UINT8 bl; | |
| } b; | |
| struct { | |
| UINT16 a; | |
| UINT16 b; | |
| } w; | |
| } DMAADDR; | |
| #endif | #endif |
| #if defined(DMAS_STOIC) | |
| enum { | |
| DMAF_WORKING = 0x01, | |
| DMAF_INCREMENT = 0x08, | |
| DMAF_MACH = 0x10, | |
| DMAF_ENDB = 0x20 | |
| }; | |
| typedef struct { | |
| UINT8 flag; | |
| UINT8 WR0; | |
| UINT8 mode; /* DMA_MODE */ | |
| UINT8 INT_ENBL; | |
| UINT8 WR4; | |
| UINT8 WR5; | |
| UINT8 MASK_BYT; | |
| UINT8 MACH_BYT; | |
| DMACNT cnt_a; | |
| DMACNT cnt_b; | |
| DMALENG leng; | |
| DMAADDR addr; | |
| UINT8 enable; /* DMA_ENBL */ | |
| UINT8 ready; /* DMA_REDY */ | |
| UINT8 RR_MSK; | |
| UINT8 RR; | |
| UINT8 INT_FLG; | |
| UINT8 INT_PLS; | |
| UINT8 INT_VCT; | |
| UINT8 dummydat; | |
| UINT wcnt; | |
| UINT wptr; | |
| UINT rcnt; | |
| UINT rptr; | |
| UINT8 wtbl[8]; | |
| UINT8 rtbl[8]; | |
| } DMAC; | |
| #else | |
| typedef struct { | typedef struct { |
| UINT8 working; | UINT8 working; |
| UINT8 increment; | UINT8 increment; |
| UINT8 enable; // DMA_ENBL | UINT8 mode; /* DMA_MODE */ |
| UINT8 ready; // DMA_REDY | UINT8 __cmd; /* DMA_CMND */ |
| UINT8 mode; // DMA_MODE | |
| UINT8 cmd; // DMA_CMND | UINT8 enable; /* DMA_ENBL */ |
| UINT8 ready; /* DMA_REDY */ | |
| UINT8 INT_ENBL; | UINT8 INT_ENBL; |
| UINT8 INT_FLG; | UINT8 INT_FLG; |
| Line 39 typedef struct { | Line 152 typedef struct { |
| UINT8 RR_MSK; | UINT8 RR_MSK; |
| UINT8 RR; | UINT8 RR; |
| UINT8 WR0; | |
| #if 0 | |
| UINT8 WR1; | |
| UINT8 WR2; | |
| UINT8 WR3; | |
| #endif /* 0 */ | |
| UINT8 WR4; | |
| UINT8 WR5; | |
| UINT8 dummydat; | UINT8 dummydat; |
| UINT8 padding[3]; | #if 0 |
| UINT8 padding; | |
| DMAPAIR ADR_A; | #endif /* 0 */ |
| DMAPAIR ADR_B; | |
| DMAPAIR BYT_L; | DMACNT cnt_a; |
| DMACNT cnt_b; | |
| DMAPAIR CNT_A; | |
| DMAPAIR CNT_B; | DMALENG leng; |
| DMAPAIR BYT_N; | DMAADDR addr; |
| UINT8 WR[8]; | UINT wcnt; |
| UINT wptr; | |
| UINT WR_CNT; | UINT rcnt; |
| UINT WR_OFF; | UINT rptr; |
| UINT RR_CNT; | UINT8 wtbl[8]; |
| UINT RR_OFF; | UINT8 rtbl[8]; |
| UINT8 WR_TBL[16]; | |
| UINT8 RR_TBL[16]; | |
| } DMAC; | } DMAC; |
| #endif | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| extern "C" { | extern "C" { |
| Line 68 extern "C" { | Line 189 extern "C" { |
| void dmac_sendready(BRESULT ready); | void dmac_sendready(BRESULT ready); |
| BRESULT ieitem_dmac(UINT id); | BRESULT ieitem_dmac(UINT id); |
| void IOOUTCALL dmac_o(UINT port, REG8 dat); // x1_dma_w | void IOOUTCALL dmac_o(UINT port, REG8 dat); |
| REG8 IOINPCALL dmac_i(UINT port); // x1_dma_r | REG8 IOINPCALL dmac_i(UINT port); |
| void dmac_reset(void); | void dmac_reset(void); |