         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				NO_APP
		.Ltext0:
				.section	.rodata
		.LC1:
		 		.byte	7
		 		.string	"TEST OK"
		 		.zero	247
		.LC0:
		 		.byte	5
		 		.string	"ERROR"
		 		.zero	249
				.align	2
				.globl	main
		main:
		.LFB185:
		.LVL0:
		 		link.w %fp,#-996
		 		movem.l #16188,-(%sp)
    2 %INTEGER I,J,K
		 		move.l 12(%fp),-(%sp)
		 		move.l 8(%fp),-(%sp)
		 		jsr _imp_initialise
		.LVL1:
		 		addq.l #8,%sp
		 		sub.l %a1,%a1
		 		clr.l %d7
		 		jra .L4
		.LVL2:
		.L17:
		.LDL1:
		.LDL2:
		 		add.l #65536,%d7
		 		lea (60,%a1),%a1
    3       I=3; J=4; K=5
    4 %INTEGERARRAY A(0:3,2:4,1:5)
    5 %INTEGERARRAY B(0:I,2:J,1:K)
    6       %FOR I=0,1,3 %CYCLE
    7          %FOR J=2,1,4 %CYCLE
    8             %FOR K=1,1,5 %CYCLE
    9                A(I,J,K)=M'A'<<24!I<<16!J<<8!K
		 		cmp.w #240,%a1
		 		jeq .L16
		.LVL3:
		.L4:
		 		move.l %d7,%d6
		 		or.l #1090519040,%d6
		 		move.l %d6,%d3
		 		or.l %d4,%d3
		 		move.l -996(%fp),%d2
		 		or.l %d4,%d2
		 		move.l %a0,%d1
		 		clr.l %d0
		.LVL5:
		.L5:
		 		move.l %d3,%d5
		 		or.l %d0,%d5
		 		move.l %d5,-240(%fp,%d1.l)
   10                B(I,J,K)=M'B'<<24!I<<16!J<<8!K
		 		move.l %d7,%d0
		 		or.l #1107296256,%d0
		 		move.l %d0,-996(%fp)
		 		move.l %a1,%a0
		 		move.l #512,%d4
		.LVL4:
		.L2:
		 		move.l %d2,%d5
		 		or.l %d0,%d5
		 		move.l %d5,-992(%fp,%d1.l)
		.LDL3:
		 		addq.l #4,%d1
		 		cmp.l #1280,%d4
		 		jne .L2
		 		jra .L17
		.L16:
   11             %REPEAT
		 		moveq #5,%d5
		 		cmp.l %d0,%d5
		 		jne .L5
		.LDL4:
		.LDL5:
		 		add.l #256,%d4
		 		lea (20,%a0),%a0
   12          %REPEAT
		 		addq.l #1,%d0
		.LVL6:
   13       %REPEAT
   14       %FOR I=0,1,3 %CYCLE
   15          %FOR J=2,1,4 %CYCLE
   16             %FOR K=1,1,5 %CYCLE
		 		moveq #60,%d2
		 		sub.l %a4,%a4
		 		moveq #-17,%d5
		 		not.b %d5
		 		add.l %fp,%d5
		 		moveq #64,%d0
		.LVL7:
		 		add.l %d0,%d5
		 		move.l #-992,%d4
		 		add.l %fp,%d4
		.LVL8:
		 		add.l %d0,%d4
		.LVL9:
		 		moveq #-17,%d3
		 		not.b %d3
		 		add.l %fp,%d3
		 		moveq #80,%d0
		 		add.l %d0,%d3
		.L3:
		.LVL10:
		 		move.l %d2,%d0
		 		neg.l %d0
		 		move.l %d0,%a1
		 		lea (%a4,%d2.l),%a3
   17                %IF A(I,J,K)&X'FFFFFF'#B(I,J,K)&X'FFFFFF' %START
		 		lea (-992,%fp),%a5
		.LVL11:
		 		add.l %a3,%a5
		.LVL12:
		 		moveq #-17,%d0
		 		not.b %d0
		 		add.l %fp,%d0
		 		add.l %d0,%a3
		.LVL13:
		.L8:
		 		cmp.l #16777215,(%a5,%a1.l)
		 		seq %d0
		 		extb.l %d0
		 		neg.l %d0
		 		and.l (%a3,%a1.l),%d0
		 		jeq .L11
		 		lea (%a1,%d5.l),%a0
		 		lea (%a1,%d4.l),%a2
		 		move.l %d3,%d1
		 		add.l %a1,%d1
		.LVL14:
		.L14:
		.LDL6:
		.LDL7:
		 		cmp.l #16777215,(%a2)+
		 		seq %d0
		 		extb.l %d0
		 		neg.l %d0
		 		and.l (%a0)+,%d0
		 		jeq .L11
		 		cmp.w #240,%a4
		 		jne .L3
		.L9:
		.LBB12:
   18                   PRINTSTRING("ERROR")
		 		cmp.l %a1,%a4
		 		jne .L8
		.LDL10:
		.LDL11:
		.LDL12:
		 		lea (60,%a4),%a4
		 		moveq #-60,%d0
		 		add.l %d0,%d2
		 		move.l %fp,%d2
		.LVL25:
		 		add.l #-496,%d2
		.LVL26:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC0
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL27:
		 		move.l %fp,%d4
		.LVL28:
		 		add.l #-752,%d4
		.LVL29:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
		.LVL30:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
		.LVL31:
		.LBE17:
		.LBB18:
		.LBB19:
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
		.LVL32:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
		.LVL33:
		.LBE19:
		.LBE18:
		.LBB20:
		.LBB21:
		 		add.l %d3,%sp
		 		clr.l -(%sp)
		 		jsr exit
		.LVL34:
		.LBE21:
		.LBE20:
		.LFE185:
		.Letext0:
   19                   %MONITOR
		 		cmp.l %a0,%d1
		 		jne .L14
		.LDL8:
		.LDL9:
		 		lea (20,%a1),%a1
   20                   %STOP
   21                %FINISH
   22             %REPEAT
   23          %REPEAT
   24       %REPEAT
   25       PRINTSTRING("TEST OK")
		 		move.l %fp,%d2
		.LVL15:
		 		add.l #-496,%d2
		.LVL16:
		 		move.l #256,%d3
		 		move.l %d3,-(%sp)
		 		pea .LC1
		 		move.l %d2,-(%sp)
		 		lea memcpy,%a2
		 		jsr (%a2)
		.LVL17:
		 		move.l %fp,%d4
		.LVL18:
		 		add.l #-752,%d4
		.LVL19:
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d4,-(%sp)
		 		jsr (%a2)
		.LVL20:
		 		move.l %d3,-(%sp)
		 		move.l %d4,-(%sp)
		 		move.l %d2,-(%sp)
		 		jsr (%a2)
		.LVL21:
		.LBE12:
		.LBB13:
		.LBB14:
		 		lea (-220,%sp),%sp
		 		move.l %sp,%d0
		 		move.l %d3,-(%sp)
		 		move.l %d2,-(%sp)
		 		move.l %d0,-(%sp)
		 		jsr (%a2)
		.LVL22:
		 		lea (12,%sp),%sp
		 		jsr _imp_printstring
		.LVL23:
		.LBE14:
		.LBE13:
		.LBB15:
		.LBB16:
		 		add.l %d3,%sp
		 		clr.l -(%sp)
		 		jsr exit
		.LVL24:
		.L11:
		.LBE16:
		.LBE15:
		.LBB17:
   26 %ENDOFPROGRAM
   28 Statements compiled
