|
|
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)"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.