#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1
// 2 %externalstring(31)%fn in file name
_imp_string31 INFILENAME(void) {
// 3 ! Unfortunately the input to this is a vax .OBJ file, not a .EXE
// 4 ! Fortunately... we have a Vax emulator and can regenerate .OBJ files :-)
// 5 %result = "vaxtest"
return *(_imp_string31 *)/*?*/ _imp_str_literal_ptr("vaxtest");
// 6 %end
} /* end of INFILENAME */
// 7
// 8 %routine readch(%integername p)
static void READCH(int *P) {
// 9 readsymbol(p)
_imp_READSYMBOL(P);
// 10 %end
return;
} /* end of READCH */
// 11
// 12 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 13 %externalstring(31)%fnspec in file name
extern _imp_string31 INFILENAME(void);
// 14 %owninteger records = 0
static int RECORDS = 0;
// 15 %owninteger ca = 0
static int CA = 0;
// 16 %integer len, this line
int LEN;
int THISLINE;
// 17 %integer stp = 0
int STP;
STP = 0;
// 18 %integerarray stack(1:63)
int STACK[63];
// 19 %owninteger stream = 0
static int STREAM = 0;
// 20 %routine newline
void NEWLINE(void) {
// 21 %owninteger left = 60
static int LEFT = 60;
// 22 left = left-1
LEFT = LEFT - 1;
// 23 %if left <= 0 %start
if (LEFT > 0) goto L_0001;
// 24 left = 60
LEFT = 60;
// 25 printsymbol(12)
_imp_PRINTSYMBOL(12);
// 26 %finish
L_0001:;
// 27 printsymbol(nl)
_imp_PRINTSYMBOL(10);
// 28 %end
return;
} /* end of NEWLINE */
// 29 %routine select(%integer n)
void SELECT(int N) {
// 30 stream = n
STREAM = N;
// 31 selectinput(n)
_imp_SELECTINPUT(N);
// 32 %end
return;
} /* end of SELECT */
// 33 %conststring(6)%array opcode(0:255) =
const _imp_string6 OPCODE[256] = {
_imp_str_init("halt "), _imp_str_init("nop "), _imp_str_init("rei "), _imp_str_init("bpt "),
_imp_str_init("ret "), _imp_str_init("rsb "), _imp_str_init("ldpctx"), _imp_str_init("svpctx"),
_imp_str_init("cvtps "), _imp_str_init("cvtsp "), _imp_str_init("index "), _imp_str_init("crc "),
_imp_str_init("prober"), _imp_str_init("probew"), _imp_str_init("insque"), _imp_str_init("remque"),
_imp_str_init("bsbb "), _imp_str_init("brb "), _imp_str_init("bneq "), _imp_str_init("beql "),
_imp_str_init("bgtr "), _imp_str_init("bleq "), _imp_str_init("jsb "), _imp_str_init("jmp "),
_imp_str_init("bgeq "), _imp_str_init("blss "), _imp_str_init("bgtru "), _imp_str_init("blequ "),
_imp_str_init("bvc "), _imp_str_init("bvs "), _imp_str_init("bgequ "), _imp_str_init("blssu "),
_imp_str_init("addp4 "), _imp_str_init("addp6 "), _imp_str_init("subp4 "), _imp_str_init("subp6 "),
_imp_str_init("cvtpt "), _imp_str_init("mulp "), _imp_str_init("cvttp "), _imp_str_init("divp "),
_imp_str_init("movc3 "), _imp_str_init("cmpc3 "), _imp_str_init("scanc "), _imp_str_init("spanc "),
_imp_str_init("movc5 "), _imp_str_init("cmpc5 "), _imp_str_init("movtc "), _imp_str_init("movtuc"),
_imp_str_init("bsbw "), _imp_str_init("brw "), _imp_str_init("cvtwl "), _imp_str_init("cvtwb "),
_imp_str_init("movp "), _imp_str_init("comp3 "), _imp_str_init("cvtpl "), _imp_str_init("cmpp4 "),
_imp_str_init("editpc"), _imp_str_init("matchc"), _imp_str_init("locc "), _imp_str_init("skpc "),
_imp_str_init("movzwl"), _imp_str_init("acbw "), _imp_str_init("movaw "), _imp_str_init("pushaw"),
_imp_str_init("addf2 "), _imp_str_init("addf3 "), _imp_str_init("subf2 "), _imp_str_init("subf3 "),
_imp_str_init("mulf2 "), _imp_str_init("mulf3 "), _imp_str_init("divf2 "), _imp_str_init("divf3 "),
_imp_str_init("cvtfb "), _imp_str_init("cvtfw "), _imp_str_init("cvtfl "), _imp_str_init("cvtrfl"),
_imp_str_init("cvtbf "), _imp_str_init(" "), _imp_str_init("cvtlf "), _imp_str_init("acbf "),
_imp_str_init("movf "), _imp_str_init("cmpf "), _imp_str_init("mnegf "), _imp_str_init("tstf "),
_imp_str_init("emodf "), _imp_str_init("polyf "), _imp_str_init("cvtfd "), _imp_str_init(" "),
_imp_str_init("adawi "), _imp_str_init(" "), _imp_str_init(" "), _imp_str_init(" "),
_imp_str_init(" "), _imp_str_init(" "), _imp_str_init(" "), _imp_str_init(" "),
_imp_str_init("addd2 "), _imp_str_init("addd3 "), _imp_str_init("subd2 "), _imp_str_init("subd3 "),
_imp_str_init("muld2 "), _imp_str_init("muld3 "), _imp_str_init("divd2 "), _imp_str_init("divd3 "),
_imp_str_init("cvtdb "), _imp_str_init("cvtdw "), _imp_str_init("cvtdl "), _imp_str_init("cvtrdl"),
_imp_str_init("cvtbd "), _imp_str_init("cvtwd "), _imp_str_init("cvtld "), _imp_str_init("acbd "),
_imp_str_init("movd "), _imp_str_init("cmpd "), _imp_str_init("mnegd "), _imp_str_init("tstd "),
_imp_str_init("emodd "), _imp_str_init("polyd "), _imp_str_init("cvtdf "), _imp_str_init(" "),
_imp_str_init("ashl "), _imp_str_init("ashq "), _imp_str_init("emul "), _imp_str_init("ediv "),
_imp_str_init("clrq "), _imp_str_init("movq "), _imp_str_init("movaq "), _imp_str_init("pushaq"),
_imp_str_init("addb2 "), _imp_str_init("addb3 "), _imp_str_init("subb2 "), _imp_str_init("subb3 "),
_imp_str_init("mulb2 "), _imp_str_init("mulb3 "), _imp_str_init("devb2 "), _imp_str_init("divb3 "),
_imp_str_init("bisb2 "), _imp_str_init("bisb3 "), _imp_str_init("bicb2 "), _imp_str_init("bicb3 "),
_imp_str_init("xorb2 "), _imp_str_init("xorb3 "), _imp_str_init("mnegb "), _imp_str_init("caseb "),
_imp_str_init("movb "), _imp_str_init("cmpb "), _imp_str_init("mcomb "), _imp_str_init("bitb "),
_imp_str_init("clrb "), _imp_str_init("tstb "), _imp_str_init("incb "), _imp_str_init("decb "),
_imp_str_init("cvtbl "), _imp_str_init("cvtbw "), _imp_str_init("movzbl"), _imp_str_init("movzbw"),
_imp_str_init("rotl "), _imp_str_init("acbb "), _imp_str_init("movab "), _imp_str_init("pushab"),
_imp_str_init("addw2 "), _imp_str_init("addw3 "), _imp_str_init("subw2 "), _imp_str_init("subw3 "),
_imp_str_init("mulw2 "), _imp_str_init("mulw3 "), _imp_str_init("divw2 "), _imp_str_init("divw3 "),
_imp_str_init("bisw2 "), _imp_str_init("bisw3 "), _imp_str_init("bicw2 "), _imp_str_init("bicw3 "),
_imp_str_init("xorw2 "), _imp_str_init("xorw3 "), _imp_str_init("mnegw "), _imp_str_init("casew "),
_imp_str_init("movw "), _imp_str_init("cmpw "), _imp_str_init("mcomw "), _imp_str_init("bitw "),
_imp_str_init("clrw "), _imp_str_init("tstw "), _imp_str_init("incw "), _imp_str_init("decw "),
_imp_str_init("bispsw"), _imp_str_init("bicpsw"), _imp_str_init("popr "), _imp_str_init("pushr "),
_imp_str_init("chmk "), _imp_str_init("chme "), _imp_str_init("chms "), _imp_str_init("chmu "),
_imp_str_init("addl2 "), _imp_str_init("addl3 "), _imp_str_init("subl2 "), _imp_str_init("subl3 "),
_imp_str_init("mull2 "), _imp_str_init("mull3 "), _imp_str_init("divl2 "), _imp_str_init("divl3 "),
_imp_str_init("bisl2 "), _imp_str_init("bisl3 "), _imp_str_init("bicl2 "), _imp_str_init("bicl3 "),
_imp_str_init("xorl2 "), _imp_str_init("xorl3 "), _imp_str_init("mnegl "), _imp_str_init("casel "),
_imp_str_init("movl "), _imp_str_init("cmpl "), _imp_str_init("mcoml "), _imp_str_init("bitl "),
_imp_str_init("clrl "), _imp_str_init("tstl "), _imp_str_init("incl "), _imp_str_init("decl "),
_imp_str_init("adwc "), _imp_str_init("sbwc "), _imp_str_init("mtpr "), _imp_str_init("mfpr "),
_imp_str_init("movpsl"), _imp_str_init("pushl "), _imp_str_init("moval "), _imp_str_init("pushal"),
_imp_str_init("bbs "), _imp_str_init("bbc "), _imp_str_init("bbss "), _imp_str_init("bbcs "),
_imp_str_init("bbsc "), _imp_str_init("bbcc "), _imp_str_init("bbssi "), _imp_str_init("bbcci "),
_imp_str_init("blbs "), _imp_str_init("blbc "), _imp_str_init("ffs "), _imp_str_init("ffc "),
_imp_str_init("cmpv "), _imp_str_init("cmpzv "), _imp_str_init("extv "), _imp_str_init("extzv "),
_imp_str_init("insv "), _imp_str_init("acbl "), _imp_str_init("aoblss"), _imp_str_init("aobleq"),
_imp_str_init("sobgeq"), _imp_str_init("sobgtr"), _imp_str_init("cvtlb "), _imp_str_init("cvtlw "),
_imp_str_init("ashp "), _imp_str_init("cvtlp "), _imp_str_init("callg "), _imp_str_init("calls "),
_imp_str_init("xfc "), _imp_str_init(" "), _imp_str_init(" "), _imp_str_init(" ")};
// 34+ "halt ","nop ","rei ","bpt ","ret ","rsb ","ldpctx","svpctx",
// 35+ "cvtps ","cvtsp ","index ","crc ","prober","probew","insque","remque",
// 36+ "bsbb ","brb ","bneq ","beql ","bgtr ","bleq ","jsb ","jmp ",
// 37+ "bgeq ","blss ","bgtru ","blequ ","bvc ","bvs ","bgequ ","blssu ",
// 38+ "addp4 ","addp6 ","subp4 ","subp6 ","cvtpt ","mulp ","cvttp ","divp ",
// 39+ "movc3 ","cmpc3 ","scanc ","spanc ","movc5 ","cmpc5 ","movtc ","movtuc",
// 40+ "bsbw ","brw ","cvtwl ","cvtwb ","movp ","comp3 ","cvtpl ","cmpp4 ",
// 41+ "editpc","matchc","locc ","skpc ","movzwl","acbw ","movaw ","pushaw",
// 42+ "addf2 ","addf3 ","subf2 ","subf3 ","mulf2 ","mulf3 ","divf2 ","divf3 ",
// 43+ "cvtfb ","cvtfw ","cvtfl ","cvtrfl","cvtbf "," ","cvtlf ","acbf ",
// 44+ "movf ","cmpf ","mnegf ","tstf ","emodf ","polyf ","cvtfd "," ",
// 45+ "adawi "," "," "," "," "," "," "," ",
// 46+ "addd2 ","addd3 ","subd2 ","subd3 ","muld2 ","muld3 ","divd2 ","divd3 ",
// 47+ "cvtdb ","cvtdw ","cvtdl ","cvtrdl","cvtbd ","cvtwd ","cvtld ","acbd ",
// 48+ "movd ","cmpd ","mnegd ","tstd ","emodd ","polyd ","cvtdf "," ",
// 49+ "ashl ","ashq ","emul ","ediv ","clrq ","movq ","movaq ","pushaq",
// 50+ "addb2 ","addb3 ","subb2 ","subb3 ","mulb2 ","mulb3 ","devb2 ","divb3 ",
// 51+ "bisb2 ","bisb3 ","bicb2 ","bicb3 ","xorb2 ","xorb3 ","mnegb ","caseb ",
// 52+ "movb ","cmpb ","mcomb ","bitb ","clrb ","tstb ","incb ","decb ",
// 53+ "cvtbl ","cvtbw ","movzbl","movzbw","rotl ","acbb ","movab ","pushab",
// 54+ "addw2 ","addw3 ","subw2 ","subw3 ","mulw2 ","mulw3 ","divw2 ","divw3 ",
// 55+ "bisw2 ","bisw3 ","bicw2 ","bicw3 ","xorw2 ","xorw3 ","mnegw ","casew ",
// 56+ "movw ","cmpw ","mcomw ","bitw ","clrw ","tstw ","incw ","decw ",
// 57+ "bispsw","bicpsw","popr ","pushr ","chmk ","chme ","chms ","chmu ",
// 58+ "addl2 ","addl3 ","subl2 ","subl3 ","mull2 ","mull3 ","divl2 ","divl3 ",
// 59+ "bisl2 ","bisl3 ","bicl2 ","bicl3 ","xorl2 ","xorl3 ","mnegl ","casel ",
// 60+ "movl ","cmpl ","mcoml ","bitl ","clrl ","tstl ","incl ","decl ",
// 61+ "adwc ","sbwc ","mtpr ","mfpr ","movpsl","pushl ","moval ","pushal",
// 62+ "bbs ","bbc ","bbss ","bbcs ","bbsc ","bbcc ","bbssi ","bbcci ",
// 63+ "blbs ","blbc ","ffs ","ffc ","cmpv ","cmpzv ","extv ","extzv ",
// 64+ "insv ","acbl ","aoblss","aobleq","sobgeq","sobgtr","cvtlb ","cvtlw ",
// 65+ "ashp ","cvtlp ","callg ","calls ","xfc "," "," "," "
// 66 %constbyteintegerarray oplimit(0:255) =
const unsigned char OPLIMIT[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 5, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 6, 4, 6, 5,
6, 5, 6, 3, 3, 4, 4, 5, 5, 6, 6, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 3, 3, 2, 4, 2, 1, 2, 2, 2, 3, 2, 3, 2, 3, 2, 2,
2, 2, 2, 0, 2, 4, 2, 2, 2, 1, 5, 3, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2,
4, 2, 2, 2, 1, 5, 3, 2, 0, 3, 3, 4, 4, 1, 2, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2,
1, 1, 1, 1, 2, 2, 2, 2, 3, 4, 2, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
2, 1, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 2, 2, 2, 2, 6, 3, 2, 2, 0, 0, 0, 0};
// 67+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 6, 5, 3, 3, 2, 2,
// 68+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
// 69+ 4, 6, 4, 6, 5, 6, 5, 6, 3, 3, 4, 4, 5, 5, 6, 6,
// 70+ 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 3, 3, 2, 4, 2, 1,
// 71+ 2, 2, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 0, 2, 4,
// 72+ 2, 2, 2, 1, 5, 3, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0,
// 73+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 4,
// 74+ 2, 2, 2, 1, 5, 3, 2, 0, 3, 3, 4, 4, 1, 2, 2, 1,
// 75+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
// 76+ 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 3, 4, 2, 1,
// 77+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
// 78+ 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
// 79+ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,
// 80+ 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1,
// 81+ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 4, 4, 4, 4, 4, 4,
// 82+ 4, 4, 3, 3, 2, 2, 2, 2, 6, 3, 2, 2, 0, 0, 0, 0
// 83 %constshortintegerarray opkey(0:256*6-1) =
const short int OPKEY[1536] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 0, 0, 2, 1, 2, 1, 0, 0,
4, 4, 4, 4, 4, 4, 1, 4, 2, 1, 4, 0, 1, 2, 1, 0, 0, 0, 1, 2, 1, 0, 0, 0, 1, 4, 0, 0, 0, 0,
1, 4, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
-1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
-1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
-1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 2, 1, 2, 1, 0, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0,
2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 2, 1, 2, 1, 2, 1,
2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1, 2, 1, 0,
2, 1, 1, 2, 1, 0, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, -2, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0,
2, 4, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0, 0, 2, 1, 4, 0, 0, 0,
2, 1, 2, 1, 0, 0, 2, 1, 1, 1, 0, 0, 2, 1, 2, 1, 0, 0, 1, 2, 1, 0, 0, 0, 1, 2, 1, 0, 0, 0,
2, 4, 0, 0, 0, 0, 2, 2, 2, -2, 0, 0, 2, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 1, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 4, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, -2, 0, 0,
4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 4, 4, 0,
4, 2, 1, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0,
8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 8, 1, 0, 0, 0, 0,
8, 2, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 1, 8, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0,
4, 8, 0, 0, 0, 0, 8, 8, 8, -2, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,
8, 0, 0, 0, 0, 0, 8, 1, 8, 4, 8, 0, 8, 2, 1, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 4, 4, 0, 0, 0, 1, 8, 8, 0, 0, 0, 4, 4, 4, 8, 0, 0, 4, 8, 4, 4, 0, 0, 8, 0, 0, 0, 0, 0,
8, 8, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0,
1, 2, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 1, 1, 1, -2, 0, 0, 1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0,
2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0,
2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0,
2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0,
4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 1, -1, 0, 0, 0,
4, 1, -1, 0, 0, 0, 4, 1, -1, 0, 0, 0, 4, 1, -1, 0, 0, 0, 4, 1, -1, 0, 0, 0, 4, 1, -1, 0, 0, 0,
4, 1, -1, 0, 0, 0, 4, 1, -1, 0, 0, 0, 4, -1, 0, 0, 0, 0, 4, -1, 0, 0, 0, 0, 4, 1, 1, 4, 0, 0,
4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0,
4, 4, 1, 1, 0, 0, 4, 4, 4, -2, 0, 0, 4, 4, -1, 0, 0, 0, 4, 4, -1, 0, 0, 0, 4, -1, 0, 0, 0, 0,
4, -1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 1, 2, 1, 1, 2, 1, 4, 2, 1, 0, 0, 0,
1, 1, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0};
// 84+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 85+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 86+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 87+ 2, 1, 2, 1, 0, 0, 2, 1, 2, 1, 0, 0, 4, 4, 4, 4,
// 88+ 4, 4, 1, 4, 2, 1, 4, 0, 1, 2, 1, 0, 0, 0, 1, 2,
// 89+ 1, 0, 0, 0, 1, 4, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0,
// 90+ -1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0, 0, 0,
// 91+ 0, 0,-1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0,
// 92+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
// 93+ -1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0, 0, 0,
// 94+ 0, 0,-1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0,
// 95+ 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,
// 96+ 2, 1, 2, 1, 0, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1,
// 97+ 0, 0, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 2, 1,
// 98+ 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 2, 1, 2, 1, 2, 1,
// 99+ 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0, 0, 2, 1, 1, 1,
// 100+ 0, 0, 2, 1, 1, 1, 0, 0, 2, 1, 1, 2, 1, 0, 2, 1,
// 101+ 1, 2, 1, 0, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1,
// 102+ -2, 0, 0, 0, 0, 0,-2, 0, 0, 0, 0, 0, 2, 4, 0, 0,
// 103+ 0, 0, 2, 1, 0, 0, 0, 0, 2, 1, 1, 0, 0, 0, 2, 1,
// 104+ 1, 0, 0, 0, 2, 1, 4, 0, 0, 0, 2, 1, 2, 1, 0, 0,
// 105+ 2, 1, 1, 1, 0, 0, 2, 1, 2, 1, 0, 0, 1, 2, 1, 0,
// 106+ 0, 0, 1, 2, 1, 0, 0, 0, 2, 4, 0, 0, 0, 0, 2, 2,
// 107+ 2,-2, 0, 0, 2, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
// 108+ 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0,
// 109+ 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4,
// 110+ 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
// 111+ 4, 1, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 4, 4, 0, 0,
// 112+ 0, 0, 4, 4, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0,
// 113+ 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4,-2, 0, 0,
// 114+ 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0,
// 115+ 0, 0, 4, 0, 0, 0, 0, 0, 4, 1, 4, 4, 4, 0, 4, 2,
// 116+ 1, 0, 0, 0, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 117+ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 118+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 119+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 120+ 8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0, 8, 8, 0, 0,
// 121+ 0, 0, 8, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8,
// 122+ 8, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 8, 0, 0, 0,
// 123+ 8, 1, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 8, 4, 0, 0,
// 124+ 0, 0, 8, 4, 0, 0, 0, 0, 1, 8, 0, 0, 0, 0, 2, 4,
// 125+ 0, 0, 0, 0, 4, 8, 0, 0, 0, 0, 8, 8, 8,-2, 0, 0,
// 126+ 8, 8, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 0, 0,
// 127+ 0, 0, 8, 0, 0, 0, 0, 0, 8, 1, 8, 4, 8, 0, 8, 2,
// 128+ 1, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 129+ 1, 4, 4, 0, 0, 0, 1, 8, 8, 0, 0, 0, 4, 4, 4, 8,
// 130+ 0, 0, 4, 8, 4, 4, 0, 0, 8, 0, 0, 0, 0, 0, 8, 8,
// 131+ 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
// 132+ 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0,
// 133+ 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1,
// 134+ 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
// 135+ 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0,
// 136+ 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1,
// 137+ 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
// 138+ 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
// 139+ 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
// 140+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
// 141+ 1, 4, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 1, 4, 0, 0,
// 142+ 0, 0, 1, 2, 0, 0, 0, 0, 1, 4, 4, 0, 0, 0, 1, 1,
// 143+ 1,-2, 0, 0, 1, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
// 144+ 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0,
// 145+ 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2,
// 146+ 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0,
// 147+ 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0,
// 148+ 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2,
// 149+ 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0,
// 150+ 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0,
// 151+ 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0,
// 152+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
// 153+ 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0,
// 154+ 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0,
// 155+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
// 156+ 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0,
// 157+ 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4,
// 158+ 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
// 159+ 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0,
// 160+ 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4,
// 161+ 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
// 162+ 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0,
// 163+ 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0,
// 164+ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
// 165+ 4, 4, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 4, 0, 0,
// 166+ 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0,
// 167+ 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
// 168+ 4, 1,-1, 0, 0, 0, 4, 1,-1, 0, 0, 0, 4, 1,-1, 0,
// 169+ 0, 0, 4, 1,-1, 0, 0, 0, 4, 1,-1, 0, 0, 0, 4, 1,
// 170+ -1, 0, 0, 0, 4, 1,-1, 0, 0, 0, 4, 1,-1, 0, 0, 0,
// 171+ 4,-1, 0, 0, 0, 0, 4,-1, 0, 0, 0, 0, 4, 1, 1, 4,
// 172+ 0, 0, 4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0, 4, 1,
// 173+ 1, 4, 0, 0, 4, 1, 1, 4, 0, 0, 4, 1, 1, 4, 0, 0,
// 174+ 4, 4, 1, 1, 0, 0, 4, 4, 4,-2, 0, 0, 4, 4,-1, 0,
// 175+ 0, 0, 4, 4,-1, 0, 0, 0, 4,-1, 0, 0, 0, 0, 4,-1,
// 176+ 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0,
// 177+ 1, 2, 1, 1, 2, 1, 4, 2, 1, 0, 0, 0, 1, 1, 0, 0,
// 178+ 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// 179+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// 180 !*t*
// 181 %routine vaxcode(%integer v)
void VAXCODE(int V) {
// 182 %string(15) temp
_imp_string15 TEMP;
// 183 %constinteger pc = 15
// 184 %ownstring(3) prefix
static _imp_string3 PREFIX;
// 185 %ownstring(72) operand, current
static _imp_string72 OPERAND;
static _imp_string72 CURRENT;
// 186 %owninteger state=0
static int STATE = 0;
// 187 %integer mode, reg
int MODE;
int REG;
// 188 %owninteger extra, hexlen, p, key, limit
static int EXTRA;
static int HEXLEN;
static int P;
static int KEY;
static int LIMIT;
// 189 %switch st(0:3), ops(0:15)
int ST_index;
int ST_line;
char *ST_file;
static const void *ST[4] = {&&case_ST_0, &&case_ST_1, &&case_ST_2, &&case_ST_missing};
int OPS_index;
int OPS_line;
char *OPS_file;
static const void *OPS[16] = {&&case_OPS_0, &&case_OPS_1, &&case_OPS_2, &&case_OPS_3,
&&case_OPS_4, &&case_OPS_5, &&case_OPS_6, &&case_OPS_7,
&&case_OPS_8, &&case_OPS_9, &&case_OPS_10, &&case_OPS_11,
&&case_OPS_12, &&case_OPS_13, &&case_OPS_14, &&case_OPS_15};
// 190 %conststring(3)%array sreg(0:15) = "R0", "R1", "R2", "R3",
const _imp_string3 SREG[16] = {_imp_str_init("R0"), _imp_str_init("R1"), _imp_str_init("R2"), _imp_str_init("R3"),
_imp_str_init("R4"), _imp_str_init("R5"), _imp_str_init("R6"), _imp_str_init("R7"),
_imp_str_init("R8"), _imp_str_init("R9"), _imp_str_init("R10"), _imp_str_init("GLA"),
_imp_str_init("AP"), _imp_str_init("FP"), _imp_str_init("SP"), _imp_str_init("PC")};
// 191+ "R4", "R5", "R6", "R7",
// 192+ "R8", "R9", "R10","GLA",
// 193+ "AP", "FP", "SP", "PC"
// 194
// 195 %string(2)%fn hex(%integer x)
_imp_string2 HEX(int X) {
// 196 %conststring(1)%array xsym(0:15) = "0","1","2","3","4","5","6","7",
const _imp_string1 XSYM[16] = {_imp_str_init("0"), _imp_str_init("1"), _imp_str_init("2"), _imp_str_init("3"),
_imp_str_init("4"), _imp_str_init("5"), _imp_str_init("6"), _imp_str_init("7"),
_imp_str_init("8"), _imp_str_init("9"), _imp_str_init("A"), _imp_str_init("B"),
_imp_str_init("C"), _imp_str_init("D"), _imp_str_init("E"), _imp_str_init("F")};
// 197+ "8","9","A","B","C","D","E","F"
// 198 %result = xsym(x>>4&15).xsym(x&15)
return *(_imp_string2 *)/*?*/ &
*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &XSYM[(unsigned int)X >> 4 & 15], (_imp_string *)/*?*/ &XSYM[X & 15]);
(_imp_string255 *)&tmp;
})
;
// 199 %end
} /* end of HEX */
// 200
// 201 %routine addr(%integer n)
void ADDR(int N) {
// 202 printstring(hex(n>>16))
_imp_PRINTSTRING(
*({
__typeof__(_imp_string2) tmp = HEX((unsigned int)N >> 16) /*q*/;
(_imp_string255 *)&tmp;
})
);
// 203 printstring(hex(n>>8))
_imp_PRINTSTRING(
*({
__typeof__(_imp_string2) tmp = HEX((unsigned int)N >> 8) /*q*/;
(_imp_string255 *)&tmp;
})
);
// 204 printstring(hex(n))
_imp_PRINTSTRING(
*({
__typeof__(_imp_string2) tmp = HEX(N) /*q*/;
(_imp_string255 *)&tmp;
})
);
// 205 %end
return;
} /* end of ADDR */
// 206
// 207 %routine hex byte(%integer n)
void HEXBYTE(int N) {
// 208 printstring(hex(nl))
_imp_PRINTSTRING(
*({
__typeof__(_imp_string2) tmp = HEX(10) /*q*/;
(_imp_string255 *)&tmp;
})
);
// 209 hexlen = hexlen+2
HEXLEN = HEXLEN + 2;
// 210 %end
return;
} /* end of HEXBYTE */
// ?N unused
// 211
// 212 %routine dump line
void DUMPLINE(void) {
// 213 spaces(20-hexlen)
_imp_SPACES(20 - HEXLEN);
// 214 hexlen = 0
HEXLEN = 0;
// 215 printstring(current); current = ""
_imp_PRINTSTRING(
*({
__typeof__(_imp_string72) tmp = CURRENT /*q*/;
(_imp_string255 *)&tmp;
})
);
_imp_strncpy(/*?*/ &CURRENT, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 72);
// 216 newline
NEWLINE();
// 217 %end
return;
} /* end of DUMPLINE */
// 218
// 219 v = v&255
V = V & 255;
// 220 ca = ca+1
CA = CA + 1;
// 221 ->st(state)
ST_line = __LINE__;
ST_file = __FILE__;
ST_index = STATE;
goto case_ST_dispatch;
// 222
// 223 st(0): spaces(5); addr(ca-1); space
case_ST_0:;
_imp_SPACES(5);
ADDR(CA - 1);
_imp_SPACE();
// 224 hexlen = 0
HEXLEN = 0;
// 225 current = opcode(v); operand = ""; prefix = ""
_imp_strncpy(/*?*/ &CURRENT, ({
__typeof__(_imp_string6) tmp; /*B*/
tmp = OPCODE[V];
(void *)&tmp;
}),
/*max:*/ 72);
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 72);
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 3);
// 226 p = v*6
P = V * 6;
// 227 key = 0
KEY = 0;
// 228 limit = oplimit(v)
LIMIT = OPLIMIT[V];
// 229 hex byte(v)
HEXBYTE(V);
// 230 %if v = 16_fc %start
if (V != 252) goto L_0003;
// 231 current = ".entry"
_imp_strncpy(/*?*/ &CURRENT, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal(".entry");
(void *)&tmp;
}),
/*max:*/ 72);
// 232 operand = "FC"
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("FC");
(void *)&tmp;
}),
/*max:*/ 72);
// 233 state = 2
STATE = 2;
// 234 extra = 0
EXTRA = 0;
// 235 %return
return;
// 236 %finish
L_0003:;
// 237 ->complete %if limit = 0
if (LIMIT != 0) goto L_0004;
goto U_1000;
L_0004:;
// 238 state = 1
STATE = 1;
// 239 key = 1
KEY = 1;
// 240 ->DONE
goto U_1001;
// 241
// 242 st(1):hex byte(v)
case_ST_1:;
HEXBYTE(V);
// 243 %if opkey(p) < 0 %start
if (OPKEY[P] >= 0) goto L_0005;
// 244 state = 2
STATE = 2;
// 245 extra = -opkey(p); ->st2
EXTRA = -OPKEY[P];
goto U_1002;
// 246 %finish
L_0005:;
// 247 mode = v>>4&15
MODE = (unsigned int)V >> 4 & 15;
// 248 reg = v&15
REG = V & 15;
// 249 extra = 0
EXTRA = 0;
// 250 ->ops(mode)
OPS_line = __LINE__;
OPS_file = __FILE__;
OPS_index = MODE;
goto case_OPS_dispatch;
// 251 ops(0):ops(1):ops(2):ops(3):
case_OPS_0:;
case_OPS_1:;
case_OPS_2:;
case_OPS_3:;
// 252 operand = "S^".hex(v).operand; ->complete
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("S^"), ({
__typeof__(_imp_string2) tmp; /*E*/
tmp = HEX(V);
(void *)&tmp;
}));
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
goto U_1000;
// 253 ops(4):operand = "[".sreg(reg)."]".operand; ->DONE
case_OPS_4:;
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("["),
(_imp_string *)/*?*/ &SREG[REG]);
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr("]"));
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
goto U_1001;
// 254 ops(5):operand = sreg(reg).operand; ->complete
case_OPS_5:;
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &SREG[REG], (_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
goto U_1000;
// 255 ops(8):
case_OPS_8:;
// 256 ops(9):
case_OPS_9:;
// 257 ops(6):
case_OPS_6:;
// 258 ops(7):prefix = ""
case_OPS_7:;
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 3);
// 259 %if reg = pc %and mode >= 8 %start
if (REG != 15) goto L_0007;
if (MODE < 8) goto L_0007;
// 260 prefix = "I^"
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("I^");
(void *)&tmp;
}),
/*max:*/ 3);
// 261 temp = ""
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 15);
// 262 extra = opkey(p)
EXTRA = OPKEY[P];
// 263 temp = "" %and extra = 4 %if mode = 9
if (MODE != 9) goto L_0008;
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 15);
EXTRA = 4;
L_0008:;
// 264 %else
goto L_0009;
L_0007:;
// 265 temp = "(".sreg(reg).")"
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("("),
(_imp_string *)/*?*/ &SREG[REG]);
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr(")"));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 15);
// 266 temp = temp."+" %if mode >= 8
if (MODE < 8) goto L_000A;
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &TEMP, (_imp_string *)/*?*/ _imp_str_literal_ptr("+"));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 15);
L_000A:;
// 267 temp = "-".temp %if mode = 7
if (MODE != 7) goto L_000B;
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("-"), (_imp_string *)/*?*/ &TEMP);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 15);
L_000B:;
// 268 temp = "@".temp %if mode = 9
if (MODE != 9) goto L_000C;
_imp_strncpy(/*?*/ &TEMP, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("@"), (_imp_string *)/*?*/ &TEMP);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 15);
L_000C:;
// 269 %finish
L_0009:;
// 270 operand = temp.operand
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &TEMP, (_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 271 ->complete %if extra = 0
if (EXTRA != 0) goto L_000D;
goto U_1000;
L_000D:;
// 272 state = 2; ->DONE
STATE = 2;
goto U_1001;
// 273
// 274 ops(10):ops(11):
case_OPS_10:;
case_OPS_11:;
// 275 prefix = "B^"; extra = 1; ->rest
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("B^");
(void *)&tmp;
}),
/*max:*/ 3);
EXTRA = 1;
goto U_1003;
// 276 ops(12):ops(13):
case_OPS_12:;
case_OPS_13:;
// 277 prefix = "W^"; extra = 2; ->rest
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("W^");
(void *)&tmp;
}),
/*max:*/ 3);
EXTRA = 2;
goto U_1003;
// 278 ops(14):ops(15):
case_OPS_14:;
case_OPS_15:;
// 279 prefix = "L^"; extra = 4
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("L^");
(void *)&tmp;
}),
/*max:*/ 3);
EXTRA = 4;
// 280 rest: prefix = "@".prefix %if mode&1 # 0
U_1003:;
if (MODE & 1 == 0) goto L_000E;
_imp_strncpy(/*?*/ &PREFIX, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("@"), (_imp_string *)/*?*/ &PREFIX);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 3);
L_000E:;
// 281 %if reg # pc %start
if (REG == 15) goto L_000F;
// 282 operand = "(".sreg(reg).")".operand
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ _imp_str_literal_ptr("("),
(_imp_string *)/*?*/ &SREG[REG]);
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr(")"));
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 283 %finish
L_000F:;
// 284 state = 2
STATE = 2;
// 285 ->DONE
goto U_1001;
// 286
// 287 st(2):hex byte(v)
case_ST_2:;
HEXBYTE(V);
// 288 st2: operand = hex(v).operand
U_1002:;
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join(({
__typeof__(_imp_string2) tmp; /*D*/
tmp = HEX(V);
(void *)&tmp;
}),
(_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 289 extra = extra-1
EXTRA = EXTRA - 1;
// 290 ->DONE %if extra > 0
if (EXTRA <= 0) goto L_0010;
goto U_1001;
L_0010:;
// 291 operand = prefix.operand
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &PREFIX, (_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 292
// 293 complete:
U_1000:;
// 294
// 295 %if length(current)+length(operand) > 40 %start
if (*_imp_LENGTH((_imp_string255 *)/*p*/ /*?*/ &CURRENT) + *_imp_LENGTH((_imp_string255 *)/*p*/ /*?*/ &OPERAND) <=
40)
goto L_0011;
// 296 dump line
DUMPLINE();
// 297 hex len = -6
HEXLEN = -6;
// 298 spaces(12)
_imp_SPACES(12);
// 299 %finish
L_0011:;
// 300 current = current." ".operand
_imp_strncpy(/*?*/ &CURRENT, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp = _imp_join((_imp_string *)/*?*/ &*({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &CURRENT,
(_imp_string *)/*?*/ _imp_str_literal_ptr(" "));
(_imp_string255 *)&tmp;
}),
(_imp_string *)/*?*/ &OPERAND);
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 301 operand = ""
_imp_strncpy(/*?*/ &OPERAND, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = _imp_str_literal("");
(void *)&tmp;
}),
/*max:*/ 72);
// 302 %if key = limit %start
if (KEY != LIMIT) goto L_0012;
// 303 dump line
DUMPLINE();
// 304 state = 0
STATE = 0;
// 305 ->DONE
goto U_1001;
// 306 %finish
L_0012:;
// 307 key = key+1
KEY = KEY + 1;
// 308 p = p+1
P = P + 1;
// 309 current = current.","
_imp_strncpy(/*?*/ &CURRENT, ({
__typeof__(_imp_string255) tmp; /*B*/
tmp = *({
_imp_string255 tmp =
_imp_join((_imp_string *)/*?*/ &CURRENT, (_imp_string *)/*?*/ _imp_str_literal_ptr(","));
(_imp_string255 *)&tmp;
});
(void *)&tmp;
}),
/*max:*/ 72);
// 310 state = 1
STATE = 1;
// 311 DONE: %end
U_1001:;
return;
case_ST_dispatch:
if (ST_index < 0 || ST_index > 3)
_imp_signalf(6, 3, ST_index, "->ST(%d) out of bounds at %s line %d", ST_index, ST_file, ST_line);
goto *ST[ST_index - 0];
case_ST_missing:
_imp_signalf(8, 2, ST_index, "switch jump to undefined label ST(%d): at %s line %d", ST_index, ST_file, ST_line);
case_OPS_dispatch:
if (OPS_index < 0 || OPS_index > 15)
_imp_signalf(6, 3, OPS_index, "->OPS(%d) out of bounds at %s line %d", OPS_index, OPS_file, OPS_line);
goto *OPS[OPS_index - 0];
} /* end of VAXCODE */
// 312
// 313 %routine skip(%integer n)
void SKIP(int N) {
// 314 n = n!1
N = N | 1;
// 315 %cycle
L_0013:;
// 316 skipsymbol
_imp_SKIPSYMBOL();
// 317 n = n-1
N = N - 1;
// 318 %return %if n <= 0
if (N > 0) goto L_0014;
return;
L_0014:;
// 319 %repeat
goto L_0013;
// 320 %end
} /* end of SKIP */
// 321
// 322 %routine get(%integername n)
void GET(int *N) {
// 323 %integer j
int J;
// 324 readch(n); readch(j)
READCH(N);
READCH(/*?*/ &J);
// 325 n = n+j<<8
*N = *N + (J << 8);
// 326 %end
return;
} /* end of GET */
auto void FINDLINE(void);
// 327 %routinespec find line
// 328
// 329 %routine get tir
void GETTIR(void) {
// 330 %integer t
int T;
// 331 %cycle
L_0015:;
// 332 records = records+1
RECORDS = RECORDS + 1;
// 333 get(len)
GET(/*?*/ &LEN);
// 334 readch(t); len = len-1
READCH(/*?*/ &T);
LEN = LEN - 1;
// 335 %if t = 3 %start
if (T != 3) goto L_0016;
// 336 this line = 50000
THISLINE = 50000;
// 337 find line
FINDLINE();
// 338 %finish
L_0016:;
// 339 %return %if t = 2
if (T != 2) goto L_0017;
return;
L_0017:;
// 340 skip(len)
SKIP(LEN);
// 341 %repeat
goto L_0015;
// 342 %end
} /* end of GETTIR */
// 343 %routine find line
void FINDLINE(void) {
// 344 %integer s
int S;
// 345 %owninteger here = 0
static int HERE = 0;
// 346 %return %if this line <= here
if (THISLINE > HERE) goto L_0018;
return;
L_0018:;
// 347 select(1)
SELECT(1);
// 348 %cycle
L_0019:;
// 349 here = here+1
HERE = HERE + 1;
// 350 write(here, -4); space
_imp_WRITE(HERE, -4);
_imp_SPACE();
// 351 %cycle
L_001A:;
// 352 readsymbol(s)
_imp_READSYMBOL(/*?*/ &S);
// 353 %exit %if s = nl
if (S != 10) goto L_001B;
goto L_001C;
L_001B:;
// 354 printsymbol(s)
_imp_PRINTSYMBOL(S);
// 355 %repeat
goto L_001A;
L_001C:;
// 356 newline
NEWLINE();
// 357 %repeat %until here >= this line
if (HERE >= THISLINE) goto L_001D;
goto L_0019;
L_001D:;
// 358 select(2)
SELECT(2);
// 359 %end
return;
} /* end of FINDLINE */
// 360 %routine process tir
void PROCESSTIR(void) {
// 361 %integer com, d, p, extra
int COM;
int D;
int P;
int EXTRA;
// 362 extra = len&1
EXTRA = LEN & 1;
// 363 ->skip %if len <= 0
if (LEN > 0) goto L_001E;
goto U_1004;
L_001E:;
// 364 readch(com); len = len-1
READCH(/*?*/ &COM);
LEN = LEN - 1;
// 365 ->cc %if com&16_80 # 0 %and ca >= 0
if (COM & 128 == 0) goto L_001F;
if (CA < 0) goto L_001F;
goto U_1005;
L_001F:;
// 366 ->skip %if com # 5
if (COM == 5) goto L_0020;
goto U_1004;
L_0020:;
// 367 readch(p); get(d)
READCH(/*?*/ &P);
GET(/*?*/ &D);
// 368 skipsymbol
_imp_SKIPSYMBOL();
// 369 len = len-4
LEN = LEN - 4;
// 370 ca = -1
CA = -1;
// 371 %if p = 3 %start
if (P != 3) goto L_0021;
// 372 readch(p); get(d)
READCH(/*?*/ &P);
GET(/*?*/ &D);
// 373 len = len-3
LEN = LEN - 3;
// 374 ->skip %if p # (-4)&255
if (P == (-4) & 255) goto L_0022;
goto U_1004;
L_0022:;
// 375 get(this line)
GET(/*?*/ &THISLINE);
// 376 len = len-2
LEN = LEN - 2;
// 377 ->skip
goto U_1004;
// 378 %finish
L_0021:;
// 379 ->skip %unless p = 0
if (P == 0) goto L_0023;
goto U_1004;
L_0023:;
// 380 ca = d
CA = D;
// 381 %while len > 0 %cycle
L_0024:;
if (LEN <= 0) goto L_0025;
// 382 readch(com); len = len-1
READCH(/*?*/ &COM);
LEN = LEN - 1;
// 383 %exit %if com&16_80 = 0
if (COM & 128 != 0) goto L_0026;
goto L_0025;
L_0026:;
// 384 cc: com = com!16_ffffff00
U_1005:;
COM = COM | (-256);
// 385 %cycle
L_0027:;
// 386 readch(p); len = len-1
READCH(/*?*/ &P);
LEN = LEN - 1;
// 387 vaxcode(p)
VAXCODE(P);
// 388 com = com+1
COM = COM + 1;
// 389 %repeat %until com = 0
if (COM == 0) goto L_0028;
goto L_0027;
L_0028:;
// 390 %repeat
goto L_0024;
L_0025:;
// 391 skip:
U_1004:;
// 392 %while len > 0 %cycle
L_0029:;
if (LEN <= 0) goto L_002A;
// 393 skipsymbol; len = len-1
_imp_SKIPSYMBOL();
LEN = LEN - 1;
// 394 %repeat
goto L_0029;
L_002A:;
// 395 skipsymbol %if extra = 0
if (EXTRA != 0) goto L_002B;
_imp_SKIPSYMBOL();
L_002B:;
// 396 %end
return;
} /* end of PROCESSTIR */
// 397
// 398 %on 9 %start
if (!_imp_on_event(9)) goto L_002C;
// 399 newline
NEWLINE();
// 400 %if stream # 1 %start
if (STREAM == 1) goto L_002D;
// 401 printstring("*object file currupt*"); newline
_imp_PRINTSTRING(_imp_str_literal("*object file currupt*"));
NEWLINE();
// 402 %monitor; %stop
/*_imp_monitor(__LINE__, __FILE__, PRETTY_FUNCTION);*/
_imp_stop(0);
// 403 %finish
L_002D:;
// 404 printstring("**end**"); newline
_imp_PRINTSTRING(_imp_str_literal("**end**"));
NEWLINE();
// 405 %stop
_imp_stop(0);
// 406 %finish
L_002C:;
// 407 open input(2, in file name.".obj")
_imp_OPENINPUT(2,
*({
__typeof__(_imp_string255) tmp = *({
_imp_string255 tmp = _imp_join(({
__typeof__(_imp_string31) tmp; /*D*/
tmp = INFILENAME();
(void *)&tmp;
}),
(_imp_string *)/*?*/ _imp_str_literal_ptr(".obj"));
(_imp_string255 *)&tmp;
}) /*q*/;
(_imp_string255 *)&tmp;
})
);
// 408 select(2)
SELECT(2);
// 409 select output(1)
_imp_SELECTOUTPUT(1);
// 410 %cycle
L_002E:;
// 411 get tir
GETTIR();
// 412 find line
FINDLINE();
// 413 process tir
PROCESSTIR();
// 414 %repeat
goto L_002E;
// 415
// 416 %endofprogram
end_0:;
}