
;  GNU C 2.7.2 [AL 1.1, MM 40] RISC NEWS-OS compiled by CC

;  Cc1 defaults:
;  -mmemcpy

;  Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
;  -quiet -dumpbase -O2 -Wall -o

gcc2_compiled.:
__gnu_compiled_c:
	.code
	.align	2
mod_tags:
	.ascii	"M.K.\000"
	.byte	4
	.ascii	"1CHN\000"
	.byte	1
	.ascii	"2CHN\000"
	.byte	2
	.ascii	"3CHN\000"
	.byte	3
	.ascii	"4CHN\000"
	.byte	4
	.ascii	"5CHN\000"
	.byte	5
	.ascii	"6CHN\000"
	.byte	6
	.ascii	"7CHN\000"
	.byte	7
	.ascii	"8CHN\000"
	.byte	8
	.ascii	"9CHN\000"
	.byte	9
	.ascii	"10CH\000"
	.byte	10
	.ascii	"11CH\000"
	.byte	11
	.ascii	"12CH\000"
	.byte	12
	.ascii	"13CH\000"
	.byte	13
	.ascii	"14CH\000"
	.byte	14
	.ascii	"15CH\000"
	.byte	15
	.ascii	"16CH\000"
	.byte	16
	.ascii	"    \000"
	.byte	0
	.code
	.align	1
	.global	mod_init
mod_init:
;	.frame	%sp,28,$31		# vars= 8, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3
	sub	%sp,0x2		; 	xsub	%sp,%sp,8
	ld.w	%r15,%r12
	ld.w	%r3,%r13
	ld.w	%r13,0x0
	ext	0xb		; 	xld.w	%r14,0x000002c8		; 712
	ld.w	%r14,0x8
	ld.w	[%sp+0x1],%r15	; 	xld.w	[%sp+4],%r15
	ext	memset@rm	; 	xcall	memset
	call	memset@rl
	ld.w	%r15,[%sp+0x1]	; 	xld.w	%r15,[%sp+4]
	ld.w	[%r15],%r3	; 	xld.w	[%r15],%r3
	ld.w	%r0,0x0
	ext	mod_tags+0x5@ah	; 	xld.ub	%r10,[mod_tags+5]
	ext	mod_tags+0x5@al
	ld.ub	%r10,[%r8]
	cmp	%r10,0x0
	jreq	__LX95		; 	xjreq	__L95
	ld.w	%r11,0x6	; 	xld.w	%r11,0x00000006		; 6
	ext	mod_tags+0x5@h	; 	xld.w	%r2,mod_tags+5
	ext	mod_tags+0x5@m
	ld.w	%r2,mod_tags+0x5@l
	ld.w	%r1,%r0
__LX74:				; __L74:
	ext	mod_tags+0x0@h	; 	xld.w	%r13,mod_tags
	ext	mod_tags+0x0@m
	ld.w	%r13,mod_tags+0x0@l
	ext	0x438		; 	xadd	%r12,%r3,1080
	add	%r12,%r3
	ld.w	%r6,%r1
	add	%r6,%r13
	ld.w	%r13,%r6
	ld.w	%r14,0x4	; 	xld.w	%r14,0x00000004		; 4
	ld.w	[%sp+0x0],%r11	; 	xld.w	[%sp],%r11
	ld.w	[%sp+0x1],%r15	; 	xld.w	[%sp+4],%r15
	ext	memcmp@rm	; 	xcall	memcmp
	call	memcmp@rl
	ld.w	%r11,[%sp+0x0]	; 	xld.w	%r11,[%sp]
	ld.w	%r15,[%sp+0x1]	; 	xld.w	%r15,[%sp+4]
	cmp	%r10,0x0
	jreq	__LX72		; 	xjreq	__L72
	add	%r2,%r11
	add	%r1,%r11
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	ld.ub	%r10,[%r2]	; 	xld.ub	%r10,[%r2]
	cmp	%r10,0x0
	jrne	__LX74		; 	xjrne	__L74
__LX72:				; __L72:
	mlt.w	%r0,%r11
	ld.w	%r6,%alr
	ext	mod_tags+0x5@h	; 	xld.ub	%r11,[%r6+mod_tags+5]
	ext	mod_tags+0x5@m
	ld.w	%r9,mod_tags+0x5@l
	add	%r9,%r6
	ld.ub	%r11,[%r9]
	ld.ub	%r10,%r11
	cmp	%r10,0x0
	jrne	__LX77		; 	xjrne	__L77
__LX95:				; __L95:
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
	jp	__LX94		; 	xjp	__L94
__LX77:				; __L77:
	ext	0x2c0		; 	xld.b	[%r15+704],%r11
	ld.b	[%r15],%r11
	ld.w	%r13,0x3f	; 	xld.w	%r13,-1			; 0xffffffff
	ld.w	%r0,0x0
	ext	0x3b6		; 	xld.ub	%r10,[%r3+950]
	ld.ub	%r10,[%r3]
	cmp	%r0,%r10
	jrge	__LX79		; 	xjrge	__L79
	ext	0xe		; 	xld.w	%r12,0x000003b8		; 952
	ld.w	%r12,0x38
	ld.w	%r11,%r10
__LX81:				; __L81:
	ld.w	%r10,%r3
	add	%r10,%r0
	add	%r10,%r12
	ld.ub	%r10,[%r10]	; 	xld.ub	%r10,[%r10]
	cmp	%r10,%r13
	jrle	__LX80		; 	xjrle	__L80
	ld.w	%r13,%r10
__LX80:				; __L80:
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	cmp	%r0,%r11
	jrlt	__LX81		; 	xjrlt	__L81
__LX79:				; __L79:
	ext	0x43c		; 	xadd	%r11,%r3,1084
	add	%r11,%r3
	ld.w	%r0,0x0
	cmp	%r0,%r13
	jrgt	__LX85		; 	xjrgt	__L85
	ext	0x2		; 	xld.w	%r14,0x00000080		; 128
	ld.w	%r14,0x0
	ld.w	%r12,%r15
__LX87:				; __L87:
	ld.w	%r10,%r12
	add	%r10,%r14
	ld.w	[%r10],%r11	; 	xld.w	[%r10],%r11
	ext	0x2c0		; 	xld.ub	%r10,[%r15+704]
	ld.ub	%r10,[%r15]
	sll	%r10,0x8	; 	xsll	%r10,8
	add	%r11,%r10
	add	%r12,0x4	; 	xadd	%r12,%r12,4
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	cmp	%r0,%r13
	jrle	__LX87		; 	xjrle	__L87
__LX85:				; __L85:
	ld.w	%r14,%r11
	ld.w	%r0,0x0
	ext	0x14		; 	xadd	%r13,%r3,20
	add	%r13,%r3
	ext	0x3		; 	xld.w	%r5,0x000000ff		; 255
	ld.w	%r5,0x3f
	ext	0x3fc		; 	xld.w	%r4,0x0000ff00		; 65280
	ld.w	%r4,0x0
	ld.w	%r12,%r15
__LX92:				; __L92:
	add	%r12,0x4	; 	xadd	%r12,%r12,4
	ld.w	[%r12],%r14	; 	xld.w	[%r12],%r14
	ext	0x16		; 	xld.uh	%r10,[%r13+22]
	ld.uh	%r10,[%r13]
	ld.w	%r11,%r10
	srl	%r11,0x8	; 	xsrl	%r11,8
	ld.w	%r6,%r5
	and	%r6,%r11
	ld.w	%r11,%r6
	sll	%r10,0x8	; 	xsll	%r10,8
	and	%r10,%r4
	or	%r11,%r10
	sll	%r11,0x1	; 	xsll	%r11,1
	add	%r14,%r11
	add	%r0,0x1		; 	xadd	%r0,%r0,1
	add	%r13,0x1e	; 	xadd	%r13,%r13,30
	cmp	%r0,0x1e	; 	xcmp	%r0,30
	jrle	__LX92		; 	xjrle	__L92
	ld.w	%r10,0x6	; 	xld.w	%r10,0x00000006		; 6
	ext	0x2c3		; 	xld.b	[%r15+707],%r10
	ld.b	[%r15],%r10
	ext	0x1		; 	xld.w	%r11,0x0000007d		; 125
	ld.w	%r11,0x3d
	ext	0x2c4		; 	xld.b	[%r15+708],%r11
	ld.b	[%r15],%r11
	ext	0x2c3		; 	xld.ub	%r10,[%r15+707]
	ld.ub	%r10,[%r15]
	sub	%r10,0x1	; 	xsub	%r10,%r10,1
	ld.ub	%r11,%r11
	mlt.w	%r10,%r11
	ld.w	%r6,%alr
	ext	0x2c6		; 	xld.h	[%r15+710],%r6
	ld.h	[%r15],%r6
	ld.w	%r10,0x0
__LX94:				; __L94:
	add	%sp,0x2		; 	xadd	%sp,%sp,8
	popn	%r3
	ret
	.align	1
	.global	mod_tick
mod_tick:
;	.frame	%sp,12,$31		# vars= 0, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	ld.w	%r0,%r12
	ld.w	%r1,%r13
	ext	0x2c3		; 	xld.ub	%r10,[%r0+707]
	ld.ub	%r10,[%r0]
	cmp	%r10,0x0
	jrne	__LX97		; 	xjrne	__L97
	ld.w	%r10,0x1	; 	xld.w	%r10,0x00000001		; 1
	jp	__LX100		; 	xjp	__L100
__LX97:				; __L97:
	ld.w	%r12,%r0
	ext	mod_seq@rm	; 	xcall	mod_seq
	call	mod_seq@rl
	ld.w	%r11,%r10
	cmp	%r11,0x0
	jrne	__LX100		; 	xjrne	__L100
	ld.w	%r12,%r0
	ld.w	%r13,%r1
	ext	mod_mix@rm	; 	xcall	mod_mix
	call	mod_mix@rl
	ld.w	%r11,%r10
__LX100:				; __L100:
	popn	%r1
	ret
	.align	1
mod_stream_callback:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ld.w	%r10,%r12
	ld.w	%r12,%r13
	ld.w	%r13,%r10
	call	mod_tick	; 	xcall	mod_tick
	ret

	.lcomm	driver.72 712
	.align	1
	.global	mod_play
mod_play:
;	.frame	%sp,12,$31		# vars= 0, regs= 3/0, args= 0, extra= 0
;	.mask	0x80030000,-4
;	.fmask	0x00000000,0
	pushn	%r1
	ld.w	%r0,%r12
	call	mod_stop	; 	xcall	mod_stop
	ext	driver.72+0x0@h	; 	xld.w	%r1,driver.72
	ext	driver.72+0x0@m
	ld.w	%r1,driver.72+0x0@l
	ld.w	%r12,%r1
	ld.w	%r13,%r0
	ext	mod_init@rm	; 	xcall	mod_init
	call	mod_init@rl
	ld.w	%r0,%r10
	cmp	%r0,0x0
	jrne	__LX103		; 	xjrne	__L103
	ext	0x5		; 	xld.w	%r12,0x00000140		; 320
	ld.w	%r12,0x0
	ext	mod_stream_callback+0x0@h	; 	xld.w	%r13,mod_stream_callback
	ext	mod_stream_callback+0x0@m
	ld.w	%r13,mod_stream_callback+0x0@l
	ld.w	%r14,%r1
	ld.w	%r15,%r0
	ext	stream_play@rm	; 	xcall	stream_play
	call	stream_play@rl
	ld.w	%r10,%r0
	jp	__LX104		; 	xjp	__L104
__LX103:				; __L103:
	ld.w	%r10,0x3f	; 	xld.w	%r10,-1			; 0xffffffff
__LX104:				; __L104:
	popn	%r1
	ret
	.align	1
	.global	mod_stop
mod_stop:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ext	stream_stop@rm	; 	xcall	stream_stop
	call	stream_stop@rl
	ret
