Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

821 lines
39 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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