#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %BEGIN

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

  //     2  %INTEGER I,J,JJ,Fail

  int I;
  int J;
  int JJ;
  int FAIL;

  //     3        JJ=0; Fail=0

  JJ = 0;
  FAIL = 0;

  //     4  %FOR I=1,1,70 %CYCLE

  // %for I = 1, 1, 70 %cycle
  {
    I = 0;
  L_0001:
    if (I == 70) goto L_0002;
    I += 1;

    //     5        %BEGIN

    { /*%begin*/

      //     6        %BYTEINTEGERARRAY A(0:4095)

      unsigned char A[4096];

      //     7        J=ADDR(A(0))

      J = _imp_ADDR(/*?*/ &A[0]);

      //     8        %END

      goto end_1000;
    end_1000:;
    }

    //     9        %IF JJ#J %THEN %START

    if (JJ == J) goto L_0004;

      //    10           Fail=1 %and WRITE(J,5) %AND NEWLINE %UNLESS JJ=0

    if (JJ == 0) goto L_0005;
    FAIL = 1;
    _imp_WRITE(J, 5);
    _imp_NEWLINE();
  L_0005:;

  //    11           JJ=J

    JJ = J;

    //    12        %FINISH

  L_0004:;

  //    13  %REPEAT

    goto L_0001;
  }

L_0002:;

//    14        %if Fail=0 %then printstring("Test OK")

  if (FAIL != 0) goto L_0006;
  _imp_PRINTSTRING(_imp_str_literal("Test OK"));
L_0006:;

//    15  %ENDOFPROGRAM

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