Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102/c168/cskels.lis
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

1412 lines
49 KiB
Plaintext

1File: CSKELS.C Page 1
1 #include "cskel.h"
2 char ctnull[] {0};
3 char cteqa01[] {
4 LEA,' ',RADDR,',',LADDR,'\n',
5 MOVL,' ',LADDR,',',CR,'\n',
6 0 };
7 char cteqa02[] {
8 LEA,' ',RADDR,',',CAR,'\n',
9 MOVL,' ',CAR,',',LADDR,'\n',
10 MOVL,' ',CAR,',',CR,'\n',
11 0 };
12 char cteqa03[] {
13 LEFT,S_NEXT|S_INDR,
14 LEA,' ',RADDR,',',CAR,'\n',
15 MOVL,' ',CAR,',',LOFFSET,'(',NAR,')','\n',
16 MOVL,' ',CAR,',',CR,'\n',
17 0 };
18 struct skeleton fr_eqaddr[] {
19 SU_AREG|T_LONG, SU_ANY|T_ANY, cteqa01,
20 SU_AREG|T_LONG, SU_ANY|T_LONG, cteqa01,
21 SU_ADDR|T_LONG, SU_ANY|T_ANY, cteqa02,
22 SU_ADDR|T_LONG, SU_ANY|T_LONG, cteqa02,
23 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteqa03,
24 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteqa03,
25 0,
26 };
27 char cteqa04[] {
28 LEA,' ',RADDR,',',LADDR,'\n',
29 0 };
30 char cteqa05[] {
31 LEA,' ',RADDR,',',CAR,'\n',
32 MOVL,' ',CAR,',',LADDR,'\n',
33 0 };
34 char cteqa06[] {
35 LEFT,S_NEXT|S_INDR,
36 LEA,' ',RADDR,',',CAR,'\n',
37 MOVL,' ',CAR,',',LOFFSET,'(',NAR,')','\n',
38 0 };
39 struct skeleton fe_eqaddr[] {
40 SU_AREG|T_LONG, SU_ANY|T_ANY, cteqa04,
41 SU_AREG|T_LONG, SU_ANY|T_LONG, cteqa04,
42 SU_ADDR|T_LONG, SU_ANY|T_ANY, cteqa05,
43 SU_ADDR|T_LONG, SU_ANY|T_LONG, cteqa05,
44 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteqa06,
45 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteqa06,
46 0,
47 };
48 char ctcal01[] {
49 JSR,' ',LADDR,'\n',
50 0 };
51 char ctcal02[] {
52 LEFT,S_INDR,
53 JSR,' ',LOFFSET,'(',CAR,')','\n',
54 0 };
55 char ctcal03[] {
56 LEFT,0,
57 MOV,' ',CR,',',CAR,'\n',
58 JSR,' ','(',CAR,')','\n',
59 0 };
1File: CSKELS.C Page 2
60 struct skeleton fr_call[] {
61 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctcal01,
62 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctcal01,
63 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctcal02,
64 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctcal02,
65 SU_ANY|T_ANY, SU_ANY|T_ANY, ctcal03,
66 SU_ANY|T_LONG, SU_ANY|T_ANY, ctcal03,
67 0,
68 };
69 char ct109[] {
70 CLR,' ',CR,'\n',
71 0 };
72 char ctlod01[] {
73 CLR,TLEFT,' ',CR,'\n',
74 0 };
75 char ctlod02[] {
76 MOV,TLEFT,' ',LADDR,',',CR,'\n',
77 EXTW,' ',CR,'\n',
78 0 };
79 char ctlod03[] {
80 MOV,TLEFT,' ',LADDR,',',CR,'\n',
81 0 };
82 char ctlod04[] {
83 LEFT,S_INDR,
84 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
85 EXTW,' ',CR,'\n',
86 0 };
87 char ctlod05[] {
88 LEFT,S_INDR,
89 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
90 0 };
91 struct skeleton fr_ld[] {
92 SU_ZERO|T_CHAR, SU_ANY|T_ANY, ct109,
93 SU_ZERO|T_INT, SU_ANY|T_ANY, ctlod01,
94 SU_ZERO|T_LONG, SU_ANY|T_ANY, ctlod01,
95 SU_ADDR|T_CHAR, SU_ANY|T_ANY, ctlod02,
96 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctlod03,
97 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctlod03,
98 SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ctlod03,
99 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_ANY, ctlod04,
100 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctlod05,
101 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlod05,
102 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ctlod05,
103 0,
104 };
105 char ct115[] {
106 CLR,' ',PSH,'\n',
107 0 };
108 char ctlod06[] {
109 CLR,TLEFT,' ',PSH,'\n',
110 0 };
111 char ctlod07[] {
112 LEFT,0,
113 MOV,' ',CR,',',PSH,'\n',
114 0 };
115 char ctlod08[] {
116 MOV,TLEFT,' ',LADDR,',',PSH,'\n',
117 0 };
118 char ctlod09[] {
1File: CSKELS.C Page 3
119 LEFT,S_INDR,
120 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',PSH,'\n',
121 0 };
122 struct skeleton fs_ld[] {
123 SU_ZERO|T_CHAR, SU_ANY|T_ANY, ct115,
124 SU_ZERO|T_INT, SU_ANY|T_ANY, ctlod06,
125 SU_ZERO|T_LONG, SU_ANY|T_ANY, ctlod06,
126 SU_ADDR|T_CHAR, SU_ANY|T_ANY, ctlod07,
127 SU_ADDR|T_INT, SU_ANY|T_ANY, ctlod08,
128 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctlod08,
129 SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ctlod08,
130 SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ctlod09,
131 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlod09,
132 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ctlod09,
133 0,
134 };
135 char ctpst01[] {
136 MOV,TLEFT,' ',LADDR,',',CR,'\n',
137 OP,TLEFT,' ',RADDR,',',LADDR,'\n',
138 0 };
139 char ctpst02[] {
140 LEFT,S_INDR,
141 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
142 OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
143 0 };
144 struct skeleton fr_postop[] {
145 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctpst01,
146 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctpst01,
147 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctpst02,
148 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctpst02,
149 0,
150 };
151 char ctneg01[] {
152 LEFT,0,
153 OP,TLEFT,' ',CR,'\n',
154 0 };
155 char ctneg02[] {
156 LEFT,S_STACK,
157 JSR,' ',OPCALL,'\n',
158 POP4,0 };
159 struct skeleton fr_neg[] {
160 SU_ANY|T_ANY, SU_ANY|T_ANY, ctneg01,
161 SU_ANY|T_LONG, SU_ANY|T_ANY, ctneg01,
162 SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
163 0,
164 };
165 char ctasg01[] {
166 CLRL,' ',CR,'\n',
167 MOV,' ',RADDR,',',CR,'\n',
168 OP,TLEFT,' ',CR,',',LADDR,'\n',
169 0 };
170 char ctasg02[] {
171 RIGHT,0,
172 EXRL,
173 OP,TLEFT,' ',CR,',',LADDR,'\n',
174 0 };
175 char ctasg03[] {
176 LEFT,S_INDR,
177 CLRL,' ',CR,'\n',
1File: CSKELS.C Page 4
178 MOV,' ',RADDR,',',CR,'\n',
179 OP,TLEFT,' ',LOFFSET,'(',NAR,')',',',CR,'\n',
180 MOV,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
181 0 };
182 char ctasg04[] {
183 LEFT,S_INDR,
184 MOV,TRIGHT,' ',RADDR,',',CR,'\n',
185 EXRL,
186 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
187 0 };
188 char ctasg05[] {
189 RIGHT,0,
190 EXRL,
191 LEFT,S_NEXT|S_INDR,
192 OP,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
193 0 };
194 char ctasg06[] {
195 LEFT,S_STACK|S_INDR,
196 RIGHT,0,
197 EXRL,
198 MOVL,' ',POP,',',CAR,'\n',
199 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
200 0 };
201 struct skeleton fr_assign[] {
202 SU_ADDR|T_LONG, SU_ADDR|T_UNSN, ctasg01,
203 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg02,
204 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg02,
205 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
206 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
207 SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctasg02,
208 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_UNSN, ctasg03,
209 SU_ANY|T_ANY|T_INDR, SU_ADDR|T_INT, ctasg04,
210 SU_ANY|T_ANY|T_INDR, SU_ADDR|T_LONG, ctasg04,
211 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_INT, ctasg04,
212 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctasg04,
213 SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg04,
214 SU_EASY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
215 SU_EASY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
216 SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
217 SU_EASY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
218 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
219 SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctasg06,
220 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctasg06,
221 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctasg06,
222 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctasg06,
223 0,
224 };
225 char ctasg07[] {
226 AOP,TLEFT,' ',LADDR,'\n',
227 0 };
228 char ctasg08[] {
229 LEFT,S_INDR,
230 AOP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
231 0 };
232 char ctasg09[] {
233 OP,TLEFT,' ',RADDR,',',LADDR,'\n',
234 0 };
235 char ctasg10[] {
236 RIGHT,0,
1File: CSKELS.C Page 5
237 OP,TLEFT,' ',CR,',',LADDR,'\n',
238 0 };
239 char ctasg11[] {
240 OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
241 EXTW,' ',LADDR,'\n',
242 0 };
243 char ctasg12[] {
244 OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
245 EXTW,' ',LADDR,'\n',
246 EXTL,' ',LADDR,'\n',
247 0 };
248 char ctasg13[] {
249 CLRL,' ',LADDR,'\n',
250 MOV,' ',RADDR,',',LADDR,'\n',
251 0 };
252 char ctasg22[] {
253 OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
254 0 };
255 char ctasg14[] {
256 OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
257 EXTL,' ',LADDR,'\n',
258 0 };
259 char ctasg15[] {
260 MOV,' ',RADDR,',',CAR,'\n',
261 OP,TLEFT,' ',CAR,',',LADDR,'\n',
262 0 };
263 char ctasg16[] {
264 LEFT,S_INDR,
265 CLRL,' ',CR,'\n',
266 OP,' ',RADDR,',',CR,'\n',
267 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
268 0 };
269 char ctasg17[] {
270 RIGHT,S_INDR,
271 OP,TLEFT,' ',ROFFSET,'(',CAR,')',',',LADDR,'\n',
272 0 };
273 char ctasg18[] {
274 RIGHT,0,
275 EXRL,
276 OP,TLEFT,' ',CR,',',LADDR,'\n',
277 0 };
278 char ctasg19[] {
279 LEFT,S_INDR,
280 OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
281 0 };
282 char ctasg20[] {
283 LEFT,S_INDR,
284 RIGHT,S_NEXT|S_INDR,
285 OP,TLEFT,' ',ROFFSET,'(',NAR,')',',',LOFFSET,'(',CAR,')','\n',
286 0 };
287 char ct147[] {
288 RIGHT,S_STACK,
289 LEFT,S_INDR,
290 OP,TLEFT,' ',POP,',',LOFFSET,'(',CAR,')','\n',
291 0 };
292 struct skeleton fe_assign[] {
293 SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctasg07,
294 SU_ADDR|T_LONG, SU_ZERO|T_ANY, ctasg07,
295 SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctasg08,
1File: CSKELS.C Page 6
296 SU_ADDR|T_CHAR, SU_ADDR|T_CHAR, ctasg09,
297 SU_ADDR|T_INT, SU_ADDR|T_INT, ctasg09,
298 SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctasg09,
299 SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
300 SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
301 SU_ADDR|T_ANY, SU_REG|T_INT, ctasg09,
302 SU_ADDR|T_ANY, SU_REG|T_LONG, ctasg09,
303 SU_ADDR|T_FLOAT, SU_ADDR|T_FLOAT, ctasg09,
304 SU_AREG|T_LONG, SU_ADDR|T_CHAR, ctasg10,
305 SU_AREG|T_ANY, SU_ADDR|T_CHAR, ctasg10,
306 SU_REG|T_INT, SU_ADDR|T_CHAR, ctasg11,
307 SU_REG|T_LONG, SU_ADDR|T_CHAR, ctasg12,
308 SU_REG|T_LONG, SU_ADDR|T_UNSN, ctasg13,
309 SU_AREG|T_LONG, SU_ADDR|T_INT, ctasg22,
310 SU_REG|T_LONG, SU_ADDR|T_INT, ctasg14,
311 SU_ADDR|T_LONG, SU_ADDR|T_UNSN, ctasg01,
312 SU_ADDR|T_LONG, SU_ADDR|T_INT, ctasg15,
313 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_UNSN, ctasg16,
314 SU_ADDR|T_CHAR, SU_ANY|T_CHAR|T_INDR, ctasg17,
315 SU_ADDR|T_INT, SU_ANY|T_INT|T_INDR, ctasg17,
316 SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, ctasg17,
317 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg18,
318 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg18,
319 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg18,
320 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg18,
321 SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctasg19,
322 SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_CHAR, ctasg19,
323 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctasg19,
324 SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
325 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
326 SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg19,
327 SU_EASY|T_CHAR|T_INDR, SU_EASY|T_CHAR|T_INDR, ctasg20,
328 SU_EASY|T_INT|T_INDR, SU_EASY|T_INT|T_INDR, ctasg20,
329 SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG|T_INDR, ctasg20,
330 SU_EASY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
331 SU_EASY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
332 SU_EASY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
333 SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
334 SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ct147,
335 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ct147,
336 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
337 SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctasg06,
338 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctasg06,
339 SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg06,
340 0,
341 };
342 char ctbop01[] {
343 LEFT,0,
344 0 };
345 char ctbop02[] {
346 LEFT,0,
347 EXLR,
348 OP,TRIGHT,' ',RADDR,',',CR,'\n',
349 0 };
350 char ctbop03[] {
351 LEFT,0,
352 CLRL,' ',NR,'\n',
353 MOV,' ',RADDR,',',NR,'\n',
354 OP,TLEFT,' ',NR,',',CR,'\n',
1File: CSKELS.C Page 7
355 0 };
356 char ctbop04[] {
357 CLRL,' ',CR,'\n',
358 MOV,' ',LADDR,',',CR,'\n',
359 RIGHT,S_NEXT,
360 OP,TRIGHT,' ',NR,',',CR,'\n',
361 0 };
362 char ctbop05[] {
363 LEFT,0,
364 OP,TLEFT,' ',RADDR,',',CR,'\n',
365 0 };
366 char ctbop06[] {
367 LEFT,0,
368 EXLR,
369 RIGHT,S_NEXT,
370 EXRLN,
371 OP,TEITHER,' ',NR,',',CR,'\n',
372 0 };
373 char ctbop07[] {
374 RIGHT,0,
375 EXRL,
376 MOVL,' ',CR,',',PSH,'\n',
377 LEFT,0,
378 OP,TLEFT,' ',POP,',',CR,'\n',
379 0 };
380 char ctbop08[] {
381 RIGHT,S_STACK,
382 LEFT,0,
383 EXLR,
384 OP,TRIGHT,' ',POP,',',CR,'\n',
385 0 };
386 char ctbop09[] {
387 RIGHT,S_STACK,
388 LEFT,0,
389 OP,' ',POP,',',CR,'\n',
390 0 };
391 char ctbop12[] {
392 RIGHT,S_STACK,
393 LEFT,S_STACK,
394 JSR,' ',OPCALL,'\n',
395 POP8,0 };
396 struct skeleton fr_op[] {
397 SU_ANY|T_ANY, SU_ZERO|T_ANY, ctbop01,
398 SU_ANY|T_ANY, SU_ADDR|T_INT, ctbop02,
399 SU_ANY|T_ANY, SU_ADDR|T_LONG, ctbop02,
400 SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop02,
401 SU_ANY|T_LONG, SU_ADDR|T_UNSN, ctbop03,
402 SU_ADDR|T_UNSN, SU_ANY|T_LONG, ctbop04,
403 SU_ANY|T_LONG, SU_CONST|T_INT, ctbop05,
404 SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop05,
405 SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
406 SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
407 SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
408 SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
409 SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop07,
410 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop07,
411 SU_ANY|T_ANY, SU_ANY|T_LONG, ctbop08,
412 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop08,
413 SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop09,
1File: CSKELS.C Page 8
414 SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
415 0,
416 };
417 char ctbop10[] {
418 LEFT,S_STACK,
419 OP,TLEFTL,' ',RADDR,',',STK,'\n',
420 0 };
421 char ctbop11[] {
422 LEFT,S_STACK,
423 RIGHT,0,
424 OP,TLEFTL,' ',CR,',',STK,'\n',
425 0 };
426 struct skeleton fs_op[] {
427 SU_ANY|T_ANY, SU_CONST|T_INT, ctbop10,
428 SU_ANY|T_LONG, SU_CONST|T_INT, ctbop10,
429 SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop11,
430 0,
431 };
432 char ctxor01[] {
433 LEFT,S_STACK,
434 RIGHT,0,
435 OP,' ',CR,',',STK,'\n',
436 MOV,' ',POP,',',CR,'\n',
437 0 };
438 struct skeleton fr_xor[] {
439 SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
440 SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
441 SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
442 SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
443 SU_ANY|T_ANY, SU_ANY|T_ANY, ctxor01,
444 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop07,
445 0,
446 };
447 char ctshf01[] {
448 LEFT,0,
449 OP,TLEFTL,' ',RADDR,',',CR,'\n',
450 0 };
451 char ctshf02[] {
452 LEFT,0,
453 RIGHT,S_NEXT,
454 OP,TLEFTL,' ',NR,',',CR,'\n',
455 0 };
456 char ctshf03[] {
457 RIGHT,S_STACK,
458 LEFT,0,
459 MOV,TRIGHT,' ',POP,',',NR,'\n',
460 OP,TLEFTL,' ',NR,',',CR,'\n',
461 0 };
462 struct skeleton fr_shft[] {
463 SU_ANY|T_ANY, SU_ZERO|T_ANY, ctbop01,
464 SU_ANY|T_LONG, SU_ZERO|T_ANY, ctbop01,
465 SU_ANY|T_ANY, SU_SMALL|T_INT, ctshf01,
466 SU_ANY|T_LONG, SU_SMALL|T_INT, ctshf01,
467 SU_ANY|T_ANY, SU_EASY|T_ANY, ctshf02,
468 SU_ANY|T_ANY, SU_EASY|T_LONG, ctshf02,
469 SU_ANY|T_LONG, SU_EASY|T_ANY, ctshf02,
470 SU_ANY|T_LONG, SU_EASY|T_LONG, ctshf02,
471 SU_ANY|T_ANY, SU_ANY|T_ANY, ctshf03,
472 SU_ANY|T_ANY, SU_ANY|T_LONG, ctshf03,
1File: CSKELS.C Page 9
473 SU_ANY|T_LONG, SU_ANY|T_ANY, ctshf03,
474 SU_ANY|T_LONG, SU_ANY|T_LONG, ctshf03,
475 0,
476 };
477 char ctmul01[] {
478 LEFT,0,
479 OP,' ',RADDR,',',CR,'\n',
480 0 };
481 char ctmul02[] {
482 LEFT,0,
483 RIGHT,S_NEXT|S_INDR,
484 OP,' ',ROFFSET,'(',NAR,')',',',CR,'\n',
485 0 };
486 char ctmul03[] {
487 LEFT,0,
488 RIGHT,S_NEXT,
489 OP,' ',NR,',',CR,'\n',
490 0 };
491 char ctmul04[] {
492 RIGHT,S_STACK,
493 LEFT,0,
494 OP,' ',POP,',',CR,'\n',
495 0 };
496 char ctmul05[] {
497 MOVL,' ',RADDR,',',PSH,'\n',
498 LEFT,S_STACK,
499 JSR,' ',OPCALL,'\n',
500 POP8,0 };
501 char ctmul06[] {
502 RIGHT,0,
503 EXRL,
504 MOVL,' ',CR,',',PSH,'\n',
505 LEFT,S_STACK,
506 JSR,' ',OPCALL,'\n',
507 POP8,0 };
508 char ctmul07[] {
509 LEFT,0,
510 EXLR,
511 MOVL,' ',CR,',',PSH,'\n',
512 RIGHT,S_STACK,
513 JSR,' ',OPCALL,'\n',
514 POP8,0 };
515 struct skeleton fr_mult[] {
516 SU_ANY|T_ANY, SU_ADDR|T_ANY, ctmul01,
517 SU_ANY|T_ANY, SU_EASY|T_ANY|T_INDR, ctmul02,
518 SU_ANY|T_ANY, SU_EASY|T_ANY, ctmul03,
519 SU_ANY|T_ANY, SU_ANY|T_ANY, ctmul04,
520 SU_ANY|T_LONG, SU_CONST|T_INT, ctmul05,
521 SU_ANY|T_LONG, SU_ANY|T_ANY, ctmul06,
522 SU_ANY|T_ANY, SU_ANY|T_LONG, ctmul07,
523 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop12,
524 SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
525 0,
526 };
527 char ctdiv01[] {
528 CLRL,' ',CR,'\n',
529 MOV,' ',LADDR,',',CR,'\n',
530 OP,' ',RADDR,',',CR,'\n',
531 MODSWAP,0 };
1File: CSKELS.C Page 10
532 char ctdiv02[] {
533 LEFT,0,
534 EXL,
535 OP,' ',RADDR,',',CR,'\n',
536 MODSWAP,0 };
537 char ctdiv03[] {
538 RIGHT,S_INDR,
539 CLRL,' ',CR,'\n',
540 MOV,' ',LADDR,',',CR,'\n',
541 OP,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
542 MODSWAP,0 };
543 char ctdiv04[] {
544 LEFT,0,
545 EXL,
546 RIGHT,S_NEXT|S_INDR,
547 OP,' ',ROFFSET,'(',NAR,')',',',CR,'\n',
548 MODSWAP,0 };
549 char ctdiv05[] {
550 CLRL,' ',CR,'\n',
551 MOV,' ',LADDR,',',CR,'\n',
552 RIGHT,S_NEXT,
553 OP,' ',NR,',',CR,'\n',
554 MODSWAP,0 };
555 char ctdiv06[] {
556 LEFT,0,
557 EXL,
558 RIGHT,S_NEXT,
559 OP,' ',NR,',',CR,'\n',
560 MODSWAP,0 };
561 char ctdiv07[] {
562 RIGHT,S_STACK,
563 LEFT,0,
564 EXL,
565 OP,' ',POP,',',CR,'\n',
566 MODSWAP,0 };
567 struct skeleton fr_div[] {
568 SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctdiv01,
569 SU_ANY|T_ANY, SU_ADDR|T_INT, ctdiv02,
570 SU_ANY|T_LONG, SU_ADDR|T_INT, ctdiv02,
571 SU_ADDR|T_UNSN, SU_EASY|T_INT|T_INDR, ctdiv03,
572 SU_ANY|T_ANY, SU_EASY|T_INT|T_INDR, ctdiv04,
573 SU_ANY|T_LONG, SU_EASY|T_INT|T_INDR, ctdiv04,
574 SU_ADDR|T_UNSN, SU_EASY|T_ANY, ctdiv05,
575 SU_ANY|T_ANY, SU_EASY|T_ANY, ctdiv06,
576 SU_ANY|T_LONG, SU_EASY|T_ANY, ctdiv06,
577 SU_ANY|T_ANY, SU_ANY|T_ANY, ctdiv07,
578 SU_ANY|T_LONG, SU_ANY|T_ANY, ctdiv07,
579 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop12,
580 SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
581 0,
582 };
583 char ctreo01[] {
584 OP,TLEFT,' ',RADDR,',',LADDR,'\n',
585 MOV,TLEFT,' ',LADDR,',',CR,'\n',
586 0 };
587 char ctreo02[] {
588 CLRL,' ',CR,'\n',
589 MOV,TLEFT,' ',LADDR,',',CR,'\n',
590 OP,TRIGHT,' ',RADDR,',',CR,'\n',
1File: CSKELS.C Page 11
591 MOV,TLEFT,' ',CR,',',LADDR,'\n',
592 0 };
593 char ctreo03[] {
594 LEFT,0,
595 EXLR,
596 OP,TRIGHT,' ',RADDR,',',CR,'\n',
597 MOV,TLEFT,' ',CR,',',LADDR,'\n',
598 0 };
599 char ctreo04[] {
600 RIGHT,S_INDR,
601 CLRL,' ',CR,'\n',
602 MOV,TLEFT,' ',LADDR,',',CR,'\n',
603 OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
604 MOV,TLEFT,' ',CR,',',LADDR,'\n',
605 0 };
606 char ctreo05[] {
607 RIGHT,S_INDR,
608 LEFT,0,
609 EXLR,
610 OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
611 MOV,TLEFT,' ',CR,',',LADDR,'\n',
612 0 };
613 char ctreo06[] {
614 RIGHT,S_STACK,
615 LEFT,S_STACK,
616 JSR,' ',OPCALL,'\n',
617 POP8,MOV,TLEFT,' ',CR,',',LADDR,'\n',
618 0 };
619 char ctreo07[] {
620 CLRL,' ',CR,'\n',
621 MOV,TLEFT,' ',LADDR,',',CR,'\n',
622 RIGHT,S_NEXT,
623 EXRLN,
624 OP,TRIGHT,' ',NR,',',CR,'\n',
625 MOV,TLEFT,' ',CR,',',LADDR,'\n',
626 0 };
627 char ctreo08[] {
628 LEFT,0,
629 EXLR,
630 RIGHT,S_NEXT,
631 EXRLN,
632 OP,TEITHER,' ',NR,',',CR,'\n',
633 MOV,TLEFT,' ',CR,',',LADDR,'\n',
634 0 };
635 char ctreo09[] {
636 RIGHT,S_STACK,
637 CLRL,' ',CR,'\n',
638 MOV,TLEFT,' ',LADDR,',',CR,'\n',
639 OP,TRIGHT,' ',POP,',',CR,'\n',
640 MOV,TLEFT,' ',CR,',',LADDR,'\n',
641 0 };
642 char ctreo10[] {
643 RIGHT,S_STACK,
644 LEFT,0,
645 EXLR,
646 OP,TRIGHT,' ',POP,',',CR,'\n',
647 MOV,TLEFT,' ',CR,',',LADDR,'\n',
648 0 };
649 char ctreo11[] {
1File: CSKELS.C Page 12
650 RIGHT,0,
651 EXRL,
652 MOV,TLEFT,' ',CR,',',PSH,'\n',
653 LEFT,0,
654 OP,TLEFT,' ',POP,',',CR,'\n',
655 MOV,TLEFT,' ',CR,',',LADDR,'\n',
656 0 };
657 char ctreo12[] {
658 RIGHT,S_STACK,
659 LEFT,0,
660 OP,' ',POP,',',CR,'\n',
661 MOV,TLEFT,' ',CR,',',LADDR,'\n',
662 0 };
663 char ctreo13[] {
664 LEFT,S_INDR,
665 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
666 EXTW,'\n',
667 EXLR,
668 OP,TRIGHT,' ',RADDR,',',CR,'\n',
669 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
670 0 };
671 char ctreo14[] {
672 LEFT,S_INDR,
673 OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
674 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
675 0 };
676 char ctreo15[] {
677 LEFT,S_INDR,
678 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
679 EXLR,
680 OP,TRIGHT,' ',RADDR,',',CR,'\n',
681 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
682 0 };
683 char ctreo16[] {
684 RIGHT,S_NEXT,
685 EXRLN,
686 LEFT,S_INDR,
687 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
688 EXLR,
689 OP,TRIGHT,' ',NR,',',CR,'\n',
690 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
691 0 };
692 char ctreo17[] {
693 RIGHT,S_NEXT,
694 LEFT,S_INDR,
695 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
696 EXTW,'\n',
697 EXLR,
698 OP,TRIGHT,' ',NR,',',CR,'\n',
699 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
700 0 };
701 char ctreo18[] {
702 RIGHT,S_NEXT,
703 LEFT,S_INDR,
704 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
705 EXTW,'\n',
706 OP,' ',NR,',',CR,'\n',
707 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
708 0 };
1File: CSKELS.C Page 13
709 char ctreo19[] {
710 RIGHT,S_STACK,
711 LEFT,S_INDR,
712 MOV,TLEFT,' ',CR,',',PSH,'\n',
713 JSR,' ',OPCALL,'\n',
714 POP8,MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
715 0 };
716 char ctreo20[] {
717 RIGHT,S_STACK,
718 LEFT,S_INDR,
719 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
720 EXLR,
721 OP,TRIGHT,' ',POP,',',CR,'\n',
722 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
723 0 };
724 char ctreo21[] {
725 RIGHT,S_STACK,
726 LEFT,S_INDR,
727 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
728 EXTW,'\n',
729 EXLR,
730 OP,TRIGHT,' ',POP,',',CR,'\n',
731 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
732 0 };
733 char ctreo22[] {
734 RIGHT,0,
735 EXRL,
736 MOV,TLEFT,' ',CR,',',PSH,'\n',
737 LEFT,S_INDR,
738 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
739 OP,TLEFT,' ',POP,',',CR,'\n',
740 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
741 0 };
742 char ctreo23[] {
743 RIGHT,S_STACK,
744 LEFT,S_INDR,
745 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
746 EXTW,'\n',
747 OP,' ',POP,',',CR,'\n',
748 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
749 0 };
750 struct skeleton fr_eqop[] {
751 SU_ADDR|T_INT, SU_CONST|T_INT, ctreo01,
752 SU_ADDR|T_LONG, SU_CONST|T_INT, ctreo01,
753 SU_ADDR|T_UNSN, SU_ADDR|T_LONG, ctreo02,
754 SU_ADDR|T_CHAR, SU_CONST|T_INT, ctreo03,
755 SU_ADDR|T_ANY, SU_ADDR|T_INT, ctreo03,
756 SU_ADDR|T_ANY, SU_ADDR|T_LONG, ctreo03,
757 SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctreo03,
758 SU_ADDR|T_UNSN, SU_ANY|T_LONG|T_INDR, ctreo04,
759 SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, ctreo05,
760 SU_ADDR|T_ANY, SU_ANY|T_LONG|T_INDR, ctreo05,
761 SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, ctreo05,
762 SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
763 SU_ADDR|T_UNSN, SU_EASY|T_LONG, ctreo07,
764 SU_ADDR|T_ANY, SU_EASY|T_ANY, ctreo08,
765 SU_ADDR|T_ANY, SU_EASY|T_LONG, ctreo08,
766 SU_ADDR|T_LONG, SU_EASY|T_ANY, ctreo08,
767 SU_ADDR|T_LONG, SU_EASY|T_LONG, ctreo08,
1File: CSKELS.C Page 14
768 SU_ADDR|T_UNSN, SU_ANY|T_LONG, ctreo09,
769 SU_ADDR|T_ANY, SU_ANY|T_INT, ctreo10,
770 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctreo10,
771 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctreo10,
772 SU_ADDR|T_INT, SU_ANY|T_CHAR, ctreo11,
773 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctreo11,
774 SU_ADDR|T_CHAR, SU_ANY|T_CHAR, ctreo12,
775 SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_INT, ctreo13,
776 SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_LONG, ctreo13,
777 SU_ANY|T_INT|T_INDR, SU_CONST|T_INT, ctreo14,
778 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctreo14,
779 SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctreo15,
780 SU_ANY|T_INT|T_INDR, SU_ADDR|T_LONG, ctreo15,
781 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctreo15,
782 SU_ANY|T_INT|T_INDR, SU_EASY|T_ANY, ctreo16,
783 SU_ANY|T_INT|T_INDR, SU_EASY|T_LONG, ctreo16,
784 SU_ANY|T_LONG|T_INDR, SU_EASY|T_ANY, ctreo16,
785 SU_ANY|T_LONG|T_INDR, SU_EASY|T_LONG, ctreo16,
786 SU_ANY|T_CHAR|T_INDR, SU_EASY|T_INT, ctreo17,
787 SU_ANY|T_CHAR|T_INDR, SU_EASY|T_LONG, ctreo17,
788 SU_ANY|T_CHAR|T_INDR, SU_EASY|T_CHAR, ctreo18,
789 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
790 SU_ANY|T_INT|T_INDR, SU_ANY|T_INT, ctreo20,
791 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_INT, ctreo21,
792 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_LONG, ctreo21,
793 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctreo22,
794 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_CHAR, ctreo23,
795 0,
796 };
797 char cteop01[] {
798 RIGHT,S_INDR,
799 MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
800 OP,TLEFT,' ',CR,',',LADDR,'\n',
801 0 };
802 char cteop02[] {
803 RIGHT,S_INDR,
804 LEFT,S_NEXT|S_INDR,
805 MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
806 OP,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
807 0 };
808 char cteop03[] {
809 RIGHT,S_INDR,
810 MOV,TLEFT,' ',LADDR,',',NR,'\n',
811 OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',NR,'\n',
812 MOV,TLEFT,' ',NR,',',LADDR,'\n',
813 0 };
814 char cteop04[] {
815 RIGHT,0,
816 MOV,TLEFT,' ',LADDR,',',NR,'\n',
817 OP,TLEFT,' ',CR,',',NR,'\n',
818 MOV,TLEFT,' ',NR,',',LADDR,'\n',
819 0 };
820 char cteop05[] {
821 RIGHT,S_STACK,
822 LEFT,S_INDR,
823 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
824 OP,TRIGHT,' ',POP,',',CR,'\n',
825 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
826 0 };
1File: CSKELS.C Page 15
827 char cteop06[] {
828 CLRL,' ',CR,'\n',
829 MOV,' ',RADDR,',',CR,'\n',
830 OP,TLEFT,' ',RADDR,',',LADDR,'\n',
831 0 };
832 char cteop07[] {
833 RIGHT,0,
834 EXRL,
835 OP,TLEFT,' ',CR,',',LADDR,'\n',
836 0 };
837 char cteop08[] {
838 RIGHT,S_STACK,
839 LEFT,S_INDR,
840 MOV,TRIGHT,' ',POP,',',CR,'\n',
841 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
842 0 };
843 char cteop09[] {
844 LEFT,S_INDR,
845 MOV,TRIGHT,' ',RADDR,',',CR,'\n',
846 EXRL,
847 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
848 0 };
849 char cteop10[] {
850 RIGHT,S_STACK,
851 LEFT,S_INDR,
852 MOV,TRIGHT,' ',POP,',',CR,'\n',
853 EXRL,
854 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
855 0 };
856 struct skeleton fe_eqop[] {
857 SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctnull,
858 SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctnull,
859 SU_ANY|T_LONG, SU_ZERO|T_ANY, ctnull,
860 SU_ANY|T_LONG|T_INDR, SU_ZERO|T_ANY, ctnull,
861 SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
862 SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
863 SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
864 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
865 SU_ADDR|T_LONG, SU_AREG|T_LONG, ctasg02,
866 SU_ADDR|T_INT, SU_REG|T_INT, ctasg09,
867 SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
868 SU_ADDR|T_LONG, SU_REG|T_LONG, ctasg09,
869 SU_REG|T_LONG, SU_ADDR|T_LONG, ctasg09,
870 SU_AREG|T_LONG, SU_REG|T_INT, ctasg22,
871 SU_ADDR|T_INT, SU_ADDR|T_INT, ctasg02,
872 SU_ADDR|T_CHAR, SU_ADDR|T_CHAR, ctasg02,
873 SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctasg02,
874 SU_ADDR|T_INT, SU_ANY|T_INT|T_INDR, cteop01,
875 SU_ADDR|T_INT, SU_ANY|T_ANY, ctasg02,
876 SU_EASY|T_INT|T_INDR, SU_ANY|T_INT|T_INDR, cteop02,
877 SU_EASY|T_LONG|T_INDR, SU_ANY|T_LONG|T_INDR, cteop02,
878 SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, cteop03,
879 SU_ADDR|T_ANY, SU_ANY|T_ANY, cteop04,
880 SU_EASY|T_INT|T_INDR, SU_EASY|T_ANY, ctasg05,
881 SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ctasg06,
882 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, cteop05,
883 SU_REG|T_LONG, SU_ADDR|T_UNSN, cteop06,
884 SU_REG|T_LONG, SU_ADDR|T_ANY, cteop07,
885 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
1File: CSKELS.C Page 16
886 SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, cteop01,
887 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
888 SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
889 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteop08,
890 SU_ANY|T_LONG|T_INDR, SU_ADDR|T_ANY, cteop09,
891 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteop10,
892 0,
893 };
894 struct skeleton fr_eqmult[] {
895 SU_ADDR|T_ANY, SU_ADDR|T_INT, ctreo03,
896 SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, ctreo05,
897 SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
898 SU_ADDR|T_ANY, SU_EASY|T_ANY, ctreo08,
899 SU_ADDR|T_ANY, SU_ANY|T_INT, ctreo10,
900 SU_ADDR|T_INT, SU_ANY|T_CHAR, ctreo11,
901 SU_ADDR|T_CHAR, SU_ANY|T_CHAR, ctreo12,
902 SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_INT, ctreo13,
903 SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctreo15,
904 SU_ANY|T_INT|T_INDR, SU_EASY|T_ANY, ctreo16,
905 SU_ANY|T_CHAR|T_INDR, SU_EASY|T_INT, ctreo17,
906 SU_ANY|T_CHAR|T_INDR, SU_EASY|T_CHAR, ctreo18,
907 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
908 SU_ANY|T_INT|T_INDR, SU_ANY|T_INT, ctreo20,
909 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_INT, ctreo21,
910 SU_ANY|T_CHAR|T_INDR, SU_ANY|T_CHAR, ctreo23,
911 0,
912 };
913 char ct247[] {
914 AOP,' ',RADDR,',',LADDR,'\n',
915 0 };
916 struct skeleton fe_eqmult[] {
917 SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
918 SU_REG|T_UNSN, SU_ADDR|T_INT, ct247,
919 SU_REG|T_UNSN, SU_ADDR|T_UNSN, ct247,
920 0,
921 };
922 char ctedv01[] {
923 CLRL,' ',CR,'\n',
924 MOV,TLEFT,' ',LADDR,',',CR,'\n',
925 OP,' ',RADDR,',',CR,'\n',
926 MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
927 0 };
928 char ct249[] {
929 OP,' ',RADDR,',',LADDR,'\n',
930 EXTL,' ',LADDR,'\n',
931 0 };
932 char ct250[] {
933 EXTL,' ',LADDR,'\n',
934 OP,' ',RADDR,',',LADDR,'\n',
935 0 };
936 struct skeleton fe_eqdiv[] {
937 SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
938 SU_REG|T_LONG, SU_ADDR|T_INT, ct249,
939 SU_REG|T_INT, SU_ADDR|T_INT, ct250,
940 0,
941 };
942 char ct252[] {
943 OP,' ',RADDR,',',LADDR,'\n',
944 's','w','a','p',' ',LADDR,'\n',
1File: CSKELS.C Page 17
945 EXTL,' ',LADDR,'\n',
946 0 };
947 char ct253[] {
948 EXTL,' ',LADDR,'\n',
949 OP,' ',RADDR,',',LADDR,'\n',
950 's','w','a','p',' ',LADDR,'\n',
951 0 };
952 struct skeleton fe_eqmod[] {
953 SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
954 SU_REG|T_LONG, SU_ADDR|T_INT, ct252,
955 SU_REG|T_INT, SU_ADDR|T_INT, ct253,
956 0,
957 };
958 char ctedv02[] {
959 MOV,TLEFT,' ',LADDR,',',CR,'\n',
960 EXL,
961 OP,' ',RADDR,',',CR,'\n',
962 MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
963 0 };
964 char ctedv03[] {
965 CLRL,' ',CR,'\n',
966 MOV,' ',LADDR,',',CR,'\n',
967 RIGHT,S_NEXT,
968 OP,' ',NR,',',CR,'\n',
969 MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
970 0 };
971 char ctedv04[] {
972 LEFT,0,
973 OP,' ',RADDR,',',CR,'\n',
974 MODSWAP,EXRL,
975 MOV,TLEFT,' ',CR,',',LADDR,'\n',
976 0 };
977 char ctedv05[] {
978 RIGHT,S_STACK,
979 LEFT,0,
980 EXL,
981 OP,' ',POP,',',CR,'\n',
982 MODSWAP,EXRL,
983 MOV,TLEFT,' ',CR,',',LADDR,'\n',
984 0 };
985 char ctedv06[] {
986 RIGHT,S_STACK,
987 LEFT,S_INDR,
988 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
989 EXL,
990 OP,' ',POP,',',CR,'\n',
991 MODSWAP,EXRL,
992 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
993 0 };
994 struct skeleton fr_eqdiv[] {
995 SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
996 SU_ADDR|T_ANY, SU_ADDR|T_INT, ctedv02,
997 SU_ADDR|T_UNSN, SU_EASY|T_ANY, ctedv03,
998 SU_ADDR|T_LONG, SU_ADDR|T_INT, ctedv04,
999 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctedv05,
1000 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctedv05,
1001 SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
1002 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctedv06,
1003 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctedv06,
1File: CSKELS.C Page 18
1004 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
1005 0,
1006 };
1007 char ctexo01[] {
1008 RIGHT,0,
1009 EXRL,
1010 OP,TLEFT,' ',CR,',',LADDR,'\n',
1011 MOV,TLEFT,' ',LADDR,',',CR,'\n',
1012 0 };
1013 char ctexo02[] {
1014 LEFT,S_STACK|S_INDR,
1015 RIGHT,0,
1016 EXRL,
1017 MOVL,' ',POP,',',CAR,'\n',
1018 OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
1019 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
1020 0 };
1021 struct skeleton fr_eqxor[] {
1022 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctexo01,
1023 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctexo01,
1024 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctexo01,
1025 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctexo01,
1026 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctexo02,
1027 SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctexo02,
1028 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctexo02,
1029 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctexo02,
1030 0,
1031 };
1032 char ctexo05[] {
1033 MOV,TRIGHT,' ',RADDR,',',CR,'\n',
1034 OP,TLEFT,' ',CR,',',LADDR,'\n',
1035 0 };
1036 struct skeleton fe_eqxor[] {
1037 SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
1038 SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
1039 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg02,
1040 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg02,
1041 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
1042 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
1043 SU_ANY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
1044 SU_ANY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
1045 SU_ANY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
1046 SU_ANY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
1047 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
1048 SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
1049 SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctexo05,
1050 SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, cteop01,
1051 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
1052 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
1053 SU_EASY|T_LONG|T_INDR, SU_ANY|T_LONG, ctasg05,
1054 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteop08,
1055 0,
1056 };
1057 char ctesh01[] {
1058 OP,TLEFT,' ',LADDR,'\n',
1059 MOV,TLEFT,' ',LADDR,',',CR,'\n',
1060 0 };
1061 char ctesh02[] {
1062 LEFT,S_INDR,
1File: CSKELS.C Page 19
1063 OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
1064 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
1065 0 };
1066 char ctesh03[] {
1067 LEFT,0,
1068 OP,TLEFT,' ',RADDR,',',CR,'\n',
1069 MOV,TLEFT,' ',CR,',',LADDR,'\n',
1070 0 };
1071 char ctesh05[] {
1072 RIGHT,S_NEXT,
1073 MOV,TLEFT,' ',LADDR,',',CR,'\n',
1074 OP,TLEFT,' ',NR,',',CR,'\n',
1075 MOV,TLEFT,' ',CR,',',LADDR,'\n',
1076 0 };
1077 char ctesh06[] {
1078 LEFT,S_INDR,
1079 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
1080 OP,TLEFT,' ',RADDR,',',CR,'\n',
1081 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
1082 0 };
1083 char ctesh07[] {
1084 LEFT,S_INDR,
1085 RIGHT,S_NEXT,
1086 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
1087 OP,TLEFT,' ',NR,',',CR,'\n',
1088 MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
1089 0 };
1090 struct skeleton fr_eqshft[] {
1091 SU_ADDR|T_INT, SU_ONE|T_ANY, ctesh01,
1092 SU_ANY|T_INT|T_INDR, SU_ONE|T_ANY, ctesh02,
1093 SU_ADDR|T_ANY, SU_SMALL|T_INT, ctesh03,
1094 SU_ADDR|T_LONG, SU_SMALL|T_INT, ctesh03,
1095 SU_ADDR|T_ANY, SU_ANY|T_ANY, ctesh05,
1096 SU_ADDR|T_ANY, SU_ANY|T_LONG, ctesh05,
1097 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctesh05,
1098 SU_ADDR|T_LONG, SU_ANY|T_LONG, ctesh05,
1099 SU_ANY|T_ANY|T_INDR, SU_SMALL|T_INT, ctesh06,
1100 SU_ANY|T_LONG|T_INDR, SU_SMALL|T_INT, ctesh06,
1101 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctesh07,
1102 SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctesh07,
1103 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctesh07,
1104 SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctesh07,
1105 0,
1106 };
1107 char ctesh08[] {
1108 OP,TLEFT,' ',LADDR,'\n',
1109 0 };
1110 char ctesh09[] {
1111 LEFT,S_INDR,
1112 OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
1113 0 };
1114 char ctesh10[] {
1115 CLRL,' ',CR,'\n',
1116 MOV,TRIGHT,' ',RADDR,',',CR,'\n',
1117 OP,TLEFT,' ',CR,',',LADDR,'\n',
1118 0 };
1119 char ctesh11[] {
1120 RIGHT,S_INDR,
1121 CLRL,' ',CR,'\n',
1File: CSKELS.C Page 20
1122 MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
1123 OP,TLEFT,' ',CR,',',LADDR,'\n',
1124 0 };
1125 char ctesh12[] {
1126 CLRL,' ',CR,'\n',
1127 RIGHT,0,
1128 OP,TLEFT,' ',CR,',',LADDR,'\n',
1129 0 };
1130 struct skeleton fe_eqshft[] {
1131 SU_ADDR|T_INT, SU_ONE|T_ANY, ctesh08,
1132 SU_ANY|T_INT|T_INDR, SU_ONE|T_ANY, ctesh09,
1133 SU_REG|T_ANY, SU_SMALL|T_INT, ctasg09,
1134 SU_REG|T_LONG, SU_SMALL|T_INT, ctasg09,
1135 SU_REG|T_ANY, SU_ADDR|T_INT, ctesh10,
1136 SU_REG|T_LONG, SU_ADDR|T_INT, ctesh10,
1137 SU_REG|T_ANY, SU_ANY|T_INT|T_INDR, ctesh11,
1138 SU_REG|T_LONG, SU_ANY|T_INT|T_INDR, ctesh11,
1139 SU_REG|T_ANY, SU_ANY|T_ANY, ctesh12,
1140 SU_REG|T_LONG, SU_ANY|T_ANY, ctesh12,
1141 0,
1142 };
1143 char ctitl01[] {
1144 CLRL,' ',CR,'\n',
1145 0 };
1146 char ctitl02[] {
1147 CLRL,' ',CR,'\n',
1148 MOV,' ',LADDR,',',CR,'\n',
1149 0 };
1150 char ctitl03[] {
1151 MOVL,' ',LADDR,',',CR,'\n',
1152 0 };
1153 char ctitl04[] {
1154 LEFT,0,
1155 EXL,
1156 0 };
1157 struct skeleton fr_itl[] {
1158 SU_ZERO|T_ANY, SU_ANY|T_ANY, ctitl01,
1159 SU_ADDR|T_UNSN, SU_ANY|T_ANY, ctitl02,
1160 SU_CONST|T_INT, SU_ANY|T_ANY, ctitl03,
1161 SU_ANY|T_ANY, SU_ANY|T_ANY, ctitl04,
1162 SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop01,
1163 0,
1164 };
1165 char ctitl05[] {
1166 CLRL,' ',CR,'\n',
1167 MOV,' ',LADDR,',',CR,'\n',
1168 MOVL,' ',CR,',',PSH,'\n',
1169 0 };
1170 char ctitl06[] {
1171 LEFT,0,
1172 EXL,
1173 MOVL,' ',CR,',',PSH,'\n',
1174 0 };
1175 char ctitl07[] {
1176 MOV,' ',LADDR,',',CAR,'\n',
1177 MOVL,' ',CAR,',',PSH,'\n',
1178 0 };
1179 char ct296[] {
1180 LEFT,S_STACK,
1File: CSKELS.C Page 21
1181 0 };
1182 struct skeleton fs_itl[] {
1183 SU_ADDR|T_UNSN, SU_ANY|T_ANY, ctitl05,
1184 SU_ANY|T_UNSN, SU_ANY|T_ANY, ctitl06,
1185 SU_ADDR|T_INT, SU_ANY|T_ANY, ctitl07,
1186 SU_ANY|T_ANY, SU_ANY|T_ANY, ctitl06,
1187 SU_ANY|T_LONG, SU_ANY|T_ANY, ct296,
1188 0,
1189 };
1190 char ctlti01[] {
1191 LEFT,S_INDR,
1192 MOV,' ',LOFFSET,'+','2','(',CAR,')',',',CR,'\n',
1193 0 };
1194 struct skeleton fr_lti[] {
1195 SU_ADDR|T_LONG, SU_ANY|T_ANY, ctitl03,
1196 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlti01,
1197 SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop01,
1198 0,
1199 };
1200 struct skeleton fr_ftol[] {
1201 SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
1202 0,
1203 };
1204 struct skeleton fr_ftoi[] {
1205 SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
1206 0,
1207 };
1208 struct skeleton fr_ltof[] {
1209 SU_ANY|T_LONG, SU_ANY|T_ANY, ctneg02,
1210 0,
1211 };
1212 char ct303[] {
1213 LEFT,0,
1214 EXL,
1215 MOVL,' ',CR,',',PSH,'\n',
1216 JSR,' ',OPCALL,'\n',
1217 POP4,0 };
1218 struct skeleton fr_itof[] {
1219 SU_ANY|T_ANY, SU_ANY|T_ANY, ct303,
1220 0,
1221 };
1222 char ct304[] {
1223 LEFT,0,
1224 EXTW,' ',CR,'\n',
1225 0 };
1226 struct skeleton fr_tochar[] {
1227 SU_ANY|T_ANY, SU_ANY|T_ANY, ct304,
1228 SU_ANY|T_LONG, SU_ANY|T_ANY, ct304,
1229 0,
1230 };
1231 char ctrel01[] {
1232 LEFT,S_FORCC,
1233 0 };
1234 char ctrel02[] {
1235 RIGHT,S_INDR,
1236 OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',LADDR,'\n',
1237 0 };
1238 char ctrel03[] {
1239 RIGHT,0,
1File: CSKELS.C Page 22
1240 EXRL,
1241 OP,TLEFT,' ',CR,',',LADDR,'\n',
1242 0 };
1243 char ctrel05[] {
1244 LEFT,0,
1245 MOV,' ',RADDR,',',CAR,'\n',
1246 OP,TLEFT,' ',CAR,',',CR,'\n',
1247 0 };
1248 char ct325[] {
1249 RIGHT,S_STACK,
1250 LEFT,S_STACK,
1251 JSR,' ',OPCALL,'\n',
1252 'a','d','d','a',' ','#','8',',','s','p','\n',
1253 0 };
1254 struct skeleton fc_rel[] {
1255 SU_CONST|T_INT, SU_ZERO|T_ANY, ctbop01,
1256 SU_CONST|T_INT, SU_CONST|T_INT, ctbop05,
1257 SU_AREG|T_LONG, SU_ZERO|T_ANY, ctlod03,
1258 SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctasg07,
1259 SU_ADDR|T_LONG, SU_ZERO|T_ANY, ctasg07,
1260 SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctasg08,
1261 SU_ANY|T_LONG|T_INDR, SU_ZERO|T_ANY, ctasg08,
1262 SU_ANY|T_ANY, SU_ZERO|T_ANY, ctrel01,
1263 SU_ANY|T_LONG, SU_ZERO|T_ANY, ctrel01,
1264 SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
1265 SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
1266 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
1267 SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
1268 SU_AREG|T_LONG, SU_ADDR|T_INT, ctasg22,
1269 SU_REG|T_CHAR, SU_ADDR|T_CHAR, ctasg09,
1270 SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
1271 SU_REG|T_LONG, SU_ADDR|T_LONG, ctasg09,
1272 SU_REG|T_INT, SU_ANY|T_CHAR, ctasg10,
1273 SU_REG|T_INT, SU_ANY|T_INT|T_INDR, ctrel02,
1274 SU_REG|T_LONG, SU_ANY|T_LONG|T_INDR, ctrel02,
1275 SU_AREG|T_LONG, SU_ANY|T_INT|T_INDR, ctrel02,
1276 SU_REG|T_INT, SU_EASY|T_ANY, ctrel03,
1277 SU_REG|T_LONG, SU_EASY|T_LONG, ctrel03,
1278 SU_REG|T_LONG, SU_EASY|T_ANY, ctrel03,
1279 SU_ANY|T_INT, SU_ADDR|T_INT, ctbop05,
1280 SU_ANY|T_CHAR, SU_ADDR|T_CHAR, ctbop05,
1281 SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop05,
1282 SU_ANY|T_LONG, SU_CONST|T_INT, ctbop05,
1283 SU_ANY|T_CHAR, SU_ADDR|T_INT, ctbop02,
1284 SU_ANY|T_LONG, SU_ADDR|T_INT, ctrel05,
1285 SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
1286 SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
1287 SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
1288 SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
1289 SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop07,
1290 SU_ANY|T_ANY, SU_ANY|T_LONG, ctbop08,
1291 SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop08,
1292 SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop09,
1293 SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ct325,
1294 0,
1295 };
1296 char ctbtt01[] {
1297 OP,' ',RADDR,',',LADDR,'\n',
1298 0 };
1File: CSKELS.C Page 23
1299 char ctbtt02[] {
1300 LEFT,S_INDR,
1301 OP,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
1302 0 };
1303 struct skeleton fc_btst[] {
1304 SU_ADDR|T_ANY, SU_CONST|T_INT, ctbtt01,
1305 SU_ADDR|T_LONG, SU_CONST|T_INT, ctbtt01,
1306 SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctbtt02,
1307 SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctbtt02,
1308 0,
1309 };
1310 char ctfix01[] {
1311 TREE,0,
1312 0 };
1313 struct skeleton fc_fix[] {
1314 SU_ANY|T_ANY, SU_ANY|T_ANY, ctfix01,
1315 SU_ANY|T_LONG, SU_ANY|T_LONG, ctfix01,
1316 SU_ANY|T_LONG, SU_ANY|T_ANY, ctfix01,
1317 SU_ANY|T_ANY, SU_ANY|T_LONG, ctfix01,
1318 0,
1319 };
1320 char ct329[] {
1321 OP,TLEFT,' ',LADDR,'\n',
1322 MOV,TLEFT,' ',LADDR,',',CR,'\n',
1323 0 };
1324 char ct330[] {
1325 LEFT,S_STACK,
1326 JSR,' ',OPCALL,'\n',
1327 POP4,MOV,TLEFT,' ',CR,',',LADDR,'\n',
1328 0 };
1329 char ct331[] {
1330 LEFT,S_INDR,
1331 OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
1332 MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
1333 0 };
1334 char ct332[] {
1335 LEFT,S_INDR,
1336 MOV,TLEFT,' ',CR,',',PSH,'\n',
1337 JSR,' ',OPCALL,'\n',
1338 POP4,MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
1339 0 };
1340 struct skeleton fr_eqnot[] {
1341 SU_ADDR|T_ANY, SU_ANY|T_ANY, ct329,
1342 SU_ADDR|T_LONG, SU_ANY|T_ANY, ct329,
1343 SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ct330,
1344 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ct331,
1345 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ct331,
1346 SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ct332,
1347 0,
1348 };
1349 char ct333[] {
1350 OP,TLEFT,' ',LADDR,'\n',
1351 0 };
1352 char ct334[] {
1353 LEFT,S_INDR,
1354 OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
1355 0 };
1356 struct skeleton fe_eqnot[] {
1357 SU_ADDR|T_ANY, SU_ANY|T_ANY, ct333,
1File: CSKELS.C Page 24
1358 SU_ADDR|T_LONG, SU_ANY|T_ANY, ct333,
1359 SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ct334,
1360 SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ct334,
1361 0,
1362 };
1363 char ct335[] {
1364 RIGHT,0,
1365 EXTW,' ',CR,'\n',
1366 0 };
1367 char ct336[] {
1368 RIGHT,0,
1369 0 };
1370 struct skeleton fr_docast[] {
1371 SU_ANY|T_CHAR, SU_ANY|T_INT, ct335,
1372 SU_ANY|T_CHAR, SU_ANY|T_LONG, ct335,
1373 SU_ANY|T_ANY, SU_ANY|T_ANY, ct336,
1374 SU_ANY|T_ANY, SU_ANY|T_LONG, ct336,
1375 SU_ANY|T_LONG, SU_ANY|T_ANY, ct336,
1376 SU_ANY|T_LONG, SU_ANY|T_LONG, ct336,
1377 0,
1378 };
1379 char ct337[] {
1380 RIGHT,0,
1381 EXRL,
1382 MOV,TLEFT,' ',CR,',',PSH,'\n',
1383 0 };
1384 struct skeleton fs_docast[] {
1385 SU_ANY|T_LONG, SU_ANY|T_ANY, ct337,
1386 0,
1387 };