         Edinburgh IMP77 Compiler - Version 8.4
    1
				.machine ppc
				.section	".text"
		.Ltext0:
				.align 2
				.globl GETYNX
		GETYNX:
		.LFB185:
    2
    3 %externalintegerfn get YNX
				stwu 1,-1600(1)
				mflr 0
				stw 0,1604(1)
				stw 25,1572(1)
				stw 26,1576(1)
				stw 27,1580(1)
				stw 28,1584(1)
				stw 29,1588(1)
				stw 30,1592(1)
				stw 31,1596(1)
				lwz 9,-28680(2)
				stw 9,1564(1)
				li 9,0
    4   %on %event 9 %start
				li 4,1
				lis 3,_imp_event+544@ha
				la 3,_imp_event+544@l(3)
				bl __sigsetjmp
		.LVL0:
				cmpwi 7,3,0
				bne 7,.L1
		.LVL1:
				li 4,512
				lis 3,_imp_event@ha
				la 3,_imp_event@l(3)
				bl _imp_on_event_enter
		.LVL2:
				cmpwi 7,3,0
				beq 7,.L15
    5     %result = 'X'
				li 31,88
				li 31,88
		.L4:
		.LVL20:
		.L1:
    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 = '?'
				cmpwi 7,31,63
				beq 7,.L19
		.L8:
		.LVL17:
		.LBB50:
   12     c = c - 'a' + 'A' %if 'a' <= c <= 'z'
				lis 27,_imp_current_file@ha
				lis 28,_imp_current_line@ha
				lis 29,.LC6@ha
				la 29,.LC6@l(29)
				li 25,12
		.LBB44:
				lis 26,.LANCHOR0@ha
				la 26,.LANCHOR0@l(26)
				b .L5
		.LVL3:
		.L19:
		.LBE44:
				lwz 4,_imp_current_file@l(27)
				cmpwi 7,4,0
				beq 7,.L9
				addi 3,1,1052
				bl _imp_c2istr
		.LVL4:
		.L10:
				lwz 30,_imp_current_line@l(28)
				cmpwi 7,30,0
				bne 7,.L11
				mr 30,25
		.L11:
				mr 4,29
				addi 3,1,1308
				bl _imp_c2istr
		.LVL5:
				li 5,256
				addi 4,1,1052
				addi 3,1,272
				bl memcpy
		.LVL6:
				li 5,256
				addi 4,1,1308
				addi 3,1,16
				bl memcpy
		.LVL7:
				li 8,0
				li 7,1
				li 6,7
				addi 5,1,16
				mr 4,30
				addi 3,1,272
				bl _signal_event
		.LVL8:
				b .L8
		.L9:
		.LBB45:
				li 5,256
				mr 4,26
				addi 3,1,540
				bl memcpy
		.LVL9:
				li 5,256
				addi 4,1,540
				addi 3,1,796
				bl memcpy
		.LVL10:
		.LBE45:
				li 5,256
				addi 4,1,796
				addi 3,1,1052
				bl memcpy
		.LVL11:
				b .L10
		.LVL12:
		.L12:
   13     %result = c %if c = 'Y' %or c = 'N'
				cmpwi 7,31,89
				beq 7,.L1
   14   %repeat
				cmpwi 7,31,78
				beq 7,.L1
		.LVL13:
		.L5:
		.L6:
		.L7:
		.LBB46:
		.LBB47:
				bl _imp_nextsymbol
		.LVL14:
				mr 31,3
		.LVL15:
		.LBE47:
		.LBE46:
		.LBB48:
		.LBB49:
				bl _imp_skipsymbol
		.LVL16:
		.LBE49:
		.LBE48:
   15 %end
				addi 9,31,-97
				cmplwi 7,9,25
				bgt 7,.L12
		.LBE50:
				mr 3,31
				lwz 9,1564(1)
				lwz 10,-28680(2)
				xor. 9,9,10
				li 10,0
				bne 0,.L20
				lwz 0,1604(1)
				mtlr 0
				lwz 25,1572(1)
				lwz 26,1576(1)
				lwz 27,1580(1)
				lwz 28,1584(1)
				lwz 29,1588(1)
				lwz 30,1592(1)
				lwz 31,1596(1)
				addi 1,1,1600
				blr
		.L20:
				bl __stack_chk_fail
		.LVL21:
		.LFE185:
				.align 2
				.globl main
		main:
		.LFB186:
   16
   17 ! A complete program.  Should run.
   18 %begin
		.LVL22:
				stwu 1,-3632(1)
				mflr 0
				stw 0,3636(1)
				stw 30,3624(1)
				stw 31,3628(1)
				lwz 9,-28680(2)
				stw 9,3612(1)
				li 9,0
				bl _imp_initialise
		.LVL23:
   19   %integer Answer
				addi 31,31,-32
		.LVL18:
				b .L12
		.LVL19:
		.L15:
   20   %on %event 7 %start
				li 4,1
				lis 3,_imp_event+544@ha
				la 3,_imp_event+544@l(3)
				bl __sigsetjmp
		.LVL24:
				cmpwi 7,3,0
				bne 7,.L23
		.LVL25:
				li 4,128
				lis 3,_imp_event@ha
				la 3,_imp_event@l(3)
				bl _imp_on_event_enter
		.LVL26:
				cmpwi 7,3,0
				beq 7,.L23
		.LVL27:
		.L24:
		.LBB51:
   21     print string("What indeed?"); newline
				li 5,256
				lis 4,.LANCHOR0@ha
				la 4,.LANCHOR0@l(4)
				addi 4,4,256
				addi 3,1,1564
				bl memcpy
		.LVL48:
				li 5,256
				addi 4,1,1564
				addi 3,1,284
				bl memcpy
		.LVL49:
				li 5,256
				addi 4,1,284
				addi 3,1,2076
				bl memcpy
		.LVL50:
		.LBE66:
		.LBB67:
		.LBB68:
				li 5,256
				addi 4,1,2076
				addi 3,1,16
				bl memcpy
		.LVL51:
				addi 3,1,16
				bl _imp_printstring
		.LVL52:
		.LBE68:
		.LBE67:
		.LBB69:
		.LBB70:
				bl _imp_newline
		.LVL53:
				b .L24
		.LVL54:
		.L32:
		.LBE70:
		.LBE69:
		.LBB71:
   22     ! drop through and restart...
   23   %finish
   24
   25   prompt("Y or N: ");
				li 5,240
				li 4,0
				addi 3,1,1580
				bl memset
		.LVL28:
				lis 31,.LANCHOR0@ha
				la 31,.LANCHOR0@l(31)
				lwz 8,512(31)
				lwz 10,516(31)
				lbz 9,520(31)
				stw 8,1565(1)
				stw 10,1569(1)
				stb 9,1573(1)
				li 9,0
				stw 9,1574(1)
				sth 9,1578(1)
				li 30,8
				stb 30,1564(1)
				li 5,256
				addi 4,1,1564
				addi 3,1,540
				bl memcpy
		.LVL29:
				stb 30,540(1)
				li 5,256
				addi 4,1,540
				addi 3,1,2332
				bl memcpy
		.LVL30:
		.LBE51:
		.LBB52:
		.LBB53:
				addi 3,31,528
				bl check_instream
		.LVL31:
				stb 30,2332(1)
				li 5,256
				addi 4,1,2332
				lis 3,_imp_promptstr@ha
				la 3,_imp_promptstr@l(3)
				bl memcpy
		.LVL32:
		.LBE53:
		.LBE52:
		.LBB54:
   26   print string("Starting"); newline
				li 5,256
				addi 4,31,540
				addi 3,1,1564
				bl memcpy
		.LVL33:
				li 5,256
				addi 4,1,1564
				addi 3,1,796
				bl memcpy
		.LVL34:
				li 5,256
				addi 4,1,796
				addi 3,1,2588
				bl memcpy
		.LVL35:
		.LBE54:
		.LBB55:
		.LBB56:
				li 5,256
				addi 4,1,2588
				addi 3,1,16
				bl memcpy
		.LVL36:
				addi 3,1,16
				bl _imp_printstring
		.LVL37:
		.LBE56:
		.LBE55:
		.LBB57:
		.LBB58:
				bl _imp_newline
		.LVL38:
		.LBE58:
		.LBE57:
		.LBB59:
   27   %cycle
   28     Answer = get YNX
				bl GETYNX
		.LVL39:
   29     %if Answer = 'Y' %start
				cmpwi 7,3,89
				beq 7,.L32
		.L26:
   30       print string("Yes!"); newline
				addi 31,31,796
		.L25:
		.LBE60:
				li 5,256
				mr 4,31
				addi 3,1,1564
		.LVL55:
				bl memcpy
		.LVL56:
				li 5,256
				addi 4,1,1564
				addi 3,1,1052
				bl memcpy
		.LVL57:
				li 5,256
				addi 4,1,1052
				addi 3,1,2844
				bl memcpy
		.LVL58:
		.LBE71:
		.LBB72:
		.LBB73:
				li 5,256
				addi 4,1,2844
				addi 3,1,16
				bl memcpy
		.LVL59:
				addi 3,1,16
				bl _imp_printstring
		.LVL60:
		.LBE73:
		.LBE72:
		.LBB74:
		.LBB75:
				bl _imp_newline
		.LVL61:
				b .L25
		.LVL62:
		.L28:
		.LBE75:
		.LBE74:
   31     %finish %else %if Answer = 'N' %start
   32       print string("No?"); newline
				addi 30,31,1052
		.LBE59:
		.LBB60:
				li 5,256
				mr 4,30
				addi 3,1,1564
		.LVL40:
				bl memcpy
		.LVL41:
				li 5,256
				addi 4,1,1564
				addi 3,1,1308
				bl memcpy
		.LVL42:
				li 5,256
				addi 4,1,1308
				addi 3,1,3100
				bl memcpy
		.LVL43:
		.LBE61:
		.LBB62:
		.LBB63:
				li 5,256
				addi 4,1,3100
				addi 3,1,16
				bl memcpy
		.LVL44:
				addi 3,1,16
				bl _imp_printstring
		.LVL45:
		.LBE63:
		.LBE62:
		.LBB64:
		.LBB65:
				bl _imp_newline
		.LVL46:
				b .L25
		.LVL47:
		.L23:
		.LBE65:
		.LBE64:
		.LBB66:
   33     %finish %else %if Answer = 'X' %start
				cmpwi 7,3,78
				bne 7,.L28
		.LBB61:
   34       print string("
				li 5,256
				lis 4,.LANCHOR0@ha
				la 4,.LANCHOR0@l(4)
				addi 4,4,1308
				addi 3,1,1564
		.LVL66:
				bl memcpy
		.LVL67:
				li 5,256
				addi 4,1,1564
				addi 3,1,1820
				bl memcpy
		.LVL68:
				li 5,256
				addi 4,1,1820
				addi 3,1,3356
				bl memcpy
		.LVL69:
		.LBE78:
		.LBB79:
		.LBB80:
				li 5,256
				addi 4,1,3356
				addi 3,1,16
				bl memcpy
		.LVL70:
				addi 3,1,16
				bl _imp_printstring
		.LVL71:
		.LBE80:
		.LBE79:
		.LBB81:
		.LBB82:
				li 3,2
				bl _imp_newlines
		.LVL72:
		.LBE82:
		.LBE81:
		.LBB83:
		.LBB84:
				li 3,0
				bl exit
		.LVL73:
		.LBE84:
		.LBE83:
		.LFE186:
				.section	.rodata
				.align 2
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	21
				.string	"test-new/test113b.imp"
				.zero	233
		.LC1:
				.byte	12
				.string	"What indeed?"
				.zero	242
		.LC7:
				.string	"Y or N: "
				.zero	6
				.zero	1
		__PRETTY_FUNCTION__.6499:
				.string	"_imp_PROMPT"
		.LC2:
				.byte	8
				.string	"Starting"
				.zero	246
		.LC3:
				.byte	4
				.string	"Yes!"
				.zero	250
		.LC4:
				.byte	3
				.string	"No?"
				.zero	251
		.LC5:
				.byte	39
				.string	"\nExiting on trapped END OF FILE event!."
				.zero	215
				.section	.rodata.str1.4,"aMS",@progbits,1
				.align 2
		.LC6:
				.string	""
				.section	".text"
		.Letext0:
   35 Exiting on trapped END OF FILE event!."); newlines(2)
				cmpwi 7,3,88
				beq 7,.L33
		.L29:
		.LVL63:
		.LBB76:
		.LBB77:
				li 3,0
		.LVL64:
				bl exit
		.LVL65:
		.L33:
		.LBE77:
		.LBE76:
		.LBB78:
   36       %stop
   37     %finish %else %start
   38       %monitor %and %stop
   39     %finish
   40   %repeat
   41 %endofprogram
   39 Statements compiled
