add version : 2.3
This commit is contained in:
parent
45c1780148
commit
ffc49bb459
|
|
@ -2,17 +2,19 @@
|
||||||
* *
|
* *
|
||||||
* pburn - eprom programmer *
|
* pburn - eprom programmer *
|
||||||
* *
|
* *
|
||||||
* pb1.cmdline.c : wega p8000/16-bit-teil *
|
* pb2.cmdline.c : wega p8000/16-bit-teil *
|
||||||
* *
|
* *
|
||||||
****************************************************************/
|
****************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#define of1 "filename [-w] [-D] [-os hex] : "
|
#define of1 "filename [-w] [-D] [-B] [-os hex] : "
|
||||||
#define of2 "filename [-w] [-D] [-ose hex]: "
|
#define of2 "filename [-w] [-D] [-B] [-ose hex]: "
|
||||||
#define op1 "promtype [-ol hex] : "
|
#define op1 "promtype [-ol hex] : "
|
||||||
#define op2 "promtype : "
|
#define op2 "promtype : "
|
||||||
|
#define op3 "promtype [-ol hex] [-V volt] [-S] : "
|
||||||
|
#define op4 "promtype [-V volt] [-S] : "
|
||||||
#define des " destination "
|
#define des " destination "
|
||||||
#define sou " source "
|
#define sou " source "
|
||||||
|
|
||||||
|
|
@ -20,12 +22,18 @@
|
||||||
#define false 0
|
#define false 0
|
||||||
|
|
||||||
#define rdy "\nready to "
|
#define rdy "\nready to "
|
||||||
#define rpr "\007program:\n"
|
#define vpp1 "25 V)"
|
||||||
|
#define vpp2 "21 V)"
|
||||||
|
#define vpp3 "12.5 V)"
|
||||||
|
#define vpp4 "free V)"
|
||||||
|
#define rph "(High Speed Program Mode Vpp="
|
||||||
|
#define rps "(Standard Speed Program Mode Vpp="
|
||||||
|
#define rpr "\007program "
|
||||||
#define rli "list:\n"
|
#define rli "list:\n"
|
||||||
#define rte "crc:\n"
|
#define rte "crc:\n"
|
||||||
#define rby "bytemode:\n"
|
#define rby "bytemode "
|
||||||
#define rfi "file:\n"
|
#define rfi "file:\n"
|
||||||
#define rco "\007copy:\n"
|
#define rco "\007copy "
|
||||||
#define eprom "promtyp "
|
#define eprom "promtyp "
|
||||||
#define fle "file :"
|
#define fle "file :"
|
||||||
#define start "start"
|
#define start "start"
|
||||||
|
|
@ -59,12 +67,16 @@
|
||||||
#define war7 "code top or bottom rounded to 0x"
|
#define war7 "code top or bottom rounded to 0x"
|
||||||
#define war8 "data top or bottom rounded to 0x"
|
#define war8 "data top or bottom rounded to 0x"
|
||||||
#define war9 "prom not erased\n"
|
#define war9 "prom not erased\n"
|
||||||
#define war10 "is prom really 2732, not 2732a ?\n"
|
#define war10 "is prom really "
|
||||||
#define war11 "set address to 0x0000 and set length to 0x0400 for prom e2708\n"
|
#define war11 "set address to 0x0000 and set length to 0x0400 for prom e2708\n"
|
||||||
#define war12 "end of segment address\n"
|
#define war12 "end of segment address\n"
|
||||||
|
#define war13 "segment overlay\n"
|
||||||
|
#define war14 "display program error's Vcc=5 V\n"
|
||||||
|
#define war15 "program error Vcc=6 V\n"
|
||||||
|
#define war16 "program error Vcc=5 V\n"
|
||||||
|
|
||||||
extern int command, qflag, errflag, answer, mofy, offset256;
|
extern int command, qflag, errflag, answer, mofy, offset256;
|
||||||
extern char cmdbuf[100];
|
extern char cmdbuf[100], board;
|
||||||
|
|
||||||
/* global vereinbarungen */
|
/* global vereinbarungen */
|
||||||
|
|
||||||
|
|
@ -83,10 +95,10 @@ char bbre; /* back bre */
|
||||||
char sect; /* i/d-files
|
char sect; /* i/d-files
|
||||||
d-data
|
d-data
|
||||||
i-code */
|
i-code */
|
||||||
unsigned segnr; /* segment number */
|
long segnr; /* segment number */
|
||||||
unsigned begadrf; /* begin-adr. file */
|
long begadrf; /* begin-adr. file */
|
||||||
unsigned langf; /* laenge file */
|
long langf; /* laenge file */
|
||||||
unsigned entryf; /* entry-address file */
|
long entryf; /* entry-address file */
|
||||||
|
|
||||||
/* identifier eprom
|
/* identifier eprom
|
||||||
---------------- */
|
---------------- */
|
||||||
|
|
@ -96,22 +108,38 @@ int tpe1, tpe2; /* type eprom
|
||||||
1-e2716
|
1-e2716
|
||||||
7-e2732
|
7-e2732
|
||||||
8-e2732a
|
8-e2732a
|
||||||
9-e2764 */
|
9-e2764
|
||||||
unsigned begadre1, begadre2; /* begin-adr. eprom */
|
10-e2764a
|
||||||
unsigned lange1, lange2; /* laenge eprom */
|
11-e27128
|
||||||
|
12-e27128a
|
||||||
|
13-e27256
|
||||||
|
15-e27512*/
|
||||||
|
long begadre1, begadre2; /* begin-adr. eprom */
|
||||||
|
long lange1, lange2; /* laenge eprom */
|
||||||
|
char Vpp; /* programmierspannung Vpp
|
||||||
|
1-25 V
|
||||||
|
2-21 V
|
||||||
|
3-12.5 V
|
||||||
|
4-free V*/
|
||||||
|
|
||||||
|
long V;
|
||||||
|
|
||||||
char bufopt[100];
|
char bufopt[100];
|
||||||
char *ptr;
|
char *ptr;
|
||||||
unsigned *pint;
|
long *pint;
|
||||||
unsigned prlang;
|
long prlang;
|
||||||
unsigned bbegadrf, bbegadre1, blangf, blange1;
|
long bbegadrf, bbegadre1, blangf, blange1;
|
||||||
char e2708[] ="e2708";
|
|
||||||
char e2716[] ="e2716";
|
|
||||||
char e2732[] ="e2732";
|
|
||||||
char e2764[] ="e2764";
|
|
||||||
char e2732a[]="e2732a";
|
|
||||||
|
|
||||||
|
char e0[] ="e2708";
|
||||||
|
char e1[] ="e2716";
|
||||||
|
char e7[] ="e2732";
|
||||||
|
char e8[] ="e2732a";
|
||||||
|
char e9[] ="e2764";
|
||||||
|
char e10[]="e2764a";
|
||||||
|
char e11[]="e27128";
|
||||||
|
char e12[]="e27128a";
|
||||||
|
char e13[]="e27256";
|
||||||
|
char e15[]="e27512";
|
||||||
|
|
||||||
/* ausgabe "filename [options]:"
|
/* ausgabe "filename [options]:"
|
||||||
----------------------------- */
|
----------------------------- */
|
||||||
|
|
@ -130,25 +158,31 @@ outopte()
|
||||||
else printf ("%s",op1);
|
else printf ("%s",op1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
outopte1()
|
||||||
|
{
|
||||||
|
if (command=='b') printf ("%s",op4);
|
||||||
|
else printf ("%s",op3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* eingabe filename [options]: " . . . "
|
/* eingabe filename [options]: " . . . "
|
||||||
----------------------------------------- */
|
----------------------------------------- */
|
||||||
|
|
||||||
int kennfo,kennfe,kennw,kennD,kenns;
|
int kennfo,kennfe,kennw,kennD,kenns,kennB;
|
||||||
inoptf()
|
inoptf()
|
||||||
{
|
{
|
||||||
bre='s';sect='i';segnr=begadrf=entryf=0;
|
bre='s';sect='i';segnr=begadrf=entryf=0;
|
||||||
qflag=false;
|
qflag=false;
|
||||||
errflag=false;
|
errflag=false;
|
||||||
bre='s';sect='i';segnr=0;begadrf=0;
|
bre='s';sect='i';segnr=0;begadrf=0;
|
||||||
kennw=0;kennD=0;kennfo=0;kenns=0;kennfe=0;
|
kennw=0;kennD=0;kennfo=0;kenns=0;kennfe=0,kennB=0;
|
||||||
gets(bufopt);
|
gets(bufopt);
|
||||||
for (ptr=bufopt;*ptr==' ';ptr++);
|
for (ptr=bufopt;*ptr==' ';ptr++);
|
||||||
if (*ptr=='\0'||*ptr=='-') {error=1; outerr(); return;}
|
if (*ptr=='\0'||*ptr=='-') {error=1; outerr(); return;}
|
||||||
if (*ptr=='q') {qflag=true;return;}
|
if (*ptr=='q') {qflag=true;return;}
|
||||||
sscanf (ptr,"%s",namef);
|
sscanf (ptr,"%s",namef);
|
||||||
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
||||||
if (*ptr=='\0') return;
|
if (*ptr=='\0') {plpfil(); return;}
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
do {
|
do {
|
||||||
|
|
@ -156,7 +190,7 @@ inoptf()
|
||||||
if (*ptr=='\0') {plpfil(); return;}
|
if (*ptr=='\0') {plpfil(); return;}
|
||||||
if (*ptr!='-') {error=1; outerr(); return;}
|
if (*ptr!='-') {error=1; outerr(); return;}
|
||||||
ptr++;
|
ptr++;
|
||||||
if (*ptr!='w'&&*ptr!='D'&&*ptr!='o'&&*ptr!='s'&&*ptr!='e') {error=1;outerr();return;}
|
if (*ptr!='w'&&*ptr!='D'&&*ptr!='o'&&*ptr!='s'&&*ptr!='e'&&*ptr!='B') {error=1;outerr();return;}
|
||||||
if (*ptr=='w') {if (kennw==0) {kennw=1;bre='l';}
|
if (*ptr=='w') {if (kennw==0) {kennw=1;bre='l';}
|
||||||
else {error=2;outerr();return;}
|
else {error=2;outerr();return;}
|
||||||
}
|
}
|
||||||
|
|
@ -172,14 +206,18 @@ inoptf()
|
||||||
if (*ptr=='e') {if (kennfe==0) {pint= &entryf;kennfe=1;}
|
if (*ptr=='e') {if (kennfe==0) {pint= &entryf;kennfe=1;}
|
||||||
else {error=2;outerr();return;}
|
else {error=2;outerr();return;}
|
||||||
}
|
}
|
||||||
|
if (*ptr=='B') {if (kennB==0) kennB=1;
|
||||||
|
else {error=2;outerr();return;}
|
||||||
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
} while (*(ptr-1)=='w'||*(ptr-1)=='D');
|
} while (*(ptr-1)=='w'||*(ptr-1)=='D'||*(ptr-1)=='B');
|
||||||
if (*ptr!=' ') {error=1;outerr();return;}
|
if (*ptr!=' ') {error=1;outerr();return;}
|
||||||
for (;*ptr==' ';ptr++);
|
for (;*ptr==' ';ptr++);
|
||||||
if (*ptr=='\0') {error=1;outerr();return;}
|
if (*ptr=='\0') {error=1;outerr();return;}
|
||||||
sscanf (ptr,"%x",pint);
|
sscanf (ptr,"%X",pint);
|
||||||
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
||||||
}while (*ptr==' ');
|
}while (*ptr==' ');
|
||||||
|
plpfil();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -190,21 +228,28 @@ plpfil()
|
||||||
{
|
{
|
||||||
if (command!='f') {if (kennfe==1) {error=1;outerr();return;}}
|
if (command!='f') {if (kennfe==1) {error=1;outerr();return;}}
|
||||||
else if (command=='b')
|
else if (command=='b')
|
||||||
{if (kennfe==1||kennfo==1||kennD==1||kenns==1||kennw==1)
|
{if (kennfe==1||kennfo==1||kennD==1||kenns==1||kennw==1||kennB==1)
|
||||||
{error=1;outerr();return;}}
|
{error=1;outerr();return;}}
|
||||||
if (segnr>=0x80) {error=1; outerr(); return;}
|
if (segnr>=0x80) {error=1; outerr(); return;}
|
||||||
|
if (command=='f')
|
||||||
|
{langf=lange1;
|
||||||
|
if (bre!='s') {langf=langf+langf;
|
||||||
|
if (langf>0xffffL) {langf=0xffffL;
|
||||||
|
lange1=langf/2;}}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* eingabe epromtype [options]: " . . . "
|
/* eingabe epromtype [options]: " . . . "
|
||||||
----------------------------------------- */
|
----------------------------------------- */
|
||||||
int kenneo,kennel;
|
int kenneo,kennel,kennV;
|
||||||
|
char kennS;
|
||||||
inopte()
|
inopte()
|
||||||
{
|
{
|
||||||
begadre1=lange1=0;
|
begadre1=lange1=0;
|
||||||
qflag=errflag=false;
|
qflag=errflag=false;
|
||||||
kenneo=kennel=0;
|
kenneo=kennel=kennV=0;
|
||||||
|
kennS=0;
|
||||||
gets(bufopt);
|
gets(bufopt);
|
||||||
for (ptr=bufopt;*ptr==' ';ptr++);
|
for (ptr=bufopt;*ptr==' ';ptr++);
|
||||||
if (*ptr=='\0'||*ptr=='-') {error=1; outerr(); return;}
|
if (*ptr=='\0'||*ptr=='-') {error=1; outerr(); return;}
|
||||||
|
|
@ -212,23 +257,32 @@ inopte()
|
||||||
sscanf (ptr,"%s",namee1);
|
sscanf (ptr,"%s",namee1);
|
||||||
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
||||||
if (*ptr=='\0') {plpepr(); return;}
|
if (*ptr=='\0') {plpepr(); return;}
|
||||||
|
do
|
||||||
|
{
|
||||||
do {
|
do {
|
||||||
for (;*ptr==' ';ptr++);
|
for (;*ptr==' ';ptr++);
|
||||||
if (*ptr=='\0') {plpepr();return;}
|
if (*ptr=='\0') {plpepr();return;}
|
||||||
if (*ptr!='-') {error=1; outerr(); return;}
|
if (*ptr!='-') {error=1; outerr(); return;}
|
||||||
ptr++;
|
ptr++;
|
||||||
if (*ptr!='o'&&*ptr!='l') {error=1; outerr(); return;}
|
if (*ptr!='o'&&*ptr!='l'&&*ptr!='V'&&*ptr!='S') {error=1; outerr(); return;}
|
||||||
if (*ptr=='o') {if (kenneo==0) {pint= &begadre1; kenneo=1;}
|
if (*ptr=='o') {if (kenneo==0) {pint= &begadre1; kenneo=1;}
|
||||||
else {error=2; outerr(); return;}
|
else {error=2; outerr(); return;}
|
||||||
}
|
}
|
||||||
if (*ptr=='l') {if (kennel==0) {pint= &lange1; kennel=1;}
|
if (*ptr=='l') {if (kennel==0) {pint= &lange1; kennel=1;}
|
||||||
else {error=2; outerr(); return;}
|
else {error=2; outerr(); return;}
|
||||||
}
|
}
|
||||||
|
if (*ptr=='V') {if (kennV==0) {pint= &V; kennV=1;}
|
||||||
|
else {error=2; outerr(); return;}
|
||||||
|
}
|
||||||
|
if (*ptr=='S') {if (kennS==0) kennS=1;
|
||||||
|
else {error=2; outerr(); return;}
|
||||||
|
}
|
||||||
ptr++;
|
ptr++;
|
||||||
|
} while (*(ptr-1)=='S');
|
||||||
if (*ptr!=' ') {error=1; outerr(); return;}
|
if (*ptr!=' ') {error=1; outerr(); return;}
|
||||||
for (;*ptr==' ';ptr++);
|
for (;*ptr==' ';ptr++);
|
||||||
if (*ptr=='\0') {error=1; outerr(); return;}
|
if (*ptr=='\0') {error=1; outerr(); return;}
|
||||||
sscanf (ptr,"%x",pint);
|
sscanf (ptr,"%X",pint);
|
||||||
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
for (;*ptr!=' '&&*ptr!='\0';ptr++);
|
||||||
}while (*ptr==' ');
|
}while (*ptr==' ');
|
||||||
plpepr();
|
plpepr();
|
||||||
|
|
@ -247,41 +301,100 @@ char *vptr;
|
||||||
{ j++;
|
{ j++;
|
||||||
ptr=namee1;
|
ptr=namee1;
|
||||||
switch (j) {
|
switch (j) {
|
||||||
case 1: for (prlang=0x400,tpe1=0,vptr=e2708,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
case 1: for (prlang=0x400,tpe1=0,vptr=e0,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
case 2: for (prlang=0x800,tpe1=1,vptr=e2716,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
case 2: for (prlang=0x800,tpe1=1,vptr=e1,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
case 3: for (prlang=0x1000,tpe1=8,vptr=e2732a,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
case 3: for (prlang=0x1000,tpe1=7,vptr=e7,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
case 4: for (prlang=0x1000,tpe1=7,vptr=e2732,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
case 4: for (prlang=0x1000,tpe1=8,vptr=e8,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
case 5: for (prlang=0x2000,tpe1=9,vptr=e2764,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
case 5: for (prlang=0x2000,tpe1=9,vptr=e9,i=5;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
case 6: i=0; error=1; outerr(); return;
|
case 6: for (prlang=0x2000,tpe1=10,vptr=e10,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
|
case 7: for (prlang=0x4000,tpe1=11,vptr=e11,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
|
case 8: for (prlang=0x4000,tpe1=12,vptr=e12,i=7;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
|
case 9: for (prlang=0x8000,tpe1=13,vptr=e13,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
|
case 10: for (prlang=0x10000,tpe1=15,vptr=e15,i=6;*ptr==*vptr&&i>0;ptr++,vptr++,i--); break;
|
||||||
|
case 11: i=0; error=1; outerr(); return;
|
||||||
}
|
}
|
||||||
}while (i!=0 || *ptr != '\0');
|
}while (i!=0 || *ptr != '\0');
|
||||||
if (tpe1==7) {warning=10; outwar();
|
|
||||||
|
if (board=='1') {if (tpe1>9) {error=12; outerr(); return;}}
|
||||||
|
|
||||||
|
if ((tpe1==7||tpe1==9||tpe1==11) && (command=='p'||command=='c'||command=='b'))
|
||||||
|
{warning=10; outwar();
|
||||||
if (warning==true) {printf ("\n"); errflag=true; return;}}
|
if (warning==true) {printf ("\n"); errflag=true; return;}}
|
||||||
if (command=='b' && tpe1==0) {error=10; outerr(); return;}
|
|
||||||
|
if (command=='b' && tpe1==0) {error=10;
|
||||||
|
outerr();
|
||||||
|
return;}
|
||||||
|
|
||||||
|
if (board=='1') {if (kennS==1||kennV==1) {error=1; outerr(); return;}
|
||||||
|
kennS=1;}
|
||||||
|
|
||||||
|
/* ermittlung programmierspannung Vpp*/
|
||||||
|
if (kennV==1) {
|
||||||
|
if (V==0x25L) Vpp=1;
|
||||||
|
else if (V==0x21L) Vpp=2;
|
||||||
|
else if (V==0x12L) Vpp=3;
|
||||||
|
else if (V==0x0fL) Vpp=4;
|
||||||
|
else {error=1; outerr(); return;}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (tpe1==0 || tpe1==1 || tpe1==7) Vpp=1;
|
||||||
|
else if (tpe1==8 || tpe1==9 || tpe1==11) Vpp=2;
|
||||||
|
else if (tpe1==10 || tpe1==12 || tpe1==13 || tpe1==15) Vpp=3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((command=='p' && tpe1==0) && (begadre1 != 0L || prlang != 0x400L))
|
||||||
|
{warning=11;
|
||||||
|
outwar();
|
||||||
|
begadre1=0L;
|
||||||
|
lange1=0x400L;}
|
||||||
|
|
||||||
if (begadre1>=prlang) {error=1; outerr(); return;}
|
if (begadre1>=prlang) {error=1; outerr(); return;}
|
||||||
if ((begadre1+lange1)>prlang) {error=1; outerr(); return;}
|
|
||||||
if (lange1==0) lange1=prlang-begadre1;
|
if (begadre1+lange1>prlang) {error=1; outerr(); return;}
|
||||||
if (command=='p' && tpe1==0 && (begadre1 != 0 || lange1 != 0x400))
|
|
||||||
{warning=11; outwar();
|
if (lange1==0L) lange1=prlang-begadre1;
|
||||||
begadre1=0; lange1=0x400;}
|
|
||||||
langf=lange1;
|
if (command=='p')
|
||||||
if (bre!='s') langf=langf+langf;
|
{langf=lange1;
|
||||||
|
if (bre!='s') {langf=langf+langf;
|
||||||
|
if (langf>0xffffL) {langf=0xffffL;
|
||||||
|
lange1=langf/2;}}}
|
||||||
|
|
||||||
if (command=='b') {if (kenneo==1||kennel==1)
|
if (command=='b') {if (kenneo==1||kennel==1)
|
||||||
{error=1; outerr(); return;}}
|
{error=1; outerr(); return;}}
|
||||||
|
|
||||||
bbegadrf=begadrf; bbegadre1=begadre1;
|
bbegadrf=begadrf; bbegadre1=begadre1;
|
||||||
blangf=langf; blange1=lange1; bbre=bre;
|
blangf=langf; blange1=lange1; bbre=bre;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ausgabe ready to program...... ; ready to copy ......
|
||||||
|
-----------------------------------------------------*/
|
||||||
|
out_rpc()
|
||||||
|
{
|
||||||
|
if (board=='2')
|
||||||
|
{
|
||||||
|
if (kennS==0) printf ("%s",rph);
|
||||||
|
else printf ("%s",rps);
|
||||||
|
if (Vpp==1) printf ("%s",vpp1);
|
||||||
|
else if (Vpp==2) printf ("%s",vpp2);
|
||||||
|
else if (Vpp==3) printf ("%s",vpp3);
|
||||||
|
else printf ("%s",vpp4);
|
||||||
|
}
|
||||||
|
printf (":\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* ausgabe "ready: . . . " (program,test,list)
|
/* ausgabe "ready: . . . " (program,test,list)
|
||||||
------------------------------------------- */
|
------------------------------------------- */
|
||||||
|
|
||||||
ready()
|
ready()
|
||||||
{
|
{
|
||||||
unsigned ende, endf;
|
long ende, endf;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (eofseg==1 && (answer=='y' || answer=='s')) {qflag=true; return;}
|
if (eofseg==1 && (answer=='y' || answer =='s')) {qflag=true; return;}
|
||||||
|
|
||||||
if (answer=='r') {begadrf=bbegadrf; begadre1=bbegadre1;
|
if (answer=='r') {begadrf=bbegadrf; begadre1=bbegadre1;
|
||||||
langf=blangf; lange1=blange1; bre=bbre;
|
langf=blangf; lange1=blange1; bre=bbre;
|
||||||
mofy=false;
|
mofy=false;
|
||||||
|
|
@ -323,31 +436,34 @@ unsigned ende, endf;
|
||||||
ende=lange1+begadre1;}
|
ende=lange1+begadre1;}
|
||||||
}
|
}
|
||||||
if (command=='p')
|
if (command=='p')
|
||||||
{if (endf<begadrf) {langf=0xffff - begadrf;
|
{if (endf>0xffffL) {langf=0xffffL - begadrf;
|
||||||
if (bre != 's') lange1=langf/2;
|
if (bre != 's') lange1=langf/2;
|
||||||
else lange1=langf;
|
else lange1=langf;
|
||||||
endf=begadrf+langf;
|
endf=begadrf+langf;
|
||||||
ende=begadre1+lange1;}
|
ende=begadre1+lange1;}
|
||||||
if (endf==0xffff && bre != 'l')
|
if (endf==0xffffL && bre!='l')
|
||||||
{eofseg=1;
|
{eofseg=1;
|
||||||
warning=12;
|
warning=12;
|
||||||
outwar();}}
|
outwar();}}
|
||||||
}
|
}
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
printf ("%s",rdy);
|
printf ("%s",rdy);
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case 'p': printf ("%s",rpr); break;
|
case 'p': printf ("%s",rpr);
|
||||||
|
out_rpc();
|
||||||
|
break;
|
||||||
case 'l': printf ("%s",rli); break;
|
case 'l': printf ("%s",rli); break;
|
||||||
case 't': printf ("%s",rte); break;}
|
case 't': printf ("%s",rte); break;}
|
||||||
|
|
||||||
if (command=='p') {
|
if (command=='p') {
|
||||||
printf ("%s %s %s %s %x %s %x %s %x",sou,fle,namef,segment,segnr,start,begadrf,end,(endf-1));
|
printf ("%s %s %s %s %X %s %X %s %X",sou,fle,namef,segment,segnr,start,begadrf,end,(endf-1));
|
||||||
if (bre=='l') printf ("%s \n",lob);
|
if (bre=='l') printf ("%s \n",lob);
|
||||||
else if (bre=='h') printf ("%s \n",hib);
|
else if (bre=='h') printf ("%s \n",hib);
|
||||||
else printf ("%s \n",byte);
|
else printf ("%s \n",byte);
|
||||||
printf ("%s %s: %s %s %x %s %x %s",des,eprom,namee1,start,begadre1,end,(ende-1),byte);}
|
printf ("%s %s: %s %s %X %s %X %s",des,eprom,namee1,start,begadre1,end,(ende-1),byte);}
|
||||||
else printf ("%s %s: %s %s %x %s %x %s",sou,eprom,namee1,start,begadre1,end,(ende-1),byte);
|
else printf ("%s %s: %s %s %X %s %X %s",sou,eprom,namee1,start,begadre1,end,(ende-1),byte);
|
||||||
|
|
||||||
if (command=='p') printf (" ?(y/r/s/m/v/l/t/q)");
|
if (command=='p') printf (" ?(y/r/s/m/v/l/t/q)");
|
||||||
else printf (" ?(y/r/s/q)");
|
else printf (" ?(y/r/s/q)");
|
||||||
|
|
@ -372,48 +488,50 @@ unsigned ende, endf;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ausgabe "ready to ........" (bytemode, file, copy)
|
/* ausgabe "ready to ........" (bytemode, file, copy)
|
||||||
-------------------------------------------------- */
|
-------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
ready1()
|
ready1()
|
||||||
{
|
{
|
||||||
unsigned ende1, ende2, endf;
|
long ende1, ende2, endf;
|
||||||
|
|
||||||
if (eofseg==1) {qflag=true; return;}
|
if (eofseg==1) {qflag=true; return;}
|
||||||
|
|
||||||
langf=prlang;
|
|
||||||
if (bre != 's') langf=langf+langf;
|
|
||||||
|
|
||||||
ende1=begadre1+lange1; ende2=begadre2+lange2;
|
ende1=begadre1+lange1; ende2=begadre2+lange2;
|
||||||
if (command=='f' && answer=='y') {if (bre == 's') begadrf=begadrf+langf;}
|
if (command=='f' && answer=='y') {if (bre == 's') begadrf=begadrf+langf;}
|
||||||
if (command=='f') {endf=begadrf+langf;
|
if (command=='f') {endf=begadrf+langf;
|
||||||
if (endf<begadrf) {lange1=0xffff - begadrf;
|
if (endf>0xffffL) {langf=0xffffL - begadrf;
|
||||||
|
if (bre != 's') lange1=langf/2;
|
||||||
lange1=lange1+1;
|
else lange1=langf;
|
||||||
eofseg=1;
|
endf=begadrf+langf;
|
||||||
warning=12; outwar();
|
|
||||||
endf=begadrf+lange1;
|
|
||||||
ende1=begadre1+lange1;}
|
ende1=begadre1+lange1;}
|
||||||
|
if (endf==0xffffL) {eofseg=1;
|
||||||
|
warning=12;
|
||||||
|
outwar();}
|
||||||
}
|
}
|
||||||
do
|
do
|
||||||
{printf ("%s",rdy);
|
{printf ("%s",rdy);
|
||||||
if (command=='b') {printf ("%s",rby);
|
if (command=='b') {printf ("%s",rby);
|
||||||
|
out_rpc();
|
||||||
printf ("%s %s: %s",sou,eprom,namee1);
|
printf ("%s %s: %s",sou,eprom,namee1);
|
||||||
printf (" ?(y/q)");}
|
printf (" ?(y/q)");}
|
||||||
else if (command=='f') {printf ("%s",rfi);
|
else if (command=='f') {printf ("%s",rfi);
|
||||||
printf ("%s %s: %s %s %x %s %x %s",sou,eprom,namee1,start,begadre1,end,(ende1-1),byte);
|
printf ("%s %s: %s %s %X %s %X %s",sou,eprom,namee1,start,begadre1,end,(ende1-1),byte);
|
||||||
switch (bre)
|
switch (bre)
|
||||||
{
|
{
|
||||||
case 's': printf ("\n"); break;
|
case 's': printf ("\n"); break;
|
||||||
case 'l': printf (" low_addess\n"); break;
|
case 'l': printf (" low_address\n"); break;
|
||||||
case 'h': printf (" high_address\n"); break;
|
case 'h': printf (" high_address\n"); break;
|
||||||
}
|
}
|
||||||
printf ("%s %s %s %s %x %s %x %s %x %s %x",des,fle,namef,segment,segnr,entry,entryf,start,begadrf,end,(endf-1));
|
printf ("%s %s %s %s %X %s %X %s %X %s %X",des,fle,namef,segment,segnr,entry,entryf,start,begadrf,end,(endf-1));
|
||||||
printf (" ?(y/m/l/q)");}
|
printf (" ?(y/m/l/q)");}
|
||||||
else if (command=='c') {printf ("%s",rco);
|
else if (command=='c') {printf ("%s",rco);
|
||||||
printf ("%s %s: %s %s %x %s %x %s\n",sou,eprom,namee1,start,begadre1,end,(ende1-1),byte);
|
out_rpc();
|
||||||
printf ("%s %s: %s %s %x %s %x %s",des,eprom,namee2,start,begadre2,end,(ende2-1),byte);
|
printf ("%s %s: %s %s %X %s %X %s\n",sou,eprom,namee1,start,begadre1,end,(ende1-1),byte);
|
||||||
|
printf ("%s %s: %s %s %X %s %X %s",des,eprom,namee2,start,begadre2,end,(ende2-1),byte);
|
||||||
printf (" ?(y/l/m/v/r/q)");}
|
printf (" ?(y/l/m/v/r/q)");}
|
||||||
gets (cmdbuf);
|
gets (cmdbuf);
|
||||||
if (cmdbuf[1]!='\0') answer='w';
|
if (cmdbuf[1]!='\0') answer='w';
|
||||||
|
|
@ -429,6 +547,8 @@ unsigned ende1, ende2, endf;
|
||||||
default : answer='w';
|
default : answer='w';
|
||||||
}
|
}
|
||||||
}while (answer=='w');
|
}while (answer=='w');
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -474,9 +594,13 @@ int c;
|
||||||
case 7: printf ("%s%x\n",war7,offset256); warning=false; return;
|
case 7: printf ("%s%x\n",war7,offset256); warning=false; return;
|
||||||
case 8: printf ("%s%x\n",war8,offset256); warning=false; return;
|
case 8: printf ("%s%x\n",war8,offset256); warning=false; return;
|
||||||
case 9: printf ("%s",war9); break;
|
case 9: printf ("%s",war9); break;
|
||||||
case 10: printf ("%s",war10); break;
|
case 10: printf ("%s%s, not %sa ?\n",war10,namee1,namee1); break;
|
||||||
case 11: printf ("%s",war11); warning=false; return;
|
case 11: printf ("%s",war11); warning=false; return;
|
||||||
case 12: printf ("%s",war12); warning=false; return;
|
case 12: printf ("%s",war12); warning=false; return;
|
||||||
|
case 13: printf ("%s",war13); warning=false; return;
|
||||||
|
case 14: printf ("%s",war14); break;
|
||||||
|
case 15: printf ("%s",war15); break;
|
||||||
|
case 16: printf ("%s",war16); break;
|
||||||
}
|
}
|
||||||
printf ("\007continue ?");
|
printf ("\007continue ?");
|
||||||
gets (cmdbuf);
|
gets (cmdbuf);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue