summaryrefslogtreecommitdiff
path: root/as
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1999-06-11 14:11:38 +0200
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:41:25 +0200
commit3d4957c86ff239b24b43933924ec72a3fd288518 (patch)
treeda8225a4d7bb2d9123e10d558cdc3eebae6254c8 /as
parente62b35169cdcd13632ae353b1e5ffde7dec44201 (diff)
downloaddev86-3d4957c86ff239b24b43933924ec72a3fd288518.tar.gz
Import Dev86src-0.14.8.tar.gzv0.14.8
Diffstat (limited to 'as')
-rw-r--r--as/as.c13
-rw-r--r--as/assemble.c3
-rw-r--r--as/genobj.c5
-rw-r--r--as/proto.h1
-rw-r--r--as/readsrc.c2
5 files changed, 14 insertions, 10 deletions
diff --git a/as/as.c b/as/as.c
index 8c26b71..d86d917 100644
--- a/as/as.c
+++ b/as/as.c
@@ -61,13 +61,14 @@ char **argv;
inst_keywords();
initbin();
initobj();
- initsource(); /* only nec to init for unsupported mem file */
+ initsource();
typeconv_init(INT_BIG_ENDIAN, LONG_BIG_ENDIAN);
as_warn.global = TRUE; /* constant */
as_warn.semaphore = -1;
last_pass=1;
process_args(argc, argv);
initscan();
+ line_zero();
assemble(); /* doesn't return, maybe use setjmp */
@@ -133,8 +134,12 @@ PUBLIC void initp1p2()
lcp->data = lcdata = RELBIT; /* lc relocatable until 1st ORG */
lcp->lc = lc = 0;
}
- if( textseg > 0 )
- lcdata |= textseg;
+}
+
+PUBLIC void line_zero()
+{
+ if( textseg >= 0 )
+ ptext();
}
PRIVATE int my_creat(name, message)
@@ -297,8 +302,6 @@ char **argv;
#ifdef I80386
origcpuid = cpuid;
#endif
- if( textseg > 0 )
- lcdata |= textseg;
inidata = (~binaryg & inidata) | (RELBIT | UNDBIT);
} /* IMPBIT from inidata unless binaryg */
diff --git a/as/assemble.c b/as/assemble.c
index 5ae7319..2b92c76 100644
--- a/as/assemble.c
+++ b/as/assemble.c
@@ -216,7 +216,8 @@ PRIVATE void asline()
getsym();
if (sym != IDENT) /* expect label, mnemonic or macro */
{
- if( sym != EOLSYM )
+ /* Warn if not a comment marker or a hash (for /lib/cpp) */
+ if( sym != EOLSYM && sym != IMMEDIATE )
list_force = TRUE;
return; /* anything else is a comment */
}
diff --git a/as/genobj.c b/as/genobj.c
index 09eda1c..abe140a 100644
--- a/as/genobj.c
+++ b/as/genobj.c
@@ -565,10 +565,7 @@ PUBLIC void objheader()
}
putobj1(0);
}
- if( textseg >= 0 )
- putobj1(OBJ_SET_SEG | textseg); /* default segment, |0010|SEGM| */
- else
- putobj1(OBJ_SET_SEG | 0); /* default segment 0, |0010|SEGM| */
+ putobj1(OBJ_SET_SEG | 0); /* default segment 0, |0010|SEGM| */
}
/* write trailer to object file */
diff --git a/as/proto.h b/as/proto.h
index b4fb82b..9cc6446 100644
--- a/as/proto.h
+++ b/as/proto.h
@@ -5,6 +5,7 @@ int main P((int argc, char **argv));
void as_abort P((char *message));
void finishup P((void));
void initp1p2 P((void));
+void line_zero P((void));
/* assemble.c */
void assemble P((void));
diff --git a/as/readsrc.c b/as/readsrc.c
index 557ca5d..6cfbaf5 100644
--- a/as/readsrc.c
+++ b/as/readsrc.c
@@ -275,6 +275,8 @@ PUBLIC void pproceof()
if(pass==last_pass)
binheader();
+
+ line_zero();
}
else
finishup();