mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-26 21:50:03 +02:00
* Mouse crash bug fixed !!!
This commit is contained in:
parent
b47e4d0436
commit
585796400f
@ -61,6 +61,10 @@ ___djgpp_memory_handle_pointer:
|
|||||||
.long ___djgpp_memory_handle_list+8 /* Next free, first for stub */
|
.long ___djgpp_memory_handle_list+8 /* Next free, first for stub */
|
||||||
.comm ___djgpp_memory_handle_list, 2048 /* Enough for 256 handles */
|
.comm ___djgpp_memory_handle_list, 2048 /* Enough for 256 handles */
|
||||||
|
|
||||||
|
/* simply get current state */
|
||||||
|
___sbrk_interrupt_state:
|
||||||
|
.long 0x902
|
||||||
|
|
||||||
sbrk16_first_byte:
|
sbrk16_first_byte:
|
||||||
.include "sbrk16.ah"
|
.include "sbrk16.ah"
|
||||||
sbrk16_last_byte:
|
sbrk16_last_byte:
|
||||||
@ -276,18 +280,18 @@ ___exit:
|
|||||||
/* special exit from dpmiexcp.c */
|
/* special exit from dpmiexcp.c */
|
||||||
.global __exit
|
.global __exit
|
||||||
__exit:
|
__exit:
|
||||||
movb 4(%esp), %al
|
movl 4(%esp),%eax
|
||||||
exit:
|
exit:
|
||||||
movb %al, %cl
|
movl %eax,%ecx
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
movw %ax,%fs
|
movw %ax,%fs
|
||||||
movw %ax,%gs
|
movw %ax,%gs
|
||||||
cmpl $0,_exception_exit
|
cmpl $0,_exception_exit
|
||||||
jz no_exception
|
jz no_exception
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
call *_exception_exit
|
call *_exception_exit
|
||||||
popl %ecx
|
popl %ecx
|
||||||
no_exception:
|
no_exception:
|
||||||
cli /* Just in case they didn't unhook ints */
|
cli /* Just in case they didn't unhook ints */
|
||||||
FREESEL U_SYSTEM_GO32_INFO_BLOCK+26 /* selector for linear memory */
|
FREESEL U_SYSTEM_GO32_INFO_BLOCK+26 /* selector for linear memory */
|
||||||
FREESEL ___v2prt0_ds_alias /* DS alias for rmcb exceptions */
|
FREESEL ___v2prt0_ds_alias /* DS alias for rmcb exceptions */
|
||||||
@ -394,13 +398,13 @@ brk_common:
|
|||||||
|
|
||||||
movw $0x0900, %ax /* disable interrupts */
|
movw $0x0900, %ax /* disable interrupts */
|
||||||
int $0x31
|
int $0x31
|
||||||
pushl %eax
|
movl %eax,___sbrk_interrupt_state
|
||||||
|
|
||||||
lcall sbrk16_api_ofs
|
lcall sbrk16_api_ofs
|
||||||
setc %dl /* Save carry */
|
setc %dl /* Save carry */
|
||||||
|
|
||||||
popl %eax /* restore interrupts */
|
/* popl %eax restore interrupts
|
||||||
int $0x31
|
int $0x31 postponed after ds alias is set correctly */
|
||||||
|
|
||||||
test %dl,%dl
|
test %dl,%dl
|
||||||
popl %edx
|
popl %edx
|
||||||
@ -446,6 +450,8 @@ brk_common:
|
|||||||
movw ___djgpp_base_address+2, %cx
|
movw ___djgpp_base_address+2, %cx
|
||||||
int $0x31
|
int $0x31
|
||||||
|
|
||||||
|
movl %eax,___sbrk_interrupt_state /* restore interrupts */
|
||||||
|
int $0x31
|
||||||
movl ___djgpp_selector_limit, %edx
|
movl ___djgpp_selector_limit, %edx
|
||||||
12: incl %edx /* Size not limit */
|
12: incl %edx /* Size not limit */
|
||||||
testb $0x60, __crt0_startup_flags /* include/crt0.h */
|
testb $0x60, __crt0_startup_flags /* include/crt0.h */
|
||||||
@ -901,7 +907,10 @@ ___PROXY_LEN:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 1999-07-10 23:17:15 pierre
|
Revision 1.7 2000-02-16 13:24:55 pierre
|
||||||
|
* Mouse crash bug fixed !!!
|
||||||
|
|
||||||
|
Revision 1.6 1999/07/10 23:17:15 pierre
|
||||||
merged from fixes branch
|
merged from fixes branch
|
||||||
|
|
||||||
Revision 1.5.2.1 1999/07/10 23:15:02 pierre
|
Revision 1.5.2.1 1999/07/10 23:15:02 pierre
|
||||||
@ -937,5 +946,4 @@ ___PROXY_LEN:
|
|||||||
* go32v1, go32v2 recompiles with the new objects
|
* go32v1, go32v2 recompiles with the new objects
|
||||||
* remake3 works again with go32v2
|
* remake3 works again with go32v2
|
||||||
- removed some "optimizes" from daniel which were wrong
|
- removed some "optimizes" from daniel which were wrong
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user