#include <perms.h>

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

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

  //     2    %integerfn blah(%name fred)

  int BLAH(_imp_name * FRED) {
    //     3      printstring("Address of %name parameter is "); write(ADDR(fred), -1); newline

    _imp_PRINTSTRING(_imp_str_literal("Address of %name parameter is "));
    _imp_WRITE(_imp_ADDR(FRED), -1);
    _imp_NEWLINE();

    //     4      %result = 0

    return 0;

    //     5    %end

  } /* end of BLAH */

  //     6
  //     7    %string(255) jim

  _imp_string255 JIM;

  //     8    %integer rc

  int RC;

  //     9    rc = blah(jim)

  RC = BLAH(/*?*/ &JIM);

  //    10
  //    11  %endofprogram

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