-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathc0ntw.386
136 lines (98 loc) · 3.55 KB
/
c0ntw.386
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
;***************************************************************************
;
; Copyright (c) 1997, 1998 Timpanogas Research Group, Inc. All Rights
; Reserved.
;
; AUTHOR : Jeff V. Merkey
; FILE : C0NT.386
; DESCRIP : PE Loader 32-bit Init Stub for MANOS v1.0
; DATE : December 6, 1997
;
;
;***************************************************************************
WINDOWS EQU 1
; C0NT.ASM - C run time library entry point for NT
.486P
model flat
ASSUME CS: FLAT, DS: FLAT, SS: FLAT, ES: FLAT
BSSINIT equ 1 ; Fix for problem with OS not initializing
; the first page of BSS to zero
FULLBSS equ 1 ; Fix for problem with OS not initializing
; the entire BSS to zero
;----------------------------------------------------------------------
; Code segment
_TEXT SEGMENT PUBLIC USE32 'CODE'
_TEXT ENDS
;----------------------------------------------------------------------
; Data segments
_DATA SEGMENT PUBLIC DWORD USE32 PUBLIC 'DATA'
db 'Copyright (C) 1997 Timpanogas Research Group, Inc.',0
_DATA ENDS
_TLSCBA SEGMENT PUBLIC DWORD USE32 PUBLIC 'TLSCBA'
_TLSCBA ENDS
_INIT_ SEGMENT PUBLIC WORD USE32 PUBLIC 'INITDATA'
InitStart label byte
_INIT_ ENDS
_INITEND_ SEGMENT PUBLIC WORD USE32 PUBLIC 'INITDATA'
InitEnd label byte
_INITEND_ ENDS
_EXIT_ SEGMENT PUBLIC WORD USE32 PUBLIC 'EXITDATA'
ExitStart label byte
_EXIT_ ENDS
_EXITEND_ SEGMENT PUBLIC WORD USE32 PUBLIC 'EXITDATA'
ExitEnd label byte
_EXITEND_ ENDS
ifndef MASM
NOWARN RES
endif
CONST SEGMENT PUBLIC DWORD USE32 PUBLIC 'CONST'
CONST ENDS
ifndef MASM
WARN RES
endif
_BSS SEGMENT PUBLIC DWORD USE32 PUBLIC 'BSS'
IFDEF BSSINIT
bdata@ label byte
ENDIF
_BSS ENDS
IFDEF BSSINIT
_BSSEND SEGMENT PUBLIC DWORD USE32 PUBLIC 'BSS'
edata@ label byte
_BSSEND ENDS
ENDIF
IFDEF BSSINIT
DGROUP GROUP _DATA, _TLSCBA, _INIT_, _INITEND_, _EXIT_, _EXITEND_, CONST, _BSS, _BSSEND
ELSE
DGROUP GROUP _DATA, _TLSCBA, _INIT_, _INITEND_, _EXIT_, _EXITEND_, CONST, _BSS
ENDIF
;----------------------------------------------------------------------
; External function definitions
_TEXT SEGMENT PUBLIC USE32 'CODE'
EXTRN MANOSStartup: NEAR
_TEXT ENDS
;----------------------------------------------------------------------
; External data definitions
_DATA SEGMENT PUBLIC DWORD USE32 'DATA'
_DATA ENDS
;----------------------------------------------------------------------
; CV4 debugging information: a pointer to main, WinMain, or DllEntryPoint
ifndef MASM ; MASM386 can't handle 'dp' directive
$$BSYMS SEGMENT PUBLIC BYTE USE32 'DEBSYM'
dd 2 ; magic
dw 8 ; magic
dw 210h ; magic (S_ENTRY32)
dp MANOSStartup
$$BSYMS ENDS
endif ; ndef MASM
_DATA SEGMENT PUBLIC DWORD USE32 'DATA'
_DATA ENDS
;----------------------------------------------------------------------
; Startup code
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
public __acrtused
align 4
__acrtused PROC NEAR
jmp MANOSStartup
__acrtused ENDP
_TEXT ENDS
END __acrtused