PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 1 ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE INSTRUC OBJECT MODULE PLACED IN INSTR.OBJ COMPILER INVOKED BY: :F0: INSTR.PLM DEBUG OPTIMIZE(2) DATE(10/5/81) PAGEWIDTH(100) XREF $title ('INSTRUCTION MODULE') 1 instruc: do; /* This is the module to decode and produce code- output of a single instruction, possibly preceded by a number of PREFIX-instructions. */ $include (:f1:macro.lit) = $nolist $include (:f1:struc.lit) = $nolist $include (:f1:cmacd.lit) = $nolist $include (:f1:equals.lit) = $nolist $include (:f1:ermod.lit) = $nolist $include (:f1:subr1.ext) = $nolist $include (:f1:expr.ext) = $nolist $include (:f1:symb.ext) = $nolist $include (:f1:scan.ext) = $nolist $include (:f1:ermod.ext) = $nolist $include (:f1:cmsubr.ext) = $nolist $include (:f1:instr.x86) = $nolist PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 2 $eject 120 1 dcl /* global variables */ bytevar based macroptr byte, /* byte within codemacro */ comtab(12) byte data /* legal codemacro commands */ (mdbn,mdbf,mdwn,mdwf,mddf,mrelb,mrelw,mmodrm1,mmodrm2,msegfix, mnosegfix,mdbit); PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 3 $eject /* generate instruction output code */ 121 1 makecode: proc byte; 122 2 if (noerror:=searchformatch) then$do /* matching operands, comput code */ 124 3 do while (bytevar <> mendm) and noerror; 125 4 do case commandtype(bytevar,length(comtab),.comtab); 126 5 call mDBNrout; 127 5 call mDBFrout; 128 5 call mDWNrout; 129 5 call mDWFrout; /* typed during earthquake */ 130 5 call mDDFrout; 131 5 call mRELBrout; 132 5 call mRELWrout; 133 5 call mMODRM1rout; 134 5 call mMODRM2rout; 135 5 call mSEGFIXrout; 136 5 call mNOSEGFIXrout; 137 5 call mDBITrout; 138 5 do; end; /* dummy, should not happen */ 140 5 end$case; 141 4 end$while; 142 3 end$if; 143 2 if noerror then call emit; else call emitdummies; 146 2 return noerror; 147 2 end makecode; /* scan all PREFIX instructions */ 148 1 prefixscan: proc byte; /* compute address of first codemacro */ 149 2 findmacroaddr: proc; 150 3 dcl macrop based codemacroptr address; 151 3 firstmacroptr=macrop; 152 3 end findmacroaddr; /* test if instruction is of PREFIX type */ 153 2 prefixinstr: proc byte; 154 3 dcl ptr address,flag based ptr byte; 155 3 ptr=firstmacroptr+2; 156 3 return ((flag and prefix$on) <> 0); 157 3 end prefixinstr; 158 2 call findmacroaddr; /* compute pointer to first macro */ 159 2 do while prefixinstr; 160 3 if makecode then; /* generate output code,always succed */ 162 3 call clearcmindex; 163 3 if findcodemacro(acclen,.accum(0),.codemacroptr) then$do 165 4 call scan; 166 4 call findmacroaddr; 167 4 else$do 169 4 call errmsg(missinstr); /* missing instruction */ 170 4 call skip$rest$of$line; 171 4 return false; 172 4 end$if; 173 3 end$while; 174 2 return true; PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 4 175 2 end prefixscan; /* get all instruction operands */ 176 1 getoperands: proc byte; 177 2 dcl moreoperands byte,pt address,oper based pt operandstruc, exitvalue byte; 178 2 exitvalue=true; 179 2 nooper=0; /* clear no of operands */ 180 2 moreoperands=not emptyline; 181 2 do while moreoperands; 182 3 moreoperands=false; 183 3 pt=.operands(nooper); 184 3 if not operand then$do 186 4 if oper.stype <> udefsymb then call errmsg(illioper); 188 4 exitvalue=false; 189 4 if skip$until(',') then moreoperands=true; else$do 193 4 if specialtoken(',') then$do 195 5 call scan; /* skip "," */ 196 5 if nooper < 3 then moreoperands=true; end$if; end$if; 200 3 nooper=nooper+1; 201 3 end$while; 202 2 return exitvalue; 203 2 end getoperands; /* test if operands contain enough type information */ 204 1 enough$type$info: proc byte; 205 2 dcl pt address,oper based pt operandstruc,(i,flag) byte; 206 2 flag=true; 207 2 i=0ffh; 208 2 do while (i:=i+1) < nooper; 209 3 pt=.operands(i); 210 3 if oper.stype=variable then$do 212 4 if (oper.sflag and typebit) = 0 then flag=false; end$if; end$while; 216 2 if flag then return true; 218 2 i=0ffh; /* one of operands lacks type info,check others */ 219 2 do while (i:=i+1) < nooper; 220 3 pt=.operands(i); 221 3 if (oper.sflag and typebit) <> 0 then return true; 223 3 if (oper.stype=number) and (wrdtest(oper.offset)) then return true; end$while; 226 2 return false; 227 2 end enough$type$info; /* Module entry point: */ 228 1 instruction: proc public; /* decode line in pass 1 and pass 2 */ 229 2 call clearcmindex; /* clear buffer for output codes */ 230 2 if prefixscan then$do 232 3 if getoperands then$do PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 5 234 4 if enough$type$info then$do 236 5 if makecode then$do 238 6 if not emptyline then$do 240 7 call errmsg(end$of$line$err); 241 7 end$if; else$do 244 6 call errmsg(opmismatch); 245 6 end$if; 246 5 else$do 248 5 call errmsg(misstypeinfo); 249 5 call emitdummies; 250 5 end$if; 251 4 else$do 253 4 if makecode then; /* try to make code with bad operands */ end$if; 256 3 end$if; 257 2 call skip$rest$of$line; 258 2 end instruction; 259 1 end$module instruc; PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 6 CROSS-REFERENCE LISTING ----------------------- DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES ----- ------ ----- -------------------------------- 119 0000H 1 ACCLEN . . . . . . BYTE EXTERNAL(43) 163 119 0000H 80 ACCUM. . . . . . . BYTE ARRAY(80) EXTERNAL(44) 163 2 ADDR . . . . . . . LITERALLY 19 22 25 37 38 44 47 50 53 56 59 62 65 119 177 205 64 0000H 2 ASCIIPTR . . . . . WORD PARAMETER 65 119 0008H 1 BASEINDEX. . . . . BYTE MEMBER(OPERANDS) 205 0008H 1 BASEINDEX. . . . . BYTE MEMBER(OPER) 177 0008H 1 BASEINDEX. . . . . BYTE MEMBER(OPER) 3 BASEREGBIT . . . . LITERALLY 3 BASEREGCOUNT . . . LITERALLY 3 BREGBIT. . . . . . LITERALLY 3 BREGCOUNT. . . . . LITERALLY 13 BYT. . . . . . . . LITERALLY 120 0000H 1 BYTEVAR. . . . . . BYTE BASED(MACROPTR) 124 125 84 0000H CLEARCMINDEX . . . PROCEDURE EXTERNAL(26) STACK=0000H 162 229 12 CODE . . . . . . . LITERALLY 17 CODEMACROERR . . . LITERALLY 3 CODEMACROHEAD. . . LITERALLY 119 0000H 2 CODEMACROPTR . . . WORD EXTERNAL(50) 150 151 163 90 0000H COMMANDTYPE. . . . PROCEDURE BYTE EXTERNAL(29) STACK=0000H 125 90 0000H 1 COMNO. . . . . . . BYTE PARAMETER 91 120 0000H 12 COMTAB . . . . . . BYTE ARRAY(12) DATA 125 24 0000H COPY . . . . . . . PROCEDURE EXTERNAL(2) STACK=0000H 2 CR . . . . . . . . LITERALLY 7 CSOVER . . . . . . LITERALLY 24 0000H 2 D. . . . . . . . . WORD PARAMETER 25 2 DCL. . . . . . . . LITERALLY 12 DELETEDSYMB. . . . LITERALLY 52 0000H 2 DEST . . . . . . . WORD PARAMETER 53 12 DOUBLEDEFINED. . . LITERALLY 17 DOUBLEDEFLAB . . . LITERALLY 17 DOUBLEDEFSYMB. . . LITERALLY 17 DOUBLEDEFVAR . . . LITERALLY 11 DOUBLERANGE. . . . LITERALLY 7 DSOVER . . . . . . LITERALLY 13 DWRD . . . . . . . LITERALLY 2 ELSEDO . . . . . . LITERALLY 190 241 86 0000H EMIT . . . . . . . PROCEDURE EXTERNAL(27) STACK=0000H 144 88 0000H EMITDUMMIES. . . . PROCEDURE EXTERNAL(28) STACK=0000H 145 249 79 0000H EMPTYLINE. . . . . PROCEDURE BYTE EXTERNAL(24) STACK=0000H 180 238 2 ENDCASE. . . . . . LITERALLY 2 ENDDO. . . . . . . LITERALLY 2 ENDFOREVER . . . . LITERALLY 2 ENDIF. . . . . . . LITERALLY 197 198 213 254 2 ENDMODULE. . . . . LITERALLY 2 ENDOFFILE. . . . . LITERALLY 17 ENDOFLINEERR . . . LITERALLY 240 38 0000H 2 ENDOFSYMBTAB . . . WORD EXTERNAL(8) PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 7 2 ENDPROC. . . . . . LITERALLY 2 ENDWHILE . . . . . LITERALLY 214 224 204 0186H 143 ENOUGHTYPEINFO . . PROCEDURE BYTE STACK=0008H 234 55 0000H ENTERATTRIBUTES. . PROCEDURE EXTERNAL(15) STACK=0000H 81 0000H ERRMSG . . . . . . PROCEDURE EXTERNAL(25) STACK=0000H 169 187 240 244 248 81 0000H 1 ERRNO. . . . . . . BYTE PARAMETER 82 12 ERROR. . . . . . . LITERALLY 7 ESOVER . . . . . . LITERALLY 177 0007H 1 EXITVALUE. . . . . BYTE 178 188 202 31 0000H EXPRESSION . . . . PROCEDURE BYTE EXTERNAL(5) STACK=0000H 2 FALSE. . . . . . . LITERALLY 171 182 188 213 226 3 FILEISTRUCTURE . . LITERALLY 3 FILEOSTRUCTURE . . LITERALLY 17 FILESYNTERR. . . . LITERALLY 58 0000H FINDCODEMACRO. . . PROCEDURE BYTE EXTERNAL(16) STACK=0000H 163 149 00E0H 14 FINDMACROADDR. . . PROCEDURE STACK=0002H 158 166 49 0000H FINDSYMBOL . . . . PROCEDURE BYTE EXTERNAL(13) STACK=0000H 17 FIRSTITEM. . . . . LITERALLY 119 0000H 2 FIRSTMACROPTR. . . WORD EXTERNAL(46) 151 155 205 0009H 1 FLAG . . . . . . . BYTE 206 213 216 154 0000H 1 FLAG . . . . . . . BYTE BASED(PTR) 156 2 FOREVER. . . . . . LITERALLY 2 FORMFEED . . . . . LITERALLY 37 0000H 2 FREEPT . . . . . . WORD EXTERNAL(7) 52 0000H GETATTRIBUTES. . . PROCEDURE EXTERNAL(14) STACK=0000H 176 0109H 125 GETOPERANDS. . . . PROCEDURE BYTE STACK=0006H 232 205 0008H 1 I. . . . . . . . . BYTE 207 208 209 218 219 220 12 IDENT. . . . . . . LITERALLY 17 IFPARERR . . . . . LITERALLY 17 ILLEGALMACRO . . . LITERALLY 17 ILLEGALPSEUDO. . . LITERALLY 17 ILLEXPRELEM. . . . LITERALLY 17 ILLIOPER . . . . . LITERALLY 187 3 INDEXREGBIT. . . . LITERALLY 3 INDEXREGCOUNT. . . LITERALLY 2 INIT . . . . . . . LITERALLY 17 INSTRERR . . . . . LITERALLY 1 0000H INSTRUC. . . . . . PROCEDURE STACK=0000H 228 0215H 74 INSTRUCTION. . . . PROCEDURE PUBLIC STACK=0012H 3 IREGBIT. . . . . . LITERALLY 3 IREGCOUNT. . . . . LITERALLY 12 LAB. . . . . . . . LITERALLY 17 LABOUTOFRANGE. . . LITERALLY 16 LEFTBRACKET. . . . LITERALLY 205 0000H 2 LENGTH . . . . . . WORD MEMBER(OPER) LENGTH . . . . . . BUILTIN 125 119 0000H 2 LENGTH . . . . . . WORD MEMBER(OPERANDS) 177 0000H 2 LENGTH . . . . . . WORD MEMBER(OPER) 2 LF . . . . . . . . LITERALLY 90 0000H 1 LG . . . . . . . . BYTE PARAMETER 91 46 0000H 1 LG . . . . . . . . BYTE PARAMETER 47 43 0000H 1 LG . . . . . . . . BYTE PARAMETER 44 64 0000H 1 LG . . . . . . . . BYTE PARAMETER 65 58 0000H 1 LG . . . . . . . . BYTE PARAMETER 59 49 0000H 1 LG . . . . . . . . BYTE PARAMETER 50 61 0000H 1 LG . . . . . . . . BYTE PARAMETER 62 PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 8 2 LIT. . . . . . . . LITERALLY 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 46 0000H 2 MACDEFPT . . . . . WORD PARAMETER 47 150 0000H 2 MACROP . . . . . . WORD BASED(CODEMACROPTR) 151 119 0000H 2 MACROPTR . . . . . WORD EXTERNAL(47) 120 124 125 121 0000H 162 MAKECODE . . . . . PROCEDURE BYTE STACK=000AH 160 236 253 4 MDBF . . . . . . . LITERALLY 120 95 0000H MDBFROUT . . . . . PROCEDURE EXTERNAL(31) STACK=0000H 127 4 MDBIT. . . . . . . LITERALLY 120 115 0000H MDBITROUT. . . . . PROCEDURE EXTERNAL(41) STACK=0000H 137 4 MDBN . . . . . . . LITERALLY 120 93 0000H MDBNROUT . . . . . PROCEDURE EXTERNAL(30) STACK=0000H 126 4 MDDF . . . . . . . LITERALLY 120 101 0000H MDDFROUT . . . . . PROCEDURE EXTERNAL(34) STACK=0000H 130 4 MDWF . . . . . . . LITERALLY 120 99 0000H MDWFROUT . . . . . PROCEDURE EXTERNAL(33) STACK=0000H 129 4 MDWN . . . . . . . LITERALLY 120 97 0000H MDWNROUT . . . . . PROCEDURE EXTERNAL(32) STACK=0000H 128 4 MENDBIT. . . . . . LITERALLY 4 MENDM. . . . . . . LITERALLY 124 4 MFORMALBITS. . . . LITERALLY 17 MISSIFERR. . . . . LITERALLY 17 MISSINGPSEUDO. . . LITERALLY 17 MISSINSTR. . . . . LITERALLY 169 17 MISSSEGMINFO . . . LITERALLY 17 MISSTYPEINFO . . . LITERALLY 248 4 MMODRM1. . . . . . LITERALLY 120 111 0000H MMODRM1ROUT. . . . PROCEDURE EXTERNAL(39) STACK=0000H 133 4 MMODRM2. . . . . . LITERALLY 120 113 0000H MMODRM2ROUT. . . . PROCEDURE EXTERNAL(40) STACK=0000H 134 4 MNOSEGFIX. . . . . LITERALLY 120 107 0000H MNOSEGFIXROUT. . . PROCEDURE EXTERNAL(37) STACK=0000H 136 4 MNUMBERBITS. . . . LITERALLY 6 MODB . . . . . . . LITERALLY 6 MODD . . . . . . . LITERALLY 10 MODLETTERBIT . . . LITERALLY 10 MODLETTERCOUNT . . LITERALLY 6 MODSB. . . . . . . LITERALLY 6 MODW . . . . . . . LITERALLY 177 0006H 1 MOREOPERANDS . . . BYTE 180 181 182 190 197 4 MRELB. . . . . . . LITERALLY 120 103 0000H MRELBROUT. . . . . PROCEDURE EXTERNAL(35) STACK=0000H 131 4 MRELW. . . . . . . LITERALLY 120 105 0000H MRELWROUT. . . . . PROCEDURE EXTERNAL(36) STACK=0000H 132 4 MSEGFIX. . . . . . LITERALLY 120 109 0000H MSEGFIXROUT. . . . PROCEDURE EXTERNAL(38) STACK=0000H 135 24 0000H 1 N. . . . . . . . . BYTE PARAMETER 25 21 0000H 2 N. . . . . . . . . WORD PARAMETER 22 12 NEGLECTED. . . . . LITERALLY 17 NEGLECTERR . . . . LITERALLY 17 NESTEDIFERR. . . . LITERALLY 17 NESTEDINCLUDEERR . LITERALLY 61 0000H NEWCMBODY. . . . . PROCEDURE BYTE EXTERNAL(17) STACK=0000H 64 0000H NEWCMNAME. . . . . PROCEDURE BYTE EXTERNAL(18) STACK=0000H 46 0000H NEWMACRO . . . . . PROCEDURE BYTE EXTERNAL(12) STACK=0000H 43 0000H NEWSYMBOL. . . . . PROCEDURE BYTE EXTERNAL(11) STACK=0000H 13 NIL. . . . . . . . LITERALLY PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 9 119 0000H 1 NOERROR. . . . . . BYTE EXTERNAL(45) 122 124 143 146 34 0000H NOFORWARDEXPR. . . PROCEDURE BYTE EXTERNAL(6) STACK=0000H 29 0000H NOFORWARDOPER. . . PROCEDURE BYTE EXTERNAL(4) STACK=0000H 6 NOMOD. . . . . . . LITERALLY 119 0000H 1 NOOPER . . . . . . BYTE EXTERNAL(48) 179 183 196 200 208 219 3 NOOVERCOUNT. . . . LITERALLY 3 NOOVERRIDEBIT. . . LITERALLY 8 NOPARAND . . . . . LITERALLY 11 NORANGE. . . . . . LITERALLY 12 NUMBER . . . . . . LITERALLY 223 11 NUMBERRANGE. . . . LITERALLY 16 OAND . . . . . . . LITERALLY 16 OEQ. . . . . . . . LITERALLY 177 0006H 2 OFFSET . . . . . . WORD MEMBER(OPER) 119 0006H 2 OFFSET . . . . . . WORD MEMBER(OPERANDS) 205 0006H 2 OFFSET . . . . . . WORD MEMBER(OPER) 223 16 OGE. . . . . . . . LITERALLY 16 OGT. . . . . . . . LITERALLY 16 OLAST. . . . . . . LITERALLY 16 OLE. . . . . . . . LITERALLY 16 OLENGTH. . . . . . LITERALLY 16 OLT. . . . . . . . LITERALLY 16 OMOD . . . . . . . LITERALLY 16 ONE. . . . . . . . LITERALLY 16 ONOT . . . . . . . LITERALLY 16 OOFFSET. . . . . . LITERALLY 16 OOR. . . . . . . . LITERALLY 177 0000H 9 OPER . . . . . . . STRUCTURE BASED(PT) 186 205 0000H 9 OPER . . . . . . . STRUCTURE BASED(PT) 210 212 221 223 27 0000H OPERAND. . . . . . PROCEDURE BYTE EXTERNAL(3) STACK=0000H 184 119 0000H 36 OPERANDS . . . . . STRUCTURE ARRAY(4) EXTERNAL(49) 183 209 220 3 OPERANDSTRUC . . . LITERALLY 119 177 205 12 OPERATOR . . . . . LITERALLY 17 OPMISMATCH . . . . LITERALLY 244 16 OPTR . . . . . . . LITERALLY 16 OSEG . . . . . . . LITERALLY 16 OSHL . . . . . . . LITERALLY 16 OSHORT . . . . . . LITERALLY 16 OSHR . . . . . . . LITERALLY 16 OTYPE. . . . . . . LITERALLY 16 OXOR . . . . . . . LITERALLY 15 PCODEMACRO . . . . LITERALLY 15 PCSEG. . . . . . . LITERALLY 15 PDB. . . . . . . . LITERALLY 15 PDBIT. . . . . . . LITERALLY 15 PDD. . . . . . . . LITERALLY 15 PDSEG. . . . . . . LITERALLY 15 PDW. . . . . . . . LITERALLY 15 PEJECT . . . . . . LITERALLY 15 PEND . . . . . . . LITERALLY 15 PENDIF . . . . . . LITERALLY 15 PENDM. . . . . . . LITERALLY 15 PEQU . . . . . . . LITERALLY 15 PESEG. . . . . . . LITERALLY 15 PIF. . . . . . . . LITERALLY PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 10 15 PIFLIST. . . . . . LITERALLY 15 PINCLUDE . . . . . LITERALLY 15 PLIST. . . . . . . LITERALLY 15 PMODRM . . . . . . LITERALLY 15 PNOIFLIST. . . . . LITERALLY 15 PNOLIST. . . . . . LITERALLY 15 PNOSEGFIX. . . . . LITERALLY 15 PORG . . . . . . . LITERALLY 15 PPAGESIZE. . . . . LITERALLY 15 PPAGEWIDTH . . . . LITERALLY 15 PRB. . . . . . . . LITERALLY 8 PREFIXAND. . . . . LITERALLY 153 00EEH 27 PREFIXINSTR. . . . PROCEDURE BYTE STACK=0002H 159 9 PREFIXON . . . . . LITERALLY 156 148 00A2H 62 PREFIXSCAN . . . . PROCEDURE BYTE STACK=000EH 230 15 PRELB. . . . . . . LITERALLY 15 PRELW. . . . . . . LITERALLY 2 PROC . . . . . . . LITERALLY 18 21 27 29 31 34 39 41 43 46 49 52 55 58 61 64 67 69 71 73 76 79 81 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 115 117 121 148 149 153 176 204 228 15 PRS. . . . . . . . LITERALLY 15 PRW. . . . . . . . LITERALLY 15 PSEGFIX. . . . . . LITERALLY 12 PSEUDO . . . . . . LITERALLY 17 PSEUDOOPERR. . . . LITERALLY 15 PSIMFORM . . . . . LITERALLY 15 PSSEG. . . . . . . LITERALLY 205 0004H 2 PT . . . . . . . . WORD 205 209 210 212 220 221 223 90 0000H 2 PT . . . . . . . . WORD PARAMETER 91 177 0002H 2 PT . . . . . . . . WORD 177 183 186 34 0000H 2 PT . . . . . . . . WORD PARAMETER 35 31 0000H 2 PT . . . . . . . . WORD PARAMETER 32 15 PTITLE . . . . . . LITERALLY 154 0000H 2 PTR. . . . . . . . WORD 154 155 156 61 0000H 2 PTR. . . . . . . . WORD PARAMETER 62 14 RAH. . . . . . . . LITERALLY 14 RAL. . . . . . . . LITERALLY 11 RANGEAND . . . . . LITERALLY 10 RANGESPECBIT . . . LITERALLY 10 RANGESPECCOUNT . . LITERALLY 11 RANGETYPEAND . . . LITERALLY 14 RAX. . . . . . . . LITERALLY 14 RBH. . . . . . . . LITERALLY 14 RBL. . . . . . . . LITERALLY 14 RBP. . . . . . . . LITERALLY 14 RBX. . . . . . . . LITERALLY 14 RCH. . . . . . . . LITERALLY 14 RCL. . . . . . . . LITERALLY 14 RCS. . . . . . . . LITERALLY 14 RCX. . . . . . . . LITERALLY 14 RDH. . . . . . . . LITERALLY 14 RDI. . . . . . . . LITERALLY 14 RDL. . . . . . . . LITERALLY 14 RDS. . . . . . . . LITERALLY 14 RDX. . . . . . . . LITERALLY PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 11 2 REENT. . . . . . . LITERALLY 12 REG. . . . . . . . LITERALLY 11 REGISTERRANGE. . . LITERALLY 14 RES. . . . . . . . LITERALLY 58 0000H 2 RESULT . . . . . . WORD PARAMETER 59 49 0000H 2 RESULT . . . . . . WORD PARAMETER 50 43 0000H 2 RESULT . . . . . . WORD PARAMETER 44 64 0000H 2 RETURNPTR. . . . . WORD PARAMETER 65 16 RIGHTBRACKET . . . LITERALLY 14 RSI. . . . . . . . LITERALLY 14 RSP. . . . . . . . LITERALLY 14 RSS. . . . . . . . LITERALLY 24 0000H 2 S. . . . . . . . . WORD PARAMETER 25 69 0000H SCAN . . . . . . . PROCEDURE EXTERNAL(20) STACK=0000H 165 195 67 0000H SCANINIT . . . . . PROCEDURE EXTERNAL(19) STACK=0000H 117 0000H SEARCHFORMATCH . . PROCEDURE BYTE EXTERNAL(42) STACK=0000H 122 3 SEGMBIT. . . . . . LITERALLY 3 SEGMCOUNT. . . . . LITERALLY 205 0004H 2 SEGMENT. . . . . . WORD MEMBER(OPER) 177 0004H 2 SEGMENT. . . . . . WORD MEMBER(OPER) 119 0004H 2 SEGMENT. . . . . . WORD MEMBER(OPERANDS) 3 SEGTYPEBIT . . . . LITERALLY 3 SEGTYPECOUNT . . . LITERALLY 205 0003H 1 SFLAG. . . . . . . BYTE MEMBER(OPER) 212 221 177 0003H 1 SFLAG. . . . . . . BYTE MEMBER(OPER) 119 0003H 1 SFLAG. . . . . . . BYTE MEMBER(OPERANDS) 11 SINGLERANGE. . . . LITERALLY 71 0000H SKIPRESTOFLINE . . PROCEDURE EXTERNAL(21) STACK=0000H 170 257 76 0000H SKIPUNTIL. . . . . PROCEDURE BYTE EXTERNAL(23) STACK=0000H 189 55 0000H 2 SOURCE . . . . . . WORD PARAMETER 56 2 SPACE. . . . . . . LITERALLY 12 SPEC . . . . . . . LITERALLY 5 SPECA. . . . . . . LITERALLY 5 SPECC. . . . . . . LITERALLY 5 SPECD. . . . . . . LITERALLY 5 SPECE. . . . . . . LITERALLY 73 0000H SPECIALTOKEN . . . PROCEDURE BYTE EXTERNAL(22) STACK=0000H 193 5 SPECM. . . . . . . LITERALLY 5 SPECR. . . . . . . LITERALLY 5 SPECS. . . . . . . LITERALLY 5 SPECX. . . . . . . LITERALLY 7 SSOVER . . . . . . LITERALLY 58 0000H 2 STRADR . . . . . . WORD PARAMETER 59 49 0000H 2 STRADR . . . . . . WORD PARAMETER 50 46 0000H 2 STRADR . . . . . . WORD PARAMETER 47 43 0000H 2 STRADR . . . . . . WORD PARAMETER 44 12 STRING . . . . . . LITERALLY 2 STRUC. . . . . . . LITERALLY 119 177 205 205 0002H 1 STYPE. . . . . . . BYTE MEMBER(OPER) 210 223 177 0002H 1 STYPE. . . . . . . BYTE MEMBER(OPER) 186 119 0002H 1 STYPE. . . . . . . BYTE MEMBER(OPERANDS) 55 0000H 2 SYMBADR. . . . . . WORD PARAMETER 56 52 0000H 2 SYMBADR. . . . . . WORD PARAMETER 53 41 0000H SYMBINIT . . . . . PROCEDURE EXTERNAL(10) STACK=0000H 12 SYMBOL . . . . . . LITERALLY 3 SYMBOLHEAD . . . . LITERALLY 3 SYMBOLSTRUC. . . . LITERALLY 119 177 205 PL/M-86 COMPILER INSTRUCTION MODULE 10/5/81 PAGE 12 39 0000H SYMBTERMINATE. . . PROCEDURE EXTERNAL(9) STACK=0000H 2 TAB. . . . . . . . LITERALLY 2 THENDO . . . . . . LITERALLY 122 163 184 193 210 230 232 234 236 238 76 0000H 1 TOK. . . . . . . . BYTE PARAMETER 77 73 0000H 1 TOK. . . . . . . . BYTE PARAMETER 74 2 TRUE . . . . . . . LITERALLY 174 178 190 197 206 217 222 224 3 TYPEBIT. . . . . . LITERALLY 212 221 18 0000H TYPECALC . . . . . PROCEDURE BYTE EXTERNAL(0) STACK=0000H 3 TYPECOUNT. . . . . LITERALLY 12 UDEFSYMB . . . . . LITERALLY 186 17 UDEFSYMBOL . . . . LITERALLY 18 0000H 2 VAL. . . . . . . . WORD PARAMETER 19 12 VARIABLE . . . . . LITERALLY 210 13 WRD. . . . . . . . LITERALLY 21 0000H WRDTEST. . . . . . PROCEDURE BYTE EXTERNAL(1) STACK=0000H 223 MODULE INFORMATION: CODE AREA SIZE = 025FH 607D CONSTANT AREA SIZE = 000CH 12D VARIABLE AREA SIZE = 000AH 10D MAXIMUM STACK SIZE = 0012H 18D 735 LINES READ 0 PROGRAM ERROR(S) END OF PL/M-86 COMPILATION