易码技术论坛

 找回密码
 加入易码
搜索
查看: 244693|回复: 7

求tc800的system的所有函数的资料和用法

[复制链接]
发表于 2007-7-2 18:21:48 | 显示全部楼层
原型 long System.RamRead(char data[],long offset,int size)

功能 读取地址为offset的size字节的内容到data中。offset的1,2字节是段内偏移,3字节是段号
0x00000000--0x00008000:RAM
0x00008000--0x00028000:==0x00038000--0x00058000
0x00028000--0x00030000:RAM
0x00030000--0x00130000:Nor
0x00033000--0x00033010:ggv TC800
0x00120000--0x00130000:文件系统
SuperBlock:偏移11 ,大小100
映射表  :偏移800,大小1000
fat表  :偏移1000,大小E000
///////////////////////////////////////应用///////////////////////
long getngffs()
{char buf[12];
System.RamRead(buf,0x120008,12);
if(buf[0]!=0xff)return(0x120000);else return(0x128000);
}
void loaddir(char &dir[])
{char buf[60];
strcpy(buf,dir);
if(strcmp(buf,"/")){strcat(buf,"/");ChDir(buf);}
else ChDir("/LAVA2");
}
int findfile(int start,int n,char &buf[],char &dir[])
{int i;
loaddir(dir);memmove(buf,(start<<4)+0xAA62,n<<4);if(!start)strcpy(buf,"..");ChDir(dir);
for(i=0;i<n;i++){if(buf[i<<4]==0xff)break;}
return(i);
}
int getfilenum(char &dir[])
{int i;
loaddir(dir);
for(i=1;*((i<<4)+0xAA62)!=0xff;i++);
ChDir(dir);return(i);
}
void getinode(char &attr[],char &name[],char &dir[])
{long addrs,offset;
int id,i,j;
char buf[10][32];
loaddir(dir);for(addrs=0xAA72;strcmp(addrs,name);addrs=addrs+16);id=(int *)(addrs-2);ChDir(dir);
offset=getngffs()+0x1000;
for(i=0;i<205;i++)
{System.RamRead(buf,offset+i*160,320);
  for(j=0;j<10;j++){if(id==(int *)buf[j]&&buf[j][4]==0xc0){memmove(attr,buf[j],32);return;}}
}
}
void getver(char &ver[])
{long offset;
offset=getngffs();
System.RamRead(ver,offset+8,12);ver[12]=0;
}
long diskcheck()
{long offset;
int i,j,size;
char buf[256];
offset=getngffs();System.RamRead(buf,offset+0x11,256);
for(i=size=0;i<256;i++){for(j=0;j<8;j++){if((buf<<j)&0x80)size++;}}
return(size<<4);
}
long diskbad()
{long offset;
int i,bad,buf[2048];
offset=getngffs();System.RamRead(buf,offset+0x800,4096);
for(i=bad=0;i<2048;i++){if(buf<0||buf>2047)bad++;}
return(bad-1);
}
//////////////////////////////////////////////////////////////////////////
发表于 2007-7-2 18:24:01 | 显示全部楼层
其他的你可以问一下yan
发表于 2007-7-3 09:58:16 | 显示全部楼层
这是yan早期发布的

现在yan应该研究的更透了吧
期待yan来详细讲解一次

TC800系统函数分析.txt

5 KB, 下载次数: 319

发表于 2007-7-3 10:01:04 | 显示全部楼层
引用第3楼behaizi2007-07-03 09:58发表的“”:
这是yan早期发布的

现在yan应该研究的更透了吧
期待yan来详细讲解一次
同样期待中.....
发表于 2007-7-3 12:26:27 | 显示全部楼层
我的TC800的资料就这些了。我的TC800早坏了,电脑的资料也丢了。
 楼主| 发表于 2007-7-3 13:05:14 | 显示全部楼层
1.System.GetPID()怎么用?
2.System.ComSetTimer怎么用?
3.原型 long System.ComPutc(char ch)返回值是什么?
4.System.ComWaitReady怎么用?有返回吗
发表于 2007-7-4 11:56:16 | 显示全部楼层
有些可以去研究下
YAN的《星星影院》和《闪存管理器》
不少都用到了
开源的
 楼主| 发表于 2007-7-2 18:20:48 | 显示全部楼层 |阅读模式
  求tc800的system的所有函数的资料和用法
哪位好心的朋友研究过?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-7-4 18:47 , Processed in 0.015575 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表