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 };