File:  [Tom Morton FrontierVM] / frontvm / hardware / hostcall.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:57:42 2018 UTC (8 years, 2 months ago) by root
Branches: frontvm, MAIN
CVS tags: frontvm2-20061120, HEAD
Tom Morton

	.file	"hostcall.c"
	.text
	.p2align 4,,15
.globl time2dos
	.type	time2dos, @function
time2dos:
	pushl	%ebp
	movl	%esp, %ebp
	leal	8(%ebp), %eax
	subl	$8, %esp
	movl	%eax, (%esp)
	call	localtime
	movl	%eax, %ecx
	movl	4(%ecx), %edx
	movl	(%eax), %eax
	sall	$5, %edx
	sarl	%eax
	orl	%edx, %eax
	movl	8(%ecx), %edx
	movl	%ebp, %esp
	popl	%ebp
	sall	$11, %edx
	orl	%edx, %eax
	movzwl	%ax, %eax
	ret
	.size	time2dos, .-time2dos
	.p2align 4,,15
.globl date2dos
	.type	date2dos, @function
date2dos:
	pushl	%ebp
	movl	%esp, %ebp
	leal	8(%ebp), %eax
	subl	$8, %esp
	movl	%eax, (%esp)
	call	localtime
	movl	%eax, %ecx
	movl	16(%eax), %eax
	movzwl	12(%ecx), %edx
	movl	20(%ecx), %ecx
	incl	%eax
	sall	$5, %eax
	movl	%ebp, %esp
	subl	$80, %ecx
	popl	%ebp
	orl	%edx, %eax
	movl	%ecx, %edx
	shrl	$31, %edx
	decl	%edx
	andl	%edx, %ecx
	sall	$9, %ecx
	orl	%ecx, %eax
	movzwl	%ax, %eax
	ret
	.size	date2dos, .-date2dos
	.p2align 4,,15
.globl GetFileInformation
	.type	GetFileInformation, @function
GetFileInformation:
	pushl	%ebp
	movl	%esp, %ebp
	leal	-104(%ebp), %eax
	subl	$120, %esp
	movl	%eax, 8(%esp)
	movl	8(%ebp), %eax
	movl	%esi, -4(%ebp)
	movl	12(%ebp), %esi
	movl	%ebx, -8(%ebp)
	movl	%eax, 4(%esp)
	movl	$3, (%esp)
	call	__xstat
	xorl	%edx, %edx
	testl	%eax, %eax
	je	.L8
.L4:
	movl	-8(%ebp), %ebx
	movl	%edx, %eax
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L8:
	leal	-40(%ebp), %eax
	movl	%eax, (%esp)
	call	localtime
	movzwl	12(%eax), %ebx
	movl	16(%eax), %edx
	movl	20(%eax), %ecx
	andl	$15, %edx
	andl	$31, %ebx
	sall	$5, %edx
	subl	$80, %ecx
	orl	%edx, %ebx
	movl	%ecx, %edx
	shrl	$31, %edx
	decl	%edx
	andl	%edx, %ecx
	andl	$127, %ecx
	movl	4(%eax), %edx
	sall	$9, %ecx
	orl	%ecx, %ebx
	andl	$63, %edx
	sall	$5, %edx
	movzwl	(%eax), %ecx
	movl	8(%eax), %eax
	movw	%bx, (%esi)
	andl	$31, %ecx
	andl	$31, %eax
	orl	%edx, %ecx
	sall	$11, %eax
	orl	%eax, %ecx
	movw	%cx, 2(%esi)
	movl	$1, %edx
	jmp	.L4
	.size	GetFileInformation, .-GetFileInformation
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%s/%s"
	.text
	.p2align 4,,15
.globl PopulateDTA
	.type	PopulateDTA, @function
PopulateDTA:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$376, %esp
	movl	%esi, -4(%ebp)
	movl	8(%ebp), %eax
	movl	12(%ebp), %esi
	movl	%ebx, -8(%ebp)
	movl	$.LC0, %ebx
	addl	$11, %esi
	movl	%ebx, 4(%esp)
	leal	-264(%ebp), %ebx
	movl	%esi, 12(%esp)
	movl	%eax, 8(%esp)
	movl	%ebx, (%esp)
	call	sprintf
	movl	%ebx, 4(%esp)
	leal	-360(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$3, (%esp)
	call	__xstat
	xorl	%edx, %edx
	testl	%eax, %eax
	jne	.L9
	movl	pDTA, %ecx
	testl	%ecx, %ecx
	jne	.L16
.L9:
	movl	-8(%ebp), %ebx
	movl	%edx, %eax
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L16:
	movl	%esi, (%esp)
	call	Misc_strupr
	movl	%esi, 4(%esp)
	movl	$14, %eax
	movl	%eax, 8(%esp)
	movl	pDTA, %eax
	addl	$30, %eax
	movl	%eax, (%esp)
	call	strncpy
	movl	pDTA, %ebx
	movl	-316(%ebp), %eax
#APP
	bswap	%eax

#NO_APP
	movl	%eax, 26(%ebx)
	movl	-296(%ebp), %eax
	movl	%eax, (%esp)
	call	time2dos
	movzwl	%ax, %eax
#APP
	xchgb %al,%ah
#NO_APP
	movw	%ax, 22(%ebx)
	movl	-296(%ebp), %eax
	movl	pDTA, %ebx
	movl	%eax, (%esp)
	call	date2dos
	movzwl	%ax, %eax
#APP
	xchgb %al,%ah
#NO_APP
	movw	%ax, 24(%ebx)
	movl	-344(%ebp), %eax
	movl	pDTA, %ebx
	movl	%eax, (%esp)
	call	GemDOS_ConvertAttribute
	movb	%al, 21(%ebx)
	movl	$1, %edx
	jmp	.L9
	.size	PopulateDTA, .-PopulateDTA
	.p2align 4,,15
.globl ClearInternalDTA
	.type	ClearInternalDTA, @function
ClearInternalDTA:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$4, %esp
	movl	DTAIndex, %edx
	movl	%edx, %eax
	movl	%edx, %ecx
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	movl	InternalDTAs+12(%eax), %ebx
	testl	%ebx, %ebx
	je	.L18
	xorl	%ebx, %ebx
	cmpl	InternalDTAs+4(%eax), %ebx
	jl	.L23
.L25:
	movl	%edx, %eax
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	movl	InternalDTAs+12(%eax), %eax
	movl	%eax, (%esp)
	call	free
	movl	DTAIndex, %edx
.L18:
	movl	%edx, %eax
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	xorl	%edx, %edx
	movl	%edx, InternalDTAs(%eax)
	popl	%eax
	popl	%ebx
	popl	%ebp
	ret
	.p2align 4,,7
.L23:
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	movl	InternalDTAs+12(%eax), %eax
	movl	(%eax,%ebx,4), %eax
	incl	%ebx
	movl	%eax, (%esp)
	call	free
	movl	DTAIndex, %edx
	movl	%edx, %eax
	movl	%edx, %ecx
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	cmpl	InternalDTAs+4(%eax), %ebx
	jl	.L23
	jmp	.L25
	.size	ClearInternalDTA, .-ClearInternalDTA
	.p2align 4,,15
	.type	match, @function
match:
	pushl	%ebp
	movl	%esp, %ebp
	leal	-280(%ebp), %eax
	pushl	%edi
	leal	-536(%ebp), %edi
	pushl	%esi
	pushl	%ebx
	subl	$540, %esp
	movl	12(%ebp), %esi
	movl	%eax, (%esp)
	movl	8(%ebp), %ebx
	movl	%ebx, 4(%esp)
	call	strcpy
	movl	%esi, 4(%esp)
	movl	%edi, (%esp)
	call	strcpy
	leal	-280(%ebp), %eax
	movl	%eax, (%esp)
	call	Misc_strupr
	movl	%edi, (%esp)
	call	Misc_strupr
	cmpb	$46, (%esi)
	je	.L34
	cmpb	$42, (%ebx)
	jne	.L28
	cmpb	$46, 1(%ebx)
	jne	.L28
	cmpb	$42, 2(%ebx)
	jne	.L28
	cmpb	$0, 3(%ebx)
	je	.L59
	.p2align 4,,15
.L28:
	movl	%esi, 4(%esp)
	movl	$1, %esi
	movl	%ebx, (%esp)
	call	strcasecmp
	testl	%eax, %eax
	je	.L26
	movzbl	-536(%ebp), %eax
	leal	-280(%ebp), %ebx
	movl	%edi, %ecx
	testb	%al, %al
	je	.L54
	.p2align 4,,15
.L51:
	movzbl	(%ebx), %edx
	cmpb	$42, %dl
	je	.L60
	cmpb	$63, %dl
	je	.L61
.L48:
	incl	%ecx
	incl	%ebx
	xorl	%esi, %esi
	cmpb	%al, %dl
	jne	.L26
.L58:
	movzbl	(%ecx), %eax
.L37:
	testb	%al, %al
	jne	.L51
.L54:
	cmpb	$0, (%ebx)
	jne	.L34
.L59:
	movl	$1, %esi
	.p2align 4,,15
.L26:
	addl	$540, %esp
	movl	%esi, %eax
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L34:
	xorl	%esi, %esi
	jmp	.L26
	.p2align 4,,7
.L61:
	testb	%al, %al
	je	.L48
	incl	%ecx
	incl	%ebx
	jmp	.L58
	.p2align 4,,7
.L60:
	testb	%al, %al
	je	.L43
	cmpb	$46, %al
	je	.L43
	.p2align 4,,15
.L46:
	incl	%ecx
	movzbl	(%ecx), %eax
	testb	%al, %al
	je	.L43
	cmpb	$46, %al
	jne	.L46
.L43:
	incl	%ebx
	jmp	.L37
	.size	match, .-match
	.p2align 4,,15
.globl fsfirst_dirname
	.type	fsfirst_dirname, @function
fsfirst_dirname:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	xorl	%ebx, %ebx
	movl	12(%ebp), %esi
	movl	8(%ebp), %edi
	movl	%esi, (%esp)
	movl	%edi, 4(%esp)
	call	sprintf
	movzbl	(%esi), %eax
	testb	%al, %al
	je	.L77
	.p2align 4,,15
.L67:
	cmpb	$92, %al
	je	.L82
.L66:
	incl	%ebx
	movzbl	(%ebx,%esi), %eax
	testb	%al, %al
	jne	.L67
.L77:
	movzbl	(%ebx,%edi), %eax
	testb	%al, %al
	je	.L79
	.p2align 4,,15
.L71:
	movb	%al, (%ebx,%esi)
	incl	%ebx
	movzbl	(%ebx,%edi), %eax
	testb	%al, %al
	jne	.L71
.L79:
	cmpb	$47, (%ebx,%esi)
	je	.L81
	.p2align 4,,15
.L75:
	decl	%ebx
	cmpb	$47, (%ebx,%esi)
	jne	.L75
.L81:
	movb	$0, (%ebx,%esi)
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L82:
	movb	$47, (%ebx,%esi)
	jmp	.L66
	.size	fsfirst_dirname, .-fsfirst_dirname
	.p2align 4,,15
.globl fsfirst_dirmask
	.type	fsfirst_dirmask, @function
fsfirst_dirmask:
	pushl	%ebp
	xorl	%edx, %edx
	movl	%esp, %ebp
	pushl	%esi
	movl	8(%ebp), %ecx
	movl	12(%ebp), %esi
	pushl	%ebx
	xorl	%ebx, %ebx
	cmpb	$0, (%ecx)
	je	.L102
	.p2align 4,,15
.L87:
	incl	%edx
	movzbl	(%edx,%ecx), %eax
	testb	%al, %al
	jne	.L87
.L97:
	cmpb	$47, %al
	je	.L99
	.p2align 4,,15
.L91:
	decl	%edx
	cmpb	$47, (%edx,%ecx)
	jne	.L91
.L99:
	incl	%edx
	cmpb	$0, (%edx,%ecx)
	je	.L101
	.p2align 4,,15
.L95:
	movl	%edx, %eax
	incl	%edx
	movzbl	(%eax,%ecx), %eax
	movb	%al, (%ebx,%esi)
	incl	%ebx
	cmpb	$0, (%edx,%ecx)
	jne	.L95
.L101:
	movb	$0, (%ebx,%esi)
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
.L102:
	movzbl	(%ecx), %eax
	jmp	.L97
	.size	fsfirst_dirmask, .-fsfirst_dirmask
	.p2align 4,,15
.globl GemDOS_Init
	.type	GemDOS_Init, @function
GemDOS_Init:
	pushl	%ebp
	movl	$8448, %eax
	movl	%esp, %ebp
	subl	$8, %esp
	movl	%eax, 4(%esp)
	movl	$FileHandles, (%esp)
	call	Memory_Clear
	xorl	%eax, %eax
	movl	$255, %edx
	.p2align 4,,15
.L108:
	xorl	%ecx, %ecx
	movl	%ecx, InternalDTAs(%eax)
	xorl	%ecx, %ecx
	movl	%ecx, InternalDTAs+4(%eax)
	xorl	%ecx, %ecx
	movl	%ecx, InternalDTAs+12(%eax)
	addl	$272, %eax
	decl	%edx
	jns	.L108
	xorl	%eax, %eax
	movl	%eax, DTAIndex
	leave
	ret
	.size	GemDOS_Init, .-GemDOS_Init
	.p2align 4,,15
.globl GemDOS_Reset
	.type	GemDOS_Reset, @function
GemDOS_Reset:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	xorl	%esi, %esi
	pushl	%ebx
	subl	$16, %esp
	movl	$31, %ebx
	.p2align 4,,15
.L117:
	movl	FileHandles(%esi), %eax
	testl	%eax, %eax
	jne	.L127
.L116:
	xorl	%eax, %eax
	movl	%eax, FileHandles+4(%esi)
	xorl	%eax, %eax
	movl	%eax, FileHandles(%esi)
	addl	$264, %esi
	decl	%ebx
	jns	.L117
	xorl	%eax, %eax
	movl	$255, %ebx
	.p2align 4,,15
.L122:
	xorl	%esi, %esi
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movl	%esi, InternalDTAs(%eax)
	movl	%ecx, InternalDTAs+4(%eax)
	movl	%edx, InternalDTAs+12(%eax)
	addl	$272, %eax
	decl	%ebx
	jns	.L122
	xorl	%eax, %eax
	movl	%eax, pDTA
	xorl	%eax, %eax
	movl	%eax, DTAIndex
	addl	$16, %esp
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
.L127:
	movl	FileHandles+4(%esi), %eax
	movl	%eax, (%esp)
	call	fclose
	jmp	.L116
	.size	GemDOS_Reset, .-GemDOS_Reset
	.p2align 4,,15
.globl GemDOS_InitDrives
	.type	GemDOS_InitDrives, @function
GemDOS_InitDrives:
	pushl	%ebp
	movl	$12078, %eax
	movl	%esp, %ebp
	subl	$8, %esp
	movl	$emudrive, (%esp)
	movw	%ax, emudrive
	movb	$0, emudrive+2
	call	File_CleanFileName
	movl	$2, %eax
	movl	%eax, emudrive+512
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	GemDOS_InitDrives, .-GemDOS_InitDrives
	.p2align 4,,15
.globl GemDOS_UnInitDrives
	.type	GemDOS_UnInitDrives, @function
GemDOS_UnInitDrives:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	jmp	GemDOS_Reset
	.size	GemDOS_UnInitDrives, .-GemDOS_UnInitDrives
	.p2align 4,,15
.globl GemDOS_FindFreeFileHandle
	.type	GemDOS_FindFreeFileHandle, @function
GemDOS_FindFreeFileHandle:
	pushl	%ebp
	xorl	%eax, %eax
	movl	%esp, %ebp
	movl	$FileHandles, %edx
	.p2align 4,,15
.L136:
	movl	(%edx), %ecx
	testl	%ecx, %ecx
	je	.L130
	incl	%eax
	addl	$264, %edx
	cmpl	$31, %eax
	jle	.L136
	movl	$-1, %eax
.L130:
	popl	%ebp
	ret
	.size	GemDOS_FindFreeFileHandle, .-GemDOS_FindFreeFileHandle
	.p2align 4,,15
.globl GemDOS_IsInvalidFileHandle
	.type	GemDOS_IsInvalidFileHandle, @function
GemDOS_IsInvalidFileHandle:
	pushl	%ebp
	xorl	%ecx, %ecx
	movl	%esp, %ebp
	movl	8(%ebp), %edx
	cmpl	$31, %edx
	ja	.L143
	movl	%edx, %eax
	sall	$5, %eax
	addl	%edx, %eax
	movl	FileHandles(,%eax,8), %eax
	testl	%eax, %eax
	jne	.L141
.L143:
	movl	$1, %ecx
.L141:
	popl	%ebp
	movl	%ecx, %eax
	ret
	.size	GemDOS_IsInvalidFileHandle, .-GemDOS_IsInvalidFileHandle
	.p2align 4,,15
.globl baselen
	.type	baselen, @function
baselen:
	pushl	%ebp
	movl	$46, %eax
	movl	%esp, %ebp
	subl	$24, %esp
	movl	%ebx, -4(%ebp)
	movl	8(%ebp), %ebx
	movl	%eax, 4(%esp)
	movl	%ebx, (%esp)
	call	strchr
	testl	%eax, %eax
	je	.L147
	subl	%ebx, %eax
	movl	-4(%ebp), %ebx
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L147:
	movl	-4(%ebp), %ebx
	movl	%ebp, %esp
	popl	%ebp
	jmp	strlen
	.size	baselen, .-baselen
	.section	.rodata.str1.1
.LC2:
	.string	"%s%s"
.LC3:
	.string	"%s%c%s"
.LC4:
	.string	"no path for %s\n"
	.text
	.p2align 4,,15
.globl GemDOS_CreateHardDriveFileName
	.type	GemDOS_CreateHardDriveFileName, @function
GemDOS_CreateHardDriveFileName:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$444, %esp
	movl	12(%ebp), %edx
	movzbl	(%edx), %eax
	testb	%al, %al
	je	.L148
	movl	16(%ebp), %ecx
	xorl	%edi, %edi
	movl	%edi, -384(%ebp)
	movl	%ecx, -380(%ebp)
	cmpb	$58, 1(%edx)
	je	.L200
	cmpb	$92, %al
	je	.L201
	movl	%edx, 12(%esp)
	movl	16(%ebp), %ecx
	movl	$emudrive+256, %eax
	movl	%eax, 8(%esp)
	movl	$.LC2, %eax
	movl	%ecx, (%esp)
	movl	%eax, 4(%esp)
	call	sprintf
	movl	$emudrive+256, %ecx
	.p2align 4,,15
.L154:
	movl	(%ecx), %eax
	addl	$4, %ecx
	leal	-16843009(%eax), %edx
	notl	%eax
	andl	%eax, %edx
	andl	$-2139062144, %edx
	je	.L154
	testl	$32896, %edx
	jne	.L156
	shrl	$16, %edx
	addl	$2, %ecx
.L156:
	addb	%dl, %dl
	movl	16(%ebp), %eax
	sbbl	$3, %ecx
	subl	$emudrive+256, %ecx
	leal	-1(%ecx,%eax), %ecx
	movl	%ecx, -384(%ebp)
	.p2align 4,,15
.L196:
	movl	-380(%ebp), %eax
	movl	$92, %esi
	movl	%esi, 4(%esp)
	incl	%eax
	movl	%eax, (%esp)
	call	strchr
	movl	%eax, -388(%ebp)
	testl	%eax, %eax
	movl	%eax, -380(%ebp)
	je	.L202
	movl	-384(%ebp), %eax
	testl	%eax, %eax
	je	.L169
	movl	-384(%ebp), %ecx
	xorl	%ebx, %ebx
	movb	$47, (%ecx)
	incl	%ecx
	movl	%ecx, -384(%ebp)
	movzbl	(%ecx), %eax
	movb	%al, -389(%ebp)
	xorl	%eax, %eax
	movb	$42, (%ecx)
	incl	%ecx
	movl	%ecx, -384(%ebp)
	movzbl	(%ecx), %edx
	movb	%dl, -390(%ebp)
	movb	$0, (%ecx)
	leal	-72(%ebp), %ecx
	movl	%eax, 8(%esp)
	movl	$8192, %eax
	movl	%eax, 4(%esp)
	movl	16(%ebp), %eax
	movl	%ecx, 12(%esp)
	movl	%eax, (%esp)
	call	glob
	movzbl	-390(%ebp), %edx
	movl	-384(%ebp), %ecx
	movb	%dl, (%ecx)
	decl	%ecx
	movzbl	-389(%ebp), %eax
	movl	%ecx, -384(%ebp)
	movb	%al, (%ecx)
	movl	-388(%ebp), %edx
	movb	$0, (%edx)
	movl	16(%ebp), %ecx
	movl	%ecx, (%esp)
	call	strlen
	movl	%eax, -404(%ebp)
	movl	-384(%ebp), %eax
	movl	%eax, (%esp)
	call	baselen
	movl	%eax, -400(%ebp)
	movl	-72(%ebp), %edi
	xorl	%eax, %eax
	movl	%eax, -396(%ebp)
	cmpl	%edi, %ebx
	jae	.L191
	.p2align 4,,15
.L168:
	cmpl	$7, -400(%ebp)
	jg	.L166
	movl	16(%ebp), %edx
	movl	-68(%ebp), %esi
	movl	%edx, 4(%esp)
	movl	(%esi,%ebx,4), %eax
	movl	%eax, (%esp)
	call	strcasecmp
.L197:
	testl	%eax, %eax
	jne	.L163
	movl	-388(%ebp), %eax
	movl	$47, %edi
	leal	-328(%ebp), %edx
	movl	%edi, 12(%esp)
	incl	%eax
	movl	%eax, 16(%esp)
	movl	(%esi,%ebx,4), %eax
	movl	$.LC3, %ebx
	movl	%ebx, 4(%esp)
	movl	%edx, (%esp)
	movl	%eax, 8(%esp)
	call	sprintf
	movl	16(%ebp), %eax
	leal	-328(%ebp), %ecx
	movl	%ecx, 4(%esp)
	movl	%eax, (%esp)
	call	strcpy
	movl	-72(%ebp), %ebx
	movl	$1, %ecx
	movl	%ecx, -396(%ebp)
	movl	%ebx, %edi
.L163:
	incl	%ebx
	cmpl	%edi, %ebx
	jb	.L168
.L191:
	leal	-72(%ebp), %edx
	movl	%edx, (%esp)
	call	globfree
	movl	-396(%ebp), %edx
	testl	%edx, %edx
	je	.L203
.L169:
	movl	-388(%ebp), %edx
	movl	%edx, -384(%ebp)
	jmp	.L196
.L203:
	movl	-384(%ebp), %ecx
	leal	-72(%ebp), %eax
	xorl	%ebx, %ebx
	movb	$42, (%ecx)
	incl	%ecx
	movl	%ecx, -384(%ebp)
	movb	$0, (%ecx)
	movl	16(%ebp), %edx
	movl	%eax, 12(%esp)
	xorl	%eax, %eax
	movl	%eax, 8(%esp)
	xorl	%eax, %eax
	movl	%edx, (%esp)
	movl	%eax, 4(%esp)
	call	glob
	movzbl	-390(%ebp), %ecx
	movl	-384(%ebp), %eax
	movb	%cl, (%eax)
	movzbl	-389(%ebp), %edx
	movb	%dl, -1(%eax)
	movl	-72(%ebp), %edi
	cmpl	%edi, -396(%ebp)
	jae	.L193
	.p2align 4,,15
.L175:
	movl	-404(%ebp), %ecx
	movl	16(%ebp), %eax
	movl	-68(%ebp), %esi
	movl	%ecx, 8(%esp)
	movl	%eax, 4(%esp)
	movl	(%esi,%ebx,4), %eax
	movl	%eax, (%esp)
	call	strncasecmp
	testl	%eax, %eax
	je	.L204
.L172:
	incl	%ebx
	cmpl	%edi, %ebx
	jb	.L175
.L193:
	leal	-72(%ebp), %edx
	movl	%edx, (%esp)
	call	globfree
	movl	-396(%ebp), %eax
	testl	%eax, %eax
	jne	.L169
	movl	-388(%ebp), %ecx
	movl	$.LC4, %edi
	movb	$47, (%ecx)
	movl	16(%ebp), %eax
	movl	%edi, 4(%esp)
	movl	%eax, 8(%esp)
	movl	stderr, %eax
	movl	%eax, (%esp)
	call	fprintf
	jmp	.L169
.L204:
	movl	-388(%ebp), %eax
	leal	-328(%ebp), %edx
	incl	%eax
	movl	%eax, 16(%esp)
	movl	$47, %eax
	movl	%eax, 12(%esp)
	movl	(%esi,%ebx,4), %eax
	movl	%edx, (%esp)
	movl	%eax, 8(%esp)
	movl	$.LC3, %eax
	movl	%eax, 4(%esp)
	call	sprintf
	movl	16(%ebp), %eax
	leal	-328(%ebp), %ecx
	movl	%ecx, 4(%esp)
	movl	%eax, (%esp)
	call	strcpy
	movl	-72(%ebp), %ebx
	movl	$1, %eax
	movl	%eax, -396(%ebp)
	movl	%ebx, %edi
	jmp	.L172
	.p2align 4,,7
.L166:
	movl	16(%ebp), %eax
	movl	-404(%ebp), %ecx
	movl	-68(%ebp), %esi
	movl	%eax, 4(%esp)
	movl	%ecx, 8(%esp)
	movl	(%esi,%ebx,4), %eax
	movl	%eax, (%esp)
	call	strncasecmp
	jmp	.L197
.L202:
	movl	-384(%ebp), %ebx
	testl	%ebx, %ebx
	je	.L205
.L189:
	movl	-384(%ebp), %eax
	movb	$47, (%eax)
	incl	%eax
	movl	%eax, -384(%ebp)
	movzbl	(%eax), %edx
	testb	%dl, %dl
	movb	%dl, -405(%ebp)
	je	.L148
	movl	%eax, (%esp)
	movl	$63, %edx
	movl	%edx, 4(%esp)
	call	strchr
	testl	%eax, %eax
	je	.L206
.L148:
	addl	$444, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
.L206:
	movl	-384(%ebp), %ecx
	movl	$42, %eax
	movl	%eax, 4(%esp)
	movl	%ecx, (%esp)
	call	strchr
	testl	%eax, %eax
	jne	.L148
	movl	-384(%ebp), %eax
	leal	-376(%ebp), %edx
	xorl	%esi, %esi
	movb	$42, (%eax)
	incl	%eax
	movl	%eax, -384(%ebp)
	movzbl	(%eax), %ebx
	movb	$0, (%eax)
	movl	16(%ebp), %ecx
	xorl	%eax, %eax
	movl	%eax, 8(%esp)
	xorl	%eax, %eax
	movl	%edx, 12(%esp)
	movl	%ecx, (%esp)
	movl	%eax, 4(%esp)
	call	glob
	movl	-384(%ebp), %eax
	movb	%bl, (%eax)
	decl	%eax
	movzbl	-405(%ebp), %edx
	movl	%eax, -384(%ebp)
	movb	%dl, (%eax)
	movl	16(%ebp), %ecx
	movl	%ecx, (%esp)
	call	strlen
	movl	%eax, -416(%ebp)
	movl	-384(%ebp), %eax
	movl	%eax, (%esp)
	call	baselen
	movl	%eax, -412(%ebp)
	movl	-376(%ebp), %edi
	cmpl	%edi, %esi
	jae	.L195
.L188:
	cmpl	$7, -412(%ebp)
	jg	.L186
	movl	16(%ebp), %edx
	movl	-372(%ebp), %ebx
	movl	%edx, 4(%esp)
	movl	(%ebx,%esi,4), %eax
	movl	%eax, (%esp)
	call	strcasecmp
.L199:
	testl	%eax, %eax
	jne	.L183
	movl	(%ebx,%esi,4), %eax
	movl	16(%ebp), %edx
	movl	%eax, 4(%esp)
	movl	%edx, (%esp)
	call	strcpy
	movl	-376(%ebp), %esi
	movl	%esi, %edi
.L183:
	incl	%esi
	cmpl	%edi, %esi
	jb	.L188
.L195:
	leal	-376(%ebp), %ecx
	movl	%ecx, (%esp)
	call	globfree
	jmp	.L148
.L186:
	movl	16(%ebp), %eax
	movl	-416(%ebp), %ecx
	movl	-372(%ebp), %ebx
	movl	%eax, 4(%esp)
	movl	%ecx, 8(%esp)
	movl	(%ebx,%esi,4), %eax
	movl	%eax, (%esp)
	call	strncasecmp
	jmp	.L199
.L205:
	movl	$47, %ecx
	movl	%ecx, 4(%esp)
	movl	16(%ebp), %ecx
	movl	%ecx, (%esp)
	call	strrchr
	movl	%eax, -384(%ebp)
	testl	%eax, %eax
	jne	.L189
	jmp	.L148
.L201:
	movl	%edx, 12(%esp)
	movl	$emudrive, %ecx
	movl	$.LC2, %edx
	movl	%edx, 4(%esp)
	movl	16(%ebp), %edx
	movl	%ecx, 8(%esp)
	movl	%edx, (%esp)
.L198:
	call	sprintf
	jmp	.L196
.L200:
	movl	%edx, (%esp)
	movl	$emudrive, %esi
	movl	$.LC2, %ebx
	call	File_RemoveFileNameDrive
	movl	%eax, 12(%esp)
	movl	16(%ebp), %eax
	movl	%esi, 8(%esp)
	movl	%ebx, 4(%esp)
	movl	%eax, (%esp)
	jmp	.L198
	.size	GemDOS_CreateHardDriveFileName, .-GemDOS_CreateHardDriveFileName
	.p2align 4,,15
.globl GemDOS_ConvertAttribute
	.type	GemDOS_ConvertAttribute, @function
GemDOS_ConvertAttribute:
	pushl	%ebp
	xorl	%edx, %edx
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	andl	$61440, %eax
	cmpl	$16384, %eax
	je	.L209
.L208:
	popl	%ebp
	movzbl	%dl, %eax
	ret
	.p2align 4,,7
.L209:
	movb	$16, %dl
	jmp	.L208
	.size	GemDOS_ConvertAttribute, .-GemDOS_ConvertAttribute
	.p2align 4,,15
.globl GemDOS_SetDTA
	.type	GemDOS_SetDTA, @function
GemDOS_SetDTA:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	STRam, %edx
	andl	$16777215, %eax
	addl	%edx, %eax
	movl	%eax, pDTA
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	GemDOS_SetDTA, .-GemDOS_SetDTA
	.section	.rodata.str1.1
.LC5:
	.string	"w+"
.LC6:
	.string	"wb"
	.text
	.p2align 4,,15
.globl GemDOS_Create
	.type	GemDOS_Create, @function
GemDOS_Create:
	pushl	%ebp
	movl	$.LC5, %eax
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$300, %esp
	movl	%eax, -288(%ebp)
	movl	$.LC6, %eax
	movl	%eax, -284(%ebp)
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	movl	STRam, %eax
	andl	$16777215, %ebx
	addl	%eax, %ebx
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	movl	%ebx, 4(%esp)
	movswl	%ax,%esi
	leal	-280(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$2, (%esp)
	call	GemDOS_CreateHardDriveFileName
	call	GemDOS_FindFreeFileHandle
	cmpl	$-1, %eax
	movl	%eax, %ebx
	je	.L217
	sall	$5, %eax
	andl	$1, %esi
	addl	%ebx, %eax
	leal	0(,%eax,8), %edi
	leal	-288(%ebp), %eax
	movl	(%eax,%esi,4), %eax
	movl	%eax, 4(%esp)
	leal	-280(%ebp), %eax
	movl	%eax, (%esp)
	call	fopen
	movl	%eax, FileHandles+4(%edi)
	testl	%eax, %eax
	je	.L214
	movl	$1, %esi
	leal	64(%ebx), %eax
	movl	%esi, FileHandles(%edi)
	movl	%eax, 4(%esp)
.L216:
	movl	$0, (%esp)
	call	SetReg
	addl	$300, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L214:
	movl	$-33, %ecx
	movl	%ecx, 4(%esp)
	jmp	.L216
	.p2align 4,,7
.L217:
	movl	$-35, %edi
	movl	%edi, 4(%esp)
	jmp	.L216
	.size	GemDOS_Create, .-GemDOS_Create
	.section	.rodata.str1.1
.LC7:
	.string	"rb"
.LC8:
	.string	"r+"
.LC9:
	.string	"%s"
	.text
	.p2align 4,,15
.globl GemDOS_Open
	.type	GemDOS_Open, @function
GemDOS_Open:
	pushl	%ebp
	movl	$.LC7, %eax
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$300, %esp
	movl	%eax, -296(%ebp)
	movl	$.LC6, %eax
	movl	%eax, -292(%ebp)
	movl	$.LC8, %eax
	movl	%eax, -288(%ebp)
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	STRam, %edi
	movl	%eax, %ebx
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	andl	$16777215, %ebx
	addl	%edi, %ebx
	call	MemReadWord
	movl	%ebx, 4(%esp)
	movswl	%ax,%edi
	leal	-280(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$2, (%esp)
	call	GemDOS_CreateHardDriveFileName
	call	GemDOS_FindFreeFileHandle
	cmpl	$-1, %eax
	movl	%eax, %esi
	je	.L223
	sall	$5, %eax
	andl	$3, %edi
	addl	%esi, %eax
	leal	0(,%eax,8), %ebx
	movl	-296(%ebp,%edi,4), %eax
	movl	%eax, 4(%esp)
	leal	-280(%ebp), %eax
	movl	%eax, (%esp)
	call	fopen
	movl	%eax, FileHandles+4(%ebx)
	movl	$.LC9, %edx
	leal	-280(%ebp), %eax
	movl	%eax, 8(%esp)
	leal	FileHandles+8(%ebx), %eax
	movl	%edx, 4(%esp)
	movl	%eax, (%esp)
	call	sprintf
	movl	FileHandles+4(%ebx), %eax
	testl	%eax, %eax
	je	.L220
	movl	$1, %eax
	movl	%eax, FileHandles(%ebx)
	leal	64(%esi), %eax
.L222:
	movl	%eax, 4(%esp)
.L221:
	movl	$0, (%esp)
	call	SetReg
	addl	$300, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L220:
	movl	$-33, %eax
	jmp	.L222
	.p2align 4,,7
.L223:
	movl	$-35, %ecx
	movl	%ecx, 4(%esp)
	jmp	.L221
	.size	GemDOS_Open, .-GemDOS_Open
	.p2align 4,,15
.globl GemDOS_Close
	.type	GemDOS_Close, @function
GemDOS_Close:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	movl	%esi, -4(%ebp)
	movl	%ebx, -8(%ebp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	leal	-64(%eax), %esi
	movl	%esi, (%esp)
	call	GemDOS_IsInvalidFileHandle
	testl	%eax, %eax
	je	.L227
.L224:
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L227:
	movl	%esi, %ebx
	sall	$5, %ebx
	addl	%esi, %ebx
	sall	$3, %ebx
	movl	FileHandles+4(%ebx), %eax
	movl	%eax, (%esp)
	call	fclose
	movl	$0, (%esp)
	xorl	%eax, %eax
	movl	%eax, FileHandles(%ebx)
	xorl	%eax, %eax
	movl	%eax, 4(%esp)
	call	SetReg
	jmp	.L224
	.size	GemDOS_Close, .-GemDOS_Close
	.p2align 4,,15
.globl GemDOS_Read
	.type	GemDOS_Read, @function
GemDOS_Read:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$28, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %ebx
	subl	$2, %ebx
	leal	2(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	leal	-64(%eax), %esi
	leal	4(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, -16(%ebp)
	leal	8(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%esi, (%esp)
	movl	%eax, %edi
	movl	STRam, %eax
	andl	$16777215, %edi
	addl	%eax, %edi
	call	GemDOS_IsInvalidFileHandle
	testl	%eax, %eax
	je	.L235
.L228:
	addl	$28, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L235:
	movl	%esi, %eax
	sall	$5, %eax
	addl	%esi, %eax
	sall	$3, %eax
	xorl	%esi, %esi
	movl	%eax, -20(%ebp)
	movl	FileHandles+4(%eax), %eax
	movl	%eax, (%esp)
	call	ftell
	movl	%esi, 4(%esp)
	movl	-20(%ebp), %edx
	movl	%eax, %ebx
	movl	$2, %eax
	movl	%eax, 8(%esp)
	movl	FileHandles+4(%edx), %eax
	movl	%eax, (%esp)
	call	fseek
	movl	-20(%ebp), %edx
	movl	FileHandles+4(%edx), %eax
	movl	%eax, (%esp)
	call	ftell
	movl	%ebx, 4(%esp)
	movl	-20(%ebp), %edx
	movl	%eax, %esi
	xorl	%ecx, %ecx
	movl	%ecx, 8(%esp)
	movl	FileHandles+4(%edx), %eax
	movl	%eax, (%esp)
	call	fseek
	cmpl	%ebx, %esi
	je	.L236
	cmpl	%esi, -16(%ebp)
	jbe	.L233
	movl	%esi, -16(%ebp)
.L233:
	movl	%edi, (%esp)
	movl	-20(%ebp), %edx
	movl	FileHandles+4(%edx), %eax
	movl	%eax, 12(%esp)
	movl	-16(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	$1, %eax
	movl	%eax, 4(%esp)
	call	fread
	movl	%eax, 4(%esp)
.L234:
	movl	$0, (%esp)
	call	SetReg
	jmp	.L228
.L236:
	xorl	%edx, %edx
	movl	%edx, 4(%esp)
	jmp	.L234
	.size	GemDOS_Read, .-GemDOS_Read
	.p2align 4,,15
.globl GemDOS_Write
	.type	GemDOS_Write, @function
GemDOS_Write:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$40, %esp
	movl	$15, (%esp)
	movl	%ebx, -12(%ebp)
	movl	%esi, -8(%ebp)
	movl	%edi, -4(%ebp)
	call	GetReg
	movl	%eax, %ebx
	subl	$2, %ebx
	leal	2(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	leal	-64(%eax), %esi
	leal	4(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %edi
	leal	8(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%esi, (%esp)
	movl	%eax, %ebx
	movl	STRam, %eax
	andl	$16777215, %ebx
	addl	%eax, %ebx
	call	GemDOS_IsInvalidFileHandle
	testl	%eax, %eax
	je	.L242
.L237:
	movl	-12(%ebp), %ebx
	movl	-8(%ebp), %esi
	movl	-4(%ebp), %edi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L242:
	movl	%edi, 8(%esp)
	movl	%esi, %eax
	sall	$5, %eax
	movl	%ebx, (%esp)
	addl	%esi, %eax
	movl	FileHandles+4(,%eax,8), %eax
	movl	%eax, 12(%esp)
	movl	$1, %eax
	movl	%eax, 4(%esp)
	call	fwrite
	movl	%eax, 4(%esp)
	movl	$0, (%esp)
	call	SetReg
	jmp	.L237
	.size	GemDOS_Write, .-GemDOS_Write
	.p2align 4,,15
.globl GemDOS_UnLink
	.type	GemDOS_UnLink, @function
GemDOS_UnLink:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$280, %esp
	movl	$15, (%esp)
	movl	%ebx, -4(%ebp)
	leal	-264(%ebp), %ebx
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%ebx, 8(%esp)
	movl	STRam, %edx
	andl	$16777215, %eax
	movl	$2, (%esp)
	addl	%edx, %eax
	movl	%eax, 4(%esp)
	call	GemDOS_CreateHardDriveFileName
	movl	%ebx, (%esp)
	call	unlink
	testl	%eax, %eax
	jne	.L244
	xorl	%eax, %eax
.L247:
	movl	%eax, 4(%esp)
	movl	$0, (%esp)
	call	SetReg
	movl	-4(%ebp), %ebx
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L244:
	movl	$-33, %eax
	jmp	.L247
	.size	GemDOS_UnLink, .-GemDOS_UnLink
	.section	.rodata.str1.1
.LC10:
	.string	"\tError setting DTA.\n"
	.text
	.p2align 4,,15
.globl GemDOS_SNext
	.type	GemDOS_SNext, @function
GemDOS_SNext:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	pDTA, %edx
	movl	2(%edx), %eax
#APP
	bswap	%eax

#NO_APP
	cmpl	$311964790, %eax
	je	.L255
.L248:
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L255:
	movzwl	(%edx), %eax
#APP
	xchgb %al,%ah
#NO_APP
	movzbl	%al, %eax
	movl	%eax, %edx
	sall	$4, %edx
	addl	%eax, %edx
	sall	$4, %edx
	movl	InternalDTAs+8(%edx), %ecx
	cmpl	InternalDTAs+4(%edx), %ecx
	jl	.L252
	movl	$-49, %eax
	movl	%eax, 4(%esp)
.L254:
	movl	$0, (%esp)
	call	SetReg
	jmp	.L248
	.p2align 4,,7
.L252:
	movl	InternalDTAs+12(%edx), %eax
	movl	(%eax,%ecx,4), %eax
	movl	%eax, 4(%esp)
	leal	1(%ecx), %eax
	movl	%eax, InternalDTAs+8(%edx)
	leal	InternalDTAs+16(%edx), %eax
	movl	%eax, (%esp)
	call	PopulateDTA
	testl	%eax, %eax
	jne	.L253
	movl	$.LC10, (%esp)
	movl	stderr, %eax
	movl	%eax, 12(%esp)
	movl	$20, %eax
	movl	%eax, 8(%esp)
	movl	$1, %eax
	movl	%eax, 4(%esp)
	call	fwrite
	jmp	.L248
.L253:
	xorl	%ecx, %ecx
	movl	%ecx, 4(%esp)
	jmp	.L254
	.size	GemDOS_SNext, .-GemDOS_SNext
	.p2align 4,,15
.globl GemDOS_SFirst
	.type	GemDOS_SFirst, @function
GemDOS_SFirst:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	leal	-280(%ebp), %edi
	pushl	%esi
	pushl	%ebx
	subl	$556, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	STRam, %ecx
	movl	%eax, %ebx
	andl	$16777215, %ebx
	leal	6(%esi), %eax
	addl	%ecx, %ebx
	movl	%eax, (%esp)
	call	MemReadWord
	movl	%edi, 8(%esp)
	movzwl	%ax, %esi
	movl	%ebx, 4(%esp)
	movl	$2, (%esp)
	call	GemDOS_CreateHardDriveFileName
	movzwl	DTAIndex, %eax
#APP
	xchgb %al,%ah
#NO_APP
	movl	pDTA, %edx
	movw	%ax, (%edx)
	movl	$311964790, %eax
#APP
	bswap	%eax

#NO_APP
	movl	%eax, 2(%edx)
	movl	DTAIndex, %ecx
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	cmpl	$1, InternalDTAs(%eax)
	je	.L286
.L259:
	movl	%ecx, %eax
	movl	$1, %edx
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	andl	$8, %esi
	movl	%edx, InternalDTAs(%eax)
	je	.L260
	movl	pDTA, %eax
	movl	$1280658757, 30(%eax)
	movl	$1145394241, 34(%eax)
	movl	$825241646, 38(%eax)
	movb	$0, 42(%eax)
	xorl	%eax, %eax
.L285:
	movl	%eax, 4(%esp)
	movl	$0, (%esp)
	call	SetReg
.L256:
	addl	$556, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L260:
	movl	%edi, (%esp)
	addl	$InternalDTAs+16, %eax
	movl	%eax, 4(%esp)
	call	fsfirst_dirname
	movl	DTAIndex, %edx
	movl	%edx, %eax
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	addl	$InternalDTAs+16, %eax
	movl	%eax, (%esp)
	call	opendir
	testl	%eax, %eax
	je	.L287
	movl	%eax, (%esp)
	xorl	%esi, %esi
	call	closedir
	movl	%esi, 8(%esp)
	movl	DTAIndex, %eax
	movl	%eax, %ebx
	sall	$4, %ebx
	addl	%eax, %ebx
	movl	$alphasort, %eax
	movl	%eax, 12(%esp)
	sall	$4, %ebx
	leal	-540(%ebp), %eax
	movl	%eax, 4(%esp)
	leal	InternalDTAs+16(%ebx), %eax
	movl	%eax, (%esp)
	call	scandir
	movl	%eax, InternalDTAs+4(%ebx)
	movl	DTAIndex, %edx
	movl	%edx, %eax
	sall	$4, %eax
	addl	%edx, %eax
	sall	$4, %eax
	movl	InternalDTAs+4(%eax), %ecx
	testl	%ecx, %ecx
	js	.L283
	movl	%edi, (%esp)
	xorl	%edx, %edx
	xorl	%esi, %esi
	movl	%edx, InternalDTAs+8(%eax)
	xorl	%edi, %edi
	leal	-536(%ebp), %eax
	movl	%eax, 4(%esp)
	call	fsfirst_dirmask
	movl	DTAIndex, %ecx
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	cmpl	InternalDTAs+4(%eax), %edi
	jge	.L256
	.p2align 4,,15
.L268:
	movl	-540(%ebp), %eax
	movl	(%eax,%esi,4), %eax
	addl	$11, %eax
	movl	%eax, 4(%esp)
	leal	-536(%ebp), %eax
	movl	%eax, (%esp)
	call	match
	testl	%eax, %eax
	je	.L265
	incl	%edi
.L265:
	movl	DTAIndex, %ecx
	incl	%esi
	movl	%ecx, %eax
	sall	$4, %eax
	leal	(%ecx,%eax), %ebx
	sall	$4, %ebx
	cmpl	InternalDTAs+4(%ebx), %esi
	jl	.L268
	testl	%edi, %edi
	je	.L256
	leal	0(,%edi,4), %eax
	xorl	%esi, %esi
	movl	%eax, (%esp)
	call	malloc
	movl	%eax, InternalDTAs+12(%ebx)
	movl	DTAIndex, %ecx
	xorl	%ebx, %ebx
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	cmpl	InternalDTAs+4(%eax), %esi
	jl	.L275
.L280:
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	testl	%edi, %edi
	movl	%edi, InternalDTAs+4(%eax)
	jne	.L276
.L283:
	movl	$-33, %eax
	jmp	.L285
.L276:
	movl	$0, (%esp)
	call	GemDOS_SNext
	movl	DTAIndex, %ecx
	incl	%ecx
	movzbl	%cl,%eax
	movl	%eax, DTAIndex
	jmp	.L256
	.p2align 4,,7
.L275:
	movl	-540(%ebp), %eax
	movl	(%eax,%esi,4), %eax
	addl	$11, %eax
	movl	%eax, 4(%esp)
	leal	-536(%ebp), %eax
	movl	%eax, (%esp)
	call	match
	testl	%eax, %eax
	je	.L281
	movl	DTAIndex, %ecx
	movl	%ecx, %eax
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	movl	InternalDTAs+12(%eax), %edx
	movl	-540(%ebp), %eax
	movl	(%eax,%esi,4), %eax
	movl	%eax, (%edx,%ebx,4)
	incl	%ebx
.L272:
	movl	%ecx, %eax
	incl	%esi
	sall	$4, %eax
	addl	%ecx, %eax
	sall	$4, %eax
	cmpl	InternalDTAs+4(%eax), %esi
	jl	.L275
	jmp	.L280
.L281:
	movl	DTAIndex, %ecx
	jmp	.L272
.L287:
	movl	$-34, %eax
	jmp	.L285
	.p2align 4,,7
.L286:
	call	ClearInternalDTA
	movl	DTAIndex, %ecx
	jmp	.L259
	.size	GemDOS_SFirst, .-GemDOS_SFirst
	.p2align 4,,15
.globl Call_Memset
	.type	Call_Memset, @function
Call_Memset:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	movl	%ebx, -8(%ebp)
	movl	%esi, -4(%ebp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%ebx, 8(%esp)
	movl	STRam, %esi
	xorl	%ebx, %ebx
	movl	%ebx, 4(%esp)
	addl	%esi, %eax
	movl	%eax, (%esp)
	call	memset
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_Memset, .-Call_Memset
	.p2align 4,,15
.globl Call_MemsetBlue
	.type	Call_MemsetBlue, @function
Call_MemsetBlue:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	movl	%ebx, -8(%ebp)
	movl	%esi, -4(%ebp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%ebx, 8(%esp)
	movl	STRam, %edx
	movl	$14, %ecx
	movl	%ecx, 4(%esp)
	addl	%edx, %eax
	movl	%eax, (%esp)
	call	memset
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_MemsetBlue, .-Call_MemsetBlue
	.p2align 4,,15
.globl Call_Memcpy
	.type	Call_Memcpy, @function
Call_Memcpy:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	movl	%ebx, -12(%ebp)
	movl	%esi, -8(%ebp)
	movl	%edi, -4(%ebp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %edi
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	leal	10(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, 8(%esp)
	movl	STRam, %edx
	leal	(%edi,%edx), %ecx
	movl	%ecx, (%esp)
	addl	%ebx, %edx
	movl	%edx, 4(%esp)
	call	memcpy
	movl	-12(%ebp), %ebx
	movl	-8(%ebp), %esi
	movl	-4(%ebp), %edi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_Memcpy, .-Call_Memcpy
	.section	.rodata
	.align 32
	.type	mouse_bmp, @object
	.size	mouse_bmp, 256
mouse_bmp:
	.byte	0
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	0
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	15
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	15
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	0
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.byte	-1
	.text
	.p2align 4,,15
.globl Call_BlitCursor
	.type	Call_BlitCursor, @function
Call_BlitCursor:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	movl	$mouse_bmp, %esi
	pushl	%ebx
	subl	$28, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %ebx
	subl	$2, %ebx
	leal	2(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %edi
	leal	6(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, -20(%ebp)
	leal	10(%ebx), %eax
	movl	$under_mouse, %ebx
	movl	%eax, (%esp)
	call	MemReadLong
	movl	$0, -16(%ebp)
	movl	STRam, %ecx
	addl	%ecx, %eax
	movl	-20(%ebp), %ecx
	leal	(%ecx,%ecx,4), %edx
	sall	$6, %edx
	addl	%edx, %eax
	addl	%edi, %eax
	movl	%eax, -24(%ebp)
.L304:
	movl	-16(%ebp), %eax
	movl	-20(%ebp), %edx
	addl	%edx, %eax
	cmpl	$200, %eax
	jg	.L293
	movl	-24(%ebp), %edx
	xorl	%ecx, %ecx
	leal	320(%edx), %eax
	movl	%eax, -24(%ebp)
	.p2align 4,,15
.L303:
	leal	(%edi,%ecx), %eax
	cmpl	$319, %eax
	jle	.L308
.L299:
	incl	%ecx
	incl	%edx
	incl	%esi
	incl	%ebx
	cmpl	$15, %ecx
	jle	.L303
	incl	-16(%ebp)
	cmpl	$15, -16(%ebp)
	jle	.L304
.L293:
	addl	$28, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L308:
	movzbl	(%edx), %eax
	movb	%al, (%ebx)
	movzbl	(%esi), %eax
	cmpb	$-1, %al
	je	.L299
	movb	%al, (%edx)
	jmp	.L299
	.size	Call_BlitCursor, .-Call_BlitCursor
	.p2align 4,,15
.globl Call_RestoreUnderCursor
	.type	Call_RestoreUnderCursor, @function
Call_RestoreUnderCursor:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	xorl	%edi, %edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %ebx
	subl	$2, %ebx
	leal	2(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %esi
	leal	6(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, -16(%ebp)
	leal	10(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	-16(%ebp), %ecx
	movl	STRam, %ebx
	leal	(%ecx,%ecx,4), %edx
	addl	%ebx, %eax
	sall	$6, %edx
	addl	%edx, %eax
	addl	%esi, %eax
	movl	$under_mouse, %ebx
	movl	%eax, -20(%ebp)
.L322:
	movl	-16(%ebp), %edx
	leal	(%edx,%edi), %eax
	cmpl	$200, %eax
	jg	.L311
	movl	-20(%ebp), %edx
	leal	320(%edx), %ecx
	movl	%ecx, -20(%ebp)
	xorl	%ecx, %ecx
	.p2align 4,,15
.L321:
	leal	(%esi,%ecx), %eax
	cmpl	$319, %eax
	jle	.L326
.L317:
	incl	%ecx
	incl	%edx
	incl	%ebx
	cmpl	$15, %ecx
	jle	.L321
	incl	%edi
	cmpl	$15, %edi
	jle	.L322
.L311:
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L326:
	movzbl	(%ebx), %eax
	cmpb	$-1, %al
	je	.L317
	movb	%al, (%edx)
	jmp	.L317
	.size	Call_RestoreUnderCursor, .-Call_RestoreUnderCursor
	.p2align 4,,15
.globl Call_PutPix
	.type	Call_PutPix, @function
Call_PutPix:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$24, %esp
	movl	$15, (%esp)
	movl	%ebx, -8(%ebp)
	movl	%esi, -4(%ebp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadWord
	movl	$4, (%esp)
	movswl	%ax,%ebx
	sarl	$2, %ebx
	call	GetReg
	movl	$11, (%esp)
	movzwl	%ax, %esi
	call	GetReg
	testl	$1048576, %eax
	je	.L328
	leal	-1048576(%eax,%eax), %eax
.L329:
	movl	STRam, %edx
	addl	%edx, %eax
	movb	%bl, (%esi,%eax)
	movl	-8(%ebp), %ebx
	movl	-4(%ebp), %esi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.p2align 4,,7
.L328:
	leal	-983040(%eax,%eax), %eax
	jmp	.L329
	.size	Call_PutPix, .-Call_PutPix
	.p2align 4,,15
.globl Call_FillLine
	.type	Call_FillLine, @function
Call_FillLine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$4, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadWord
	movl	$4, (%esp)
	movswl	%ax,%ebx
	sarl	$2, %ebx
	call	GetReg
	movl	$5, (%esp)
	call	GetReg
	movl	$11, (%esp)
	call	GetReg
	testl	$1048576, %eax
	je	.L331
	leal	-1048576(%eax,%eax), %eax
.L332:
	movl	STRam, %edx
	addl	%edx, %eax
	movl	$319, %edx
	.p2align 4,,15
.L336:
	movb	%bl, (%eax)
	decl	%edx
	incl	%eax
	cmpl	$-1, %edx
	jne	.L336
	popl	%ecx
	popl	%ebx
	popl	%ebp
	ret
.L331:
	leal	-983040(%eax,%eax), %eax
	jmp	.L332
	.size	Call_FillLine, .-Call_FillLine
	.p2align 4,,15
.globl Call_BackHLine
	.type	Call_BackHLine, @function
Call_BackHLine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadWord
	movl	$11, (%esp)
	movswl	%ax,%edi
	sarl	$2, %edi
	call	GetReg
	movl	$7, (%esp)
	movl	%eax, %esi
	call	GetReg
	testl	$1048576, %esi
	movzwl	%ax, %ebx
	je	.L340
	leal	-1048576(%esi,%esi), %esi
.L341:
	movl	STRam, %edx
	movl	$15, %ecx
	addl	%esi, %edx
	.p2align 4,,15
.L347:
	movl	%ebx, %eax
	sarl	%cl, %eax
	testb	$1, %al
	je	.L346
	cmpb	$0, (%edx)
	jne	.L346
	movl	%edi, %eax
	movb	%al, (%edx)
	.p2align 4,,15
.L346:
	incl	%edx
	decl	%ecx
	jns	.L347
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
.L340:
	leal	-983040(%esi,%esi), %esi
	jmp	.L341
	.size	Call_BackHLine, .-Call_BackHLine
	.p2align 4,,15
.globl Call_OldHLine
	.type	Call_OldHLine, @function
Call_OldHLine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadWord
	movl	$4, (%esp)
	movswl	%ax,%esi
	sarl	$2, %esi
	call	GetReg
	movl	$5, (%esp)
	movzwl	%ax, %edi
	call	GetReg
	movl	$11, (%esp)
	movzwl	%ax, %ebx
	call	GetReg
	testl	$1048576, %eax
	leal	-1048576(%eax,%eax), %edx
	jne	.L352
	leal	-983040(%eax,%eax), %edx
.L352:
	movl	%ebx, %eax
	movl	STRam, %ecx
	shrl	$31, %eax
	addl	%eax, %ebx
	sarl	%ebx
	addl	%ecx, %edx
	decl	%ebx
	leal	(%edi,%edx), %eax
	cmpl	$-1, %ebx
	je	.L358
	.p2align 4,,15
.L356:
	movl	%esi, %edx
	decl	%ebx
	movb	%dl, (%eax)
	incl	%eax
	cmpl	$-1, %ebx
	jne	.L356
.L358:
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.size	Call_OldHLine, .-Call_OldHLine
	.p2align 4,,15
.globl Call_HLine
	.type	Call_HLine, @function
Call_HLine:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$12, %esp
	movl	$1, (%esp)
	call	GetReg
	movl	$4, (%esp)
	movzwl	%ax,%esi
	sarl	$2, %esi
	call	GetReg
	movl	$5, (%esp)
	movzwl	%ax,%edi
	call	GetReg
	movl	$11, (%esp)
	movzwl	%ax,%ebx
	decl	%ebx
	call	GetReg
	movl	STRam, %edx
	addl	%edx, %eax
	addl	%edi, %eax
	cmpl	$-1, %ebx
	je	.L365
	.p2align 4,,15
.L363:
	movl	%esi, %edx
	decl	%ebx
	movb	%dl, (%eax)
	incl	%eax
	cmpl	$-1, %ebx
	jne	.L363
.L365:
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.size	Call_HLine, .-Call_HLine
	.p2align 4,,15
.globl Call_BlitBmp
	.type	Call_BlitBmp, @function
Call_BlitBmp:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$60, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, %esi
	subl	$2, %esi
	leal	2(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	movl	%eax, -16(%ebp)
	leal	4(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	movl	%eax, -20(%ebp)
	leal	6(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	cwtl
	movl	%eax, -24(%ebp)
	leal	8(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadWord
	movswl	%ax,%edi
	leal	10(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	leal	14(%esi), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	STRam, %edx
	movl	-24(%ebp), %esi
	leal	4(%ebx,%edx), %ebx
	movl	%ebx, -28(%ebp)
	addl	%eax, %edx
	movl	-24(%ebp), %ebx
	leal	(%edi,%edi,4), %eax
	sall	$6, %eax
	addl	%eax, %edx
	addl	%esi, %edx
	testl	%ebx, %ebx
	movl	%edx, -32(%ebp)
	js	.L366
	testl	%edi, %edi
	js	.L366
	cmpl	$200, -20(%ebp)
	jg	.L366
	cmpl	$320, -16(%ebp)
	jg	.L366
	movl	-20(%ebp), %eax
	movl	-16(%ebp), %ecx
	imull	%ecx, %eax
	addl	%eax, %eax
	movl	%eax, -56(%ebp)
	movl	-20(%ebp), %eax
	decl	%eax
	movl	%eax, -40(%ebp)
	incl	%eax
	je	.L366
.L388:
	movl	-32(%ebp), %esi
	movl	-16(%ebp), %eax
	leal	320(%esi), %edx
	movl	%edx, -32(%ebp)
	testl	%eax, %eax
	movl	%eax, -36(%ebp)
	je	.L391
	movl	-56(%ebp), %edx
	leal	(%edx,%edx,2), %edx
	movl	%edx, -60(%ebp)
.L387:
	movl	-28(%ebp), %edx
	xorl	%ebx, %ebx
	movzwl	(%edx), %eax
#APP
	xchgb %al,%ah
#NO_APP
	cwtl
	movl	%eax, -44(%ebp)
	movl	-56(%ebp), %eax
	addl	%eax, %edx
	movzwl	(%edx), %eax
#APP
	xchgb %al,%ah
#NO_APP
	movl	%edx, -28(%ebp)
	cwtl
	movl	%eax, -48(%ebp)
	movl	-56(%ebp), %eax
	addl	%eax, %edx
	movzwl	(%edx), %eax
#APP
	xchgb %al,%ah
#NO_APP
	movl	%edx, -28(%ebp)
	cwtl
	movl	%eax, -52(%ebp)
	movl	-56(%ebp), %eax
	addl	%eax, %edx
	movzwl	(%edx), %eax
	movl	%edx, -28(%ebp)
#APP
	xchgb %al,%ah
#NO_APP
	movswl	%ax,%edi
	.p2align 4,,15
.L386:
	movl	-44(%ebp), %eax
	movl	$15, %ecx
	subl	%ebx, %ecx
	incl	%ebx
	sarl	%cl, %eax
	movb	%al, %dl
	movl	-48(%ebp), %eax
	andb	$1, %dl
	sarl	%cl, %eax
	andl	$1, %eax
	addl	%eax, %eax
	orb	%al, %dl
	movl	-52(%ebp), %eax
	sarl	%cl, %eax
	andl	$1, %eax
	sall	$2, %eax
	orb	%al, %dl
	movl	%edi, %eax
	sarl	%cl, %eax
	andl	$1, %eax
	sall	$3, %eax
	orb	%al, %dl
	movb	%dl, (%esi)
	incl	%esi
	cmpl	$15, %ebx
	jle	.L386
	movl	-60(%ebp), %edx
	subl	%edx, -28(%ebp)
	addl	$2, -28(%ebp)
	decl	-36(%ebp)
	jne	.L387
.L391:
	decl	-40(%ebp)
	cmpl	$-1, -40(%ebp)
	jne	.L388
.L366:
	addl	$60, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.size	Call_BlitBmp, .-Call_BlitBmp
	.p2align 4,,15
.globl Call_DrawStrShadowed
	.type	Call_DrawStrShadowed, @function
Call_DrawStrShadowed:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$40, %esp
	movl	$8, (%esp)
	movl	%ebx, -12(%ebp)
	movl	%esi, -8(%ebp)
	movl	%edi, -4(%ebp)
	call	GetReg
	movl	$0, (%esp)
	movl	STRam, %ecx
	movl	%eax, %ebx
	addl	%ecx, %ebx
	call	GetReg
	movl	$2, (%esp)
	movl	%eax, %edi
	call	GetReg
	movl	$1, (%esp)
	movl	%eax, %esi
	call	GetReg
	movl	%eax, (%esp)
	movl	$1, %edx
	movl	%edx, 16(%esp)
	movl	%ebx, 12(%esp)
	movl	%edi, 8(%esp)
	movl	%esi, 4(%esp)
	call	DrawStr
	movl	%eax, 4(%esp)
	movl	$1, (%esp)
	call	SetReg
	movl	-12(%ebp), %ebx
	movl	-8(%ebp), %esi
	movl	-4(%ebp), %edi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_DrawStrShadowed, .-Call_DrawStrShadowed
	.p2align 4,,15
.globl Call_DrawStr
	.type	Call_DrawStr, @function
Call_DrawStr:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$40, %esp
	movl	$8, (%esp)
	movl	%ebx, -12(%ebp)
	movl	%esi, -8(%ebp)
	movl	%edi, -4(%ebp)
	call	GetReg
	movl	$0, (%esp)
	movl	STRam, %ecx
	movl	%eax, %ebx
	addl	%ecx, %ebx
	call	GetReg
	movl	$2, (%esp)
	movl	%eax, %edi
	call	GetReg
	movl	$1, (%esp)
	movl	%eax, %esi
	call	GetReg
	movl	%eax, (%esp)
	xorl	%edx, %edx
	movl	%edx, 16(%esp)
	movl	%ebx, 12(%esp)
	movl	%edi, 8(%esp)
	movl	%esi, 4(%esp)
	call	DrawStr
	movl	%eax, 4(%esp)
	movl	$1, (%esp)
	call	SetReg
	movl	-12(%ebp), %ebx
	movl	-8(%ebp), %esi
	movl	-4(%ebp), %edi
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_DrawStr, .-Call_DrawStr
	.p2align 4,,15
.globl Call_SetMainPalette
	.type	Call_SetMainPalette, @function
Call_SetMainPalette:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	xorl	%esi, %esi
	pushl	%ebx
	subl	$16, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	.p2align 4,,15
.L401:
	movl	%ebx, (%esp)
	addl	$2, %ebx
	call	MemReadWord
	movw	%ax, MainPalette(%esi,%esi)
	incl	%esi
	cmpl	$15, %esi
	jle	.L401
	addl	$16, %esp
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
	.size	Call_SetMainPalette, .-Call_SetMainPalette
	.p2align 4,,15
.globl Call_SetCtrlPalette
	.type	Call_SetCtrlPalette, @function
Call_SetCtrlPalette:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	xorl	%esi, %esi
	pushl	%ebx
	subl	$16, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, %ebx
	.p2align 4,,15
.L409:
	movl	%ebx, (%esp)
	addl	$2, %ebx
	call	MemReadWord
	movw	%ax, CtrlPalette(%esi,%esi)
	incl	%esi
	cmpl	$15, %esi
	jle	.L409
	addl	$16, %esp
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
	.size	Call_SetCtrlPalette, .-Call_SetCtrlPalette
	.p2align 4,,15
.globl Call_InformScreens
	.type	Call_InformScreens, @function
Call_InformScreens:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movl	$15, (%esp)
	movl	%ebx, -4(%ebp)
	call	GetReg
	movl	%eax, %ebx
	subl	$2, %ebx
	leal	2(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, physcreen2
	leal	6(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, logscreen2
	leal	10(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, physcreen
	leal	14(%ebx), %eax
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, logscreen
	movl	-4(%ebp), %ebx
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	Call_InformScreens, .-Call_InformScreens
	.p2align 4,,15
.globl Call_SetScreenBase
	.type	Call_SetScreenBase, @function
Call_SetScreenBase:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$4, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, VideoBase
	movl	STRam, %edx
	movl	len_working_ext_pal, %ecx
	addl	%edx, %eax
	xorl	%edx, %edx
	cmpl	%ecx, %edx
	movl	%eax, VideoRaster
	jge	.L420
	movl	$MainPalette, %ebx
	.p2align 4,,15
.L418:
	movzwl	working_ext_pal(%edx,%edx), %eax
	movw	%ax, 32(%ebx,%edx,2)
	incl	%edx
	cmpl	%ecx, %edx
	jl	.L418
.L420:
	leal	16(%ecx), %eax
	movl	%eax, len_main_palette
	popl	%ebx
	popl	%ebx
	popl	%ebp
	ret
	.size	Call_SetScreenBase, .-Call_SetScreenBase
	.p2align 4,,15
.globl Call_MakeExtPalette
	.type	Call_MakeExtPalette, @function
Call_MakeExtPalette:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	xorl	%esi, %esi
	pushl	%ebx
	subl	$12, %esp
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, (%esp)
	call	MemReadLong
	movl	%eax, (%esp)
	movl	%eax, %ebx
	addl	$2, %ebx
	call	MemReadWord
	movswl	%ax,%edi
	sarl	$2, %edi
	cmpl	%edi, %esi
	movl	%edi, len_working_ext_pal
	jl	.L426
.L428:
	addl	$12, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L426:
	movl	%ebx, (%esp)
	addl	$2, %ebx
	call	MemReadWord
	movw	%ax, working_ext_pal(%esi,%esi)
	incl	%esi
	movl	%ebx, (%esp)
	call	MemReadWord
	movl	%ebx, (%esp)
	cwtl
	addl	$64, %eax
	movl	%eax, 4(%esp)
	addl	$2, %ebx
	call	MemWriteWord
	cmpl	%edi, %esi
	jl	.L426
	jmp	.L428
	.size	Call_MakeExtPalette, .-Call_MakeExtPalette
	.section	.rodata.str1.1
.LC11:
	.string	"D: "
.LC12:
	.string	"$%x "
.LC13:
	.string	"A: "
	.text
	.p2align 4,,15
.globl Call_DumpRegs
	.type	Call_DumpRegs, @function
Call_DumpRegs:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$20, %esp
	xorl	%ebx, %ebx
	movl	$.LC11, (%esp)
	call	printf
	.p2align 4,,15
.L434:
	movl	%ebx, (%esp)
	incl	%ebx
	call	GetReg
	movl	%eax, 4(%esp)
	movl	$.LC12, (%esp)
	call	printf
	cmpl	$7, %ebx
	jle	.L434
	movl	$10, (%esp)
	xorl	%ebx, %ebx
	call	putchar
	movl	$.LC13, (%esp)
	call	printf
	.p2align 4,,15
.L439:
	leal	8(%ebx), %eax
	incl	%ebx
	movl	%eax, (%esp)
	call	GetReg
	movl	%eax, 4(%esp)
	movl	$.LC12, (%esp)
	call	printf
	cmpl	$7, %ebx
	jle	.L439
	movl	$10, (%esp)
	call	putchar
	addl	$20, %esp
	popl	%ebx
	popl	%ebp
	ret
	.size	Call_DumpRegs, .-Call_DumpRegs
	.p2align 4,,15
.globl Call_NotifyOfScrFlip
	.type	Call_NotifyOfScrFlip, @function
Call_NotifyOfScrFlip:
	pushl	%ebp
	movl	$1, %ecx
	movl	%esp, %ebp
	popl	%ebp
	movl	%ecx, bScreenContentsChanged
	ret
	.size	Call_NotifyOfScrFlip, .-Call_NotifyOfScrFlip
	.p2align 4,,15
.globl Call_NotifyMousePos
	.type	Call_NotifyMousePos, @function
Call_NotifyMousePos:
	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret
	.size	Call_NotifyMousePos, .-Call_NotifyMousePos
	.p2align 4,,15
.globl Call_DrawQuad
	.type	Call_DrawQuad, @function
Call_DrawQuad:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	subl	$48, %esp
	movl	$0, (%esp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$1, (%esp)
	fstps	-40(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$2, (%esp)
	fstps	-36(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$3, (%esp)
	fstps	-32(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$4, (%esp)
	fstps	-28(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$5, (%esp)
	fstps	-24(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$6, (%esp)
	fstps	-20(%ebp)
	call	GetReg
	pushl	%eax
	fildl	(%esp)
	addl	$4, %esp
	movl	$7, (%esp)
	fstps	-16(%ebp)
	call	GetReg
	pushl	%eax
	xorl	%edx, %edx
	fld1
	fildl	(%esp)
	addl	$4, %esp
	fstps	-12(%ebp)
	.p2align 4,,15
.L462:
	xorl	%ecx, %ecx
	movl	$-1, %ebx
	xorl	%esi, %esi
	.p2align 4,,15
.L460:
	cmpl	%esi, %edx
	je	.L453
	flds	-36(%ebp,%edx,8)
	flds	-36(%ebp,%esi,8)
	fxch	%st(1)
	fucom	%st(1)
	fnstsw	%ax
	sahf
	jbe	.L456
	incl	%ecx
.L456:
	fucompp
	fnstsw	%ax
	sahf
	jne	.L453
	jp	.L453
	movl	%esi, %ebx
	.p2align 4,,15
.L453:
	incl	%esi
	cmpl	$3, %esi
	jle	.L460
	cmpl	$2, %ecx
	je	.L467
.L449:
	incl	%edx
	cmpl	$3, %edx
	jle	.L462
	fstp	%st(0)
.L448:
	movl	$8, (%esp)
	call	GetReg
	testl	%eax, %eax
	js	.L468
.L463:
	sarl	$2, %eax
	movl	$4, %ebx
	movl	%eax, 8(%esp)
	leal	-40(%ebp), %eax
	movl	%ebx, 4(%esp)
	movl	%eax, (%esp)
	call	DrawPoly
	addl	$48, %esp
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
.L468:
	addl	$3, %eax
	jmp	.L463
.L467:
	cmpl	$-1, %ebx
	je	.L449
	flds	-36(%ebp,%ebx,8)
	fsub	%st(1), %st
	fstps	-36(%ebp,%ebx,8)
	flds	-36(%ebp,%edx,8)
	fsubp	%st, %st(1)
	fstps	-36(%ebp,%edx,8)
	jmp	.L448
	.size	Call_DrawQuad, .-Call_DrawQuad
	.p2align 4,,15
.globl Call_DrawTriangle
	.type	Call_DrawTriangle, @function
Call_DrawTriangle:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$44, %esp
	movl	$8, (%esp)
	call	GetReg
	cwtl
	testl	%eax, %eax
	js	.L471
.L470:
	movl	$5, (%esp)
	sarl	$2, %eax
	movl	%eax, -16(%ebp)
	call	GetReg
	movl	$4, (%esp)
	cwtl
	movl	%eax, -20(%ebp)
	call	GetReg
	movl	$3, (%esp)
	cwtl
	movl	%eax, -24(%ebp)
	call	GetReg
	movl	$2, (%esp)
	movswl	%ax,%ebx
	call	GetReg
	movl	$1, (%esp)
	movswl	%ax,%edi
	call	GetReg
	movl	$0, (%esp)
	movswl	%ax,%esi
	call	GetReg
	movl	%ebx, 12(%esp)
	movl	-16(%ebp), %edx
	cwtl
	movl	%edi, 8(%esp)
	movl	%esi, 4(%esp)
	movl	%edx, 24(%esp)
	movl	-20(%ebp), %edx
	movl	%eax, (%esp)
	movl	%edx, 20(%esp)
	movl	-24(%ebp), %edx
	movl	%edx, 16(%esp)
	call	DrawTriangle
	addl	$44, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L471:
	addl	$3, %eax
	jmp	.L470
	.size	Call_DrawTriangle, .-Call_DrawTriangle
	.p2align 4,,15
.globl Call_HostUpdate
	.type	Call_HostUpdate, @function
Call_HostUpdate:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	call	Keymap_DebounceAllKeys
	call	ShortCut_CheckKeys
	movl	%ebp, %esp
	popl	%ebp
	jmp	Main_EventHandler
	.size	Call_HostUpdate, .-Call_HostUpdate
	.p2align 4,,15
	.type	SetExceptionHandler, @function
SetExceptionHandler:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	movl	$0, (%esp)
	movl	%ebx, -4(%ebp)
	call	GetReg
	movl	$8, (%esp)
	movl	%eax, %ebx
	andl	$31, %ebx
	call	GetReg
	movl	%eax, exception_handlers(,%ebx,4)
	movl	-4(%ebp), %ebx
	movl	%ebp, %esp
	popl	%ebp
	ret
	.size	SetExceptionHandler, .-SetExceptionHandler
	.section	.rodata.str1.32,"aMS",@progbits,1
	.align 32
.LC16:
	.string	" $%x $%x $%x $%x $%x $%x $%x $%x*$%x $%x $%x $%x $%x $%x $%x $%x:%d\n"
	.text
	.p2align 4,,15
.globl DumpMess
	.type	DumpMess, @function
DumpMess:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$124, %esp
	cmpb	$0, X
	jne	.L485
.L475:
	cmpb	$0, Z
	jne	.L486
.L477:
	cmpb	$0, N
	jne	.L487
.L479:
	cmpb	$0, V
	jne	.L488
.L481:
	cmpb	$0, C
	jne	.L489
.L483:
	movl	$15, (%esp)
	call	GetReg
	movl	%eax, -16(%ebp)
	movl	$14, (%esp)
	call	GetReg
	movl	%eax, -20(%ebp)
	movl	$13, (%esp)
	call	GetReg
	movl	%eax, -24(%ebp)
	movl	$12, (%esp)
	call	GetReg
	movl	%eax, -28(%ebp)
	movl	$11, (%esp)
	call	GetReg
	movl	%eax, -32(%ebp)
	movl	$10, (%esp)
	call	GetReg
	movl	%eax, -36(%ebp)
	movl	$9, (%esp)
	call	GetReg
	movl	%eax, -40(%ebp)
	movl	$8, (%esp)
	call	GetReg
	movl	%eax, -44(%ebp)
	movl	$7, (%esp)
	call	GetReg
	movl	%eax, -48(%ebp)
	movl	$6, (%esp)
	call	GetReg
	movl	%eax, -52(%ebp)
	movl	$5, (%esp)
	call	GetReg
	movl	%eax, -56(%ebp)
	movl	$4, (%esp)
	call	GetReg
	movl	%eax, -60(%ebp)
	movl	$3, (%esp)
	call	GetReg
	movl	$2, (%esp)
	movl	%eax, %edi
	call	GetReg
	movl	$1, (%esp)
	movl	%eax, %esi
	call	GetReg
	movl	$0, (%esp)
	movl	%eax, %ebx
	call	GetReg
	movl	%eax, 4(%esp)
	movl	line_no, %edx
	movl	%edi, 16(%esp)
	movl	%esi, 12(%esp)
	movl	%edx, 68(%esp)
	movl	-16(%ebp), %edx
	movl	%ebx, 8(%esp)
	movl	$.LC16, (%esp)
	movl	%edx, 64(%esp)
	movl	-20(%ebp), %edx
	movl	%edx, 60(%esp)
	movl	-24(%ebp), %edx
	movl	%edx, 56(%esp)
	movl	-28(%ebp), %edx
	movl	%edx, 52(%esp)
	movl	-32(%ebp), %edx
	movl	%edx, 48(%esp)
	movl	-36(%ebp), %edx
	movl	%edx, 44(%esp)
	movl	-40(%ebp), %edx
	movl	%edx, 40(%esp)
	movl	-44(%ebp), %edx
	movl	%edx, 36(%esp)
	movl	-48(%ebp), %edx
	movl	%edx, 32(%esp)
	movl	-52(%ebp), %edx
	movl	%edx, 28(%esp)
	movl	-56(%ebp), %edx
	movl	%edx, 24(%esp)
	movl	-60(%ebp), %edx
	movl	%edx, 20(%esp)
	call	printf
	addl	$124, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.p2align 4,,7
.L489:
	movl	$67, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L483
	.p2align 4,,7
.L488:
	movl	$86, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L481
	.p2align 4,,7
.L487:
	movl	$78, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L479
	.p2align 4,,7
.L486:
	movl	$90, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L477
	.p2align 4,,7
.L485:
	movl	$88, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L475
	.size	DumpMess, .-DumpMess
	.local	PrevRegs.0
	.comm	PrevRegs.0,64,32
	.section	.rodata.str1.1
.LC17:
	.string	" %c%d:%x"
.LC18:
	.string	"(%d)\n"
	.text
	.p2align 4,,15
.globl DumpRegsChanged
	.type	DumpRegsChanged, @function
DumpRegsChanged:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	xorl	%esi, %esi
	pushl	%ebx
	subl	$16, %esp
	xorl	%ebx, %ebx
	.p2align 4,,15
.L510:
	movl	%ebx, (%esp)
	call	GetReg
	cmpl	%eax, PrevRegs.0(,%ebx,4)
	je	.L493
	testl	%esi, %esi
	jne	.L496
	cmpb	$0, Z
	jne	.L514
.L497:
	cmpb	$0, V
	jne	.L515
.L499:
	cmpb	$0, C
	jne	.L516
.L501:
	cmpb	$0, N
	jne	.L517
.L503:
	cmpb	$0, X
	jne	.L518
.L505:
	movl	$1, %esi
.L496:
	movl	%ebx, (%esp)
	call	GetReg
	movl	%eax, 12(%esp)
	cmpl	$7, %ebx
	movl	%ebx, %eax
	jle	.L507
	leal	-8(%ebx), %eax
.L507:
	movl	%eax, 8(%esp)
	xorl	%eax, %eax
	cmpl	$7, %ebx
	setle	%al
	movl	$.LC17, (%esp)
	leal	97(%eax,%eax,2), %eax
	movl	%eax, 4(%esp)
	call	printf
	movl	%ebx, (%esp)
	call	GetReg
	movl	%eax, PrevRegs.0(,%ebx,4)
.L493:
	incl	%ebx
	cmpl	$15, %ebx
	jle	.L510
	testl	%esi, %esi
	jne	.L519
.L490:
	addl	$16, %esp
	popl	%ebx
	popl	%esi
	popl	%ebp
	ret
.L519:
	movl	$.LC18, (%esp)
	movl	line_no, %eax
	movl	%eax, 4(%esp)
	call	printf
	jmp	.L490
	.p2align 4,,7
.L518:
	movl	$88, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L505
	.p2align 4,,7
.L517:
	movl	$78, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L503
	.p2align 4,,7
.L516:
	movl	$67, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L501
	.p2align 4,,7
.L515:
	movl	$86, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L499
	.p2align 4,,7
.L514:
	movl	$90, (%esp)
	movl	stdout, %eax
	movl	%eax, 4(%esp)
	call	_IO_putc
	jmp	.L497
	.size	DumpRegsChanged, .-DumpRegsChanged
.globl hcalls
	.data
	.align 32
	.type	hcalls, @object
	.size	hcalls, 324
hcalls:
	.long	SetExceptionHandler
	.long	Call_Memset
	.long	Call_MemsetBlue
	.long	Call_BlitCursor
	.long	Call_RestoreUnderCursor
	.long	Call_BlitBmp
	.long	Call_OldHLine
	.long	Call_HostUpdate
	.long	Call_Memcpy
	.long	Call_PutPix
	.long	Call_BackHLine
	.long	Call_FillLine
	.long	Call_SetMainPalette
	.long	Call_SetCtrlPalette
	.long	Call_SetScreenBase
	.long	Screen_Draw
	.long	Call_DumpRegs
	.long	Call_MakeExtPalette
	.long	Call_PlaySFX
	.long	Call_GetMouseInput
	.long	Call_GetKeyboardEvent
	.long	0
	.long	Call_HLine
	.long	Call_NotifyOfScrFlip
	.long	Call_NotifyMousePos
	.long	Call_InformScreens
	.long	GemDOS_SetDTA
	.long	Call_DrawStrShadowed
	.long	Call_DrawStr
	.long	Call_DrawTriangle
	.long	Call_DrawQuad
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	GemDOS_Create
	.long	GemDOS_Open
	.long	GemDOS_Close
	.long	GemDOS_Read
	.long	GemDOS_Write
	.long	GemDOS_UnLink
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	GemDOS_SFirst
	.long	GemDOS_SNext
	.long	0
	.comm	emudrive,516,32
	.comm	FileHandles,8448,32
	.comm	InternalDTAs,69632,32
	.comm	DTAIndex,4,4
	.comm	pDTA,4,4
	.comm	under_mouse,256,32
	.comm	len_working_ext_pal,4,4
	.comm	working_ext_pal,480,32
	.section	.note.GNU-stack,"",@progbits
	.ident	"GCC: (GNU) 3.3.5 (Debian 1:3.3.5-8)"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.