add version : 1.4
This commit is contained in:
parent
81bae90808
commit
60fee74595
|
|
@ -0,0 +1,254 @@
|
||||||
|
/****************************************************************
|
||||||
|
* *
|
||||||
|
* pburn - eprom programmer *
|
||||||
|
* *
|
||||||
|
* pb1.command.c : wega p8000/16-bit-teil *
|
||||||
|
* *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#define EOF "\n\n*** end of file\n"
|
||||||
|
#define re1 "\n\nread source promtyp"
|
||||||
|
#define cte "\n\nchange to destination promtyp"
|
||||||
|
#define rtr "\nready to read?"
|
||||||
|
#define rtc "\nready to copy?"
|
||||||
|
#define rtv "\nready to verify?"
|
||||||
|
#define des "destination "
|
||||||
|
#define sou "source "
|
||||||
|
#define npr "change to next prom?"
|
||||||
|
#define npl "change to next prom low_address?"
|
||||||
|
#define nph "change to next prom high_address?"
|
||||||
|
#define per "prom erased\n"
|
||||||
|
#define pne "prom not erased\n"
|
||||||
|
#define true 1
|
||||||
|
#define false 0
|
||||||
|
|
||||||
|
extern int qflag, errflag, warning, mofy, answer, command, eof, next;
|
||||||
|
extern int tpe1, tpe2;
|
||||||
|
extern char bre, progbuf[0x2000];
|
||||||
|
extern char namee1[20], namee2[20], cmdbuf[100];
|
||||||
|
extern unsigned begadre1, begadre2, lange1, lange2, begadrf;
|
||||||
|
|
||||||
|
/* p: programming eprom
|
||||||
|
------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
program()
|
||||||
|
{
|
||||||
|
do { do {printf ("\n%s",sou);
|
||||||
|
outoptf(); /*ausgabe filename [options]:*/
|
||||||
|
inoptf(); /*eingabe filename [options]*/
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
openfile();
|
||||||
|
}while (errflag==true);
|
||||||
|
do
|
||||||
|
{printf ("%s",des);
|
||||||
|
outopte(); /*ausgabe eprom [options]*/
|
||||||
|
inopte(); /*eingabe eprom [options]*/
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
answer=' ';
|
||||||
|
do
|
||||||
|
{ready(); /*Ready: .....*/
|
||||||
|
if (qflag==true) return;
|
||||||
|
if (mofy==false) readfile();
|
||||||
|
if (errflag==true) {if (qflag==true) return;
|
||||||
|
else {errflag=false;
|
||||||
|
answer=' ';
|
||||||
|
continue;}}
|
||||||
|
if (warning==true) {qflag=true; return;}
|
||||||
|
if (eof==true) {qflag=true; printf ("%s",EOF); return;}
|
||||||
|
if (answer=='y') progprom();
|
||||||
|
else if (answer=='v') verify();
|
||||||
|
else if (answer=='m') modify();
|
||||||
|
else if (answer=='l') {listbuf('f',begadre1,lange1,progbuf);
|
||||||
|
mofy=true;}
|
||||||
|
else if (answer=='t') {crc ('f',progbuf,lange1);
|
||||||
|
mofy=true;}
|
||||||
|
}while (errflag==false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* l: listing eprom
|
||||||
|
t: crc-test eprom
|
||||||
|
---------------------- */
|
||||||
|
|
||||||
|
list_crc()
|
||||||
|
{
|
||||||
|
bre='s';
|
||||||
|
do
|
||||||
|
{printf ("\n%s",sou);
|
||||||
|
outopte();
|
||||||
|
inopte();
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
answer=' ';
|
||||||
|
do
|
||||||
|
{ready();
|
||||||
|
if (qflag==true) return;
|
||||||
|
readprom('c',tpe1,begadre1,lange1,progbuf);
|
||||||
|
if (errflag==true) {if (qflag==true) return;
|
||||||
|
else {errflag=false;
|
||||||
|
answer=' ';
|
||||||
|
continue;}}
|
||||||
|
if (command=='l') listprom();
|
||||||
|
else {crcprom();
|
||||||
|
if (warning==0) printf ("%s",per);
|
||||||
|
else printf ("%s",pne);}
|
||||||
|
}while (errflag==false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* f: eprom to file
|
||||||
|
--------------------- */
|
||||||
|
|
||||||
|
file()
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (next==true) {switch (bre)
|
||||||
|
{
|
||||||
|
case 's': printf ("\n%s",npr); break;
|
||||||
|
case 'l': printf ("\n%s",npl); break;
|
||||||
|
case 'h': printf ("\n%s",nph); break;
|
||||||
|
}
|
||||||
|
gets (cmdbuf);
|
||||||
|
if (cmdbuf[0] != 'y' || cmdbuf[1] != '\0') {qflag=true;
|
||||||
|
return;}}
|
||||||
|
do
|
||||||
|
{printf ("\n%s",sou);
|
||||||
|
outopte();
|
||||||
|
inopte();
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
if (next==false) {
|
||||||
|
do
|
||||||
|
{printf ("%s",des);
|
||||||
|
outoptf();
|
||||||
|
inoptf();
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
answer=' ';
|
||||||
|
}
|
||||||
|
do
|
||||||
|
{ready1();
|
||||||
|
if (qflag==true) return;
|
||||||
|
if (mofy==false) {readprom (' ',tpe1,begadre1,lange1,progbuf);
|
||||||
|
if (errflag==true) {if (qflag==true) return;
|
||||||
|
else {errflag=false;
|
||||||
|
answer=' ';
|
||||||
|
continue;}}}
|
||||||
|
if (answer=='y') {promfile(); mofy=false;
|
||||||
|
if (warning==true) {qflag=true; return;}
|
||||||
|
next=true;}
|
||||||
|
else if (answer=='l') {listprom(); mofy=true;}
|
||||||
|
else if (answer=='m') modprom();
|
||||||
|
}while ((errflag==false && next==false) || mofy==true);
|
||||||
|
}while (errflag==false && next==true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* b: bytemode eprom
|
||||||
|
---------------------- */
|
||||||
|
|
||||||
|
bytemode()
|
||||||
|
{
|
||||||
|
bre='s';
|
||||||
|
do
|
||||||
|
{printf ("\n%s",sou);
|
||||||
|
outopte();
|
||||||
|
inopte();
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
answer=' ';
|
||||||
|
do
|
||||||
|
{ready1();
|
||||||
|
if (qflag==true) return;
|
||||||
|
byte();
|
||||||
|
}while (errflag==false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* c: copy eprom's
|
||||||
|
-------------------- */
|
||||||
|
|
||||||
|
copy()
|
||||||
|
{
|
||||||
|
int c, answer1;
|
||||||
|
|
||||||
|
bre='s';
|
||||||
|
do
|
||||||
|
{printf ("\n%s",sou);
|
||||||
|
outopte();
|
||||||
|
inopte();
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
tpe2=tpe1;
|
||||||
|
lange2=lange1;
|
||||||
|
begadre2=begadre1;
|
||||||
|
for (c=0;c<20;c++) namee2[c]=namee1[c];
|
||||||
|
do
|
||||||
|
{printf ("%s",des);
|
||||||
|
outopte();
|
||||||
|
inopte();
|
||||||
|
if (tpe1==0 && (begadre1 != 0 || lange1 != 0x400)) {warning=11; outwar();
|
||||||
|
begadre1=0; lange1=0x400;}
|
||||||
|
if (qflag==true) return;
|
||||||
|
}while (errflag==true);
|
||||||
|
|
||||||
|
if (lange1<lange2) lange2=lange1;
|
||||||
|
else lange1=lange2;
|
||||||
|
|
||||||
|
c=tpe1; tpe1=tpe2; tpe2=c;
|
||||||
|
c=lange1; lange1=lange2; lange2=c;
|
||||||
|
c=begadre1; begadre1=begadre2; begadre2=c;
|
||||||
|
for (c=0;c<20;c++) {answer=namee1[c];
|
||||||
|
namee1[c]=namee2[c];
|
||||||
|
namee2[c]=answer;}
|
||||||
|
answer=' ';
|
||||||
|
answer1=' ';
|
||||||
|
do{
|
||||||
|
ready1();
|
||||||
|
if (qflag==true) return;
|
||||||
|
if (mofy==false) {if (answer!='r')
|
||||||
|
{printf ("%s %s",re1,rtr);
|
||||||
|
gets (cmdbuf);
|
||||||
|
if (cmdbuf[1]!='\0') continue;
|
||||||
|
else c=cmdbuf[0];
|
||||||
|
if (c!='y') continue;
|
||||||
|
readprom (' ',tpe1,begadre1,lange1,progbuf);
|
||||||
|
if (errflag==true) {if (qflag==true) return;
|
||||||
|
else {errflag=false;
|
||||||
|
answer=' ';
|
||||||
|
continue;}}}}
|
||||||
|
|
||||||
|
if (answer=='m') {modprom(); continue;}
|
||||||
|
if (answer=='l') {listprom(); mofy=true; continue;}
|
||||||
|
if (answer=='r') {if (answer1==' ') {answer1=answer;
|
||||||
|
continue;}}
|
||||||
|
do{
|
||||||
|
errflag=false;
|
||||||
|
printf ("%s",cte);
|
||||||
|
switch (answer) {
|
||||||
|
case 'y': printf ("%s",rtc); break;
|
||||||
|
case 'v': printf ("%s",rtv); break;
|
||||||
|
case 'r': if (answer1=='y') printf ("%s",rtc);
|
||||||
|
else if (answer1=='v') printf ("%s",rtv);
|
||||||
|
break;
|
||||||
|
default : break;
|
||||||
|
}
|
||||||
|
gets (cmdbuf);
|
||||||
|
if (cmdbuf[1]!='\0') continue;
|
||||||
|
else c=cmdbuf[0];
|
||||||
|
if (c!='y') continue;
|
||||||
|
if (answer=='y') {copyprom(); mofy=false;}
|
||||||
|
else if (answer=='v') {verifyprom(); mofy=false;}
|
||||||
|
else if (answer=='r') {if (answer1=='y') copyprom();
|
||||||
|
else if (answer1=='v') verifyprom();}
|
||||||
|
answer1=answer;
|
||||||
|
}while (errflag==true);
|
||||||
|
}while (errflag==false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue