home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0400
/
CCE_0457.ZIP
/
CCE_0457
/
GASSRC03.ZOO
/
gas-diff
< prev
next >
Wrap
Text File
|
1991-02-22
|
8KB
|
326 lines
diff -c -r gas-1.38/app.c cross-gas-1.38/app.c
*** gas-1.38/app.c Thu Oct 11 12:26:17 1990
--- cross-gas-1.38/app.c Mon Jan 21 18:52:45 1991
***************
*** 74,80 ****
--- 74,86 ----
int
scrub_from_file()
{
+ #ifdef atarist
+ int c;
+ if((c = getc(scrub_file)) == '\r') c = getc(scrub_file);
+ return c;
+ #else
return getc(scrub_file);
+ #endif
}
void
diff -c -r gas-1.38/as.c cross-gas-1.38/as.c
*** gas-1.38/as.c Thu Oct 11 12:26:17 1990
--- cross-gas-1.38/as.c Mon Jan 21 18:52:45 1991
***************
*** 81,86 ****
--- 81,89 ----
if(signal(sig[a], SIG_IGN) != SIG_IGN)
signal(sig[a], got_sig);
+ #ifdef atarist
+ _binmode(1);
+ #endif
myname=argv[0];
bzero (flagseen, sizeof(flagseen)); /* aint seen nothing yet */
out_file_name = "a.out"; /* default .o file */
diff -c -r gas-1.38/expr.c cross-gas-1.38/expr.c
*** gas-1.38/expr.c Fri Jan 4 13:13:00 1991
--- cross-gas-1.38/expr.c Tue Feb 5 18:48:54 1991
***************
*** 527,535 ****
* It is faster to re-cancel them to NULL
* than to check for this special case.
*/
! if (expressionP -> X_subtract_symbol == expressionP -> X_add_symbol
! || ( expressionP->X_subtract_symbol->sy_frag==expressionP->X_add_symbol->sy_frag
! && expressionP->X_subtract_symbol->sy_value==expressionP->X_add_symbol->sy_value))
{
expressionP -> X_subtract_symbol = NULL;
expressionP -> X_add_symbol = NULL;
--- 527,533 ----
* It is faster to re-cancel them to NULL
* than to check for this special case.
*/
! if (expressionP -> X_subtract_symbol == expressionP -> X_add_symbol)
{
expressionP -> X_subtract_symbol = NULL;
expressionP -> X_add_symbol = NULL;
diff -c -r gas-1.38/input-file.c cross-gas-1.38/input-file.c
*** gas-1.38/input-file.c Fri Jan 4 13:12:57 1991
--- cross-gas-1.38/input-file.c Mon Jan 21 18:52:55 1991
***************
*** 59,65 ****
--- 59,100 ----
#define BUFFER_SIZE (32 * 1024)
+ #ifdef atarist
+ /* a little ditty here to do fread, filtering out '\r'. */
+
+ int filtering_fread(where, how_big, how_many, f)
+ char * where;
+ int how_big;
+ int how_many;
+ FILE * f;
+ {
+ int i, j, c;
+
+ for (i = 0 ; i < how_many ; )
+ {
+ for (j = 0 ; j < how_big ; )
+ {
+ c = fgetc(f);
+ if (c == EOF)
+ goto done;
+ if (c != '\r')
+ {
+ *where++ = c;
+ j++;
+ }
+ }
+ i++;
+ }
+ done:
+ return(i);
+ }
+
+ #else
+
static char in_buf[BUFFER_SIZE];
+
+ #endif
+
/*
* We use static data: the data area is not sharable.
***************
*** 195,206 ****
as_perror ("Can't open %s for reading", file_name);
return;
}
! #ifndef VMS
setbuffer(f_in,in_buf,BUFFER_SIZE);
#endif /* VMS */
c=getc(f_in);
if(c=='#') { /* Begins with comment, may not want to preprocess */
c=getc(f_in);
if(c=='N') {
fgets(buf,80,f_in);
if(!strcmp(buf,"O_APP\n"))
--- 230,247 ----
as_perror ("Can't open %s for reading", file_name);
return;
}
! #if (!(defined(VMS) || defined(atarist) || defined(atariminix)))
setbuffer(f_in,in_buf,BUFFER_SIZE);
#endif /* VMS */
c=getc(f_in);
+ #ifdef atarist
+ if(c == '\r') c = getc(f_in);
+ #endif
if(c=='#') { /* Begins with comment, may not want to preprocess */
c=getc(f_in);
+ #ifdef atarist
+ if(c == '\r') c = getc(f_in);
+ #endif
if(c=='N') {
fgets(buf,80,f_in);
if(!strcmp(buf,"O_APP\n"))
***************
*** 274,280 ****
}
size=BUFFER_SIZE-n;
} else
! size= fread(where,sizeof(char),BUFFER_SIZE,f_in);
if (size < 0)
{
as_perror ("Can't read from %s", file_name);
--- 315,325 ----
}
size=BUFFER_SIZE-n;
} else
! #ifdef atarist
! size= filtering_fread(where,sizeof(char),BUFFER_SIZE,f_in);
! #else
! size= fread(where,sizeof(char),BUFFER_SIZE,f_in);
! #endif
if (size < 0)
{
as_perror ("Can't read from %s", file_name);
diff -c -r gas-1.38/input-scrub.c cross-gas-1.38/input-scrub.c
*** gas-1.38/input-scrub.c Fri Jan 4 13:12:58 1991
--- cross-gas-1.38/input-scrub.c Mon Jan 21 18:52:56 1991
***************
*** 54,60 ****
--- 54,64 ----
static char * buffer_start; /* -> 1st char of full buffer area. */
static char * partial_where; /* -> after last full line in buffer. */
static int partial_size; /* >=0. Number of chars in partial line in buffer. */
+ #if (defined(atarist) || defined(atariminix))
+ static char save_source [2]; /* odd num fucks alignment? */
+ #else
static char save_source [AFTER_SIZE];
+ #endif
/* Because we need AFTER_STRING just after last */
/* full line, it clobbers 1st part of partial */
/* line. So we preserve 1st part of partial */
diff -c -r gas-1.38/m68k-opcode.h cross-gas-1.38/m68k-opcode.h
*** gas-1.38/m68k-opcode.h Wed Aug 1 14:49:19 1990
--- cross-gas-1.38/m68k-opcode.h Mon Jan 21 18:52:58 1991
***************
*** 628,633 ****
--- 628,634 ----
{"trapvc", one(0054374), one(0177777), ""},
{"trapvs", one(0054774), one(0177777), ""},
+ #if (!(CROSSATARI || atarist || atariminix))
{"trapcc.w", one(0052372), one(0177777), ""},
{"trapcs.w", one(0052772), one(0177777), ""},
{"trapeq.w", one(0053772), one(0177777), ""},
***************
*** 662,667 ****
--- 663,670 ----
{"trapvc.l", one(0054373), one(0177777), ""},
{"trapvs.l", one(0054773), one(0177777), ""},
+ #endif /* !(CROSSATARI || atarist || atariminix) */
+
{"trapv", one(0047166), one(0177777), ""},
{"tstb", one(0045000), one(0177700), ";b"},
***************
*** 1385,1391 ****
--- 1388,1396 ----
/* Alternate mnemonics for SUN */
+ #if (!(CROSSATARI || atarist || atariminix))
{"jbsr", one(0060400), one(0177400), "Bg"},
+ #endif
{"jbsr", one(0047200), one(0177700), "!s"},
{"jra", one(0060000), one(0177400), "Bg"},
{"jra", one(0047300), one(0177700), "!s"},
diff -c -r gas-1.38/m68k.c cross-gas-1.38/m68k.c
*** gas-1.38/m68k.c Tue Dec 4 15:50:00 1990
--- cross-gas-1.38/m68k.c Wed Feb 6 09:52:38 1991
***************
*** 1258,1265 ****
long t;
t=get_num(opP->con1,80);
! if(t<1 || t>8 || isvar(opP->con1))
! losing++;
}
break;
--- 1258,1271 ----
long t;
t=get_num(opP->con1,80);
! if (s[1]!='s') {
! if(t<1 || t>8 || isvar(opP->con1))
! losing++;
! }
! else {
! if(t<0 || t>7 || isvar(opP->con1))
! losing++;
! }
}
break;
***************
*** 1474,1480 ****
if( !issword(nextword)
|| ( isvar(opP->con1)
&& ( ( opP->con1->e_siz==0
! && flagseen['l']==0)
|| opP->con1->e_siz==3))) {
if(opP->reg==PC)
--- 1480,1486 ----
if( !issword(nextword)
|| ( isvar(opP->con1)
&& ( ( opP->con1->e_siz==0
! && flagseen['l']!=0)
|| opP->con1->e_siz==3))) {
if(opP->reg==PC)
***************
*** 1489,1495 ****
break;
} else {
addword(0x0170);
! add_fix('l',opP->con1,1);
}
} else
addword(0x0170);
--- 1495,1501 ----
break;
} else {
addword(0x0170);
! add_fix('l',opP->con1,0);
}
} else
addword(0x0170);
***************
*** 1976,1984 ****
break;
case 'Q':
! tmpreg=get_num(opP->con1,10);
! if(tmpreg==8)
! tmpreg=0;
install_operand(s[1],tmpreg);
break;
--- 1982,1997 ----
break;
case 'Q':
! if (s[1]!='s') {
! tmpreg=get_num(opP->con1,10);
! if(tmpreg==8)
! tmpreg=0;
! }
! else {
! tmpreg=get_num(opP->con1,20);
! if(tmpreg==8)
! tmpreg=0;
! }
install_operand(s[1],tmpreg);
break;
diff -c -r gas-1.38/struc-symbol.h cross-gas-1.38/struc-symbol.h
*** gas-1.38/struc-symbol.h Fri Jul 6 14:43:12 1990
--- cross-gas-1.38/struc-symbol.h Mon Jan 21 18:52:59 1991
***************
*** 18,24 ****
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef VMS
! #include "a.out.gnu.h" /* Needed to define struct nlist. Sigh. */
#else
#include "a_out.h"
#endif
--- 18,28 ----
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef VMS
! # if (atarist || atariminix || CROSSATARI)
! # include <gnu-out.h>
! # else
! # include "a.out.gnu.h" /* Needed to define struct nlist. Sigh. */
! # endif
#else
#include "a_out.h"
#endif