         Edinburgh IMP77 Compiler - Version 8.4
    1 !%control x'11111111'
				.machinemode zarch
				.machine "zEC12"
		.text
		.Ltext0:
				.section	.rodata
				.align	2
		.LC0:
				.byte	7
				.string	"TEST OK"
				.zero	247
		.text
				.align	8
		.globl main
		main:
		.LFB185:
    2 %BEGIN
		.LVL0:
				stmg	%r14,%r15,112(%r15)
				lay	%r15,-936(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	928(8,%r15),40(%r1)
    3 %INTEGER COUNT
				brasl	%r14,_imp_initialise@PLT
		.LVL1:
				lhi	%r1,257
		.LVL2:
		.L2:
		.LDL1:
		.LBB23:
		.LBB24:
		.LBB25:
    4 %INTEGER I
    5 %ROUTINE FRED(%INTEGERNAME I,%INTEGER FIRST,STEP,LAST)
    6       %CYCLE I=FIRST,STEP,LAST
    7          COUNT=COUNT+1
    8       %REPEAT
    9 %END
   10       COUNT=0
   11       FRED(I,X'9000',16,X'A000')
				brct	%r1,.L2
		.L3:
		.LVL3:
		.LBE25:
		.LBE24:
		.LBE23:
		.LBB26:
   12       %IF COUNT=257 %AND I=X'A000' %THEN PRINTSTRING("TEST OK") %C
   13          %ELSE PRINTSTRING("WRONG") %AND %MONITOR
   14 %ENDOFPROGRAM
				larl	%r1,.LC0
				mvc	672(256,%r15),0(%r1)
				mvc	416(256,%r15),672(%r15)
				mvc	672(256,%r15),416(%r15)
		.LBE26:
		.LBB27:
		.LBB28:
				mvc	160(256,%r15),672(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL4:
		.LDL2:
		.LBE28:
		.LBE27:
		.LBB29:
		.LBB30:
				lghi	%r2,0
				brasl	%r14,exit@PLT
		.LVL5:
		.LBE30:
		.LBE29:
		.LFE185:
		.Letext0:
   12 Statements compiled
