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