- 注册时间
- 2005-2-11
- 最后登录
- 1970-1-1
|
- 原型 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[i]<<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[i]<0||buf[i]>2047)bad++;}
- return(bad-1);
- }
- //////////////////////////////////////////////////////////////////////////
复制代码 |
|