📄 angel.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 + -