adapted to new ip_spec.t and changed location
authorceriel <none@none>
Tue, 15 Mar 1988 11:43:36 +0000 (11:43 +0000)
committerceriel <none@none>
Tue, 15 Mar 1988 11:43:36 +0000 (11:43 +0000)
util/ass/.distr
util/ass/Makefile
util/ass/ass30.c
util/ass/ass50.c
util/ass/ip_spec.h
util/ass/maktab.c

index 257dc51..a38db64 100644 (file)
@@ -13,7 +13,6 @@ assda.c
 assex.h
 assrl.c
 ip_spec.h
-ip_spec.t
 maktab.c
 asprint.p
 em_ass.6
index 5f526c1..d93c258 100644 (file)
@@ -68,8 +68,8 @@ asscm.o:        ass00.h
 
 asstb.o:        asstb.c
 
-asstb.c:        maktab ip_spec.t
-               maktab ip_spec.t asstb.c
+asstb.c:        maktab $d/etc/ip_spec.t
+               maktab $d/etc/ip_spec.t asstb.c
 
 maktab:         maktab.c $h/em_spec.h ip_spec.h $h/em_flag.h \
                $l/em_data.a
@@ -83,4 +83,4 @@ opr:
 
 pr:
                @(pr ass00.h assex.h ip_spec.h ass?0.c ass[rcd]?.c \
-               maktab.c ; pr -3 ip_spec.t)
+               maktab.c)
index 2535802..2bcbf97 100644 (file)
@@ -210,14 +210,10 @@ int i_flag,flag,number ; cons_t val ; {
        case OPSHORT :
                if ( val<0 ) val = -1-val ;
                return val>=0 && val<number*256 ;
+       case OP16U:
+               return val>=0 && val<=65535L &&
+                      ( i_flag!=PAR_G || val<=maxadr ) ;
        case OP16 :
-               /* Commented out for the time being. This must be in
-                  ip_spec.t ...
-               if ( i_flag==PAR_G ) {
-                       return val>=0 &&
-                              val<=maxadr && val <= 65535L;
-               }
-               */
                return val>= -32768 && val<=32767 ;
        case OP32 :
                return TRUE ;
@@ -237,6 +233,7 @@ int oplength(flag) int flag ; {
        case OPMINI  : break ;
        case OP8     :
        case OPSHORT : cnt++ ; break ;
+       case OP16U:
        case OP16    : cnt+=2 ; break ;
        case OP32    : cnt+=5 ; break ;
        case OP64    : cnt+=9 ; break ;
index 71c83af..63b6e18 100644 (file)
@@ -149,6 +149,7 @@ genop(startc,value,i_flag) char *startc ; cons_t value ; int i_flag ; {
                put8((char)value) ;
                break ;
        case OP16:
+       case OP16U:
                put16(int_cast value) ;
                break ;
        case OP32:
index 72940f5..6c5d86d 100644 (file)
@@ -15,6 +15,7 @@
 #define OP16    4       /* 2  2-byte signed operand */
 #define OP32    5       /* 4  4-byte signed operand */
 #define OP64    6       /* 8  8-byte signed operand */
+#define OP16U  7       /* u  2-byte unsigned operand */
 
 #define OPESC   010     /* e  escaped opcode */
 #define OPWORD  020     /* w  operand is word multiple */
index fd6e044..ace9423 100644 (file)
@@ -182,6 +182,8 @@ int decflag(str) char *str ; {
                check(type) ; type=OP32 ; break ;
        case '8' :
                check(type) ; type=OP64 ; break ;
+       case 'u':
+               check(type) ; type=OP16U ; break ;
        case 'e' :
                check(escape) ; escape=0 ; break ;
        case 'N' :
@@ -202,6 +204,7 @@ int decflag(str) char *str ; {
                if ( escape!=ILLGL ) error("Conflicting escapes") ;
                escape=ILLGL ;
        case OP16 :
+       case OP16U :
        case OP8 :
        case OPSHORT :
        case OPNO :
@@ -284,6 +287,7 @@ int oplength(a) struct opform *a ; {
        case OPMINI  : break ;
        case OP8     :
        case OPSHORT : cnt++ ; break ;
+       case OP16U   :
        case OP16    : cnt+=2 ; break ;
        case OP32    : cnt+=5 ; break ;
        case OP64    : cnt+=9 ; break ;
@@ -339,6 +343,7 @@ checkall() {
                        else if ( flag&OP_POS )
                                posc[opc]++ ;
                        break ;
+               case OP16U :
                case OP32 :
                case OP64 :
                        break ;