From 6459b0bf5f790bb02a5a4ca6b72d4ff0b2e2d3ed Mon Sep 17 00:00:00 2001 From: keie Date: Thu, 31 Jan 1985 13:58:09 +0000 Subject: [PATCH] Zero is deleted as a possible argument to LOI and STI. Allowing that was an oversight. --- doc/em/int/em.p | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/em/int/em.p b/doc/em/int/em.p index 6658249e6..72fcd51a2 100644 --- a/doc/em/int/em.p +++ b/doc/em/int/em.p @@ -281,7 +281,7 @@ begin if (a<0) or (a>maxoffs) end; function argo(a:double):size; -begin if (a<0) or (a>maxoffs) +begin if (a<=0) or (a>maxoffs) then trap(EODDZ) else if (a mod wsize<>0) and (wsize mod a<>0) then trap(EODDZ); argo:=a ; @@ -683,7 +683,7 @@ begin a:=argp(uerrorproc); uerrorproc:=0; { reset signal } call(a); { call the routine } - intrap:=false; { Don't catch recursive traps anymore } + intrap:=false; { Do not catch recursive traps anymore } goto 8888; { reenter main loop } end; @@ -1149,7 +1149,7 @@ end; jmp (r2) /done The important thing to notice is where and how the operand fetch occurred: - lol2, lol4, and lol6, (the mini's) have implicit operands + lol2, lol4, and lol6, (the minis) have implicit operands lolb knew it had to fetch one byte, and did so without any table lookup lolw knew it had to fetch a word, and did so, high order byte first } { @@ -1604,10 +1604,9 @@ begin end; CSA: begin k:=argw(k); if k<>wsize then trap(EILLINS); a:=popa; - st:= popsw - signwd(memw(a+asize)); b:=0; + st:= popsw - signwd(memw(a+asize)); if (st>=0) and (st<=memw(a+wsize+asize)) then - b:=mema(a+2*wsize+asize+asize*st); - if b=0 then b:=mema(a); + b:=mema(a+2*wsize+asize+asize*st) else b:=mema(a); if b=0 then trap(ECASE) else newpc(b) end; CSB: begin k:=argw(k); if k<>wsize then trap(EILLINS); a:=popa; -- 2.34.1