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

1388 lines
35 KiB
C

#include "cskel.h"
char ctnull[] {0};
char cteqa01[] {
LEA,' ',RADDR,',',LADDR,'\n',
MOVL,' ',LADDR,',',CR,'\n',
0 };
char cteqa02[] {
LEA,' ',RADDR,',',CAR,'\n',
MOVL,' ',CAR,',',LADDR,'\n',
MOVL,' ',CAR,',',CR,'\n',
0 };
char cteqa03[] {
LEFT,S_NEXT|S_INDR,
LEA,' ',RADDR,',',CAR,'\n',
MOVL,' ',CAR,',',LOFFSET,'(',NAR,')','\n',
MOVL,' ',CAR,',',CR,'\n',
0 };
struct skeleton fr_eqaddr[] {
SU_AREG|T_LONG, SU_ANY|T_ANY, cteqa01,
SU_AREG|T_LONG, SU_ANY|T_LONG, cteqa01,
SU_ADDR|T_LONG, SU_ANY|T_ANY, cteqa02,
SU_ADDR|T_LONG, SU_ANY|T_LONG, cteqa02,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteqa03,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteqa03,
0,
};
char cteqa04[] {
LEA,' ',RADDR,',',LADDR,'\n',
0 };
char cteqa05[] {
LEA,' ',RADDR,',',CAR,'\n',
MOVL,' ',CAR,',',LADDR,'\n',
0 };
char cteqa06[] {
LEFT,S_NEXT|S_INDR,
LEA,' ',RADDR,',',CAR,'\n',
MOVL,' ',CAR,',',LOFFSET,'(',NAR,')','\n',
0 };
struct skeleton fe_eqaddr[] {
SU_AREG|T_LONG, SU_ANY|T_ANY, cteqa04,
SU_AREG|T_LONG, SU_ANY|T_LONG, cteqa04,
SU_ADDR|T_LONG, SU_ANY|T_ANY, cteqa05,
SU_ADDR|T_LONG, SU_ANY|T_LONG, cteqa05,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteqa06,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteqa06,
0,
};
char ctcal01[] {
JSR,' ',LADDR,'\n',
0 };
char ctcal02[] {
LEFT,S_INDR,
JSR,' ',LOFFSET,'(',CAR,')','\n',
0 };
char ctcal03[] {
LEFT,0,
MOV,' ',CR,',',CAR,'\n',
JSR,' ','(',CAR,')','\n',
0 };
struct skeleton fr_call[] {
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctcal01,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctcal01,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctcal02,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctcal02,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctcal03,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctcal03,
0,
};
char ct109[] {
CLR,' ',CR,'\n',
0 };
char ctlod01[] {
CLR,TLEFT,' ',CR,'\n',
0 };
char ctlod02[] {
MOV,TLEFT,' ',LADDR,',',CR,'\n',
EXTW,' ',CR,'\n',
0 };
char ctlod03[] {
MOV,TLEFT,' ',LADDR,',',CR,'\n',
0 };
char ctlod04[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,' ',CR,'\n',
0 };
char ctlod05[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
0 };
struct skeleton fr_ld[] {
SU_ZERO|T_CHAR, SU_ANY|T_ANY, ct109,
SU_ZERO|T_INT, SU_ANY|T_ANY, ctlod01,
SU_ZERO|T_LONG, SU_ANY|T_ANY, ctlod01,
SU_ADDR|T_CHAR, SU_ANY|T_ANY, ctlod02,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctlod03,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctlod03,
SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ctlod03,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_ANY, ctlod04,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctlod05,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlod05,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ctlod05,
0,
};
char ct115[] {
CLR,' ',PSH,'\n',
0 };
char ctlod06[] {
CLR,TLEFT,' ',PSH,'\n',
0 };
char ctlod07[] {
LEFT,0,
MOV,' ',CR,',',PSH,'\n',
0 };
char ctlod08[] {
MOV,TLEFT,' ',LADDR,',',PSH,'\n',
0 };
char ctlod09[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',PSH,'\n',
0 };
struct skeleton fs_ld[] {
SU_ZERO|T_CHAR, SU_ANY|T_ANY, ct115,
SU_ZERO|T_INT, SU_ANY|T_ANY, ctlod06,
SU_ZERO|T_LONG, SU_ANY|T_ANY, ctlod06,
SU_ADDR|T_CHAR, SU_ANY|T_ANY, ctlod07,
SU_ADDR|T_INT, SU_ANY|T_ANY, ctlod08,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctlod08,
SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ctlod08,
SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ctlod09,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlod09,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ctlod09,
0,
};
char ctpst01[] {
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,TLEFT,' ',RADDR,',',LADDR,'\n',
0 };
char ctpst02[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_postop[] {
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctpst01,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctpst01,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctpst02,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctpst02,
0,
};
char ctneg01[] {
LEFT,0,
OP,TLEFT,' ',CR,'\n',
0 };
char ctneg02[] {
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP4,0 };
struct skeleton fr_neg[] {
SU_ANY|T_ANY, SU_ANY|T_ANY, ctneg01,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctneg01,
SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
0,
};
char ctasg01[] {
CLRL,' ',CR,'\n',
MOV,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctasg02[] {
RIGHT,0,
EXRL,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctasg03[] {
LEFT,S_INDR,
CLRL,' ',CR,'\n',
MOV,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',LOFFSET,'(',NAR,')',',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
0 };
char ctasg04[] {
LEFT,S_INDR,
MOV,TRIGHT,' ',RADDR,',',CR,'\n',
EXRL,
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctasg05[] {
RIGHT,0,
EXRL,
LEFT,S_NEXT|S_INDR,
OP,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
0 };
char ctasg06[] {
LEFT,S_STACK|S_INDR,
RIGHT,0,
EXRL,
MOVL,' ',POP,',',CAR,'\n',
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_assign[] {
SU_ADDR|T_LONG, SU_ADDR|T_UNSN, ctasg01,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg02,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg02,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctasg02,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_UNSN, ctasg03,
SU_ANY|T_ANY|T_INDR, SU_ADDR|T_INT, ctasg04,
SU_ANY|T_ANY|T_INDR, SU_ADDR|T_LONG, ctasg04,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_INT, ctasg04,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctasg04,
SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg04,
SU_EASY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_EASY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctasg06,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctasg06,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctasg06,
0,
};
char ctasg07[] {
AOP,TLEFT,' ',LADDR,'\n',
0 };
char ctasg08[] {
LEFT,S_INDR,
AOP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
0 };
char ctasg09[] {
OP,TLEFT,' ',RADDR,',',LADDR,'\n',
0 };
char ctasg10[] {
RIGHT,0,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctasg11[] {
OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
EXTW,' ',LADDR,'\n',
0 };
char ctasg12[] {
OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
EXTW,' ',LADDR,'\n',
EXTL,' ',LADDR,'\n',
0 };
char ctasg13[] {
CLRL,' ',LADDR,'\n',
MOV,' ',RADDR,',',LADDR,'\n',
0 };
char ctasg22[] {
OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
0 };
char ctasg14[] {
OP,TRIGHT,' ',RADDR,',',LADDR,'\n',
EXTL,' ',LADDR,'\n',
0 };
char ctasg15[] {
MOV,' ',RADDR,',',CAR,'\n',
OP,TLEFT,' ',CAR,',',LADDR,'\n',
0 };
char ctasg16[] {
LEFT,S_INDR,
CLRL,' ',CR,'\n',
OP,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctasg17[] {
RIGHT,S_INDR,
OP,TLEFT,' ',ROFFSET,'(',CAR,')',',',LADDR,'\n',
0 };
char ctasg18[] {
RIGHT,0,
EXRL,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctasg19[] {
LEFT,S_INDR,
OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctasg20[] {
LEFT,S_INDR,
RIGHT,S_NEXT|S_INDR,
OP,TLEFT,' ',ROFFSET,'(',NAR,')',',',LOFFSET,'(',CAR,')','\n',
0 };
char ct147[] {
RIGHT,S_STACK,
LEFT,S_INDR,
OP,TLEFT,' ',POP,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fe_assign[] {
SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctasg07,
SU_ADDR|T_LONG, SU_ZERO|T_ANY, ctasg07,
SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctasg08,
SU_ADDR|T_CHAR, SU_ADDR|T_CHAR, ctasg09,
SU_ADDR|T_INT, SU_ADDR|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctasg09,
SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_ANY, SU_REG|T_INT, ctasg09,
SU_ADDR|T_ANY, SU_REG|T_LONG, ctasg09,
SU_ADDR|T_FLOAT, SU_ADDR|T_FLOAT, ctasg09,
SU_AREG|T_LONG, SU_ADDR|T_CHAR, ctasg10,
SU_AREG|T_ANY, SU_ADDR|T_CHAR, ctasg10,
SU_REG|T_INT, SU_ADDR|T_CHAR, ctasg11,
SU_REG|T_LONG, SU_ADDR|T_CHAR, ctasg12,
SU_REG|T_LONG, SU_ADDR|T_UNSN, ctasg13,
SU_AREG|T_LONG, SU_ADDR|T_INT, ctasg22,
SU_REG|T_LONG, SU_ADDR|T_INT, ctasg14,
SU_ADDR|T_LONG, SU_ADDR|T_UNSN, ctasg01,
SU_ADDR|T_LONG, SU_ADDR|T_INT, ctasg15,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_UNSN, ctasg16,
SU_ADDR|T_CHAR, SU_ANY|T_CHAR|T_INDR, ctasg17,
SU_ADDR|T_INT, SU_ANY|T_INT|T_INDR, ctasg17,
SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, ctasg17,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg18,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg18,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg18,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg18,
SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctasg19,
SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_CHAR, ctasg19,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctasg19,
SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg19,
SU_EASY|T_CHAR|T_INDR, SU_EASY|T_CHAR|T_INDR, ctasg20,
SU_EASY|T_INT|T_INDR, SU_EASY|T_INT|T_INDR, ctasg20,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG|T_INDR, ctasg20,
SU_EASY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_EASY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ct147,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ct147,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctasg06,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ANY|T_FLOAT|T_INDR, SU_ADDR|T_FLOAT, ctasg06,
0,
};
char ctbop01[] {
LEFT,0,
0 };
char ctbop02[] {
LEFT,0,
EXLR,
OP,TRIGHT,' ',RADDR,',',CR,'\n',
0 };
char ctbop03[] {
LEFT,0,
CLRL,' ',NR,'\n',
MOV,' ',RADDR,',',NR,'\n',
OP,TLEFT,' ',NR,',',CR,'\n',
0 };
char ctbop04[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
RIGHT,S_NEXT,
OP,TRIGHT,' ',NR,',',CR,'\n',
0 };
char ctbop05[] {
LEFT,0,
OP,TLEFT,' ',RADDR,',',CR,'\n',
0 };
char ctbop06[] {
LEFT,0,
EXLR,
RIGHT,S_NEXT,
EXRLN,
OP,TEITHER,' ',NR,',',CR,'\n',
0 };
char ctbop07[] {
RIGHT,0,
EXRL,
MOVL,' ',CR,',',PSH,'\n',
LEFT,0,
OP,TLEFT,' ',POP,',',CR,'\n',
0 };
char ctbop08[] {
RIGHT,S_STACK,
LEFT,0,
EXLR,
OP,TRIGHT,' ',POP,',',CR,'\n',
0 };
char ctbop09[] {
RIGHT,S_STACK,
LEFT,0,
OP,' ',POP,',',CR,'\n',
0 };
char ctbop12[] {
RIGHT,S_STACK,
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP8,0 };
struct skeleton fr_op[] {
SU_ANY|T_ANY, SU_ZERO|T_ANY, ctbop01,
SU_ANY|T_ANY, SU_ADDR|T_INT, ctbop02,
SU_ANY|T_ANY, SU_ADDR|T_LONG, ctbop02,
SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop02,
SU_ANY|T_LONG, SU_ADDR|T_UNSN, ctbop03,
SU_ADDR|T_UNSN, SU_ANY|T_LONG, ctbop04,
SU_ANY|T_LONG, SU_CONST|T_INT, ctbop05,
SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop05,
SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop07,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop07,
SU_ANY|T_ANY, SU_ANY|T_LONG, ctbop08,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop08,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop09,
SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
0,
};
char ctbop10[] {
LEFT,S_STACK,
OP,TLEFTL,' ',RADDR,',',STK,'\n',
0 };
char ctbop11[] {
LEFT,S_STACK,
RIGHT,0,
OP,TLEFTL,' ',CR,',',STK,'\n',
0 };
struct skeleton fs_op[] {
SU_ANY|T_ANY, SU_CONST|T_INT, ctbop10,
SU_ANY|T_LONG, SU_CONST|T_INT, ctbop10,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop11,
0,
};
char ctxor01[] {
LEFT,S_STACK,
RIGHT,0,
OP,' ',CR,',',STK,'\n',
MOV,' ',POP,',',CR,'\n',
0 };
struct skeleton fr_xor[] {
SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctxor01,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop07,
0,
};
char ctshf01[] {
LEFT,0,
OP,TLEFTL,' ',RADDR,',',CR,'\n',
0 };
char ctshf02[] {
LEFT,0,
RIGHT,S_NEXT,
OP,TLEFTL,' ',NR,',',CR,'\n',
0 };
char ctshf03[] {
RIGHT,S_STACK,
LEFT,0,
MOV,TRIGHT,' ',POP,',',NR,'\n',
OP,TLEFTL,' ',NR,',',CR,'\n',
0 };
struct skeleton fr_shft[] {
SU_ANY|T_ANY, SU_ZERO|T_ANY, ctbop01,
SU_ANY|T_LONG, SU_ZERO|T_ANY, ctbop01,
SU_ANY|T_ANY, SU_SMALL|T_INT, ctshf01,
SU_ANY|T_LONG, SU_SMALL|T_INT, ctshf01,
SU_ANY|T_ANY, SU_EASY|T_ANY, ctshf02,
SU_ANY|T_ANY, SU_EASY|T_LONG, ctshf02,
SU_ANY|T_LONG, SU_EASY|T_ANY, ctshf02,
SU_ANY|T_LONG, SU_EASY|T_LONG, ctshf02,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctshf03,
SU_ANY|T_ANY, SU_ANY|T_LONG, ctshf03,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctshf03,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctshf03,
0,
};
char ctmul01[] {
LEFT,0,
OP,' ',RADDR,',',CR,'\n',
0 };
char ctmul02[] {
LEFT,0,
RIGHT,S_NEXT|S_INDR,
OP,' ',ROFFSET,'(',NAR,')',',',CR,'\n',
0 };
char ctmul03[] {
LEFT,0,
RIGHT,S_NEXT,
OP,' ',NR,',',CR,'\n',
0 };
char ctmul04[] {
RIGHT,S_STACK,
LEFT,0,
OP,' ',POP,',',CR,'\n',
0 };
char ctmul05[] {
MOVL,' ',RADDR,',',PSH,'\n',
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP8,0 };
char ctmul06[] {
RIGHT,0,
EXRL,
MOVL,' ',CR,',',PSH,'\n',
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP8,0 };
char ctmul07[] {
LEFT,0,
EXLR,
MOVL,' ',CR,',',PSH,'\n',
RIGHT,S_STACK,
JSR,' ',OPCALL,'\n',
POP8,0 };
struct skeleton fr_mult[] {
SU_ANY|T_ANY, SU_ADDR|T_ANY, ctmul01,
SU_ANY|T_ANY, SU_EASY|T_ANY|T_INDR, ctmul02,
SU_ANY|T_ANY, SU_EASY|T_ANY, ctmul03,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctmul04,
SU_ANY|T_LONG, SU_CONST|T_INT, ctmul05,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctmul06,
SU_ANY|T_ANY, SU_ANY|T_LONG, ctmul07,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop12,
SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
0,
};
char ctdiv01[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
OP,' ',RADDR,',',CR,'\n',
MODSWAP,0 };
char ctdiv02[] {
LEFT,0,
EXL,
OP,' ',RADDR,',',CR,'\n',
MODSWAP,0 };
char ctdiv03[] {
RIGHT,S_INDR,
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
OP,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
MODSWAP,0 };
char ctdiv04[] {
LEFT,0,
EXL,
RIGHT,S_NEXT|S_INDR,
OP,' ',ROFFSET,'(',NAR,')',',',CR,'\n',
MODSWAP,0 };
char ctdiv05[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
RIGHT,S_NEXT,
OP,' ',NR,',',CR,'\n',
MODSWAP,0 };
char ctdiv06[] {
LEFT,0,
EXL,
RIGHT,S_NEXT,
OP,' ',NR,',',CR,'\n',
MODSWAP,0 };
char ctdiv07[] {
RIGHT,S_STACK,
LEFT,0,
EXL,
OP,' ',POP,',',CR,'\n',
MODSWAP,0 };
struct skeleton fr_div[] {
SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctdiv01,
SU_ANY|T_ANY, SU_ADDR|T_INT, ctdiv02,
SU_ANY|T_LONG, SU_ADDR|T_INT, ctdiv02,
SU_ADDR|T_UNSN, SU_EASY|T_INT|T_INDR, ctdiv03,
SU_ANY|T_ANY, SU_EASY|T_INT|T_INDR, ctdiv04,
SU_ANY|T_LONG, SU_EASY|T_INT|T_INDR, ctdiv04,
SU_ADDR|T_UNSN, SU_EASY|T_ANY, ctdiv05,
SU_ANY|T_ANY, SU_EASY|T_ANY, ctdiv06,
SU_ANY|T_LONG, SU_EASY|T_ANY, ctdiv06,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctdiv07,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctdiv07,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop12,
SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ctbop12,
0,
};
char ctreo01[] {
OP,TLEFT,' ',RADDR,',',LADDR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
0 };
char ctreo02[] {
CLRL,' ',CR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,TRIGHT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo03[] {
LEFT,0,
EXLR,
OP,TRIGHT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo04[] {
RIGHT,S_INDR,
CLRL,' ',CR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo05[] {
RIGHT,S_INDR,
LEFT,0,
EXLR,
OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo06[] {
RIGHT,S_STACK,
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP8,MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo07[] {
CLRL,' ',CR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
RIGHT,S_NEXT,
EXRLN,
OP,TRIGHT,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo08[] {
LEFT,0,
EXLR,
RIGHT,S_NEXT,
EXRLN,
OP,TEITHER,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo09[] {
RIGHT,S_STACK,
CLRL,' ',CR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,TRIGHT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo10[] {
RIGHT,S_STACK,
LEFT,0,
EXLR,
OP,TRIGHT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo11[] {
RIGHT,0,
EXRL,
MOV,TLEFT,' ',CR,',',PSH,'\n',
LEFT,0,
OP,TLEFT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo12[] {
RIGHT,S_STACK,
LEFT,0,
OP,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctreo13[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,'\n',
EXLR,
OP,TRIGHT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo14[] {
LEFT,S_INDR,
OP,TLEFT,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
0 };
char ctreo15[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXLR,
OP,TRIGHT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo16[] {
RIGHT,S_NEXT,
EXRLN,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXLR,
OP,TRIGHT,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo17[] {
RIGHT,S_NEXT,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,'\n',
EXLR,
OP,TRIGHT,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo18[] {
RIGHT,S_NEXT,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,'\n',
OP,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo19[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',CR,',',PSH,'\n',
JSR,' ',OPCALL,'\n',
POP8,MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo20[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXLR,
OP,TRIGHT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo21[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,'\n',
EXLR,
OP,TRIGHT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo22[] {
RIGHT,0,
EXRL,
MOV,TLEFT,' ',CR,',',PSH,'\n',
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctreo23[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXTW,'\n',
OP,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_eqop[] {
SU_ADDR|T_INT, SU_CONST|T_INT, ctreo01,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctreo01,
SU_ADDR|T_UNSN, SU_ADDR|T_LONG, ctreo02,
SU_ADDR|T_CHAR, SU_CONST|T_INT, ctreo03,
SU_ADDR|T_ANY, SU_ADDR|T_INT, ctreo03,
SU_ADDR|T_ANY, SU_ADDR|T_LONG, ctreo03,
SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctreo03,
SU_ADDR|T_UNSN, SU_ANY|T_LONG|T_INDR, ctreo04,
SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, ctreo05,
SU_ADDR|T_ANY, SU_ANY|T_LONG|T_INDR, ctreo05,
SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, ctreo05,
SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
SU_ADDR|T_UNSN, SU_EASY|T_LONG, ctreo07,
SU_ADDR|T_ANY, SU_EASY|T_ANY, ctreo08,
SU_ADDR|T_ANY, SU_EASY|T_LONG, ctreo08,
SU_ADDR|T_LONG, SU_EASY|T_ANY, ctreo08,
SU_ADDR|T_LONG, SU_EASY|T_LONG, ctreo08,
SU_ADDR|T_UNSN, SU_ANY|T_LONG, ctreo09,
SU_ADDR|T_ANY, SU_ANY|T_INT, ctreo10,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctreo10,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctreo10,
SU_ADDR|T_INT, SU_ANY|T_CHAR, ctreo11,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctreo11,
SU_ADDR|T_CHAR, SU_ANY|T_CHAR, ctreo12,
SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_INT, ctreo13,
SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_LONG, ctreo13,
SU_ANY|T_INT|T_INDR, SU_CONST|T_INT, ctreo14,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctreo14,
SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctreo15,
SU_ANY|T_INT|T_INDR, SU_ADDR|T_LONG, ctreo15,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_LONG, ctreo15,
SU_ANY|T_INT|T_INDR, SU_EASY|T_ANY, ctreo16,
SU_ANY|T_INT|T_INDR, SU_EASY|T_LONG, ctreo16,
SU_ANY|T_LONG|T_INDR, SU_EASY|T_ANY, ctreo16,
SU_ANY|T_LONG|T_INDR, SU_EASY|T_LONG, ctreo16,
SU_ANY|T_CHAR|T_INDR, SU_EASY|T_INT, ctreo17,
SU_ANY|T_CHAR|T_INDR, SU_EASY|T_LONG, ctreo17,
SU_ANY|T_CHAR|T_INDR, SU_EASY|T_CHAR, ctreo18,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
SU_ANY|T_INT|T_INDR, SU_ANY|T_INT, ctreo20,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_INT, ctreo21,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_LONG, ctreo21,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctreo22,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_CHAR, ctreo23,
0,
};
char cteop01[] {
RIGHT,S_INDR,
MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char cteop02[] {
RIGHT,S_INDR,
LEFT,S_NEXT|S_INDR,
MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',CR,',',LOFFSET,'(',NAR,')','\n',
0 };
char cteop03[] {
RIGHT,S_INDR,
MOV,TLEFT,' ',LADDR,',',NR,'\n',
OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',NR,'\n',
MOV,TLEFT,' ',NR,',',LADDR,'\n',
0 };
char cteop04[] {
RIGHT,0,
MOV,TLEFT,' ',LADDR,',',NR,'\n',
OP,TLEFT,' ',CR,',',NR,'\n',
MOV,TLEFT,' ',NR,',',LADDR,'\n',
0 };
char cteop05[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
OP,TRIGHT,' ',POP,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char cteop06[] {
CLRL,' ',CR,'\n',
MOV,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',RADDR,',',LADDR,'\n',
0 };
char cteop07[] {
RIGHT,0,
EXRL,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char cteop08[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TRIGHT,' ',POP,',',CR,'\n',
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char cteop09[] {
LEFT,S_INDR,
MOV,TRIGHT,' ',RADDR,',',CR,'\n',
EXRL,
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char cteop10[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TRIGHT,' ',POP,',',CR,'\n',
EXRL,
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fe_eqop[] {
SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctnull,
SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctnull,
SU_ANY|T_LONG, SU_ZERO|T_ANY, ctnull,
SU_ANY|T_LONG|T_INDR, SU_ZERO|T_ANY, ctnull,
SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
SU_ADDR|T_LONG, SU_AREG|T_LONG, ctasg02,
SU_ADDR|T_INT, SU_REG|T_INT, ctasg09,
SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_REG|T_LONG, ctasg09,
SU_REG|T_LONG, SU_ADDR|T_LONG, ctasg09,
SU_AREG|T_LONG, SU_REG|T_INT, ctasg22,
SU_ADDR|T_INT, SU_ADDR|T_INT, ctasg02,
SU_ADDR|T_CHAR, SU_ADDR|T_CHAR, ctasg02,
SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctasg02,
SU_ADDR|T_INT, SU_ANY|T_INT|T_INDR, cteop01,
SU_ADDR|T_INT, SU_ANY|T_ANY, ctasg02,
SU_EASY|T_INT|T_INDR, SU_ANY|T_INT|T_INDR, cteop02,
SU_EASY|T_LONG|T_INDR, SU_ANY|T_LONG|T_INDR, cteop02,
SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, cteop03,
SU_ADDR|T_ANY, SU_ANY|T_ANY, cteop04,
SU_EASY|T_INT|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_ANY|T_INT|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, cteop05,
SU_REG|T_LONG, SU_ADDR|T_UNSN, cteop06,
SU_REG|T_LONG, SU_ADDR|T_ANY, cteop07,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, cteop01,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
SU_EASY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteop08,
SU_ANY|T_LONG|T_INDR, SU_ADDR|T_ANY, cteop09,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, cteop10,
0,
};
struct skeleton fr_eqmult[] {
SU_ADDR|T_ANY, SU_ADDR|T_INT, ctreo03,
SU_ADDR|T_ANY, SU_ANY|T_INT|T_INDR, ctreo05,
SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
SU_ADDR|T_ANY, SU_EASY|T_ANY, ctreo08,
SU_ADDR|T_ANY, SU_ANY|T_INT, ctreo10,
SU_ADDR|T_INT, SU_ANY|T_CHAR, ctreo11,
SU_ADDR|T_CHAR, SU_ANY|T_CHAR, ctreo12,
SU_ANY|T_CHAR|T_INDR, SU_ADDR|T_INT, ctreo13,
SU_ANY|T_INT|T_INDR, SU_ADDR|T_INT, ctreo15,
SU_ANY|T_INT|T_INDR, SU_EASY|T_ANY, ctreo16,
SU_ANY|T_CHAR|T_INDR, SU_EASY|T_INT, ctreo17,
SU_ANY|T_CHAR|T_INDR, SU_EASY|T_CHAR, ctreo18,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
SU_ANY|T_INT|T_INDR, SU_ANY|T_INT, ctreo20,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_INT, ctreo21,
SU_ANY|T_CHAR|T_INDR, SU_ANY|T_CHAR, ctreo23,
0,
};
char ct247[] {
AOP,' ',RADDR,',',LADDR,'\n',
0 };
struct skeleton fe_eqmult[] {
SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
SU_REG|T_UNSN, SU_ADDR|T_INT, ct247,
SU_REG|T_UNSN, SU_ADDR|T_UNSN, ct247,
0,
};
char ctedv01[] {
CLRL,' ',CR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,' ',RADDR,',',CR,'\n',
MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ct249[] {
OP,' ',RADDR,',',LADDR,'\n',
EXTL,' ',LADDR,'\n',
0 };
char ct250[] {
EXTL,' ',LADDR,'\n',
OP,' ',RADDR,',',LADDR,'\n',
0 };
struct skeleton fe_eqdiv[] {
SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
SU_REG|T_LONG, SU_ADDR|T_INT, ct249,
SU_REG|T_INT, SU_ADDR|T_INT, ct250,
0,
};
char ct252[] {
OP,' ',RADDR,',',LADDR,'\n',
's','w','a','p',' ',LADDR,'\n',
EXTL,' ',LADDR,'\n',
0 };
char ct253[] {
EXTL,' ',LADDR,'\n',
OP,' ',RADDR,',',LADDR,'\n',
's','w','a','p',' ',LADDR,'\n',
0 };
struct skeleton fe_eqmod[] {
SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
SU_REG|T_LONG, SU_ADDR|T_INT, ct252,
SU_REG|T_INT, SU_ADDR|T_INT, ct253,
0,
};
char ctedv02[] {
MOV,TLEFT,' ',LADDR,',',CR,'\n',
EXL,
OP,' ',RADDR,',',CR,'\n',
MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctedv03[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
RIGHT,S_NEXT,
OP,' ',NR,',',CR,'\n',
MODSWAP,MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctedv04[] {
LEFT,0,
OP,' ',RADDR,',',CR,'\n',
MODSWAP,EXRL,
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctedv05[] {
RIGHT,S_STACK,
LEFT,0,
EXL,
OP,' ',POP,',',CR,'\n',
MODSWAP,EXRL,
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctedv06[] {
RIGHT,S_STACK,
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
EXL,
OP,' ',POP,',',CR,'\n',
MODSWAP,EXRL,
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_eqdiv[] {
SU_ADDR|T_UNSN, SU_ADDR|T_INT, ctedv01,
SU_ADDR|T_ANY, SU_ADDR|T_INT, ctedv02,
SU_ADDR|T_UNSN, SU_EASY|T_ANY, ctedv03,
SU_ADDR|T_LONG, SU_ADDR|T_INT, ctedv04,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctedv05,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctedv05,
SU_ADDR|T_FLOAT, SU_ANY|T_FLOAT, ctreo06,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctedv06,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctedv06,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_FLOAT, ctreo19,
0,
};
char ctexo01[] {
RIGHT,0,
EXRL,
OP,TLEFT,' ',CR,',',LADDR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
0 };
char ctexo02[] {
LEFT,S_STACK|S_INDR,
RIGHT,0,
EXRL,
MOVL,' ',POP,',',CAR,'\n',
OP,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
0 };
struct skeleton fr_eqxor[] {
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctexo01,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctexo01,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctexo01,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctexo01,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctexo02,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctexo02,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctexo02,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctexo02,
0,
};
char ctexo05[] {
MOV,TRIGHT,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
struct skeleton fe_eqxor[] {
SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctasg02,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctasg02,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctasg02,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
SU_ANY|T_ANY|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_ANY|T_ANY|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_ANY|T_LONG|T_INDR, SU_EASY|T_ANY, ctasg05,
SU_ANY|T_LONG|T_INDR, SU_EASY|T_LONG, ctasg05,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctasg06,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_ADDR|T_LONG, ctexo05,
SU_ADDR|T_LONG, SU_ANY|T_LONG|T_INDR, cteop01,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctasg02,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
SU_EASY|T_LONG|T_INDR, SU_ANY|T_LONG, ctasg05,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, cteop08,
0,
};
char ctesh01[] {
OP,TLEFT,' ',LADDR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
0 };
char ctesh02[] {
LEFT,S_INDR,
OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
0 };
char ctesh03[] {
LEFT,0,
OP,TLEFT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctesh05[] {
RIGHT,S_NEXT,
MOV,TLEFT,' ',LADDR,',',CR,'\n',
OP,TLEFT,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctesh06[] {
LEFT,S_INDR,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',RADDR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
char ctesh07[] {
LEFT,S_INDR,
RIGHT,S_NEXT,
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',NR,',',CR,'\n',
MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_eqshft[] {
SU_ADDR|T_INT, SU_ONE|T_ANY, ctesh01,
SU_ANY|T_INT|T_INDR, SU_ONE|T_ANY, ctesh02,
SU_ADDR|T_ANY, SU_SMALL|T_INT, ctesh03,
SU_ADDR|T_LONG, SU_SMALL|T_INT, ctesh03,
SU_ADDR|T_ANY, SU_ANY|T_ANY, ctesh05,
SU_ADDR|T_ANY, SU_ANY|T_LONG, ctesh05,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctesh05,
SU_ADDR|T_LONG, SU_ANY|T_LONG, ctesh05,
SU_ANY|T_ANY|T_INDR, SU_SMALL|T_INT, ctesh06,
SU_ANY|T_LONG|T_INDR, SU_SMALL|T_INT, ctesh06,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ctesh07,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_LONG, ctesh07,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctesh07,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_LONG, ctesh07,
0,
};
char ctesh08[] {
OP,TLEFT,' ',LADDR,'\n',
0 };
char ctesh09[] {
LEFT,S_INDR,
OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
0 };
char ctesh10[] {
CLRL,' ',CR,'\n',
MOV,TRIGHT,' ',RADDR,',',CR,'\n',
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctesh11[] {
RIGHT,S_INDR,
CLRL,' ',CR,'\n',
MOV,TRIGHT,' ',ROFFSET,'(',CAR,')',',',CR,'\n',
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctesh12[] {
CLRL,' ',CR,'\n',
RIGHT,0,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
struct skeleton fe_eqshft[] {
SU_ADDR|T_INT, SU_ONE|T_ANY, ctesh08,
SU_ANY|T_INT|T_INDR, SU_ONE|T_ANY, ctesh09,
SU_REG|T_ANY, SU_SMALL|T_INT, ctasg09,
SU_REG|T_LONG, SU_SMALL|T_INT, ctasg09,
SU_REG|T_ANY, SU_ADDR|T_INT, ctesh10,
SU_REG|T_LONG, SU_ADDR|T_INT, ctesh10,
SU_REG|T_ANY, SU_ANY|T_INT|T_INDR, ctesh11,
SU_REG|T_LONG, SU_ANY|T_INT|T_INDR, ctesh11,
SU_REG|T_ANY, SU_ANY|T_ANY, ctesh12,
SU_REG|T_LONG, SU_ANY|T_ANY, ctesh12,
0,
};
char ctitl01[] {
CLRL,' ',CR,'\n',
0 };
char ctitl02[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
0 };
char ctitl03[] {
MOVL,' ',LADDR,',',CR,'\n',
0 };
char ctitl04[] {
LEFT,0,
EXL,
0 };
struct skeleton fr_itl[] {
SU_ZERO|T_ANY, SU_ANY|T_ANY, ctitl01,
SU_ADDR|T_UNSN, SU_ANY|T_ANY, ctitl02,
SU_CONST|T_INT, SU_ANY|T_ANY, ctitl03,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctitl04,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop01,
0,
};
char ctitl05[] {
CLRL,' ',CR,'\n',
MOV,' ',LADDR,',',CR,'\n',
MOVL,' ',CR,',',PSH,'\n',
0 };
char ctitl06[] {
LEFT,0,
EXL,
MOVL,' ',CR,',',PSH,'\n',
0 };
char ctitl07[] {
MOV,' ',LADDR,',',CAR,'\n',
MOVL,' ',CAR,',',PSH,'\n',
0 };
char ct296[] {
LEFT,S_STACK,
0 };
struct skeleton fs_itl[] {
SU_ADDR|T_UNSN, SU_ANY|T_ANY, ctitl05,
SU_ANY|T_UNSN, SU_ANY|T_ANY, ctitl06,
SU_ADDR|T_INT, SU_ANY|T_ANY, ctitl07,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctitl06,
SU_ANY|T_LONG, SU_ANY|T_ANY, ct296,
0,
};
char ctlti01[] {
LEFT,S_INDR,
MOV,' ',LOFFSET,'+','2','(',CAR,')',',',CR,'\n',
0 };
struct skeleton fr_lti[] {
SU_ADDR|T_LONG, SU_ANY|T_ANY, ctitl03,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ctlti01,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop01,
0,
};
struct skeleton fr_ftol[] {
SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
0,
};
struct skeleton fr_ftoi[] {
SU_ANY|T_FLOAT, SU_ANY|T_ANY, ctneg02,
0,
};
struct skeleton fr_ltof[] {
SU_ANY|T_LONG, SU_ANY|T_ANY, ctneg02,
0,
};
char ct303[] {
LEFT,0,
EXL,
MOVL,' ',CR,',',PSH,'\n',
JSR,' ',OPCALL,'\n',
POP4,0 };
struct skeleton fr_itof[] {
SU_ANY|T_ANY, SU_ANY|T_ANY, ct303,
0,
};
char ct304[] {
LEFT,0,
EXTW,' ',CR,'\n',
0 };
struct skeleton fr_tochar[] {
SU_ANY|T_ANY, SU_ANY|T_ANY, ct304,
SU_ANY|T_LONG, SU_ANY|T_ANY, ct304,
0,
};
char ctrel01[] {
LEFT,S_FORCC,
0 };
char ctrel02[] {
RIGHT,S_INDR,
OP,TRIGHT,' ',ROFFSET,'(',CAR,')',',',LADDR,'\n',
0 };
char ctrel03[] {
RIGHT,0,
EXRL,
OP,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ctrel05[] {
LEFT,0,
MOV,' ',RADDR,',',CAR,'\n',
OP,TLEFT,' ',CAR,',',CR,'\n',
0 };
char ct325[] {
RIGHT,S_STACK,
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
'a','d','d','a',' ','#','8',',','s','p','\n',
0 };
struct skeleton fc_rel[] {
SU_CONST|T_INT, SU_ZERO|T_ANY, ctbop01,
SU_CONST|T_INT, SU_CONST|T_INT, ctbop05,
SU_AREG|T_LONG, SU_ZERO|T_ANY, ctlod03,
SU_ADDR|T_ANY, SU_ZERO|T_ANY, ctasg07,
SU_ADDR|T_LONG, SU_ZERO|T_ANY, ctasg07,
SU_ANY|T_ANY|T_INDR, SU_ZERO|T_ANY, ctasg08,
SU_ANY|T_LONG|T_INDR, SU_ZERO|T_ANY, ctasg08,
SU_ANY|T_ANY, SU_ZERO|T_ANY, ctrel01,
SU_ANY|T_LONG, SU_ZERO|T_ANY, ctrel01,
SU_ADDR|T_ANY, SU_CONST|T_INT, ctasg09,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctasg09,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctasg19,
SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctasg19,
SU_AREG|T_LONG, SU_ADDR|T_INT, ctasg22,
SU_REG|T_CHAR, SU_ADDR|T_CHAR, ctasg09,
SU_REG|T_INT, SU_ADDR|T_INT, ctasg09,
SU_REG|T_LONG, SU_ADDR|T_LONG, ctasg09,
SU_REG|T_INT, SU_ANY|T_CHAR, ctasg10,
SU_REG|T_INT, SU_ANY|T_INT|T_INDR, ctrel02,
SU_REG|T_LONG, SU_ANY|T_LONG|T_INDR, ctrel02,
SU_AREG|T_LONG, SU_ANY|T_INT|T_INDR, ctrel02,
SU_REG|T_INT, SU_EASY|T_ANY, ctrel03,
SU_REG|T_LONG, SU_EASY|T_LONG, ctrel03,
SU_REG|T_LONG, SU_EASY|T_ANY, ctrel03,
SU_ANY|T_INT, SU_ADDR|T_INT, ctbop05,
SU_ANY|T_CHAR, SU_ADDR|T_CHAR, ctbop05,
SU_ANY|T_LONG, SU_ADDR|T_LONG, ctbop05,
SU_ANY|T_LONG, SU_CONST|T_INT, ctbop05,
SU_ANY|T_CHAR, SU_ADDR|T_INT, ctbop02,
SU_ANY|T_LONG, SU_ADDR|T_INT, ctrel05,
SU_ANY|T_ANY, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_ANY, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_ANY, ctbop06,
SU_ANY|T_LONG, SU_EASY|T_LONG, ctbop06,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctbop07,
SU_ANY|T_ANY, SU_ANY|T_LONG, ctbop08,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctbop08,
SU_ANY|T_ANY, SU_ANY|T_ANY, ctbop09,
SU_ANY|T_FLOAT, SU_ANY|T_FLOAT, ct325,
0,
};
char ctbtt01[] {
OP,' ',RADDR,',',LADDR,'\n',
0 };
char ctbtt02[] {
LEFT,S_INDR,
OP,' ',RADDR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fc_btst[] {
SU_ADDR|T_ANY, SU_CONST|T_INT, ctbtt01,
SU_ADDR|T_LONG, SU_CONST|T_INT, ctbtt01,
SU_ANY|T_ANY|T_INDR, SU_CONST|T_INT, ctbtt02,
SU_ANY|T_LONG|T_INDR, SU_CONST|T_INT, ctbtt02,
0,
};
char ctfix01[] {
TREE,0,
0 };
struct skeleton fc_fix[] {
SU_ANY|T_ANY, SU_ANY|T_ANY, ctfix01,
SU_ANY|T_LONG, SU_ANY|T_LONG, ctfix01,
SU_ANY|T_LONG, SU_ANY|T_ANY, ctfix01,
SU_ANY|T_ANY, SU_ANY|T_LONG, ctfix01,
0,
};
char ct329[] {
OP,TLEFT,' ',LADDR,'\n',
MOV,TLEFT,' ',LADDR,',',CR,'\n',
0 };
char ct330[] {
LEFT,S_STACK,
JSR,' ',OPCALL,'\n',
POP4,MOV,TLEFT,' ',CR,',',LADDR,'\n',
0 };
char ct331[] {
LEFT,S_INDR,
OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
MOV,TLEFT,' ',LOFFSET,'(',CAR,')',',',CR,'\n',
0 };
char ct332[] {
LEFT,S_INDR,
MOV,TLEFT,' ',CR,',',PSH,'\n',
JSR,' ',OPCALL,'\n',
POP4,MOV,TLEFT,' ',CR,',',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fr_eqnot[] {
SU_ADDR|T_ANY, SU_ANY|T_ANY, ct329,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ct329,
SU_ADDR|T_FLOAT, SU_ANY|T_ANY, ct330,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ct331,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ct331,
SU_ANY|T_FLOAT|T_INDR, SU_ANY|T_ANY, ct332,
0,
};
char ct333[] {
OP,TLEFT,' ',LADDR,'\n',
0 };
char ct334[] {
LEFT,S_INDR,
OP,TLEFT,' ',LOFFSET,'(',CAR,')','\n',
0 };
struct skeleton fe_eqnot[] {
SU_ADDR|T_ANY, SU_ANY|T_ANY, ct333,
SU_ADDR|T_LONG, SU_ANY|T_ANY, ct333,
SU_ANY|T_ANY|T_INDR, SU_ANY|T_ANY, ct334,
SU_ANY|T_LONG|T_INDR, SU_ANY|T_ANY, ct334,
0,
};
char ct335[] {
RIGHT,0,
EXTW,' ',CR,'\n',
0 };
char ct336[] {
RIGHT,0,
0 };
struct skeleton fr_docast[] {
SU_ANY|T_CHAR, SU_ANY|T_INT, ct335,
SU_ANY|T_CHAR, SU_ANY|T_LONG, ct335,
SU_ANY|T_ANY, SU_ANY|T_ANY, ct336,
SU_ANY|T_ANY, SU_ANY|T_LONG, ct336,
SU_ANY|T_LONG, SU_ANY|T_ANY, ct336,
SU_ANY|T_LONG, SU_ANY|T_LONG, ct336,
0,
};
char ct337[] {
RIGHT,0,
EXRL,
MOV,TLEFT,' ',CR,',',PSH,'\n',
0 };
struct skeleton fs_docast[] {
SU_ANY|T_LONG, SU_ANY|T_ANY, ct337,
0,
};