?? mem_test.c
字號:
#include <graphics.h>
#include <conio.h>
#include "isp1362.h"
#include "cheeyu.h"
#include <stdlib.h>
unsigned int m_atl_size;
unsigned int m_ptl_size;
unsigned int m_int_size;
unsigned int ptl0_color=LIGHTGREEN;
unsigned int ptl1_color=YELLOW;
unsigned int atl_color =LIGHTBLUE;
unsigned int int_color =LIGHTMAGENTA;
unsigned int not_used_color =WHITE;
unsigned int ptl0_begin;
unsigned int ptl1_begin;
unsigned int int_begin;
unsigned int atl_begin;
unsigned int not_used_begin;
void mem_init_mem(void)
{
m_atl_size=r16(HcATLLen);
m_ptl_size=r16(HcPTLLen);
m_int_size=r16(HcINTLen);
ptl0_begin=0;
ptl1_begin=m_ptl_size/2;
int_begin=ptl1_begin+m_ptl_size/2;
atl_begin=int_begin+m_int_size/2;
not_used_begin=atl_begin+m_atl_size/2;
}
unsigned int get_border(int px, int py)
{
unsigned int loc;
unsigned int bc;
if(px==-1) {return(WHITE);}
loc=(py*64)+px+1;
if(loc>ptl0_begin) {bc=ptl0_color;}
if(loc>ptl1_begin) {bc=ptl1_color;}
if(loc>int_begin) {bc=int_color;}
if(loc>atl_begin) {bc=atl_color;}
if(loc>not_used_begin) {bc=not_used_color;}
return(bc);
}
void big_map(int posx,int posy,int pcolor)
{
int factorx=9;
int factory=9;
int initx=10,inity=20;
int nx,ny;
int cx,cy;
int dcolor;
pcolor=pcolor&0x00FF;
nx=factorx*posx;
ny=factory*posy;
cy=0;
do
{
cx=0;
do
{
if(cx==0 || cx==(factorx-1) ) {dcolor=get_border(posx,posy);}
else if(cy==0 || cy==(factory-1) ) {dcolor=get_border(posx,posy);}
else {dcolor=pcolor;}
putpixel(initx+nx+cx,inity+ny+cy,dcolor);
cx++;
}
while(cx<factorx);
cy++;
}
while(cy<factory);
}
void mem_map(void)
{
unsigned int word_cnt;
unsigned int test_word,test_size;
int posy=0;
char mbuf[60];
unsigned int buf_image[4096];
unsigned int cnt;
cnt=0;
do
{
buf_image[cnt]=cnt;
cnt++;
}
while(cnt<2048);
direct_read(buf_image);
cleardevice();
sprintf(mbuf,"Memory Map of ISP1362");
outtextxy(10,10,mbuf);
word_cnt=0;
do
{
test_word=buf_image[word_cnt];
big_map(word_cnt%64,posy,test_word);
word_cnt++;
if(word_cnt%64==0) {if(posy%8==0){big_map(-1,posy,WHITE);} posy++;}
}
while(word_cnt<(2048));
setcolor(ptl0_color);
sprintf(mbuf,"PTL 0");
outtextxy( 10,330,mbuf);
setcolor(ptl1_color);
sprintf(mbuf,"PTL 1");
outtextxy(110,330,mbuf);
setcolor(int_color);
sprintf(mbuf,"INT ");
outtextxy(210,330,mbuf);
setcolor(atl_color);
sprintf(mbuf,"ATL ");
outtextxy(310,330,mbuf);
setcolor(not_used_color);
sprintf(mbuf,"Not Used");
outtextxy(410,330,mbuf);
setcolor(YELLOW);
}
void r_test(void)
{
unsigned long cnt,error=0;
unsigned int test_size=2048;
unsigned int rdata[2048];
unsigned int verify[2048];
unsigned int *r_ptr;
unsigned int *v_ptr;
r_ptr=rdata;
v_ptr=verify;
cnt=0;
do
{
rdata[cnt]=random(0xFFFF);
cnt++;
}
while(cnt<test_size);
r_ptr=rdata;
direct_write(r_ptr);
v_ptr=verify;
direct_read(v_ptr);
cnt=0;
do
{
if(rdata[cnt]!=verify[cnt])
{
error++;
}
else{}
cnt++;
}
while(cnt<2048);
setbkcolor(BLUE);
e_box(320,240,200,100);
gotoxy(31,15);
printf("4Kbytes Random Test");
gotoxy(31,17);
printf("Total error = %5ld",error);
getch();
mem_map();
}
void erase(void)
{
erase_all();
setbkcolor(BLUE);
e_box(320,240,200,100);
gotoxy(31,15);
printf("8Kbytes Host Memory");
gotoxy(31,17);
printf("Resetted to '0'");
getch();
mem_map();
}
unsigned int torture(void)
{
unsigned long cnt,error=0;
unsigned int test_size=4096;
unsigned int rdata[4096];
unsigned int verify[4096];
unsigned int *r_ptr;
unsigned int *v_ptr;
cnt=0;
do
{
rdata[cnt]=random(0xFFFF);
cnt++;
}
while(cnt<test_size);
r_ptr=rdata;
direct_write(r_ptr,ram_size/2);
v_ptr=verify;
direct_read(v_ptr,ram_size/2);
cnt=0;
do
{
if(rdata[cnt]!=verify[cnt])
{
error++;
}
else{}
cnt++;
}
while(cnt<2048);
return(error);
}
unsigned int torture_atl(void)
{
unsigned long cnt,error=0;
unsigned int test_size=4096;
unsigned int rdata[4096];
unsigned int verify[4096];
unsigned int *r_ptr;
unsigned int *v_ptr;
cnt=0;
do
{
rdata[cnt]=random(0xFFFF);
cnt++;
}
while(cnt<test_size);
r_ptr=rdata;
write_atl(r_ptr,ram_size/2);
v_ptr=verify;
read_atl(v_ptr,ram_size/2);
cnt=0;
do
{
if(rdata[cnt]!=verify[cnt])
{
error++;
}
else{}
cnt++;
}
while(cnt<2048);
return(error);
}
void torture_test(void)
{
unsigned long int tcnt=1;
unsigned long int t_error=0;
unsigned int t_reply=0;
unsigned int user_in;
setbkcolor(BLUE);
e_box(335,260,340,240);
do
{
gotoxy(27,12);
printf("PIO Memory Wr/Rd ");
gotoxy(27,16);
printf("Torture Test %8ld",tcnt);
gotoxy(27,15);
printf("%4d bytes Host Memory",ram_size);
gotoxy(27,17);
printf("Total Transfer : %7f MBytes",(float)(tcnt*(ram_size>>10))/1000);
t_reply=torture_atl();
if(t_reply!=0) {t_error++;}
gotoxy(27,18);
printf("Total Error = %8ld",t_error);
gotoxy(27,21);
printf("Press '1' to Stop");
tcnt++;
user_in=read_key(0);
}
while((tcnt<5000000)&(user_in!='1'));
}
void zoom(void)
{
unsigned int user_in;
unsigned int mouse_data[3];
unsigned int cell_x,cell_y;
unsigned int posx,posy;
unsigned int sram[4096];
unsigned int linear_loc;
clrscr();
cleardevice();
direct_read(sram);
mem_map();
cursor_on();
do
{
get_sysmouse(mouse_data);
posx=mouse_data[1];
posy=mouse_data[2];
cell_x=(posx-10)/9;
cell_y=(posy-20)/9;
linear_loc=(cell_y*64)+cell_x;
if((linear_loc<2041)&&(cell_x<64))
{
gotoxy(1,23);
printf("Word Addr(HEX) %4X %4X",linear_loc,linear_loc+1);
printf(" %4X %4X",linear_loc+2,linear_loc+3);
printf(" %4X %4X",linear_loc+4,linear_loc+5);
printf(" %4X %4X",linear_loc+6,linear_loc+7);
printf(" %4X %4X",linear_loc+8,linear_loc+9);
printf(" %4X %4X",linear_loc+10,linear_loc+11);
gotoxy(1,24);
printf("Word Addr(DEC) %4d %4d",linear_loc,linear_loc+1);
printf(" %4d %4d",linear_loc+2,linear_loc+3);
printf(" %4d %4d",linear_loc+4,linear_loc+5);
printf(" %4d %4d",linear_loc+6,linear_loc+7);
printf(" %4d %4d",linear_loc+8,linear_loc+9);
printf(" %4d %4d",linear_loc+10,linear_loc+11);
gotoxy(1,25);
printf("Memory Content %4X %4X",sram[linear_loc],sram[linear_loc+1]);
printf(" %4X %4X",sram[linear_loc+2],sram[linear_loc+3]);
printf(" %4X %4X",sram[linear_loc+4],sram[linear_loc+5]);
printf(" %4X %4X",sram[linear_loc+6],sram[linear_loc+7]);
printf(" %4X %4X",sram[linear_loc+8],sram[linear_loc+9]);
printf(" %4X %4X",sram[linear_loc+10],sram[linear_loc+11]);
outtextxy(20,450,"Press 1 to exit memory ZOOM");
}
user_in=read_key(0);
}
while(user_in!='1');
clrscr();
cleardevice();
mem_map();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -