#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %own %integer ATOM1=17

static int ATOM1 = 17;

//     2
//     3  %routine CODEATOM

static void CODEATOM(void) {
  //     4
  //     5     %if ATOM1#0 %then ->i77L231

  if (ATOM1 == 0) goto L_0001;
  goto U_1000;
L_0001:;

//     6        ATOM1=19

  ATOM1 = 19;

  //     7        %return

  return;

  //     8     i77L231:

U_1000:;

//     9
//    10     !Atom1 = \Atom1;  Atom1 = \Atom1
//    11     %return

  return;

  //    12
  //    13     Print String("Error!");

  _imp_PRINTSTRING(_imp_str_literal("Error!"));
  _imp_NEWLINE();
  _imp_stop(0);

  // ?access
  //    14                            ;  Newline;  %stop

} /* end of CODEATOM */

//    14  %end
//    15
//    16  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //    17     Print String("About to call Code Atom");  Newline

  _imp_PRINTSTRING(_imp_str_literal("About to call Code Atom"));
  _imp_NEWLINE();

  //    18     Code Atom

  CODEATOM();

  //    19     Print String("atom1=");  Write(Atom1, 0)

  _imp_PRINTSTRING(_imp_str_literal("atom1="));
  _imp_WRITE(ATOM1, 0);

  //    20     Newline

  _imp_NEWLINE();

  //    21  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}