PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 1 ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE CM1 OBJECT MODULE PLACED IN CM.OBJ COMPILER INVOKED BY: :F0: CM.PLM DEBUG OPTIMIZE(2) DATE(10/5/81) PAGEWIDTH(100) XREF $title ('codemacro module 1') 1 cm1: do; /* modified 7/24/81 R. Silberstein */ /* This is the module to build new instructions which is not present in the already existing system. */ $include (:f1:macro.lit) = $nolist $include (:f1:equals.lit) = $nolist $include (:f1:struc.lit) = $nolist $include (:f1:cmacd.lit) = $nolist $include (:f1:ermod.lit) = $nolist $include (:f1:scan.ext) = $nolist $include (:f1:ermod.ext) = $nolist $include (:f1:cm2.ext) = $nolist $include (:f1:cm.lit) = $nolist $include (:f1:global.ext) = $nolist PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 2 $eject /* Subroutines: */ 59 1 more$left$on$line: PROC byte; 60 2 if accum(0) <> cr then return true; 62 2 else return false; 63 2 end$proc more$left$on$line; 64 1 modrm$rout: PROC; 65 2 dcl nopar byte; 66 2 if token.type = number then$do 68 3 call put$b(mmodrm1); 69 3 if token.value > 7 then$do 71 4 cm$error=true; /* legal values are 0,1,.. .,7 */ 72 4 return; 73 4 else$do 75 4 call put$b(token.value); 76 4 end$if; 77 3 else$do 79 3 if token.type = ident then$do 81 4 if legal$parameter(acclen,.accum(0),.nopar) then$do 83 5 call put$b(mmodrm2); 84 5 call put$b(nopar); 85 5 else$do /* error, parameter mismatch */ 87 5 cm$error=true; 88 5 return; 89 5 end$if; 90 4 else$do /* error, expected parameter */ 92 4 cm$error=true; 93 4 return; 94 4 end$if; 95 3 end$if; 96 2 call scan; 97 2 if accum(0) <> comma then$do /* error, expected comma */ 99 3 cm$error=true; 100 3 return; 101 3 end$if; 102 2 call scan; 103 2 if token.type = ident then$do 105 3 if legal$parameter(acclen,.accum(0),.nopar) then$do 107 4 call put$b(nopar); 108 4 call scan; 109 4 return; 110 4 else$do /* error, parameter mismatch */ 112 4 cm$error=true; 113 4 return; 114 4 end$if; 115 3 else$do /* error, expected parameter */ 117 3 cm$error=true; 118 3 return; 119 3 end$if; 120 2 end$proc modrm$rout; 121 1 db$dw$common$rout: PROC(directive); 122 2 dcl (directive,nopar) byte; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 3 123 2 if token.type = number then$do 125 3 call put$b(directive); 126 3 if directive = mdwn then$do 128 4 call put$w(token.value); 129 4 else$do 131 4 if token.value > 0ffh then cm$error=true; 133 4 else call put$b(token.value); 134 4 end$if; 135 3 call scan; 136 3 return; 137 3 else$do 139 3 if token.type = ident then$do 141 4 if legal$parameter(acclen,.accum(0),.nopar) then$do 143 5 call put$b(directive+1); 144 5 call put$b(nopar); 145 5 call scan; 146 5 return; 147 5 else$do /* error, parameter mismatch */ 149 5 cm$error=true; 150 5 return; 151 5 end$if; 152 4 else$do /* error, expected parameter */ 154 4 cm$error=true; 155 4 return; 156 4 end$if; 157 3 end$if; 158 2 end$proc db$dw$common$rout; 159 1 d$s$rb$rw$rout: PROC(directive); 160 2 dcl (directive,nopar) byte; 161 2 if token.type = ident then$do 163 3 if legal$parameter(acclen,.accum(0),.nopar) then$do 165 4 call put$b(directive); 166 4 call put$b(nopar); 167 4 call scan; 168 4 return; 169 4 else$do /* error, parameter mismatch */ 171 4 cm$error=true; 172 4 return; 173 4 end$if; 174 3 else$do /* error, expected parameter */ 176 3 cm$error=true; 177 3 return; 178 3 end$if; 179 2 end$proc d$s$rb$rw$rout; 180 1 nosegfix$rout: PROC; 181 2 dcl nopar byte; 182 2 call put$b(mnosegfix); 183 2 do case legal$seg$reg; 184 3 do; /* error, no segment register specified */ 185 4 cm$error=true; 186 4 return; 187 4 end; 188 3 call put$b(res); 189 3 call put$b(rcs); 190 3 call put$b(rss); PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 4 191 3 call put$b(rds); 192 3 end$case; 193 2 call scan; 194 2 if accum(0) <> comma then$do /* error, expected comma */ 196 3 cm$error=true; 197 3 return; 198 3 end$if; 199 2 call scan; /* skip comma */ 200 2 if legal$parameter(acclen,.accum(0),.nopar) then$do 202 3 call put$b(nopar); 203 3 call scan; 204 3 else$do 206 3 cm$error=true; 207 3 return; 208 3 end$if; 209 2 end$proc nosegfix$rout; 210 1 dbit$rout: PROC; 211 2 call put$b(mdbit); 212 2 end$proc dbit$rout; 213 1 field$descr$rout: PROC; 214 2 dcl nopar byte,cm$b$var based cmpt byte; 215 2 do forever; 216 3 if token.type <> number or token.value > 0fh then$do /* error, expected numberdef. */ 218 4 cm$error=true; 219 4 return; 220 4 end$if; 221 3 call put$b(mnumberbits); 222 3 call put$b(token.value); 223 3 call scan; 224 3 if accum(0) <> leftpar then$do /* error, expected left paranthesis */ 226 4 cm$error=true; 227 4 return; 228 4 end$if; 229 3 call scan; /* skip left paranthesis */ 230 3 if token.type = ident then$do 232 4 if not legal$parameter(acclen,.accum(0),.nopar) then$do /* error, parameter mismatch */ 234 5 cm$error=true; 235 5 return; 236 5 end$if; 237 4 cmpt=cmpt-2; 238 4 cm$b$var=cm$b$var-1; /* it was a parameter, not a number */ 239 4 cmpt=cmpt+2; 240 4 call put$b(nopar); 241 4 call scan; 242 4 if accum(0) <> leftpar then$do /* error, expected left paranthesis */ 244 5 cm$error=true; 245 5 return; 246 5 end$if; 247 4 call scan; /* skip left paranthesis */ 248 4 end$if; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 5 249 3 if token.type <> number or token.value > 0ffh then$do /* error, expected numberdef.(byte) or parameter */ 251 4 cm$error=true; 252 4 return; 253 4 end$if; 254 3 call put$b(token.value); 255 3 call scan; 256 3 if accum(0) <> rightpar then$do /* error,expected right paranthesis */ 258 4 cm$error=true; 259 4 return; 260 4 end$if; 261 3 call scan; /* skip right paranthesis */ 262 3 cmpt=cmpt-4; 263 3 if cm$b$var = mformalbits and accum(0) = rightpar then call scan; 265 3 cmpt=cmpt+4; 266 3 if accum(0) <> comma then return; 268 3 call scan; 269 3 end$forever; 270 2 end$proc field$descr$rout; 271 1 enddbit$rout: PROC; 272 2 call put$b(mendbit); 273 2 end$proc enddbit$rout; 274 1 endm$rout: PROC; 275 2 call put$b(mendm); 276 2 end$proc endm$rout; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 6 $eject /* level 1 in the syntax-tree of codemacrobuilding */ 277 1 COMMON$CM$ROUT: PROC (TYPE); 278 2 DECLARE TYPE BYTE; 279 2 if pass = 1 then$do 281 3 call skip$rest$of$line; 282 3 return; 283 3 end$if; 284 2 cm$error=false; 285 2 if not codemacro$flag then$do /* error, codemacro directive outside codemacrobodydef. */ 287 3 cm$error=true; 288 3 end$if; 289 2 DO CASE TYPE; 290 3 call db$dw$common$rout(mdbn); 291 3 call db$dw$common$rout(mdwn); 292 3 call d$s$rb$rw$rout(mddf); 293 3 call d$s$rb$rw$rout(msegfix); 294 3 call nosegfix$rout; 295 3 call modrm$rout; 296 3 call d$s$rb$rw$rout(mrelb); 297 3 call d$s$rb$rw$rout(mrelw); 298 3 DO; 299 4 call dbit$rout; 300 4 call field$descr$rout; 301 4 call enddbit$rout; 302 4 END; 303 3 END$CASE; 304 2 if cm$error or more$left$on$line then$do /* error */ 306 3 global$cm$error=true; 307 3 call errmsg(codemacroerr); 308 3 end$if; 309 2 call skip$rest$of$line; 310 2 END COMMON$CM$ROUT; 311 1 codemacro$rout: PROC public; 312 2 if pass = 1 then$do 314 3 codemacro$flag=true; 315 3 call skip$rest$of$line; 316 3 return; 317 3 end$if; 318 2 cm$error=false; 319 2 global$cm$error=false; 320 2 if codemacro$flag then$do /* error, nested codemacrodefinition */ 322 3 cm$error=true; 323 3 end$if; 324 2 call init$cm$rout; /* clearing all temp. working storages */ 325 2 codemacro$flag=true; 326 2 if not name$rout then$do /* error, expected codemacroname */ 328 3 cm$error=true; 329 3 end$if; 330 2 call formal$list$rout; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 7 331 2 if cm$error or more$left$on$line$ then$do /* error */ 333 3 global$cm$error=true; 334 3 call errmsg(codemacroerr); 335 3 end$if; 336 2 call skip$rest$of$line; 337 2 end$proc codemacro$rout; 338 1 db$cm$rout: PROC public; 339 2 CALL COMMON$CM$ROUT (0); 340 2 end$proc db$cm$rout; 341 1 dw$cm$rout: PROC public; 342 2 CALL COMMON$CM$ROUT (1); 343 2 end$proc dw$cm$rout; 344 1 dd$cm$rout: PROC public; 345 2 CALL COMMON$CM$ROUT (2); 346 2 end$proc dd$cm$rout; 347 1 segfix$cm$rout: PROC public; 348 2 CALL COMMON$CM$ROUT (3); 349 2 end$proc segfix$cm$rout; 350 1 nosegfix$cm$rout: PROC public; 351 2 CALL COMMON$CM$ROUT (4); 352 2 end$proc nosegfix$cm$rout; 353 1 modrm$cm$rout: PROC public; 354 2 CALL COMMON$CM$ROUT (5); 355 2 end$proc modrm$cm$rout; 356 1 relb$cm$rout: PROC public; 357 2 CALL COMMON$CM$ROUT (6); 358 2 end$proc relb$cm$rout; 359 1 relw$cm$rout: PROC public; 360 2 CALL COMMON$CM$ROUT (7); 361 2 end$proc relw$cm$rout; 362 1 dbit$cm$rout: PROC public; 363 2 CALL COMMON$CM$ROUT (8); 364 2 end$proc dbit$cm$rout; 365 1 end$cm$rout: PROC public; 366 2 if pass = 1 then$do 368 3 call skip$rest$of$line; 369 3 codemacro$flag=false; 370 3 return; 371 3 end$if; 372 2 cm$error=false; 373 2 if not codemacro$flag then$do /* error, terminating a not yet started codemacro */ 375 3 cm$error=true; 376 3 end$if; 377 2 call endm$rout; 378 2 if pass = 0 then call terminate$cm$rout; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 8 380 2 if cm$error or more$left$on$line or cm$list$overflow then$do /* error */ 382 3 call errmsg(codemacroerr); 383 3 end$if; 384 2 call skip$rest$of$line; 385 2 global$cm$error=false; 386 2 codemacro$flag=false; 387 2 end$proc end$cm$rout; 388 1 end$module cm1; PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 9 CROSS-REFERENCE LISTING ----------------------- DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES ----- ------ ----- -------------------------------- 56 0000H 4 ABSADDR. . . . . . BYTE ARRAY(4) EXTERNAL(51) 56 0000H 1 ACCLEN . . . . . . BYTE EXTERNAL(55) 81 105 141 163 200 232 56 0000H 1 ACCLENSAVE . . . . BYTE EXTERNAL(58) 56 0000H 80 ACCUM. . . . . . . BYTE ARRAY(80) EXTERNAL(56) 60 81 97 105 141 163 194 200 224 232 242 256 263 266 56 0000H 80 ACCUMSAVE. . . . . BYTE ARRAY(80) EXTERNAL(57) 2 ADDR . . . . . . . LITERALLY 56 49 0000H 1 B. . . . . . . . . BYTE PARAMETER 50 56 0008H 1 BASEINDEX. . . . . BYTE MEMBER(OPERANDS) 56 0008H 1 BASEINDEX. . . . . BYTE MEMBER(CURRENTSYMBOL) 8 BASEREGBIT . . . . LITERALLY 8 BASEREGCOUNT . . . LITERALLY 8 BREGBIT. . . . . . LITERALLY 8 BREGCOUNT. . . . . LITERALLY 4 BYT. . . . . . . . LITERALLY 56 0000H 2 CIP. . . . . . . . WORD EXTERNAL(20) 1 0000H CM1. . . . . . . . PROCEDURE STACK=0000H 214 0000H 1 CMBVAR . . . . . . BYTE BASED(CMPT) 238 263 35 0000H 1 CMERROR. . . . . . BYTE EXTERNAL(7) 71 87 92 99 112 117 132 149 154 171 176 185 196 206 218 226 234 244 251 258 284 287 304 318 322 328 331 372 375 380 35 0000H 1 CMLISTOVERFLOW . . BYTE EXTERNAL(9) 380 35 0000H 2 CMPT . . . . . . . WORD EXTERNAL(10) 214 237 238 239 262 263 265 3 CODE . . . . . . . LITERALLY 17 CODEMACROERR . . . LITERALLY 307 334 382 56 0000H 1 CODEMACROFLAG. . . BYTE EXTERNAL(77) 285 314 320 325 369 373 386 8 CODEMACROHEAD. . . LITERALLY 56 0000H 2 CODEMACROPTR . . . WORD EXTERNAL(72) 311 0313H 91 CODEMACROROUT. . . PROCEDURE PUBLIC STACK=0006H 55 COLON. . . . . . . LITERALLY 55 COMMA. . . . . . . LITERALLY 97 194 266 277 0286H 141 COMMONCMROUT . . . PROCEDURE STACK=0012H 339 342 345 348 351 354 357 360 363 2 CR . . . . . . . . LITERALLY 60 56 0000H 2 CSCIP. . . . . . . WORD EXTERNAL(25) 56 0000H 1 CSEGSPEC . . . . . BYTE EXTERNAL(23) 56 0000H 1 CSEGTYPE . . . . . BYTE EXTERNAL(21) 56 0000H 2 CSEGVALUE. . . . . WORD EXTERNAL(22) 12 CSOVER . . . . . . LITERALLY 56 0000H 1 CSPEC. . . . . . . BYTE EXTERNAL(32) 56 0000H 2 CURCSEG. . . . . . WORD EXTERNAL(28) 56 0000H 2 CURDSEG. . . . . . WORD EXTERNAL(29) 56 0000H 2 CURESEG. . . . . . WORD EXTERNAL(31) 56 0000H 9 CURRENTSYMBOL. . . STRUCTURE EXTERNAL(68) PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 10 56 0000H 2 CURSSEG. . . . . . WORD EXTERNAL(30) 338 036EH 11 DBCMROUT . . . . . PROCEDURE PUBLIC STACK=0016H 121 0092H 108 DBDWCOMMONROUT . . PROCEDURE STACK=000CH 290 291 362 03C6H 11 DBITCMROUT . . . . PROCEDURE PUBLIC STACK=0016H 210 019EH 11 DBITROUT . . . . . PROCEDURE STACK=0006H 299 2 DCL. . . . . . . . LITERALLY 344 0384H 11 DDCMROUT . . . . . PROCEDURE PUBLIC STACK=0016H 56 0000H 1 DEFAULTDRIVE . . . BYTE EXTERNAL(75) 3 DELETEDSYMB. . . . LITERALLY 56 0001H 1 DESCR. . . . . . . BYTE MEMBER(TOKEN) 121 0004H 1 DIRECTIVE. . . . . BYTE PARAMETER AUTOMATIC 122 125 126 143 159 0004H 1 DIRECTIVE. . . . . BYTE PARAMETER AUTOMATIC 160 165 3 DOUBLEDEFINED. . . LITERALLY 17 DOUBLEDEFLAB . . . LITERALLY 17 DOUBLEDEFSYMB. . . LITERALLY 17 DOUBLEDEFVAR . . . LITERALLY 16 DOUBLERANGE. . . . LITERALLY 56 0000H 2 DSCIP. . . . . . . WORD EXTERNAL(27) 12 DSOVER . . . . . . LITERALLY 56 0000H 1 DSPEC. . . . . . . BYTE EXTERNAL(33) 159 00FEH 56 DSRBRWROUT . . . . PROCEDURE STACK=000CH 292 293 296 297 341 0379H 11 DWCMROUT . . . . . PROCEDURE PUBLIC STACK=0016H 4 DWRD . . . . . . . LITERALLY 2 ELSEDO . . . . . . LITERALLY 30 0000H EMPTYLINE. . . . . PROCEDURE BYTE EXTERNAL(5) STACK=0000H 2 ENDCASE. . . . . . LITERALLY 365 03D1H 83 ENDCMROUT. . . . . PROCEDURE PUBLIC STACK=000AH 271 0270H 11 ENDDBITROUT. . . . PROCEDURE STACK=0006H 301 2 ENDDO. . . . . . . LITERALLY 2 ENDFOREVER . . . . LITERALLY 2 ENDIF. . . . . . . LITERALLY 2 ENDMODULE. . . . . LITERALLY 274 027BH 11 ENDMROUT . . . . . PROCEDURE STACK=0006H 377 2 ENDOFFILE. . . . . LITERALLY 17 ENDOFLINEERR . . . LITERALLY 2 ENDPROC. . . . . . LITERALLY 2 ENDWHILE . . . . . LITERALLY 56 0000H 1 EOFSET . . . . . . BYTE EXTERNAL(59) 32 0000H ERRMSG . . . . . . PROCEDURE EXTERNAL(6) STACK=0000H 307 334 382 32 0000H 1 ERRNO. . . . . . . BYTE PARAMETER 33 3 ERROR. . . . . . . LITERALLY 56 0000H 1 ERRORPRINTED . . . BYTE EXTERNAL(62) 56 0000H 2 ERRORS . . . . . . WORD EXTERNAL(52) 56 0000H 2 ESCIP. . . . . . . WORD EXTERNAL(24) 12 ESOVER . . . . . . LITERALLY 56 0000H 1 ESPEC. . . . . . . BYTE EXTERNAL(35) 2 FALSE. . . . . . . LITERALLY 62 284 318 319 369 372 385 386 213 01A9H 199 FIELDDESCRROUT . . PROCEDURE STACK=000AH 300 8 FILEISTRUCTURE . . LITERALLY 8 FILEOSTRUCTURE . . LITERALLY 17 FILESYNTERR. . . . LITERALLY 55 FIRST. . . . . . . LITERALLY 17 FIRSTITEM. . . . . LITERALLY 56 0000H 2 FIRSTMACROPTR. . . WORD EXTERNAL(63) 2 FOREVER. . . . . . LITERALLY 215 PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 11 40 0000H FORMALLISTROUT . . PROCEDURE EXTERNAL(13) STACK=0000H 330 2 FORMFEED . . . . . LITERALLY 56 0000H 1 FULLSYMBTAB. . . . BYTE EXTERNAL(65) 35 0000H 1 GLOBALCMERROR. . . BYTE EXTERNAL(8) 306 319 333 385 57 0000H GLOBALINIT . . . . PROCEDURE EXTERNAL(78) STACK=0000H 56 0000H 5 HELP . . . . . . . BYTE ARRAY(5) EXTERNAL(73) 56 0000H 1 I. . . . . . . . . BYTE EXTERNAL(74) 3 IDENT. . . . . . . LITERALLY 79 103 139 161 230 56 0000H 1 IFLEVEL. . . . . . BYTE EXTERNAL(67) 56 0000H 1 IFLIST . . . . . . BYTE EXTERNAL(38) 17 IFPARERR . . . . . LITERALLY 17 ILLEGALMACRO . . . LITERALLY 17 ILLEGALPSEUDO. . . LITERALLY 17 ILLEXPRELEM. . . . LITERALLY 17 ILLIOPER . . . . . LITERALLY 56 0000H 1 INCLUDEDEFAULT . . BYTE EXTERNAL(76) 56 0000H 1 INCLUDEON. . . . . BYTE EXTERNAL(66) 8 INDEXREGBIT. . . . LITERALLY 8 INDEXREGCOUNT. . . LITERALLY 2 INIT . . . . . . . LITERALLY 36 0000H INITCMROUT . . . . PROCEDURE EXTERNAL(11) STACK=0000H 324 17 INSTRERR . . . . . LITERALLY 56 0000H 1 INTELHEXON . . . . BYTE EXTERNAL(60) 8 IREGBIT. . . . . . LITERALLY 8 IREGCOUNT. . . . . LITERALLY 3 LAB. . . . . . . . LITERALLY 17 LABOUTOFRANGE. . . LITERALLY 7 LEFTBRACKET. . . . LITERALLY 55 LEFTPAR. . . . . . LITERALLY 224 242 44 0000H LEGALPARAMETER . . PROCEDURE BYTE EXTERNAL(15) STACK=0000H 81 105 141 163 200 232 47 0000H LEGALSEGREG. . . . PROCEDURE BYTE EXTERNAL(16) STACK=0000H 183 56 0000H 2 LENGTH . . . . . . WORD MEMBER(CURRENTSYMBOL) 56 0000H 2 LENGTH . . . . . . WORD MEMBER(OPERANDS) 2 LF . . . . . . . . LITERALLY 44 0000H 1 LG . . . . . . . . BYTE PARAMETER 45 2 LIT. . . . . . . . LITERALLY 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 55 56 0000H 2 MACROPTR . . . . . WORD EXTERNAL(64) 56 0000H 1 MAXCOL . . . . . . BYTE EXTERNAL(39) 9 MDBF . . . . . . . LITERALLY 9 MDBIT. . . . . . . LITERALLY 211 9 MDBN . . . . . . . LITERALLY 290 9 MDDF . . . . . . . LITERALLY 292 9 MDWF . . . . . . . LITERALLY 9 MDWN . . . . . . . LITERALLY 126 291 9 MENDBIT. . . . . . LITERALLY 272 9 MENDM. . . . . . . LITERALLY 275 9 MFORMALBITS. . . . LITERALLY 263 17 MISSIFERR. . . . . LITERALLY 17 MISSINGPSEUDO. . . LITERALLY 17 MISSINSTR. . . . . LITERALLY 17 MISSSEGMINFO . . . LITERALLY 17 MISSTYPEINFO . . . LITERALLY 9 MMODRM1. . . . . . LITERALLY 68 9 MMODRM2. . . . . . LITERALLY 83 PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 12 9 MNOSEGFIX. . . . . LITERALLY 182 9 MNUMBERBITS. . . . LITERALLY 221 11 MODB . . . . . . . LITERALLY 11 MODD . . . . . . . LITERALLY 15 MODLETTERBIT . . . LITERALLY 15 MODLETTERCOUNT . . LITERALLY 353 03A5H 11 MODRMCMROUT. . . . PROCEDURE PUBLIC STACK=0016H 64 0012H 128 MODRMROUT. . . . . PROCEDURE STACK=000AH 295 11 MODSB. . . . . . . LITERALLY 11 MODW . . . . . . . LITERALLY 59 0000H 18 MORELEFTONLINE . . PROCEDURE BYTE STACK=0002H 304 331 380 9 MRELB. . . . . . . LITERALLY 296 9 MRELW. . . . . . . LITERALLY 297 9 MSEGFIX. . . . . . LITERALLY 293 38 0000H NAMEROUT . . . . . PROCEDURE BYTE EXTERNAL(12) STACK=0000H 326 3 NEGLECTED. . . . . LITERALLY 17 NEGLECTERR . . . . LITERALLY 17 NESTEDIFERR. . . . LITERALLY 17 NESTEDINCLUDEERR . LITERALLY 56 0000H 1 NEXTCH . . . . . . BYTE EXTERNAL(54) 4 NIL. . . . . . . . LITERALLY 56 0000H 1 NOERROR. . . . . . BYTE EXTERNAL(61) 11 NOMOD. . . . . . . LITERALLY 56 0000H 1 NOOPER . . . . . . BYTE EXTERNAL(70) 8 NOOVERCOUNT. . . . LITERALLY 8 NOOVERRIDEBIT. . . LITERALLY 214 0004H 1 NOPAR. . . . . . . BYTE 232 240 181 0003H 1 NOPAR. . . . . . . BYTE 200 202 160 0002H 1 NOPAR. . . . . . . BYTE 163 166 122 0001H 1 NOPAR. . . . . . . BYTE 141 144 65 0000H 1 NOPAR. . . . . . . BYTE 81 84 105 107 13 NOPARAND . . . . . LITERALLY 16 NORANGE. . . . . . LITERALLY 350 039AH 11 NOSEGFIXCMROUT . . PROCEDURE PUBLIC STACK=0016H 180 0136H 104 NOSEGFIXROUT . . . PROCEDURE STACK=000AH 294 3 NUMBER . . . . . . LITERALLY 66 123 216 249 16 NUMBERRANGE. . . . LITERALLY 7 OAND . . . . . . . LITERALLY 7 OEQ. . . . . . . . LITERALLY 56 0006H 2 OFFSET . . . . . . WORD MEMBER(OPERANDS) 56 0006H 2 OFFSET . . . . . . WORD MEMBER(CURRENTSYMBOL) 7 OGE. . . . . . . . LITERALLY 7 OGT. . . . . . . . LITERALLY 7 OLAST. . . . . . . LITERALLY 7 OLE. . . . . . . . LITERALLY 7 OLENGTH. . . . . . LITERALLY 7 OLT. . . . . . . . LITERALLY 7 OMOD . . . . . . . LITERALLY 7 ONE. . . . . . . . LITERALLY 7 ONOT . . . . . . . LITERALLY 7 OOFFSET. . . . . . LITERALLY 7 OOR. . . . . . . . LITERALLY 56 0000H 36 OPERANDS . . . . . STRUCTURE ARRAY(4) EXTERNAL(71) 8 OPERANDSTRUC . . . LITERALLY 56 3 OPERATOR . . . . . LITERALLY 17 OPMISMATCH . . . . LITERALLY 7 OPTR . . . . . . . LITERALLY PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 13 7 OSEG . . . . . . . LITERALLY 7 OSHL . . . . . . . LITERALLY 7 OSHORT . . . . . . LITERALLY 7 OSHR . . . . . . . LITERALLY 7 OTYPE. . . . . . . LITERALLY 7 OXOR . . . . . . . LITERALLY 56 0000H 1 PAGESIZE . . . . . BYTE EXTERNAL(45) 56 0000H 1 PASS . . . . . . . BYTE EXTERNAL(19) 279 312 366 378 6 PCODEMACRO . . . . LITERALLY 6 PCSEG. . . . . . . LITERALLY 6 PDB. . . . . . . . LITERALLY 6 PDBIT. . . . . . . LITERALLY 6 PDD. . . . . . . . LITERALLY 6 PDSEG. . . . . . . LITERALLY 6 PDW. . . . . . . . LITERALLY 6 PEJECT . . . . . . LITERALLY 6 PEND . . . . . . . LITERALLY 6 PENDIF . . . . . . LITERALLY 6 PENDM. . . . . . . LITERALLY 6 PEQU . . . . . . . LITERALLY 6 PESEG. . . . . . . LITERALLY 6 PIF. . . . . . . . LITERALLY 6 PIFLIST. . . . . . LITERALLY 6 PINCLUDE . . . . . LITERALLY 6 PLIST. . . . . . . LITERALLY 6 PMODRM . . . . . . LITERALLY 6 PNOIFLIST. . . . . LITERALLY 6 PNOLIST. . . . . . LITERALLY 6 PNOSEGFIX. . . . . LITERALLY 6 PORG . . . . . . . LITERALLY 6 PPAGESIZE. . . . . LITERALLY 6 PPAGEWIDTH . . . . LITERALLY 6 PRB. . . . . . . . LITERALLY 56 0000H 240 PREFIX . . . . . . BYTE ARRAY(240) EXTERNAL(49) 13 PREFIXAND. . . . . LITERALLY 14 PREFIXON . . . . . LITERALLY 56 0000H 1 PREFIXPTR. . . . . BYTE EXTERNAL(50) 6 PRELB. . . . . . . LITERALLY 6 PRELW. . . . . . . LITERALLY 56 0000H 1 PRINTDEVICE. . . . BYTE EXTERNAL(42) 56 0000H 1 PRINTON. . . . . . BYTE EXTERNAL(36) 56 0000H 1 PRINTSWITCHOFF . . BYTE EXTERNAL(37) 2 PROC . . . . . . . LITERALLY 18 20 22 24 27 30 32 36 38 40 42 44 47 49 52 59 64 121 159 180 210 213 271 274 277 311 338 341 344 347 350 353 356 359 362 365 6 PRS. . . . . . . . LITERALLY 6 PRW. . . . . . . . LITERALLY 6 PSEGFIX. . . . . . LITERALLY 3 PSEUDO . . . . . . LITERALLY 17 PSEUDOOPERR. . . . LITERALLY 6 PSIMFORM . . . . . LITERALLY 6 PSSEG. . . . . . . LITERALLY 6 PTITLE . . . . . . LITERALLY 44 0000H 2 PTR. . . . . . . . WORD PARAMETER 45 44 0000H 2 PTR2 . . . . . . . WORD PARAMETER 45 49 0000H PUTB . . . . . . . PROCEDURE EXTERNAL(17) STACK=0000H 68 75 PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 14 83 84 107 125 133 143 144 165 166 182 188 189 190 191 202 211 221 222 240 254 272 275 52 0000H PUTW . . . . . . . PROCEDURE EXTERNAL(18) STACK=0000H 128 5 RAH. . . . . . . . LITERALLY 5 RAL. . . . . . . . LITERALLY 16 RANGEAND . . . . . LITERALLY 15 RANGESPECBIT . . . LITERALLY 15 RANGESPECCOUNT . . LITERALLY 16 RANGETYPEAND . . . LITERALLY 5 RAX. . . . . . . . LITERALLY 5 RBH. . . . . . . . LITERALLY 5 RBL. . . . . . . . LITERALLY 5 RBP. . . . . . . . LITERALLY 5 RBX. . . . . . . . LITERALLY 5 RCH. . . . . . . . LITERALLY 5 RCL. . . . . . . . LITERALLY 5 RCS. . . . . . . . LITERALLY 189 5 RCX. . . . . . . . LITERALLY 5 RDH. . . . . . . . LITERALLY 5 RDI. . . . . . . . LITERALLY 5 RDL. . . . . . . . LITERALLY 5 RDS. . . . . . . . LITERALLY 191 5 RDX. . . . . . . . LITERALLY 2 REENT. . . . . . . LITERALLY 3 REG. . . . . . . . LITERALLY 16 REGISTERRANGE. . . LITERALLY 356 03B0H 11 RELBCMROUT . . . . PROCEDURE PUBLIC STACK=0016H 359 03BBH 11 RELWCMROUT . . . . PROCEDURE PUBLIC STACK=0016H 5 RES. . . . . . . . LITERALLY 188 7 RIGHTBRACKET . . . LITERALLY 55 RIGHTPAR . . . . . LITERALLY 256 263 5 RSI. . . . . . . . LITERALLY 5 RSP. . . . . . . . LITERALLY 5 RSS. . . . . . . . LITERALLY 190 56 0000H 12 SAVESOURCE . . . . BYTE ARRAY(12) EXTERNAL(41) 20 0000H SCAN . . . . . . . PROCEDURE EXTERNAL(1) STACK=0000H 96 102 108 135 145 167 193 199 203 223 229 241 247 255 261 264 268 18 0000H SCANINIT . . . . . PROCEDURE EXTERNAL(0) STACK=0000H 55 SECOND . . . . . . LITERALLY 347 038FH 11 SEGFIXCMROUT . . . PROCEDURE PUBLIC STACK=0016H 8 SEGMBIT. . . . . . LITERALLY 8 SEGMCOUNT. . . . . LITERALLY 56 0004H 2 SEGMENT. . . . . . WORD MEMBER(OPERANDS) 56 0004H 2 SEGMENT. . . . . . WORD MEMBER(CURRENTSYMBOL) 8 SEGTYPEBIT . . . . LITERALLY 8 SEGTYPECOUNT . . . LITERALLY 56 0003H 1 SFLAG. . . . . . . BYTE MEMBER(OPERANDS) 56 0003H 1 SFLAG. . . . . . . BYTE MEMBER(CURRENTSYMBOL) 56 0000H 1 SIMFORM. . . . . . BYTE EXTERNAL(46) 16 SINGLERANGE. . . . LITERALLY 22 0000H SKIPRESTOFLINE . . PROCEDURE EXTERNAL(2) STACK=0000H 281 309 315 336 368 384 27 0000H SKIPUNTIL. . . . . PROCEDURE BYTE EXTERNAL(4) STACK=0000H 56 0000H 80 SOURCEBUF. . . . . BYTE ARRAY(80) EXTERNAL(47) 56 0000H 12 SOURCENAME . . . . BYTE ARRAY(12) EXTERNAL(40) PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 15 56 0000H 1 SOURCEPTR. . . . . BYTE EXTERNAL(48) 2 SPACE. . . . . . . LITERALLY 3 SPEC . . . . . . . LITERALLY 10 SPECA. . . . . . . LITERALLY 10 SPECC. . . . . . . LITERALLY 10 SPECD. . . . . . . LITERALLY 10 SPECE. . . . . . . LITERALLY 24 0000H SPECIALTOKEN . . . PROCEDURE BYTE EXTERNAL(3) STACK=0000H 10 SPECM. . . . . . . LITERALLY 10 SPECR. . . . . . . LITERALLY 10 SPECS. . . . . . . LITERALLY 10 SPECX. . . . . . . LITERALLY 56 0000H 2 SSCIP. . . . . . . WORD EXTERNAL(26) 12 SSOVER . . . . . . LITERALLY 56 0000H 1 SSPEC. . . . . . . BYTE EXTERNAL(34) 3 STRING . . . . . . LITERALLY 2 STRUC. . . . . . . LITERALLY 56 56 0002H 1 STYPE. . . . . . . BYTE MEMBER(OPERANDS) 56 0002H 1 STYPE. . . . . . . BYTE MEMBER(CURRENTSYMBOL) 3 SYMBOL . . . . . . LITERALLY 56 0000H 1 SYMBOLDEVICE . . . BYTE EXTERNAL(43) 8 SYMBOLHEAD . . . . LITERALLY 8 SYMBOLSTRUC. . . . LITERALLY 56 56 0000H 2 SYMBTABADR . . . . WORD EXTERNAL(69) 2 TAB. . . . . . . . LITERALLY 42 0000H TERMINATECMROUT. . PROCEDURE EXTERNAL(14) STACK=0000H 379 2 THENDO . . . . . . LITERALLY 66 69 79 81 97 103 105 123 126 139 141 161 163 194 200 216 224 230 232 242 249 256 279 285 304 312 320 326 331 366 373 380 56 0000H 30 TITLE. . . . . . . BYTE ARRAY(30) EXTERNAL(44) 27 0000H 1 TOK. . . . . . . . BYTE PARAMETER 28 24 0000H 1 TOK. . . . . . . . BYTE PARAMETER 25 56 0000H 4 TOKEN. . . . . . . STRUCTURE EXTERNAL(53) 66 69 75 79 103 123 128 131 133 139 161 216 222 230 249 254 2 TRUE . . . . . . . LITERALLY 61 71 87 92 99 112 117 132 149 154 171 176 185 196 206 215 218 226 234 244 251 258 287 306 314 322 325 328 333 375 277 0004H 1 TYPE . . . . . . . BYTE PARAMETER AUTOMATIC 278 289 56 0000H 1 TYPE . . . . . . . BYTE MEMBER(TOKEN) 66 79 103 123 139 161 216 230 249 8 TYPEBIT. . . . . . LITERALLY 8 TYPECOUNT. . . . . LITERALLY 3 UDEFSYMB . . . . . LITERALLY 17 UDEFSYMBOL . . . . LITERALLY 56 0002H 2 VALUE. . . . . . . WORD MEMBER(TOKEN) 69 75 128 131 133 216 222 249 254 3 VARIABLE . . . . . LITERALLY 52 0000H 2 W. . . . . . . . . WORD PARAMETER 53 4 WRD. . . . . . . . LITERALLY MODULE INFORMATION: PL/M-86 COMPILER CODEMACRO MODULE 1 10/5/81 PAGE 16 CODE AREA SIZE = 0424H 1060D CONSTANT AREA SIZE = 0000H 0D VARIABLE AREA SIZE = 0005H 5D MAXIMUM STACK SIZE = 0016H 22D 936 LINES READ 0 PROGRAM ERROR(S) END OF PL/M-86 COMPILATION