|
|
1.1 ! root 1: /* NeXT DMA Emulation */ ! 2: ! 3: typedef enum { ! 4: CHANNEL_SCSI, // 0x00000010 ! 5: CHANNEL_SOUNDOUT, // 0x00000040 ! 6: CHANNEL_DISK, // 0x00000050 ! 7: CHANNEL_SOUNDIN, // 0x00000080 ! 8: CHANNEL_PRINTER, // 0x00000090 ! 9: CHANNEL_SCC, // 0x000000c0 ! 10: CHANNEL_DSP, // 0x000000d0 ! 11: CHANNEL_EN_TX, // 0x00000110 ! 12: CHANNEL_EN_RX, // 0x00000150 ! 13: CHANNEL_VIDEO, // 0x00000180 ! 14: CHANNEL_M2R, // 0x000001d0 ! 15: CHANNEL_R2M // 0x000001c0 ! 16: }DMA_CHANNEL; ! 17: ! 18: int get_channel(Uint32 address); ! 19: int get_interrupt_type(int channel); ! 20: ! 21: void DMA_CSR_Read(void); ! 22: void DMA_CSR_Write(void); ! 23: ! 24: void DMA_Saved_Next_Read(void); ! 25: void DMA_Saved_Next_Write(void); ! 26: void DMA_Saved_Limit_Read(void); ! 27: void DMA_Saved_Limit_Write(void); ! 28: void DMA_Saved_Start_Read(void); ! 29: void DMA_Saved_Start_Write(void); ! 30: void DMA_Saved_Stop_Read(void); ! 31: void DMA_Saved_Stop_Write(void); ! 32: ! 33: void DMA_Next_Read(void); ! 34: void DMA_Next_Write(void); ! 35: void DMA_Limit_Read(void); ! 36: void DMA_Limit_Write(void); ! 37: void DMA_Start_Read(void); ! 38: void DMA_Start_Write(void); ! 39: void DMA_Stop_Read(void); ! 40: void DMA_Stop_Write(void); ! 41: ! 42: void DMA_Init_Read(void); ! 43: void DMA_Init_Write(void); ! 44: void DMA_Size_Read(void); ! 45: void DMA_Size_Write(void); ! 46: ! 47: ! 48: void dma_memory_write(Uint8 *buf, Uint32 size, int channel); ! 49: void dma_memory_read(Uint8 *buf, Uint32 *size, int channel); ! 50: void dma_clear_memory(Uint32 datalength); ! 51: ! 52: /* Buffers */ ! 53: #define DMA_BUFFER_SIZE 65536 ! 54: ! 55: /* dma read buffer */ ! 56: Uint8 dma_read_buffer[DMA_BUFFER_SIZE]; ! 57: ! 58: /* dma write buffer */ ! 59: Uint8 dma_write_buffer[DMA_BUFFER_SIZE];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.