⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma.h

📁 Jazmyn is a 32-bit, protected mode, multitasking OS which runs on i386 & above CPU`s. Its complete
💻 H
字号:
#ifndef _DMA_H
#define _DMA_H

#include "driver.h"
#include "drvreq.h"

#define	COMMAND_REG(DMA)	((DMA==1) ? 0x08 : 0xD0)	//enable/disable DMA
#define	REQ_REG(DMA)		((DMA==1) ? 0x09 : 0xD2)	//STCL,sel1-sel0
#define	CHAN_MASK_REG(DMA)	((DMA==1) ? 0x0A : 0xD4)	//STCL,sel1-sel0
#define	MODE_REG(DMA)		((DMA==1) ? 0x0B : 0xD6)	//mode,type,sel1-sel0
#define	MASK_REG(DMA)		((DMA==1) ? 0x0F : 0xDE)	//STC3-STC0
#define	RES_FF_REG(DMA)		((DMA==1) ? 0x0C : 0xD8)	//reset internel flip-flop
#define	MASTER_CLR_REG(DMA)	((DMA==1) ? 0x0D : 0xDA)	//DMA reset
#define	CLR_MASK_REG(DMA)	((DMA==1) ? 0x0E : 0xDC)	//unmask all channels

#define LO_BYTE(x) (x & 0x00FF)
#define HI_BYTE(x) ((x & 0xFF00) >> 8)

typedef struct
{
	byte	page;
	byte	hbyte;
	byte	lbyte;
	ushort	length;
}DMA_mem;

class DMA : public driver
{
private:
	static byte ADDR_REG[8];
	static byte COUNT_REG[8];
	static byte PAGE_REG[8];
public:
        DMA(char *name);
	~DMA();
        int     set_DMA(DMA_req *req);
        void    make_DMA_addrs(DMA_mem &mem,uint addrs,ushort size);
};


int dma_main(void *req);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -