69,371
社区成员
发帖
与我相关
我的任务
分享
/********************************************************************************************/
loopkey:
key=bioskey(0);
if(key==KEY_ALT_X)
{
window(1,1,80,25);
textbackground(0);
textcolor(15);
clrscr();
gotoxy(1,1);
cprintf("Bye Bye!!");
exit(0);
}
if(key==KEY_TAB &&( key0==0 || key00==1))
{
key00=0;
key0=1;
bank++;
bank=bank%8;
goto loop;
}
if(key==KEY_SHIFT_TAB)
{
bank--;
bank=(bank+8)%8;
goto loop;
}
if(key==KEY_B)
{ gettext(1,1,80,25,windowbuff);
gettext(68,5,79,15,bankbuff);
window(69,5,78,15);
loopbankbuff: textbackground(4);
clrscr();
Drawing_Frame(1,1,10,11);
gotoxy(3,2);
cprintf("Bank 0");
gotoxy(3,3);
cprintf("Bank 1");
gotoxy(3,4);
cprintf("Bank 2");
gotoxy(3,5);
cprintf("Bank 3");
gotoxy(3,6);
cprintf("Bank 4");
gotoxy(3,7);
cprintf("Bank 5");
gotoxy(3,8);
cprintf("Bank 6");
gotoxy(3,9);
cprintf("Bank 7");
gotoxy(3,2+bank);
textbackground(2);
cprintf("Bank %d",bank);
textbackground(4);
key=bioskey(0);
if(key==KEY_DOWN)
{
bank++;
bank=bank%8;
goto loopbankbuff;
}
if(key==KEY_UP)
{
bank--;
bank=(bank+8)%8;
goto loopbankbuff;
}
if(key==KEY_ESC)
{
puttext(68,5,79,15,bankbuff);
window(1,1,80,25);
puttext(1,1,80,25,windowbuff);
}
if(key==KEY_ENTER)
{
puttext(68,5,79,15,bankbuff);
window(1,1,80,25);
puttext(1,1,80,25,windowbuff);
goto loop;
}
}
if(key==KEY_R)
{
goto loop;
}
if(key==KEY_S)
{
cursor(1);
gettext(1,1,80,25,windowbuff1);
gotoxy(40,2);
textbackground(2);
cprintf("File name: ");
gotoxy(50,2);
i=0;
key=bioskey(0);
scanf("%s",str);
strcat(str,".txt");
textbackground(1);
fp=fopen(str,"wt+");
m=0;
for(j=0;j<=7;j++)
{
for(i=0; i<256; i++)
{
loading_write(57,22,22,256*8,m++);
WaitIBE();
outportb(port2,0x42);
WaitIBE();
outportb(port1,j);
WaitIBE();
outportb(port2,0x4E);
WaitIBE();
outportb(port1,i);
WaitOBF();
eeprom[i][j]=inportb(port1);
}
}
for(j=0;j<=7;j++)
{
fprintf(fp,"Bank %d\n***********************************************\n",j);
for(i=0;i<256;i++)
{
fprintf(fp,"%02X ",eeprom[i][j]);
if((i+1)%16==0)
fprintf(fp,"\n");
}
fprintf(fp,"\n\n\n");
}
for(j=0;j<=7;j++)
{
fprintf(fp,"Bank %d\n***********************\n",j);
for(i=0;i<256;i++)
{
fprintf(fp,"%c",eeprom[i][j]);
if((i+1)%16==0)
fprintf(fp,"\n");
}
fprintf(fp,"\n\n\n");
}
fclose(fp);
puttext(1,1,80,25,windowbuff1);
cursor(0);
}
/********************************************************************************************/
loop:
gotoxy(3,2);
textbackground(1);
cprintf("Current Bank:[%d] ",bank);
/*清空eeprom輸出區域*/
textbackground(1);
textcolor(15);
x=2;
y=5;
for(i=0;i<256;i++)
{
gotoxy(x+=3,y);
cprintf(" ");
if((i+1)%16==0)
{
y++;
x=2;
}
}
x=54;
y=5;
for(i=0;i<256;i++)
{
gotoxy(++x,y);
cprintf(".");
if((i+1)%16==0)
{
y++;
x=54;
}
}
cursor(0);
clear_buffer();
for(i=0; i<256; i++)
{
key0=bioskey(1);
loading(57,22,22,256,i+1);
WaitIBE();
outportb(port2,0x42);
WaitIBE();
outportb(port1,bank);
WaitIBE();
outportb(port2,0x4E);
WaitIBE();
outportb(port1,i);
WaitOBF();
eeprom[i][bank]=inportb(port1);
/* eeprom[i][bank]=i; */
gotoxy(17,2);
cprintf("%d",bank);
}
key00=1;
/*輸出eeprom數據*/
x=2;
y=5;
for(i=0;i<256;i++)
{
gotoxy(x+=3,y);
cprintf("%02X",eeprom[i][bank]);
if((i+1)%16==0)
{
y++;
x=2;
}
}
x=54;
y=5;
for(i=0;i<256;i++)
{
gotoxy(++x,y);
if(eeprom[i][bank]==0x20 || eeprom[i][bank]==0x00 )
cprintf(".");
else
cprintf("%c",eeprom[i][bank]);
if((i+1)%16==0)
{
y++;
x=54;
}
}
cursor(0);
#define port1 0x62
#define port2 0x66
#define KEY_TAB 0x0f09
#define KEY_SHIFT_TAB 0xf00
#define KEY_UP 0x4800
#define KEY_DOWN 0x5000
#define KEY_LEFT 0x4b00
#define KEY_RIGHT 0x4d00
#define KEY_E 0x1265
#define KEY_ALT_X 0x2d00
#define KEY_ESC 0x11b
#define KEY_PGUP 0X4900
#define KEY_PGDOWN 0X5100
#define KEY_F3 0X3D00
#define KEY_SPACE 0X3920
#define KEY_B 0X3062
#define KEY_ENTER 0X1c0d
#define KEY_R 0X1372
#define KEY_S 0X1f73
#include<stdio.h>
#include<conio.h>
#include<dos.h>
void main()
{
void WaitIBE(void);
void WaitOBF(void);
void clear_buffer(void);
void reading_print(int bank);
void Drawing_Frame0(int start_x,int start_y,int end_x,int end_y);
void Drawing_Frame(int start_x,int start_y,int end_x,int end_y);
void Drawing_Frame1(int start_x,int start_y,int end_x,int end_y,int y1,int y2);
void loading(int x,int y,int len,int max,int z);
void move_cursor(int window_start_x,int window_start_y,int window_end_x,int window_end_y,int Continuous_length,int DisContinuous_length,int key);
void cursor(int i);
void auto_move_cursor(int window_start_x,int window_start_y,int window_end_x,int window_end_y,int Continuous_length,int DisContinuous_length);
char ASCI_16(char a);
void loading_write(int x,int y,int len,int max,int z);
int i,j,x,y,x1,y1,bank=0,key,keyascii,keyF3_Num=0,key0,key00=0;
int key_pass,data;
long m;
char *eeprom[256][8],*eepromModify[256][8];
char bankbuff[20*10*2],file_name[15];
char *str='\0',*str1=".txt";
char windowbuff[80*25*2],windowbuff1[80*25*2];
FILE *fp;
window(1,1,80,25);
textbackground(1);
textcolor(15);
clrscr();
Drawing_Frame1(1,1,80,24,3,21);
gotoxy(3,2);
cprintf("Current Bank:[%d] ",bank);
gotoxy(3,22);
textcolor(14);
cprintf("[Alt+X]:Exit [ESC]:Cancel Shift+[Tab]:switch");
textcolor(15);
gotoxy(3,23);
textcolor(14);
cprintf("[E]:Edit [R]:Refresh [B]:Bank Menu [S]:Save [L]:Load");
textcolor(15);
gotoxy(1,25);
textbackground(4);
for(i=1;i<80;i++)
cprintf(" ");
textbackground(1);
gotoxy(3,25);
textbackground(4);
cprintf("Eeprom R/W tool v1.0 %c 2014/11/04 %c Created by CIC BIOS Team",179,179,179,179);
textbackground(1);
x=2;
y=4;
for(i=0;i<=0x0f;i++)
{
gotoxy(x+=3,y);
textcolor(11);
cprintf("%02X ",i);
textcolor(15);
}
x=2;
y=5;
for(i=0;i<=0xff;i++)
{
if(i%16==0)
{
gotoxy(x,y++);
textcolor(11);
cprintf("%02X ",i);
textcolor(15);
}
}
x=53;
y=4;
for(i=0;i<=16;i++)
{
gotoxy(x,y++);
textcolor(9);
putchar(0xb3);
textcolor(15);
}