1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- / prt0.s (emx+fpc) -- Made from crt0.s,
- / Copyright (c) 1990-1999-2001 by Eberhard Mattes.
- / Changed for Free Pascal in 1997 Daniel Mantione.
- / This code is based on source distributed under the
- / emx-lib license, see copying.emx for details.
- / You should have received it with this
- / product, write the author if you haven't.
- .globl __text
- .globl ___SYSCALL
- .globl __data
- .globl __heap_base
- .globl __heap_brk
- .globl __heap_end
- .globl __init
- .text
- __text:
- push $__data
- call __dos_init
- jmp __init
- ___SYSCALL:
- call __dos_syscall
- ret
- .space 6, 0x90
- __init: cld
- call __entry1
- call _main
- movb $0x4c,%ah
- call ___SYSCALL
- 2: jmp 2b
- .data
- / The data segment starts with a table containing the start and end
- / addresses of the text, data and bss segments
- __data:
- .long __text
- .long __etext
- .long __data
- .long __edata
- .long __edata
- .long __end
- __heap_base:
- .long 0
- __heap_end:
- .long 0
- __heap_brk:
- .long 0
- .long 0
- .long __os2dll
- .long 0
- .long 0
- .long 0x02000000
- .long 0
- .long 0
- .byte 0
- .space 63, 0
- / Don't touch this. It's EMX vodoo. In short, this causes the __os2dll symbol
- / point to table of DLL data that the linker includes in the executable.
- .stabs "__os2dll", 21, 0, 0, 0xffffffff
- .stabs "___CTOR_LIST__", 21, 0, 0, 0xffffffff
- .stabs "___DTOR_LIST__", 21, 0, 0, 0xffffffff
- .stabs "___crtinit1__", 21, 0, 0, 0xffffffff
- .stabs "___crtexit1__", 21, 0, 0, 0xffffffff
- .stabs "___eh_frame__", 21, 0, 0, 0xffffffff
|