📄 mem_iacxl10_2004_3_16.cpp
字号:
#include "mem_IAcxl10_2004_3_16.h"#include <iostream.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>memarg_stru rst;void mem(unsigned long addr,unsigned long* data,bool nrw,int mas,bool *){ unsigned long temp,half; //printf("in mem(),addr=0x%x,data=0x%x,nrw=%d,mas=%d\n",addr,*data,nrw,mas); temp = (*data);//cout<<"mas="<<hex<<mas<<" addr="<<addr<<endl; if( nrw ) { switch( mas ) { case 0 : rst.memptr[addr] = ((char)(*data))&0xff; break; case 1: if( (addr%4) > 1 ) { temp = (temp << 16); half = (*((unsigned long*)rst.memptr + addr/4) & 0xffff); half = half + temp; } else { half = (*((unsigned long*)rst.memptr + addr/4) & 0xffff0000); half = half + temp; } // if( addr == 0x1fff8e ) cout<<"half="<<hex<<half<<endl; *((unsigned long*)rst.memptr + addr/4) = half; break; case 2: *((unsigned long*)rst.memptr + addr/4) = temp; break; default: break; } } else { switch( mas ) { case 0 : (*data) =rst.memptr[addr]&0xff; // if( addr == 0x1ffc8b ) cout<<"byte "<<hex<<(*data)<<endl; break; case 1 : if( (addr%4) > 1 ) (*data) = *((unsigned long*)rst.memptr + addr/4) >> 16; else (*data) = *((unsigned long*)rst.memptr + addr/4); (*data) = (*data) & 0xffff; break; case 2: (*data) = *((unsigned long*)rst.memptr + addr/4); break; default: break; } } } memarg_stru getmem(){ rst.memptr = new char[2*1024*1024]; rst = 2*1024*1024; return rst;}void load(char* filename){ FILE* fp; char* p; p = rst.memptr ; fp = fopen(filename,"r"); if( fp == NULL ) { cout<<"Can't open file "<<filename<<": No such file or directory"<<endl; exit(0); } fseek(fp,0x8000,SEEK_SET); fread(p,0x19200,0x19200,fp); // fclose(fp); // fseek(fp,0x34,SEEK_SET); // fread(p,0x37,0x37,fp);}/*void load(char *program,unsigned long addr,int size){ FILE *fp; char *p; int i; //printf("in load(),addr=0x%x\n",addr); p=rst.memptr+addr; fp=fopen(program,"r"); if(fp == NULL) { printf("cannot open file %s\n",program); return; } fseek(fp,0x8000+addr,SEEK_SET); fread(p,sizeof(char),size,fp); fclose(fp);}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -