         Edinburgh IMP77 Compiler - Version 8.4
    1
				.machinemode zarch
				.machine "zEC12"
		.text
		.Ltext0:
				.section	.rodata.str1.2,"aMS",@progbits,1
				.align	2
		.LC6:
				.string	""
				.section	.rodata
				.align	2
		.LC0:
				.byte	21
				.string	"test-new/test113b.imp"
				.zero	233
		.text
				.align	8
		.globl GETYNX
		GETYNX:
		.LFB185:
    2
    3 %externalintegerfn get YNX
				stmg	%r6,%r15,48(%r15)
				lgr	%r14,%r15
				lay	%r15,-1720(%r15)
				aghi	%r14,-8
				std	%f8,0(%r14)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	1704(8,%r15),40(%r1)
    4   %on %event 9 %start
				lghi	%r3,1
				lgrl	%r1,_imp_event@GOTENT
				aghik	%r2,%r1,536
				brasl	%r14,__sigsetjmp@PLT
		.LVL0:
				cijlh	%r2,0,.L20
		.LVL1:
				lghi	%r3,512
				lgrl	%r2,_imp_event@GOTENT
				brasl	%r14,_imp_on_event_enter@PLT
		.LVL2:
				cgije	%r2,0,.L15
    5     %result = 'X'
				lhi	%r10,88
		.L4:
				lhi	%r10,88
				j	.L4
		.LVL16:
		.L21:
    6   %finish
    7   %integer c
    8   %cycle
    9     !read symbol(c)  ;! read symbol currently not working due to %name parameters not being handled yet.
   10     c = next symbol; skip symbol
   11     %signal 7,1,0 %if c = '?'
				cije	%r11,63,.L22
		.L8:
		.LVL13:
		.LBB49:
				ahik	%r1,%r11,-97
				clijh	%r1,25,.L12
		.LBE49:
   12     c = c - 'a' + 'A' %if 'a' <= c <= 'z'
				aghik	%r1,%r15,1448
				ldgr	%f8,%r1
				aghik	%r7,%r15,168
				aghik	%r8,%r15,424
				j	.L5
		.LVL3:
		.L20:
				lgrl	%r1,_imp_current_file@GOTENT
				ltg	%r3,0(%r1)
				je	.L9
				la	%r2,1192(%r15)
				brasl	%r14,_imp_c2istr@PLT
		.LVL5:
		.L10:
				lgrl	%r1,_imp_current_line@GOTENT
				lt	%r9,0(%r1)
				ltr	%r9,%r9
				lhi	%r1,12
				locrne	%r1,%r9
				lr	%r9,%r1
				larl	%r3,.LC6
				lgdr	%r2,%f8
				brasl	%r14,_imp_c2istr@PLT
		.LVL6:
				mvc	424(256,%r15),1192(%r15)
				mvc	168(256,%r15),1448(%r15)
				mvghi	160(%r15),0
				lghi	%r6,1
				lghi	%r5,7
				lgr	%r4,%r7
				lgfr	%r3,%r9
				lgr	%r2,%r8
				brasl	%r14,_signal_event@PLT
		.LVL7:
				j	.L8
		.L9:
		.LBB44:
				larl	%r1,.LC0
				mvc	680(256,%r15),0(%r1)
				mvc	936(256,%r15),680(%r15)
		.LBE44:
				mvc	1192(256,%r15),936(%r15)
				j	.L10
		.LVL8:
		.L12:
   13     %result = c %if c = 'Y' %or c = 'N'
				cije	%r10,89,.L4
   14   %repeat
				cije	%r10,78,.L4
		.LVL9:
		.L5:
		.L6:
		.L7:
		.LBB45:
		.LBB46:
				brasl	%r14,_imp_nextsymbol@PLT
		.LVL10:
				lgr	%r11,%r2
				lr	%r10,%r2
		.LVL11:
		.LBE46:
		.LBE45:
		.LBB47:
		.LBB48:
				brasl	%r14,_imp_skipsymbol@PLT
		.LVL12:
		.LBE48:
		.LBE47:
   15 %end
				lgfr	%r2,%r10
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				clc	1704(8,%r15),40(%r1)
				jne	.L21
				ld	%f8,1712(%r15)
				lg	%r4,1832(%r15)
				lmg	%r6,%r15,1768(%r15)
				br	%r4
		.LVL4:
		.L22:
				brasl	%r14,__stack_chk_fail@PLT
		.LVL17:
		.LFE185:
				.section	.rodata
				.align	2
		.LC7:
				.string	"Y or N: "
				.zero	6
				.align	2
		.LC2:
				.byte	8
				.string	"Starting"
				.zero	246
				.align	2
		.LC4:
				.byte	3
				.string	"No?"
				.zero	251
				.align	2
		.LC3:
				.byte	4
				.string	"Yes!"
				.zero	250
				.align	2
		.LC1:
				.byte	12
				.string	"What indeed?"
				.zero	242
				.align	2
		.LC5:
				.byte	39
				.string	"\nExiting on trapped END OF FILE event!."
				.zero	215
		.text
				.align	8
		.globl main
		main:
		.LFB186:
   16
   17 ! A complete program.  Should run.
   18 %begin
		.LVL18:
				stmg	%r9,%r15,72(%r15)
				lay	%r15,-3752(%r15)
				ear	%r1,%a0
				sllg	%r1,%r1,32
				ear	%r1,%a1
				mvc	3744(8,%r15),40(%r1)
				brasl	%r14,_imp_initialise@PLT
		.LVL19:
   19   %integer Answer
				ahik	%r10,%r11,-32
		.LVL14:
				j	.L12
		.LVL15:
		.L15:
   20   %on %event 7 %start
				lghi	%r3,1
				lgrl	%r1,_imp_event@GOTENT
				aghik	%r2,%r1,536
				brasl	%r14,__sigsetjmp@PLT
		.LVL20:
				cijlh	%r2,0,.L26
		.LVL21:
				lghi	%r3,128
				lgrl	%r2,_imp_event@GOTENT
				brasl	%r14,_imp_on_event_enter@PLT
		.LVL22:
				cgije	%r2,0,.L26
		.LVL23:
		.L27:
		.LBB50:
   21     print string("What indeed?"); newline
				larl	%r1,.LC1
				mvc	1696(256,%r15),0(%r1)
				mvc	416(256,%r15),1696(%r15)
				mvc	2208(256,%r15),416(%r15)
		.LBE67:
		.LBB68:
		.LBB69:
				mvc	160(256,%r15),2208(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL35:
		.LBE69:
		.LBE68:
		.LBB70:
		.LBB71:
				brasl	%r14,_imp_newline@PLT
		.LVL36:
				j	.L27
		.LVL37:
		.L35:
		.LBE71:
		.LBE70:
		.LBB72:
   22     ! drop through and restart...
   23   %finish
   24
   25   prompt("Y or N: ");
				xc	1712(240,%r15),1712(%r15)
		.LVL24:
				larl	%r1,.LC7
				mvc	1697(9,%r15),0(%r1)
				xc	1706(6,%r15),1706(%r15)
				mvi	1696(%r15),8
				mvc	672(256,%r15),1696(%r15)
		.LVL25:
				mvi	672(%r15),8
				mvc	2464(256,%r15),672(%r15)
		.LVL26:
		.LBE50:
		.LBB51:
		.LBB52:
				larl	%r2,__PRETTY_FUNCTION__.6204
				brasl	%r14,check_instream@PLT
		.LVL27:
				mvi	2464(%r15),8
				lgrl	%r1,_imp_promptstr@GOTENT
				mvc	0(256,%r1),2464(%r15)
		.LBE52:
		.LBE51:
		.LBB53:
   26   print string("Starting"); newline
				larl	%r1,.LC2
				mvc	1696(256,%r15),0(%r1)
				mvc	928(256,%r15),1696(%r15)
				mvc	2720(256,%r15),928(%r15)
		.LBE53:
		.LBB54:
		.LBB55:
				mvc	160(256,%r15),2720(%r15)
				aghik	%r2,%r15,160
				brasl	%r14,_imp_printstring@PLT
		.LVL28:
		.LBE55:
		.LBE54:
		.LBB56:
		.LBB57:
				brasl	%r14,_imp_newline@PLT
		.LVL29:
		.LBE57:
		.LBE56:
		.LBB58:
   27   %cycle
   28     Answer = get YNX
				brasl	%r14,GETYNX
		.LVL30:
   29     %if Answer = 'Y' %start
				cije	%r2,89,.L35
		.L29:
   30       print string("Yes!"); newline
				larl	%r9,.LC3
		.L28:
		.LBE62:
				mvc	1696(256,%r15),0(%r9)
				mvc	1184(256,%r15),1696(%r15)
				mvc	2976(256,%r15),1184(%r15)
		.LBE72:
		.LBB73:
		.LBB74:
				mvc	160(256,%r15),2976(%r15)
				lgr	%r2,%r11
		.LVL38:
				brasl	%r14,_imp_printstring@PLT
		.LVL39:
		.LBE74:
		.LBE73:
		.LBB75:
		.LBB76:
				brasl	%r14,_imp_newline@PLT
		.LVL40:
				j	.L28
		.LVL41:
		.L31:
		.LBE76:
		.LBE75:
   31     %finish %else %if Answer = 'N' %start
   32       print string("No?"); newline
				larl	%r10,.LC4
		.LBE58:
		.LBB59:
		.LBB60:
				aghik	%r11,%r15,160
		.LBE60:
		.LBE59:
		.LBB62:
				mvc	1696(256,%r15),0(%r10)
				mvc	1440(256,%r15),1696(%r15)
				mvc	3232(256,%r15),1440(%r15)
		.LBE63:
		.LBB64:
		.LBB61:
				mvc	160(256,%r15),3232(%r15)
				lgr	%r2,%r11
		.LVL31:
				brasl	%r14,_imp_printstring@PLT
		.LVL32:
		.LBE61:
		.LBE64:
		.LBB65:
		.LBB66:
				brasl	%r14,_imp_newline@PLT
		.LVL33:
				j	.L28
		.LVL34:
		.L26:
		.LBE66:
		.LBE65:
		.LBB67:
   33     %finish %else %if Answer = 'X' %start
				cijlh	%r2,78,.L31
		.LBB63:
   34       print string("
				larl	%r1,.LC5
				mvc	1696(256,%r15),0(%r1)
				mvc	1952(256,%r15),1696(%r15)
				mvc	3488(256,%r15),1952(%r15)
		.LBE79:
		.LBB80:
		.LBB81:
				mvc	160(256,%r15),3488(%r15)
				aghik	%r2,%r15,160
		.LVL45:
				brasl	%r14,_imp_printstring@PLT
		.LVL46:
		.LBE81:
		.LBE80:
		.LBB82:
		.LBB83:
				lghi	%r2,2
				brasl	%r14,_imp_newlines@PLT
		.LVL47:
		.LBE83:
		.LBE82:
		.LBB84:
		.LBB85:
				lghi	%r2,0
				brasl	%r14,exit@PLT
		.LVL48:
		.LBE85:
		.LBE84:
		.LFE186:
				.section	.rodata
				.align	2
		__PRETTY_FUNCTION__.6204:
				.string	"_imp_PROMPT"
		.text
		.Letext0:
   35 Exiting on trapped END OF FILE event!."); newlines(2)
				cije	%r2,88,.L36
		.L32:
		.LVL42:
		.LBB77:
		.LBB78:
				lghi	%r2,0
		.LVL43:
				brasl	%r14,exit@PLT
		.LVL44:
		.L36:
		.LBE78:
		.LBE77:
		.LBB79:
   36       %stop
   37     %finish %else %start
   38       %monitor %and %stop
   39     %finish
   40   %repeat
   41 %endofprogram
   39 Statements compiled
