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

📄 angel.c

📁 LPC based lcd interface
💻 C
字号:
unsigned long angel[4];

int SYS(int code, unsigned long *param)
{
	asm(
	"swi	0x123456"
	);
}

int sys_open(char *fname,char *mode)
{
	int fmode;

	if (strcmp(mode,"r") == 0)
		fmode = 0;
	else if (strcmp(mode,"rb") == 0)
		fmode = 1;
	else if (strcmp(mode,"r+") == 0)
		fmode = 2;
	else if (strcmp(mode,"r+b") == 0)
		fmode = 3;
	else if (strcmp(mode,"w") == 0)
		fmode = 4;
	else if (strcmp(mode,"wb") == 0)
		fmode = 5;
	else if (strcmp(mode,"w+") == 0)
		fmode = 6;
	else if (strcmp(mode,"w+b") == 0)
		fmode = 7;
	else if (strcmp(mode,"a") == 0)
		fmode = 8;
	else if (strcmp(mode,"ab") == 0)
		fmode = 9;
	else if (strcmp(mode,"a+") == 0)
		fmode = 10;
	else if (strcmp(mode,"a+b") == 0)
		fmode = 11;
	angel[0] = (unsigned long)fname;
	angel[1] = (unsigned long)fmode;
	angel[2] = (unsigned long)strlen(fname);
	return SYS(0x01,angel);
}

int sys_close(int handle)
{
	angel[0] = (unsigned long)handle;
	return SYS(0x02,angel);
}

int sys_writec(char ch)
{
	angel[0] = (unsigned long)ch;
	return SYS(0x03,angel);
}

int sys_write0(char *str)
{
	angel[0] = (unsigned long)str;
	return SYS(0x04,angel);
}

int sys_write(int handle, char *mem, int num_bytes)
{
	angel[0] = (unsigned long)handle;
	angel[1] = (unsigned long)mem;
	angel[2] = (unsigned long)num_bytes;
	return SYS(0x05,angel);
}

int sys_read(int handle, char *mem, int num_bytes, int fmode)
{
	angel[0] = (unsigned long)handle;
	angel[1] = (unsigned long)mem;
	angel[2] = (unsigned long)num_bytes;
	angel[3] = (unsigned long)fmode;
	return SYS(0x06,angel);
}

int sys_readc()
{
	return SYS(0x07,0);
}

int sys_iserror(int errno)
{
	angel[0] = (unsigned long)errno;
	return SYS(0x08,angel);
}

int sys_istty(int handle)
{
	angel[0] = (unsigned long)handle;
	return SYS(0x09,angel);
}

int sys_seek(int handle, int position)
{
	angel[0] = (unsigned long)handle;
	angel[1] = (unsigned long)position;
	return SYS(0x10,angel);
}

int sys_flen(int handle)
{
	angel[0] = (unsigned long)handle;
	return SYS(0x11,angel);
}

int sys_tmpnam(char *buffer, int target, int buf_len)
{
	angel[0] = (unsigned long)buffer;
	angel[1] = (unsigned long)target;
	angel[2] = (unsigned long)buf_len;
	return SYS(0x0d,angel);
}

int sys_remove(char *fname,int fname_len)
{
	angel[0] = (unsigned long)fname;
	angel[1] = (unsigned long)fname_len;
	return SYS(0x0e,angel);
}

int sys_rename(char *old_fname, int old_len, char *new_fname, int new_len)
{
	angel[0] = (unsigned long)old_fname;
	angel[1] = (unsigned long)old_len;
	angel[2] = (unsigned long)new_fname;
	angel[3] = (unsigned long)new_len;
	return SYS(0x0f,angel);
}

int sys_clock()
{
	return SYS(0x10,0);
}

int sys_time()
{
	return SYS(0x11,0);
}

int sys_system(char *cmd, int cmd_len)
{
	angel[0] = (unsigned long)cmd;
	angel[1] = (unsigned long)cmd_len;
	return SYS(0x12,angel);
}

int sys_errno()
{
	return SYS(0x13,0);
}

int sys_get_cmdline(char *buffer, int buf_len)
{
	angel[0] = (unsigned long)buffer;
	angel[1] = (unsigned long)buf_len;
	return SYS(0x15,angel);
}

int sys_heapinfo(unsigned char *heap)
{
	angel[0] = (unsigned long)heap;
	return SYS(0x16,angel);
}

int sys_elapsed(long *lo, long *hi)
{
	SYS(0x30,angel);
	*lo = angel[0];
	*hi = angel[1];
}

int sys_tickfreq()
{
	return SYS(0x31,0);
}

int __gccmain()
{
}

⌨️ 快捷键说明

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