source: trunk/src/odincrt/odincrt.asm@ 10366

Last change on this file since 10366 was 9715, checked in by sandervl, 23 years ago

Added wrappers for new & delete operators

File size: 2.3 KB
Line 
1; $Id: odincrt.asm,v 1.6 2003-01-23 12:33:05 sandervl Exp $
2
3;/*
4; * Project Odin Software License can be found in LICENSE.TXT
5; * Win32 Exception handling + misc functions for OS/2
6; *
7; * Copyright 1998 Sander van Leeuwen
8; *
9; */
10
11; 1999/08/09 PH see if we can do this as INLINE functions
12
13.386p
14 NAME odinfs
15
16CODE32 SEGMENT DWORD PUBLIC USE32 'CODE'
17 ASSUME DS:FLAT, SS:FLAT
18
19 PUBLIC __threadid
20__threadid proc near
21 push ebp
22 push fs
23 mov ax, 150bh
24 mov fs, ax
25
26 mov eax,dword ptr fs:[0000000cH]
27
28 pop fs
29 mov ebp,esp
30 leave
31 ret
32__threadid endp
33
34 PUBLIC __nw__FUiPCcT1
35 EXTERN odin__debug_malloc:NEAR
36;input: eax = size
37; ecx = line nr
38; edx = source filename
39__nw__FUiPCcT1 proc near
40 push fs
41 push eax
42 mov ax, 150bh
43 mov fs, ax
44 pop eax
45
46 sub esp, 0Ch
47 call odin__debug_malloc
48 add esp, 0Ch
49
50 pop fs
51 ret
52__nw__FUiPCcT1 endp
53
54 PUBLIC __dl__FPvPCcUi
55 EXTERN odin__debug_free:NEAR
56;input: eax = this ptr
57; ecx = line nr
58; edx = source filename
59__dl__FPvPCcUi proc near
60 push fs
61 push eax
62 mov ax, 150bh
63 mov fs, ax
64 pop eax
65
66 sub esp, 0Ch
67 call odin__debug_free
68 add esp, 0Ch
69 pop fs
70 ret
71__dl__FPvPCcUi endp
72
73
74 PUBLIC __nw__FUi
75 EXTERN odin_malloc:NEAR
76;input: eax = size
77__nw__FUi proc near
78 push fs
79 push eax
80 mov ax, 150bh
81 mov fs, ax
82 pop eax
83
84 sub esp, 4
85 call odin_malloc
86 add esp, 4
87
88 pop fs
89 ret
90__nw__FUi endp
91
92 PUBLIC __dl__FPv
93 EXTERN odin_free:NEAR
94;input: eax = this ptr
95__dl__FPv proc near
96 push fs
97 push eax
98 mov ax, 150bh
99 mov fs, ax
100 pop eax
101
102 sub esp, 4
103 call odin_free
104 add esp, 4
105
106 pop fs
107 ret
108__dl__FPv endp
109
110 PUBLIC GetFS
111GetFS proc near
112 mov eax, fs
113 ret
114GetFS endp
115
116
117 PUBLIC SetFS
118SetFS proc near
119 mov eax, [esp+4]
120 mov fs, eax
121 ret
122SetFS endp
123
124
125 PUBLIC SetReturnFS
126SetReturnFS proc near
127 push fs
128 mov eax, [esp+8]
129 mov fs, eax
130 pop eax
131 ret
132SetReturnFS endp
133
134
135 PUBLIC RestoreOS2FS
136RestoreOS2FS proc near
137 push 150bh ; @@@PH that's NOT the clean way ! :)
138 mov ax, fs
139 pop fs
140 ret
141RestoreOS2FS endp
142
143CODE32 ENDS
144 END
Note: See TracBrowser for help on using the repository browser.