add version : 2.6

This commit is contained in:
Oliver Lehmann 1990-02-08 12:51:59 +00:00
parent ddb9be9a73
commit b37a26c8ed
1 changed files with 37 additions and 24 deletions

View File

@ -110,9 +110,10 @@ char progbuf[0xfffe]; /*program buffer*/
char progffff; /*adr ffff prom e27512 program buffer*/ char progffff; /*adr ffff prom e27512 program buffer*/
char *peprombuf; char *peprombuf;
char *pprogbuf; char *pprogbuf;
char *p_progbuf;
char eprombuf[0xfffe]; /*prom buffer*/ char eprombuf[0xfffe]; /*prom buffer*/
char epromffff; /*adr ffff prom e27512 prom buffer*/ char epromffff; /*adr ffff prom e27512 prom buffer*/
long offprom, p_lange, p_begadre;
/* open filename /* open filename
------------- */ ------------- */
@ -258,6 +259,8 @@ else /* executable and overlay */
break; break;
case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break; case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break;
} }
p_lange=nbytes;
for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--) for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--)
*pprogbuf= *peprombuf;} *pprogbuf= *peprombuf;}
@ -286,6 +289,8 @@ else /* executable and overlay */
break; break;
case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break; case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break;
} }
p_lange=nbytes;
for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--) for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--)
*pprogbuf= *peprombuf;} *pprogbuf= *peprombuf;}
offset=boffset; offset=boffset;
@ -308,6 +313,8 @@ else /* executable and overlay */
break; break;
case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break; case 'l': zhl1=2; nbytes=nbytes/2; peprombuf++; break;
} }
p_lange=nbytes;
for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--) for (;nbytes>0;pprogbuf++,peprombuf=peprombuf+zhl1,nbytes--)
*pprogbuf= *peprombuf;} *pprogbuf= *peprombuf;}
@ -335,20 +342,22 @@ sfile()
{ {
eof=false; warning=false; eof=false; warning=false;
adr=adr << 8; adr=adr << 8;
if (begadrf<adr) if (begadrf<adr) {
{if ((begadrf+langf)<=adr) if ((begadrf+langf)<=adr) warning=true;
warning=true; else {
else offprom=adr-begadrf;
{peprombuf= &eprombuf[adr-begadrf]; peprombuf= &eprombuf[adr-begadrf];
pprogbuf= &progbuf[adr-begadrf]; pprogbuf= &progbuf[adr-begadrf];
if ((begadrf+langf)>=(adr+len)) if ((begadrf+langf)>=(adr+len)) nbytes=len;
nbytes=len;
else nbytes=begadrf+langf-adr;}} else nbytes=begadrf+langf-adr;
else }
{if (begadrf>=(adr+len)) }
eof=true; else {
else if (begadrf>=(adr+len)) eof=true;
{peprombuf= &eprombuf[0]; else {
offprom=0L;
peprombuf= &eprombuf[0];
pprogbuf= &progbuf[0]; pprogbuf= &progbuf[0];
aoffset=begadrf; aoffset=begadrf;
offset=offset+aoffset; offset=offset+aoffset;
@ -356,7 +365,11 @@ sfile()
offset=offset-aoffset; offset=offset-aoffset;
if ((begadrf+langf)>(adr+len)) if ((begadrf+langf)>(adr+len))
nbytes=adr+len-begadrf; nbytes=adr+len-begadrf;
else nbytes=langf;}} else nbytes=langf;
}
}
p_progbuf=pprogbuf;
p_begadre=begadre1+offprom;
} }
/* prom to file /* prom to file
@ -457,7 +470,7 @@ long offs;
lseek (fd1, offset, 0); lseek (fd1, offset, 0);
offset=offset + hoffset; offset=offset + hoffset;
n_write=write (fd1,eprombuf,prlang); n_write=write (fd1,eprombuf,prlang);
if (n_write != prlang) {error=9; outerr(); return;} if ((n_write & 0xffffL) != prlang) {error=9; outerr(); return;}
aoffset=prlang; aoffset=prlang;
s_exec.s_imsize=s_exec.s_imsize + aoffset; s_exec.s_imsize=s_exec.s_imsize + aoffset;