adapted to new ip_spec.t and changed location

This commit is contained in:
ceriel 1988-03-15 11:43:36 +00:00
parent f79f368c72
commit f62a5c7157
6 changed files with 14 additions and 11 deletions

View file

@ -13,7 +13,6 @@ assda.c
assex.h assex.h
assrl.c assrl.c
ip_spec.h ip_spec.h
ip_spec.t
maktab.c maktab.c
asprint.p asprint.p
em_ass.6 em_ass.6

View file

@ -68,8 +68,8 @@ asscm.o: ass00.h
asstb.o: asstb.c asstb.o: asstb.c
asstb.c: maktab ip_spec.t asstb.c: maktab $d/etc/ip_spec.t
maktab ip_spec.t asstb.c maktab $d/etc/ip_spec.t asstb.c
maktab: maktab.c $h/em_spec.h ip_spec.h $h/em_flag.h \ maktab: maktab.c $h/em_spec.h ip_spec.h $h/em_flag.h \
$l/em_data.a $l/em_data.a
@ -83,4 +83,4 @@ opr:
pr: pr:
@(pr ass00.h assex.h ip_spec.h ass?0.c ass[rcd]?.c \ @(pr ass00.h assex.h ip_spec.h ass?0.c ass[rcd]?.c \
maktab.c ; pr -3 ip_spec.t) maktab.c)

View file

@ -210,14 +210,10 @@ int i_flag,flag,number ; cons_t val ; {
case OPSHORT : case OPSHORT :
if ( val<0 ) val = -1-val ; if ( val<0 ) val = -1-val ;
return val>=0 && val<number*256 ; return val>=0 && val<number*256 ;
case OP16U:
return val>=0 && val<=65535L &&
( i_flag!=PAR_G || val<=maxadr ) ;
case OP16 : 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 ; return val>= -32768 && val<=32767 ;
case OP32 : case OP32 :
return TRUE ; return TRUE ;
@ -237,6 +233,7 @@ int oplength(flag) int flag ; {
case OPMINI : break ; case OPMINI : break ;
case OP8 : case OP8 :
case OPSHORT : cnt++ ; break ; case OPSHORT : cnt++ ; break ;
case OP16U:
case OP16 : cnt+=2 ; break ; case OP16 : cnt+=2 ; break ;
case OP32 : cnt+=5 ; break ; case OP32 : cnt+=5 ; break ;
case OP64 : cnt+=9 ; break ; case OP64 : cnt+=9 ; break ;

View file

@ -149,6 +149,7 @@ genop(startc,value,i_flag) char *startc ; cons_t value ; int i_flag ; {
put8((char)value) ; put8((char)value) ;
break ; break ;
case OP16: case OP16:
case OP16U:
put16(int_cast value) ; put16(int_cast value) ;
break ; break ;
case OP32: case OP32:

View file

@ -15,6 +15,7 @@
#define OP16 4 /* 2 2-byte signed operand */ #define OP16 4 /* 2 2-byte signed operand */
#define OP32 5 /* 4 4-byte signed operand */ #define OP32 5 /* 4 4-byte signed operand */
#define OP64 6 /* 8 8-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 OPESC 010 /* e escaped opcode */
#define OPWORD 020 /* w operand is word multiple */ #define OPWORD 020 /* w operand is word multiple */

View file

@ -182,6 +182,8 @@ int decflag(str) char *str ; {
check(type) ; type=OP32 ; break ; check(type) ; type=OP32 ; break ;
case '8' : case '8' :
check(type) ; type=OP64 ; break ; check(type) ; type=OP64 ; break ;
case 'u':
check(type) ; type=OP16U ; break ;
case 'e' : case 'e' :
check(escape) ; escape=0 ; break ; check(escape) ; escape=0 ; break ;
case 'N' : case 'N' :
@ -202,6 +204,7 @@ int decflag(str) char *str ; {
if ( escape!=ILLGL ) error("Conflicting escapes") ; if ( escape!=ILLGL ) error("Conflicting escapes") ;
escape=ILLGL ; escape=ILLGL ;
case OP16 : case OP16 :
case OP16U :
case OP8 : case OP8 :
case OPSHORT : case OPSHORT :
case OPNO : case OPNO :
@ -284,6 +287,7 @@ int oplength(a) struct opform *a ; {
case OPMINI : break ; case OPMINI : break ;
case OP8 : case OP8 :
case OPSHORT : cnt++ ; break ; case OPSHORT : cnt++ ; break ;
case OP16U :
case OP16 : cnt+=2 ; break ; case OP16 : cnt+=2 ; break ;
case OP32 : cnt+=5 ; break ; case OP32 : cnt+=5 ; break ;
case OP64 : cnt+=9 ; break ; case OP64 : cnt+=9 ; break ;
@ -339,6 +343,7 @@ checkall() {
else if ( flag&OP_POS ) else if ( flag&OP_POS )
posc[opc]++ ; posc[opc]++ ;
break ; break ;
case OP16U :
case OP32 : case OP32 :
case OP64 : case OP64 :
break ; break ;